UNPKG

svix

Version:

Svix webhooks API client and webhook verification library

173 lines (146 loc) 6.01 kB
// this file is @generated import { EventTypeImportOpenApiIn, EventTypeImportOpenApiInSerializer, } from "../models/eventTypeImportOpenApiIn"; import { EventTypeImportOpenApiOut, EventTypeImportOpenApiOutSerializer, } from "../models/eventTypeImportOpenApiOut"; import { EventTypeIn, EventTypeInSerializer } from "../models/eventTypeIn"; import { EventTypeOut, EventTypeOutSerializer } from "../models/eventTypeOut"; import { EventTypePatch, EventTypePatchSerializer } from "../models/eventTypePatch"; import { EventTypeUpdate, EventTypeUpdateSerializer } from "../models/eventTypeUpdate"; import { ListResponseEventTypeOut, ListResponseEventTypeOutSerializer, } from "../models/listResponseEventTypeOut"; import { Ordering } from "../models/ordering"; import { HttpMethod, SvixRequest, SvixRequestContext } from "../request"; export interface EventTypeListOptions { /** Limit the number of returned items */ limit?: number; /** The iterator returned from a prior invocation */ iterator?: string | null; /** The sorting order of the returned items */ order?: Ordering; /** When `true` archived (deleted but not expunged) items are included in the response. */ includeArchived?: boolean; /** When `true` the full item (including the schema) is included in the response. */ withContent?: boolean; } export interface EventTypeCreateOptions { idempotencyKey?: string; } export interface EventTypeImportOpenapiOptions { idempotencyKey?: string; } export interface EventTypeDeleteOptions { /** By default event types are archived when "deleted". Passing this to `true` deletes them entirely. */ expunge?: boolean; } export class EventType { public constructor(private readonly requestCtx: SvixRequestContext) {} /** Return the list of event types. */ public list(options?: EventTypeListOptions): Promise<ListResponseEventTypeOut> { const request = new SvixRequest(HttpMethod.GET, "/api/v1/event-type"); request.setQueryParam("limit", options?.limit); request.setQueryParam("iterator", options?.iterator); request.setQueryParam("order", options?.order); request.setQueryParam("include_archived", options?.includeArchived); request.setQueryParam("with_content", options?.withContent); return request.send( this.requestCtx, ListResponseEventTypeOutSerializer._fromJsonObject ); } /** * Create new or unarchive existing event type. * * Unarchiving an event type will allow endpoints to filter on it and messages to be sent with it. * Endpoints filtering on the event type before archival will continue to filter on it. * This operation does not preserve the description and schemas. */ public create( eventTypeIn: EventTypeIn, options?: EventTypeCreateOptions ): Promise<EventTypeOut> { const request = new SvixRequest(HttpMethod.POST, "/api/v1/event-type"); request.setHeaderParam("idempotency-key", options?.idempotencyKey); request.setBody(EventTypeInSerializer._toJsonObject(eventTypeIn)); return request.send(this.requestCtx, EventTypeOutSerializer._fromJsonObject); } /** * Given an OpenAPI spec, create new or update existing event types. * If an existing `archived` event type is updated, it will be unarchived. * * The importer will convert all webhooks found in the either the `webhooks` or `x-webhooks` * top-level. */ public importOpenapi( eventTypeImportOpenApiIn: EventTypeImportOpenApiIn, options?: EventTypeImportOpenapiOptions ): Promise<EventTypeImportOpenApiOut> { const request = new SvixRequest(HttpMethod.POST, "/api/v1/event-type/import/openapi"); request.setHeaderParam("idempotency-key", options?.idempotencyKey); request.setBody( EventTypeImportOpenApiInSerializer._toJsonObject(eventTypeImportOpenApiIn) ); return request.send( this.requestCtx, EventTypeImportOpenApiOutSerializer._fromJsonObject ); } /** Get an event type. */ public get(eventTypeName: string): Promise<EventTypeOut> { const request = new SvixRequest( HttpMethod.GET, "/api/v1/event-type/{event_type_name}" ); request.setPathParam("event_type_name", eventTypeName); return request.send(this.requestCtx, EventTypeOutSerializer._fromJsonObject); } /** Update an event type. */ public update( eventTypeName: string, eventTypeUpdate: EventTypeUpdate ): Promise<EventTypeOut> { const request = new SvixRequest( HttpMethod.PUT, "/api/v1/event-type/{event_type_name}" ); request.setPathParam("event_type_name", eventTypeName); request.setBody(EventTypeUpdateSerializer._toJsonObject(eventTypeUpdate)); return request.send(this.requestCtx, EventTypeOutSerializer._fromJsonObject); } /** * Archive an event type. * * Endpoints already configured to filter on an event type will continue to do so after archival. * However, new messages can not be sent with it and endpoints can not filter on it. * An event type can be unarchived with the * [create operation](#operation/create_event_type_api_v1_event_type__post). */ public delete(eventTypeName: string, options?: EventTypeDeleteOptions): Promise<void> { const request = new SvixRequest( HttpMethod.DELETE, "/api/v1/event-type/{event_type_name}" ); request.setPathParam("event_type_name", eventTypeName); request.setQueryParam("expunge", options?.expunge); return request.sendNoResponseBody(this.requestCtx); } /** Partially update an event type. */ public patch( eventTypeName: string, eventTypePatch: EventTypePatch ): Promise<EventTypeOut> { const request = new SvixRequest( HttpMethod.PATCH, "/api/v1/event-type/{event_type_name}" ); request.setPathParam("event_type_name", eventTypeName); request.setBody(EventTypePatchSerializer._toJsonObject(eventTypePatch)); return request.send(this.requestCtx, EventTypeOutSerializer._fromJsonObject); } }