@@ -127,6 +127,94 @@ func (c *HTTPClient) DeleteApplication(ctx context.Context, appID string) error
127127 return c .doDelete (ctx , queryURL )
128128}
129129
130+ // Callback URI Operations
131+
132+ // ListCallbackURIs retrieves all callback URIs for the application.
133+ func (c * HTTPClient ) ListCallbackURIs (ctx context.Context ) ([]domain.CallbackURI , error ) {
134+ queryURL := fmt .Sprintf ("%s/v3/applications/callback-uris" , c .baseURL )
135+
136+ var result struct {
137+ Data []domain.CallbackURI `json:"data"`
138+ }
139+ if err := c .doGet (ctx , queryURL , & result ); err != nil {
140+ return nil , err
141+ }
142+ return result .Data , nil
143+ }
144+
145+ // GetCallbackURI retrieves a specific callback URI.
146+ func (c * HTTPClient ) GetCallbackURI (ctx context.Context , uriID string ) (* domain.CallbackURI , error ) {
147+ if err := validateRequired ("callback URI ID" , uriID ); err != nil {
148+ return nil , err
149+ }
150+
151+ queryURL := fmt .Sprintf ("%s/v3/applications/callback-uris/%s" , c .baseURL , uriID )
152+
153+ var result struct {
154+ Data domain.CallbackURI `json:"data"`
155+ }
156+ if err := c .doGetWithNotFound (ctx , queryURL , & result , domain .ErrCallbackURINotFound ); err != nil {
157+ return nil , err
158+ }
159+ return & result .Data , nil
160+ }
161+
162+ // CreateCallbackURI creates a new callback URI for the application.
163+ func (c * HTTPClient ) CreateCallbackURI (ctx context.Context , req * domain.CreateCallbackURIRequest ) (* domain.CallbackURI , error ) {
164+ if req == nil {
165+ return nil , fmt .Errorf ("create callback URI request is required" )
166+ }
167+ if err := validateRequired ("callback URI URL" , req .URL ); err != nil {
168+ return nil , err
169+ }
170+
171+ queryURL := fmt .Sprintf ("%s/v3/applications/callback-uris" , c .baseURL )
172+
173+ resp , err := c .doJSONRequest (ctx , "POST" , queryURL , req )
174+ if err != nil {
175+ return nil , err
176+ }
177+
178+ var result struct {
179+ Data domain.CallbackURI `json:"data"`
180+ }
181+ if err := c .decodeJSONResponse (resp , & result ); err != nil {
182+ return nil , err
183+ }
184+ return & result .Data , nil
185+ }
186+
187+ // UpdateCallbackURI updates an existing callback URI.
188+ func (c * HTTPClient ) UpdateCallbackURI (ctx context.Context , uriID string , req * domain.UpdateCallbackURIRequest ) (* domain.CallbackURI , error ) {
189+ if err := validateRequired ("callback URI ID" , uriID ); err != nil {
190+ return nil , err
191+ }
192+
193+ queryURL := fmt .Sprintf ("%s/v3/applications/callback-uris/%s" , c .baseURL , uriID )
194+
195+ resp , err := c .doJSONRequest (ctx , "PATCH" , queryURL , req )
196+ if err != nil {
197+ return nil , err
198+ }
199+
200+ var result struct {
201+ Data domain.CallbackURI `json:"data"`
202+ }
203+ if err := c .decodeJSONResponse (resp , & result ); err != nil {
204+ return nil , err
205+ }
206+ return & result .Data , nil
207+ }
208+
209+ // DeleteCallbackURI deletes a callback URI.
210+ func (c * HTTPClient ) DeleteCallbackURI (ctx context.Context , uriID string ) error {
211+ if err := validateRequired ("callback URI ID" , uriID ); err != nil {
212+ return err
213+ }
214+ queryURL := fmt .Sprintf ("%s/v3/applications/callback-uris/%s" , c .baseURL , uriID )
215+ return c .doDelete (ctx , queryURL )
216+ }
217+
130218// Admin Connectors
131219
132220// ListConnectors retrieves all connectors.
0 commit comments