From e165246a66120a9a734b018242a537167770848d Mon Sep 17 00:00:00 2001 From: RajatPawar <18614743+RajatPawar@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:07:26 -0800 Subject: [PATCH 1/2] yarn gen --- .../api/.openapi-generator/FILES | 6 + .../api/src/apis/DestinationApi.ts | 497 ++++++++++++++++++ .../api/src/apis/NotificationApi.ts | 418 ++++++++------- .../models/CreateEventTopicRouteRequest.ts | 2 +- .../models/CreateNotificationTopicRequest.ts | 66 +++ .../CreateTopicDestinationRouteRequest.ts | 75 +++ .../api/src/models/CreateTopicRequest.ts | 10 +- .../api/src/models/DependentModule.ts | 65 +++ .../api/src/models/MetadataItemInput.ts | 23 +- .../models/MetadataItemPostAuthentication.ts | 15 +- .../src/models/NotificationEventTopicRoute.ts | 2 +- .../api/src/models/Oauth2Opts.ts | 8 + generated-sources/api/src/models/Topic.ts | 101 ++++ .../api/src/models/TopicDestinationRoute.ts | 102 ++++ .../models/UpdateNotificationTopicRequest.ts | 66 +++ .../api/src/models/UpdateTopicRequest.ts | 2 +- generated-sources/api/src/models/index.ts | 6 + 17 files changed, 1271 insertions(+), 193 deletions(-) create mode 100644 generated-sources/api/src/models/CreateNotificationTopicRequest.ts create mode 100644 generated-sources/api/src/models/CreateTopicDestinationRouteRequest.ts create mode 100644 generated-sources/api/src/models/DependentModule.ts create mode 100644 generated-sources/api/src/models/Topic.ts create mode 100644 generated-sources/api/src/models/TopicDestinationRoute.ts create mode 100644 generated-sources/api/src/models/UpdateNotificationTopicRequest.ts diff --git a/generated-sources/api/.openapi-generator/FILES b/generated-sources/api/.openapi-generator/FILES index a79ffe9c..d7ae5a66 100644 --- a/generated-sources/api/.openapi-generator/FILES +++ b/generated-sources/api/.openapi-generator/FILES @@ -83,6 +83,7 @@ src/models/CreateInstallationRequestConfig.ts src/models/CreateIntegrationRequest.ts src/models/CreateIntegrationRequestLatestRevision.ts src/models/CreateJWTKeyRequest.ts +src/models/CreateNotificationTopicRequest.ts src/models/CreateOrgInviteRequest.ts src/models/CreateOrgRequest.ts src/models/CreateProjectRequest.ts @@ -90,6 +91,7 @@ src/models/CreateProviderAppRequest.ts src/models/CreateRevisionRequest.ts src/models/CreateTargetRequest.ts src/models/CreateTargetRequestMetadata.ts +src/models/CreateTopicDestinationRouteRequest.ts src/models/CreateTopicRequest.ts src/models/CreateTopicTargetRouteRequest.ts src/models/CustomAuthHeader.ts @@ -100,6 +102,7 @@ src/models/DefaultPeriod.ts src/models/DefaultPeriodConfig.ts src/models/DeleteEvent.ts src/models/Delivery.ts +src/models/DependentModule.ts src/models/Destination.ts src/models/DestinationMetadata.ts src/models/DestinationSecrets.ts @@ -195,6 +198,8 @@ src/models/SubscribeSupport.ts src/models/Support.ts src/models/TokenMetadataFields.ts src/models/TokenMetadataFieldsOtherFieldsInner.ts +src/models/Topic.ts +src/models/TopicDestinationRoute.ts src/models/UpdateConnectionRequest.ts src/models/UpdateDestinationRequest.ts src/models/UpdateDestinationRequestDestination.ts @@ -205,6 +210,7 @@ src/models/UpdateInstallationConfigContent.ts src/models/UpdateInstallationRequest.ts src/models/UpdateInstallationRequestInstallation.ts src/models/UpdateInstallationRequestInstallationConfig.ts +src/models/UpdateNotificationTopicRequest.ts src/models/UpdateOrgRequest.ts src/models/UpdateOrgRequestOrg.ts src/models/UpdateProjectRequest.ts diff --git a/generated-sources/api/src/apis/DestinationApi.ts b/generated-sources/api/src/apis/DestinationApi.ts index febfc457..a645b93f 100644 --- a/generated-sources/api/src/apis/DestinationApi.ts +++ b/generated-sources/api/src/apis/DestinationApi.ts @@ -17,21 +17,36 @@ import * as runtime from '../runtime'; import type { ApiProblem, CreateDestinationRequest, + CreateTopicDestinationRouteRequest, + CreateTopicRequest, Destination, InputValidationProblem, + Topic, + TopicDestinationRoute, UpdateDestinationRequest, + UpdateTopicRequest, } from '../models'; import { ApiProblemFromJSON, ApiProblemToJSON, CreateDestinationRequestFromJSON, CreateDestinationRequestToJSON, + CreateTopicDestinationRouteRequestFromJSON, + CreateTopicDestinationRouteRequestToJSON, + CreateTopicRequestFromJSON, + CreateTopicRequestToJSON, DestinationFromJSON, DestinationToJSON, InputValidationProblemFromJSON, InputValidationProblemToJSON, + TopicFromJSON, + TopicToJSON, + TopicDestinationRouteFromJSON, + TopicDestinationRouteToJSON, UpdateDestinationRequestFromJSON, UpdateDestinationRequestToJSON, + UpdateTopicRequestFromJSON, + UpdateTopicRequestToJSON, } from '../models'; export interface CreateDestinationOperationRequest { @@ -39,11 +54,31 @@ export interface CreateDestinationOperationRequest { destination: CreateDestinationRequest; } +export interface CreateTopicOperationRequest { + projectIdOrName: string; + topic: CreateTopicRequest; +} + +export interface CreateTopicDestinationRouteOperationRequest { + projectIdOrName: string; + topicDestinationRoute: CreateTopicDestinationRouteRequest; +} + export interface DeleteDestinationRequest { projectIdOrName: string; destination: string; } +export interface DeleteTopicRequest { + projectIdOrName: string; + topicId: string; +} + +export interface DeleteTopicDestinationRouteRequest { + projectIdOrName: string; + routeId: string; +} + export interface GetDestinationRequest { projectIdOrName: string; destination: string; @@ -55,12 +90,28 @@ export interface ListDestinationsRequest { projectIdOrName: string; } +export interface ListTopicDestinationRoutesRequest { + projectIdOrName: string; + topicId?: string; + destinationId?: string; +} + +export interface ListTopicsRequest { + projectIdOrName: string; +} + export interface UpdateDestinationOperationRequest { projectIdOrName: string; destination: string; destinationUpdate: UpdateDestinationRequest; } +export interface UpdateTopicOperationRequest { + projectIdOrName: string; + topicId: string; + updateTopicRequest: UpdateTopicRequest; +} + /** * DestinationApi - interface * @@ -84,6 +135,38 @@ export interface DestinationApiInterface { */ createDestination(requestParameters: CreateDestinationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * + * @summary Create a topic + * @param {string} projectIdOrName The Ampersand project ID or project name. + * @param {CreateTopicRequest} topic + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DestinationApiInterface + */ + createTopicRaw(requestParameters: CreateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Create a topic + */ + createTopic(requestParameters: CreateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * + * @summary Create a topic destination route + * @param {string} projectIdOrName The Ampersand project ID or project name. + * @param {CreateTopicDestinationRouteRequest} topicDestinationRoute + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DestinationApiInterface + */ + createTopicDestinationRouteRaw(requestParameters: CreateTopicDestinationRouteOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Create a topic destination route + */ + createTopicDestinationRoute(requestParameters: CreateTopicDestinationRouteOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** * * @summary Delete a destination @@ -100,6 +183,38 @@ export interface DestinationApiInterface { */ deleteDestination(requestParameters: DeleteDestinationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * + * @summary Delete a topic + * @param {string} projectIdOrName The Ampersand project ID or project name. + * @param {string} topicId The topic ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DestinationApiInterface + */ + deleteTopicRaw(requestParameters: DeleteTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Delete a topic + */ + deleteTopic(requestParameters: DeleteTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * + * @summary Delete a topic destination route + * @param {string} projectIdOrName The Ampersand project ID or project name. + * @param {string} routeId The topic destination route ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DestinationApiInterface + */ + deleteTopicDestinationRouteRaw(requestParameters: DeleteTopicDestinationRouteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Delete a topic destination route + */ + deleteTopicDestinationRoute(requestParameters: DeleteTopicDestinationRouteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** * * @summary Get a destination @@ -133,6 +248,38 @@ export interface DestinationApiInterface { */ listDestinations(requestParameters: ListDestinationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * + * @summary List topic destination routes + * @param {string} projectIdOrName The Ampersand project ID or project name. + * @param {string} [topicId] Filter by topic ID. + * @param {string} [destinationId] Filter by destination ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DestinationApiInterface + */ + listTopicDestinationRoutesRaw(requestParameters: ListTopicDestinationRoutesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + + /** + * List topic destination routes + */ + listTopicDestinationRoutes(requestParameters: ListTopicDestinationRoutesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * + * @summary List topics + * @param {string} projectIdOrName The Ampersand project ID or project name. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DestinationApiInterface + */ + listTopicsRaw(requestParameters: ListTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + + /** + * List topics + */ + listTopics(requestParameters: ListTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** * * @summary Update a destination @@ -150,6 +297,23 @@ export interface DestinationApiInterface { */ updateDestination(requestParameters: UpdateDestinationOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * + * @summary Update a topic + * @param {string} projectIdOrName The Ampersand project ID or project name. + * @param {string} topicId The topic ID. + * @param {UpdateTopicRequest} updateTopicRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DestinationApiInterface + */ + updateTopicRaw(requestParameters: UpdateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Update a topic + */ + updateTopic(requestParameters: UpdateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + } /** @@ -206,6 +370,104 @@ export class DestinationApi extends runtime.BaseAPI implements DestinationApiInt return await response.value(); } + /** + * Create a topic + */ + async createTopicRaw(requestParameters: CreateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling createTopic.'); + } + + if (requestParameters.topic === null || requestParameters.topic === undefined) { + throw new runtime.RequiredError('topic','Required parameter requestParameters.topic was null or undefined when calling createTopic.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["X-Api-Key"] = this.configuration.apiKey("X-Api-Key"); // APIKeyHeader authentication + } + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("Bearer", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/projects/{projectIdOrName}/topics`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: CreateTopicRequestToJSON(requestParameters.topic), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => TopicFromJSON(jsonValue)); + } + + /** + * Create a topic + */ + async createTopic(requestParameters: CreateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.createTopicRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * Create a topic destination route + */ + async createTopicDestinationRouteRaw(requestParameters: CreateTopicDestinationRouteOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling createTopicDestinationRoute.'); + } + + if (requestParameters.topicDestinationRoute === null || requestParameters.topicDestinationRoute === undefined) { + throw new runtime.RequiredError('topicDestinationRoute','Required parameter requestParameters.topicDestinationRoute was null or undefined when calling createTopicDestinationRoute.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["X-Api-Key"] = this.configuration.apiKey("X-Api-Key"); // APIKeyHeader authentication + } + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("Bearer", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/projects/{projectIdOrName}/topic-destination-routes`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: CreateTopicDestinationRouteRequestToJSON(requestParameters.topicDestinationRoute), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => TopicDestinationRouteFromJSON(jsonValue)); + } + + /** + * Create a topic destination route + */ + async createTopicDestinationRoute(requestParameters: CreateTopicDestinationRouteOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.createTopicDestinationRouteRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * Delete a destination */ @@ -251,6 +513,96 @@ export class DestinationApi extends runtime.BaseAPI implements DestinationApiInt await this.deleteDestinationRaw(requestParameters, initOverrides); } + /** + * Delete a topic + */ + async deleteTopicRaw(requestParameters: DeleteTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling deleteTopic.'); + } + + if (requestParameters.topicId === null || requestParameters.topicId === undefined) { + throw new runtime.RequiredError('topicId','Required parameter requestParameters.topicId was null or undefined when calling deleteTopic.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["X-Api-Key"] = this.configuration.apiKey("X-Api-Key"); // APIKeyHeader authentication + } + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("Bearer", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/projects/{projectIdOrName}/topics/{topicId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"topicId"}}`, encodeURIComponent(String(requestParameters.topicId))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * Delete a topic + */ + async deleteTopic(requestParameters: DeleteTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.deleteTopicRaw(requestParameters, initOverrides); + } + + /** + * Delete a topic destination route + */ + async deleteTopicDestinationRouteRaw(requestParameters: DeleteTopicDestinationRouteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling deleteTopicDestinationRoute.'); + } + + if (requestParameters.routeId === null || requestParameters.routeId === undefined) { + throw new runtime.RequiredError('routeId','Required parameter requestParameters.routeId was null or undefined when calling deleteTopicDestinationRoute.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["X-Api-Key"] = this.configuration.apiKey("X-Api-Key"); // APIKeyHeader authentication + } + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("Bearer", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/projects/{projectIdOrName}/topic-destination-routes/{routeId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"routeId"}}`, encodeURIComponent(String(requestParameters.routeId))), + method: 'DELETE', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * Delete a topic destination route + */ + async deleteTopicDestinationRoute(requestParameters: DeleteTopicDestinationRouteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.deleteTopicDestinationRouteRaw(requestParameters, initOverrides); + } + /** * Get a destination */ @@ -347,6 +699,98 @@ export class DestinationApi extends runtime.BaseAPI implements DestinationApiInt return await response.value(); } + /** + * List topic destination routes + */ + async listTopicDestinationRoutesRaw(requestParameters: ListTopicDestinationRoutesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling listTopicDestinationRoutes.'); + } + + const queryParameters: any = {}; + + if (requestParameters.topicId !== undefined) { + queryParameters['topicId'] = requestParameters.topicId; + } + + if (requestParameters.destinationId !== undefined) { + queryParameters['destinationId'] = requestParameters.destinationId; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["X-Api-Key"] = this.configuration.apiKey("X-Api-Key"); // APIKeyHeader authentication + } + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("Bearer", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/projects/{projectIdOrName}/topic-destination-routes`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TopicDestinationRouteFromJSON)); + } + + /** + * List topic destination routes + */ + async listTopicDestinationRoutes(requestParameters: ListTopicDestinationRoutesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.listTopicDestinationRoutesRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * List topics + */ + async listTopicsRaw(requestParameters: ListTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling listTopics.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["X-Api-Key"] = this.configuration.apiKey("X-Api-Key"); // APIKeyHeader authentication + } + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("Bearer", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/projects/{projectIdOrName}/topics`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TopicFromJSON)); + } + + /** + * List topics + */ + async listTopics(requestParameters: ListTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.listTopicsRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * Update a destination */ @@ -400,4 +844,57 @@ export class DestinationApi extends runtime.BaseAPI implements DestinationApiInt return await response.value(); } + /** + * Update a topic + */ + async updateTopicRaw(requestParameters: UpdateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling updateTopic.'); + } + + if (requestParameters.topicId === null || requestParameters.topicId === undefined) { + throw new runtime.RequiredError('topicId','Required parameter requestParameters.topicId was null or undefined when calling updateTopic.'); + } + + if (requestParameters.updateTopicRequest === null || requestParameters.updateTopicRequest === undefined) { + throw new runtime.RequiredError('updateTopicRequest','Required parameter requestParameters.updateTopicRequest was null or undefined when calling updateTopic.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["X-Api-Key"] = this.configuration.apiKey("X-Api-Key"); // APIKeyHeader authentication + } + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("Bearer", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/projects/{projectIdOrName}/topics/{topicId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"topicId"}}`, encodeURIComponent(String(requestParameters.topicId))), + method: 'PATCH', + headers: headerParameters, + query: queryParameters, + body: UpdateTopicRequestToJSON(requestParameters.updateTopicRequest), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => TopicFromJSON(jsonValue)); + } + + /** + * Update a topic + */ + async updateTopic(requestParameters: UpdateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.updateTopicRaw(requestParameters, initOverrides); + return await response.value(); + } + } diff --git a/generated-sources/api/src/apis/NotificationApi.ts b/generated-sources/api/src/apis/NotificationApi.ts index 6b47f335..a2ab45b5 100644 --- a/generated-sources/api/src/apis/NotificationApi.ts +++ b/generated-sources/api/src/apis/NotificationApi.ts @@ -17,26 +17,26 @@ import * as runtime from '../runtime'; import type { ApiProblem, CreateEventTopicRouteRequest, + CreateNotificationTopicRequest, CreateTargetRequest, - CreateTopicRequest, CreateTopicTargetRouteRequest, InputValidationProblem, NotificationEventTopicRoute, NotificationTarget, NotificationTopic, NotificationTopicTargetRoute, + UpdateNotificationTopicRequest, UpdateTargetRequest, - UpdateTopicRequest, } from '../models'; import { ApiProblemFromJSON, ApiProblemToJSON, CreateEventTopicRouteRequestFromJSON, CreateEventTopicRouteRequestToJSON, + CreateNotificationTopicRequestFromJSON, + CreateNotificationTopicRequestToJSON, CreateTargetRequestFromJSON, CreateTargetRequestToJSON, - CreateTopicRequestFromJSON, - CreateTopicRequestToJSON, CreateTopicTargetRouteRequestFromJSON, CreateTopicTargetRouteRequestToJSON, InputValidationProblemFromJSON, @@ -49,10 +49,10 @@ import { NotificationTopicToJSON, NotificationTopicTargetRouteFromJSON, NotificationTopicTargetRouteToJSON, + UpdateNotificationTopicRequestFromJSON, + UpdateNotificationTopicRequestToJSON, UpdateTargetRequestFromJSON, UpdateTargetRequestToJSON, - UpdateTopicRequestFromJSON, - UpdateTopicRequestToJSON, } from '../models'; export interface CreateEventTopicRouteOperationRequest { @@ -60,14 +60,14 @@ export interface CreateEventTopicRouteOperationRequest { eventTopicRoute: CreateEventTopicRouteRequest; } -export interface CreateTargetOperationRequest { +export interface CreateNotificationTopicOperationRequest { projectIdOrName: string; - target: CreateTargetRequest; + topic: CreateNotificationTopicRequest; } -export interface CreateTopicOperationRequest { +export interface CreateTargetOperationRequest { projectIdOrName: string; - topic: CreateTopicRequest; + target: CreateTargetRequest; } export interface CreateTopicTargetRouteOperationRequest { @@ -80,14 +80,14 @@ export interface DeleteEventTopicRouteRequest { routeId: string; } -export interface DeleteTargetRequest { +export interface DeleteNotificationTopicRequest { projectIdOrName: string; - targetId: string; + topicId: string; } -export interface DeleteTopicRequest { +export interface DeleteTargetRequest { projectIdOrName: string; - topicId: string; + targetId: string; } export interface DeleteTopicTargetRouteRequest { @@ -95,6 +95,11 @@ export interface DeleteTopicTargetRouteRequest { routeId: string; } +export interface GetNotificationTopicRequest { + projectIdOrName: string; + topicId: string; +} + export interface GetTargetByIdRequest { projectIdOrName: string; targetId: string; @@ -106,6 +111,10 @@ export interface ListEventTopicRoutesRequest { eventType?: ListEventTopicRoutesEventTypeEnum; } +export interface ListNotificationTopicsRequest { + projectIdOrName: string; +} + export interface ListTargetsRequest { projectIdOrName: string; } @@ -116,8 +125,10 @@ export interface ListTopicTargetRoutesRequest { targetId?: string; } -export interface ListTopicsRequest { +export interface UpdateNotificationTopicOperationRequest { projectIdOrName: string; + topicId: string; + updateTopicRequest: UpdateNotificationTopicRequest; } export interface UpdateTargetOperationRequest { @@ -126,12 +137,6 @@ export interface UpdateTargetOperationRequest { updateTargetRequest: UpdateTargetRequest; } -export interface UpdateTopicOperationRequest { - projectIdOrName: string; - topicId: string; - updateTopicRequest: UpdateTopicRequest; -} - /** * NotificationApi - interface * @@ -140,8 +145,8 @@ export interface UpdateTopicOperationRequest { */ export interface NotificationApiInterface { /** - * Create a new event-topic route that maps specific event types to notification topics. - * @summary Create an event-topic route + * + * @summary Create a notification event-topic route * @param {string} projectIdOrName The Ampersand project ID or project name. * @param {CreateEventTopicRouteRequest} eventTopicRoute * @param {*} [options] Override http request option. @@ -151,43 +156,42 @@ export interface NotificationApiInterface { createEventTopicRouteRaw(requestParameters: CreateEventTopicRouteOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * Create a new event-topic route that maps specific event types to notification topics. - * Create an event-topic route + * Create a notification event-topic route */ createEventTopicRoute(requestParameters: CreateEventTopicRouteOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * - * @summary Create a notification target + * Create a new notification topic for the project. Topics are used to categorize and organize notifications. + * @summary Create a notification topic * @param {string} projectIdOrName The Ampersand project ID or project name. - * @param {CreateTargetRequest} target + * @param {CreateNotificationTopicRequest} topic * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof NotificationApiInterface */ - createTargetRaw(requestParameters: CreateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + createNotificationTopicRaw(requestParameters: CreateNotificationTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * Create a notification target + * Create a new notification topic for the project. Topics are used to categorize and organize notifications. + * Create a notification topic */ - createTarget(requestParameters: CreateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + createNotificationTopic(requestParameters: CreateNotificationTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * Create a new notification topic for the project. Topics are used to categorize and organize notifications. - * @summary Create a notification topic + * + * @summary Create a notification target * @param {string} projectIdOrName The Ampersand project ID or project name. - * @param {CreateTopicRequest} topic + * @param {CreateTargetRequest} target * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof NotificationApiInterface */ - createTopicRaw(requestParameters: CreateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + createTargetRaw(requestParameters: CreateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * Create a new notification topic for the project. Topics are used to categorize and organize notifications. - * Create a notification topic + * Create a notification target */ - createTopic(requestParameters: CreateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + createTarget(requestParameters: CreateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * @@ -223,35 +227,35 @@ export interface NotificationApiInterface { /** * - * @summary Delete a notification target + * @summary Delete a notification topic * @param {string} projectIdOrName The Ampersand project ID or project name. - * @param {string} targetId The notification target ID. + * @param {string} topicId The notification topic ID. * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof NotificationApiInterface */ - deleteTargetRaw(requestParameters: DeleteTargetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + deleteNotificationTopicRaw(requestParameters: DeleteNotificationTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * Delete a notification target + * Delete a notification topic */ - deleteTarget(requestParameters: DeleteTargetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + deleteNotificationTopic(requestParameters: DeleteNotificationTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * - * @summary Delete a notification topic + * @summary Delete a notification target * @param {string} projectIdOrName The Ampersand project ID or project name. - * @param {string} topicId The notification topic ID. + * @param {string} targetId The notification target ID. * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof NotificationApiInterface */ - deleteTopicRaw(requestParameters: DeleteTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + deleteTargetRaw(requestParameters: DeleteTargetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * Delete a notification topic + * Delete a notification target */ - deleteTopic(requestParameters: DeleteTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + deleteTarget(requestParameters: DeleteTargetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * @@ -269,6 +273,22 @@ export interface NotificationApiInterface { */ deleteTopicTargetRoute(requestParameters: DeleteTopicTargetRouteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * + * @summary Get a notification topic + * @param {string} projectIdOrName The Ampersand project ID or project name. + * @param {string} topicId The notification topic ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof NotificationApiInterface + */ + getNotificationTopicRaw(requestParameters: GetNotificationTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Get a notification topic + */ + getNotificationTopic(requestParameters: GetNotificationTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** * * @summary Get a notification target @@ -289,7 +309,7 @@ export interface NotificationApiInterface { * * @summary List notification event-topic routes * @param {string} projectIdOrName The Ampersand project ID or project name. - * @param {string} [topicId] Filter by notification topic ID. + * @param {string} [topicId] Filter by topic ID. * @param {'read.backfill.done' | 'connection.created' | 'installation.created' | 'installation.updated' | 'installation.deleted' | 'read.schedule.paused'} [eventType] Filter by notification event type. * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -302,6 +322,21 @@ export interface NotificationApiInterface { */ listEventTopicRoutes(requestParameters: ListEventTopicRoutesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * + * @summary List notification topics + * @param {string} projectIdOrName The Ampersand project ID or project name. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof NotificationApiInterface + */ + listNotificationTopicsRaw(requestParameters: ListNotificationTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + + /** + * List notification topics + */ + listNotificationTopics(requestParameters: ListNotificationTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** * * @summary List notification targets @@ -336,18 +371,20 @@ export interface NotificationApiInterface { /** * - * @summary List notification topics + * @summary Update a notification topic * @param {string} projectIdOrName The Ampersand project ID or project name. + * @param {string} topicId The notification topic ID. + * @param {UpdateNotificationTopicRequest} updateTopicRequest * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof NotificationApiInterface */ - listTopicsRaw(requestParameters: ListTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + updateNotificationTopicRaw(requestParameters: UpdateNotificationTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * List notification topics + * Update a notification topic */ - listTopics(requestParameters: ListTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + updateNotificationTopic(requestParameters: UpdateNotificationTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * @@ -366,23 +403,6 @@ export interface NotificationApiInterface { */ updateTarget(requestParameters: UpdateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; - /** - * - * @summary Update a notification topic - * @param {string} projectIdOrName The Ampersand project ID or project name. - * @param {string} topicId The notification topic ID. - * @param {UpdateTopicRequest} updateTopicRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NotificationApiInterface - */ - updateTopicRaw(requestParameters: UpdateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; - - /** - * Update a notification topic - */ - updateTopic(requestParameters: UpdateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; - } /** @@ -391,8 +411,7 @@ export interface NotificationApiInterface { export class NotificationApi extends runtime.BaseAPI implements NotificationApiInterface { /** - * Create a new event-topic route that maps specific event types to notification topics. - * Create an event-topic route + * Create a notification event-topic route */ async createEventTopicRouteRaw(requestParameters: CreateEventTopicRouteOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { @@ -422,7 +441,7 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/event-topic-routes`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + path: `/projects/{projectIdOrName}/notification-event-topic-routes`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), method: 'POST', headers: headerParameters, query: queryParameters, @@ -433,8 +452,7 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } /** - * Create a new event-topic route that maps specific event types to notification topics. - * Create an event-topic route + * Create a notification event-topic route */ async createEventTopicRoute(requestParameters: CreateEventTopicRouteOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.createEventTopicRouteRaw(requestParameters, initOverrides); @@ -442,15 +460,16 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } /** - * Create a notification target + * Create a new notification topic for the project. Topics are used to categorize and organize notifications. + * Create a notification topic */ - async createTargetRaw(requestParameters: CreateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async createNotificationTopicRaw(requestParameters: CreateNotificationTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { - throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling createTarget.'); + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling createNotificationTopic.'); } - if (requestParameters.target === null || requestParameters.target === undefined) { - throw new runtime.RequiredError('target','Required parameter requestParameters.target was null or undefined when calling createTarget.'); + if (requestParameters.topic === null || requestParameters.topic === undefined) { + throw new runtime.RequiredError('topic','Required parameter requestParameters.topic was null or undefined when calling createNotificationTopic.'); } const queryParameters: any = {}; @@ -472,35 +491,35 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/targets`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + path: `/projects/{projectIdOrName}/notifications/topics`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), method: 'POST', headers: headerParameters, query: queryParameters, - body: CreateTargetRequestToJSON(requestParameters.target), + body: CreateNotificationTopicRequestToJSON(requestParameters.topic), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => NotificationTargetFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => NotificationTopicFromJSON(jsonValue)); } /** - * Create a notification target + * Create a new notification topic for the project. Topics are used to categorize and organize notifications. + * Create a notification topic */ - async createTarget(requestParameters: CreateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.createTargetRaw(requestParameters, initOverrides); + async createNotificationTopic(requestParameters: CreateNotificationTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.createNotificationTopicRaw(requestParameters, initOverrides); return await response.value(); } /** - * Create a new notification topic for the project. Topics are used to categorize and organize notifications. - * Create a notification topic + * Create a notification target */ - async createTopicRaw(requestParameters: CreateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async createTargetRaw(requestParameters: CreateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { - throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling createTopic.'); + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling createTarget.'); } - if (requestParameters.topic === null || requestParameters.topic === undefined) { - throw new runtime.RequiredError('topic','Required parameter requestParameters.topic was null or undefined when calling createTopic.'); + if (requestParameters.target === null || requestParameters.target === undefined) { + throw new runtime.RequiredError('target','Required parameter requestParameters.target was null or undefined when calling createTarget.'); } const queryParameters: any = {}; @@ -522,22 +541,21 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/topics`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + path: `/projects/{projectIdOrName}/notifications/targets`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), method: 'POST', headers: headerParameters, query: queryParameters, - body: CreateTopicRequestToJSON(requestParameters.topic), + body: CreateTargetRequestToJSON(requestParameters.target), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => NotificationTopicFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => NotificationTargetFromJSON(jsonValue)); } /** - * Create a new notification topic for the project. Topics are used to categorize and organize notifications. - * Create a notification topic + * Create a notification target */ - async createTopic(requestParameters: CreateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.createTopicRaw(requestParameters, initOverrides); + async createTarget(requestParameters: CreateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.createTargetRaw(requestParameters, initOverrides); return await response.value(); } @@ -619,7 +637,7 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/event-topic-routes/{routeId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"routeId"}}`, encodeURIComponent(String(requestParameters.routeId))), + path: `/projects/{projectIdOrName}/notification-event-topic-routes/{routeId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"routeId"}}`, encodeURIComponent(String(requestParameters.routeId))), method: 'DELETE', headers: headerParameters, query: queryParameters, @@ -636,15 +654,15 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } /** - * Delete a notification target + * Delete a notification topic */ - async deleteTargetRaw(requestParameters: DeleteTargetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async deleteNotificationTopicRaw(requestParameters: DeleteNotificationTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { - throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling deleteTarget.'); + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling deleteNotificationTopic.'); } - if (requestParameters.targetId === null || requestParameters.targetId === undefined) { - throw new runtime.RequiredError('targetId','Required parameter requestParameters.targetId was null or undefined when calling deleteTarget.'); + if (requestParameters.topicId === null || requestParameters.topicId === undefined) { + throw new runtime.RequiredError('topicId','Required parameter requestParameters.topicId was null or undefined when calling deleteNotificationTopic.'); } const queryParameters: any = {}; @@ -664,7 +682,7 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/targets/{targetId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"targetId"}}`, encodeURIComponent(String(requestParameters.targetId))), + path: `/projects/{projectIdOrName}/notifications/topics/{topicId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"topicId"}}`, encodeURIComponent(String(requestParameters.topicId))), method: 'DELETE', headers: headerParameters, query: queryParameters, @@ -674,22 +692,22 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } /** - * Delete a notification target + * Delete a notification topic */ - async deleteTarget(requestParameters: DeleteTargetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - await this.deleteTargetRaw(requestParameters, initOverrides); + async deleteNotificationTopic(requestParameters: DeleteNotificationTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.deleteNotificationTopicRaw(requestParameters, initOverrides); } /** - * Delete a notification topic + * Delete a notification target */ - async deleteTopicRaw(requestParameters: DeleteTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async deleteTargetRaw(requestParameters: DeleteTargetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { - throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling deleteTopic.'); + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling deleteTarget.'); } - if (requestParameters.topicId === null || requestParameters.topicId === undefined) { - throw new runtime.RequiredError('topicId','Required parameter requestParameters.topicId was null or undefined when calling deleteTopic.'); + if (requestParameters.targetId === null || requestParameters.targetId === undefined) { + throw new runtime.RequiredError('targetId','Required parameter requestParameters.targetId was null or undefined when calling deleteTarget.'); } const queryParameters: any = {}; @@ -709,7 +727,7 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/topics/{topicId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"topicId"}}`, encodeURIComponent(String(requestParameters.topicId))), + path: `/projects/{projectIdOrName}/notifications/targets/{targetId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"targetId"}}`, encodeURIComponent(String(requestParameters.targetId))), method: 'DELETE', headers: headerParameters, query: queryParameters, @@ -719,10 +737,10 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } /** - * Delete a notification topic + * Delete a notification target */ - async deleteTopic(requestParameters: DeleteTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - await this.deleteTopicRaw(requestParameters, initOverrides); + async deleteTarget(requestParameters: DeleteTargetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.deleteTargetRaw(requestParameters, initOverrides); } /** @@ -770,6 +788,52 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI await this.deleteTopicTargetRouteRaw(requestParameters, initOverrides); } + /** + * Get a notification topic + */ + async getNotificationTopicRaw(requestParameters: GetNotificationTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling getNotificationTopic.'); + } + + if (requestParameters.topicId === null || requestParameters.topicId === undefined) { + throw new runtime.RequiredError('topicId','Required parameter requestParameters.topicId was null or undefined when calling getNotificationTopic.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.apiKey) { + headerParameters["X-Api-Key"] = this.configuration.apiKey("X-Api-Key"); // APIKeyHeader authentication + } + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("Bearer", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const response = await this.request({ + path: `/projects/{projectIdOrName}/notifications/topics/{topicId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"topicId"}}`, encodeURIComponent(String(requestParameters.topicId))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => NotificationTopicFromJSON(jsonValue)); + } + + /** + * Get a notification topic + */ + async getNotificationTopic(requestParameters: GetNotificationTopicRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getNotificationTopicRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * Get a notification target */ @@ -849,7 +913,7 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/event-topic-routes`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + path: `/projects/{projectIdOrName}/notification-event-topic-routes`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), method: 'GET', headers: headerParameters, query: queryParameters, @@ -867,11 +931,11 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } /** - * List notification targets + * List notification topics */ - async listTargetsRaw(requestParameters: ListTargetsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + async listNotificationTopicsRaw(requestParameters: ListNotificationTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { - throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling listTargets.'); + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling listNotificationTopics.'); } const queryParameters: any = {}; @@ -891,41 +955,33 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/targets`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + path: `/projects/{projectIdOrName}/notifications/topics`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(NotificationTargetFromJSON)); + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(NotificationTopicFromJSON)); } /** - * List notification targets + * List notification topics */ - async listTargets(requestParameters: ListTargetsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { - const response = await this.listTargetsRaw(requestParameters, initOverrides); + async listNotificationTopics(requestParameters: ListNotificationTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.listNotificationTopicsRaw(requestParameters, initOverrides); return await response.value(); } /** - * List notification topic-target routes + * List notification targets */ - async listTopicTargetRoutesRaw(requestParameters: ListTopicTargetRoutesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + async listTargetsRaw(requestParameters: ListTargetsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { - throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling listTopicTargetRoutes.'); + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling listTargets.'); } const queryParameters: any = {}; - if (requestParameters.topicId !== undefined) { - queryParameters['topicId'] = requestParameters.topicId; - } - - if (requestParameters.targetId !== undefined) { - queryParameters['targetId'] = requestParameters.targetId; - } - const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { @@ -941,33 +997,41 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/topic-target-routes`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + path: `/projects/{projectIdOrName}/notifications/targets`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(NotificationTopicTargetRouteFromJSON)); + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(NotificationTargetFromJSON)); } /** - * List notification topic-target routes + * List notification targets */ - async listTopicTargetRoutes(requestParameters: ListTopicTargetRoutesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { - const response = await this.listTopicTargetRoutesRaw(requestParameters, initOverrides); + async listTargets(requestParameters: ListTargetsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.listTargetsRaw(requestParameters, initOverrides); return await response.value(); } /** - * List notification topics + * List notification topic-target routes */ - async listTopicsRaw(requestParameters: ListTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + async listTopicTargetRoutesRaw(requestParameters: ListTopicTargetRoutesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { - throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling listTopics.'); + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling listTopicTargetRoutes.'); } const queryParameters: any = {}; + if (requestParameters.topicId !== undefined) { + queryParameters['topicId'] = requestParameters.topicId; + } + + if (requestParameters.targetId !== undefined) { + queryParameters['targetId'] = requestParameters.targetId; + } + const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { @@ -983,37 +1047,37 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/topics`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), + path: `/projects/{projectIdOrName}/notifications/topic-target-routes`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(NotificationTopicFromJSON)); + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(NotificationTopicTargetRouteFromJSON)); } /** - * List notification topics + * List notification topic-target routes */ - async listTopics(requestParameters: ListTopicsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { - const response = await this.listTopicsRaw(requestParameters, initOverrides); + async listTopicTargetRoutes(requestParameters: ListTopicTargetRoutesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.listTopicTargetRoutesRaw(requestParameters, initOverrides); return await response.value(); } /** - * Update a notification target + * Update a notification topic */ - async updateTargetRaw(requestParameters: UpdateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async updateNotificationTopicRaw(requestParameters: UpdateNotificationTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { - throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling updateTarget.'); + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling updateNotificationTopic.'); } - if (requestParameters.targetId === null || requestParameters.targetId === undefined) { - throw new runtime.RequiredError('targetId','Required parameter requestParameters.targetId was null or undefined when calling updateTarget.'); + if (requestParameters.topicId === null || requestParameters.topicId === undefined) { + throw new runtime.RequiredError('topicId','Required parameter requestParameters.topicId was null or undefined when calling updateNotificationTopic.'); } - if (requestParameters.updateTargetRequest === null || requestParameters.updateTargetRequest === undefined) { - throw new runtime.RequiredError('updateTargetRequest','Required parameter requestParameters.updateTargetRequest was null or undefined when calling updateTarget.'); + if (requestParameters.updateTopicRequest === null || requestParameters.updateTopicRequest === undefined) { + throw new runtime.RequiredError('updateTopicRequest','Required parameter requestParameters.updateTopicRequest was null or undefined when calling updateNotificationTopic.'); } const queryParameters: any = {}; @@ -1035,38 +1099,38 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/targets/{targetId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"targetId"}}`, encodeURIComponent(String(requestParameters.targetId))), + path: `/projects/{projectIdOrName}/notifications/topics/{topicId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"topicId"}}`, encodeURIComponent(String(requestParameters.topicId))), method: 'PATCH', headers: headerParameters, query: queryParameters, - body: UpdateTargetRequestToJSON(requestParameters.updateTargetRequest), + body: UpdateNotificationTopicRequestToJSON(requestParameters.updateTopicRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => NotificationTargetFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => NotificationTopicFromJSON(jsonValue)); } /** - * Update a notification target + * Update a notification topic */ - async updateTarget(requestParameters: UpdateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.updateTargetRaw(requestParameters, initOverrides); + async updateNotificationTopic(requestParameters: UpdateNotificationTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.updateNotificationTopicRaw(requestParameters, initOverrides); return await response.value(); } /** - * Update a notification topic + * Update a notification target */ - async updateTopicRaw(requestParameters: UpdateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async updateTargetRaw(requestParameters: UpdateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.projectIdOrName === null || requestParameters.projectIdOrName === undefined) { - throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling updateTopic.'); + throw new runtime.RequiredError('projectIdOrName','Required parameter requestParameters.projectIdOrName was null or undefined when calling updateTarget.'); } - if (requestParameters.topicId === null || requestParameters.topicId === undefined) { - throw new runtime.RequiredError('topicId','Required parameter requestParameters.topicId was null or undefined when calling updateTopic.'); + if (requestParameters.targetId === null || requestParameters.targetId === undefined) { + throw new runtime.RequiredError('targetId','Required parameter requestParameters.targetId was null or undefined when calling updateTarget.'); } - if (requestParameters.updateTopicRequest === null || requestParameters.updateTopicRequest === undefined) { - throw new runtime.RequiredError('updateTopicRequest','Required parameter requestParameters.updateTopicRequest was null or undefined when calling updateTopic.'); + if (requestParameters.updateTargetRequest === null || requestParameters.updateTargetRequest === undefined) { + throw new runtime.RequiredError('updateTargetRequest','Required parameter requestParameters.updateTargetRequest was null or undefined when calling updateTarget.'); } const queryParameters: any = {}; @@ -1088,21 +1152,21 @@ export class NotificationApi extends runtime.BaseAPI implements NotificationApiI } } const response = await this.request({ - path: `/projects/{projectIdOrName}/notifications/topics/{topicId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"topicId"}}`, encodeURIComponent(String(requestParameters.topicId))), + path: `/projects/{projectIdOrName}/notifications/targets/{targetId}`.replace(`{${"projectIdOrName"}}`, encodeURIComponent(String(requestParameters.projectIdOrName))).replace(`{${"targetId"}}`, encodeURIComponent(String(requestParameters.targetId))), method: 'PATCH', headers: headerParameters, query: queryParameters, - body: UpdateTopicRequestToJSON(requestParameters.updateTopicRequest), + body: UpdateTargetRequestToJSON(requestParameters.updateTargetRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => NotificationTopicFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => NotificationTargetFromJSON(jsonValue)); } /** - * Update a notification topic + * Update a notification target */ - async updateTopic(requestParameters: UpdateTopicOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.updateTopicRaw(requestParameters, initOverrides); + async updateTarget(requestParameters: UpdateTargetOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.updateTargetRaw(requestParameters, initOverrides); return await response.value(); } diff --git a/generated-sources/api/src/models/CreateEventTopicRouteRequest.ts b/generated-sources/api/src/models/CreateEventTopicRouteRequest.ts index 1c7e3c47..cea3261a 100644 --- a/generated-sources/api/src/models/CreateEventTopicRouteRequest.ts +++ b/generated-sources/api/src/models/CreateEventTopicRouteRequest.ts @@ -26,7 +26,7 @@ export interface CreateEventTopicRouteRequest { */ eventType: CreateEventTopicRouteRequestEventTypeEnum; /** - * The ID of the notification topic to route events to. + * The ID of the topic to route events to. * @type {string} * @memberof CreateEventTopicRouteRequest */ diff --git a/generated-sources/api/src/models/CreateNotificationTopicRequest.ts b/generated-sources/api/src/models/CreateNotificationTopicRequest.ts new file mode 100644 index 00000000..9a470a8a --- /dev/null +++ b/generated-sources/api/src/models/CreateNotificationTopicRequest.ts @@ -0,0 +1,66 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Ampersand public API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface CreateNotificationTopicRequest + */ +export interface CreateNotificationTopicRequest { + /** + * A human-readable label for the notification topic. + * @type {string} + * @memberof CreateNotificationTopicRequest + */ + label: string; +} + +/** + * Check if a given object implements the CreateNotificationTopicRequest interface. + */ +export function instanceOfCreateNotificationTopicRequest(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "label" in value; + + return isInstance; +} + +export function CreateNotificationTopicRequestFromJSON(json: any): CreateNotificationTopicRequest { + return CreateNotificationTopicRequestFromJSONTyped(json, false); +} + +export function CreateNotificationTopicRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateNotificationTopicRequest { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'label': json['label'], + }; +} + +export function CreateNotificationTopicRequestToJSON(value?: CreateNotificationTopicRequest | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'label': value.label, + }; +} + diff --git a/generated-sources/api/src/models/CreateTopicDestinationRouteRequest.ts b/generated-sources/api/src/models/CreateTopicDestinationRouteRequest.ts new file mode 100644 index 00000000..42f1bc96 --- /dev/null +++ b/generated-sources/api/src/models/CreateTopicDestinationRouteRequest.ts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Ampersand public API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface CreateTopicDestinationRouteRequest + */ +export interface CreateTopicDestinationRouteRequest { + /** + * The ID of the topic. + * @type {string} + * @memberof CreateTopicDestinationRouteRequest + */ + topicId: string; + /** + * The ID of the destination. + * @type {string} + * @memberof CreateTopicDestinationRouteRequest + */ + destinationId: string; +} + +/** + * Check if a given object implements the CreateTopicDestinationRouteRequest interface. + */ +export function instanceOfCreateTopicDestinationRouteRequest(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "topicId" in value; + isInstance = isInstance && "destinationId" in value; + + return isInstance; +} + +export function CreateTopicDestinationRouteRequestFromJSON(json: any): CreateTopicDestinationRouteRequest { + return CreateTopicDestinationRouteRequestFromJSONTyped(json, false); +} + +export function CreateTopicDestinationRouteRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateTopicDestinationRouteRequest { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'topicId': json['topicId'], + 'destinationId': json['destinationId'], + }; +} + +export function CreateTopicDestinationRouteRequestToJSON(value?: CreateTopicDestinationRouteRequest | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'topicId': value.topicId, + 'destinationId': value.destinationId, + }; +} + diff --git a/generated-sources/api/src/models/CreateTopicRequest.ts b/generated-sources/api/src/models/CreateTopicRequest.ts index 673f8dc7..a5243295 100644 --- a/generated-sources/api/src/models/CreateTopicRequest.ts +++ b/generated-sources/api/src/models/CreateTopicRequest.ts @@ -20,11 +20,11 @@ import { exists, mapValues } from '../runtime'; */ export interface CreateTopicRequest { /** - * A human-readable label for the notification topic. + * The name of the topic. Must contain only letters, numbers, and dashes. * @type {string} * @memberof CreateTopicRequest */ - label: string; + name: string; } /** @@ -32,7 +32,7 @@ export interface CreateTopicRequest { */ export function instanceOfCreateTopicRequest(value: object): boolean { let isInstance = true; - isInstance = isInstance && "label" in value; + isInstance = isInstance && "name" in value; return isInstance; } @@ -47,7 +47,7 @@ export function CreateTopicRequestFromJSONTyped(json: any, ignoreDiscriminator: } return { - 'label': json['label'], + 'name': json['name'], }; } @@ -60,7 +60,7 @@ export function CreateTopicRequestToJSON(value?: CreateTopicRequest | null): any } return { - 'label': value.label, + 'name': value.name, }; } diff --git a/generated-sources/api/src/models/DependentModule.ts b/generated-sources/api/src/models/DependentModule.ts new file mode 100644 index 00000000..76247f9f --- /dev/null +++ b/generated-sources/api/src/models/DependentModule.ts @@ -0,0 +1,65 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Ampersand public API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * Dependency for a single module. + * @export + * @interface DependentModule + */ +export interface DependentModule { + /** + * Whether this input is optional for the module. + * @type {boolean} + * @memberof DependentModule + */ + optional?: boolean; +} + +/** + * Check if a given object implements the DependentModule interface. + */ +export function instanceOfDependentModule(value: object): boolean { + let isInstance = true; + + return isInstance; +} + +export function DependentModuleFromJSON(json: any): DependentModule { + return DependentModuleFromJSONTyped(json, false); +} + +export function DependentModuleFromJSONTyped(json: any, ignoreDiscriminator: boolean): DependentModule { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'optional': !exists(json, 'optional') ? undefined : json['optional'], + }; +} + +export function DependentModuleToJSON(value?: DependentModule | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'optional': value.optional, + }; +} + diff --git a/generated-sources/api/src/models/MetadataItemInput.ts b/generated-sources/api/src/models/MetadataItemInput.ts index 7bfeb1e6..e72bb120 100644 --- a/generated-sources/api/src/models/MetadataItemInput.ts +++ b/generated-sources/api/src/models/MetadataItemInput.ts @@ -13,6 +13,13 @@ */ import { exists, mapValues } from '../runtime'; +import type { DependentModule } from './DependentModule'; +import { + DependentModuleFromJSON, + DependentModuleFromJSONTyped, + DependentModuleToJSON, +} from './DependentModule'; + /** * * @export @@ -31,6 +38,12 @@ export interface MetadataItemInput { * @memberof MetadataItemInput */ displayName?: string; + /** + * Human-readable description that can contain instructions on how to collect metadata + * @type {string} + * @memberof MetadataItemInput + */ + prompt?: string; /** * Default value for this metadata item * @type {string} @@ -45,10 +58,10 @@ export interface MetadataItemInput { docsURL?: string; /** * Does this metadata item only apply to a specific module? - * @type {{ [key: string]: object; }} + * @type {{ [key: string]: DependentModule; }} * @memberof MetadataItemInput */ - moduleDependencies?: { [key: string]: object; }; + dependentModules?: { [key: string]: DependentModule; }; } /** @@ -73,9 +86,10 @@ export function MetadataItemInputFromJSONTyped(json: any, ignoreDiscriminator: b 'name': json['name'], 'displayName': !exists(json, 'displayName') ? undefined : json['displayName'], + 'prompt': !exists(json, 'prompt') ? undefined : json['prompt'], 'defaultValue': !exists(json, 'defaultValue') ? undefined : json['defaultValue'], 'docsURL': !exists(json, 'docsURL') ? undefined : json['docsURL'], - 'moduleDependencies': !exists(json, 'moduleDependencies') ? undefined : json['moduleDependencies'], + 'dependentModules': !exists(json, 'dependentModules') ? undefined : (mapValues(json['dependentModules'], DependentModuleFromJSON)), }; } @@ -90,9 +104,10 @@ export function MetadataItemInputToJSON(value?: MetadataItemInput | null): any { 'name': value.name, 'displayName': value.displayName, + 'prompt': value.prompt, 'defaultValue': value.defaultValue, 'docsURL': value.docsURL, - 'moduleDependencies': value.moduleDependencies, + 'dependentModules': value.dependentModules === undefined ? undefined : (mapValues(value.dependentModules, DependentModuleToJSON)), }; } diff --git a/generated-sources/api/src/models/MetadataItemPostAuthentication.ts b/generated-sources/api/src/models/MetadataItemPostAuthentication.ts index 7e414680..8da38108 100644 --- a/generated-sources/api/src/models/MetadataItemPostAuthentication.ts +++ b/generated-sources/api/src/models/MetadataItemPostAuthentication.ts @@ -13,6 +13,13 @@ */ import { exists, mapValues } from '../runtime'; +import type { DependentModule } from './DependentModule'; +import { + DependentModuleFromJSON, + DependentModuleFromJSONTyped, + DependentModuleToJSON, +} from './DependentModule'; + /** * * @export @@ -27,10 +34,10 @@ export interface MetadataItemPostAuthentication { name: string; /** * Does this metadata item only apply to a specific module? - * @type {{ [key: string]: object; }} + * @type {{ [key: string]: DependentModule; }} * @memberof MetadataItemPostAuthentication */ - moduleDependencies?: { [key: string]: object; }; + dependentModules?: { [key: string]: DependentModule; }; } /** @@ -54,7 +61,7 @@ export function MetadataItemPostAuthenticationFromJSONTyped(json: any, ignoreDis return { 'name': json['name'], - 'moduleDependencies': !exists(json, 'moduleDependencies') ? undefined : json['moduleDependencies'], + 'dependentModules': !exists(json, 'dependentModules') ? undefined : (mapValues(json['dependentModules'], DependentModuleFromJSON)), }; } @@ -68,7 +75,7 @@ export function MetadataItemPostAuthenticationToJSON(value?: MetadataItemPostAut return { 'name': value.name, - 'moduleDependencies': value.moduleDependencies, + 'dependentModules': value.dependentModules === undefined ? undefined : (mapValues(value.dependentModules, DependentModuleToJSON)), }; } diff --git a/generated-sources/api/src/models/NotificationEventTopicRoute.ts b/generated-sources/api/src/models/NotificationEventTopicRoute.ts index d1d2c925..493fb3b9 100644 --- a/generated-sources/api/src/models/NotificationEventTopicRoute.ts +++ b/generated-sources/api/src/models/NotificationEventTopicRoute.ts @@ -32,7 +32,7 @@ export interface NotificationEventTopicRoute { */ eventType: NotificationEventTopicRouteEventTypeEnum; /** - * The ID of the notification topic to route events to. + * The ID of the topic to route events to. * @type {string} * @memberof NotificationEventTopicRoute */ diff --git a/generated-sources/api/src/models/Oauth2Opts.ts b/generated-sources/api/src/models/Oauth2Opts.ts index 8088c3d3..6e7ed274 100644 --- a/generated-sources/api/src/models/Oauth2Opts.ts +++ b/generated-sources/api/src/models/Oauth2Opts.ts @@ -62,6 +62,12 @@ export interface Oauth2Opts { * @memberof Oauth2Opts */ audience?: Array; + /** + * Maps input scopes to their full OAuth scope values with template variable support. Scopes not in this map are passed through unchanged. Needed for some providers. + * @type {{ [key: string]: string; }} + * @memberof Oauth2Opts + */ + scopeMappings?: { [key: string]: string; }; /** * * @type {TokenMetadataFields} @@ -125,6 +131,7 @@ export function Oauth2OptsFromJSONTyped(json: any, ignoreDiscriminator: boolean) 'explicitScopesRequired': json['explicitScopesRequired'], 'explicitWorkspaceRequired': json['explicitWorkspaceRequired'], 'audience': !exists(json, 'audience') ? undefined : json['audience'], + 'scopeMappings': !exists(json, 'scopeMappings') ? undefined : json['scopeMappings'], 'tokenMetadataFields': TokenMetadataFieldsFromJSON(json['tokenMetadataFields']), 'docsURL': !exists(json, 'docsURL') ? undefined : json['docsURL'], 'authURLParams': !exists(json, 'authURLParams') ? undefined : json['authURLParams'], @@ -146,6 +153,7 @@ export function Oauth2OptsToJSON(value?: Oauth2Opts | null): any { 'explicitScopesRequired': value.explicitScopesRequired, 'explicitWorkspaceRequired': value.explicitWorkspaceRequired, 'audience': value.audience, + 'scopeMappings': value.scopeMappings, 'tokenMetadataFields': TokenMetadataFieldsToJSON(value.tokenMetadataFields), 'docsURL': value.docsURL, 'authURLParams': value.authURLParams, diff --git a/generated-sources/api/src/models/Topic.ts b/generated-sources/api/src/models/Topic.ts new file mode 100644 index 00000000..be5a50a3 --- /dev/null +++ b/generated-sources/api/src/models/Topic.ts @@ -0,0 +1,101 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Ampersand public API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface Topic + */ +export interface Topic { + /** + * The topic ID. + * @type {string} + * @memberof Topic + */ + id: string; + /** + * The name of the topic. Must contain only letters, numbers, and dashes. + * @type {string} + * @memberof Topic + */ + name: string; + /** + * The Ampersand project ID. + * @type {string} + * @memberof Topic + */ + projectId: string; + /** + * The time when the topic was created. + * @type {Date} + * @memberof Topic + */ + createTime: Date; + /** + * The time when the topic was last updated. + * @type {Date} + * @memberof Topic + */ + updateTime?: Date; +} + +/** + * Check if a given object implements the Topic interface. + */ +export function instanceOfTopic(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "id" in value; + isInstance = isInstance && "name" in value; + isInstance = isInstance && "projectId" in value; + isInstance = isInstance && "createTime" in value; + + return isInstance; +} + +export function TopicFromJSON(json: any): Topic { + return TopicFromJSONTyped(json, false); +} + +export function TopicFromJSONTyped(json: any, ignoreDiscriminator: boolean): Topic { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'id': json['id'], + 'name': json['name'], + 'projectId': json['projectId'], + 'createTime': (new Date(json['createTime'])), + 'updateTime': !exists(json, 'updateTime') ? undefined : (new Date(json['updateTime'])), + }; +} + +export function TopicToJSON(value?: Topic | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'id': value.id, + 'name': value.name, + 'projectId': value.projectId, + 'createTime': (value.createTime.toISOString()), + 'updateTime': value.updateTime === undefined ? undefined : (value.updateTime.toISOString()), + }; +} + diff --git a/generated-sources/api/src/models/TopicDestinationRoute.ts b/generated-sources/api/src/models/TopicDestinationRoute.ts new file mode 100644 index 00000000..39f100bd --- /dev/null +++ b/generated-sources/api/src/models/TopicDestinationRoute.ts @@ -0,0 +1,102 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Ampersand public API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface TopicDestinationRoute + */ +export interface TopicDestinationRoute { + /** + * The topic destination route ID. + * @type {string} + * @memberof TopicDestinationRoute + */ + id: string; + /** + * The ID of the topic. + * @type {string} + * @memberof TopicDestinationRoute + */ + topicId: string; + /** + * The ID of the destination. + * @type {string} + * @memberof TopicDestinationRoute + */ + destinationId: string; + /** + * The Ampersand project ID. + * @type {string} + * @memberof TopicDestinationRoute + */ + projectId: string; + /** + * The time when the topic destination route was created. + * @type {Date} + * @memberof TopicDestinationRoute + */ + createTime: Date; +} + +/** + * Check if a given object implements the TopicDestinationRoute interface. + */ +export function instanceOfTopicDestinationRoute(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "id" in value; + isInstance = isInstance && "topicId" in value; + isInstance = isInstance && "destinationId" in value; + isInstance = isInstance && "projectId" in value; + isInstance = isInstance && "createTime" in value; + + return isInstance; +} + +export function TopicDestinationRouteFromJSON(json: any): TopicDestinationRoute { + return TopicDestinationRouteFromJSONTyped(json, false); +} + +export function TopicDestinationRouteFromJSONTyped(json: any, ignoreDiscriminator: boolean): TopicDestinationRoute { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'id': json['id'], + 'topicId': json['topicId'], + 'destinationId': json['destinationId'], + 'projectId': json['projectId'], + 'createTime': (new Date(json['createTime'])), + }; +} + +export function TopicDestinationRouteToJSON(value?: TopicDestinationRoute | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'id': value.id, + 'topicId': value.topicId, + 'destinationId': value.destinationId, + 'projectId': value.projectId, + 'createTime': (value.createTime.toISOString()), + }; +} + diff --git a/generated-sources/api/src/models/UpdateNotificationTopicRequest.ts b/generated-sources/api/src/models/UpdateNotificationTopicRequest.ts new file mode 100644 index 00000000..0e337421 --- /dev/null +++ b/generated-sources/api/src/models/UpdateNotificationTopicRequest.ts @@ -0,0 +1,66 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Ampersand public API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface UpdateNotificationTopicRequest + */ +export interface UpdateNotificationTopicRequest { + /** + * A human-readable label for the notification topic. + * @type {string} + * @memberof UpdateNotificationTopicRequest + */ + label: string; +} + +/** + * Check if a given object implements the UpdateNotificationTopicRequest interface. + */ +export function instanceOfUpdateNotificationTopicRequest(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "label" in value; + + return isInstance; +} + +export function UpdateNotificationTopicRequestFromJSON(json: any): UpdateNotificationTopicRequest { + return UpdateNotificationTopicRequestFromJSONTyped(json, false); +} + +export function UpdateNotificationTopicRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): UpdateNotificationTopicRequest { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'label': json['label'], + }; +} + +export function UpdateNotificationTopicRequestToJSON(value?: UpdateNotificationTopicRequest | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'label': value.label, + }; +} + diff --git a/generated-sources/api/src/models/UpdateTopicRequest.ts b/generated-sources/api/src/models/UpdateTopicRequest.ts index 4b2d7b46..4d520116 100644 --- a/generated-sources/api/src/models/UpdateTopicRequest.ts +++ b/generated-sources/api/src/models/UpdateTopicRequest.ts @@ -20,7 +20,7 @@ import { exists, mapValues } from '../runtime'; */ export interface UpdateTopicRequest { /** - * A human-readable label for the notification topic. + * A human-readable label for the topic. * @type {string} * @memberof UpdateTopicRequest */ diff --git a/generated-sources/api/src/models/index.ts b/generated-sources/api/src/models/index.ts index a2a42dca..3a82bed6 100644 --- a/generated-sources/api/src/models/index.ts +++ b/generated-sources/api/src/models/index.ts @@ -60,6 +60,7 @@ export * from './CreateInstallationRequestConfig'; export * from './CreateIntegrationRequest'; export * from './CreateIntegrationRequestLatestRevision'; export * from './CreateJWTKeyRequest'; +export * from './CreateNotificationTopicRequest'; export * from './CreateOrgInviteRequest'; export * from './CreateOrgRequest'; export * from './CreateProjectRequest'; @@ -67,6 +68,7 @@ export * from './CreateProviderAppRequest'; export * from './CreateRevisionRequest'; export * from './CreateTargetRequest'; export * from './CreateTargetRequestMetadata'; +export * from './CreateTopicDestinationRouteRequest'; export * from './CreateTopicRequest'; export * from './CreateTopicTargetRouteRequest'; export * from './CustomAuthHeader'; @@ -77,6 +79,7 @@ export * from './DefaultPeriod'; export * from './DefaultPeriodConfig'; export * from './DeleteEvent'; export * from './Delivery'; +export * from './DependentModule'; export * from './Destination'; export * from './DestinationMetadata'; export * from './DestinationSecrets'; @@ -172,6 +175,8 @@ export * from './SubscribeSupport'; export * from './Support'; export * from './TokenMetadataFields'; export * from './TokenMetadataFieldsOtherFieldsInner'; +export * from './Topic'; +export * from './TopicDestinationRoute'; export * from './UpdateConnectionRequest'; export * from './UpdateDestinationRequest'; export * from './UpdateDestinationRequestDestination'; @@ -182,6 +187,7 @@ export * from './UpdateInstallationConfigContent'; export * from './UpdateInstallationRequest'; export * from './UpdateInstallationRequestInstallation'; export * from './UpdateInstallationRequestInstallationConfig'; +export * from './UpdateNotificationTopicRequest'; export * from './UpdateOrgRequest'; export * from './UpdateOrgRequestOrg'; export * from './UpdateProjectRequest'; From 727f5845d5b79f17946c641008a7dbe9b9577965 Mon Sep 17 00:00:00 2001 From: RajatPawar <18614743+RajatPawar@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:24:45 -0800 Subject: [PATCH 2/2] use renamed module dep --- .../layout/ProtectedConnectionLayout.tsx | 2 +- .../ClientCredentialsContent.tsx | 3 +- src/components/auth/providerMetadata.ts | 32 +++++++++++++------ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/components/Configure/layout/ProtectedConnectionLayout.tsx b/src/components/Configure/layout/ProtectedConnectionLayout.tsx index 3b81bd7b..382a3ec8 100644 --- a/src/components/Configure/layout/ProtectedConnectionLayout.tsx +++ b/src/components/Configure/layout/ProtectedConnectionLayout.tsx @@ -83,7 +83,7 @@ export function ProtectedConnectionLayout({ // Filter metadata based on the determined module // - If module is "" (provider has no modules) → returns all fields for metadata collection. - // - Otherwise → filters fields based on moduleDependencies + // - Otherwise → filters fields based on dependentModules const allMetadataFields = providerInfo?.metadata?.input || []; const filteredMetadataFields = filterMetadataByModule( allMetadataFields, diff --git a/src/components/auth/Oauth/ClientCredentials/ClientCredentialsContent.tsx b/src/components/auth/Oauth/ClientCredentials/ClientCredentialsContent.tsx index b4903a9e..e3e91977 100644 --- a/src/components/auth/Oauth/ClientCredentials/ClientCredentialsContent.tsx +++ b/src/components/auth/Oauth/ClientCredentials/ClientCredentialsContent.tsx @@ -120,7 +120,8 @@ export function ClientCredentialsForm({ url={metadata.docsURL} providerDisplayName={providerName || ""} credentialName={ - metadata.displayName || capitalize(metadata.name.toLowerCase()) + metadata.displayName || + capitalize(metadata.name.toLowerCase()) } /> )} diff --git a/src/components/auth/providerMetadata.ts b/src/components/auth/providerMetadata.ts index a8b129c6..40b7a826 100644 --- a/src/components/auth/providerMetadata.ts +++ b/src/components/auth/providerMetadata.ts @@ -42,7 +42,6 @@ export function getProviderMetadata( /** * Check if the required metadata for the provider has been filled in. - * This will be more useful when we have required/optional metadata later on. * @param metadataInputs - The metadata required by the provider. Is defined in the provider info. * @param formData - The form data to check the metadata against. * @returns True if all required metadata has been filled in, false otherwise. @@ -101,15 +100,17 @@ export function determineModule( } /** - * Filter metadata fields based on module dependencies. - * Only returns fields that either: + * Filter metadata fields based on dependent modules. + * Only returns fields that should be shown for the current module: * 1. Module is "" (empty string = provider has no modules) → return all fields - * 2. Field has no moduleDependencies (apply to all modules) → include field - * 3. Field has the module in their moduleDependencies (case-insensitive) → include field + * 2. Field has no dependentModules (apply to all modules) → include field + * 3. Field has the module in their dependentModules: + * - If optional: true → EXCLUDE (don't show this field) + * - If optional: false or undefined → INCLUDE (show as required field) * * @param metadataInputs - All metadata fields from provider info * @param module - The module determined by determineModule() ("" means no modules, show all) - * @returns Filtered array of metadata fields applicable to this module + * @returns Filtered array of metadata fields that should be displayed for this module */ export function filterMetadataByModule( metadataInputs: MetadataItemInput[], @@ -123,14 +124,25 @@ export function filterMetadataByModule( const moduleLowerCase = module.toLowerCase(); return metadataInputs.filter((field) => { - // If field has no module dependencies, it applies to all modules - if (!field.moduleDependencies) { + // If field isn't dependent on specific modules, it applies to all modules + if (!field.dependentModules) { return true; } - // Check if this module is in the field's dependencies (case-insensitive) - return Object.keys(field.moduleDependencies).some( + // Find if this module exists in dependentModules (case-insensitive) + const matchingModuleKey = Object.keys(field.dependentModules).find( (key) => key.toLowerCase() === moduleLowerCase, ); + + // Module not found in dependentModules - field doesn't apply to this module + if (!matchingModuleKey) { + return false; + } + + // Check the optional flag for this module + const dependentModule = field.dependentModules[matchingModuleKey]; + // optional: true means DON'T show the field (filter it out) + // optional: false or undefined means DO show the field (it's required) + return dependentModule?.optional !== true; }); }