@@ -176,6 +176,109 @@ export class WebhooksClient {
176176 return handleNonStatusCodeError ( _response . error , _response . rawResponse , "GET" , "/v0/webhooks/{webhook_id}" ) ;
177177 }
178178
179+ /**
180+ * @param {AgentMail.webhooks.WebhookId } webhook_id
181+ * @param {AgentMail.webhooks.UpdateWebhookRequest } request
182+ * @param {WebhooksClient.RequestOptions } requestOptions - Request-specific configuration.
183+ *
184+ * @throws {@link AgentMail.NotFoundError }
185+ * @throws {@link AgentMail.ValidationError }
186+ *
187+ * @example
188+ * await client.webhooks.update("webhook_id", {})
189+ */
190+ public update (
191+ webhook_id : AgentMail . webhooks . WebhookId ,
192+ request : AgentMail . webhooks . UpdateWebhookRequest ,
193+ requestOptions ?: WebhooksClient . RequestOptions ,
194+ ) : core . HttpResponsePromise < AgentMail . webhooks . Webhook > {
195+ return core . HttpResponsePromise . fromPromise ( this . __update ( webhook_id , request , requestOptions ) ) ;
196+ }
197+
198+ private async __update (
199+ webhook_id : AgentMail . webhooks . WebhookId ,
200+ request : AgentMail . webhooks . UpdateWebhookRequest ,
201+ requestOptions ?: WebhooksClient . RequestOptions ,
202+ ) : Promise < core . WithRawResponse < AgentMail . webhooks . Webhook > > {
203+ const _authRequest : core . AuthRequest = await this . _options . authProvider . getAuthRequest ( ) ;
204+ const _headers : core . Fetcher . Args [ "headers" ] = mergeHeaders (
205+ _authRequest . headers ,
206+ this . _options ?. headers ,
207+ requestOptions ?. headers ,
208+ ) ;
209+ const _response = await core . fetcher ( {
210+ url : core . url . join (
211+ ( await core . Supplier . get ( this . _options . baseUrl ) ) ??
212+ (
213+ ( await core . Supplier . get ( this . _options . environment ) ) ??
214+ environments . AgentMailEnvironment . Production
215+ ) . http ,
216+ `/v0/webhooks/${ core . url . encodePathParam ( serializers . webhooks . WebhookId . jsonOrThrow ( webhook_id , { omitUndefined : true } ) ) } ` ,
217+ ) ,
218+ method : "PATCH" ,
219+ headers : _headers ,
220+ contentType : "application/json" ,
221+ queryParameters : requestOptions ?. queryParams ,
222+ requestType : "json" ,
223+ body : serializers . webhooks . UpdateWebhookRequest . jsonOrThrow ( request , {
224+ unrecognizedObjectKeys : "strip" ,
225+ omitUndefined : true ,
226+ } ) ,
227+ timeoutMs : ( requestOptions ?. timeoutInSeconds ?? this . _options ?. timeoutInSeconds ?? 60 ) * 1000 ,
228+ maxRetries : requestOptions ?. maxRetries ?? this . _options ?. maxRetries ,
229+ abortSignal : requestOptions ?. abortSignal ,
230+ fetchFn : this . _options ?. fetch ,
231+ logging : this . _options . logging ,
232+ } ) ;
233+ if ( _response . ok ) {
234+ return {
235+ data : serializers . webhooks . Webhook . parseOrThrow ( _response . body , {
236+ unrecognizedObjectKeys : "passthrough" ,
237+ allowUnrecognizedUnionMembers : true ,
238+ allowUnrecognizedEnumValues : true ,
239+ skipValidation : true ,
240+ breadcrumbsPrefix : [ "response" ] ,
241+ } ) ,
242+ rawResponse : _response . rawResponse ,
243+ } ;
244+ }
245+
246+ if ( _response . error . reason === "status-code" ) {
247+ switch ( _response . error . statusCode ) {
248+ case 404 :
249+ throw new AgentMail . NotFoundError (
250+ serializers . ErrorResponse . parseOrThrow ( _response . error . body , {
251+ unrecognizedObjectKeys : "passthrough" ,
252+ allowUnrecognizedUnionMembers : true ,
253+ allowUnrecognizedEnumValues : true ,
254+ skipValidation : true ,
255+ breadcrumbsPrefix : [ "response" ] ,
256+ } ) ,
257+ _response . rawResponse ,
258+ ) ;
259+ case 400 :
260+ throw new AgentMail . ValidationError (
261+ serializers . ValidationErrorResponse . parseOrThrow ( _response . error . body , {
262+ unrecognizedObjectKeys : "passthrough" ,
263+ allowUnrecognizedUnionMembers : true ,
264+ allowUnrecognizedEnumValues : true ,
265+ skipValidation : true ,
266+ breadcrumbsPrefix : [ "response" ] ,
267+ } ) ,
268+ _response . rawResponse ,
269+ ) ;
270+ default :
271+ throw new errors . AgentMailError ( {
272+ statusCode : _response . error . statusCode ,
273+ body : _response . error . body ,
274+ rawResponse : _response . rawResponse ,
275+ } ) ;
276+ }
277+ }
278+
279+ return handleNonStatusCodeError ( _response . error , _response . rawResponse , "PATCH" , "/v0/webhooks/{webhook_id}" ) ;
280+ }
281+
179282 /**
180283 * @param {AgentMail.webhooks.CreateWebhookRequest } request
181284 * @param {WebhooksClient.RequestOptions } requestOptions - Request-specific configuration.
0 commit comments