From 0070e1daf32c0e6c12b0dcc857e00b0ec152ee41 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Thu, 30 Jan 2025 15:25:40 +0100 Subject: [PATCH] js: Pull in more changes from codegen --- javascript/src/api/application.ts | 7 ++- javascript/src/api/authentication.ts | 25 ++++++++-- javascript/src/api/endpoint.ts | 31 ++++++++++--- javascript/src/api/event_type.ts | 16 +++++-- javascript/src/api/integration.ts | 13 ++++-- javascript/src/api/message.ts | 10 +++- javascript/src/api/message_attempt.ts | 7 ++- .../src/api/operational_webhook_endpoint.ts | 46 +++++++++++++++++-- javascript/src/api/statistics.ts | 7 ++- 9 files changed, 134 insertions(+), 28 deletions(-) diff --git a/javascript/src/api/application.ts b/javascript/src/api/application.ts index e6ebb89316..6e3f777890 100644 --- a/javascript/src/api/application.ts +++ b/javascript/src/api/application.ts @@ -7,7 +7,6 @@ import { Ordering, } from "../openapi"; import { HttpMethod, SvixRequest, SvixRequestContext } from "../request"; -import { PostOptions } from "../util"; export interface ApplicationListOptions { /** Limit the number of returned items */ @@ -18,6 +17,10 @@ export interface ApplicationListOptions { order?: Ordering; } +export interface ApplicationCreateOptions { + idempotencyKey?: string; +} + export class Application { public constructor(private readonly requestCtx: SvixRequestContext) {} @@ -35,7 +38,7 @@ export class Application { /** Create a new application. */ public create( applicationIn: ApplicationIn, - options?: PostOptions + options?: ApplicationCreateOptions ): Promise { const request = new SvixRequest(HttpMethod.POST, "/api/v1/app"); diff --git a/javascript/src/api/authentication.ts b/javascript/src/api/authentication.ts index 4d85c04cdf..98f9f83d17 100644 --- a/javascript/src/api/authentication.ts +++ b/javascript/src/api/authentication.ts @@ -6,7 +6,22 @@ import { DashboardAccessOut, } from "../openapi"; import { HttpMethod, SvixRequest, SvixRequestContext } from "../request"; -import { PostOptions } from "../util"; + +export interface AuthenticationAppPortalAccessOptions { + idempotencyKey?: string; +} + +export interface AuthenticationExpireAllOptions { + idempotencyKey?: string; +} + +export interface AuthenticationDashboardAccessOptions { + idempotencyKey?: string; +} + +export interface AuthenticationLogoutOptions { + idempotencyKey?: string; +} export class Authentication { public constructor(private readonly requestCtx: SvixRequestContext) {} @@ -15,7 +30,7 @@ export class Authentication { public appPortalAccess( appId: string, appPortalAccessIn: AppPortalAccessIn, - options?: PostOptions + options?: AuthenticationAppPortalAccessOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, @@ -33,7 +48,7 @@ export class Authentication { public expireAll( appId: string, applicationTokenExpireIn: ApplicationTokenExpireIn, - options?: PostOptions + options?: AuthenticationExpireAllOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, @@ -56,7 +71,7 @@ export class Authentication { */ public dashboardAccess( appId: string, - options?: PostOptions + options?: AuthenticationDashboardAccessOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, @@ -74,7 +89,7 @@ export class Authentication { * * Trying to log out other tokens will fail. */ - public logout(options?: PostOptions): Promise { + public logout(options?: AuthenticationLogoutOptions): Promise { const request = new SvixRequest(HttpMethod.POST, "/api/v1/auth/logout"); request.setHeaderParam("idempotency-key", options?.idempotencyKey); diff --git a/javascript/src/api/endpoint.ts b/javascript/src/api/endpoint.ts index 2bbf731e79..17f8a19d6a 100644 --- a/javascript/src/api/endpoint.ts +++ b/javascript/src/api/endpoint.ts @@ -23,7 +23,6 @@ import { ReplayOut, } from "../openapi"; import { HttpMethod, SvixRequest, SvixRequestContext } from "../request"; -import { PostOptions } from "../util"; export interface EndpointListOptions { /** Limit the number of returned items */ @@ -34,6 +33,26 @@ export interface EndpointListOptions { order?: Ordering; } +export interface EndpointCreateOptions { + idempotencyKey?: string; +} + +export interface EndpointRecoverOptions { + idempotencyKey?: string; +} + +export interface EndpointReplayMissingOptions { + idempotencyKey?: string; +} + +export interface EndpointRotateSecretOptions { + idempotencyKey?: string; +} + +export interface EndpointSendExampleOptions { + idempotencyKey?: string; +} + export interface EndpointGetStatsOptions { /** Filter the range to data starting from this date. */ since?: Date | null; @@ -67,7 +86,7 @@ export class Endpoint { public create( appId: string, endpointIn: EndpointIn, - options?: PostOptions + options?: EndpointCreateOptions ): Promise { const request = new SvixRequest(HttpMethod.POST, "/api/v1/app/{app_id}/endpoint"); @@ -214,7 +233,7 @@ export class Endpoint { appId: string, endpointId: string, recoverIn: RecoverIn, - options?: PostOptions + options?: EndpointRecoverOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, @@ -239,7 +258,7 @@ export class Endpoint { appId: string, endpointId: string, replayIn: ReplayIn, - options?: PostOptions + options?: EndpointReplayMissingOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, @@ -281,7 +300,7 @@ export class Endpoint { appId: string, endpointId: string, endpointSecretRotateIn: EndpointSecretRotateIn, - options?: PostOptions + options?: EndpointRotateSecretOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, @@ -301,7 +320,7 @@ export class Endpoint { appId: string, endpointId: string, eventExampleIn: EventExampleIn, - options?: PostOptions + options?: EndpointSendExampleOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, diff --git a/javascript/src/api/event_type.ts b/javascript/src/api/event_type.ts index ca5a13dae9..382ec5df3a 100644 --- a/javascript/src/api/event_type.ts +++ b/javascript/src/api/event_type.ts @@ -10,7 +10,6 @@ import { Ordering, } from "../openapi"; import { HttpMethod, SvixRequest, SvixRequestContext } from "../request"; -import { PostOptions } from "../util"; export interface EventTypeListOptions { /** Limit the number of returned items */ @@ -25,6 +24,14 @@ export interface EventTypeListOptions { 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; @@ -53,7 +60,10 @@ export class EventType { * 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?: PostOptions): Promise { + public create( + eventTypeIn: EventTypeIn, + options?: EventTypeCreateOptions + ): Promise { const request = new SvixRequest(HttpMethod.POST, "/api/v1/event-type"); request.setHeaderParam("idempotency-key", options?.idempotencyKey); @@ -71,7 +81,7 @@ export class EventType { */ public importOpenapi( eventTypeImportOpenApiIn: EventTypeImportOpenApiIn, - options?: PostOptions + options?: EventTypeImportOpenapiOptions ): Promise { const request = new SvixRequest(HttpMethod.POST, "/api/v1/event-type/import/openapi"); diff --git a/javascript/src/api/integration.ts b/javascript/src/api/integration.ts index 02caaa7b04..a008e2f377 100644 --- a/javascript/src/api/integration.ts +++ b/javascript/src/api/integration.ts @@ -8,7 +8,6 @@ import { Ordering, } from "../openapi"; import { HttpMethod, SvixRequest, SvixRequestContext } from "../request"; -import { PostOptions } from "../util"; export interface IntegrationListOptions { /** Limit the number of returned items */ @@ -19,6 +18,14 @@ export interface IntegrationListOptions { order?: Ordering; } +export interface IntegrationCreateOptions { + idempotencyKey?: string; +} + +export interface IntegrationRotateKeyOptions { + idempotencyKey?: string; +} + export class Integration { public constructor(private readonly requestCtx: SvixRequestContext) {} @@ -41,7 +48,7 @@ export class Integration { public create( appId: string, integrationIn: IntegrationIn, - options?: PostOptions + options?: IntegrationCreateOptions ): Promise { const request = new SvixRequest(HttpMethod.POST, "/api/v1/app/{app_id}/integration"); @@ -117,7 +124,7 @@ export class Integration { public rotateKey( appId: string, integId: string, - options?: PostOptions + options?: IntegrationRotateKeyOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, diff --git a/javascript/src/api/message.ts b/javascript/src/api/message.ts index 7e38ea9324..5798443243 100644 --- a/javascript/src/api/message.ts +++ b/javascript/src/api/message.ts @@ -1,7 +1,6 @@ // this file is @generated import { ListResponseMessageOut, MessageIn, MessageOut } from "../openapi"; import { HttpMethod, SvixRequest, SvixRequestContext } from "../request"; -import { PostOptions } from "../util"; export interface MessageListOptions { /** Limit the number of returned items */ @@ -22,6 +21,12 @@ export interface MessageListOptions { eventTypes?: string[]; } +export interface MessageCreateOptions { + /** When `true`, message payloads are included in the response. */ + withContent?: boolean; + idempotencyKey?: string; +} + export interface MessageGetOptions { /** When `true` message payloads are included in the response. */ withContent?: boolean; @@ -74,11 +79,12 @@ export class Message { public create( appId: string, messageIn: MessageIn, - options?: PostOptions + options?: MessageCreateOptions ): Promise { const request = new SvixRequest(HttpMethod.POST, "/api/v1/app/{app_id}/msg"); request.setPathParam("app_id", appId); + request.setQueryParam("with_content", options?.withContent); request.setHeaderParam("idempotency-key", options?.idempotencyKey); request.setBody(messageIn, "MessageIn"); diff --git a/javascript/src/api/message_attempt.ts b/javascript/src/api/message_attempt.ts index a1a1626523..4d3be787f4 100644 --- a/javascript/src/api/message_attempt.ts +++ b/javascript/src/api/message_attempt.ts @@ -8,7 +8,6 @@ import { StatusCodeClass, } from "../openapi"; import { HttpMethod, SvixRequest, SvixRequestContext } from "../request"; -import { PostOptions } from "../util"; export interface MessageAttemptListOptions { iterator?: string | null; @@ -100,6 +99,10 @@ export interface MessageAttemptListAttemptedDestinationsOptions { iterator?: string | null; } +export interface MessageAttemptResendOptions { + idempotencyKey?: string; +} + export class MessageAttempt { public constructor(private readonly requestCtx: SvixRequestContext) {} @@ -285,7 +288,7 @@ export class MessageAttempt { appId: string, msgId: string, endpointId: string, - options?: PostOptions + options?: MessageAttemptResendOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, diff --git a/javascript/src/api/operational_webhook_endpoint.ts b/javascript/src/api/operational_webhook_endpoint.ts index a77758e761..a0d57287ee 100644 --- a/javascript/src/api/operational_webhook_endpoint.ts +++ b/javascript/src/api/operational_webhook_endpoint.ts @@ -1,6 +1,8 @@ // this file is @generated import { ListResponseOperationalWebhookEndpointOut, + OperationalWebhookEndpointHeadersIn, + OperationalWebhookEndpointHeadersOut, OperationalWebhookEndpointIn, OperationalWebhookEndpointOut, OperationalWebhookEndpointSecretIn, @@ -9,7 +11,6 @@ import { Ordering, } from "../openapi"; import { HttpMethod, SvixRequest, SvixRequestContext } from "../request"; -import { PostOptions } from "../util"; export interface OperationalWebhookEndpointListOptions { /** Limit the number of returned items */ @@ -20,6 +21,14 @@ export interface OperationalWebhookEndpointListOptions { order?: Ordering; } +export interface OperationalWebhookEndpointCreateOptions { + idempotencyKey?: string; +} + +export interface OperationalWebhookEndpointRotateSecretOptions { + idempotencyKey?: string; +} + export class OperationalWebhookEndpoint { public constructor(private readonly requestCtx: SvixRequestContext) {} @@ -42,7 +51,7 @@ export class OperationalWebhookEndpoint { /** Create an operational webhook endpoint. */ public create( operationalWebhookEndpointIn: OperationalWebhookEndpointIn, - options?: PostOptions + options?: OperationalWebhookEndpointCreateOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, @@ -95,6 +104,37 @@ export class OperationalWebhookEndpoint { return request.sendNoResponseBody(this.requestCtx); } + /** Get the additional headers to be sent with the operational webhook. */ + public getHeaders(endpointId: string): Promise { + const request = new SvixRequest( + HttpMethod.GET, + "/api/v1/operational-webhook/endpoint/{endpoint_id}/headers" + ); + + request.setPathParam("endpoint_id", endpointId); + + return request.send(this.requestCtx, "OperationalWebhookEndpointHeadersOut"); + } + + /** Set the additional headers to be sent with the operational webhook. */ + public updateHeaders( + endpointId: string, + operationalWebhookEndpointHeadersIn: OperationalWebhookEndpointHeadersIn + ): Promise { + const request = new SvixRequest( + HttpMethod.PUT, + "/api/v1/operational-webhook/endpoint/{endpoint_id}/headers" + ); + + request.setPathParam("endpoint_id", endpointId); + request.setBody( + operationalWebhookEndpointHeadersIn, + "OperationalWebhookEndpointHeadersIn" + ); + + return request.sendNoResponseBody(this.requestCtx); + } + /** * Get an operational webhook endpoint's signing secret. * @@ -120,7 +160,7 @@ export class OperationalWebhookEndpoint { public rotateSecret( endpointId: string, operationalWebhookEndpointSecretIn: OperationalWebhookEndpointSecretIn, - options?: PostOptions + options?: OperationalWebhookEndpointRotateSecretOptions ): Promise { const request = new SvixRequest( HttpMethod.POST, diff --git a/javascript/src/api/statistics.ts b/javascript/src/api/statistics.ts index 657f1a29b5..1751271432 100644 --- a/javascript/src/api/statistics.ts +++ b/javascript/src/api/statistics.ts @@ -1,7 +1,10 @@ // this file is @generated import { AggregateEventTypesOut, AppUsageStatsIn, AppUsageStatsOut } from "../openapi"; import { HttpMethod, SvixRequest, SvixRequestContext } from "../request"; -import { PostOptions } from "../util"; + +export interface StatisticsAggregateAppStatsOptions { + idempotencyKey?: string; +} export class Statistics { public constructor(private readonly requestCtx: SvixRequestContext) {} @@ -14,7 +17,7 @@ export class Statistics { */ public aggregateAppStats( appUsageStatsIn: AppUsageStatsIn, - options?: PostOptions + options?: StatisticsAggregateAppStatsOptions ): Promise { const request = new SvixRequest(HttpMethod.POST, "/api/v1/stats/usage/app");