From 69ab62a0516c0e88210977afd3a9d53b2daea193 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Thu, 20 Aug 2026 01:04:47 +0000 Subject: [PATCH 1/2] =?UTF-8?q?##=20Go=20SDK=20Changes:=20*=20`Glean.Chat.?= =?UTF-8?q?Create()`:=20=20=20*=20=20`request.Request.Input.union(Array)[].Role`=20**Changed**=20(Breaking=20?= =?UTF-8?q?=E2=9A=A0=EF=B8=8F)=20=20=20*=20=20`response`=20**Changed**=20(?= =?UTF-8?q?Breaking=20=E2=9A=A0=EF=B8=8F)=20*=20`Glean.Triggers.Create()`:?= =?UTF-8?q?=20**Added**=20*=20`Glean.Triggers.List()`:=20**Added**=20*=20`?= =?UTF-8?q?Glean.Triggers.Get()`:=20**Added**=20*=20`Glean.Triggers.Update?= =?UTF-8?q?()`:=20**Added**=20*=20`Glean.Triggers.Delete()`:=20**Added**?= =?UTF-8?q?=20*=20`Glean.Triggers.SearchEvents()`:=20**Added**=20*=20`Glea?= =?UTF-8?q?n.Triggers.ListPresets()`:=20**Added**=20*=20`Glean.Triggers.Ge?= =?UTF-8?q?tPreset()`:=20**Added**=20*=20`Glean.Triggers.ListPresetInputVa?= =?UTF-8?q?lues()`:=20**Added**=20*=20`Glean.Triggers.SearchPresetEvents()?= =?UTF-8?q?`:=20**Added**=20*=20`Glean.Client.Search.RetrieveFeed()`:=20?= =?UTF-8?q?=20=20*=20=20`request.FeedRequest.Categories[].Enum(knowledgeGa?= =?UTF-8?q?p)`=20**Added**=20=20=20*=20=20`response.Results[]`=20**Changed?= =?UTF-8?q?**?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .speakeasy/gen.lock | 957 ++++- .speakeasy/gen.yaml | 2 +- .speakeasy/glean-merged-spec.yaml | 3074 ++++++++++++----- .speakeasy/tests.arazzo.yaml | 184 +- .speakeasy/workflow.lock | 12 +- README.md | 15 +- RELEASES.md | 12 +- ...riggerscreatetriggerwebhookeventrequest.md | 11 + ...iggerscreatetriggerwebhookeventresponse.md | 8 + docs/models/components/calendarevent.md | 33 +- .../components/calendarroombookingstatus.md | 26 + docs/models/components/feedrequestcategory.md | 3 +- docs/models/components/feedresult.md | 14 +- docs/models/components/feedresultcategory.md | 3 +- docs/models/components/input.md | 2 +- docs/models/components/justificationtype.md | 4 +- docs/models/components/object.md | 2 +- docs/models/components/placementreason.md | 5 +- .../platformchatcitationannotationtype.md | 2 +- .../platformchatcompletedresponsestatus.md | 2 +- .../components/platformchatcreaterequest.md | 2 +- .../platformchatcustomentitysourcetype.md | 2 +- .../platformchatdocumentsourcetype1.md | 2 +- .../platformchatdocumentsourcetype2.md | 2 +- .../components/platformchatfilesourcetype.md | 2 +- .../platformchatinputmessagerole.md | 4 +- .../platformchatoutputmessagerole.md | 2 +- .../platformchatoutputmessagetype.md | 2 +- .../platformchatoutputtextcontenttype.md | 2 +- .../platformchatpersonsourcetype.md | 2 +- .../platformcontentschedulewebhookevent.md | 18 + .../platformdocumentchangewebhookevent.md | 19 + docs/models/components/platformtrigger.md | 15 + docs/models/components/platformtriggerauth.md | 11 + .../components/platformtriggerauthoutput.md | 10 + .../components/platformtriggerauthtype.md | 20 + .../platformtriggercreaterequest.md | 11 + .../platformtriggercreateresponse.md | 9 + .../components/platformtriggerdelivery.md | 9 + .../platformtriggerdeliveryoutput.md | 9 + .../models/components/platformtriggerevent.md | 17 + .../components/platformtriggereventreason.md | 35 + .../platformtriggereventsearchrequest.md | 8 + .../platformtriggereventsearchresponse.md | 10 + .../components/platformtriggereventtype.md | 20 + .../components/platformtriggergetresponse.md | 9 + .../components/platformtriggerlistresponse.md | 11 + .../components/platformtriggerpreset.md | 12 + ...platformtriggerpreseteventsearchrequest.md | 9 + .../platformtriggerpresetgetresponse.md | 9 + .../components/platformtriggerpresetinput.md | 13 + .../platformtriggerpresetinputtype.md | 25 + .../platformtriggerpresetinputvalue.md | 9 + ...formtriggerpresetinputvaluelistresponse.md | 10 + .../platformtriggerpresetlistresponse.md | 11 + .../platformtriggerpresetsummary.md | 11 + .../components/platformtriggerstatus.md | 24 + .../platformtriggerupdaterequest.md | 13 + .../components/platformtriggerwebhookevent.md | 31 + .../components/platformtriggerwithsecret.md | 16 + ...atformtriggerpresetseventssearchrequest.md | 9 + ...tformtriggerpresetseventssearchresponse.md | 9 + .../platformtriggerpresetsgetrequest.md | 8 + .../platformtriggerpresetsgetresponse.md | 9 + ...ormtriggerpresetsinputvalueslistrequest.md | 10 + ...rmtriggerpresetsinputvalueslistresponse.md | 9 + .../platformtriggerpresetslistrequest.md | 10 + .../platformtriggerpresetslistresponse.md | 9 + .../platformtriggerscreateresponse.md | 9 + .../platformtriggersdeleterequest.md | 8 + .../platformtriggersdeleteresponse.md | 8 + .../platformtriggerseventssearchrequest.md | 9 + .../platformtriggerseventssearchresponse.md | 9 + .../operations/platformtriggersgetrequest.md | 8 + .../operations/platformtriggersgetresponse.md | 9 + .../operations/platformtriggerslistrequest.md | 9 + .../platformtriggerslistresponse.md | 9 + .../platformtriggersupdaterequest.md | 9 + .../platformtriggersupdateresponse.md | 9 + docs/sdks/skills/README.md | 70 +- docs/sdks/tools/README.md | 5 +- docs/sdks/triggers/README.md | 607 ++++ glean.go | 8 +- models/callbacks/platformtriggerscreate.go | 69 + models/components/calendarevent.go | 27 + .../components/calendarroombookingstatus.go | 28 + models/components/feedentry.go | 4 +- models/components/feedrequest.go | 3 + models/components/feedresult.go | 10 +- .../platformchatcitationannotation.go | 4 +- .../platformchatcompletedresponse.go | 8 +- .../components/platformchatcreaterequest.go | 4 +- .../platformchatcustomentitysource.go | 4 +- .../components/platformchatdocumentsource.go | 8 +- models/components/platformchatfilesource.go | 4 +- models/components/platformchatinputmessage.go | 8 +- .../components/platformchatoutputmessage.go | 8 +- .../platformchatoutputtextcontent.go | 4 +- models/components/platformchatpersonsource.go | 4 +- .../platformcontentschedulewebhookevent.go | 120 + .../platformdocumentchangewebhookevent.go | 129 + models/components/platformtrigger.go | 93 + .../components/platformtriggerauthoutput.go | 67 + .../platformtriggercreaterequest.go | 41 + .../platformtriggercreateresponse.go | 23 + models/components/platformtriggerdelivery.go | 24 + .../platformtriggerdeliveryoutput.go | 24 + models/components/platformtriggerevent.go | 95 + .../components/platformtriggereventreason.go | 50 + .../platformtriggereventsearchrequest.go | 30 + .../platformtriggereventsearchresponse.go | 34 + models/components/platformtriggereventtype.go | 33 + .../components/platformtriggergetresponse.go | 23 + .../components/platformtriggerlistresponse.go | 42 + models/components/platformtriggerpreset.go | 51 + ...platformtriggerpreseteventsearchrequest.go | 40 + .../platformtriggerpresetgetresponse.go | 23 + .../components/platformtriggerpresetinput.go | 62 + .../platformtriggerpresetinputtype.go | 27 + .../platformtriggerpresetinputvalue.go | 25 + ...formtriggerpresetinputvaluelistresponse.go | 34 + .../platformtriggerpresetlistresponse.go | 42 + .../platformtriggerpresetsummary.go | 42 + models/components/platformtriggerstatus.go | 26 + .../platformtriggerupdaterequest.go | 42 + .../components/platformtriggerwebhookevent.go | 99 + .../components/platformtriggerwithsecret.go | 102 + .../platformtriggerpresetseventssearch.go | 47 + .../operations/platformtriggerpresetsget.go | 39 + .../platformtriggerpresetsinputvalueslist.go | 58 + .../operations/platformtriggerpresetslist.go | 69 + models/operations/platformtriggerscreate.go | 27 + models/operations/platformtriggersdelete.go | 30 + .../platformtriggerseventssearch.go | 47 + models/operations/platformtriggersget.go | 39 + models/operations/platformtriggerslist.go | 60 + models/operations/platformtriggersupdate.go | 47 + search.go | 2 - skills.go | 44 +- .../internal/handler/generated_handlers.go | 9 + .../handler/pathgetapitriggerpresets.go | 67 + .../pathgetapitriggerpresetspresetid.go | 72 + ...getapitriggerpresetspresetidinputvalues.go | 71 + .../internal/handler/pathgetapitriggers.go | 68 + .../handler/pathgetapitriggerstriggerid.go | 79 + .../handler/pathpatchapitriggerstriggerid.go | 84 + ...stapitriggerpresetspresetideventssearch.go | 83 + .../internal/handler/pathpostapitriggers.go | 85 + ...athpostapitriggerstriggerideventssearch.go | 83 + .../callbacks/platformtriggerscreate.go | 69 + .../sdk/models/components/calendarevent.go | 28 + .../components/calendarroombookingstatus.go | 41 + .../sdk/models/components/feedentry.go | 6 + .../sdk/models/components/feedrequest.go | 3 + .../sdk/models/components/feedresult.go | 10 +- .../platformchatcitationannotation.go | 4 +- .../platformchatcompletedresponse.go | 8 +- .../components/platformchatcreaterequest.go | 4 +- .../platformchatcustomentitysource.go | 4 +- .../components/platformchatdocumentsource.go | 8 +- .../components/platformchatfilesource.go | 4 +- .../components/platformchatinputmessage.go | 8 +- .../components/platformchatoutputmessage.go | 8 +- .../platformchatoutputtextcontent.go | 4 +- .../components/platformchatpersonsource.go | 4 +- .../platformcontentschedulewebhookevent.go | 120 + .../platformdocumentchangewebhookevent.go | 129 + .../sdk/models/components/platformtrigger.go | 93 + .../components/platformtriggerauthoutput.go | 67 + .../platformtriggercreaterequest.go | 41 + .../platformtriggercreateresponse.go | 23 + .../components/platformtriggerdelivery.go | 24 + .../platformtriggerdeliveryoutput.go | 24 + .../models/components/platformtriggerevent.go | 95 + .../components/platformtriggereventreason.go | 68 + .../platformtriggereventsearchrequest.go | 30 + .../platformtriggereventsearchresponse.go | 34 + .../components/platformtriggereventtype.go | 32 + .../components/platformtriggergetresponse.go | 23 + .../components/platformtriggerlistresponse.go | 42 + .../components/platformtriggerpreset.go | 51 + ...platformtriggerpreseteventsearchrequest.go | 40 + .../platformtriggerpresetgetresponse.go | 23 + .../components/platformtriggerpresetinput.go | 62 + .../platformtriggerpresetinputtype.go | 38 + .../platformtriggerpresetinputvalue.go | 25 + ...formtriggerpresetinputvaluelistresponse.go | 34 + .../platformtriggerpresetlistresponse.go | 42 + .../platformtriggerpresetsummary.go | 42 + .../components/platformtriggerstatus.go | 35 + .../platformtriggerupdaterequest.go | 42 + .../components/platformtriggerwebhookevent.go | 73 + .../components/platformtriggerwithsecret.go | 102 + .../platformtriggerpresetseventssearch.go | 47 + .../operations/platformtriggerpresetsget.go | 39 + .../platformtriggerpresetsinputvalueslist.go | 58 + .../operations/platformtriggerpresetslist.go | 69 + .../operations/platformtriggerscreate.go | 27 + .../operations/platformtriggersdelete.go | 30 + .../platformtriggerseventssearch.go | 47 + .../models/operations/platformtriggersget.go | 39 + .../models/operations/platformtriggerslist.go | 60 + .../operations/platformtriggersupdate.go | 47 + tests/summarize_test.go | 13 +- tests/triggers_test.go | 196 ++ tools.go | 5 +- triggers.go | 2783 +++++++++++++++ 207 files changed, 12425 insertions(+), 1238 deletions(-) create mode 100644 docs/models/callbacks/platformtriggerscreatetriggerwebhookeventrequest.md create mode 100644 docs/models/callbacks/platformtriggerscreatetriggerwebhookeventresponse.md create mode 100644 docs/models/components/calendarroombookingstatus.md create mode 100644 docs/models/components/platformcontentschedulewebhookevent.md create mode 100644 docs/models/components/platformdocumentchangewebhookevent.md create mode 100644 docs/models/components/platformtrigger.md create mode 100644 docs/models/components/platformtriggerauth.md create mode 100644 docs/models/components/platformtriggerauthoutput.md create mode 100644 docs/models/components/platformtriggerauthtype.md create mode 100644 docs/models/components/platformtriggercreaterequest.md create mode 100644 docs/models/components/platformtriggercreateresponse.md create mode 100644 docs/models/components/platformtriggerdelivery.md create mode 100644 docs/models/components/platformtriggerdeliveryoutput.md create mode 100644 docs/models/components/platformtriggerevent.md create mode 100644 docs/models/components/platformtriggereventreason.md create mode 100644 docs/models/components/platformtriggereventsearchrequest.md create mode 100644 docs/models/components/platformtriggereventsearchresponse.md create mode 100644 docs/models/components/platformtriggereventtype.md create mode 100644 docs/models/components/platformtriggergetresponse.md create mode 100644 docs/models/components/platformtriggerlistresponse.md create mode 100644 docs/models/components/platformtriggerpreset.md create mode 100644 docs/models/components/platformtriggerpreseteventsearchrequest.md create mode 100644 docs/models/components/platformtriggerpresetgetresponse.md create mode 100644 docs/models/components/platformtriggerpresetinput.md create mode 100644 docs/models/components/platformtriggerpresetinputtype.md create mode 100644 docs/models/components/platformtriggerpresetinputvalue.md create mode 100644 docs/models/components/platformtriggerpresetinputvaluelistresponse.md create mode 100644 docs/models/components/platformtriggerpresetlistresponse.md create mode 100644 docs/models/components/platformtriggerpresetsummary.md create mode 100644 docs/models/components/platformtriggerstatus.md create mode 100644 docs/models/components/platformtriggerupdaterequest.md create mode 100644 docs/models/components/platformtriggerwebhookevent.md create mode 100644 docs/models/components/platformtriggerwithsecret.md create mode 100644 docs/models/operations/platformtriggerpresetseventssearchrequest.md create mode 100644 docs/models/operations/platformtriggerpresetseventssearchresponse.md create mode 100644 docs/models/operations/platformtriggerpresetsgetrequest.md create mode 100644 docs/models/operations/platformtriggerpresetsgetresponse.md create mode 100644 docs/models/operations/platformtriggerpresetsinputvalueslistrequest.md create mode 100644 docs/models/operations/platformtriggerpresetsinputvalueslistresponse.md create mode 100644 docs/models/operations/platformtriggerpresetslistrequest.md create mode 100644 docs/models/operations/platformtriggerpresetslistresponse.md create mode 100644 docs/models/operations/platformtriggerscreateresponse.md create mode 100644 docs/models/operations/platformtriggersdeleterequest.md create mode 100644 docs/models/operations/platformtriggersdeleteresponse.md create mode 100644 docs/models/operations/platformtriggerseventssearchrequest.md create mode 100644 docs/models/operations/platformtriggerseventssearchresponse.md create mode 100644 docs/models/operations/platformtriggersgetrequest.md create mode 100644 docs/models/operations/platformtriggersgetresponse.md create mode 100644 docs/models/operations/platformtriggerslistrequest.md create mode 100644 docs/models/operations/platformtriggerslistresponse.md create mode 100644 docs/models/operations/platformtriggersupdaterequest.md create mode 100644 docs/models/operations/platformtriggersupdateresponse.md create mode 100644 docs/sdks/triggers/README.md create mode 100644 models/callbacks/platformtriggerscreate.go create mode 100644 models/components/calendarroombookingstatus.go create mode 100644 models/components/platformcontentschedulewebhookevent.go create mode 100644 models/components/platformdocumentchangewebhookevent.go create mode 100644 models/components/platformtrigger.go create mode 100644 models/components/platformtriggerauthoutput.go create mode 100644 models/components/platformtriggercreaterequest.go create mode 100644 models/components/platformtriggercreateresponse.go create mode 100644 models/components/platformtriggerdelivery.go create mode 100644 models/components/platformtriggerdeliveryoutput.go create mode 100644 models/components/platformtriggerevent.go create mode 100644 models/components/platformtriggereventreason.go create mode 100644 models/components/platformtriggereventsearchrequest.go create mode 100644 models/components/platformtriggereventsearchresponse.go create mode 100644 models/components/platformtriggereventtype.go create mode 100644 models/components/platformtriggergetresponse.go create mode 100644 models/components/platformtriggerlistresponse.go create mode 100644 models/components/platformtriggerpreset.go create mode 100644 models/components/platformtriggerpreseteventsearchrequest.go create mode 100644 models/components/platformtriggerpresetgetresponse.go create mode 100644 models/components/platformtriggerpresetinput.go create mode 100644 models/components/platformtriggerpresetinputtype.go create mode 100644 models/components/platformtriggerpresetinputvalue.go create mode 100644 models/components/platformtriggerpresetinputvaluelistresponse.go create mode 100644 models/components/platformtriggerpresetlistresponse.go create mode 100644 models/components/platformtriggerpresetsummary.go create mode 100644 models/components/platformtriggerstatus.go create mode 100644 models/components/platformtriggerupdaterequest.go create mode 100644 models/components/platformtriggerwebhookevent.go create mode 100644 models/components/platformtriggerwithsecret.go create mode 100644 models/operations/platformtriggerpresetseventssearch.go create mode 100644 models/operations/platformtriggerpresetsget.go create mode 100644 models/operations/platformtriggerpresetsinputvalueslist.go create mode 100644 models/operations/platformtriggerpresetslist.go create mode 100644 models/operations/platformtriggerscreate.go create mode 100644 models/operations/platformtriggersdelete.go create mode 100644 models/operations/platformtriggerseventssearch.go create mode 100644 models/operations/platformtriggersget.go create mode 100644 models/operations/platformtriggerslist.go create mode 100644 models/operations/platformtriggersupdate.go create mode 100644 tests/mockserver/internal/handler/pathgetapitriggerpresets.go create mode 100644 tests/mockserver/internal/handler/pathgetapitriggerpresetspresetid.go create mode 100644 tests/mockserver/internal/handler/pathgetapitriggerpresetspresetidinputvalues.go create mode 100644 tests/mockserver/internal/handler/pathgetapitriggers.go create mode 100644 tests/mockserver/internal/handler/pathgetapitriggerstriggerid.go create mode 100644 tests/mockserver/internal/handler/pathpatchapitriggerstriggerid.go create mode 100644 tests/mockserver/internal/handler/pathpostapitriggerpresetspresetideventssearch.go create mode 100644 tests/mockserver/internal/handler/pathpostapitriggers.go create mode 100644 tests/mockserver/internal/handler/pathpostapitriggerstriggerideventssearch.go create mode 100644 tests/mockserver/internal/sdk/models/callbacks/platformtriggerscreate.go create mode 100644 tests/mockserver/internal/sdk/models/components/calendarroombookingstatus.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformcontentschedulewebhookevent.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformdocumentchangewebhookevent.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtrigger.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerauthoutput.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggercreaterequest.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggercreateresponse.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerdelivery.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerdeliveryoutput.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerevent.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggereventreason.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggereventsearchrequest.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggereventsearchresponse.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggereventtype.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggergetresponse.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerlistresponse.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerpreset.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerpreseteventsearchrequest.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerpresetgetresponse.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerpresetinput.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputtype.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputvalue.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputvaluelistresponse.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerpresetlistresponse.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerpresetsummary.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerstatus.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerupdaterequest.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerwebhookevent.go create mode 100644 tests/mockserver/internal/sdk/models/components/platformtriggerwithsecret.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformtriggerpresetseventssearch.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformtriggerpresetsget.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformtriggerpresetsinputvalueslist.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformtriggerpresetslist.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformtriggerscreate.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformtriggersdelete.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformtriggerseventssearch.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformtriggersget.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformtriggerslist.go create mode 100644 tests/mockserver/internal/sdk/models/operations/platformtriggersupdate.go create mode 100644 tests/triggers_test.go create mode 100644 triggers.go diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index aac2b353..123dfbb2 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,25 +1,26 @@ lockVersion: 2.0.0 id: 9d90eb9e-33f8-4170-8944-988f4000aad0 management: - docChecksum: 1d1c4c798b764226bfeeae4268f907c1 + docChecksum: 23bc36681c86f15ea07a6f837d426164 docVersion: 0.9.0 - speakeasyVersion: 1.792.0 - generationVersion: 2.927.0 - releaseVersion: 0.13.5 - configChecksum: 009b543f108a1c88bc5f2c93ec966cfc + speakeasyVersion: 1.795.0 + generationVersion: 2.931.0 + releaseVersion: 0.14.0 + configChecksum: bd647861196c882cd8f159366b16f550 repoURL: https://github.com/gleanwork/api-client-go.git installationURL: https://github.com/gleanwork/api-client-go persistentEdits: - generation_id: 1076cd3e-e245-4c8d-ba4c-cebe3adc310c - pristine_commit_hash: a33bd9d4d695cbe390f953b8791b4bfeaa3ea4a5 - pristine_tree_hash: aaf556862da09703cdd0e8d843fd745cf3e54b8e + generation_id: d43edb35-fba4-4ad6-b9ed-a376d3970f30 + pristine_commit_hash: aaf805bbf349b9ea961de5ffd314c105940be9c2 + pristine_tree_hash: fcf78ac2c5e17e0995f9656d612e651b737e8551 features: go: acceptHeaders: 2.81.2 additionalDependencies: 0.1.0 additionalProperties: 0.1.3 + callbacks: 1.0.0 constsAndDefaults: 0.1.14 - core: 3.13.47 + core: 3.13.48 defaultEnabledRetries: 0.2.0 deprecations: 2.81.3 devContainers: 2.90.0 @@ -32,6 +33,7 @@ features: globalSecurityFlattening: 0.1.0 globalServerURLs: 2.83.1 groups: 2.81.3 + inputOutputModels: 2.83.0 intellisenseMarkdownSupport: 0.1.0 methodServerURLs: 2.82.2 mockServer: 0.1.4 @@ -41,7 +43,7 @@ features: retries: 2.84.3 sdkHooks: 0.3.0 tests: 0.16.8 - unions: 2.87.8 + unions: 2.87.9 uploadStreams: 0.1.0 trackedFiles: .devcontainer/README.md: @@ -164,6 +166,14 @@ trackedFiles: id: c08aa0388bcf last_write_checksum: sha1:84c7755ed2920e0a1a8d85c70fb179cf7f0c82ed pristine_git_object: ad10e7cac86380d17f58058830f1893b15963ed3 + docs/models/callbacks/platformtriggerscreatetriggerwebhookeventrequest.md: + id: fd5ae7699fa9 + last_write_checksum: sha1:490bd46b01aeea0100e5d2aeed754345bcd09650 + pristine_git_object: 45e45a1e5ec2896c16701c17568654249a8cdfe2 + docs/models/callbacks/platformtriggerscreatetriggerwebhookeventresponse.md: + id: 4c291c2bd80c + last_write_checksum: sha1:58734c37e596428bfa4a44b58f3797c57c8a57e5 + pristine_git_object: 5cadc3d7d43704a44d5b82c0734e7b1934672332 docs/models/components/accessrequestpermissiondeniedresponseerrortype.md: id: e1f9efd58195 last_write_checksum: sha1:3d8b6295d5cce5e5f8b6d9a9426ad797a5fee455 @@ -494,12 +504,16 @@ trackedFiles: pristine_git_object: ed3dbd6238b3512decd4c1d2315a9bd9aa1bfe4e docs/models/components/calendarevent.md: id: 7d3368213748 - last_write_checksum: sha1:de1b435389362a78c511bc06292a138624386d92 - pristine_git_object: e38fabdfe14a6091ac1e58387e3d86cc0bec3a4e + last_write_checksum: sha1:daa2d30b34567cf2d72b0ca3577070a308923aa8 + pristine_git_object: 6471bf39f31dd4842d755d9553e19043ca54e22c docs/models/components/calendareventeventtype.md: id: ead997d06c1e last_write_checksum: sha1:108a60c66038012c2a2ef84b8dbf5dc90e13b90a pristine_git_object: 21610568e85225c8190cdd03d9f698f5e3e78b30 + docs/models/components/calendarroombookingstatus.md: + id: e9b0a5b6c161 + last_write_checksum: sha1:8f9f1c89762570072db703fba31c012cd3cdcacc + pristine_git_object: b6b76d47606065d65df2db66d2853707f97beb4a docs/models/components/canonicalizingregextype.md: id: 57228d58fb12 last_write_checksum: sha1:fd95be3787147dd5e9ed15a72eca1cd025756eaf @@ -1326,8 +1340,8 @@ trackedFiles: pristine_git_object: c8e4adbb9259788d825acac24b08c9cd9afca960 docs/models/components/feedrequestcategory.md: id: 801f1c3c64d4 - last_write_checksum: sha1:f97f8f6b17de2bba01ce4bdbd3d13aebfc16ea4f - pristine_git_object: 66caa43b8c288af71af88b673dbf1316240a80e3 + last_write_checksum: sha1:cd59f318944cac895b833bf17d98f26a3e52bfd3 + pristine_git_object: 56e58281cf9421c8e0a202ec57d41fd639bff101 docs/models/components/feedrequestoptions.md: id: 76c5e4412304 last_write_checksum: sha1:674915ceaa3b9eec9d9543dc9f0e6a85b394174e @@ -1338,12 +1352,12 @@ trackedFiles: pristine_git_object: c053a79c66be5570c7e8dfb13885f5c0c050a574 docs/models/components/feedresult.md: id: c3084f56c0cc - last_write_checksum: sha1:b5233d7c70106e8c18d14ff9e9afd99bc28f4b62 - pristine_git_object: a3d714f78ae220cd1f1ebda6e5c4ae2d51846208 + last_write_checksum: sha1:e9de20975cde711bb72d4eac60061539cbc63752 + pristine_git_object: 86a3734a33e235d580f920fc6402a48ecfaaf1b4 docs/models/components/feedresultcategory.md: id: 94c0249352b4 - last_write_checksum: sha1:3c05a30dd4cc0a14044287bd80687e61bbc44a1f - pristine_git_object: 08e487bf5a03d4b1ecff4d5c44405c15f46cd904 + last_write_checksum: sha1:967947937a67330872b7c9d66d6caedf0deeb13a + pristine_git_object: d549449ab3dd4cfc67c8006eb60c3764cdcdd7ca docs/models/components/fieldscope.md: id: 23caffb85bb7 last_write_checksum: sha1:65cdffa9b7bf28a760c906f49dc7417f37b9e56f @@ -1626,8 +1640,8 @@ trackedFiles: pristine_git_object: 7245436eb7626f13e41555443aaf1d77cb6a32a5 docs/models/components/input.md: id: ea03f2204b6f - last_write_checksum: sha1:705d56022c8ff0f21cae2674ebd1c32fa9f914b7 - pristine_git_object: 2a0ab5b6ad0955da1f7ec9c7aac785cdfa8201c1 + last_write_checksum: sha1:d111b4af4fa9367f70720694de0e61acc0d35dbe + pristine_git_object: 8756e294496916489959f8335346e4fcd838dc59 docs/models/components/inputoptions.md: id: 62e10ac3918a last_write_checksum: sha1:241bf9d7c639556b8f46d8cfbd5d021c5960014c @@ -1682,8 +1696,8 @@ trackedFiles: pristine_git_object: 229c8af1dcde17c3b4507889380258a7d2bb939d docs/models/components/justificationtype.md: id: 5a15880767a5 - last_write_checksum: sha1:3966d475972ebd14cc3610725134db18e9921a58 - pristine_git_object: 939bec1f87a71c57589f59f2d313f62c04cb4261 + last_write_checksum: sha1:2c75506cd3d934e04862098cf0c73c2ef4869306 + pristine_git_object: 49e4b1739fdf686d750b13f7361f4f11bf4e2aff docs/models/components/knowledgetype.md: id: cf27a7cefa69 last_write_checksum: sha1:f7294d6350e558a0a626ac41241ccbf0facacf10 @@ -1854,8 +1868,8 @@ trackedFiles: pristine_git_object: 83dbfe6a75dc23cdc053ae56998a0266d827c282 docs/models/components/object.md: id: 12d150071fde - last_write_checksum: sha1:50c3bc5d0640d93983362b48a61a98b2189767c4 - pristine_git_object: f53946adce43e231034b6511f229e37a30e8e085 + last_write_checksum: sha1:84563215d4ad478bc62d257f94794d48355d19b0 + pristine_git_object: 1066842b8b90a526a6e7a8017864b00125a7a6f4 docs/models/components/objectdefinition.md: id: 62ae4ce20229 last_write_checksum: sha1:b6252b452c62e9815f899fb3d92dabad987ddb76 @@ -1966,8 +1980,8 @@ trackedFiles: pristine_git_object: 9d48703e1b73640c405b8d69c59f392333053671 docs/models/components/placementreason.md: id: 4aca343a58b8 - last_write_checksum: sha1:53884c743cf61c80b110a1d4f32d33efc2b79d28 - pristine_git_object: 3a28581375dae69fbba45979f294764aa0b537a0 + last_write_checksum: sha1:c2156b5fa8fc7ea923df58268a5f7ba35a40b622 + pristine_git_object: 664d0151931637202c469d4bb49893d8c54e43b1 docs/models/components/platformactionsummary.md: id: 93ecbff93962 last_write_checksum: sha1:81cb0da4be5b2978c5f51302a3053b23665f6142 @@ -2022,8 +2036,8 @@ trackedFiles: pristine_git_object: 76652b740c6d10addf1634c8c5665018a5e1c198 docs/models/components/platformchatcitationannotationtype.md: id: a4ad1507c330 - last_write_checksum: sha1:ff20e8b2053c83aa863946a938fa21a96cd4a678 - pristine_git_object: d2e7cca93f732f85e6ecac5b8239b82b73c3ca7e + last_write_checksum: sha1:913738c274a287c18e556d48875fa1f253ffa086 + pristine_git_object: da218274e3e9fe86c183c343858f06b15e23d8ad docs/models/components/platformchatcitationsnippet.md: id: 2d053c4698b7 last_write_checksum: sha1:f0f0cb20f25c0115d3cfe99e53489792930ba95f @@ -2038,20 +2052,20 @@ trackedFiles: pristine_git_object: 4d31dcef7d3b9666f13606073998c5dca724ef81 docs/models/components/platformchatcompletedresponsestatus.md: id: c0af5424b1a3 - last_write_checksum: sha1:748d4a7519b982b5d430221ad7391f2d100bbd73 - pristine_git_object: 63e07cdad364020242cee20094cd871c7da7354a + last_write_checksum: sha1:8f18f8c3ed8a9f934d71ea16b05567229a89a7cb + pristine_git_object: e8a35f657c8621fd4dd507626428a0eda5cd8d23 docs/models/components/platformchatcreaterequest.md: id: af3d88254add - last_write_checksum: sha1:62842f122b1a9a3c5a858058b23bdc0645e1b397 - pristine_git_object: 62a4f19f4869831dac2d8c8422d211f3736a110b + last_write_checksum: sha1:99a1995b9eaf4e4ca87f9f3415c5be701b63b4e9 + pristine_git_object: e03390f12e8a6b2d66f8317fc93891e3ceef17f2 docs/models/components/platformchatcustomentitysource.md: id: c6cba9d9b3a1 last_write_checksum: sha1:d5fbbc20fed4b934abbb3b0f3131a8c9323bc5dd pristine_git_object: 6fc52ddbb3c8c17c3764177e59044a29993f4646 docs/models/components/platformchatcustomentitysourcetype.md: id: 1686e673d2ce - last_write_checksum: sha1:760df686f4d1025fca26fff1c30ea34131dbab49 - pristine_git_object: 2be8235a9d1debe8d9f9a0572ca5cb63ae93c6d6 + last_write_checksum: sha1:4dd3838d8ca163d9561005695b3a003f5c1f9878 + pristine_git_object: 93da64c4813e6e1d2ca243dd948ffc2dce6c9062 docs/models/components/platformchatdocumentsource.md: id: 617dca740a9f last_write_checksum: sha1:1d465a260bf02b3b114259ddb0fa9fb6310b2169 @@ -2066,56 +2080,60 @@ trackedFiles: pristine_git_object: 4ae777feee553b3ead1782f5bb28a8951b5b231a docs/models/components/platformchatdocumentsourcetype1.md: id: 8d72cb90f74a - last_write_checksum: sha1:e339ed38a7021280ae0a666809695d2559ff2986 - pristine_git_object: 98714fb9aae082f99eecb1a951d2cadd92c28803 + last_write_checksum: sha1:4787ea9d81b322644b5b3ac390a65094e486b416 + pristine_git_object: 5b0ec56861da13425b088a9e21a22862ec952090 docs/models/components/platformchatdocumentsourcetype2.md: id: 09b92f604a92 - last_write_checksum: sha1:35f5241f8172044699b84f68b7989b1a7373e766 - pristine_git_object: ae8b6c0e5f83841853b8d386844f3bcaab080af7 + last_write_checksum: sha1:2a18f6fa8ca18f936e850cf2a470e868e840f32c + pristine_git_object: 6de9d2edc473490b5763c37d647c3afc637daa64 docs/models/components/platformchatfilesource.md: id: 53441e77a478 last_write_checksum: sha1:1b94fa0f86ae7898ce4fe4dca532024d2bc07687 pristine_git_object: 83b010c5f3e222923d5e9b2d6001c520e05a600b docs/models/components/platformchatfilesourcetype.md: id: ac2f5e034fdd - last_write_checksum: sha1:9e4aea32d33641d55d76bc2f90b74ecfbc4edcaf - pristine_git_object: 703d042e0c2710511e8ca1aabc19114a7aec13fd + last_write_checksum: sha1:8aece90b8a7af1377d81b824c3887bf9f3efc5fb + pristine_git_object: f8d71d01cb62641585ab1d2792619b9ab4ffa09f docs/models/components/platformchatinputmessage.md: id: 482fd05bd77f last_write_checksum: sha1:fdfd28412fee17045c35d6307ff0b255ba164b98 pristine_git_object: 7b5561a086ba3ad11a99706d3d92124b44826f51 docs/models/components/platformchatinputmessagerole.md: id: d433e7bbef35 - last_write_checksum: sha1:3a7e251ba1e8f94d15d69d55d7becd6085690bdf - pristine_git_object: 07e684297c00b2ea82c19ce70e889c7a2757fa43 + last_write_checksum: sha1:96ba61d8e70c8bf65248cabc8e87da18f25e2443 + pristine_git_object: 96b25bc9714c603b63a073911e4993616a0c9623 docs/models/components/platformchatoutputmessage.md: id: 06f5e11e058a last_write_checksum: sha1:73ffe24339285866a2bb28a600c320c92ceaa70d pristine_git_object: c33fc257c958e14ed0833ed62cc3d6815b1bdcd9 docs/models/components/platformchatoutputmessagerole.md: id: cfd66f34b70b - last_write_checksum: sha1:5ad007c990e96fe445c66d3f7ab12e0cd7133368 - pristine_git_object: 3fa000446ed70a0a5c3b922d7144561dea268937 + last_write_checksum: sha1:c2081d7b4e57b334fe3f96f5adc1034d73a89ce3 + pristine_git_object: d3a78b142ccafa900cf01278ef448db5b43325be docs/models/components/platformchatoutputmessagetype.md: id: 488f9e7e5a1b - last_write_checksum: sha1:c342745be235201e93f2f5641e574336ab3f1e1a - pristine_git_object: 44e22b6dc524fc311678c2b29539531929c66bef + last_write_checksum: sha1:6c14f25dbf6bef70ad941450546dc99e2ac55151 + pristine_git_object: 33fa46bceab6eba07b946cda7b5f4558bb23c7c2 docs/models/components/platformchatoutputtextcontent.md: id: 41ecc87e478f last_write_checksum: sha1:ff82c2a42a0e4a9fcee99eac25ae1645e1324a62 pristine_git_object: 6c9f40393cb6c57b3b052c04842d7575a1db8372 docs/models/components/platformchatoutputtextcontenttype.md: id: 12dc2e11fdf6 - last_write_checksum: sha1:414f3649d62902b7b78b290984d8335b0df97f64 - pristine_git_object: 0ab1b9bf526a9a84803c4433c317a0d241566fc6 + last_write_checksum: sha1:c88f6b705823a0493f4b5946fd9e8a144f2afc98 + pristine_git_object: a8a44c8782fd973c240ca29641a48e82a0f7fdb0 docs/models/components/platformchatpersonsource.md: id: 853620498d42 last_write_checksum: sha1:9273f7cac63ee7c4cb9c1338f21f5fed52e80a13 pristine_git_object: 037b6b6b3f855bb8c6b9f16f89792ed921b9eeb7 docs/models/components/platformchatpersonsourcetype.md: id: 76448f09c0da - last_write_checksum: sha1:3712c74a195ebcdc6928aab70f8d30bd47b4a4fe - pristine_git_object: cf9c50bf4fe2470daf504b5c1df87375cb230656 + last_write_checksum: sha1:3200391be303c5899cd3cb9be7b0f92e7dca7fee + pristine_git_object: 66b4216eee2f4c39d98a20a3497c3a2833b8603b + docs/models/components/platformcontentschedulewebhookevent.md: + id: 889cf2a8f5f3 + last_write_checksum: sha1:f45849d9475e8469e5f1fb4227442b09fe29ca57 + pristine_git_object: 9c369281df0f41e5252181815f4c80f0608eaa33 docs/models/components/platformcontenttype.md: id: f5a30f465d14 last_write_checksum: sha1:a7d4481fbe152426f0aad9faa59cb9b0a30a42fc @@ -2124,6 +2142,10 @@ trackedFiles: id: a136737cacdd last_write_checksum: sha1:c3a69a035b630540517c648f45bd06c04052e396 pristine_git_object: c93302d28fa78efb6f7915e494b5cc60a8934d41 + docs/models/components/platformdocumentchangewebhookevent.md: + id: a9c5d462f657 + last_write_checksum: sha1:da017c178fad90c4bc9874cfb9712d55b0b31424 + pristine_git_object: f6ecd25db1d046fa947157eae5a665178eade0c9 docs/models/components/platformfilter.md: id: 97ac5bc59c2c last_write_checksum: sha1:a494626c2bffdca982c62513ae59162808dd51d3 @@ -2316,6 +2338,118 @@ trackedFiles: id: d2e589bb488c last_write_checksum: sha1:61236d3fb6f05a246d0a61150bf2456c18cfd7f5 pristine_git_object: 8053e5cef58cb3e44add4ab325cb894999f25fc8 + docs/models/components/platformtrigger.md: + id: 32a12f673811 + last_write_checksum: sha1:6b41ccad70dc2a650cc9015683cda5f59913cb8c + pristine_git_object: c50d852a5246a6a413c6567c9d7c4ba1819324b6 + docs/models/components/platformtriggerauth.md: + id: 93d59d8bcfdb + last_write_checksum: sha1:75b1572a6aca1b8bf8fa1ceb38c58ed128440e04 + pristine_git_object: 9923be96ad8f0f52d9c30f4f0d120ab1f2f56c06 + docs/models/components/platformtriggerauthoutput.md: + id: e18beb5a055c + last_write_checksum: sha1:0571778f8a99b492352390cb43f237745a3a91ff + pristine_git_object: e0f81bf03458cec397f81efa32ac3a0bc39cfb97 + docs/models/components/platformtriggerauthtype.md: + id: 76662866ae7f + last_write_checksum: sha1:1663b55a0fe23de1d6b6f9773c7e89d77957f35e + pristine_git_object: 7ed1d575bf289b72be9d558865d922a1aa341da8 + docs/models/components/platformtriggercreaterequest.md: + id: a97627618e38 + last_write_checksum: sha1:3235dd196e5263faa77c0a0cd4d585f5bf4f478c + pristine_git_object: 14594c154c124e555b31d3edd21c35b373393dbe + docs/models/components/platformtriggercreateresponse.md: + id: fa81b7ea6f02 + last_write_checksum: sha1:8a9c3dff9dbc4413ce2b544fa75a40cda3ec8ff3 + pristine_git_object: fb70cad0f79b35d5e31da4f1eacee4cdbcdb6e8a + docs/models/components/platformtriggerdelivery.md: + id: 27acedd99596 + last_write_checksum: sha1:3112acc8fc766991d8ff74e7aeff231d9f6260d2 + pristine_git_object: edd0a4d74fafac9a1c0a24b5f35d5eb7169df24d + docs/models/components/platformtriggerdeliveryoutput.md: + id: d43d76e3de5a + last_write_checksum: sha1:5e0a56d512a76e6cb1df938f52724b69be0fc2bf + pristine_git_object: 4409b0c4fe1d0113bd92469c74d2a01a9caa3de0 + docs/models/components/platformtriggerevent.md: + id: 9f2ebb43fbec + last_write_checksum: sha1:529acc6aa2be2c8f66d1d2a2b796b8c9a3131967 + pristine_git_object: e3e428dadb43657984281987bfa400c2f45b9f3a + docs/models/components/platformtriggereventreason.md: + id: 09d9f792a0e5 + last_write_checksum: sha1:8e668a1fbbf7bea51bbfdfba84c21ca65e7ecdf7 + pristine_git_object: e672d5fcf3bea063f53ea16fcbab4d318b186dc3 + docs/models/components/platformtriggereventsearchrequest.md: + id: 61f9e0c276a4 + last_write_checksum: sha1:47faeae7ae979322001831b194e6621f1ed7cac1 + pristine_git_object: 68bb2ce618d78a88917e221711e0eb8462c626d7 + docs/models/components/platformtriggereventsearchresponse.md: + id: 85395bd452f0 + last_write_checksum: sha1:d02c1db7bb40e24081f877f446e0fb576f3c1d96 + pristine_git_object: d925a0a93da0a6559092a423a2a8db36534c09cf + docs/models/components/platformtriggereventtype.md: + id: 372fce2173ad + last_write_checksum: sha1:911222156e0ca6843ee8d2b50a0794bdb0815874 + pristine_git_object: 0411e93a64c46b2edcfd3a372d314e308e504c69 + docs/models/components/platformtriggergetresponse.md: + id: 04a870f974c5 + last_write_checksum: sha1:c7cfa6aee515c7be5df432c6417c6d327ab8882c + pristine_git_object: 5db5d715466f90b10f973b66c80bf264a4a87559 + docs/models/components/platformtriggerlistresponse.md: + id: 7193b491b236 + last_write_checksum: sha1:e34ed2f8d72b829bca17504d516e85e5a4d5a781 + pristine_git_object: d777dc94f58582a3efddbdbbe959a0ae4364802e + docs/models/components/platformtriggerpreset.md: + id: 8dab5ee09132 + last_write_checksum: sha1:41ca478253957bd22d614e4ccf1b06fcd2e74057 + pristine_git_object: 804889275d077ba11c8cf9fb14e9177345e509eb + docs/models/components/platformtriggerpreseteventsearchrequest.md: + id: 232bb5d70f19 + last_write_checksum: sha1:8bbee66cbc7ae66fb94daa2dee601bf78c5043b0 + pristine_git_object: c1412ac8e164a265ee29bf0dc91be0e6c8f779c5 + docs/models/components/platformtriggerpresetgetresponse.md: + id: d93f7d84a9b4 + last_write_checksum: sha1:f3ebcbd4818e3339d5670121cf52f32151c1095e + pristine_git_object: 0c4dda454014f1f2c1fef354e4143076bd8a2343 + docs/models/components/platformtriggerpresetinput.md: + id: 75dfb9fce60e + last_write_checksum: sha1:5ef93c7ed8bb72ec925fe379064632c0ef3a8b9e + pristine_git_object: b31a70eae584c0ce87bc57b2c57a084cd0caa86e + docs/models/components/platformtriggerpresetinputtype.md: + id: 5403fe42b56a + last_write_checksum: sha1:fad4862f106faa678d21305c9856e883a797cee1 + pristine_git_object: 76f37ed0ee35525367770cd43b3ea4164d64861d + docs/models/components/platformtriggerpresetinputvalue.md: + id: ea912180a24b + last_write_checksum: sha1:0d25a5641d1e086a862cf486b60bab975aa27530 + pristine_git_object: 18e26e5c3b65bedbfd6147190d5e9afbcae60f21 + docs/models/components/platformtriggerpresetinputvaluelistresponse.md: + id: 0a02b101babf + last_write_checksum: sha1:6c3b0578b0f5a4b20cd603e83b5cc18280d049f4 + pristine_git_object: 50287ce01a7a0bf925b61da7536dddb630560e15 + docs/models/components/platformtriggerpresetlistresponse.md: + id: bab71c3f1873 + last_write_checksum: sha1:df9a291340f98e7c6298ea0f650355d287647063 + pristine_git_object: 1a67abb1b30bf02c506b75c1a4ef7ed1108d5e7e + docs/models/components/platformtriggerpresetsummary.md: + id: d217348ad46c + last_write_checksum: sha1:c45e58d9799dc16821635da3ff4a63166953ab19 + pristine_git_object: 2d3d42b1814bc5b6078b331d87db2f6db347597e + docs/models/components/platformtriggerstatus.md: + id: acc0ffd5e2f3 + last_write_checksum: sha1:f6d51c43e9b3f510dd432a8dcfcb7686cd37049e + pristine_git_object: 02ab141723a95d3dbc737fd3ab956e4bcccc312f + docs/models/components/platformtriggerupdaterequest.md: + id: 20c0e1b0b8bc + last_write_checksum: sha1:2835c278286e02afef3d606534012db6b1e77751 + pristine_git_object: 6315cd4f01d548d9f37939ac648e90620b15fa05 + docs/models/components/platformtriggerwebhookevent.md: + id: 8ce4a6161e45 + last_write_checksum: sha1:948bbb5e5ecbd909922a07cc3ad8b1a12d0c9879 + pristine_git_object: 3371754f90c39b8bb29dcf90f1a06a07503703ef + docs/models/components/platformtriggerwithsecret.md: + id: 8869d4f7bd58 + last_write_checksum: sha1:35bef8d0ffd6d0ee9cea926f6d46581a3f5a3afe + pristine_git_object: 80bda37cd23ff555fc912854d454872f17597aa8 docs/models/components/platformwarning.md: id: 615bac51a737 last_write_checksum: sha1:30e98019512a48366ad1860df5007cb4674a1cc4 @@ -3764,6 +3898,82 @@ trackedFiles: id: 082d7738cd8a last_write_checksum: sha1:066ca466145b6368acbb1b284262907d625406e4 pristine_git_object: 0793239c81dde3a11501a480abf0571692600945 + docs/models/operations/platformtriggerpresetseventssearchrequest.md: + id: e7975eb729f5 + last_write_checksum: sha1:79945b1f32c004362f56bb1966403aa6f3ed3ec8 + pristine_git_object: f53280461d62b8ccdb491285bc137247d03d92c6 + docs/models/operations/platformtriggerpresetseventssearchresponse.md: + id: 2c25b3894e97 + last_write_checksum: sha1:836797e3e403f0127ac2ce481ed4fb79487c30ff + pristine_git_object: c47d562725ef58d01817261facc49f04dc83c073 + docs/models/operations/platformtriggerpresetsgetrequest.md: + id: 1c73fba32272 + last_write_checksum: sha1:d45945c6146f5702591576867330a32bbfabd1d9 + pristine_git_object: 872b57c1b363b3f0916361de0c6f097ef8a4c22f + docs/models/operations/platformtriggerpresetsgetresponse.md: + id: e7817c10e75f + last_write_checksum: sha1:b14d716985809f3d62ac0c4c240510b0c23e62cb + pristine_git_object: 44ede5df49dab18b7c12ccc37eef7514058dd64b + docs/models/operations/platformtriggerpresetsinputvalueslistrequest.md: + id: 2bcf296778c5 + last_write_checksum: sha1:4905dea1d48c748241b942dd54e455d7384c277e + pristine_git_object: 1b0a356960c7da5edbae86e0e3cb28c8a91462e4 + docs/models/operations/platformtriggerpresetsinputvalueslistresponse.md: + id: 04f67f8ad379 + last_write_checksum: sha1:0c885ba0f838198eeae67e24efcd9337524a9951 + pristine_git_object: 8c151c2cfd18786f68f8113fccadb67602bcfce8 + docs/models/operations/platformtriggerpresetslistrequest.md: + id: d5d046363585 + last_write_checksum: sha1:e2546415dcc0774913744af939cb0a4d67030d62 + pristine_git_object: 850d2bd5160e979e4f13d3532ff7e0f4849ba4f8 + docs/models/operations/platformtriggerpresetslistresponse.md: + id: 43099fad6d92 + last_write_checksum: sha1:ec1e3e3d22e5e79f1da29fe1202b1da659b582d2 + pristine_git_object: a9a70d5b435641b095d2527d196d9805033be9b2 + docs/models/operations/platformtriggerscreateresponse.md: + id: acca03064fa4 + last_write_checksum: sha1:18ff4e2f7c67d3baabd7d21d6371a4b669bcc3e7 + pristine_git_object: 27f4ea0d2213f22a99660008a4b18f820b1801be + docs/models/operations/platformtriggersdeleterequest.md: + id: 9d9c01c3ab75 + last_write_checksum: sha1:b58f2ba47123c1592e0417ba553ecf080d254cfc + pristine_git_object: cee82453d86f836495efe2a0e94a629af0f9acf6 + docs/models/operations/platformtriggersdeleteresponse.md: + id: 7d851fa3c489 + last_write_checksum: sha1:00a18020857a101b857a62440149ce16dffa073a + pristine_git_object: fe6597eb37356846a6b8f561023c08f70f9e86cf + docs/models/operations/platformtriggerseventssearchrequest.md: + id: b55312ea0a25 + last_write_checksum: sha1:94080f8eea4916398afdaa62d6f4192143a20101 + pristine_git_object: 6a6c45fb34795892e3caa1138e47d8f496fb5b2a + docs/models/operations/platformtriggerseventssearchresponse.md: + id: b096bc1f3aed + last_write_checksum: sha1:426fa10651f623b8a1b921aadb2de3858e4de0f2 + pristine_git_object: 80a6c0a764ccd76586670786f96d987ce2f74030 + docs/models/operations/platformtriggersgetrequest.md: + id: e6ec4199a6fc + last_write_checksum: sha1:f9fa2dfa7e3214537f5c49497e54db36454a140b + pristine_git_object: 7f6c6372a997c95e0c56c40e2eb94ef6097db377 + docs/models/operations/platformtriggersgetresponse.md: + id: 98042422f650 + last_write_checksum: sha1:507c9b190bdada90fea728e163dd2730aff83afa + pristine_git_object: 4e6798cb20b2698f8c075e5f4fdbb4504d9ad1ba + docs/models/operations/platformtriggerslistrequest.md: + id: f833e5ee0b52 + last_write_checksum: sha1:35d8f0f2c65c74343666f682a6d121f4cda1c580 + pristine_git_object: 3a1568a24a5ffe4b1960880e20a6e51b244ac7ef + docs/models/operations/platformtriggerslistresponse.md: + id: 975fdf032f4e + last_write_checksum: sha1:5dbfed99022351f33cf9b7ef875014ce6eb7f63e + pristine_git_object: b3243810f9ec8482557628b6378fb6750fe17535 + docs/models/operations/platformtriggersupdaterequest.md: + id: 501a8c9f6fd4 + last_write_checksum: sha1:d9365397991c8300ad3f4ad67af3527096d5ce29 + pristine_git_object: ec377395275726458911bf2d2175628ca11224a0 + docs/models/operations/platformtriggersupdateresponse.md: + id: ed404a140889 + last_write_checksum: sha1:52c67b1bab9574fee962f1b07e13216b3f087146 + pristine_git_object: 999794a5e431ef718a2fe1e0ae33f41d0c1755e7 docs/models/operations/postapiindexv1adddatasourceresponse.md: id: 6fe122d45c0b last_write_checksum: sha1:cda908b7a1c12d7638556f7c4573c97a50140504 @@ -4190,12 +4400,16 @@ trackedFiles: pristine_git_object: 15858805e5360381ad4da1bfdbac9e338dfd3b70 docs/sdks/skills/README.md: id: 3a14a5c90791 - last_write_checksum: sha1:7ee649cfe3f810f6b42f7b3d3740369b1591f427 - pristine_git_object: 80f048d5cbed50bd660bee376c8b326bd9f97cd0 + last_write_checksum: sha1:59daf47c9958bd48647727792825ab6335dd2c27 + pristine_git_object: 25e58ff3d2647bf54fc5a275f5f308c91a36e00a docs/sdks/tools/README.md: id: 044286549bac - last_write_checksum: sha1:09645f071599ed09e293b4e23cd2419868ccc1c1 - pristine_git_object: f8748ab1373eee3e7d0aee8180e68e7ad5b54fcd + last_write_checksum: sha1:a8e527fcecf1c5e4aa40492d811a7bcb3e955276 + pristine_git_object: cfce4a65de5be51f48da3c3934d2fb3db10e9cc7 + docs/sdks/triggers/README.md: + id: 6706220e8a9c + last_write_checksum: sha1:51acf5ace5baaa9f05663d2be966a96ac91dd27d + pristine_git_object: 9dd43ebaece278b0ff53aac0606a78c10b01c613 docs/sdks/verification/README.md: id: 8148670b64d3 last_write_checksum: sha1:644e22c050d13ef496bc2551f2f3944e6f4864de @@ -4218,8 +4432,8 @@ trackedFiles: pristine_git_object: a3cb3e5448f3fdcfad77ed2a4ba47ae848d5cd5d glean.go: id: f5ed099b8e85 - last_write_checksum: sha1:dd0ec8b40cf15bc08d6835dbef376f36a0b7bea0 - pristine_git_object: abdbc27bc95681e8ed6ae7fcba37b0904e9d6b6c + last_write_checksum: sha1:6d55b9b69daa1b815421059f6547023e424cf576 + pristine_git_object: 01e165950238e210cc0a5f60ef7d17f327b0d711 go.mod: id: c47645c391ad last_write_checksum: sha1:cf65a2c96e303858d4cf70e07d4c44d3f1c1db38 @@ -4356,6 +4570,10 @@ trackedFiles: id: 6648948f3476 last_write_checksum: sha1:cb1d93becb34766f24f8e186742c952a05f3fc08 pristine_git_object: 8355943ca53b6d04e02f6529aa0737745b3648ed + models/callbacks/platformtriggerscreate.go: + id: 326090b9c43e + last_write_checksum: sha1:5a67eba233cf2a2dbe076212bbfe228e84dfe492 + pristine_git_object: 31a73835b5688578adb1e30a211ec2d610426d1e models/components/accessrequestpermissiondeniedresponseerror.go: id: 7a823092a04a last_write_checksum: sha1:e32d7171635a47a47a09980f63a968d8d3c67499 @@ -4594,8 +4812,12 @@ trackedFiles: pristine_git_object: 240f90d0c2f911b759b9484aba5cd9731f399eee models/components/calendarevent.go: id: 570526f8283b - last_write_checksum: sha1:463dd96c062ffb702da3c722c6f4a3d86447b635 - pristine_git_object: b3ba02fd2fcbf6bdf207b76e982cd0cd6bbae607 + last_write_checksum: sha1:a59f5ced94de000bf409e14e6fd70352b60e1ef3 + pristine_git_object: 8bb8a7804e7ba6dfd5cb5774c116d313e29ffc22 + models/components/calendarroombookingstatus.go: + id: 758c0c6ec1d1 + last_write_checksum: sha1:9c3cfdd6f31a930315d94019b2f2790a963012d1 + pristine_git_object: 88f3e9f4ccf591cd2534768943f578ca6f0e4fef models/components/canonicalizingregextype.go: id: 128df92a2dab last_write_checksum: sha1:6f45df01dba6053b5a4b0ced400ba473762adc84 @@ -5266,12 +5488,12 @@ trackedFiles: pristine_git_object: 220dbff76d0d3d12e6bdcb05787a6df030124ca5 models/components/feedentry.go: id: 2826af1aa01a - last_write_checksum: sha1:0ca83b3619c37a03602d27bf0146e65bee1b7c9e - pristine_git_object: de252b0ff8f071f9b2ab01f2bf371b14ad396782 + last_write_checksum: sha1:593fcd084641d495b7f23e72e222ac9a114d458f + pristine_git_object: 9700fb61af8ed46ac7d01a312ebed3690815043f models/components/feedrequest.go: id: 9f0a682fc981 - last_write_checksum: sha1:bdcd950f3b30cacec8df265a5669c3a08f3a3b3a - pristine_git_object: 9e570b31eb51b22f73e043b7aa4316e11a83cf6a + last_write_checksum: sha1:a8e57020d73e09a8c1f8ea64c020401de8278623 + pristine_git_object: 283b42e058492f62bd999765d54ad4b11e2d11ec models/components/feedrequestoptions.go: id: a56c104c989d last_write_checksum: sha1:7f238a9abb079c78202b1a9f65c87b82420f63ec @@ -5282,8 +5504,8 @@ trackedFiles: pristine_git_object: 60cb4b19cbb9bd29e37128e3110b2bf0a8f80d30 models/components/feedresult.go: id: f017ac6e3ac3 - last_write_checksum: sha1:5b3d26aeb17d1344d2da336ea75c160472b13dd5 - pristine_git_object: f809c38f4e1d71b5a9fa326d5b68b4f72afa78fc + last_write_checksum: sha1:1abcc7b8195a71e4662a239d7cd3735173460a4e + pristine_git_object: 8bb88191035641cb4da60d873b3a7d07ab8f99a0 models/components/followupaction.go: id: aba266d23418 last_write_checksum: sha1:0a17407e6beba30680e5c38151e426a5ce7aab76 @@ -5794,8 +6016,8 @@ trackedFiles: pristine_git_object: c514d914cde6043b43188e78df27207d99ccd40a models/components/platformchatcitationannotation.go: id: af62f8b4d2cd - last_write_checksum: sha1:f978cc367732d234aa3b200f7be01bf5b5038dac - pristine_git_object: 684bad9726826ef503404e1057e11f855adcbd5a + last_write_checksum: sha1:e36119e7368d3748cd8b23ee42ba4eaeb3420c78 + pristine_git_object: 26698e4dc22fa87fcdce2024652c9d35e0cbc424 models/components/platformchatcitationsnippet.go: id: bb3930e9c61d last_write_checksum: sha1:25f5ceaabe32ea2756778875944d27485c9da3aa @@ -5806,40 +6028,44 @@ trackedFiles: pristine_git_object: 5143441357107b9d383073a65f66d15281cbcc51 models/components/platformchatcompletedresponse.go: id: 9e69fad32e15 - last_write_checksum: sha1:c3fa3bbf0c61cb98be70880e49732eb2e47733ad - pristine_git_object: b2b39b5bbf486ea2cf61ce8f6c5f4c293a5973c9 + last_write_checksum: sha1:1968f4847d64201428238469189c25a3cb73e7b3 + pristine_git_object: 6a3ae7740837de9ea423a448ca8215aab4f0bf91 models/components/platformchatcreaterequest.go: id: 403def909f16 - last_write_checksum: sha1:944a572893805246137ac2910bb7407f691ad4fc - pristine_git_object: 222653701e6315a8ca39d1591214652c35752051 + last_write_checksum: sha1:581a0f53c30903a4d9a7c632e6f1dcd56443097f + pristine_git_object: 108385f2c5fd19c22dadbb2008288f6fdf0fffe3 models/components/platformchatcustomentitysource.go: id: abc38257b700 - last_write_checksum: sha1:f4dce11fd569fb7acad13ff10d11ddabae55e24d - pristine_git_object: cc4cc754c842e89338dbce43c797c57c28bb4b9c + last_write_checksum: sha1:6fe0f94fa57ea5922bb4c7315f66138c5f113e9a + pristine_git_object: a66d9312cae0041e06fdf3a3b4cdcf17ea945da1 models/components/platformchatdocumentsource.go: id: afb0200c7212 - last_write_checksum: sha1:fd6977e6984de651c57a0766aafd479f7504747c - pristine_git_object: 3c56f4d672d6ace67d60e833f9adadd4b81b3873 + last_write_checksum: sha1:548ece3a19d70d45c54ddf01c2671034e4536837 + pristine_git_object: f87448db509eab101631589acf5f76a63ccad416 models/components/platformchatfilesource.go: id: 2d22b2015343 - last_write_checksum: sha1:d2343a100a92ad33e13e3c9f584e7cc1d1c17b34 - pristine_git_object: 0f523542303b4bc39b87af5fa179cc0f2843f922 + last_write_checksum: sha1:2184fae2538c919f008a1042d4e7325ddd147557 + pristine_git_object: ba46db41bf0ca0205c34316ae7410535dce42c90 models/components/platformchatinputmessage.go: id: 577974bd3a40 - last_write_checksum: sha1:ce19786ef4ae354dd4b27e97d914a6459f3fbdf0 - pristine_git_object: 04171d05f9dd11ebb8dbdbb6c74c75859b9f2eda + last_write_checksum: sha1:1c4e4ef333e9e507ebcce9318b02ff48941db332 + pristine_git_object: 18221040a6701124b81f121e36ac3b25d7d10b9a models/components/platformchatoutputmessage.go: id: c04115e996ec - last_write_checksum: sha1:a7ebd813ddd44c4b92b5e6c56f1ee622d1ae2470 - pristine_git_object: b606d34be2d6e95b78cfd942a404f773a38b9289 + last_write_checksum: sha1:ea846ac105f8d84917c3b4ed0bc7860ece682cb3 + pristine_git_object: 768adc89973de8a753e8f9a3e5cf96326959ffad models/components/platformchatoutputtextcontent.go: id: e6c4b8aa2653 - last_write_checksum: sha1:f466c461a38c922cc6f0131d5e435f388307c800 - pristine_git_object: 003b42bfa9335a2e378fd63ecfcbc61cd529dff1 + last_write_checksum: sha1:1e0b863623c2927be68a0908c6cfd4380c471e28 + pristine_git_object: beb7f496d6633975fb0fbfcc8dee04c1335546b7 models/components/platformchatpersonsource.go: id: 38616021af6a - last_write_checksum: sha1:4f867548caedb16307af814e6da51a32e2234c24 - pristine_git_object: ed46b5df8d05ee73b92b754d52125b625b10f42f + last_write_checksum: sha1:d7511cd57b585803f0797dd17917d7c3e7a219e7 + pristine_git_object: 665461e1bdfebd4a064df0cb8e681d51b5e573ea + models/components/platformcontentschedulewebhookevent.go: + id: adbbe4c6b378 + last_write_checksum: sha1:ee7ba967c1c07210b1c3a031778e7417313c58bc + pristine_git_object: aa5d2b90b9039810f7830fa9d88fc6541744fcd6 models/components/platformcontenttype.go: id: 30e828cf6d8c last_write_checksum: sha1:b552f26421544664b54a4423c8335c90b09480c6 @@ -5848,6 +6074,10 @@ trackedFiles: id: fc3bda8b8b37 last_write_checksum: sha1:2ad5f5d73bb9d5cc7846e19ebf8ae36b541b805f pristine_git_object: 0018cda914da91d0a0dbe81b7dc31ef23ed8e5b2 + models/components/platformdocumentchangewebhookevent.go: + id: b89aac2687a9 + last_write_checksum: sha1:c10a1e2448213c920b1bc4f72473e5d75d022c89 + pristine_git_object: 4dccb7a482ac6a471561ebea730079233597cd64 models/components/platformfilter.go: id: a50e32890c64 last_write_checksum: sha1:f7195ed299e25135e21b473e01e8ca8696e7d04b @@ -6028,6 +6258,110 @@ trackedFiles: id: f0d79b3ada90 last_write_checksum: sha1:736cbfaac97901328f8d421406492a94be6ce71c pristine_git_object: dcd741a9dfbd7da4f22a973ee3eaa395ccf31418 + models/components/platformtrigger.go: + id: 136d24346f04 + last_write_checksum: sha1:f1215bf760f196ed518511a6ccc8b35a3755a139 + pristine_git_object: cf174cd4da223909d8f6b0627a8e97ae6b615b6d + models/components/platformtriggerauthoutput.go: + id: 89b4a925fb10 + last_write_checksum: sha1:28b3635b9276de66fb60d0b1942b26ef5a130a6a + pristine_git_object: 2f39caa6af9c04b8a72806014ac86d941704ce7c + models/components/platformtriggercreaterequest.go: + id: 88c7bb3acd20 + last_write_checksum: sha1:b2a322a96297c7e1974aedf632b9b4ee2b7bbe9f + pristine_git_object: c07d2555272c22372c74cb34f269f261c96f099c + models/components/platformtriggercreateresponse.go: + id: 5e23bb93413c + last_write_checksum: sha1:67a4a9b77d42c1e59ef4534fe5657ec3281941ca + pristine_git_object: ac60c07bec0fa227261315ebbab280317db3853c + models/components/platformtriggerdelivery.go: + id: d7db5694de8b + last_write_checksum: sha1:5eed67d186b1f4fcbee1a352478beb0f0da94a0c + pristine_git_object: 50fe8a3d92fe74bb62bfa1a8bfa761cd6103fda0 + models/components/platformtriggerdeliveryoutput.go: + id: 371dd89e6266 + last_write_checksum: sha1:fa16de785f227d29e6c122cf91a39e91f3f1c6a8 + pristine_git_object: 7d67a082bb7d19a5c6089ac4e59ab78442573cc0 + models/components/platformtriggerevent.go: + id: b5ba54233c5f + last_write_checksum: sha1:a1c31986ce5218649175b72c9ca055e206ce91e8 + pristine_git_object: 7b0ec2e9355ed7b4f26abcc6476f1741a02ba67e + models/components/platformtriggereventreason.go: + id: df5441938973 + last_write_checksum: sha1:6f16d410d9d68ad57942216b7d2a3f7e5d4ca588 + pristine_git_object: c565077411b5d9951e11d9bf14e42f32979acfd1 + models/components/platformtriggereventsearchrequest.go: + id: 3c69174fd69e + last_write_checksum: sha1:28d1ec23fce8a7bcef197fbb03f0f7b5ccd908a5 + pristine_git_object: 5123b5f60050b72f9d21cc8118fe6e3ad3683bd1 + models/components/platformtriggereventsearchresponse.go: + id: adca1980d52f + last_write_checksum: sha1:2f9c6fab17b52143967fe9ae5fc094d349684098 + pristine_git_object: 85a6a10799c69eee0d380f301f26b7810d2e0fb3 + models/components/platformtriggereventtype.go: + id: 610ee9cfe5c9 + last_write_checksum: sha1:e69e8b89c5b4b816ea2ed0c0033e4de9f9b08d2b + pristine_git_object: eff0041864c7d7c52b4e235d27ac3d3c1ae91b60 + models/components/platformtriggergetresponse.go: + id: 2f3638c73b03 + last_write_checksum: sha1:224e79222917c06192521d90414ebddf847a661e + pristine_git_object: ad202bd48de4fef5241431b28f0497e1bd021f99 + models/components/platformtriggerlistresponse.go: + id: e3f97cc57560 + last_write_checksum: sha1:577ac57f671db4b369266c15353ee552e75146fe + pristine_git_object: 778d4a04f9a23f6ad45c02bac05d93c0fe59f628 + models/components/platformtriggerpreset.go: + id: d9e6a75b280c + last_write_checksum: sha1:36ffd6eed31b25d481062505aa97e2beef0a6232 + pristine_git_object: e4cabc0483492ff70c7b7c4c8a8ac9ffec583d59 + models/components/platformtriggerpreseteventsearchrequest.go: + id: a96f6cd0ca25 + last_write_checksum: sha1:d2f1d5ae0f19b170a799c009c334d66c1173c346 + pristine_git_object: aafd646b49fe7f26460b8e6de4b4e57214748564 + models/components/platformtriggerpresetgetresponse.go: + id: 1bbfc06d9964 + last_write_checksum: sha1:c87252db01ac1da8906a1214dcd23681e5678cbb + pristine_git_object: aae70fe74954e933fbf86b50e518ed9688a30e83 + models/components/platformtriggerpresetinput.go: + id: 6e959b1cc334 + last_write_checksum: sha1:7c70b74115f6056a538a5100a8125b2945c0368e + pristine_git_object: 5025d71fe3b995df1a09881495447b1b4ff6eac0 + models/components/platformtriggerpresetinputtype.go: + id: fd360c41566d + last_write_checksum: sha1:71e22f847c3fdb04e7f787f0429e0d9df9a51927 + pristine_git_object: f087f2f321c80d2266a34e22678642725e562d4f + models/components/platformtriggerpresetinputvalue.go: + id: e5e33c8573cf + last_write_checksum: sha1:fcf12d3674bdbe72375f317cc9271617a1c3c716 + pristine_git_object: 6a0674f2023382b2d9534646883012edc3497d2a + models/components/platformtriggerpresetinputvaluelistresponse.go: + id: 1ac5ec84df94 + last_write_checksum: sha1:c9fd4810d8eae4dfefcdead9835955fc944bbbdc + pristine_git_object: ca010208b1557b234cac794989b37a024feb497b + models/components/platformtriggerpresetlistresponse.go: + id: 65772ee3110c + last_write_checksum: sha1:5cc860d8d92875831930e4a839a22088dae71568 + pristine_git_object: 0d8f57bb3b0b80f4dfe971ec173b059e2879b910 + models/components/platformtriggerpresetsummary.go: + id: 4019ece7881e + last_write_checksum: sha1:7ade6acf19d396d6751cae6c8ab72931b1d4a3f6 + pristine_git_object: e7e4966312822ff28c9fc48ee052a3215fe587c9 + models/components/platformtriggerstatus.go: + id: 7540145d999d + last_write_checksum: sha1:f7849088bee59dc2b7aa3930dc700aa45070e313 + pristine_git_object: e9703360f8c9dbc97cc1a255b557e6eed6bfd21c + models/components/platformtriggerupdaterequest.go: + id: 0027ebbd4ec2 + last_write_checksum: sha1:26f18e905fc6ab8f994dd16c3cb7a8d48e07eef7 + pristine_git_object: e2184a3eba4192a6aa8122141cfe37d3f094df84 + models/components/platformtriggerwebhookevent.go: + id: 9dd04578bc26 + last_write_checksum: sha1:99e2ff4fc7f2b3fd5ded4336a3da80b030b12829 + pristine_git_object: 46ae89256c9cd228a0f685171bdf07274570d344 + models/components/platformtriggerwithsecret.go: + id: bd114040076a + last_write_checksum: sha1:c3da62b16da860b7cfb14c9ed4154631079ba676 + pristine_git_object: 71fb93f58600a50c735b91b6051d79e3a2d9766c models/components/platformwarning.go: id: 1c5cf29ad556 last_write_checksum: sha1:4788aa0c6614d85ab9f63a8b84841c1104ae70eb @@ -6972,6 +7306,46 @@ trackedFiles: id: ae559b89af53 last_write_checksum: sha1:e06b59d1ef315cb3600de4f11120cf282ac3658e pristine_git_object: c7177df33622634e3401128b6a80ea29d0f18d1c + models/operations/platformtriggerpresetseventssearch.go: + id: 722de93a0fd5 + last_write_checksum: sha1:15bd0f2952063744635837aa97fef206950b2ed2 + pristine_git_object: 29be9a39e7e6b24e9c57a28b9fc9db1e6e260b69 + models/operations/platformtriggerpresetsget.go: + id: 6f9582808e73 + last_write_checksum: sha1:bc7f39ae0b19f1d2c191a3843cf03eed63038829 + pristine_git_object: 7e4145c3355ed0bf85be2a348de919b36d755379 + models/operations/platformtriggerpresetsinputvalueslist.go: + id: dd5cfe86b533 + last_write_checksum: sha1:dd0f79be2171af4a6ceee21d130defa1ca9bd788 + pristine_git_object: 24c82c959d981194540e8604ffe24f92cfbcb73b + models/operations/platformtriggerpresetslist.go: + id: b6c9861643ac + last_write_checksum: sha1:a6f45f31193ef60f0c0948e9bd8045456a864992 + pristine_git_object: 31d335175fa09a3143e203c33911ff64eb42aca2 + models/operations/platformtriggerscreate.go: + id: b05316575d53 + last_write_checksum: sha1:bbe938aaa0774db7a2ce4df27eae087683cfca29 + pristine_git_object: 6d6a5c5d813d8e0fb2178843521b7410bed31b43 + models/operations/platformtriggersdelete.go: + id: 8a528529f6a6 + last_write_checksum: sha1:56600cd0becc6050b0730c3bc7ffbe6344d3c7fb + pristine_git_object: ef165f0a19e1f3ed997fea64ea765de68e9d4967 + models/operations/platformtriggerseventssearch.go: + id: 0a9e91aa1f3e + last_write_checksum: sha1:5c8fb20859c438b4190d5dd07e2b852c43bc2e15 + pristine_git_object: d3bd7c86e266520a47416b6606dfb4b3f1be699e + models/operations/platformtriggersget.go: + id: c08150dd8b59 + last_write_checksum: sha1:7b74b6a03e853db4f54d8e1cb623b4152e938180 + pristine_git_object: 4a36ec95f9f2bff6de8582a2b50bb94b022e52a3 + models/operations/platformtriggerslist.go: + id: 2f7a6759a177 + last_write_checksum: sha1:292c3d1c403f9422ef238b3f641007d0a9b8c00c + pristine_git_object: 66c06bd370e2578046892748c4f7340164990c5c + models/operations/platformtriggersupdate.go: + id: 939eeec90b0c + last_write_checksum: sha1:fd380885e64bfc9c2150591cca2bf226156774fc + pristine_git_object: 37cf8f902441aa2b3c6d0e81f035c7041ad7a1b1 models/operations/postapiindexv1adddatasource.go: id: 50ff52426165 last_write_checksum: sha1:c14aac3a71bfaeca68789cbc3ecf8c64639a161d @@ -7226,12 +7600,12 @@ trackedFiles: pristine_git_object: 767002c7898128324d8741ce9c534bd466492169 search.go: id: 4c057402d2bf - last_write_checksum: sha1:2866cd531b585bdfafc83e60f74e1bd51b5dcd65 - pristine_git_object: 48c0222eac4d361f6c2bf00df02067c9b2d15224 + last_write_checksum: sha1:a747715a66b9241da6366928f46bf2c966c999eb + pristine_git_object: a281aa1c42f70997fe9511ac685477d8b8b7e8d1 skills.go: id: 65ecddcd9ce6 - last_write_checksum: sha1:8b5c9c1b2e3537dd1a58e776d82d616212745c86 - pristine_git_object: 8ccde776fae3bebb40295b2e1ad50424d9762d5d + last_write_checksum: sha1:11f4e0a4477ac9e09a671f0180940b6c5390e5eb + pristine_git_object: 70998eacde146a1b7e6fcd7a3002a30b245237c8 tests/activities_test.go: id: 93b3ec0f226c last_write_checksum: sha1:d8e9f9a0d877a8e7d4277c174581d44633e1b8ec @@ -7398,8 +7772,8 @@ trackedFiles: pristine_git_object: 929558ef2e1165f7e09da6d0a64f016c90971655 tests/mockserver/internal/handler/generated_handlers.go: id: 61ac4f7cce9e - last_write_checksum: sha1:6eb71a2e61e6610c4a41191a22bdab7764994582 - pristine_git_object: 1ea7cd1da577eab4f39f7df5c6a4101129b23088 + last_write_checksum: sha1:6b77f36c3b3dc12b960b49941ee55263a0a6c05f + pristine_git_object: 8e541a71eba67ec8fd003759038b2b1ec43d6ab9 tests/mockserver/internal/handler/pathdeleterestapiindexcustommetadataschemagroupname.go: id: 979e4583765b last_write_checksum: sha1:b1d4edb259d907c7a88b634bf16f0cf152321693 @@ -7444,6 +7818,26 @@ trackedFiles: id: c6ac26c4873f last_write_checksum: sha1:77b816a0cb7f4ac54d9b73b5da6d6dbceadff6e6 pristine_git_object: ccccbef049419482a201b8a73aca33d632120e2f + tests/mockserver/internal/handler/pathgetapitriggerpresets.go: + id: 8cbf477f0939 + last_write_checksum: sha1:d1508970c69b2c338ebd88f1f474ef851d2b026e + pristine_git_object: ef94fda9e99ee96829abc36b3973ba6bd208e8a9 + tests/mockserver/internal/handler/pathgetapitriggerpresetspresetid.go: + id: a571f52cc5d7 + last_write_checksum: sha1:9abf84a6696f4d8677df48c4f3d88169285a19cf + pristine_git_object: d7ae3c3545243b585b280e4db808ac0882387666 + tests/mockserver/internal/handler/pathgetapitriggerpresetspresetidinputvalues.go: + id: "352313839387" + last_write_checksum: sha1:b11f22dc25535e0b230d96b0cb951fab9997ddf0 + pristine_git_object: 78b89ebbe2b2919ebadb4f752c0d431dd3c03cda + tests/mockserver/internal/handler/pathgetapitriggers.go: + id: 38c98b6efaf3 + last_write_checksum: sha1:52382d934f67c64dc20ae112848a5e36d3f2ac80 + pristine_git_object: 04c4bdc1dd177b742f724b6b16af9190ecd7280d + tests/mockserver/internal/handler/pathgetapitriggerstriggerid.go: + id: 024861a723c9 + last_write_checksum: sha1:d0a4340ac6287dd0ffc9e84723ee95f72f2f661d + pristine_git_object: 0ad3c036c63130546598a4ed5a6c497d980eccaf tests/mockserver/internal/handler/pathgetrestapiindexcustommetadataschemagroupname.go: id: a14a30d0e377 last_write_checksum: sha1:83a992c70c3b7d010928d89a52f70db1042dd186 @@ -7504,6 +7898,10 @@ trackedFiles: id: e09721a8879b last_write_checksum: sha1:90c425f15814afd0ac42817b7ad6a056b6efc278 pristine_git_object: 2b4d9db548fd58503a768732db17aca59d354d25 + tests/mockserver/internal/handler/pathpatchapitriggerstriggerid.go: + id: 76c9eb373567 + last_write_checksum: sha1:e444fbfab92b77e23c98fd0e33531018450185ed + pristine_git_object: 8f7f27440e39e082d0fbaba7428bbc0d714fbdf8 tests/mockserver/internal/handler/pathpatchrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go: id: 24dd79d2c474 last_write_checksum: sha1:14d3e93a3f37b61145188a9e6544398fcfc200e4 @@ -7664,6 +8062,18 @@ trackedFiles: id: eaa6c1478b34 last_write_checksum: sha1:cc8f959924866fdf5febe729b5d5819ff7e53173 pristine_git_object: 2048ae91e6f81a6ecb4bb9281ef60ce287330724 + tests/mockserver/internal/handler/pathpostapitriggerpresetspresetideventssearch.go: + id: e3d540cdeac5 + last_write_checksum: sha1:ea8dacd262eea49ea165e976a53c541f95d1e4a6 + pristine_git_object: 83a0e25f7929c89d20f8acc0b44e4060a4d0abc0 + tests/mockserver/internal/handler/pathpostapitriggers.go: + id: 85f970d314eb + last_write_checksum: sha1:2a52d5045d727e7b181decdc82315f9656900203 + pristine_git_object: 7a0ab74b9f4d357c051e2ea5138111c83359ae0a + tests/mockserver/internal/handler/pathpostapitriggerstriggerideventssearch.go: + id: e27c1d4cb373 + last_write_checksum: sha1:0af9ebb63a29cdd0b59d7ebb82a02f6bf24f3a20 + pristine_git_object: f356922816acb43e8b460878976b761b424fea2f tests/mockserver/internal/handler/pathpostrestapiindexsubmissionsdatasourceinstancetype.go: id: 1a5daf7874ce last_write_checksum: sha1:b5b37f0b5a7b4d9a4c69ab523e831f1702301118 @@ -7952,6 +8362,10 @@ trackedFiles: id: f49866e79383 last_write_checksum: sha1:1ec2244b5fc171dfe7e4e339420b2b17f0df48c9 pristine_git_object: beb05908cf58a7b8b46d739ee51a5aba54c5bf7c + tests/mockserver/internal/sdk/models/callbacks/platformtriggerscreate.go: + id: ec899b2c8ce2 + last_write_checksum: sha1:bae78af1f1626632db7f012cdc8903f9a18985f8 + pristine_git_object: 94995cae1d68954802143a4cd5ddec72e130552c tests/mockserver/internal/sdk/models/components/accessrequestpermissiondeniedresponseerror.go: id: bfda76349972 last_write_checksum: sha1:e32d7171635a47a47a09980f63a968d8d3c67499 @@ -8190,8 +8604,12 @@ trackedFiles: pristine_git_object: c237f6fdfc76002db00450dcc1c0f833ab83d8e8 tests/mockserver/internal/sdk/models/components/calendarevent.go: id: 8266e43a77b2 - last_write_checksum: sha1:8b37f864d04425db3f5370c63a2a01c3e9e66e94 - pristine_git_object: 33ac7433919695239120f18f62fb966c05d0e831 + last_write_checksum: sha1:0d0d354c949de0fb7c2bbde2fd7d5a53012b9511 + pristine_git_object: 9086716f92a2039aa7bd53c25bd50a064f828695 + tests/mockserver/internal/sdk/models/components/calendarroombookingstatus.go: + id: 3c93f43fc5be + last_write_checksum: sha1:3ed3979dbce33877b55551bdd465e73d797ddc86 + pristine_git_object: 1f0d78191d5a37b2b88e524aacdaf870f0e72c21 tests/mockserver/internal/sdk/models/components/canonicalizingregextype.go: id: 7df117f09631 last_write_checksum: sha1:2d0c192b2b7d99262441a1ee0cbd670bf7970746 @@ -8862,12 +9280,12 @@ trackedFiles: pristine_git_object: 04cc3a93272ac70933b0485bee31b335e05ab623 tests/mockserver/internal/sdk/models/components/feedentry.go: id: d25fd66fcf7a - last_write_checksum: sha1:7c8546042939c356feeb9846070c23a04edd1a13 - pristine_git_object: 75c2030f1bf29bd59360b09c62df32f9efee0517 + last_write_checksum: sha1:6adf9257d92a72fe3a7bc694c22dd8d16f2b7108 + pristine_git_object: 19beb02fb45c1c4ee3df3011a18b1a8791224514 tests/mockserver/internal/sdk/models/components/feedrequest.go: id: b06bc4cef0cf - last_write_checksum: sha1:ca761301495e36eaf10fc4fa9086380498e6491a - pristine_git_object: 854c8390fa48c1647f0f3c04d19d89f6aae43d6f + last_write_checksum: sha1:a1293c6cdc3c294628e854614229c370a5218b71 + pristine_git_object: 97365efff1b005e6769bb2d5b561de68aadfc221 tests/mockserver/internal/sdk/models/components/feedrequestoptions.go: id: fd9245fe1bf2 last_write_checksum: sha1:fa30b7fd6ee3e45896d7bbe36e33e7c0cb9000ba @@ -8878,8 +9296,8 @@ trackedFiles: pristine_git_object: 54f9d1a8997983156c84e69f888c59a80d06c2b1 tests/mockserver/internal/sdk/models/components/feedresult.go: id: 47411573e67a - last_write_checksum: sha1:1980e5be5848c3aa1e732c680f7472899c9eb19c - pristine_git_object: 158c74284653d58bdffbab15a8f23188e092875d + last_write_checksum: sha1:973eec9b2d273d721f6310ebb20578c7d4f142d1 + pristine_git_object: cc69740a57fd002be69b2922812d7497a0778f51 tests/mockserver/internal/sdk/models/components/followupaction.go: id: 38179fec19b1 last_write_checksum: sha1:32a31f7af77a58ce6f3284e8550d01fcf0d3bddd @@ -9390,8 +9808,8 @@ trackedFiles: pristine_git_object: 58281ae6e982ccb6e585a3299a3893a5850cfb3d tests/mockserver/internal/sdk/models/components/platformchatcitationannotation.go: id: f4acfb6b571a - last_write_checksum: sha1:a07b63c29342dbc8760451a07748ecc5a795dd2a - pristine_git_object: eb920c4166fc2bc302a641531f1c92c946847124 + last_write_checksum: sha1:1f7f643895fdec20a70e5efebecdf9d8f636384e + pristine_git_object: 64b253ab16d8eea7f910fb7c32635756312c7866 tests/mockserver/internal/sdk/models/components/platformchatcitationsnippet.go: id: 19303510f847 last_write_checksum: sha1:521a16886f1f96d692e7dfc60c68ed16195f9db9 @@ -9402,40 +9820,44 @@ trackedFiles: pristine_git_object: c4c149d7a1856c60ae47b1f2e9b524d4d8458459 tests/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go: id: dfc6d86d9ca2 - last_write_checksum: sha1:b6cfe25cea6372862c6cb89c31f0a27f32768b48 - pristine_git_object: 3626477733c9d6b8350ce69c4b0c114e6d12ecee + last_write_checksum: sha1:0a214ec8175734c89d968fbb3af56fc19e817264 + pristine_git_object: be4e37123971803d69d6581668ac6fa8e0f56347 tests/mockserver/internal/sdk/models/components/platformchatcreaterequest.go: id: b024a90db5cf - last_write_checksum: sha1:a5d728f3340cd89d08c5cb4c45ca2495bf063099 - pristine_git_object: ff12189e8a27b80e6ebd875b23d3ab15415afc9b + last_write_checksum: sha1:c7c3b67893cd7e42c4995e7e5b8f13bbb91090f1 + pristine_git_object: a5b50b89f856fa678f9bc26fa08818a8d91f183b tests/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go: id: 19335eec1f0c - last_write_checksum: sha1:782fd0be48c718f3748c4f0a49dc82cface4d644 - pristine_git_object: a935970d4dccc9196d4c34855dc24db23f0f2a44 + last_write_checksum: sha1:52947945dd84893095dd04c7c1d0fed92eed9d03 + pristine_git_object: ccd6eac366414927d53ec579b691a1abf3f34867 tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go: id: 50d8ddf827c8 - last_write_checksum: sha1:c172280641caf057547c11ec1fa16e539a11fcdb - pristine_git_object: 9dd42aa5e0abcb1b41e68d833f349779f7fa90b1 + last_write_checksum: sha1:601d2c92039f18fcf03ea3abe7a8cb30d96862d2 + pristine_git_object: 63d8078fd2f1510238397be59455ef19090a3a3a tests/mockserver/internal/sdk/models/components/platformchatfilesource.go: id: f717724c0acb - last_write_checksum: sha1:572e86750f5f0a9d3a1d7bb4fe6507d47d9d11a1 - pristine_git_object: ad39a1dedf884498db229569f975d07cbfceda37 + last_write_checksum: sha1:9c1cf43539e36e553ea918fd22db2e9a6985f926 + pristine_git_object: 6714718990fc59806d1a8f15d9b24515397fa930 tests/mockserver/internal/sdk/models/components/platformchatinputmessage.go: id: 56818bc51e4c - last_write_checksum: sha1:70c4b032b5066633b8cd34d0c49c28df2387bf75 - pristine_git_object: 5989ab25d09e93f7dda37735c4756dd941e76b14 + last_write_checksum: sha1:42af3af208da28f93f0f2201e3daa8b46a7e1dba + pristine_git_object: 97c1e067fb5ecb6b2f97606419d967243488f520 tests/mockserver/internal/sdk/models/components/platformchatoutputmessage.go: id: 7ca1fc5cc683 - last_write_checksum: sha1:9da219f4f8004153d64d9ec89365dd92ba0b99f7 - pristine_git_object: c7ccd4be66bf0f4e6a931a470d244774d3ca256d + last_write_checksum: sha1:3db396040f3153e9079616c8618abeecc999e663 + pristine_git_object: 69218f0ebe38116259e1e0a7c021e605a79e88f6 tests/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go: id: b5d5f31f9886 - last_write_checksum: sha1:7b83b7cadf85b852949b765447c7c165acf49021 - pristine_git_object: fedd3f2853557a146f561b333d30dfe6799bf274 + last_write_checksum: sha1:65d94d8a5470bd836564c69e1476d29c7c8041b9 + pristine_git_object: d5020f5ca750f648d73d9153f3a332745d72304c tests/mockserver/internal/sdk/models/components/platformchatpersonsource.go: id: b44852860bd9 - last_write_checksum: sha1:baa4c11fc983d682b8f66d282ef55955bfd3bf99 - pristine_git_object: 1e969fb91bd34be3dcd9e2e2e242565eb97b15fd + last_write_checksum: sha1:ae83c0e9521f08d5818d9aa5cff33ca7233239a7 + pristine_git_object: 9576e8664747c8ca292816827aae56589aeab5c0 + tests/mockserver/internal/sdk/models/components/platformcontentschedulewebhookevent.go: + id: aa997737c72e + last_write_checksum: sha1:cf082854fbef3c2fb99b4415f333e65a3e97950a + pristine_git_object: 1bd0c5a424091a348602510d34d92195d7fad553 tests/mockserver/internal/sdk/models/components/platformcontenttype.go: id: d1a02baa3621 last_write_checksum: sha1:b552f26421544664b54a4423c8335c90b09480c6 @@ -9444,6 +9866,10 @@ trackedFiles: id: a1eb3b7148bf last_write_checksum: sha1:094bff06100193f57b6766f2f42139c2e5bcd8b8 pristine_git_object: e577fb7f7b9c911e698ec560181abbe596be0416 + tests/mockserver/internal/sdk/models/components/platformdocumentchangewebhookevent.go: + id: 14cae8b8b46f + last_write_checksum: sha1:eeef00ef9e08df054c9f0b37881495b3ddc400c6 + pristine_git_object: 790da9be746c8ffb31da4ddd45e70435cae25c20 tests/mockserver/internal/sdk/models/components/platformfilter.go: id: 1762bf95c464 last_write_checksum: sha1:9a4357e8b4ccf75dd97072960321efb36dcf13a1 @@ -9624,6 +10050,110 @@ trackedFiles: id: cf2540151ce1 last_write_checksum: sha1:3a0ec2ca473681b89ff97606f648fc15fcdae38e pristine_git_object: b88a152d5940b3e49fb73807c476607374d9d01e + tests/mockserver/internal/sdk/models/components/platformtrigger.go: + id: 46daff53baeb + last_write_checksum: sha1:6c82eb0357951867b9fad9878a738c218ed31df4 + pristine_git_object: f4ff0336c0ad85f45bfa4f53bfe5c47e6241f7be + tests/mockserver/internal/sdk/models/components/platformtriggerauthoutput.go: + id: 71e6f1f9954d + last_write_checksum: sha1:4509100855356b44534c924fb9d1e89461311371 + pristine_git_object: b72ecabbfec66c0cee56269317cefd05716178cd + tests/mockserver/internal/sdk/models/components/platformtriggercreaterequest.go: + id: 141f31ac21f0 + last_write_checksum: sha1:6d43e92de90a43429ce5e7def4b9d46e42b74b40 + pristine_git_object: f0b4f7f1f96534d2d43ef31ae8e11aa44ecc37f4 + tests/mockserver/internal/sdk/models/components/platformtriggercreateresponse.go: + id: 1e05f6421894 + last_write_checksum: sha1:d9e287757cdbfcbce72440976a49fa5b6330e257 + pristine_git_object: 2bc5301472ac71d0bf015b020a072c19d511cbd2 + tests/mockserver/internal/sdk/models/components/platformtriggerdelivery.go: + id: dbc485abe9e1 + last_write_checksum: sha1:38fcc9df98884c844c2941ce93d2ee97158ad1ba + pristine_git_object: 07fb9833a35cbe88d27a7cae28ea31753a7ef6a9 + tests/mockserver/internal/sdk/models/components/platformtriggerdeliveryoutput.go: + id: 14b6c01c5556 + last_write_checksum: sha1:6e6e34fda2ed2be606b4d9e517a68c5ff9d27ad4 + pristine_git_object: eae6a26f4f3a957a0d218c03b6191bd1dc067dd4 + tests/mockserver/internal/sdk/models/components/platformtriggerevent.go: + id: 40ac7d97e87d + last_write_checksum: sha1:822fac0c20d77d4fc8421f5a5af4c7642298340d + pristine_git_object: 30f4d2fcf79274a8c8d20ec7d7882bd53c47ee37 + tests/mockserver/internal/sdk/models/components/platformtriggereventreason.go: + id: a9f89c6ff900 + last_write_checksum: sha1:d13aad890584ba5531a741afad4f368ecf2ad033 + pristine_git_object: 7f0bda2d068426631a0cd1964476166db7ac70c0 + tests/mockserver/internal/sdk/models/components/platformtriggereventsearchrequest.go: + id: 9cc3d3ae7054 + last_write_checksum: sha1:7634063252a61e46a0f2de39d39ae1865b44cb7d + pristine_git_object: dd4df12aa5aeb1ae9a73d527012942c548bc2f36 + tests/mockserver/internal/sdk/models/components/platformtriggereventsearchresponse.go: + id: 81da5b782e91 + last_write_checksum: sha1:e6537a85004ec418f7785951742ec970b6cca4d6 + pristine_git_object: 052cac3bdecffa85957c905e37d0c06258823eaf + tests/mockserver/internal/sdk/models/components/platformtriggereventtype.go: + id: a4c8db90bb12 + last_write_checksum: sha1:ad40d6d39507a292a6ebfecec4ee87e809bb07c4 + pristine_git_object: 01a90c1892683cf4df4a1010553fa59d05169154 + tests/mockserver/internal/sdk/models/components/platformtriggergetresponse.go: + id: d2394632e1bd + last_write_checksum: sha1:3d51d8dfdb10dc312c36ef9a0f6acd88495a02ea + pristine_git_object: bf48ffae47ed0c8257515f8c07ea7d8e85728021 + tests/mockserver/internal/sdk/models/components/platformtriggerlistresponse.go: + id: ec67e38158cb + last_write_checksum: sha1:b1535697540b7c3cb50af2e00e6880131efd08ee + pristine_git_object: ee21c82435f4435504b49ce34aed10780b9e3a5e + tests/mockserver/internal/sdk/models/components/platformtriggerpreset.go: + id: 022c4cab659c + last_write_checksum: sha1:1336162aca79ecfb73b240d465f02db245d4b7c2 + pristine_git_object: 8ec754d7659f3c4629dd340f36d2cabf98db81a5 + tests/mockserver/internal/sdk/models/components/platformtriggerpreseteventsearchrequest.go: + id: e50ada6912e4 + last_write_checksum: sha1:fbc9af64f34da12d9fe3988a2b0148737d59241c + pristine_git_object: e461aefd8d7cae92208bd528dc0c3255b54ea405 + tests/mockserver/internal/sdk/models/components/platformtriggerpresetgetresponse.go: + id: 3327e7fb3ac1 + last_write_checksum: sha1:68ae39f59612e960dba5926d8534bb0a0f4b84b3 + pristine_git_object: 75202b87350ce7eaff249ab4bc245c8d5c5fd6d1 + tests/mockserver/internal/sdk/models/components/platformtriggerpresetinput.go: + id: f9aae855e61f + last_write_checksum: sha1:4bc4a629ea10db2aa7fcdd1d36e3f59c07439024 + pristine_git_object: 674722cafba59e60e82956a9b48f327afd0e7ac7 + tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputtype.go: + id: 3637710c2323 + last_write_checksum: sha1:ea5de994ba8c96e0049ce5009516bd3f26a8928c + pristine_git_object: b51f9eac287417af1cdc4e9be6aadcabaab9f04e + tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputvalue.go: + id: 66d3fb5c0b53 + last_write_checksum: sha1:4b7fec202ef73a577cc60598fa4aea02077a9ccc + pristine_git_object: 53487dfacea86ac4241008990791040ae5159a51 + tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputvaluelistresponse.go: + id: 77efafb42b6c + last_write_checksum: sha1:43a7950f2686a18cf952c90d557b1205574d1ac2 + pristine_git_object: bc923be00f133b16429463a31daecbc7942cab89 + tests/mockserver/internal/sdk/models/components/platformtriggerpresetlistresponse.go: + id: 82a42aecc0f2 + last_write_checksum: sha1:f02617594b8b63afca7ec2a0c693bf9245e7e4dc + pristine_git_object: 6e6cc206c13a6ff8d8fc89e12dbc05d06d0ce0d9 + tests/mockserver/internal/sdk/models/components/platformtriggerpresetsummary.go: + id: b63774bbc4d9 + last_write_checksum: sha1:86bc54973e616a741100d42ca2913459230b581d + pristine_git_object: 101983d34b786e1af0e01a7c227ae162f7f5a68d + tests/mockserver/internal/sdk/models/components/platformtriggerstatus.go: + id: 1d8e591a1116 + last_write_checksum: sha1:b321c6fbc2f38fd0dcfbfa189b4254ef599cc469 + pristine_git_object: ac192ac6722d95648a08ecc83eb83234e5e00f17 + tests/mockserver/internal/sdk/models/components/platformtriggerupdaterequest.go: + id: 37bb79e7c302 + last_write_checksum: sha1:6aca83308ad6f81a494a21390318e6662d3a38f6 + pristine_git_object: 872cf5559b57fdbddceba6694f976fff1216f1f1 + tests/mockserver/internal/sdk/models/components/platformtriggerwebhookevent.go: + id: 7701b82f4ba0 + last_write_checksum: sha1:5390bc7d0fb8c0e7ee7ebae1c9a37dfb8e435f8d + pristine_git_object: e5ffab605dd0f0bf2726cec05e6b51648bfaf8d7 + tests/mockserver/internal/sdk/models/components/platformtriggerwithsecret.go: + id: 5b5f73675f76 + last_write_checksum: sha1:83a4692d9abc1ee07e343eabf32e5cce4c3c7ad9 + pristine_git_object: 0a610553debaa7ab04e12b3f81dae01bd59c721c tests/mockserver/internal/sdk/models/components/platformwarning.go: id: bf3a0578fb90 last_write_checksum: sha1:4f58e985f8592a928bb3d605f1a8538a5e611d2a @@ -10564,6 +11094,46 @@ trackedFiles: id: c98dd1ece70f last_write_checksum: sha1:2449140437acabcd61691b30b730c1edcec089f5 pristine_git_object: a05a3ba6ac66e2352bd97184f45caeb2c782d9c0 + tests/mockserver/internal/sdk/models/operations/platformtriggerpresetseventssearch.go: + id: c260f0bc0ba1 + last_write_checksum: sha1:6b2fbc1bfe081acc67336c62929e1b2f7d47c8d6 + pristine_git_object: 37c7771eebc13a58c446f7421a20280b3d5c548e + tests/mockserver/internal/sdk/models/operations/platformtriggerpresetsget.go: + id: bc100e1216f5 + last_write_checksum: sha1:4f4fe20e0ad1db86926be70871e3d5c0e07edd8e + pristine_git_object: b6d75f2ae837db9a54ed6bad56ae4ddb33e7dd9b + tests/mockserver/internal/sdk/models/operations/platformtriggerpresetsinputvalueslist.go: + id: b1ec3c1cf3e3 + last_write_checksum: sha1:59946a06b8130a08524781f91163b945bebbbdaa + pristine_git_object: f177d8a9da85f8db5707d69ee418153e827e0e88 + tests/mockserver/internal/sdk/models/operations/platformtriggerpresetslist.go: + id: 48e01ca825c3 + last_write_checksum: sha1:d0374ca3b589ec6d36146b33becfde936441192f + pristine_git_object: d73911f3ef9f79a15739e0a0ffc168a335d7eb27 + tests/mockserver/internal/sdk/models/operations/platformtriggerscreate.go: + id: c4ad7fe46213 + last_write_checksum: sha1:0e31564c243a483b8a09a964835b2e0473d3461b + pristine_git_object: 664f9c97722ccd5548a9aa09ca49245503daccb3 + tests/mockserver/internal/sdk/models/operations/platformtriggersdelete.go: + id: 7a29a3143cd7 + last_write_checksum: sha1:7aaa82731255b447c81d27ec0346bb72cd95accc + pristine_git_object: 58a202ca831378c3fdfbf0c435e70745a046cb0b + tests/mockserver/internal/sdk/models/operations/platformtriggerseventssearch.go: + id: 5dcce0e80035 + last_write_checksum: sha1:02160a745440b9cbe3a914c63e923261609559de + pristine_git_object: bfcff5748aae56306838c80f6c7014eafa84d896 + tests/mockserver/internal/sdk/models/operations/platformtriggersget.go: + id: c299ef1342d0 + last_write_checksum: sha1:d88fdb3095fdcc442c54b2b735c4c370bf19c2a3 + pristine_git_object: 548dcbf0cad526ef77d4fa58d10b0ebc99403e34 + tests/mockserver/internal/sdk/models/operations/platformtriggerslist.go: + id: 9da758308a26 + last_write_checksum: sha1:a5d0980c2dbf8f9f6a9ae73b360ba268b50d5bbe + pristine_git_object: 24df6582a02e0b02a8a78120d1f539851d80b573 + tests/mockserver/internal/sdk/models/operations/platformtriggersupdate.go: + id: 97cc4ddb3921 + last_write_checksum: sha1:0aafe1072c61b82f62f6bbb29c91dac410fa0a17 + pristine_git_object: 0c16788ff815693180b186aa0e9d4a016ffe2c28 tests/mockserver/internal/sdk/models/operations/postapiindexv1adddatasource.go: id: 85e7185113c5 last_write_checksum: sha1:2f82dc427027cdb45f8fcf8fa6454e28599233aa @@ -10926,8 +11496,8 @@ trackedFiles: pristine_git_object: 34de629e636ff1ec4a5341bdf6b0ae06aa408ba4 tests/summarize_test.go: id: 1b63b0a16e69 - last_write_checksum: sha1:7b432655f0dba886ce6a8857b300eb3b0f43d5ea - pristine_git_object: 455b796edf1ac793ed4cb75eb326727716c0e3e3 + last_write_checksum: sha1:301c0b43f32c724610779d3d83246908b44c9b41 + pristine_git_object: 0895933dbb67bc175f38ef10c05d38a45d87855c tests/testclient.go: id: 78d36c6e169c last_write_checksum: sha1:507c44e437934fbff8d295201c1327e18bd00df8 @@ -10936,6 +11506,10 @@ trackedFiles: id: 8166dd99f634 last_write_checksum: sha1:abd8eaa8354cfabe189f65bf20f2b47e1b96edc7 pristine_git_object: c95f1c2aef021080af8974146bdcc792c74f25d3 + tests/triggers_test.go: + id: 186bb4fd187c + last_write_checksum: sha1:61e4f53461f51254cff2ffc7980f28e94ded20d2 + pristine_git_object: 5cf029620f6dc3f30d43817136c93f781926285e tests/troubleshooting_test.go: id: 93cb404911ce last_write_checksum: sha1:49e7c6f45b1baed707c82e0dd72de6c6bc12a057 @@ -10946,8 +11520,12 @@ trackedFiles: pristine_git_object: c28b73ad8c1100262680cd4ce7841f2b277df05b tools.go: id: 3387d70491f4 - last_write_checksum: sha1:f4f0c4c89535477987b4f6395e7f898a8743aa56 - pristine_git_object: 39060a597e69fb18fd98881fe3d8a14b41e317aa + last_write_checksum: sha1:fdc28baf6072e05378c863163150fddba429483b + pristine_git_object: 3fb011b1743b2414a2a36f089b08911992f7b175 + triggers.go: + id: a8ba6bfddb94 + last_write_checksum: sha1:f8d3e4d0b6150a143f23c73e38af234bdd49129c + pristine_git_object: 47baed43da10584f08cf09951909fe2ad4893167 types/bigint.go: id: 6f911e1a03c3 last_write_checksum: sha1:49b004005d0461fb04b846eca062b070b0360b31 @@ -12121,7 +12699,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"}]} @@ -12217,6 +12795,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-04-29T16:18:24+01:00" @@ -12406,6 +13107,16 @@ generatedTests: post_/api/index/v1/debug/{datasource}/documents: "2026-08-07T21:23:24Z" post_/api/index/v1/debug/{datasource}/document/events: "2026-08-07T21:23:24Z" post_/api/index/v1/debug/{datasource}/user: "2026-08-07T21:23:24Z" + platform-triggers-create: "2026-08-20T01:00:06Z" + platform-triggers-list: "2026-08-20T01:00:06Z" + platform-triggers-get: "2026-08-20T01:00:06Z" + platform-triggers-update: "2026-08-20T01:00:06Z" + platform-triggers-events-search: "2026-08-20T01:00:06Z" + platform-trigger-presets-list: "2026-08-20T01:00:06Z" + platform-trigger-presets-get: "2026-08-20T01:00:06Z" + platform-trigger-presets-input-values-list: "2026-08-20T01:00:06Z" + platform-trigger-presets-events-search: "2026-08-20T01:00:06Z" +releaseNotes: "## Go SDK Changes:\n* `Glean.Chat.Create()`: \n * `request.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 1cf05a90..1d34e1dc 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -32,7 +32,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true go: - version: 0.13.5 + version: 0.14.0 additionalDependencies: {} allowUnknownFieldsInWeakUnions: false baseErrorName: GleanError diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index 1906bd1f..a1d98a11 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 c645cbda..aa636156 100644 --- a/.speakeasy/tests.arazzo.yaml +++ b/.speakeasy/tests.arazzo.yaml @@ -164914,7 +164914,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 @@ -165139,3 +165139,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 59d062f5..72ef2bbc 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 petstore-oas: @@ -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-go-code-samples - codeSamplesRevisionDigest: sha256:df19d1292f8190bf57b907045c6e7529b7f5c500b6d01a0f8d909961d64ae7f5 + codeSamplesRevisionDigest: sha256:fc2042aa1a0f6694b8de1bc4283acdce56b3b2dd128d95896e35c1b0492663cd petstore: source: petstore-oas sourceNamespace: petstore-oas diff --git a/README.md b/README.md index f45d5a85..8dd3e7b5 100644 --- a/README.md +++ b/README.md @@ -474,8 +474,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 @@ -487,6 +487,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 + diff --git a/RELEASES.md b/RELEASES.md index b9bb27e9..d78251d4 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -818,4 +818,14 @@ Based on: ### Generated - [go v0.13.5] . ### Releases -- [Go v0.13.5] https://github.com/gleanwork/api-client-go/releases/tag/v0.13.5 - . \ No newline at end of file +- [Go v0.13.5] https://github.com/gleanwork/api-client-go/releases/tag/v0.13.5 - . + +## 2026-08-20 00:57:18 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.795.0 (2.931.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [go v0.14.0] . +### Releases +- [Go v0.14.0] https://github.com/gleanwork/api-client-go/releases/tag/v0.14.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 00000000..45e45a1e --- /dev/null +++ b/docs/models/callbacks/platformtriggerscreatetriggerwebhookeventrequest.md @@ -0,0 +1,11 @@ +# PlatformTriggersCreateTriggerWebhookEventRequest + + +## 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` | `int64` | :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](../../models/components/platformtriggerwebhookevent.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/callbacks/platformtriggerscreatetriggerwebhookeventresponse.md b/docs/models/callbacks/platformtriggerscreatetriggerwebhookeventresponse.md new file mode 100644 index 00000000..5cadc3d7 --- /dev/null +++ b/docs/models/callbacks/platformtriggerscreatetriggerwebhookeventresponse.md @@ -0,0 +1,8 @@ +# PlatformTriggersCreateTriggerWebhookEventResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :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 e38fabdf..6471bf39 100644 --- a/docs/models/components/calendarevent.md +++ b/docs/models/components/calendarevent.md @@ -5,18 +5,21 @@ A generic, light-weight calendar event. ## 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` | `*bool` | :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` | `*bool` | :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` | `*bool` | :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 00000000..b6b76d47 --- /dev/null +++ b/docs/models/components/calendarroombookingstatus.md @@ -0,0 +1,26 @@ +# CalendarRoomBookingStatus + +The current booking status of the room resource associated with an event. + +## Example Usage + +```go +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +value := components.CalendarRoomBookingStatusNone + +// Open enum: custom values can be created with a direct type cast +custom := components.CalendarRoomBookingStatus("custom_value") +``` + + +## Values + +| Name | Value | +| ----------------------------------- | ----------------------------------- | +| `CalendarRoomBookingStatusNone` | NONE | +| `CalendarRoomBookingStatusAccepted` | ACCEPTED | +| `CalendarRoomBookingStatusDeclined` | DECLINED | +| `CalendarRoomBookingStatusPending` | PENDING | \ No newline at end of file diff --git a/docs/models/components/feedrequestcategory.md b/docs/models/components/feedrequestcategory.md index 66caa43b..56e58281 100644 --- a/docs/models/components/feedrequestcategory.md +++ b/docs/models/components/feedrequestcategory.md @@ -59,4 +59,5 @@ value := components.FeedRequestCategoryDocumentSuggestion | `FeedRequestCategoryDemoCard` | DEMO_CARD | | `FeedRequestCategoryOooPlanner` | OOO_PLANNER | | `FeedRequestCategoryOooCatchUp` | OOO_CATCH_UP | -| `FeedRequestCategoryAdminHealthCenter` | ADMIN_HEALTH_CENTER | \ No newline at end of file +| `FeedRequestCategoryAdminHealthCenter` | ADMIN_HEALTH_CENTER | +| `FeedRequestCategoryKnowledgeGap` | KNOWLEDGE_GAP | \ No newline at end of file diff --git a/docs/models/components/feedresult.md b/docs/models/components/feedresult.md index a3d714f7..86a3734a 100644 --- a/docs/models/components/feedresult.md +++ b/docs/models/components/feedresult.md @@ -3,10 +3,10 @@ ## 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` | `*int64` | :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` | `*int64` | :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 08e487bf..d549449a 100644 --- a/docs/models/components/feedresultcategory.md +++ b/docs/models/components/feedresultcategory.md @@ -64,4 +64,5 @@ custom := components.FeedResultCategory("custom_value") | `FeedResultCategoryDemoCard` | DEMO_CARD | | `FeedResultCategoryOooPlanner` | OOO_PLANNER | | `FeedResultCategoryOooCatchUp` | OOO_CATCH_UP | -| `FeedResultCategoryAdminHealthCenter` | ADMIN_HEALTH_CENTER | \ No newline at end of file +| `FeedResultCategoryAdminHealthCenter` | ADMIN_HEALTH_CENTER | +| `FeedResultCategoryKnowledgeGap` | KNOWLEDGE_GAP | \ No newline at end of file diff --git a/docs/models/components/input.md b/docs/models/components/input.md index 2a0ab5b6..8756e294 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`. diff --git a/docs/models/components/justificationtype.md b/docs/models/components/justificationtype.md index 939bec1f..49e4b173 100644 --- a/docs/models/components/justificationtype.md +++ b/docs/models/components/justificationtype.md @@ -62,6 +62,7 @@ custom := components.JustificationType("custom_value") | `JustificationTypeStarterKitOrgChart` | STARTER_KIT_ORG_CHART | | `JustificationTypeStarterKitAddDoc` | STARTER_KIT_ADD_DOC | | `JustificationTypeMeetingRecap` | MEETING_RECAP | +| `JustificationTypeMeetingRoom` | MEETING_ROOM | | `JustificationTypeMeetingPrepAutomation` | MEETING_PREP_AUTOMATION | | `JustificationTypeActiveDiscussion` | ACTIVE_DISCUSSION | | `JustificationTypeMidDayCatchUp` | MID_DAY_CATCH_UP | @@ -77,4 +78,5 @@ custom := components.JustificationType("custom_value") | `JustificationTypeDemoCard` | DEMO_CARD | | `JustificationTypeOooPlanner` | OOO_PLANNER | | `JustificationTypeOooCatchUp` | OOO_CATCH_UP | -| `JustificationTypeAdminHealthCenter` | ADMIN_HEALTH_CENTER | \ No newline at end of file +| `JustificationTypeAdminHealthCenter` | ADMIN_HEALTH_CENTER | +| `JustificationTypeKnowledgeGap` | KNOWLEDGE_GAP | \ No newline at end of file diff --git a/docs/models/components/object.md b/docs/models/components/object.md index f53946ad..1066842b 100644 --- a/docs/models/components/object.md +++ b/docs/models/components/object.md @@ -15,4 +15,4 @@ value := components.ObjectResponse | Name | Value | | ---------------- | ---------------- | -| `ObjectResponse` | response | \ No newline at end of file +| `ObjectResponse` | RESPONSE | \ No newline at end of file diff --git a/docs/models/components/placementreason.md b/docs/models/components/placementreason.md index 3a285813..664d0151 100644 --- a/docs/models/components/placementreason.md +++ b/docs/models/components/placementreason.md @@ -1,6 +1,6 @@ # 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 @@ -21,4 +21,5 @@ custom := components.PlacementReason("custom_value") | Name | Value | | ------------------------ | ------------------------ | | `PlacementReasonOrganic` | ORGANIC | -| `PlacementReasonPromo` | PROMO | \ No newline at end of file +| `PlacementReasonPromo` | PROMO | +| `PlacementReasonPinned` | PINNED | \ No newline at end of file diff --git a/docs/models/components/platformchatcitationannotationtype.md b/docs/models/components/platformchatcitationannotationtype.md index d2e7cca9..da218274 100644 --- a/docs/models/components/platformchatcitationannotationtype.md +++ b/docs/models/components/platformchatcitationannotationtype.md @@ -15,4 +15,4 @@ value := components.PlatformChatCitationAnnotationTypeCitation | Name | Value | | -------------------------------------------- | -------------------------------------------- | -| `PlatformChatCitationAnnotationTypeCitation` | citation | \ No newline at end of file +| `PlatformChatCitationAnnotationTypeCitation` | CITATION | \ No newline at end of file diff --git a/docs/models/components/platformchatcompletedresponsestatus.md b/docs/models/components/platformchatcompletedresponsestatus.md index 63e07cda..e8a35f65 100644 --- a/docs/models/components/platformchatcompletedresponsestatus.md +++ b/docs/models/components/platformchatcompletedresponsestatus.md @@ -15,4 +15,4 @@ value := components.PlatformChatCompletedResponseStatusCompleted | Name | Value | | ---------------------------------------------- | ---------------------------------------------- | -| `PlatformChatCompletedResponseStatusCompleted` | completed | \ No newline at end of file +| `PlatformChatCompletedResponseStatusCompleted` | COMPLETED | \ No newline at end of file diff --git a/docs/models/components/platformchatcreaterequest.md b/docs/models/components/platformchatcreaterequest.md index 62a4f19f..e03390f1 100644 --- a/docs/models/components/platformchatcreaterequest.md +++ b/docs/models/components/platformchatcreaterequest.md @@ -5,7 +5,7 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | -| `Input` | [components.Input](../../models/components/input.md) | :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](../../models/components/input.md) | :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` | `*bool` | :heavy_minus_sign: | When true, respond with `text/event-stream`. When false or omitted, respond with `application/json`.
| | `Store` | `*bool` | :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/platformchatcustomentitysourcetype.md b/docs/models/components/platformchatcustomentitysourcetype.md index 2be8235a..93da64c4 100644 --- a/docs/models/components/platformchatcustomentitysourcetype.md +++ b/docs/models/components/platformchatcustomentitysourcetype.md @@ -15,4 +15,4 @@ value := components.PlatformChatCustomEntitySourceTypeCustomEntity | Name | Value | | ------------------------------------------------ | ------------------------------------------------ | -| `PlatformChatCustomEntitySourceTypeCustomEntity` | custom_entity | \ No newline at end of file +| `PlatformChatCustomEntitySourceTypeCustomEntity` | CUSTOM_ENTITY | \ No newline at end of file diff --git a/docs/models/components/platformchatdocumentsourcetype1.md b/docs/models/components/platformchatdocumentsourcetype1.md index 98714fb9..5b0ec568 100644 --- a/docs/models/components/platformchatdocumentsourcetype1.md +++ b/docs/models/components/platformchatdocumentsourcetype1.md @@ -15,4 +15,4 @@ value := components.PlatformChatDocumentSourceType1Document | Name | Value | | ----------------------------------------- | ----------------------------------------- | -| `PlatformChatDocumentSourceType1Document` | document | \ No newline at end of file +| `PlatformChatDocumentSourceType1Document` | DOCUMENT | \ No newline at end of file diff --git a/docs/models/components/platformchatdocumentsourcetype2.md b/docs/models/components/platformchatdocumentsourcetype2.md index ae8b6c0e..6de9d2ed 100644 --- a/docs/models/components/platformchatdocumentsourcetype2.md +++ b/docs/models/components/platformchatdocumentsourcetype2.md @@ -15,4 +15,4 @@ value := components.PlatformChatDocumentSourceType2Document | Name | Value | | ----------------------------------------- | ----------------------------------------- | -| `PlatformChatDocumentSourceType2Document` | document | \ No newline at end of file +| `PlatformChatDocumentSourceType2Document` | DOCUMENT | \ No newline at end of file diff --git a/docs/models/components/platformchatfilesourcetype.md b/docs/models/components/platformchatfilesourcetype.md index 703d042e..f8d71d01 100644 --- a/docs/models/components/platformchatfilesourcetype.md +++ b/docs/models/components/platformchatfilesourcetype.md @@ -15,4 +15,4 @@ value := components.PlatformChatFileSourceTypeFile | Name | Value | | -------------------------------- | -------------------------------- | -| `PlatformChatFileSourceTypeFile` | file | \ No newline at end of file +| `PlatformChatFileSourceTypeFile` | FILE | \ No newline at end of file diff --git a/docs/models/components/platformchatinputmessagerole.md b/docs/models/components/platformchatinputmessagerole.md index 07e68429..96b25bc9 100644 --- a/docs/models/components/platformchatinputmessagerole.md +++ b/docs/models/components/platformchatinputmessagerole.md @@ -15,5 +15,5 @@ value := components.PlatformChatInputMessageRoleUser | Name | Value | | --------------------------------------- | --------------------------------------- | -| `PlatformChatInputMessageRoleUser` | user | -| `PlatformChatInputMessageRoleAssistant` | assistant | \ No newline at end of file +| `PlatformChatInputMessageRoleUser` | USER | +| `PlatformChatInputMessageRoleAssistant` | ASSISTANT | \ No newline at end of file diff --git a/docs/models/components/platformchatoutputmessagerole.md b/docs/models/components/platformchatoutputmessagerole.md index 3fa00044..d3a78b14 100644 --- a/docs/models/components/platformchatoutputmessagerole.md +++ b/docs/models/components/platformchatoutputmessagerole.md @@ -15,4 +15,4 @@ value := components.PlatformChatOutputMessageRoleAssistant | Name | Value | | ---------------------------------------- | ---------------------------------------- | -| `PlatformChatOutputMessageRoleAssistant` | assistant | \ No newline at end of file +| `PlatformChatOutputMessageRoleAssistant` | ASSISTANT | \ No newline at end of file diff --git a/docs/models/components/platformchatoutputmessagetype.md b/docs/models/components/platformchatoutputmessagetype.md index 44e22b6d..33fa46bc 100644 --- a/docs/models/components/platformchatoutputmessagetype.md +++ b/docs/models/components/platformchatoutputmessagetype.md @@ -15,4 +15,4 @@ value := components.PlatformChatOutputMessageTypeMessage | Name | Value | | -------------------------------------- | -------------------------------------- | -| `PlatformChatOutputMessageTypeMessage` | message | \ No newline at end of file +| `PlatformChatOutputMessageTypeMessage` | MESSAGE | \ No newline at end of file diff --git a/docs/models/components/platformchatoutputtextcontenttype.md b/docs/models/components/platformchatoutputtextcontenttype.md index 0ab1b9bf..a8a44c87 100644 --- a/docs/models/components/platformchatoutputtextcontenttype.md +++ b/docs/models/components/platformchatoutputtextcontenttype.md @@ -15,4 +15,4 @@ value := components.PlatformChatOutputTextContentTypeOutputText | Name | Value | | --------------------------------------------- | --------------------------------------------- | -| `PlatformChatOutputTextContentTypeOutputText` | output_text | \ No newline at end of file +| `PlatformChatOutputTextContentTypeOutputText` | OUTPUT_TEXT | \ No newline at end of file diff --git a/docs/models/components/platformchatpersonsourcetype.md b/docs/models/components/platformchatpersonsourcetype.md index cf9c50bf..66b4216e 100644 --- a/docs/models/components/platformchatpersonsourcetype.md +++ b/docs/models/components/platformchatpersonsourcetype.md @@ -15,4 +15,4 @@ value := components.PlatformChatPersonSourceTypePerson | Name | Value | | ------------------------------------ | ------------------------------------ | -| `PlatformChatPersonSourceTypePerson` | person | \ No newline at end of file +| `PlatformChatPersonSourceTypePerson` | 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 00000000..9c369281 --- /dev/null +++ b/docs/models/components/platformcontentschedulewebhookevent.md @@ -0,0 +1,18 @@ +# PlatformContentScheduleWebhookEvent + + +## 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` | [*time.Time](https://pkg.go.dev/time#Time) | :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` | `int` | :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 00000000..f6ecd25d --- /dev/null +++ b/docs/models/components/platformdocumentchangewebhookevent.md @@ -0,0 +1,19 @@ +# PlatformDocumentChangeWebhookEvent + + +## 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` | [*time.Time](https://pkg.go.dev/time#Time) | :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` | `*bool` | :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 00000000..c50d852a --- /dev/null +++ b/docs/models/components/platformtrigger.md @@ -0,0 +1,15 @@ +# PlatformTrigger + + +## 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` | map[string]`any` | :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` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | Time the trigger was created. | | +| `UpdatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :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 00000000..9923be96 --- /dev/null +++ b/docs/models/components/platformtriggerauth.md @@ -0,0 +1,11 @@ +# 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. + + +## 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 00000000..e0f81bf0 --- /dev/null +++ b/docs/models/components/platformtriggerauthoutput.md @@ -0,0 +1,10 @@ +# 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. + + +## 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 00000000..7ed1d575 --- /dev/null +++ b/docs/models/components/platformtriggerauthtype.md @@ -0,0 +1,20 @@ +# PlatformTriggerAuthType + +Credential scheme. + +## Example Usage + +```go +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +value := components.PlatformTriggerAuthTypeBearer +``` + + +## Values + +| Name | Value | +| ------------------------------- | ------------------------------- | +| `PlatformTriggerAuthTypeBearer` | 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 00000000..14594c15 --- /dev/null +++ b/docs/models/components/platformtriggercreaterequest.md @@ -0,0 +1,11 @@ +# PlatformTriggerCreateRequest + + +## 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` | map[string]`any` | :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 00000000..fb70cad0 --- /dev/null +++ b/docs/models/components/platformtriggercreateresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggerCreateResponse + + +## 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 00000000..edd0a4d7 --- /dev/null +++ b/docs/models/components/platformtriggerdelivery.md @@ -0,0 +1,9 @@ +# PlatformTriggerDelivery + + +## 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 00000000..4409b0c4 --- /dev/null +++ b/docs/models/components/platformtriggerdeliveryoutput.md @@ -0,0 +1,9 @@ +# PlatformTriggerDeliveryOutput + + +## 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 00000000..e3e428da --- /dev/null +++ b/docs/models/components/platformtriggerevent.md @@ -0,0 +1,17 @@ +# PlatformTriggerEvent + +A content event a trigger can fire on. + + +## 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` | [time.Time](https://pkg.go.dev/time#Time) | :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 00000000..e672d5fc --- /dev/null +++ b/docs/models/components/platformtriggereventreason.md @@ -0,0 +1,35 @@ +# PlatformTriggerEventReason + +Why the event fired. + +## Example Usage + +```go +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +value := components.PlatformTriggerEventReasonCreated + +// Open enum: custom values can be created with a direct type cast +custom := components.PlatformTriggerEventReason("custom_value") +``` + + +## Values + +| Name | Value | +| ------------------------------------------------ | ------------------------------------------------ | +| `PlatformTriggerEventReasonCreated` | CREATED | +| `PlatformTriggerEventReasonUpdated` | UPDATED | +| `PlatformTriggerEventReasonDeleted` | DELETED | +| `PlatformTriggerEventReasonMeetsCondition` | MEETS_CONDITION | +| `PlatformTriggerEventReasonAssigned` | ASSIGNED | +| `PlatformTriggerEventReasonUnassigned` | UNASSIGNED | +| `PlatformTriggerEventReasonLabeled` | LABELED | +| `PlatformTriggerEventReasonUnlabeled` | UNLABELED | +| `PlatformTriggerEventReasonReviewRequested` | REVIEW_REQUESTED | +| `PlatformTriggerEventReasonReviewRequestRemoved` | REVIEW_REQUEST_REMOVED | +| `PlatformTriggerEventReasonReadyForReview` | READY_FOR_REVIEW | +| `PlatformTriggerEventReasonConvertedToDraft` | CONVERTED_TO_DRAFT | +| `PlatformTriggerEventReasonWebhookUpdated` | WEBHOOK_UPDATED | \ 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 00000000..68bb2ce6 --- /dev/null +++ b/docs/models/components/platformtriggereventsearchrequest.md @@ -0,0 +1,8 @@ +# PlatformTriggerEventSearchRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `PageSize` | `*int64` | :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 00000000..d925a0a9 --- /dev/null +++ b/docs/models/components/platformtriggereventsearchresponse.md @@ -0,0 +1,10 @@ +# PlatformTriggerEventSearchResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `Results` | [][components.PlatformTriggerEvent](../../models/components/platformtriggerevent.md) | :heavy_check_mark: | Matching events, most recent first. | +| `HasMore` | `bool` | :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 00000000..0411e93a --- /dev/null +++ b/docs/models/components/platformtriggereventtype.md @@ -0,0 +1,20 @@ +# PlatformTriggerEventType + +The kind of event. + +## Example Usage + +```go +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +value := components.PlatformTriggerEventTypeDocumentChange +``` + + +## Values + +| Name | Value | +| ---------------------------------------- | ---------------------------------------- | +| `PlatformTriggerEventTypeDocumentChange` | 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 00000000..5db5d715 --- /dev/null +++ b/docs/models/components/platformtriggergetresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggerGetResponse + + +## 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 00000000..d777dc94 --- /dev/null +++ b/docs/models/components/platformtriggerlistresponse.md @@ -0,0 +1,11 @@ +# PlatformTriggerListResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `Results` | [][components.PlatformTrigger](../../models/components/platformtrigger.md) | :heavy_check_mark: | Triggers owned by the caller. | +| `HasMore` | `bool` | :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 00000000..80488927 --- /dev/null +++ b/docs/models/components/platformtriggerpreset.md @@ -0,0 +1,12 @@ +# PlatformTriggerPreset + + +## 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 00000000..c1412ac8 --- /dev/null +++ b/docs/models/components/platformtriggerpreseteventsearchrequest.md @@ -0,0 +1,9 @@ +# PlatformTriggerPresetEventSearchRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `Inputs` | map[string]`string` | :heavy_minus_sign: | Values for the preset's input fields, keyed by field name.
| {
"repository": "acme/payments-api"
} | +| `PageSize` | `*int64` | :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 00000000..0c4dda45 --- /dev/null +++ b/docs/models/components/platformtriggerpresetgetresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggerPresetGetResponse + + +## 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 00000000..b31a70ea --- /dev/null +++ b/docs/models/components/platformtriggerpresetinput.md @@ -0,0 +1,13 @@ +# PlatformTriggerPresetInput + + +## 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` | `bool` | :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` | `*bool` | :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 00000000..76f37ed0 --- /dev/null +++ b/docs/models/components/platformtriggerpresetinputtype.md @@ -0,0 +1,25 @@ +# PlatformTriggerPresetInputType + +Type of a preset input. + +## Example Usage + +```go +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +value := components.PlatformTriggerPresetInputTypePicklist + +// Open enum: custom values can be created with a direct type cast +custom := components.PlatformTriggerPresetInputType("custom_value") +``` + + +## Values + +| Name | Value | +| ---------------------------------------- | ---------------------------------------- | +| `PlatformTriggerPresetInputTypePicklist` | PICKLIST | +| `PlatformTriggerPresetInputTypeText` | TEXT | +| `PlatformTriggerPresetInputTypeUser` | USER | \ 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 00000000..18e26e5c --- /dev/null +++ b/docs/models/components/platformtriggerpresetinputvalue.md @@ -0,0 +1,9 @@ +# PlatformTriggerPresetInputValue + + +## 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 00000000..50287ce0 --- /dev/null +++ b/docs/models/components/platformtriggerpresetinputvaluelistresponse.md @@ -0,0 +1,10 @@ +# PlatformTriggerPresetInputValueListResponse + + +## 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` | `bool` | :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 00000000..1a67abb1 --- /dev/null +++ b/docs/models/components/platformtriggerpresetlistresponse.md @@ -0,0 +1,11 @@ +# PlatformTriggerPresetListResponse + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `Results` | [][components.PlatformTriggerPresetSummary](../../models/components/platformtriggerpresetsummary.md) | :heavy_check_mark: | Trigger presets available to the caller. | +| `HasMore` | `bool` | :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 00000000..2d3d42b1 --- /dev/null +++ b/docs/models/components/platformtriggerpresetsummary.md @@ -0,0 +1,11 @@ +# PlatformTriggerPresetSummary + + +## 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 00000000..02ab1417 --- /dev/null +++ b/docs/models/components/platformtriggerstatus.md @@ -0,0 +1,24 @@ +# PlatformTriggerStatus + +Current trigger lifecycle state. + +## Example Usage + +```go +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +value := components.PlatformTriggerStatusEnabled + +// Open enum: custom values can be created with a direct type cast +custom := components.PlatformTriggerStatus("custom_value") +``` + + +## Values + +| Name | Value | +| ------------------------------- | ------------------------------- | +| `PlatformTriggerStatusEnabled` | ENABLED | +| `PlatformTriggerStatusDisabled` | DISABLED | \ 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 00000000..6315cd4f --- /dev/null +++ b/docs/models/components/platformtriggerupdaterequest.md @@ -0,0 +1,13 @@ +# PlatformTriggerUpdateRequest + +Partial update. Only the supplied fields are changed. + + +## 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` | map[string]`any` | :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 00000000..3371754f --- /dev/null +++ b/docs/models/components/platformtriggerwebhookevent.md @@ -0,0 +1,31 @@ +# 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 + +### PlatformDocumentChangeWebhookEvent + +```go +platformTriggerWebhookEvent := components.CreatePlatformTriggerWebhookEventPlatformDocumentChangeWebhookEvent(components.PlatformDocumentChangeWebhookEvent{/* values here */}) +``` + +### PlatformContentScheduleWebhookEvent + +```go +platformTriggerWebhookEvent := components.CreatePlatformTriggerWebhookEventPlatformContentScheduleWebhookEvent(components.PlatformContentScheduleWebhookEvent{/* values here */}) +``` + +## Union Discrimination + +Use the `Type` field to determine which variant is active, then access the corresponding field: + +```go +switch platformTriggerWebhookEvent.Type { + case components.PlatformTriggerWebhookEventTypePlatformDocumentChangeWebhookEvent: + // platformTriggerWebhookEvent.PlatformDocumentChangeWebhookEvent is populated + case components.PlatformTriggerWebhookEventTypePlatformContentScheduleWebhookEvent: + // platformTriggerWebhookEvent.PlatformContentScheduleWebhookEvent is populated +} +``` diff --git a/docs/models/components/platformtriggerwithsecret.md b/docs/models/components/platformtriggerwithsecret.md new file mode 100644 index 00000000..80bda37c --- /dev/null +++ b/docs/models/components/platformtriggerwithsecret.md @@ -0,0 +1,16 @@ +# PlatformTriggerWithSecret + + +## 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` | map[string]`any` | :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` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | Time the trigger was created. | | +| `UpdatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :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/platformtriggerpresetseventssearchrequest.md b/docs/models/operations/platformtriggerpresetseventssearchrequest.md new file mode 100644 index 00000000..f5328046 --- /dev/null +++ b/docs/models/operations/platformtriggerpresetseventssearchrequest.md @@ -0,0 +1,9 @@ +# PlatformTriggerPresetsEventsSearchRequest + + +## 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/platformtriggerpresetseventssearchresponse.md b/docs/models/operations/platformtriggerpresetseventssearchresponse.md new file mode 100644 index 00000000..c47d5627 --- /dev/null +++ b/docs/models/operations/platformtriggerpresetseventssearchresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggerPresetsEventsSearchResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `PlatformTriggerEventSearchResponse` | [*components.PlatformTriggerEventSearchResponse](../../models/components/platformtriggereventsearchresponse.md) | :heavy_minus_sign: | Successful response. | \ 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 00000000..872b57c1 --- /dev/null +++ b/docs/models/operations/platformtriggerpresetsgetrequest.md @@ -0,0 +1,8 @@ +# PlatformTriggerPresetsGetRequest + + +## 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/platformtriggerpresetsgetresponse.md b/docs/models/operations/platformtriggerpresetsgetresponse.md new file mode 100644 index 00000000..44ede5df --- /dev/null +++ b/docs/models/operations/platformtriggerpresetsgetresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggerPresetsGetResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `PlatformTriggerPresetGetResponse` | [*components.PlatformTriggerPresetGetResponse](../../models/components/platformtriggerpresetgetresponse.md) | :heavy_minus_sign: | Successful response. | \ 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 00000000..1b0a3569 --- /dev/null +++ b/docs/models/operations/platformtriggerpresetsinputvalueslistrequest.md @@ -0,0 +1,10 @@ +# PlatformTriggerPresetsInputValuesListRequest + + +## 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/platformtriggerpresetsinputvalueslistresponse.md b/docs/models/operations/platformtriggerpresetsinputvalueslistresponse.md new file mode 100644 index 00000000..8c151c2c --- /dev/null +++ b/docs/models/operations/platformtriggerpresetsinputvalueslistresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggerPresetsInputValuesListResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `PlatformTriggerPresetInputValueListResponse` | [*components.PlatformTriggerPresetInputValueListResponse](../../models/components/platformtriggerpresetinputvaluelistresponse.md) | :heavy_minus_sign: | Successful response. | \ 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 00000000..850d2bd5 --- /dev/null +++ b/docs/models/operations/platformtriggerpresetslistrequest.md @@ -0,0 +1,10 @@ +# PlatformTriggerPresetsListRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `Datasource` | `*string` | :heavy_minus_sign: | Restrict results to presets for a single datasource (e.g. github). | +| `PageSize` | `*int64` | :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/platformtriggerpresetslistresponse.md b/docs/models/operations/platformtriggerpresetslistresponse.md new file mode 100644 index 00000000..a9a70d5b --- /dev/null +++ b/docs/models/operations/platformtriggerpresetslistresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggerPresetsListResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `PlatformTriggerPresetListResponse` | [*components.PlatformTriggerPresetListResponse](../../models/components/platformtriggerpresetlistresponse.md) | :heavy_minus_sign: | Successful response. | \ No newline at end of file diff --git a/docs/models/operations/platformtriggerscreateresponse.md b/docs/models/operations/platformtriggerscreateresponse.md new file mode 100644 index 00000000..27f4ea0d --- /dev/null +++ b/docs/models/operations/platformtriggerscreateresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggersCreateResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `PlatformTriggerCreateResponse` | [*components.PlatformTriggerCreateResponse](../../models/components/platformtriggercreateresponse.md) | :heavy_minus_sign: | Trigger created. | \ 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 00000000..cee82453 --- /dev/null +++ b/docs/models/operations/platformtriggersdeleterequest.md @@ -0,0 +1,8 @@ +# PlatformTriggersDeleteRequest + + +## 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/platformtriggersdeleteresponse.md b/docs/models/operations/platformtriggersdeleteresponse.md new file mode 100644 index 00000000..fe6597eb --- /dev/null +++ b/docs/models/operations/platformtriggersdeleteresponse.md @@ -0,0 +1,8 @@ +# PlatformTriggersDeleteResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | \ 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 00000000..6a6c45fb --- /dev/null +++ b/docs/models/operations/platformtriggerseventssearchrequest.md @@ -0,0 +1,9 @@ +# PlatformTriggersEventsSearchRequest + + +## 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/platformtriggerseventssearchresponse.md b/docs/models/operations/platformtriggerseventssearchresponse.md new file mode 100644 index 00000000..80a6c0a7 --- /dev/null +++ b/docs/models/operations/platformtriggerseventssearchresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggersEventsSearchResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `PlatformTriggerEventSearchResponse` | [*components.PlatformTriggerEventSearchResponse](../../models/components/platformtriggereventsearchresponse.md) | :heavy_minus_sign: | Successful response. | \ 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 00000000..7f6c6372 --- /dev/null +++ b/docs/models/operations/platformtriggersgetrequest.md @@ -0,0 +1,8 @@ +# PlatformTriggersGetRequest + + +## 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/platformtriggersgetresponse.md b/docs/models/operations/platformtriggersgetresponse.md new file mode 100644 index 00000000..4e6798cb --- /dev/null +++ b/docs/models/operations/platformtriggersgetresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggersGetResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `PlatformTriggerGetResponse` | [*components.PlatformTriggerGetResponse](../../models/components/platformtriggergetresponse.md) | :heavy_minus_sign: | Successful response. | \ 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 00000000..3a1568a2 --- /dev/null +++ b/docs/models/operations/platformtriggerslistrequest.md @@ -0,0 +1,9 @@ +# PlatformTriggersListRequest + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `PageSize` | `*int64` | :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/platformtriggerslistresponse.md b/docs/models/operations/platformtriggerslistresponse.md new file mode 100644 index 00000000..b3243810 --- /dev/null +++ b/docs/models/operations/platformtriggerslistresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggersListResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `PlatformTriggerListResponse` | [*components.PlatformTriggerListResponse](../../models/components/platformtriggerlistresponse.md) | :heavy_minus_sign: | Successful 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 00000000..ec377395 --- /dev/null +++ b/docs/models/operations/platformtriggersupdaterequest.md @@ -0,0 +1,9 @@ +# PlatformTriggersUpdateRequest + + +## 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/models/operations/platformtriggersupdateresponse.md b/docs/models/operations/platformtriggersupdateresponse.md new file mode 100644 index 00000000..999794a5 --- /dev/null +++ b/docs/models/operations/platformtriggersupdateresponse.md @@ -0,0 +1,9 @@ +# PlatformTriggersUpdateResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `PlatformTriggerGetResponse` | [*components.PlatformTriggerGetResponse](../../models/components/platformtriggergetresponse.md) | :heavy_minus_sign: | Trigger updated. | \ No newline at end of file diff --git a/docs/sdks/skills/README.md b/docs/sdks/skills/README.md index 80f048d5..25e58ff3 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 @@ -141,14 +141,14 @@ func main() { | apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | | apierrors.APIError | 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 - + ```go package main @@ -167,21 +167,15 @@ func main() { apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), ) - example, fileErr := os.Open("example.file") - if fileErr != nil { - panic(fileErr) - } - - res, err := s.Skills.Validate(ctx, components.PlatformSkillValidationRequest{ - File: components.PlatformSkillValidationRequestFile{ - FileName: "example.file", - Content: example, + res, err := s.Skills.Import(ctx, components.PlatformSkillImportRequest{ + SourceUrls: []string{ + "", }, }) if err != nil { log.Fatal(err) } - if res.PlatformSkillValidationResponse != nil { + if res.PlatformSkillImportResponse != nil { // handle response } } @@ -189,32 +183,32 @@ func main() { ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | -| `request` | [components.PlatformSkillValidationRequest](../../models/components/platformskillvalidationrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | +| Parameter | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `request` | [components.PlatformSkillImportRequest](../../models/components/platformskillimportrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | ### Response -**[*operations.PlatformSkillsValidateResponse](../../models/operations/platformskillsvalidateresponse.md), error** +**[*operations.PlatformSkillsImportResponse](../../models/operations/platformskillsimportresponse.md), error** ### Errors | Error Type | Status Code | Content Type | | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| apierrors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 408, 409, 413, 429 | application/problem+json | | apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | | apierrors.APIError | 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 - + ```go package main @@ -233,15 +227,21 @@ func main() { apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), ) - res, err := s.Skills.Import(ctx, components.PlatformSkillImportRequest{ - SourceUrls: []string{ - "", + example, fileErr := os.Open("example.file") + if fileErr != nil { + panic(fileErr) + } + + res, err := s.Skills.Validate(ctx, components.PlatformSkillValidationRequest{ + File: components.PlatformSkillValidationRequestFile{ + FileName: "example.file", + Content: example, }, }) if err != nil { log.Fatal(err) } - if res.PlatformSkillImportResponse != nil { + if res.PlatformSkillValidationResponse != nil { // handle response } } @@ -249,21 +249,21 @@ func main() { ### Parameters -| Parameter | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | -| `request` | [components.PlatformSkillImportRequest](../../models/components/platformskillimportrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `request` | [components.PlatformSkillValidationRequest](../../models/components/platformskillvalidationrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | ### Response -**[*operations.PlatformSkillsImportResponse](../../models/operations/platformskillsimportresponse.md), error** +**[*operations.PlatformSkillsValidateResponse](../../models/operations/platformskillsvalidateresponse.md), error** ### Errors | Error Type | Status Code | Content Type | | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| apierrors.PlatformProblemDetailError | 400, 401, 403, 408, 409, 413, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | | apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | | apierrors.APIError | 4XX, 5XX | \*/\* | diff --git a/docs/sdks/tools/README.md b/docs/sdks/tools/README.md index f8748ab1..cfce4a65 100644 --- a/docs/sdks/tools/README.md +++ b/docs/sdks/tools/README.md @@ -363,14 +363,15 @@ func main() { ## 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 00000000..9dd43eba --- /dev/null +++ b/docs/sdks/triggers/README.md @@ -0,0 +1,607 @@ +# 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 + + +```go +package main + +import( + "context" + "os" + apiclientgo "github.com/gleanwork/api-client-go" + "github.com/gleanwork/api-client-go/models/components" + "log" +) + +func main() { + ctx := context.Background() + + s := apiclientgo.New( + apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), + ) + + res, err := s.Triggers.Create(ctx, components.PlatformTriggerCreateRequest{ + PresetID: "GITHUB_1", + Description: apiclientgo.Pointer("Reviews I am tagged on, sent to my team's review channel"), + Inputs: map[string]any{ + "repository": "acme/payments-api", + }, + Delivery: components.PlatformTriggerDelivery{ + WebhookURL: "https://customer.app/webhook", + Auth: &components.PlatformTriggerAuth{ + Type: components.PlatformTriggerAuthTypeBearer, + Secret: "secret_test_123", + }, + }, + }) + if err != nil { + log.Fatal(err) + } + if res.PlatformTriggerCreateResponse != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `request` | [components.PlatformTriggerCreateRequest](../../models/components/platformtriggercreaterequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.PlatformTriggersCreateResponse](../../models/operations/platformtriggerscreateresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 409, 413, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| apierrors.APIError | 4XX, 5XX | \*/\* | + +## List + +List triggers owned by the authenticated caller. + + +### Example Usage + + +```go +package main + +import( + "context" + "os" + apiclientgo "github.com/gleanwork/api-client-go" + "log" +) + +func main() { + ctx := context.Background() + + s := apiclientgo.New( + apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), + ) + + res, err := s.Triggers.List(ctx, apiclientgo.Pointer[int64](50), nil) + if err != nil { + log.Fatal(err) + } + if res.PlatformTriggerListResponse != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `pageSize` | `*int64` | :heavy_minus_sign: | Maximum number of triggers to return. | +| `cursor` | `*string` | :heavy_minus_sign: | Opaque pagination cursor from a previous response. | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.PlatformTriggersListResponse](../../models/operations/platformtriggerslistresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 408, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| apierrors.APIError | 4XX, 5XX | \*/\* | + +## Get + +Retrieve a trigger owned by the authenticated caller. + + +### Example Usage + + +```go +package main + +import( + "context" + "os" + apiclientgo "github.com/gleanwork/api-client-go" + "log" +) + +func main() { + ctx := context.Background() + + s := apiclientgo.New( + apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), + ) + + res, err := s.Triggers.Get(ctx, "") + if err != nil { + log.Fatal(err) + } + if res.PlatformTriggerGetResponse != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `triggerID` | `string` | :heavy_check_mark: | ID of the trigger to retrieve. | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.PlatformTriggersGetResponse](../../models/operations/platformtriggersgetresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| apierrors.APIError | 4XX, 5XX | \*/\* | + +## Update + +Update a trigger. + + +### Example Usage + + +```go +package main + +import( + "context" + "os" + apiclientgo "github.com/gleanwork/api-client-go" + "github.com/gleanwork/api-client-go/models/components" + "log" +) + +func main() { + ctx := context.Background() + + s := apiclientgo.New( + apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), + ) + + res, err := s.Triggers.Update(ctx, "", components.PlatformTriggerUpdateRequest{ + Status: components.PlatformTriggerStatusEnabled.ToPointer(), + Description: apiclientgo.Pointer("Reviews I am tagged on, sent to my team's review channel"), + Inputs: map[string]any{ + "repository": "acme/payments-api", + }, + Delivery: &components.PlatformTriggerDelivery{ + WebhookURL: "https://customer.app/webhook", + Auth: &components.PlatformTriggerAuth{ + Type: components.PlatformTriggerAuthTypeBearer, + Secret: "secret_test_123", + }, + }, + }) + if err != nil { + log.Fatal(err) + } + if res.PlatformTriggerGetResponse != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `triggerID` | `string` | :heavy_check_mark: | ID of the trigger to update. | +| `platformTriggerUpdateRequest` | [components.PlatformTriggerUpdateRequest](../../models/components/platformtriggerupdaterequest.md) | :heavy_check_mark: | N/A | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.PlatformTriggersUpdateResponse](../../models/operations/platformtriggersupdateresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| apierrors.APIError | 4XX, 5XX | \*/\* | + +## Delete + +Delete a trigger. + + +### Example Usage + + +```go +package main + +import( + "context" + "os" + apiclientgo "github.com/gleanwork/api-client-go" + "log" +) + +func main() { + ctx := context.Background() + + s := apiclientgo.New( + apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), + ) + + res, err := s.Triggers.Delete(ctx, "") + if err != nil { + log.Fatal(err) + } + if res != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `triggerID` | `string` | :heavy_check_mark: | ID of the trigger to delete. | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.PlatformTriggersDeleteResponse](../../models/operations/platformtriggersdeleteresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| apierrors.APIError | 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 + + +```go +package main + +import( + "context" + "os" + apiclientgo "github.com/gleanwork/api-client-go" + "log" +) + +func main() { + ctx := context.Background() + + s := apiclientgo.New( + apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), + ) + + res, err := s.Triggers.SearchEvents(ctx, "", nil) + if err != nil { + log.Fatal(err) + } + if res.PlatformTriggerEventSearchResponse != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `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 | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.PlatformTriggersEventsSearchResponse](../../models/operations/platformtriggerseventssearchresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| apierrors.APIError | 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 + + +```go +package main + +import( + "context" + "os" + apiclientgo "github.com/gleanwork/api-client-go" + "log" +) + +func main() { + ctx := context.Background() + + s := apiclientgo.New( + apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), + ) + + res, err := s.Triggers.ListPresets(ctx, nil, apiclientgo.Pointer[int64](50), nil) + if err != nil { + log.Fatal(err) + } + if res.PlatformTriggerPresetListResponse != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `datasource` | `*string` | :heavy_minus_sign: | Restrict results to presets for a single datasource (e.g. github). | +| `pageSize` | `*int64` | :heavy_minus_sign: | Maximum number of presets to return. | +| `cursor` | `*string` | :heavy_minus_sign: | Opaque pagination cursor from a previous response. | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.PlatformTriggerPresetsListResponse](../../models/operations/platformtriggerpresetslistresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 408, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| apierrors.APIError | 4XX, 5XX | \*/\* | + +## GetPreset + +Retrieve a single trigger preset by id. + + +### Example Usage + + +```go +package main + +import( + "context" + "os" + apiclientgo "github.com/gleanwork/api-client-go" + "log" +) + +func main() { + ctx := context.Background() + + s := apiclientgo.New( + apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), + ) + + res, err := s.Triggers.GetPreset(ctx, "") + if err != nil { + log.Fatal(err) + } + if res.PlatformTriggerPresetGetResponse != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `presetID` | `string` | :heavy_check_mark: | ID of the preset to retrieve. | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.PlatformTriggerPresetsGetResponse](../../models/operations/platformtriggerpresetsgetresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| apierrors.APIError | 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 + + +```go +package main + +import( + "context" + "os" + apiclientgo "github.com/gleanwork/api-client-go" + "log" +) + +func main() { + ctx := context.Background() + + s := apiclientgo.New( + apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), + ) + + res, err := s.Triggers.ListPresetInputValues(ctx, "", "", nil) + if err != nil { + log.Fatal(err) + } + if res.PlatformTriggerPresetInputValueListResponse != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `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.
| +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.PlatformTriggerPresetsInputValuesListResponse](../../models/operations/platformtriggerpresetsinputvalueslistresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| apierrors.APIError | 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 + + +```go +package main + +import( + "context" + "os" + apiclientgo "github.com/gleanwork/api-client-go" + "github.com/gleanwork/api-client-go/models/components" + "log" +) + +func main() { + ctx := context.Background() + + s := apiclientgo.New( + apiclientgo.WithSecurity(os.Getenv("GLEAN_API_TOKEN")), + ) + + res, err := s.Triggers.SearchPresetEvents(ctx, "", &components.PlatformTriggerPresetEventSearchRequest{ + Inputs: map[string]string{ + "repository": "acme/payments-api", + }, + }) + if err != nil { + log.Fatal(err) + } + if res.PlatformTriggerEventSearchResponse != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `presetID` | `string` | :heavy_check_mark: | ID of the preset to preview. | +| `platformTriggerPresetEventSearchRequest` | [*components.PlatformTriggerPresetEventSearchRequest](../../models/components/platformtriggerpreseteventsearchrequest.md) | :heavy_minus_sign: | N/A | +| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.PlatformTriggerPresetsEventsSearchResponse](../../models/operations/platformtriggerpresetseventssearchresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | +| apierrors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | +| apierrors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| apierrors.APIError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/glean.go b/glean.go index abdbc27b..01e16595 100644 --- a/glean.go +++ b/glean.go @@ -2,7 +2,7 @@ package apiclientgo -// Generated from OpenAPI doc version 0.9.0 and generator version 2.927.0 +// Generated from OpenAPI doc version 0.9.0 and generator version 2.931.0 import ( "context" @@ -69,6 +69,7 @@ type Glean struct { Chat *Chat Skills *Skills Search *Search + Triggers *Triggers Client *Client Indexing *Indexing @@ -160,9 +161,9 @@ func WithTimeout(timeout time.Duration) SDKOption { // New creates a new instance of the SDK with the provided options func New(opts ...SDKOption) *Glean { sdk := &Glean{ - SDKVersion: "0.13.5", + SDKVersion: "0.14.0", sdkConfiguration: config.SDKConfiguration{ - UserAgent: "speakeasy-sdk/go 0.13.5 2.927.0 0.9.0 github.com/gleanwork/api-client-go", + UserAgent: "speakeasy-sdk/go 0.14.0 2.931.0 0.9.0 github.com/gleanwork/api-client-go", ServerList: ServerList, ServerVariables: []map[string]string{ { @@ -199,6 +200,7 @@ func New(opts ...SDKOption) *Glean { sdk.Chat = newChat(sdk, sdk.sdkConfiguration, sdk.hooks) sdk.Skills = newSkills(sdk, sdk.sdkConfiguration, sdk.hooks) sdk.Search = newSearch(sdk, sdk.sdkConfiguration, sdk.hooks) + sdk.Triggers = newTriggers(sdk, sdk.sdkConfiguration, sdk.hooks) sdk.Client = newClient(sdk, sdk.sdkConfiguration, sdk.hooks) sdk.Indexing = newIndexing(sdk, sdk.sdkConfiguration, sdk.hooks) diff --git a/models/callbacks/platformtriggerscreate.go b/models/callbacks/platformtriggerscreate.go new file mode 100644 index 00000000..31a73835 --- /dev/null +++ b/models/callbacks/platformtriggerscreate.go @@ -0,0 +1,69 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package callbacks + +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +type PlatformTriggersCreateTriggerWebhookEventResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` +} + +func (p *PlatformTriggersCreateTriggerWebhookEventResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.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"` + PlatformTriggerWebhookEvent components.PlatformTriggerWebhookEvent `request:"mediaType=application/json"` +} + +func (p *PlatformTriggersCreateTriggerWebhookEventRequest) GetWebhookID() string { + if p == nil { + return "" + } + return p.WebhookID +} + +func (p *PlatformTriggersCreateTriggerWebhookEventRequest) GetWebhookTimestamp() int64 { + if p == nil { + return 0 + } + return p.WebhookTimestamp +} + +func (p *PlatformTriggersCreateTriggerWebhookEventRequest) GetWebhookSignature() string { + if p == nil { + return "" + } + return p.WebhookSignature +} + +func (p *PlatformTriggersCreateTriggerWebhookEventRequest) GetPlatformTriggerWebhookEvent() components.PlatformTriggerWebhookEvent { + if p == nil { + return components.PlatformTriggerWebhookEvent{} + } + return p.PlatformTriggerWebhookEvent +} diff --git a/models/components/calendarevent.go b/models/components/calendarevent.go index b3ba02fd..8bb8a780 100644 --- a/models/components/calendarevent.go +++ b/models/components/calendarevent.go @@ -35,6 +35,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 *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"` @@ -85,6 +91,27 @@ func (c *CalendarEvent) GetAttendees() *CalendarAttendees { return c.Attendees } +func (c *CalendarEvent) GetIsOrganizer() *bool { + if c == nil { + return nil + } + return c.IsOrganizer +} + +func (c *CalendarEvent) GetRoomBookingStatus() *CalendarRoomBookingStatus { + if c == nil { + return nil + } + return c.RoomBookingStatus +} + +func (c *CalendarEvent) GetRoomName() *string { + if c == nil { + return nil + } + return c.RoomName +} + func (c *CalendarEvent) GetLocation() *string { if c == nil { return nil diff --git a/models/components/calendarroombookingstatus.go b/models/components/calendarroombookingstatus.go new file mode 100644 index 00000000..88f3e9f4 --- /dev/null +++ b/models/components/calendarroombookingstatus.go @@ -0,0 +1,28 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +// 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 +} + +// IsExact returns true if the value matches a known enum value, false otherwise. +func (e *CalendarRoomBookingStatus) IsExact() bool { + if e != nil { + switch *e { + case "NONE", "ACCEPTED", "DECLINED", "PENDING": + return true + } + } + return false +} diff --git a/models/components/feedentry.go b/models/components/feedentry.go index de252b0f..9700fb61 100644 --- a/models/components/feedentry.go +++ b/models/components/feedentry.go @@ -98,6 +98,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" @@ -114,6 +115,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 { @@ -124,7 +126,7 @@ func (e JustificationType) ToPointer() *JustificationType { func (e *JustificationType) IsExact() bool { if e != nil { switch *e { - case "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": + case "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": return true } } diff --git a/models/components/feedrequest.go b/models/components/feedrequest.go index 9e570b31..283b42e0 100644 --- a/models/components/feedrequest.go +++ b/models/components/feedrequest.go @@ -55,6 +55,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 { @@ -155,6 +156,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/models/components/feedresult.go b/models/components/feedresult.go index f809c38f..8bb88191 100644 --- a/models/components/feedresult.go +++ b/models/components/feedresult.go @@ -51,6 +51,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 { @@ -61,19 +62,20 @@ func (e FeedResultCategory) ToPointer() *FeedResultCategory { func (e *FeedResultCategory) IsExact() bool { if e != nil { switch *e { - case "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": + case "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": return true } } return false } -// 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 { @@ -84,7 +86,7 @@ func (e PlacementReason) ToPointer() *PlacementReason { func (e *PlacementReason) IsExact() bool { if e != nil { switch *e { - case "ORGANIC", "PROMO": + case "ORGANIC", "PROMO", "PINNED": return true } } @@ -99,7 +101,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/models/components/platformchatcitationannotation.go b/models/components/platformchatcitationannotation.go index 684bad97..26698e4d 100644 --- a/models/components/platformchatcitationannotation.go +++ b/models/components/platformchatcitationannotation.go @@ -10,7 +10,7 @@ import ( type PlatformChatCitationAnnotationType string const ( - PlatformChatCitationAnnotationTypeCitation PlatformChatCitationAnnotationType = "citation" + PlatformChatCitationAnnotationTypeCitation PlatformChatCitationAnnotationType = "CITATION" ) func (e PlatformChatCitationAnnotationType) ToPointer() *PlatformChatCitationAnnotationType { @@ -22,7 +22,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/models/components/platformchatcompletedresponse.go b/models/components/platformchatcompletedresponse.go index b2b39b5b..6a3ae774 100644 --- a/models/components/platformchatcompletedresponse.go +++ b/models/components/platformchatcompletedresponse.go @@ -12,7 +12,7 @@ import ( type Object string const ( - ObjectResponse Object = "response" + ObjectResponse Object = "RESPONSE" ) func (e Object) ToPointer() *Object { @@ -24,7 +24,7 @@ func (e *Object) UnmarshalJSON(data []byte) error { return err } switch v { - case "response": + case "RESPONSE": *e = Object(v) return nil default: @@ -35,7 +35,7 @@ func (e *Object) UnmarshalJSON(data []byte) error { type PlatformChatCompletedResponseStatus string const ( - PlatformChatCompletedResponseStatusCompleted PlatformChatCompletedResponseStatus = "completed" + PlatformChatCompletedResponseStatusCompleted PlatformChatCompletedResponseStatus = "COMPLETED" ) func (e PlatformChatCompletedResponseStatus) ToPointer() *PlatformChatCompletedResponseStatus { @@ -47,7 +47,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/models/components/platformchatcreaterequest.go b/models/components/platformchatcreaterequest.go index 22265370..108385f2 100644 --- a/models/components/platformchatcreaterequest.go +++ b/models/components/platformchatcreaterequest.go @@ -15,7 +15,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" union:"member"` ArrayOfPlatformChatInputMessage []PlatformChatInputMessage `queryParam:"inline" union:"member"` @@ -99,7 +99,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/models/components/platformchatcustomentitysource.go b/models/components/platformchatcustomentitysource.go index cc4cc754..a66d9312 100644 --- a/models/components/platformchatcustomentitysource.go +++ b/models/components/platformchatcustomentitysource.go @@ -11,7 +11,7 @@ import ( type PlatformChatCustomEntitySourceType string const ( - PlatformChatCustomEntitySourceTypeCustomEntity PlatformChatCustomEntitySourceType = "custom_entity" + PlatformChatCustomEntitySourceTypeCustomEntity PlatformChatCustomEntitySourceType = "CUSTOM_ENTITY" ) func (e PlatformChatCustomEntitySourceType) ToPointer() *PlatformChatCustomEntitySourceType { @@ -23,7 +23,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/models/components/platformchatdocumentsource.go b/models/components/platformchatdocumentsource.go index 3c56f4d6..f87448db 100644 --- a/models/components/platformchatdocumentsource.go +++ b/models/components/platformchatdocumentsource.go @@ -12,7 +12,7 @@ import ( type PlatformChatDocumentSourceType2 string const ( - PlatformChatDocumentSourceType2Document PlatformChatDocumentSourceType2 = "document" + PlatformChatDocumentSourceType2Document PlatformChatDocumentSourceType2 = "DOCUMENT" ) func (e PlatformChatDocumentSourceType2) ToPointer() *PlatformChatDocumentSourceType2 { @@ -24,7 +24,7 @@ func (e *PlatformChatDocumentSourceType2) UnmarshalJSON(data []byte) error { return err } switch v { - case "document": + case "DOCUMENT": *e = PlatformChatDocumentSourceType2(v) return nil default: @@ -92,7 +92,7 @@ func (p *PlatformChatDocumentSourceDocument2) GetDatasource() *string { type PlatformChatDocumentSourceType1 string const ( - PlatformChatDocumentSourceType1Document PlatformChatDocumentSourceType1 = "document" + PlatformChatDocumentSourceType1Document PlatformChatDocumentSourceType1 = "DOCUMENT" ) func (e PlatformChatDocumentSourceType1) ToPointer() *PlatformChatDocumentSourceType1 { @@ -104,7 +104,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/models/components/platformchatfilesource.go b/models/components/platformchatfilesource.go index 0f523542..ba46db41 100644 --- a/models/components/platformchatfilesource.go +++ b/models/components/platformchatfilesource.go @@ -11,7 +11,7 @@ import ( type PlatformChatFileSourceType string const ( - PlatformChatFileSourceTypeFile PlatformChatFileSourceType = "file" + PlatformChatFileSourceTypeFile PlatformChatFileSourceType = "FILE" ) func (e PlatformChatFileSourceType) ToPointer() *PlatformChatFileSourceType { @@ -23,7 +23,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/models/components/platformchatinputmessage.go b/models/components/platformchatinputmessage.go index 04171d05..18221040 100644 --- a/models/components/platformchatinputmessage.go +++ b/models/components/platformchatinputmessage.go @@ -11,8 +11,8 @@ import ( type PlatformChatInputMessageRole string const ( - PlatformChatInputMessageRoleUser PlatformChatInputMessageRole = "user" - PlatformChatInputMessageRoleAssistant PlatformChatInputMessageRole = "assistant" + PlatformChatInputMessageRoleUser PlatformChatInputMessageRole = "USER" + PlatformChatInputMessageRoleAssistant PlatformChatInputMessageRole = "ASSISTANT" ) func (e PlatformChatInputMessageRole) ToPointer() *PlatformChatInputMessageRole { @@ -24,9 +24,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/models/components/platformchatoutputmessage.go b/models/components/platformchatoutputmessage.go index b606d34b..768adc89 100644 --- a/models/components/platformchatoutputmessage.go +++ b/models/components/platformchatoutputmessage.go @@ -10,7 +10,7 @@ import ( type PlatformChatOutputMessageType string const ( - PlatformChatOutputMessageTypeMessage PlatformChatOutputMessageType = "message" + PlatformChatOutputMessageTypeMessage PlatformChatOutputMessageType = "MESSAGE" ) func (e PlatformChatOutputMessageType) ToPointer() *PlatformChatOutputMessageType { @@ -22,7 +22,7 @@ func (e *PlatformChatOutputMessageType) UnmarshalJSON(data []byte) error { return err } switch v { - case "message": + case "MESSAGE": *e = PlatformChatOutputMessageType(v) return nil default: @@ -33,7 +33,7 @@ func (e *PlatformChatOutputMessageType) UnmarshalJSON(data []byte) error { type PlatformChatOutputMessageRole string const ( - PlatformChatOutputMessageRoleAssistant PlatformChatOutputMessageRole = "assistant" + PlatformChatOutputMessageRoleAssistant PlatformChatOutputMessageRole = "ASSISTANT" ) func (e PlatformChatOutputMessageRole) ToPointer() *PlatformChatOutputMessageRole { @@ -45,7 +45,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/models/components/platformchatoutputtextcontent.go b/models/components/platformchatoutputtextcontent.go index 003b42bf..beb7f496 100644 --- a/models/components/platformchatoutputtextcontent.go +++ b/models/components/platformchatoutputtextcontent.go @@ -10,7 +10,7 @@ import ( type PlatformChatOutputTextContentType string const ( - PlatformChatOutputTextContentTypeOutputText PlatformChatOutputTextContentType = "output_text" + PlatformChatOutputTextContentTypeOutputText PlatformChatOutputTextContentType = "OUTPUT_TEXT" ) func (e PlatformChatOutputTextContentType) ToPointer() *PlatformChatOutputTextContentType { @@ -22,7 +22,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/models/components/platformchatpersonsource.go b/models/components/platformchatpersonsource.go index ed46b5df..665461e1 100644 --- a/models/components/platformchatpersonsource.go +++ b/models/components/platformchatpersonsource.go @@ -11,7 +11,7 @@ import ( type PlatformChatPersonSourceType string const ( - PlatformChatPersonSourceTypePerson PlatformChatPersonSourceType = "person" + PlatformChatPersonSourceTypePerson PlatformChatPersonSourceType = "PERSON" ) func (e PlatformChatPersonSourceType) ToPointer() *PlatformChatPersonSourceType { @@ -23,7 +23,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/models/components/platformcontentschedulewebhookevent.go b/models/components/platformcontentschedulewebhookevent.go new file mode 100644 index 00000000..aa5d2b90 --- /dev/null +++ b/models/components/platformcontentschedulewebhookevent.go @@ -0,0 +1,120 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "github.com/gleanwork/api-client-go/internal/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, nil); err != nil { + return err + } + return nil +} + +func (p *PlatformContentScheduleWebhookEvent) GetVersion() string { + if p == nil { + return "" + } + return p.Version +} + +func (p *PlatformContentScheduleWebhookEvent) GetTriggerID() string { + if p == nil { + return "" + } + return p.TriggerID +} + +func (p *PlatformContentScheduleWebhookEvent) GetEventType() string { + if p == nil { + return "" + } + return p.EventType +} + +func (p *PlatformContentScheduleWebhookEvent) GetDatasource() string { + if p == nil { + return "" + } + return p.Datasource +} + +func (p *PlatformContentScheduleWebhookEvent) GetReason() string { + if p == nil { + return "" + } + return p.Reason +} + +func (p *PlatformContentScheduleWebhookEvent) GetDocType() string { + if p == nil { + return "" + } + return p.DocType +} + +func (p *PlatformContentScheduleWebhookEvent) GetDocID() string { + if p == nil { + return "" + } + return p.DocID +} + +func (p *PlatformContentScheduleWebhookEvent) GetViewURL() string { + if p == nil { + return "" + } + return p.ViewURL +} + +func (p *PlatformContentScheduleWebhookEvent) GetTitle() string { + if p == nil { + return "" + } + return p.Title +} + +func (p *PlatformContentScheduleWebhookEvent) GetEventTime() *time.Time { + if p == nil { + return nil + } + return p.EventTime +} + +func (p *PlatformContentScheduleWebhookEvent) GetTimeOffsetSeconds() int { + if p == nil { + return 0 + } + return p.TimeOffsetSeconds +} diff --git a/models/components/platformdocumentchangewebhookevent.go b/models/components/platformdocumentchangewebhookevent.go new file mode 100644 index 00000000..4dccb7a4 --- /dev/null +++ b/models/components/platformdocumentchangewebhookevent.go @@ -0,0 +1,129 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "github.com/gleanwork/api-client-go/internal/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, nil); err != nil { + return err + } + return nil +} + +func (p *PlatformDocumentChangeWebhookEvent) GetVersion() string { + if p == nil { + return "" + } + return p.Version +} + +func (p *PlatformDocumentChangeWebhookEvent) GetTriggerID() string { + if p == nil { + return "" + } + return p.TriggerID +} + +func (p *PlatformDocumentChangeWebhookEvent) GetEventType() string { + if p == nil { + return "" + } + return p.EventType +} + +func (p *PlatformDocumentChangeWebhookEvent) GetDatasource() string { + if p == nil { + return "" + } + return p.Datasource +} + +func (p *PlatformDocumentChangeWebhookEvent) GetReason() string { + if p == nil { + return "" + } + return p.Reason +} + +func (p *PlatformDocumentChangeWebhookEvent) GetDocType() string { + if p == nil { + return "" + } + return p.DocType +} + +func (p *PlatformDocumentChangeWebhookEvent) GetDocID() string { + if p == nil { + return "" + } + return p.DocID +} + +func (p *PlatformDocumentChangeWebhookEvent) GetViewURL() string { + if p == nil { + return "" + } + return p.ViewURL +} + +func (p *PlatformDocumentChangeWebhookEvent) GetTitle() string { + if p == nil { + return "" + } + return p.Title +} + +func (p *PlatformDocumentChangeWebhookEvent) GetEventTime() *time.Time { + if p == nil { + return nil + } + return p.EventTime +} + +func (p *PlatformDocumentChangeWebhookEvent) GetContent() *string { + if p == nil { + return nil + } + return p.Content +} + +func (p *PlatformDocumentChangeWebhookEvent) GetContentTruncated() *bool { + if p == nil { + return nil + } + return p.ContentTruncated +} diff --git a/models/components/platformtrigger.go b/models/components/platformtrigger.go new file mode 100644 index 00000000..cf174cd4 --- /dev/null +++ b/models/components/platformtrigger.go @@ -0,0 +1,93 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "github.com/gleanwork/api-client-go/internal/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, nil); err != nil { + return err + } + return nil +} + +func (p *PlatformTrigger) GetTriggerID() string { + if p == nil { + return "" + } + return p.TriggerID +} + +func (p *PlatformTrigger) GetPresetID() string { + if p == nil { + return "" + } + return p.PresetID +} + +func (p *PlatformTrigger) GetDescription() *string { + if p == nil { + return nil + } + return p.Description +} + +func (p *PlatformTrigger) GetStatus() PlatformTriggerStatus { + if p == nil { + return PlatformTriggerStatus("") + } + return p.Status +} + +func (p *PlatformTrigger) GetInputs() map[string]any { + if p == nil { + return nil + } + return p.Inputs +} + +func (p *PlatformTrigger) GetDelivery() PlatformTriggerDeliveryOutput { + if p == nil { + return PlatformTriggerDeliveryOutput{} + } + return p.Delivery +} + +func (p *PlatformTrigger) GetCreatedAt() time.Time { + if p == nil { + return time.Time{} + } + return p.CreatedAt +} + +func (p *PlatformTrigger) GetUpdatedAt() time.Time { + if p == nil { + return time.Time{} + } + return p.UpdatedAt +} diff --git a/models/components/platformtriggerauthoutput.go b/models/components/platformtriggerauthoutput.go new file mode 100644 index 00000000..2f39caa6 --- /dev/null +++ b/models/components/platformtriggerauthoutput.go @@ -0,0 +1,67 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerAuthOutput) GetType() PlatformTriggerAuthType { + if p == nil { + return PlatformTriggerAuthType("") + } + return p.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 (p *PlatformTriggerAuth) GetType() PlatformTriggerAuthType { + if p == nil { + return PlatformTriggerAuthType("") + } + return p.Type +} + +func (p *PlatformTriggerAuth) GetSecret() string { + if p == nil { + return "" + } + return p.Secret +} diff --git a/models/components/platformtriggercreaterequest.go b/models/components/platformtriggercreaterequest.go new file mode 100644 index 00000000..c07d2555 --- /dev/null +++ b/models/components/platformtriggercreaterequest.go @@ -0,0 +1,41 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerCreateRequest) GetPresetID() string { + if p == nil { + return "" + } + return p.PresetID +} + +func (p *PlatformTriggerCreateRequest) GetDescription() *string { + if p == nil { + return nil + } + return p.Description +} + +func (p *PlatformTriggerCreateRequest) GetInputs() map[string]any { + if p == nil { + return nil + } + return p.Inputs +} + +func (p *PlatformTriggerCreateRequest) GetDelivery() PlatformTriggerDelivery { + if p == nil { + return PlatformTriggerDelivery{} + } + return p.Delivery +} diff --git a/models/components/platformtriggercreateresponse.go b/models/components/platformtriggercreateresponse.go new file mode 100644 index 00000000..ac60c07b --- /dev/null +++ b/models/components/platformtriggercreateresponse.go @@ -0,0 +1,23 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type PlatformTriggerCreateResponse struct { + Trigger PlatformTriggerWithSecret `json:"trigger"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (p *PlatformTriggerCreateResponse) GetTrigger() PlatformTriggerWithSecret { + if p == nil { + return PlatformTriggerWithSecret{} + } + return p.Trigger +} + +func (p *PlatformTriggerCreateResponse) GetRequestID() string { + if p == nil { + return "" + } + return p.RequestID +} diff --git a/models/components/platformtriggerdelivery.go b/models/components/platformtriggerdelivery.go new file mode 100644 index 00000000..50fe8a3d --- /dev/null +++ b/models/components/platformtriggerdelivery.go @@ -0,0 +1,24 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerDelivery) GetWebhookURL() string { + if p == nil { + return "" + } + return p.WebhookURL +} + +func (p *PlatformTriggerDelivery) GetAuth() *PlatformTriggerAuth { + if p == nil { + return nil + } + return p.Auth +} diff --git a/models/components/platformtriggerdeliveryoutput.go b/models/components/platformtriggerdeliveryoutput.go new file mode 100644 index 00000000..7d67a082 --- /dev/null +++ b/models/components/platformtriggerdeliveryoutput.go @@ -0,0 +1,24 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerDeliveryOutput) GetWebhookURL() string { + if p == nil { + return "" + } + return p.WebhookURL +} + +func (p *PlatformTriggerDeliveryOutput) GetAuth() *PlatformTriggerAuthOutput { + if p == nil { + return nil + } + return p.Auth +} diff --git a/models/components/platformtriggerevent.go b/models/components/platformtriggerevent.go new file mode 100644 index 00000000..7b0ec2e9 --- /dev/null +++ b/models/components/platformtriggerevent.go @@ -0,0 +1,95 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "github.com/gleanwork/api-client-go/internal/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, nil); err != nil { + return err + } + return nil +} + +func (p *PlatformTriggerEvent) GetEventType() PlatformTriggerEventType { + if p == nil { + return PlatformTriggerEventType("") + } + return p.EventType +} + +func (p *PlatformTriggerEvent) GetDatasource() string { + if p == nil { + return "" + } + return p.Datasource +} + +func (p *PlatformTriggerEvent) GetReason() PlatformTriggerEventReason { + if p == nil { + return PlatformTriggerEventReason("") + } + return p.Reason +} + +func (p *PlatformTriggerEvent) GetDocType() string { + if p == nil { + return "" + } + return p.DocType +} + +func (p *PlatformTriggerEvent) GetDocID() string { + if p == nil { + return "" + } + return p.DocID +} + +func (p *PlatformTriggerEvent) GetViewURL() string { + if p == nil { + return "" + } + return p.ViewURL +} + +func (p *PlatformTriggerEvent) GetTitle() string { + if p == nil { + return "" + } + return p.Title +} + +func (p *PlatformTriggerEvent) GetEventTime() time.Time { + if p == nil { + return time.Time{} + } + return p.EventTime +} diff --git a/models/components/platformtriggereventreason.go b/models/components/platformtriggereventreason.go new file mode 100644 index 00000000..c5650774 --- /dev/null +++ b/models/components/platformtriggereventreason.go @@ -0,0 +1,50 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +// PlatformTriggerEventReason - Why the event fired. +type PlatformTriggerEventReason string + +const ( + // PlatformTriggerEventReasonCreated The document was created. + PlatformTriggerEventReasonCreated PlatformTriggerEventReason = "CREATED" + // PlatformTriggerEventReasonUpdated The document was updated. + PlatformTriggerEventReasonUpdated PlatformTriggerEventReason = "UPDATED" + // PlatformTriggerEventReasonDeleted The document was deleted. + PlatformTriggerEventReasonDeleted PlatformTriggerEventReason = "DELETED" + // PlatformTriggerEventReasonMeetsCondition The document started matching the trigger's conditions. + PlatformTriggerEventReasonMeetsCondition PlatformTriggerEventReason = "MEETS_CONDITION" + // PlatformTriggerEventReasonAssigned The item was assigned to someone. + PlatformTriggerEventReasonAssigned PlatformTriggerEventReason = "ASSIGNED" + // PlatformTriggerEventReasonUnassigned The item was unassigned. + PlatformTriggerEventReasonUnassigned PlatformTriggerEventReason = "UNASSIGNED" + // PlatformTriggerEventReasonLabeled A label was added. + PlatformTriggerEventReasonLabeled PlatformTriggerEventReason = "LABELED" + // PlatformTriggerEventReasonUnlabeled A label was removed. + PlatformTriggerEventReasonUnlabeled PlatformTriggerEventReason = "UNLABELED" + // PlatformTriggerEventReasonReviewRequested A review was requested. + PlatformTriggerEventReasonReviewRequested PlatformTriggerEventReason = "REVIEW_REQUESTED" + // PlatformTriggerEventReasonReviewRequestRemoved A review request was withdrawn. + PlatformTriggerEventReasonReviewRequestRemoved PlatformTriggerEventReason = "REVIEW_REQUEST_REMOVED" + // PlatformTriggerEventReasonReadyForReview A draft was marked ready for review. + PlatformTriggerEventReasonReadyForReview PlatformTriggerEventReason = "READY_FOR_REVIEW" + // PlatformTriggerEventReasonConvertedToDraft The item was converted back to a draft. + PlatformTriggerEventReasonConvertedToDraft PlatformTriggerEventReason = "CONVERTED_TO_DRAFT" + // PlatformTriggerEventReasonWebhookUpdated The source system sent a webhook update. + PlatformTriggerEventReasonWebhookUpdated PlatformTriggerEventReason = "WEBHOOK_UPDATED" +) + +func (e PlatformTriggerEventReason) ToPointer() *PlatformTriggerEventReason { + return &e +} + +// IsExact returns true if the value matches a known enum value, false otherwise. +func (e *PlatformTriggerEventReason) IsExact() bool { + if e != nil { + switch *e { + case "CREATED", "UPDATED", "DELETED", "MEETS_CONDITION", "ASSIGNED", "UNASSIGNED", "LABELED", "UNLABELED", "REVIEW_REQUESTED", "REVIEW_REQUEST_REMOVED", "READY_FOR_REVIEW", "CONVERTED_TO_DRAFT", "WEBHOOK_UPDATED": + return true + } + } + return false +} diff --git a/models/components/platformtriggereventsearchrequest.go b/models/components/platformtriggereventsearchrequest.go new file mode 100644 index 00000000..5123b5f6 --- /dev/null +++ b/models/components/platformtriggereventsearchrequest.go @@ -0,0 +1,30 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "github.com/gleanwork/api-client-go/internal/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 (p *PlatformTriggerEventSearchRequest) GetPageSize() *int64 { + if p == nil { + return nil + } + return p.PageSize +} diff --git a/models/components/platformtriggereventsearchresponse.go b/models/components/platformtriggereventsearchresponse.go new file mode 100644 index 00000000..85a6a107 --- /dev/null +++ b/models/components/platformtriggereventsearchresponse.go @@ -0,0 +1,34 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerEventSearchResponse) GetResults() []PlatformTriggerEvent { + if p == nil { + return []PlatformTriggerEvent{} + } + return p.Results +} + +func (p *PlatformTriggerEventSearchResponse) GetHasMore() bool { + if p == nil { + return false + } + return p.HasMore +} + +func (p *PlatformTriggerEventSearchResponse) GetRequestID() string { + if p == nil { + return "" + } + return p.RequestID +} diff --git a/models/components/platformtriggereventtype.go b/models/components/platformtriggereventtype.go new file mode 100644 index 00000000..eff00418 --- /dev/null +++ b/models/components/platformtriggereventtype.go @@ -0,0 +1,33 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "fmt" +) + +// PlatformTriggerEventType - The kind of event. +type PlatformTriggerEventType string + +const ( + // PlatformTriggerEventTypeDocumentChange A document was created, updated, or deleted. + 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/models/components/platformtriggergetresponse.go b/models/components/platformtriggergetresponse.go new file mode 100644 index 00000000..ad202bd4 --- /dev/null +++ b/models/components/platformtriggergetresponse.go @@ -0,0 +1,23 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type PlatformTriggerGetResponse struct { + Trigger PlatformTrigger `json:"trigger"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (p *PlatformTriggerGetResponse) GetTrigger() PlatformTrigger { + if p == nil { + return PlatformTrigger{} + } + return p.Trigger +} + +func (p *PlatformTriggerGetResponse) GetRequestID() string { + if p == nil { + return "" + } + return p.RequestID +} diff --git a/models/components/platformtriggerlistresponse.go b/models/components/platformtriggerlistresponse.go new file mode 100644 index 00000000..778d4a04 --- /dev/null +++ b/models/components/platformtriggerlistresponse.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerListResponse) GetResults() []PlatformTrigger { + if p == nil { + return []PlatformTrigger{} + } + return p.Results +} + +func (p *PlatformTriggerListResponse) GetHasMore() bool { + if p == nil { + return false + } + return p.HasMore +} + +func (p *PlatformTriggerListResponse) GetNextCursor() *string { + if p == nil { + return nil + } + return p.NextCursor +} + +func (p *PlatformTriggerListResponse) GetRequestID() string { + if p == nil { + return "" + } + return p.RequestID +} diff --git a/models/components/platformtriggerpreset.go b/models/components/platformtriggerpreset.go new file mode 100644 index 00000000..e4cabc04 --- /dev/null +++ b/models/components/platformtriggerpreset.go @@ -0,0 +1,51 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerPreset) GetPresetID() string { + if p == nil { + return "" + } + return p.PresetID +} + +func (p *PlatformTriggerPreset) GetDatasource() string { + if p == nil { + return "" + } + return p.Datasource +} + +func (p *PlatformTriggerPreset) GetDisplayName() string { + if p == nil { + return "" + } + return p.DisplayName +} + +func (p *PlatformTriggerPreset) GetDescription() *string { + if p == nil { + return nil + } + return p.Description +} + +func (p *PlatformTriggerPreset) GetInputs() []PlatformTriggerPresetInput { + if p == nil { + return []PlatformTriggerPresetInput{} + } + return p.Inputs +} diff --git a/models/components/platformtriggerpreseteventsearchrequest.go b/models/components/platformtriggerpreseteventsearchrequest.go new file mode 100644 index 00000000..aafd646b --- /dev/null +++ b/models/components/platformtriggerpreseteventsearchrequest.go @@ -0,0 +1,40 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "github.com/gleanwork/api-client-go/internal/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 (p *PlatformTriggerPresetEventSearchRequest) GetInputs() map[string]string { + if p == nil { + return nil + } + return p.Inputs +} + +func (p *PlatformTriggerPresetEventSearchRequest) GetPageSize() *int64 { + if p == nil { + return nil + } + return p.PageSize +} diff --git a/models/components/platformtriggerpresetgetresponse.go b/models/components/platformtriggerpresetgetresponse.go new file mode 100644 index 00000000..aae70fe7 --- /dev/null +++ b/models/components/platformtriggerpresetgetresponse.go @@ -0,0 +1,23 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type PlatformTriggerPresetGetResponse struct { + TriggerPreset PlatformTriggerPreset `json:"trigger_preset"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (p *PlatformTriggerPresetGetResponse) GetTriggerPreset() PlatformTriggerPreset { + if p == nil { + return PlatformTriggerPreset{} + } + return p.TriggerPreset +} + +func (p *PlatformTriggerPresetGetResponse) GetRequestID() string { + if p == nil { + return "" + } + return p.RequestID +} diff --git a/models/components/platformtriggerpresetinput.go b/models/components/platformtriggerpresetinput.go new file mode 100644 index 00000000..5025d71f --- /dev/null +++ b/models/components/platformtriggerpresetinput.go @@ -0,0 +1,62 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerPresetInput) GetField() string { + if p == nil { + return "" + } + return p.Field +} + +func (p *PlatformTriggerPresetInput) GetType() PlatformTriggerPresetInputType { + if p == nil { + return PlatformTriggerPresetInputType("") + } + return p.Type +} + +func (p *PlatformTriggerPresetInput) GetDisplayName() string { + if p == nil { + return "" + } + return p.DisplayName +} + +func (p *PlatformTriggerPresetInput) GetIsRequired() bool { + if p == nil { + return false + } + return p.IsRequired +} + +func (p *PlatformTriggerPresetInput) GetValues() []PlatformTriggerPresetInputValue { + if p == nil { + return nil + } + return p.Values +} + +func (p *PlatformTriggerPresetInput) GetIsTruncated() *bool { + if p == nil { + return nil + } + return p.IsTruncated +} diff --git a/models/components/platformtriggerpresetinputtype.go b/models/components/platformtriggerpresetinputtype.go new file mode 100644 index 00000000..f087f2f3 --- /dev/null +++ b/models/components/platformtriggerpresetinputtype.go @@ -0,0 +1,27 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +// 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 +} + +// IsExact returns true if the value matches a known enum value, false otherwise. +func (e *PlatformTriggerPresetInputType) IsExact() bool { + if e != nil { + switch *e { + case "PICKLIST", "TEXT", "USER": + return true + } + } + return false +} diff --git a/models/components/platformtriggerpresetinputvalue.go b/models/components/platformtriggerpresetinputvalue.go new file mode 100644 index 00000000..6a0674f2 --- /dev/null +++ b/models/components/platformtriggerpresetinputvalue.go @@ -0,0 +1,25 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerPresetInputValue) GetValue() string { + if p == nil { + return "" + } + return p.Value +} + +func (p *PlatformTriggerPresetInputValue) GetDisplayName() string { + if p == nil { + return "" + } + return p.DisplayName +} diff --git a/models/components/platformtriggerpresetinputvaluelistresponse.go b/models/components/platformtriggerpresetinputvaluelistresponse.go new file mode 100644 index 00000000..ca010208 --- /dev/null +++ b/models/components/platformtriggerpresetinputvaluelistresponse.go @@ -0,0 +1,34 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerPresetInputValueListResponse) GetResults() []PlatformTriggerPresetInputValue { + if p == nil { + return []PlatformTriggerPresetInputValue{} + } + return p.Results +} + +func (p *PlatformTriggerPresetInputValueListResponse) GetIsTruncated() bool { + if p == nil { + return false + } + return p.IsTruncated +} + +func (p *PlatformTriggerPresetInputValueListResponse) GetRequestID() string { + if p == nil { + return "" + } + return p.RequestID +} diff --git a/models/components/platformtriggerpresetlistresponse.go b/models/components/platformtriggerpresetlistresponse.go new file mode 100644 index 00000000..0d8f57bb --- /dev/null +++ b/models/components/platformtriggerpresetlistresponse.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerPresetListResponse) GetResults() []PlatformTriggerPresetSummary { + if p == nil { + return []PlatformTriggerPresetSummary{} + } + return p.Results +} + +func (p *PlatformTriggerPresetListResponse) GetHasMore() bool { + if p == nil { + return false + } + return p.HasMore +} + +func (p *PlatformTriggerPresetListResponse) GetNextCursor() *string { + if p == nil { + return nil + } + return p.NextCursor +} + +func (p *PlatformTriggerPresetListResponse) GetRequestID() string { + if p == nil { + return "" + } + return p.RequestID +} diff --git a/models/components/platformtriggerpresetsummary.go b/models/components/platformtriggerpresetsummary.go new file mode 100644 index 00000000..e7e49663 --- /dev/null +++ b/models/components/platformtriggerpresetsummary.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerPresetSummary) GetPresetID() string { + if p == nil { + return "" + } + return p.PresetID +} + +func (p *PlatformTriggerPresetSummary) GetDatasource() string { + if p == nil { + return "" + } + return p.Datasource +} + +func (p *PlatformTriggerPresetSummary) GetDisplayName() string { + if p == nil { + return "" + } + return p.DisplayName +} + +func (p *PlatformTriggerPresetSummary) GetDescription() *string { + if p == nil { + return nil + } + return p.Description +} diff --git a/models/components/platformtriggerstatus.go b/models/components/platformtriggerstatus.go new file mode 100644 index 00000000..e9703360 --- /dev/null +++ b/models/components/platformtriggerstatus.go @@ -0,0 +1,26 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +// PlatformTriggerStatus - Current trigger lifecycle state. +type PlatformTriggerStatus string + +const ( + PlatformTriggerStatusEnabled PlatformTriggerStatus = "ENABLED" + PlatformTriggerStatusDisabled PlatformTriggerStatus = "DISABLED" +) + +func (e PlatformTriggerStatus) ToPointer() *PlatformTriggerStatus { + return &e +} + +// IsExact returns true if the value matches a known enum value, false otherwise. +func (e *PlatformTriggerStatus) IsExact() bool { + if e != nil { + switch *e { + case "ENABLED", "DISABLED": + return true + } + } + return false +} diff --git a/models/components/platformtriggerupdaterequest.go b/models/components/platformtriggerupdaterequest.go new file mode 100644 index 00000000..e2184a3e --- /dev/null +++ b/models/components/platformtriggerupdaterequest.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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 (p *PlatformTriggerUpdateRequest) GetStatus() *PlatformTriggerStatus { + if p == nil { + return nil + } + return p.Status +} + +func (p *PlatformTriggerUpdateRequest) GetDescription() *string { + if p == nil { + return nil + } + return p.Description +} + +func (p *PlatformTriggerUpdateRequest) GetInputs() map[string]any { + if p == nil { + return nil + } + return p.Inputs +} + +func (p *PlatformTriggerUpdateRequest) GetDelivery() *PlatformTriggerDelivery { + if p == nil { + return nil + } + return p.Delivery +} diff --git a/models/components/platformtriggerwebhookevent.go b/models/components/platformtriggerwebhookevent.go new file mode 100644 index 00000000..46ae8925 --- /dev/null +++ b/models/components/platformtriggerwebhookevent.go @@ -0,0 +1,99 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "errors" + "fmt" + "github.com/gleanwork/api-client-go/internal/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" union:"member"` + PlatformContentScheduleWebhookEvent *PlatformContentScheduleWebhookEvent `queryParam:"inline" union:"member"` + + 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 candidates []utils.UnionCandidate + + // Collect all valid candidates + var platformDocumentChangeWebhookEvent PlatformDocumentChangeWebhookEvent = PlatformDocumentChangeWebhookEvent{} + if err := utils.UnmarshalJSON(data, &platformDocumentChangeWebhookEvent, "", true, nil); err == nil { + candidates = append(candidates, utils.UnionCandidate{ + Type: PlatformTriggerWebhookEventTypePlatformDocumentChangeWebhookEvent, + Value: &platformDocumentChangeWebhookEvent, + }) + } + + var platformContentScheduleWebhookEvent PlatformContentScheduleWebhookEvent = PlatformContentScheduleWebhookEvent{} + if err := utils.UnmarshalJSON(data, &platformContentScheduleWebhookEvent, "", true, nil); err == nil { + candidates = append(candidates, utils.UnionCandidate{ + Type: PlatformTriggerWebhookEventTypePlatformContentScheduleWebhookEvent, + Value: &platformContentScheduleWebhookEvent, + }) + } + + if len(candidates) == 0 { + return fmt.Errorf("could not unmarshal `%s` into any supported union types for PlatformTriggerWebhookEvent", string(data)) + } + + // Pick the best candidate using multi-stage filtering + best := utils.PickBestUnionCandidate(candidates, data) + if best == nil { + return fmt.Errorf("could not unmarshal `%s` into any supported union types for PlatformTriggerWebhookEvent", string(data)) + } + + // Set the union type and value based on the best candidate + u.Type = best.Type.(PlatformTriggerWebhookEventType) + switch best.Type { + case PlatformTriggerWebhookEventTypePlatformDocumentChangeWebhookEvent: + u.PlatformDocumentChangeWebhookEvent = best.Value.(*PlatformDocumentChangeWebhookEvent) + return nil + case PlatformTriggerWebhookEventTypePlatformContentScheduleWebhookEvent: + u.PlatformContentScheduleWebhookEvent = best.Value.(*PlatformContentScheduleWebhookEvent) + 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/models/components/platformtriggerwithsecret.go b/models/components/platformtriggerwithsecret.go new file mode 100644 index 00000000..71fb93f5 --- /dev/null +++ b/models/components/platformtriggerwithsecret.go @@ -0,0 +1,102 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "github.com/gleanwork/api-client-go/internal/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, nil); err != nil { + return err + } + return nil +} + +func (p *PlatformTriggerWithSecret) GetTriggerID() string { + if p == nil { + return "" + } + return p.TriggerID +} + +func (p *PlatformTriggerWithSecret) GetPresetID() string { + if p == nil { + return "" + } + return p.PresetID +} + +func (p *PlatformTriggerWithSecret) GetDescription() *string { + if p == nil { + return nil + } + return p.Description +} + +func (p *PlatformTriggerWithSecret) GetStatus() PlatformTriggerStatus { + if p == nil { + return PlatformTriggerStatus("") + } + return p.Status +} + +func (p *PlatformTriggerWithSecret) GetInputs() map[string]any { + if p == nil { + return nil + } + return p.Inputs +} + +func (p *PlatformTriggerWithSecret) GetDelivery() PlatformTriggerDeliveryOutput { + if p == nil { + return PlatformTriggerDeliveryOutput{} + } + return p.Delivery +} + +func (p *PlatformTriggerWithSecret) GetCreatedAt() time.Time { + if p == nil { + return time.Time{} + } + return p.CreatedAt +} + +func (p *PlatformTriggerWithSecret) GetUpdatedAt() time.Time { + if p == nil { + return time.Time{} + } + return p.UpdatedAt +} + +func (p *PlatformTriggerWithSecret) GetSigningSecret() string { + if p == nil { + return "" + } + return p.SigningSecret +} diff --git a/models/operations/platformtriggerpresetseventssearch.go b/models/operations/platformtriggerpresetseventssearch.go new file mode 100644 index 00000000..29be9a39 --- /dev/null +++ b/models/operations/platformtriggerpresetseventssearch.go @@ -0,0 +1,47 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +type PlatformTriggerPresetsEventsSearchRequest struct { + // ID of the preset to preview. + PresetID string `pathParam:"style=simple,explode=false,name=preset_id"` + PlatformTriggerPresetEventSearchRequest *components.PlatformTriggerPresetEventSearchRequest `request:"mediaType=application/json"` +} + +func (p *PlatformTriggerPresetsEventsSearchRequest) GetPresetID() string { + if p == nil { + return "" + } + return p.PresetID +} + +func (p *PlatformTriggerPresetsEventsSearchRequest) GetPlatformTriggerPresetEventSearchRequest() *components.PlatformTriggerPresetEventSearchRequest { + if p == nil { + return nil + } + return p.PlatformTriggerPresetEventSearchRequest +} + +type PlatformTriggerPresetsEventsSearchResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerEventSearchResponse *components.PlatformTriggerEventSearchResponse +} + +func (p *PlatformTriggerPresetsEventsSearchResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.HTTPMeta +} + +func (p *PlatformTriggerPresetsEventsSearchResponse) GetPlatformTriggerEventSearchResponse() *components.PlatformTriggerEventSearchResponse { + if p == nil { + return nil + } + return p.PlatformTriggerEventSearchResponse +} diff --git a/models/operations/platformtriggerpresetsget.go b/models/operations/platformtriggerpresetsget.go new file mode 100644 index 00000000..7e4145c3 --- /dev/null +++ b/models/operations/platformtriggerpresetsget.go @@ -0,0 +1,39 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +type PlatformTriggerPresetsGetRequest struct { + // ID of the preset to retrieve. + PresetID string `pathParam:"style=simple,explode=false,name=preset_id"` +} + +func (p *PlatformTriggerPresetsGetRequest) GetPresetID() string { + if p == nil { + return "" + } + return p.PresetID +} + +type PlatformTriggerPresetsGetResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerPresetGetResponse *components.PlatformTriggerPresetGetResponse +} + +func (p *PlatformTriggerPresetsGetResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.HTTPMeta +} + +func (p *PlatformTriggerPresetsGetResponse) GetPlatformTriggerPresetGetResponse() *components.PlatformTriggerPresetGetResponse { + if p == nil { + return nil + } + return p.PlatformTriggerPresetGetResponse +} diff --git a/models/operations/platformtriggerpresetsinputvalueslist.go b/models/operations/platformtriggerpresetsinputvalueslist.go new file mode 100644 index 00000000..24c82c95 --- /dev/null +++ b/models/operations/platformtriggerpresetsinputvalueslist.go @@ -0,0 +1,58 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "github.com/gleanwork/api-client-go/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 (p *PlatformTriggerPresetsInputValuesListRequest) GetPresetID() string { + if p == nil { + return "" + } + return p.PresetID +} + +func (p *PlatformTriggerPresetsInputValuesListRequest) GetField() string { + if p == nil { + return "" + } + return p.Field +} + +func (p *PlatformTriggerPresetsInputValuesListRequest) GetQuery() *string { + if p == nil { + return nil + } + return p.Query +} + +type PlatformTriggerPresetsInputValuesListResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerPresetInputValueListResponse *components.PlatformTriggerPresetInputValueListResponse +} + +func (p *PlatformTriggerPresetsInputValuesListResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.HTTPMeta +} + +func (p *PlatformTriggerPresetsInputValuesListResponse) GetPlatformTriggerPresetInputValueListResponse() *components.PlatformTriggerPresetInputValueListResponse { + if p == nil { + return nil + } + return p.PlatformTriggerPresetInputValueListResponse +} diff --git a/models/operations/platformtriggerpresetslist.go b/models/operations/platformtriggerpresetslist.go new file mode 100644 index 00000000..31d33517 --- /dev/null +++ b/models/operations/platformtriggerpresetslist.go @@ -0,0 +1,69 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "github.com/gleanwork/api-client-go/internal/utils" + "github.com/gleanwork/api-client-go/models/components" +) + +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 (p *PlatformTriggerPresetsListRequest) GetDatasource() *string { + if p == nil { + return nil + } + return p.Datasource +} + +func (p *PlatformTriggerPresetsListRequest) GetPageSize() *int64 { + if p == nil { + return nil + } + return p.PageSize +} + +func (p *PlatformTriggerPresetsListRequest) GetCursor() *string { + if p == nil { + return nil + } + return p.Cursor +} + +type PlatformTriggerPresetsListResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerPresetListResponse *components.PlatformTriggerPresetListResponse +} + +func (p *PlatformTriggerPresetsListResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.HTTPMeta +} + +func (p *PlatformTriggerPresetsListResponse) GetPlatformTriggerPresetListResponse() *components.PlatformTriggerPresetListResponse { + if p == nil { + return nil + } + return p.PlatformTriggerPresetListResponse +} diff --git a/models/operations/platformtriggerscreate.go b/models/operations/platformtriggerscreate.go new file mode 100644 index 00000000..6d6a5c5d --- /dev/null +++ b/models/operations/platformtriggerscreate.go @@ -0,0 +1,27 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +type PlatformTriggersCreateResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Trigger created. + PlatformTriggerCreateResponse *components.PlatformTriggerCreateResponse +} + +func (p *PlatformTriggersCreateResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.HTTPMeta +} + +func (p *PlatformTriggersCreateResponse) GetPlatformTriggerCreateResponse() *components.PlatformTriggerCreateResponse { + if p == nil { + return nil + } + return p.PlatformTriggerCreateResponse +} diff --git a/models/operations/platformtriggersdelete.go b/models/operations/platformtriggersdelete.go new file mode 100644 index 00000000..ef165f0a --- /dev/null +++ b/models/operations/platformtriggersdelete.go @@ -0,0 +1,30 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +type PlatformTriggersDeleteRequest struct { + // ID of the trigger to delete. + TriggerID string `pathParam:"style=simple,explode=false,name=trigger_id"` +} + +func (p *PlatformTriggersDeleteRequest) GetTriggerID() string { + if p == nil { + return "" + } + return p.TriggerID +} + +type PlatformTriggersDeleteResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` +} + +func (p *PlatformTriggersDeleteResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.HTTPMeta +} diff --git a/models/operations/platformtriggerseventssearch.go b/models/operations/platformtriggerseventssearch.go new file mode 100644 index 00000000..d3bd7c86 --- /dev/null +++ b/models/operations/platformtriggerseventssearch.go @@ -0,0 +1,47 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +type PlatformTriggersEventsSearchRequest struct { + // ID of the trigger whose events to search. + TriggerID string `pathParam:"style=simple,explode=false,name=trigger_id"` + PlatformTriggerEventSearchRequest *components.PlatformTriggerEventSearchRequest `request:"mediaType=application/json"` +} + +func (p *PlatformTriggersEventsSearchRequest) GetTriggerID() string { + if p == nil { + return "" + } + return p.TriggerID +} + +func (p *PlatformTriggersEventsSearchRequest) GetPlatformTriggerEventSearchRequest() *components.PlatformTriggerEventSearchRequest { + if p == nil { + return nil + } + return p.PlatformTriggerEventSearchRequest +} + +type PlatformTriggersEventsSearchResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerEventSearchResponse *components.PlatformTriggerEventSearchResponse +} + +func (p *PlatformTriggersEventsSearchResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.HTTPMeta +} + +func (p *PlatformTriggersEventsSearchResponse) GetPlatformTriggerEventSearchResponse() *components.PlatformTriggerEventSearchResponse { + if p == nil { + return nil + } + return p.PlatformTriggerEventSearchResponse +} diff --git a/models/operations/platformtriggersget.go b/models/operations/platformtriggersget.go new file mode 100644 index 00000000..4a36ec95 --- /dev/null +++ b/models/operations/platformtriggersget.go @@ -0,0 +1,39 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +type PlatformTriggersGetRequest struct { + // ID of the trigger to retrieve. + TriggerID string `pathParam:"style=simple,explode=false,name=trigger_id"` +} + +func (p *PlatformTriggersGetRequest) GetTriggerID() string { + if p == nil { + return "" + } + return p.TriggerID +} + +type PlatformTriggersGetResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerGetResponse *components.PlatformTriggerGetResponse +} + +func (p *PlatformTriggersGetResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.HTTPMeta +} + +func (p *PlatformTriggersGetResponse) GetPlatformTriggerGetResponse() *components.PlatformTriggerGetResponse { + if p == nil { + return nil + } + return p.PlatformTriggerGetResponse +} diff --git a/models/operations/platformtriggerslist.go b/models/operations/platformtriggerslist.go new file mode 100644 index 00000000..66c06bd3 --- /dev/null +++ b/models/operations/platformtriggerslist.go @@ -0,0 +1,60 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "github.com/gleanwork/api-client-go/internal/utils" + "github.com/gleanwork/api-client-go/models/components" +) + +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 (p *PlatformTriggersListRequest) GetPageSize() *int64 { + if p == nil { + return nil + } + return p.PageSize +} + +func (p *PlatformTriggersListRequest) GetCursor() *string { + if p == nil { + return nil + } + return p.Cursor +} + +type PlatformTriggersListResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerListResponse *components.PlatformTriggerListResponse +} + +func (p *PlatformTriggersListResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.HTTPMeta +} + +func (p *PlatformTriggersListResponse) GetPlatformTriggerListResponse() *components.PlatformTriggerListResponse { + if p == nil { + return nil + } + return p.PlatformTriggerListResponse +} diff --git a/models/operations/platformtriggersupdate.go b/models/operations/platformtriggersupdate.go new file mode 100644 index 00000000..37cf8f90 --- /dev/null +++ b/models/operations/platformtriggersupdate.go @@ -0,0 +1,47 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "github.com/gleanwork/api-client-go/models/components" +) + +type PlatformTriggersUpdateRequest struct { + // ID of the trigger to update. + TriggerID string `pathParam:"style=simple,explode=false,name=trigger_id"` + PlatformTriggerUpdateRequest components.PlatformTriggerUpdateRequest `request:"mediaType=application/json"` +} + +func (p *PlatformTriggersUpdateRequest) GetTriggerID() string { + if p == nil { + return "" + } + return p.TriggerID +} + +func (p *PlatformTriggersUpdateRequest) GetPlatformTriggerUpdateRequest() components.PlatformTriggerUpdateRequest { + if p == nil { + return components.PlatformTriggerUpdateRequest{} + } + return p.PlatformTriggerUpdateRequest +} + +type PlatformTriggersUpdateResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Trigger updated. + PlatformTriggerGetResponse *components.PlatformTriggerGetResponse +} + +func (p *PlatformTriggersUpdateResponse) GetHTTPMeta() components.HTTPMetadata { + if p == nil { + return components.HTTPMetadata{} + } + return p.HTTPMeta +} + +func (p *PlatformTriggersUpdateResponse) GetPlatformTriggerGetResponse() *components.PlatformTriggerGetResponse { + if p == nil { + return nil + } + return p.PlatformTriggerGetResponse +} diff --git a/search.go b/search.go index 48c0222e..a281aa1c 100644 --- a/search.go +++ b/search.go @@ -17,8 +17,6 @@ import ( "net/url" ) -// Search agents -// Search agents available to the authenticated user by agent name. type Search struct { rootSDK *Glean sdkConfiguration config.SDKConfiguration diff --git a/skills.go b/skills.go index 8ccde776..70998eac 100644 --- a/skills.go +++ b/skills.go @@ -585,9 +585,9 @@ func (s *Skills) List(ctx context.Context, pageSize *int64, cursor *string, opts } -// Validate skill bundle -// Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. -func (s *Skills) Validate(ctx context.Context, request components.PlatformSkillValidationRequest, opts ...operations.Option) (*operations.PlatformSkillsValidateResponse, error) { +// Import skills from GitHub +// 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. +func (s *Skills) Import(ctx context.Context, request components.PlatformSkillImportRequest, opts ...operations.Option) (*operations.PlatformSkillsImportResponse, error) { o := operations.Options{} supportedOptions := []string{ operations.SupportedOptionRetries, @@ -606,7 +606,7 @@ func (s *Skills) Validate(ctx context.Context, request components.PlatformSkillV } else { baseURL = *o.ServerURL } - opURL, err := url.JoinPath(baseURL, "/api/skills/validation") + opURL, err := url.JoinPath(baseURL, "/api/skills/import") if err != nil { return nil, fmt.Errorf("error generating URL: %w", err) } @@ -616,11 +616,11 @@ func (s *Skills) Validate(ctx context.Context, request components.PlatformSkillV SDKConfiguration: s.sdkConfiguration, BaseURL: baseURL, Context: ctx, - OperationID: "platform-skills-validate", + OperationID: "platform-skills-import", OAuth2Scopes: nil, SecuritySource: s.sdkConfiguration.Security, } - bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, false, "Request", "multipart", `request:"mediaType=multipart/form-data"`) + bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, false, "Request", "json", `request:"mediaType=application/json"`) if err != nil { return nil, err } @@ -745,7 +745,7 @@ func (s *Skills) Validate(ctx context.Context, request components.PlatformSkillV } } - res := &operations.PlatformSkillsValidateResponse{ + res := &operations.PlatformSkillsImportResponse{ HTTPMeta: components.HTTPMetadata{ Request: req, Response: httpRes, @@ -761,12 +761,12 @@ func (s *Skills) Validate(ctx context.Context, request components.PlatformSkillV return nil, err } - var out components.PlatformSkillValidationResponse + var out components.PlatformSkillImportResponse if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { return nil, err } - res.PlatformSkillValidationResponse = &out + res.PlatformSkillImportResponse = &out default: rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { @@ -780,10 +780,10 @@ func (s *Skills) Validate(ctx context.Context, request components.PlatformSkillV fallthrough case httpRes.StatusCode == 403: fallthrough - case httpRes.StatusCode == 404: - fallthrough case httpRes.StatusCode == 408: fallthrough + case httpRes.StatusCode == 409: + fallthrough case httpRes.StatusCode == 413: fallthrough case httpRes.StatusCode == 429: @@ -862,9 +862,9 @@ func (s *Skills) Validate(ctx context.Context, request components.PlatformSkillV } -// Import skills from GitHub -// 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. -func (s *Skills) Import(ctx context.Context, request components.PlatformSkillImportRequest, opts ...operations.Option) (*operations.PlatformSkillsImportResponse, error) { +// Validate skill bundle +// Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. +func (s *Skills) Validate(ctx context.Context, request components.PlatformSkillValidationRequest, opts ...operations.Option) (*operations.PlatformSkillsValidateResponse, error) { o := operations.Options{} supportedOptions := []string{ operations.SupportedOptionRetries, @@ -883,7 +883,7 @@ func (s *Skills) Import(ctx context.Context, request components.PlatformSkillImp } else { baseURL = *o.ServerURL } - opURL, err := url.JoinPath(baseURL, "/api/skills/import") + opURL, err := url.JoinPath(baseURL, "/api/skills/validation") if err != nil { return nil, fmt.Errorf("error generating URL: %w", err) } @@ -893,11 +893,11 @@ func (s *Skills) Import(ctx context.Context, request components.PlatformSkillImp SDKConfiguration: s.sdkConfiguration, BaseURL: baseURL, Context: ctx, - OperationID: "platform-skills-import", + OperationID: "platform-skills-validate", OAuth2Scopes: nil, SecuritySource: s.sdkConfiguration.Security, } - bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, false, "Request", "json", `request:"mediaType=application/json"`) + bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, false, "Request", "multipart", `request:"mediaType=multipart/form-data"`) if err != nil { return nil, err } @@ -1022,7 +1022,7 @@ func (s *Skills) Import(ctx context.Context, request components.PlatformSkillImp } } - res := &operations.PlatformSkillsImportResponse{ + res := &operations.PlatformSkillsValidateResponse{ HTTPMeta: components.HTTPMetadata{ Request: req, Response: httpRes, @@ -1038,12 +1038,12 @@ func (s *Skills) Import(ctx context.Context, request components.PlatformSkillImp return nil, err } - var out components.PlatformSkillImportResponse + var out components.PlatformSkillValidationResponse if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { return nil, err } - res.PlatformSkillImportResponse = &out + res.PlatformSkillValidationResponse = &out default: rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { @@ -1057,9 +1057,9 @@ func (s *Skills) Import(ctx context.Context, request components.PlatformSkillImp fallthrough case httpRes.StatusCode == 403: fallthrough - case httpRes.StatusCode == 408: + case httpRes.StatusCode == 404: fallthrough - case httpRes.StatusCode == 409: + case httpRes.StatusCode == 408: fallthrough case httpRes.StatusCode == 413: fallthrough diff --git a/tests/mockserver/internal/handler/generated_handlers.go b/tests/mockserver/internal/handler/generated_handlers.go index 1ea7cd1d..8e541a71 100644 --- a/tests/mockserver/internal/handler/generated_handlers.go +++ b/tests/mockserver/internal/handler/generated_handlers.go @@ -23,6 +23,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)), @@ -38,6 +43,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)), @@ -78,6 +84,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/tests/mockserver/internal/handler/pathgetapitriggerpresets.go b/tests/mockserver/internal/handler/pathgetapitriggerpresets.go new file mode 100644 index 00000000..ef94fda9 --- /dev/null +++ b/tests/mockserver/internal/handler/pathgetapitriggerpresets.go @@ -0,0 +1,67 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/handler/pathgetapitriggerpresetspresetid.go b/tests/mockserver/internal/handler/pathgetapitriggerpresetspresetid.go new file mode 100644 index 00000000..d7ae3c35 --- /dev/null +++ b/tests/mockserver/internal/handler/pathgetapitriggerpresetspresetid.go @@ -0,0 +1,72 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/handler/pathgetapitriggerpresetspresetidinputvalues.go b/tests/mockserver/internal/handler/pathgetapitriggerpresetspresetidinputvalues.go new file mode 100644 index 00000000..78b89ebb --- /dev/null +++ b/tests/mockserver/internal/handler/pathgetapitriggerpresetspresetidinputvalues.go @@ -0,0 +1,71 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/handler/pathgetapitriggers.go b/tests/mockserver/internal/handler/pathgetapitriggers.go new file mode 100644 index 00000000..04c4bdc1 --- /dev/null +++ b/tests/mockserver/internal/handler/pathgetapitriggers.go @@ -0,0 +1,68 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/handler/pathgetapitriggerstriggerid.go b/tests/mockserver/internal/handler/pathgetapitriggerstriggerid.go new file mode 100644 index 00000000..0ad3c036 --- /dev/null +++ b/tests/mockserver/internal/handler/pathgetapitriggerstriggerid.go @@ -0,0 +1,79 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/handler/pathpatchapitriggerstriggerid.go b/tests/mockserver/internal/handler/pathpatchapitriggerstriggerid.go new file mode 100644 index 00000000..8f7f2744 --- /dev/null +++ b/tests/mockserver/internal/handler/pathpatchapitriggerstriggerid.go @@ -0,0 +1,84 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/handler/pathpostapitriggerpresetspresetideventssearch.go b/tests/mockserver/internal/handler/pathpostapitriggerpresetspresetideventssearch.go new file mode 100644 index 00000000..83a0e25f --- /dev/null +++ b/tests/mockserver/internal/handler/pathpostapitriggerpresetspresetideventssearch.go @@ -0,0 +1,83 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/handler/pathpostapitriggers.go b/tests/mockserver/internal/handler/pathpostapitriggers.go new file mode 100644 index 00000000..7a0ab74b --- /dev/null +++ b/tests/mockserver/internal/handler/pathpostapitriggers.go @@ -0,0 +1,85 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/handler/pathpostapitriggerstriggerideventssearch.go b/tests/mockserver/internal/handler/pathpostapitriggerstriggerideventssearch.go new file mode 100644 index 00000000..f3569228 --- /dev/null +++ b/tests/mockserver/internal/handler/pathpostapitriggerstriggerideventssearch.go @@ -0,0 +1,83 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/callbacks/platformtriggerscreate.go b/tests/mockserver/internal/sdk/models/callbacks/platformtriggerscreate.go new file mode 100644 index 00000000..94995cae --- /dev/null +++ b/tests/mockserver/internal/sdk/models/callbacks/platformtriggerscreate.go @@ -0,0 +1,69 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/calendarevent.go b/tests/mockserver/internal/sdk/models/components/calendarevent.go index 33ac7433..9086716f 100644 --- a/tests/mockserver/internal/sdk/models/components/calendarevent.go +++ b/tests/mockserver/internal/sdk/models/components/calendarevent.go @@ -5,6 +5,7 @@ package components import ( "encoding/json" "fmt" + "mockserver/internal/sdk/optionalnullable" ) // CalendarEventEventType - The nature of the event, for example "out of office". @@ -44,6 +45,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"` @@ -94,6 +101,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/tests/mockserver/internal/sdk/models/components/calendarroombookingstatus.go b/tests/mockserver/internal/sdk/models/components/calendarroombookingstatus.go new file mode 100644 index 00000000..1f0d7819 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/calendarroombookingstatus.go @@ -0,0 +1,41 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/feedentry.go b/tests/mockserver/internal/sdk/models/components/feedentry.go index 75c2030f..19beb02f 100644 --- a/tests/mockserver/internal/sdk/models/components/feedentry.go +++ b/tests/mockserver/internal/sdk/models/components/feedentry.go @@ -98,6 +98,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" @@ -114,6 +115,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 { @@ -209,6 +211,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": @@ -240,6 +244,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/tests/mockserver/internal/sdk/models/components/feedrequest.go b/tests/mockserver/internal/sdk/models/components/feedrequest.go index 854c8390..97365eff 100644 --- a/tests/mockserver/internal/sdk/models/components/feedrequest.go +++ b/tests/mockserver/internal/sdk/models/components/feedrequest.go @@ -55,6 +55,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 { @@ -155,6 +156,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/tests/mockserver/internal/sdk/models/components/feedresult.go b/tests/mockserver/internal/sdk/models/components/feedresult.go index 158c7428..cc69740a 100644 --- a/tests/mockserver/internal/sdk/models/components/feedresult.go +++ b/tests/mockserver/internal/sdk/models/components/feedresult.go @@ -56,6 +56,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 { @@ -156,6 +157,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: @@ -163,12 +166,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 { @@ -183,6 +187,8 @@ func (e *PlacementReason) UnmarshalJSON(data []byte) error { case "ORGANIC": fallthrough case "PROMO": + fallthrough + case "PINNED": *e = PlacementReason(v) return nil default: @@ -198,7 +204,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/tests/mockserver/internal/sdk/models/components/platformchatcitationannotation.go b/tests/mockserver/internal/sdk/models/components/platformchatcitationannotation.go index eb920c41..64b253ab 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatcitationannotation.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatcitationannotation.go @@ -11,7 +11,7 @@ import ( type PlatformChatCitationAnnotationType string const ( - PlatformChatCitationAnnotationTypeCitation PlatformChatCitationAnnotationType = "citation" + PlatformChatCitationAnnotationTypeCitation PlatformChatCitationAnnotationType = "CITATION" ) func (e PlatformChatCitationAnnotationType) ToPointer() *PlatformChatCitationAnnotationType { @@ -23,7 +23,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/tests/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go b/tests/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go index 36264777..be4e3712 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go @@ -13,7 +13,7 @@ import ( type Object string const ( - ObjectResponse Object = "response" + ObjectResponse Object = "RESPONSE" ) func (e Object) ToPointer() *Object { @@ -25,7 +25,7 @@ func (e *Object) UnmarshalJSON(data []byte) error { return err } switch v { - case "response": + case "RESPONSE": *e = Object(v) return nil default: @@ -36,7 +36,7 @@ func (e *Object) UnmarshalJSON(data []byte) error { type PlatformChatCompletedResponseStatus string const ( - PlatformChatCompletedResponseStatusCompleted PlatformChatCompletedResponseStatus = "completed" + PlatformChatCompletedResponseStatusCompleted PlatformChatCompletedResponseStatus = "COMPLETED" ) func (e PlatformChatCompletedResponseStatus) ToPointer() *PlatformChatCompletedResponseStatus { @@ -48,7 +48,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/tests/mockserver/internal/sdk/models/components/platformchatcreaterequest.go b/tests/mockserver/internal/sdk/models/components/platformchatcreaterequest.go index ff12189e..a5b50b89 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatcreaterequest.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatcreaterequest.go @@ -15,7 +15,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"` @@ -73,7 +73,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/tests/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go b/tests/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go index a935970d..ccd6eac3 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go @@ -11,7 +11,7 @@ import ( type PlatformChatCustomEntitySourceType string const ( - PlatformChatCustomEntitySourceTypeCustomEntity PlatformChatCustomEntitySourceType = "custom_entity" + PlatformChatCustomEntitySourceTypeCustomEntity PlatformChatCustomEntitySourceType = "CUSTOM_ENTITY" ) func (e PlatformChatCustomEntitySourceType) ToPointer() *PlatformChatCustomEntitySourceType { @@ -23,7 +23,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/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go b/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go index 9dd42aa5..63d8078f 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatdocumentsource.go @@ -12,7 +12,7 @@ import ( type PlatformChatDocumentSourceType2 string const ( - PlatformChatDocumentSourceType2Document PlatformChatDocumentSourceType2 = "document" + PlatformChatDocumentSourceType2Document PlatformChatDocumentSourceType2 = "DOCUMENT" ) func (e PlatformChatDocumentSourceType2) ToPointer() *PlatformChatDocumentSourceType2 { @@ -24,7 +24,7 @@ func (e *PlatformChatDocumentSourceType2) UnmarshalJSON(data []byte) error { return err } switch v { - case "document": + case "DOCUMENT": *e = PlatformChatDocumentSourceType2(v) return nil default: @@ -89,7 +89,7 @@ func (o *PlatformChatDocumentSourceDocument2) GetDatasource() *string { type PlatformChatDocumentSourceType1 string const ( - PlatformChatDocumentSourceType1Document PlatformChatDocumentSourceType1 = "document" + PlatformChatDocumentSourceType1Document PlatformChatDocumentSourceType1 = "DOCUMENT" ) func (e PlatformChatDocumentSourceType1) ToPointer() *PlatformChatDocumentSourceType1 { @@ -101,7 +101,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/tests/mockserver/internal/sdk/models/components/platformchatfilesource.go b/tests/mockserver/internal/sdk/models/components/platformchatfilesource.go index ad39a1de..67147189 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatfilesource.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatfilesource.go @@ -11,7 +11,7 @@ import ( type PlatformChatFileSourceType string const ( - PlatformChatFileSourceTypeFile PlatformChatFileSourceType = "file" + PlatformChatFileSourceTypeFile PlatformChatFileSourceType = "FILE" ) func (e PlatformChatFileSourceType) ToPointer() *PlatformChatFileSourceType { @@ -23,7 +23,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/tests/mockserver/internal/sdk/models/components/platformchatinputmessage.go b/tests/mockserver/internal/sdk/models/components/platformchatinputmessage.go index 5989ab25..97c1e067 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatinputmessage.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatinputmessage.go @@ -11,8 +11,8 @@ import ( type PlatformChatInputMessageRole string const ( - PlatformChatInputMessageRoleUser PlatformChatInputMessageRole = "user" - PlatformChatInputMessageRoleAssistant PlatformChatInputMessageRole = "assistant" + PlatformChatInputMessageRoleUser PlatformChatInputMessageRole = "USER" + PlatformChatInputMessageRoleAssistant PlatformChatInputMessageRole = "ASSISTANT" ) func (e PlatformChatInputMessageRole) ToPointer() *PlatformChatInputMessageRole { @@ -24,9 +24,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/tests/mockserver/internal/sdk/models/components/platformchatoutputmessage.go b/tests/mockserver/internal/sdk/models/components/platformchatoutputmessage.go index c7ccd4be..69218f0e 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatoutputmessage.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatoutputmessage.go @@ -10,7 +10,7 @@ import ( type PlatformChatOutputMessageType string const ( - PlatformChatOutputMessageTypeMessage PlatformChatOutputMessageType = "message" + PlatformChatOutputMessageTypeMessage PlatformChatOutputMessageType = "MESSAGE" ) func (e PlatformChatOutputMessageType) ToPointer() *PlatformChatOutputMessageType { @@ -22,7 +22,7 @@ func (e *PlatformChatOutputMessageType) UnmarshalJSON(data []byte) error { return err } switch v { - case "message": + case "MESSAGE": *e = PlatformChatOutputMessageType(v) return nil default: @@ -33,7 +33,7 @@ func (e *PlatformChatOutputMessageType) UnmarshalJSON(data []byte) error { type PlatformChatOutputMessageRole string const ( - PlatformChatOutputMessageRoleAssistant PlatformChatOutputMessageRole = "assistant" + PlatformChatOutputMessageRoleAssistant PlatformChatOutputMessageRole = "ASSISTANT" ) func (e PlatformChatOutputMessageRole) ToPointer() *PlatformChatOutputMessageRole { @@ -45,7 +45,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/tests/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go b/tests/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go index fedd3f28..d5020f5c 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go @@ -10,7 +10,7 @@ import ( type PlatformChatOutputTextContentType string const ( - PlatformChatOutputTextContentTypeOutputText PlatformChatOutputTextContentType = "output_text" + PlatformChatOutputTextContentTypeOutputText PlatformChatOutputTextContentType = "OUTPUT_TEXT" ) func (e PlatformChatOutputTextContentType) ToPointer() *PlatformChatOutputTextContentType { @@ -22,7 +22,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/tests/mockserver/internal/sdk/models/components/platformchatpersonsource.go b/tests/mockserver/internal/sdk/models/components/platformchatpersonsource.go index 1e969fb9..9576e866 100644 --- a/tests/mockserver/internal/sdk/models/components/platformchatpersonsource.go +++ b/tests/mockserver/internal/sdk/models/components/platformchatpersonsource.go @@ -11,7 +11,7 @@ import ( type PlatformChatPersonSourceType string const ( - PlatformChatPersonSourceTypePerson PlatformChatPersonSourceType = "person" + PlatformChatPersonSourceTypePerson PlatformChatPersonSourceType = "PERSON" ) func (e PlatformChatPersonSourceType) ToPointer() *PlatformChatPersonSourceType { @@ -23,7 +23,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/tests/mockserver/internal/sdk/models/components/platformcontentschedulewebhookevent.go b/tests/mockserver/internal/sdk/models/components/platformcontentschedulewebhookevent.go new file mode 100644 index 00000000..1bd0c5a4 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformcontentschedulewebhookevent.go @@ -0,0 +1,120 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformdocumentchangewebhookevent.go b/tests/mockserver/internal/sdk/models/components/platformdocumentchangewebhookevent.go new file mode 100644 index 00000000..790da9be --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformdocumentchangewebhookevent.go @@ -0,0 +1,129 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtrigger.go b/tests/mockserver/internal/sdk/models/components/platformtrigger.go new file mode 100644 index 00000000..f4ff0336 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtrigger.go @@ -0,0 +1,93 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerauthoutput.go b/tests/mockserver/internal/sdk/models/components/platformtriggerauthoutput.go new file mode 100644 index 00000000..b72ecabb --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerauthoutput.go @@ -0,0 +1,67 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggercreaterequest.go b/tests/mockserver/internal/sdk/models/components/platformtriggercreaterequest.go new file mode 100644 index 00000000..f0b4f7f1 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggercreaterequest.go @@ -0,0 +1,41 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggercreateresponse.go b/tests/mockserver/internal/sdk/models/components/platformtriggercreateresponse.go new file mode 100644 index 00000000..2bc53014 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggercreateresponse.go @@ -0,0 +1,23 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerdelivery.go b/tests/mockserver/internal/sdk/models/components/platformtriggerdelivery.go new file mode 100644 index 00000000..07fb9833 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerdelivery.go @@ -0,0 +1,24 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerdeliveryoutput.go b/tests/mockserver/internal/sdk/models/components/platformtriggerdeliveryoutput.go new file mode 100644 index 00000000..eae6a26f --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerdeliveryoutput.go @@ -0,0 +1,24 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerevent.go b/tests/mockserver/internal/sdk/models/components/platformtriggerevent.go new file mode 100644 index 00000000..30f4d2fc --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerevent.go @@ -0,0 +1,95 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggereventreason.go b/tests/mockserver/internal/sdk/models/components/platformtriggereventreason.go new file mode 100644 index 00000000..7f0bda2d --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggereventreason.go @@ -0,0 +1,68 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggereventsearchrequest.go b/tests/mockserver/internal/sdk/models/components/platformtriggereventsearchrequest.go new file mode 100644 index 00000000..dd4df12a --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggereventsearchrequest.go @@ -0,0 +1,30 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggereventsearchresponse.go b/tests/mockserver/internal/sdk/models/components/platformtriggereventsearchresponse.go new file mode 100644 index 00000000..052cac3b --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggereventsearchresponse.go @@ -0,0 +1,34 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggereventtype.go b/tests/mockserver/internal/sdk/models/components/platformtriggereventtype.go new file mode 100644 index 00000000..01a90c18 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggereventtype.go @@ -0,0 +1,32 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggergetresponse.go b/tests/mockserver/internal/sdk/models/components/platformtriggergetresponse.go new file mode 100644 index 00000000..bf48ffae --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggergetresponse.go @@ -0,0 +1,23 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerlistresponse.go b/tests/mockserver/internal/sdk/models/components/platformtriggerlistresponse.go new file mode 100644 index 00000000..ee21c824 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerlistresponse.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerpreset.go b/tests/mockserver/internal/sdk/models/components/platformtriggerpreset.go new file mode 100644 index 00000000..8ec754d7 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerpreset.go @@ -0,0 +1,51 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerpreseteventsearchrequest.go b/tests/mockserver/internal/sdk/models/components/platformtriggerpreseteventsearchrequest.go new file mode 100644 index 00000000..e461aefd --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerpreseteventsearchrequest.go @@ -0,0 +1,40 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerpresetgetresponse.go b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetgetresponse.go new file mode 100644 index 00000000..75202b87 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetgetresponse.go @@ -0,0 +1,23 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinput.go b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinput.go new file mode 100644 index 00000000..674722ca --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinput.go @@ -0,0 +1,62 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputtype.go b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputtype.go new file mode 100644 index 00000000..b51f9eac --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputtype.go @@ -0,0 +1,38 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputvalue.go b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputvalue.go new file mode 100644 index 00000000..53487dfa --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputvalue.go @@ -0,0 +1,25 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputvaluelistresponse.go b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputvaluelistresponse.go new file mode 100644 index 00000000..bc923be0 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetinputvaluelistresponse.go @@ -0,0 +1,34 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerpresetlistresponse.go b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetlistresponse.go new file mode 100644 index 00000000..6e6cc206 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetlistresponse.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerpresetsummary.go b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetsummary.go new file mode 100644 index 00000000..101983d3 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerpresetsummary.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerstatus.go b/tests/mockserver/internal/sdk/models/components/platformtriggerstatus.go new file mode 100644 index 00000000..ac192ac6 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerstatus.go @@ -0,0 +1,35 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerupdaterequest.go b/tests/mockserver/internal/sdk/models/components/platformtriggerupdaterequest.go new file mode 100644 index 00000000..872cf555 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerupdaterequest.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerwebhookevent.go b/tests/mockserver/internal/sdk/models/components/platformtriggerwebhookevent.go new file mode 100644 index 00000000..e5ffab60 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerwebhookevent.go @@ -0,0 +1,73 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/components/platformtriggerwithsecret.go b/tests/mockserver/internal/sdk/models/components/platformtriggerwithsecret.go new file mode 100644 index 00000000..0a610553 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/platformtriggerwithsecret.go @@ -0,0 +1,102 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetseventssearch.go b/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetseventssearch.go new file mode 100644 index 00000000..37c7771e --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetseventssearch.go @@ -0,0 +1,47 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetsget.go b/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetsget.go new file mode 100644 index 00000000..b6d75f2a --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetsget.go @@ -0,0 +1,39 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetsinputvalueslist.go b/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetsinputvalueslist.go new file mode 100644 index 00000000..f177d8a9 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetsinputvalueslist.go @@ -0,0 +1,58 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetslist.go b/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetslist.go new file mode 100644 index 00000000..d73911f3 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformtriggerpresetslist.go @@ -0,0 +1,69 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/operations/platformtriggerscreate.go b/tests/mockserver/internal/sdk/models/operations/platformtriggerscreate.go new file mode 100644 index 00000000..664f9c97 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformtriggerscreate.go @@ -0,0 +1,27 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/operations/platformtriggersdelete.go b/tests/mockserver/internal/sdk/models/operations/platformtriggersdelete.go new file mode 100644 index 00000000..58a202ca --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformtriggersdelete.go @@ -0,0 +1,30 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/operations/platformtriggerseventssearch.go b/tests/mockserver/internal/sdk/models/operations/platformtriggerseventssearch.go new file mode 100644 index 00000000..bfcff574 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformtriggerseventssearch.go @@ -0,0 +1,47 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/operations/platformtriggersget.go b/tests/mockserver/internal/sdk/models/operations/platformtriggersget.go new file mode 100644 index 00000000..548dcbf0 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformtriggersget.go @@ -0,0 +1,39 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/operations/platformtriggerslist.go b/tests/mockserver/internal/sdk/models/operations/platformtriggerslist.go new file mode 100644 index 00000000..24df6582 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformtriggerslist.go @@ -0,0 +1,60 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/mockserver/internal/sdk/models/operations/platformtriggersupdate.go b/tests/mockserver/internal/sdk/models/operations/platformtriggersupdate.go new file mode 100644 index 00000000..0c16788f --- /dev/null +++ b/tests/mockserver/internal/sdk/models/operations/platformtriggersupdate.go @@ -0,0 +1,47 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +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/tests/summarize_test.go b/tests/summarize_test.go index 455b796e..0895933d 100644 --- a/tests/summarize_test.go +++ b/tests/summarize_test.go @@ -25,17 +25,18 @@ func TestSummarize_Summarize(t *testing.T) { res, err := s.Client.Documents.Summarize(ctx, components.SummarizeRequest{ DocumentSpecs: []components.DocumentSpecUnion{ - components.CreateDocumentSpecUnionDocumentSpec1( - components.DocumentSpec1{ - URL: "https://deficient-majority.net", - }, - ), components.CreateDocumentSpecUnionDocumentSpec4( components.DocumentSpec4{ - UgcType: components.DocumentSpecUgcType2Shortcuts, + UgcType: components.DocumentSpecUgcType2Chats, UgcID: "", }, ), + components.CreateDocumentSpecUnionDocumentSpec3( + components.DocumentSpec3{ + UgcType: components.DocumentSpecUgcType1Answers, + ContentID: 206423, + }, + ), }, }, nil) require.NoError(t, err) diff --git a/tests/triggers_test.go b/tests/triggers_test.go new file mode 100644 index 00000000..5cf02962 --- /dev/null +++ b/tests/triggers_test.go @@ -0,0 +1,196 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package tests + +import ( + "context" + apiclientgo "github.com/gleanwork/api-client-go" + "github.com/gleanwork/api-client-go/internal/utils" + "github.com/gleanwork/api-client-go/models/components" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "testing" +) + +func TestTriggers_PlatformTriggersCreate(t *testing.T) { + ctx := context.Background() + + testHTTPClient := createTestHTTPClient("platform-triggers-create") + + s := apiclientgo.New( + apiclientgo.WithServerURL(utils.GetEnv("TEST_SERVER_URL", "http://localhost:18080")), + apiclientgo.WithClient(testHTTPClient), + apiclientgo.WithSecurity(utils.GetEnv("GLEAN_API_TOKEN", "value")), + ) + + res, err := s.Triggers.Create(ctx, components.PlatformTriggerCreateRequest{ + PresetID: "GITHUB_1", + Description: apiclientgo.Pointer("Reviews I am tagged on, sent to my team's review channel"), + Inputs: map[string]any{ + "repository": "acme/payments-api", + }, + Delivery: components.PlatformTriggerDelivery{ + WebhookURL: "https://customer.app/webhook", + Auth: &components.PlatformTriggerAuth{ + Type: components.PlatformTriggerAuthTypeBearer, + Secret: "secret_test_123", + }, + }, + }) + require.NoError(t, err) + assert.Equal(t, 201, res.HTTPMeta.Response.StatusCode) + +} + +func TestTriggers_PlatformTriggersList(t *testing.T) { + ctx := context.Background() + + testHTTPClient := createTestHTTPClient("platform-triggers-list") + + s := apiclientgo.New( + apiclientgo.WithServerURL(utils.GetEnv("TEST_SERVER_URL", "http://localhost:18080")), + apiclientgo.WithClient(testHTTPClient), + apiclientgo.WithSecurity(utils.GetEnv("GLEAN_API_TOKEN", "value")), + ) + + res, err := s.Triggers.List(ctx, apiclientgo.Pointer[int64](50), nil) + require.NoError(t, err) + assert.Equal(t, 200, res.HTTPMeta.Response.StatusCode) + +} + +func TestTriggers_PlatformTriggersGet(t *testing.T) { + ctx := context.Background() + + testHTTPClient := createTestHTTPClient("platform-triggers-get") + + s := apiclientgo.New( + apiclientgo.WithServerURL(utils.GetEnv("TEST_SERVER_URL", "http://localhost:18080")), + apiclientgo.WithClient(testHTTPClient), + apiclientgo.WithSecurity(utils.GetEnv("GLEAN_API_TOKEN", "value")), + ) + + res, err := s.Triggers.Get(ctx, "") + require.NoError(t, err) + assert.Equal(t, 200, res.HTTPMeta.Response.StatusCode) + +} + +func TestTriggers_PlatformTriggersUpdate(t *testing.T) { + ctx := context.Background() + + testHTTPClient := createTestHTTPClient("platform-triggers-update") + + s := apiclientgo.New( + apiclientgo.WithServerURL(utils.GetEnv("TEST_SERVER_URL", "http://localhost:18080")), + apiclientgo.WithClient(testHTTPClient), + apiclientgo.WithSecurity(utils.GetEnv("GLEAN_API_TOKEN", "value")), + ) + + res, err := s.Triggers.Update(ctx, "", components.PlatformTriggerUpdateRequest{ + Status: components.PlatformTriggerStatusEnabled.ToPointer(), + Description: apiclientgo.Pointer("Reviews I am tagged on, sent to my team's review channel"), + Inputs: map[string]any{ + "repository": "acme/payments-api", + }, + Delivery: &components.PlatformTriggerDelivery{ + WebhookURL: "https://customer.app/webhook", + Auth: &components.PlatformTriggerAuth{ + Type: components.PlatformTriggerAuthTypeBearer, + Secret: "secret_test_123", + }, + }, + }) + require.NoError(t, err) + assert.Equal(t, 200, res.HTTPMeta.Response.StatusCode) + +} + +func TestTriggers_PlatformTriggersEventsSearch(t *testing.T) { + ctx := context.Background() + + testHTTPClient := createTestHTTPClient("platform-triggers-events-search") + + s := apiclientgo.New( + apiclientgo.WithServerURL(utils.GetEnv("TEST_SERVER_URL", "http://localhost:18080")), + apiclientgo.WithClient(testHTTPClient), + apiclientgo.WithSecurity(utils.GetEnv("GLEAN_API_TOKEN", "value")), + ) + + res, err := s.Triggers.SearchEvents(ctx, "", nil) + require.NoError(t, err) + assert.Equal(t, 200, res.HTTPMeta.Response.StatusCode) + +} + +func TestTriggers_PlatformTriggerPresetsList(t *testing.T) { + ctx := context.Background() + + testHTTPClient := createTestHTTPClient("platform-trigger-presets-list") + + s := apiclientgo.New( + apiclientgo.WithServerURL(utils.GetEnv("TEST_SERVER_URL", "http://localhost:18080")), + apiclientgo.WithClient(testHTTPClient), + apiclientgo.WithSecurity(utils.GetEnv("GLEAN_API_TOKEN", "value")), + ) + + res, err := s.Triggers.ListPresets(ctx, nil, apiclientgo.Pointer[int64](50), nil) + require.NoError(t, err) + assert.Equal(t, 200, res.HTTPMeta.Response.StatusCode) + +} + +func TestTriggers_PlatformTriggerPresetsGet(t *testing.T) { + ctx := context.Background() + + testHTTPClient := createTestHTTPClient("platform-trigger-presets-get") + + s := apiclientgo.New( + apiclientgo.WithServerURL(utils.GetEnv("TEST_SERVER_URL", "http://localhost:18080")), + apiclientgo.WithClient(testHTTPClient), + apiclientgo.WithSecurity(utils.GetEnv("GLEAN_API_TOKEN", "value")), + ) + + res, err := s.Triggers.GetPreset(ctx, "") + require.NoError(t, err) + assert.Equal(t, 200, res.HTTPMeta.Response.StatusCode) + +} + +func TestTriggers_PlatformTriggerPresetsInputValuesList(t *testing.T) { + ctx := context.Background() + + testHTTPClient := createTestHTTPClient("platform-trigger-presets-input-values-list") + + s := apiclientgo.New( + apiclientgo.WithServerURL(utils.GetEnv("TEST_SERVER_URL", "http://localhost:18080")), + apiclientgo.WithClient(testHTTPClient), + apiclientgo.WithSecurity(utils.GetEnv("GLEAN_API_TOKEN", "value")), + ) + + res, err := s.Triggers.ListPresetInputValues(ctx, "", "", nil) + require.NoError(t, err) + assert.Equal(t, 200, res.HTTPMeta.Response.StatusCode) + +} + +func TestTriggers_PlatformTriggerPresetsEventsSearch(t *testing.T) { + ctx := context.Background() + + testHTTPClient := createTestHTTPClient("platform-trigger-presets-events-search") + + s := apiclientgo.New( + apiclientgo.WithServerURL(utils.GetEnv("TEST_SERVER_URL", "http://localhost:18080")), + apiclientgo.WithClient(testHTTPClient), + apiclientgo.WithSecurity(utils.GetEnv("GLEAN_API_TOKEN", "value")), + ) + + res, err := s.Triggers.SearchPresetEvents(ctx, "", &components.PlatformTriggerPresetEventSearchRequest{ + Inputs: map[string]string{ + "repository": "acme/payments-api", + }, + }) + require.NoError(t, err) + assert.Equal(t, 200, res.HTTPMeta.Response.StatusCode) + +} diff --git a/tools.go b/tools.go index 39060a59..3fb011b1 100644 --- a/tools.go +++ b/tools.go @@ -1383,14 +1383,15 @@ func (s *Tools) AuthorizeToolServer(ctx context.Context, serverID string, author // GetToolServerTools - Get tool definitions from a tool server. // 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. func (s *Tools) GetToolServerTools(ctx context.Context, serverID string, toolNames []string, opts ...operations.Option) (*operations.GetToolServerToolsResponse, error) { request := operations.GetToolServerToolsRequest{ ServerID: serverID, diff --git a/triggers.go b/triggers.go new file mode 100644 index 00000000..47baed43 --- /dev/null +++ b/triggers.go @@ -0,0 +1,2783 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package apiclientgo + +import ( + "bytes" + "context" + "fmt" + "github.com/gleanwork/api-client-go/internal/config" + "github.com/gleanwork/api-client-go/internal/hooks" + "github.com/gleanwork/api-client-go/internal/utils" + "github.com/gleanwork/api-client-go/models/apierrors" + "github.com/gleanwork/api-client-go/models/components" + "github.com/gleanwork/api-client-go/models/operations" + "github.com/gleanwork/api-client-go/retry" + "net/http" + "net/url" +) + +type Triggers struct { + rootSDK *Glean + sdkConfiguration config.SDKConfiguration + hooks *hooks.Hooks +} + +func newTriggers(rootSDK *Glean, sdkConfig config.SDKConfiguration, hooks *hooks.Hooks) *Triggers { + return &Triggers{ + rootSDK: rootSDK, + sdkConfiguration: sdkConfig, + hooks: hooks, + } +} + +// Create trigger +// Create a trigger from a preset and return it with its signing secret. +func (s *Triggers) Create(ctx context.Context, request components.PlatformTriggerCreateRequest, opts ...operations.Option) (*operations.PlatformTriggersCreateResponse, error) { + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + var baseURL string + if o.ServerURL == nil { + baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + } else { + baseURL = *o.ServerURL + } + opURL, err := url.JoinPath(baseURL, "/api/triggers") + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + hookCtx := hooks.HookContext{ + SDK: s.rootSDK, + SDKConfiguration: s.sdkConfiguration, + BaseURL: baseURL, + Context: ctx, + OperationID: "platform-triggers-create", + OAuth2Scopes: nil, + SecuritySource: s.sdkConfiguration.Security, + } + bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, false, "Request", "json", `request:"mediaType=application/json"`) + if err != nil { + return nil, err + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + if reqContentType != "" { + req.Header.Set("Content-Type", reqContentType) + } + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + for k, v := range o.SetHeaders { + req.Header.Set(k, v) + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "429", + "500", + "502", + "503", + "504", + }, + }, func() (*http.Response, error) { + if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil { + copyBody, err := req.GetBody() + + if err != nil { + return nil, err + } + + req.Body = copyBody + } + + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { + return nil, err + } + + return nil, retry.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.PlatformTriggersCreateResponse{ + HTTPMeta: components.HTTPMetadata{ + Request: req, + Response: httpRes, + }, + } + + switch { + case httpRes.StatusCode == 201: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out components.PlatformTriggerCreateResponse + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + res.PlatformTriggerCreateResponse = &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 400: + fallthrough + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 404: + fallthrough + case httpRes.StatusCode == 408: + fallthrough + case httpRes.StatusCode == 409: + fallthrough + case httpRes.StatusCode == 413: + fallthrough + case httpRes.StatusCode == 429: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + +// List triggers +// List triggers owned by the authenticated caller. +func (s *Triggers) List(ctx context.Context, pageSize *int64, cursor *string, opts ...operations.Option) (*operations.PlatformTriggersListResponse, error) { + request := operations.PlatformTriggersListRequest{ + PageSize: pageSize, + Cursor: cursor, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + var baseURL string + if o.ServerURL == nil { + baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + } else { + baseURL = *o.ServerURL + } + opURL, err := url.JoinPath(baseURL, "/api/triggers") + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + hookCtx := hooks.HookContext{ + SDK: s.rootSDK, + SDKConfiguration: s.sdkConfiguration, + BaseURL: baseURL, + Context: ctx, + OperationID: "platform-triggers-list", + OAuth2Scopes: nil, + SecuritySource: s.sdkConfiguration.Security, + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + + if err := utils.PopulateQueryParams(ctx, req, request, nil, nil); err != nil { + return nil, fmt.Errorf("error populating query params: %w", err) + } + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + for k, v := range o.SetHeaders { + req.Header.Set(k, v) + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "429", + "500", + "502", + "503", + "504", + }, + }, func() (*http.Response, error) { + if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil { + copyBody, err := req.GetBody() + + if err != nil { + return nil, err + } + + req.Body = copyBody + } + + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { + return nil, err + } + + return nil, retry.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.PlatformTriggersListResponse{ + HTTPMeta: components.HTTPMetadata{ + Request: req, + Response: httpRes, + }, + } + + switch { + case httpRes.StatusCode == 200: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out components.PlatformTriggerListResponse + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + res.PlatformTriggerListResponse = &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 400: + fallthrough + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 408: + fallthrough + case httpRes.StatusCode == 429: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + +// Get trigger +// Retrieve a trigger owned by the authenticated caller. +func (s *Triggers) Get(ctx context.Context, triggerID string, opts ...operations.Option) (*operations.PlatformTriggersGetResponse, error) { + request := operations.PlatformTriggersGetRequest{ + TriggerID: triggerID, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + var baseURL string + if o.ServerURL == nil { + baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + } else { + baseURL = *o.ServerURL + } + opURL, err := utils.GenerateURL(ctx, baseURL, "/api/triggers/{trigger_id}", request, nil) + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + hookCtx := hooks.HookContext{ + SDK: s.rootSDK, + SDKConfiguration: s.sdkConfiguration, + BaseURL: baseURL, + Context: ctx, + OperationID: "platform-triggers-get", + OAuth2Scopes: nil, + SecuritySource: s.sdkConfiguration.Security, + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + for k, v := range o.SetHeaders { + req.Header.Set(k, v) + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "429", + "500", + "502", + "503", + "504", + }, + }, func() (*http.Response, error) { + if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil { + copyBody, err := req.GetBody() + + if err != nil { + return nil, err + } + + req.Body = copyBody + } + + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { + return nil, err + } + + return nil, retry.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.PlatformTriggersGetResponse{ + HTTPMeta: components.HTTPMetadata{ + Request: req, + Response: httpRes, + }, + } + + switch { + case httpRes.StatusCode == 200: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out components.PlatformTriggerGetResponse + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + res.PlatformTriggerGetResponse = &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 400: + fallthrough + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 404: + fallthrough + case httpRes.StatusCode == 408: + fallthrough + case httpRes.StatusCode == 429: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + +// Update trigger +// Update a trigger. +func (s *Triggers) Update(ctx context.Context, triggerID string, platformTriggerUpdateRequest components.PlatformTriggerUpdateRequest, opts ...operations.Option) (*operations.PlatformTriggersUpdateResponse, error) { + request := operations.PlatformTriggersUpdateRequest{ + TriggerID: triggerID, + PlatformTriggerUpdateRequest: platformTriggerUpdateRequest, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + var baseURL string + if o.ServerURL == nil { + baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + } else { + baseURL = *o.ServerURL + } + opURL, err := utils.GenerateURL(ctx, baseURL, "/api/triggers/{trigger_id}", request, nil) + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + hookCtx := hooks.HookContext{ + SDK: s.rootSDK, + SDKConfiguration: s.sdkConfiguration, + BaseURL: baseURL, + Context: ctx, + OperationID: "platform-triggers-update", + OAuth2Scopes: nil, + SecuritySource: s.sdkConfiguration.Security, + } + bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, false, "PlatformTriggerUpdateRequest", "json", `request:"mediaType=application/json"`) + if err != nil { + return nil, err + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "PATCH", opURL, bodyReader) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + if reqContentType != "" { + req.Header.Set("Content-Type", reqContentType) + } + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + for k, v := range o.SetHeaders { + req.Header.Set(k, v) + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "429", + "500", + "502", + "503", + "504", + }, + }, func() (*http.Response, error) { + if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil { + copyBody, err := req.GetBody() + + if err != nil { + return nil, err + } + + req.Body = copyBody + } + + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { + return nil, err + } + + return nil, retry.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.PlatformTriggersUpdateResponse{ + HTTPMeta: components.HTTPMetadata{ + Request: req, + Response: httpRes, + }, + } + + switch { + case httpRes.StatusCode == 200: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out components.PlatformTriggerGetResponse + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + res.PlatformTriggerGetResponse = &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 400: + fallthrough + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 404: + fallthrough + case httpRes.StatusCode == 408: + fallthrough + case httpRes.StatusCode == 413: + fallthrough + case httpRes.StatusCode == 429: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + +// Delete trigger +// Delete a trigger. +func (s *Triggers) Delete(ctx context.Context, triggerID string, opts ...operations.Option) (*operations.PlatformTriggersDeleteResponse, error) { + request := operations.PlatformTriggersDeleteRequest{ + TriggerID: triggerID, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + var baseURL string + if o.ServerURL == nil { + baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + } else { + baseURL = *o.ServerURL + } + opURL, err := utils.GenerateURL(ctx, baseURL, "/api/triggers/{trigger_id}", request, nil) + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + hookCtx := hooks.HookContext{ + SDK: s.rootSDK, + SDKConfiguration: s.sdkConfiguration, + BaseURL: baseURL, + Context: ctx, + OperationID: "platform-triggers-delete", + OAuth2Scopes: nil, + SecuritySource: s.sdkConfiguration.Security, + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "DELETE", opURL, nil) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/problem+json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + for k, v := range o.SetHeaders { + req.Header.Set(k, v) + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "429", + "500", + "502", + "503", + "504", + }, + }, func() (*http.Response, error) { + if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil { + copyBody, err := req.GetBody() + + if err != nil { + return nil, err + } + + req.Body = copyBody + } + + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { + return nil, err + } + + return nil, retry.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.PlatformTriggersDeleteResponse{ + HTTPMeta: components.HTTPMetadata{ + Request: req, + Response: httpRes, + }, + } + + switch { + case httpRes.StatusCode == 204: + utils.DrainBody(httpRes) + case httpRes.StatusCode == 400: + fallthrough + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 404: + fallthrough + case httpRes.StatusCode == 408: + fallthrough + case httpRes.StatusCode == 429: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + +// SearchEvents - Search events for a trigger +// Search recent content events an existing trigger matches. Read-only — no webhook delivery is made. Covers the last seven days. +func (s *Triggers) SearchEvents(ctx context.Context, triggerID string, platformTriggerEventSearchRequest *components.PlatformTriggerEventSearchRequest, opts ...operations.Option) (*operations.PlatformTriggersEventsSearchResponse, error) { + request := operations.PlatformTriggersEventsSearchRequest{ + TriggerID: triggerID, + PlatformTriggerEventSearchRequest: platformTriggerEventSearchRequest, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + var baseURL string + if o.ServerURL == nil { + baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + } else { + baseURL = *o.ServerURL + } + opURL, err := utils.GenerateURL(ctx, baseURL, "/api/triggers/{trigger_id}/events/search", request, nil) + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + hookCtx := hooks.HookContext{ + SDK: s.rootSDK, + SDKConfiguration: s.sdkConfiguration, + BaseURL: baseURL, + Context: ctx, + OperationID: "platform-triggers-events-search", + OAuth2Scopes: nil, + SecuritySource: s.sdkConfiguration.Security, + } + bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "PlatformTriggerEventSearchRequest", "json", `request:"mediaType=application/json"`) + if err != nil { + return nil, err + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + if reqContentType != "" { + req.Header.Set("Content-Type", reqContentType) + } + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + for k, v := range o.SetHeaders { + req.Header.Set(k, v) + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "429", + "500", + "502", + "503", + "504", + }, + }, func() (*http.Response, error) { + if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil { + copyBody, err := req.GetBody() + + if err != nil { + return nil, err + } + + req.Body = copyBody + } + + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { + return nil, err + } + + return nil, retry.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.PlatformTriggersEventsSearchResponse{ + HTTPMeta: components.HTTPMetadata{ + Request: req, + Response: httpRes, + }, + } + + switch { + case httpRes.StatusCode == 200: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out components.PlatformTriggerEventSearchResponse + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + res.PlatformTriggerEventSearchResponse = &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 400: + fallthrough + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 404: + fallthrough + case httpRes.StatusCode == 408: + fallthrough + case httpRes.StatusCode == 413: + fallthrough + case httpRes.StatusCode == 429: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + +// ListPresets - List trigger presets +// 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. +func (s *Triggers) ListPresets(ctx context.Context, datasource *string, pageSize *int64, cursor *string, opts ...operations.Option) (*operations.PlatformTriggerPresetsListResponse, error) { + request := operations.PlatformTriggerPresetsListRequest{ + Datasource: datasource, + PageSize: pageSize, + Cursor: cursor, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + var baseURL string + if o.ServerURL == nil { + baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + } else { + baseURL = *o.ServerURL + } + opURL, err := url.JoinPath(baseURL, "/api/trigger-presets") + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + hookCtx := hooks.HookContext{ + SDK: s.rootSDK, + SDKConfiguration: s.sdkConfiguration, + BaseURL: baseURL, + Context: ctx, + OperationID: "platform-trigger-presets-list", + OAuth2Scopes: nil, + SecuritySource: s.sdkConfiguration.Security, + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + + if err := utils.PopulateQueryParams(ctx, req, request, nil, nil); err != nil { + return nil, fmt.Errorf("error populating query params: %w", err) + } + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + for k, v := range o.SetHeaders { + req.Header.Set(k, v) + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "429", + "500", + "502", + "503", + "504", + }, + }, func() (*http.Response, error) { + if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil { + copyBody, err := req.GetBody() + + if err != nil { + return nil, err + } + + req.Body = copyBody + } + + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { + return nil, err + } + + return nil, retry.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.PlatformTriggerPresetsListResponse{ + HTTPMeta: components.HTTPMetadata{ + Request: req, + Response: httpRes, + }, + } + + switch { + case httpRes.StatusCode == 200: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out components.PlatformTriggerPresetListResponse + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + res.PlatformTriggerPresetListResponse = &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 400: + fallthrough + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 408: + fallthrough + case httpRes.StatusCode == 429: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + +// GetPreset - Get trigger preset +// Retrieve a single trigger preset by id. +func (s *Triggers) GetPreset(ctx context.Context, presetID string, opts ...operations.Option) (*operations.PlatformTriggerPresetsGetResponse, error) { + request := operations.PlatformTriggerPresetsGetRequest{ + PresetID: presetID, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + var baseURL string + if o.ServerURL == nil { + baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + } else { + baseURL = *o.ServerURL + } + opURL, err := utils.GenerateURL(ctx, baseURL, "/api/trigger-presets/{preset_id}", request, nil) + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + hookCtx := hooks.HookContext{ + SDK: s.rootSDK, + SDKConfiguration: s.sdkConfiguration, + BaseURL: baseURL, + Context: ctx, + OperationID: "platform-trigger-presets-get", + OAuth2Scopes: nil, + SecuritySource: s.sdkConfiguration.Security, + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + for k, v := range o.SetHeaders { + req.Header.Set(k, v) + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "429", + "500", + "502", + "503", + "504", + }, + }, func() (*http.Response, error) { + if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil { + copyBody, err := req.GetBody() + + if err != nil { + return nil, err + } + + req.Body = copyBody + } + + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { + return nil, err + } + + return nil, retry.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.PlatformTriggerPresetsGetResponse{ + HTTPMeta: components.HTTPMetadata{ + Request: req, + Response: httpRes, + }, + } + + switch { + case httpRes.StatusCode == 200: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out components.PlatformTriggerPresetGetResponse + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + res.PlatformTriggerPresetGetResponse = &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 400: + fallthrough + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 404: + fallthrough + case httpRes.StatusCode == 408: + fallthrough + case httpRes.StatusCode == 429: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + +// ListPresetInputValues - Search trigger preset input values +// 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. +func (s *Triggers) ListPresetInputValues(ctx context.Context, presetID string, field string, query *string, opts ...operations.Option) (*operations.PlatformTriggerPresetsInputValuesListResponse, error) { + request := operations.PlatformTriggerPresetsInputValuesListRequest{ + PresetID: presetID, + Field: field, + Query: query, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + var baseURL string + if o.ServerURL == nil { + baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + } else { + baseURL = *o.ServerURL + } + opURL, err := utils.GenerateURL(ctx, baseURL, "/api/trigger-presets/{preset_id}/input-values", request, nil) + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + hookCtx := hooks.HookContext{ + SDK: s.rootSDK, + SDKConfiguration: s.sdkConfiguration, + BaseURL: baseURL, + Context: ctx, + OperationID: "platform-trigger-presets-input-values-list", + OAuth2Scopes: nil, + SecuritySource: s.sdkConfiguration.Security, + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + + if err := utils.PopulateQueryParams(ctx, req, request, nil, nil); err != nil { + return nil, fmt.Errorf("error populating query params: %w", err) + } + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + for k, v := range o.SetHeaders { + req.Header.Set(k, v) + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "429", + "500", + "502", + "503", + "504", + }, + }, func() (*http.Response, error) { + if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil { + copyBody, err := req.GetBody() + + if err != nil { + return nil, err + } + + req.Body = copyBody + } + + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { + return nil, err + } + + return nil, retry.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.PlatformTriggerPresetsInputValuesListResponse{ + HTTPMeta: components.HTTPMetadata{ + Request: req, + Response: httpRes, + }, + } + + switch { + case httpRes.StatusCode == 200: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out components.PlatformTriggerPresetInputValueListResponse + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + res.PlatformTriggerPresetInputValueListResponse = &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 400: + fallthrough + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 404: + fallthrough + case httpRes.StatusCode == 408: + fallthrough + case httpRes.StatusCode == 429: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + +// SearchPresetEvents - Search events for a trigger preset +// 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. +func (s *Triggers) SearchPresetEvents(ctx context.Context, presetID string, platformTriggerPresetEventSearchRequest *components.PlatformTriggerPresetEventSearchRequest, opts ...operations.Option) (*operations.PlatformTriggerPresetsEventsSearchResponse, error) { + request := operations.PlatformTriggerPresetsEventsSearchRequest{ + PresetID: presetID, + PlatformTriggerPresetEventSearchRequest: platformTriggerPresetEventSearchRequest, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + var baseURL string + if o.ServerURL == nil { + baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + } else { + baseURL = *o.ServerURL + } + opURL, err := utils.GenerateURL(ctx, baseURL, "/api/trigger-presets/{preset_id}/events/search", request, nil) + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + hookCtx := hooks.HookContext{ + SDK: s.rootSDK, + SDKConfiguration: s.sdkConfiguration, + BaseURL: baseURL, + Context: ctx, + OperationID: "platform-trigger-presets-events-search", + OAuth2Scopes: nil, + SecuritySource: s.sdkConfiguration.Security, + } + bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "PlatformTriggerPresetEventSearchRequest", "json", `request:"mediaType=application/json"`) + if err != nil { + return nil, err + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + if reqContentType != "" { + req.Header.Set("Content-Type", reqContentType) + } + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + for k, v := range o.SetHeaders { + req.Header.Set(k, v) + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "429", + "500", + "502", + "503", + "504", + }, + }, func() (*http.Response, error) { + if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil { + copyBody, err := req.GetBody() + + if err != nil { + return nil, err + } + + req.Body = copyBody + } + + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { + return nil, err + } + + return nil, retry.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.PlatformTriggerPresetsEventsSearchResponse{ + HTTPMeta: components.HTTPMetadata{ + Request: req, + Response: httpRes, + }, + } + + switch { + case httpRes.StatusCode == 200: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out components.PlatformTriggerEventSearchResponse + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + res.PlatformTriggerEventSearchResponse = &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 400: + fallthrough + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 404: + fallthrough + case httpRes.StatusCode == 408: + fallthrough + case httpRes.StatusCode == 413: + fallthrough + case httpRes.StatusCode == 429: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/problem+json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out apierrors.PlatformProblemDetailError + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + out.HTTPMeta = components.HTTPMetadata{ + Request: req, + Response: httpRes, + } + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, apierrors.NewAPIError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} From 4a91f03723d0956364848cf9424a6d832a46b8fe Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 01:04:55 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow