diff --git a/src/internal/api/analyticsApi.ts b/src/internal/api/analyticsApi.ts index a3670a8..52909d6 100644 --- a/src/internal/api/analyticsApi.ts +++ b/src/internal/api/analyticsApi.ts @@ -10,8 +10,8 @@ * Do not edit the class manually. */ -import localVarRequest from 'request'; import http from 'http'; +import localVarRequest from 'request'; /* tslint:disable:no-unused-locals */ import { ClickEventResponse } from '../model/clickEventResponse'; @@ -34,19 +34,14 @@ import { LogVisitEventRequest } from '../model/logVisitEventRequest'; import { VisitEventResponse } from '../model/visitEventResponse'; import { - ObjectSerializer, Authentication, - VoidAuth, - Interceptor, -} from '../model/models'; -import { - HttpBasicAuth, HttpBearerAuth, - ApiKeyAuth, - OAuth, + Interceptor, + ObjectSerializer, + VoidAuth, } from '../model/models'; -import { HttpError, RequestFile } from './apis'; +import { HttpError } from './apis'; let defaultBasePath = 'http://localhost'; diff --git a/src/internal/api/analyticsConfigApi.ts b/src/internal/api/analyticsConfigApi.ts index afd6ef6..3ef718f 100644 --- a/src/internal/api/analyticsConfigApi.ts +++ b/src/internal/api/analyticsConfigApi.ts @@ -10,8 +10,8 @@ * Do not edit the class manually. */ -import localVarRequest from 'request'; import http from 'http'; +import localVarRequest from 'request'; /* tslint:disable:no-unused-locals */ import { AnalyticsConfigResponse } from '../model/analyticsConfigResponse'; @@ -19,19 +19,14 @@ import { CreateAnalyticsConfigModel } from '../model/createAnalyticsConfigModel' import { UpdateAnalyticsConfigModel } from '../model/updateAnalyticsConfigModel'; import { - ObjectSerializer, Authentication, - VoidAuth, - Interceptor, -} from '../model/models'; -import { - HttpBasicAuth, HttpBearerAuth, - ApiKeyAuth, - OAuth, + Interceptor, + ObjectSerializer, + VoidAuth, } from '../model/models'; -import { HttpError, RequestFile } from './apis'; +import { HttpError } from './apis'; let defaultBasePath = 'http://localhost'; diff --git a/src/internal/api/apis.ts b/src/internal/api/apis.ts index 1389143..716e96c 100644 --- a/src/internal/api/apis.ts +++ b/src/internal/api/apis.ts @@ -1,26 +1,26 @@ export * from './analyticsApi'; -import { AnalyticsApi } from './analyticsApi'; export * from './analyticsConfigApi'; -import { AnalyticsConfigApi } from './analyticsConfigApi'; export * from './authApi'; -import { AuthApi } from './authApi'; export * from './emailApi'; -import { EmailApi } from './emailApi'; export * from './fileBucketApi'; -import { FileBucketApi } from './fileBucketApi'; export * from './fileConfigApi'; -import { FileConfigApi } from './fileConfigApi'; export * from './fileDownloadApi'; -import { FileDownloadApi } from './fileDownloadApi'; export * from './fileProviderApi'; -import { FileProviderApi } from './fileProviderApi'; export * from './fileUploadApi'; -import { FileUploadApi } from './fileUploadApi'; export * from './projectApi'; -import { ProjectApi } from './projectApi'; export * from './userApi'; -import { UserApi } from './userApi'; import * as http from 'http'; +import { AnalyticsApi } from './analyticsApi'; +import { AnalyticsConfigApi } from './analyticsConfigApi'; +import { AuthApi } from './authApi'; +import { EmailApi } from './emailApi'; +import { FileBucketApi } from './fileBucketApi'; +import { FileConfigApi } from './fileConfigApi'; +import { FileDownloadApi } from './fileDownloadApi'; +import { FileProviderApi } from './fileProviderApi'; +import { FileUploadApi } from './fileUploadApi'; +import { ProjectApi } from './projectApi'; +import { UserApi } from './userApi'; export class HttpError extends Error { constructor( diff --git a/src/internal/api/fileBucketApi.ts b/src/internal/api/fileBucketApi.ts index 09bcb79..704db1a 100644 --- a/src/internal/api/fileBucketApi.ts +++ b/src/internal/api/fileBucketApi.ts @@ -14,6 +14,7 @@ import localVarRequest from 'request'; import http from 'http'; /* tslint:disable:no-unused-locals */ +import { DeleteFileBucketModel } from '../model/deleteFileBucketModel'; import { FileBucket } from '../model/fileBucket'; import { RegisterFileBucketModel } from '../model/registerFileBucketModel'; @@ -105,6 +106,198 @@ export class FileBucketApi { this.interceptors.push(interceptor); } + /** + * + * @summary Delete a File Bucket. + * @param deleteFileBucketModel + */ + public async fileBucketControllerDeleteFileBucket( + deleteFileBucketModel: DeleteFileBucketModel, + options: { headers: { [name: string]: string } } = { headers: {} } + ): Promise<{ response: http.IncomingMessage; body: FileBucket }> { + const localVarPath = this.basePath + '/file/bucket'; + let localVarQueryParameters: any = {}; + let localVarHeaderParams: any = (Object).assign( + {}, + this._defaultHeaders + ); + const produces = ['application/json']; + // give precedence to 'application/json' + if (produces.indexOf('application/json') >= 0) { + localVarHeaderParams.Accept = 'application/json'; + } else { + localVarHeaderParams.Accept = produces.join(','); + } + let localVarFormParams: any = {}; + + // verify required parameter 'deleteFileBucketModel' is not null or undefined + if (deleteFileBucketModel === null || deleteFileBucketModel === undefined) { + throw new Error( + 'Required parameter deleteFileBucketModel was null or undefined when calling fileBucketControllerDeleteFileBucket.' + ); + } + + (Object).assign(localVarHeaderParams, options.headers); + + let localVarUseFormData = false; + + let localVarRequestOptions: localVarRequest.Options = { + method: 'DELETE', + qs: localVarQueryParameters, + headers: localVarHeaderParams, + uri: localVarPath, + useQuerystring: this._useQuerystring, + json: true, + body: ObjectSerializer.serialize( + deleteFileBucketModel, + 'DeleteFileBucketModel' + ), + }; + + let authenticationPromise = Promise.resolve(); + if (this.authentications.API_Key.accessToken) { + authenticationPromise = authenticationPromise.then(() => + this.authentications.API_Key.applyToRequest(localVarRequestOptions) + ); + } + authenticationPromise = authenticationPromise.then(() => + this.authentications.default.applyToRequest(localVarRequestOptions) + ); + + let interceptorPromise = authenticationPromise; + for (const interceptor of this.interceptors) { + interceptorPromise = interceptorPromise.then(() => + interceptor(localVarRequestOptions) + ); + } + + return interceptorPromise.then(() => { + if (Object.keys(localVarFormParams).length) { + if (localVarUseFormData) { + (localVarRequestOptions).formData = localVarFormParams; + } else { + localVarRequestOptions.form = localVarFormParams; + } + } + return new Promise<{ response: http.IncomingMessage; body: FileBucket }>( + (resolve, reject) => { + localVarRequest(localVarRequestOptions, (error, response, body) => { + if (error) { + reject(error); + } else { + if ( + response.statusCode && + response.statusCode >= 200 && + response.statusCode <= 299 + ) { + body = ObjectSerializer.deserialize(body, 'FileBucket'); + resolve({ response: response, body: body }); + } else { + reject(new HttpError(response, body, response.statusCode)); + } + } + }); + } + ); + }); + } + /** + * + * @summary Get File Buckets by Config Id and Config Env. + * @param configId + */ + public async fileBucketControllerGetBucketsByConfigIdAndEnv( + configId: string, + options: { headers: { [name: string]: string } } = { headers: {} } + ): Promise<{ response: http.IncomingMessage; body: Array }> { + const localVarPath = + this.basePath + + '/file/bucket/{configId}'.replace( + '{' + 'configId' + '}', + encodeURIComponent(String(configId)) + ); + let localVarQueryParameters: any = {}; + let localVarHeaderParams: any = (Object).assign( + {}, + this._defaultHeaders + ); + const produces = ['application/json']; + // give precedence to 'application/json' + if (produces.indexOf('application/json') >= 0) { + localVarHeaderParams.Accept = 'application/json'; + } else { + localVarHeaderParams.Accept = produces.join(','); + } + let localVarFormParams: any = {}; + + // verify required parameter 'configId' is not null or undefined + if (configId === null || configId === undefined) { + throw new Error( + 'Required parameter configId was null or undefined when calling fileBucketControllerGetBucketsByConfigIdAndEnv.' + ); + } + + (Object).assign(localVarHeaderParams, options.headers); + + let localVarUseFormData = false; + + let localVarRequestOptions: localVarRequest.Options = { + method: 'GET', + qs: localVarQueryParameters, + headers: localVarHeaderParams, + uri: localVarPath, + useQuerystring: this._useQuerystring, + json: true, + }; + + let authenticationPromise = Promise.resolve(); + if (this.authentications.API_Key.accessToken) { + authenticationPromise = authenticationPromise.then(() => + this.authentications.API_Key.applyToRequest(localVarRequestOptions) + ); + } + authenticationPromise = authenticationPromise.then(() => + this.authentications.default.applyToRequest(localVarRequestOptions) + ); + + let interceptorPromise = authenticationPromise; + for (const interceptor of this.interceptors) { + interceptorPromise = interceptorPromise.then(() => + interceptor(localVarRequestOptions) + ); + } + + return interceptorPromise.then(() => { + if (Object.keys(localVarFormParams).length) { + if (localVarUseFormData) { + (localVarRequestOptions).formData = localVarFormParams; + } else { + localVarRequestOptions.form = localVarFormParams; + } + } + return new Promise<{ + response: http.IncomingMessage; + body: Array; + }>((resolve, reject) => { + localVarRequest(localVarRequestOptions, (error, response, body) => { + if (error) { + reject(error); + } else { + if ( + response.statusCode && + response.statusCode >= 200 && + response.statusCode <= 299 + ) { + body = ObjectSerializer.deserialize(body, 'Array'); + resolve({ response: response, body: body }); + } else { + reject(new HttpError(response, body, response.statusCode)); + } + } + }); + }); + }); + } /** * * @summary Registers a File Bucket. diff --git a/src/internal/api/fileConfigApi.ts b/src/internal/api/fileConfigApi.ts index 6c98565..8e2e9b6 100644 --- a/src/internal/api/fileConfigApi.ts +++ b/src/internal/api/fileConfigApi.ts @@ -105,6 +105,103 @@ export class FileConfigApi { this.interceptors.push(interceptor); } + /** + * + * @summary Delete file configuration by project ID + * @param projectId + */ + public async fileConfigControllerDeleteFileConfigByProjectId( + projectId: string, + options: { headers: { [name: string]: string } } = { headers: {} } + ): Promise<{ response: http.IncomingMessage; body: FileConfigResponse }> { + const localVarPath = + this.basePath + + '/file/config/delete/{projectId}'.replace( + '{' + 'projectId' + '}', + encodeURIComponent(String(projectId)) + ); + let localVarQueryParameters: any = {}; + let localVarHeaderParams: any = (Object).assign( + {}, + this._defaultHeaders + ); + const produces = ['application/json']; + // give precedence to 'application/json' + if (produces.indexOf('application/json') >= 0) { + localVarHeaderParams.Accept = 'application/json'; + } else { + localVarHeaderParams.Accept = produces.join(','); + } + let localVarFormParams: any = {}; + + // verify required parameter 'projectId' is not null or undefined + if (projectId === null || projectId === undefined) { + throw new Error( + 'Required parameter projectId was null or undefined when calling fileConfigControllerDeleteFileConfigByProjectId.' + ); + } + + (Object).assign(localVarHeaderParams, options.headers); + + let localVarUseFormData = false; + + let localVarRequestOptions: localVarRequest.Options = { + method: 'DELETE', + qs: localVarQueryParameters, + headers: localVarHeaderParams, + uri: localVarPath, + useQuerystring: this._useQuerystring, + json: true, + }; + + let authenticationPromise = Promise.resolve(); + if (this.authentications.API_Key.accessToken) { + authenticationPromise = authenticationPromise.then(() => + this.authentications.API_Key.applyToRequest(localVarRequestOptions) + ); + } + authenticationPromise = authenticationPromise.then(() => + this.authentications.default.applyToRequest(localVarRequestOptions) + ); + + let interceptorPromise = authenticationPromise; + for (const interceptor of this.interceptors) { + interceptorPromise = interceptorPromise.then(() => + interceptor(localVarRequestOptions) + ); + } + + return interceptorPromise.then(() => { + if (Object.keys(localVarFormParams).length) { + if (localVarUseFormData) { + (localVarRequestOptions).formData = localVarFormParams; + } else { + localVarRequestOptions.form = localVarFormParams; + } + } + return new Promise<{ + response: http.IncomingMessage; + body: FileConfigResponse; + }>((resolve, reject) => { + localVarRequest(localVarRequestOptions, (error, response, body) => { + if (error) { + reject(error); + } else { + if ( + response.statusCode && + response.statusCode >= 200 && + response.statusCode <= 299 + ) { + body = ObjectSerializer.deserialize(body, 'FileConfigResponse'); + resolve({ response: response, body: body }); + } else { + reject(new HttpError(response, body, response.statusCode)); + } + } + }); + }); + }); + } /** * * @summary Get file configuration by project ID diff --git a/src/internal/api/fileProviderApi.ts b/src/internal/api/fileProviderApi.ts index 3db402e..03e935b 100644 --- a/src/internal/api/fileProviderApi.ts +++ b/src/internal/api/fileProviderApi.ts @@ -14,7 +14,8 @@ import localVarRequest from 'request'; import http from 'http'; /* tslint:disable:no-unused-locals */ -import { FileProviderResponse } from '../model/fileProviderResponse'; +import { FileProvider } from '../model/fileProvider'; +import { FileProviderPartial } from '../model/fileProviderPartial'; import { RegisterFileProviderModel } from '../model/registerFileProviderModel'; import { @@ -105,6 +106,186 @@ export class FileProviderApi { this.interceptors.push(interceptor); } + /** + * + * @summary Delete File Provider. + * @param name + */ + public async fileProviderControllerDeleteFileProvider( + name: string, + options: { headers: { [name: string]: string } } = { headers: {} } + ): Promise<{ response: http.IncomingMessage; body: FileProviderPartial }> { + const localVarPath = + this.basePath + + '/file/provider/{name}'.replace( + '{' + 'name' + '}', + encodeURIComponent(String(name)) + ); + let localVarQueryParameters: any = {}; + let localVarHeaderParams: any = (Object).assign( + {}, + this._defaultHeaders + ); + const produces = ['application/json']; + // give precedence to 'application/json' + if (produces.indexOf('application/json') >= 0) { + localVarHeaderParams.Accept = 'application/json'; + } else { + localVarHeaderParams.Accept = produces.join(','); + } + let localVarFormParams: any = {}; + + // verify required parameter 'name' is not null or undefined + if (name === null || name === undefined) { + throw new Error( + 'Required parameter name was null or undefined when calling fileProviderControllerDeleteFileProvider.' + ); + } + + (Object).assign(localVarHeaderParams, options.headers); + + let localVarUseFormData = false; + + let localVarRequestOptions: localVarRequest.Options = { + method: 'DELETE', + qs: localVarQueryParameters, + headers: localVarHeaderParams, + uri: localVarPath, + useQuerystring: this._useQuerystring, + json: true, + }; + + let authenticationPromise = Promise.resolve(); + if (this.authentications.API_Key.accessToken) { + authenticationPromise = authenticationPromise.then(() => + this.authentications.API_Key.applyToRequest(localVarRequestOptions) + ); + } + authenticationPromise = authenticationPromise.then(() => + this.authentications.default.applyToRequest(localVarRequestOptions) + ); + + let interceptorPromise = authenticationPromise; + for (const interceptor of this.interceptors) { + interceptorPromise = interceptorPromise.then(() => + interceptor(localVarRequestOptions) + ); + } + + return interceptorPromise.then(() => { + if (Object.keys(localVarFormParams).length) { + if (localVarUseFormData) { + (localVarRequestOptions).formData = localVarFormParams; + } else { + localVarRequestOptions.form = localVarFormParams; + } + } + return new Promise<{ + response: http.IncomingMessage; + body: FileProviderPartial; + }>((resolve, reject) => { + localVarRequest(localVarRequestOptions, (error, response, body) => { + if (error) { + reject(error); + } else { + if ( + response.statusCode && + response.statusCode >= 200 && + response.statusCode <= 299 + ) { + body = ObjectSerializer.deserialize(body, 'FileProviderPartial'); + resolve({ response: response, body: body }); + } else { + reject(new HttpError(response, body, response.statusCode)); + } + } + }); + }); + }); + } + /** + * + * @summary Get All File Providers. + */ + public async fileProviderControllerGetAllFileProviders( + options: { headers: { [name: string]: string } } = { headers: {} } + ): Promise<{ response: http.IncomingMessage; body: Array }> { + const localVarPath = this.basePath + '/file/provider/all'; + let localVarQueryParameters: any = {}; + let localVarHeaderParams: any = (Object).assign( + {}, + this._defaultHeaders + ); + const produces = ['application/json']; + // give precedence to 'application/json' + if (produces.indexOf('application/json') >= 0) { + localVarHeaderParams.Accept = 'application/json'; + } else { + localVarHeaderParams.Accept = produces.join(','); + } + let localVarFormParams: any = {}; + + (Object).assign(localVarHeaderParams, options.headers); + + let localVarUseFormData = false; + + let localVarRequestOptions: localVarRequest.Options = { + method: 'GET', + qs: localVarQueryParameters, + headers: localVarHeaderParams, + uri: localVarPath, + useQuerystring: this._useQuerystring, + json: true, + }; + + let authenticationPromise = Promise.resolve(); + if (this.authentications.API_Key.accessToken) { + authenticationPromise = authenticationPromise.then(() => + this.authentications.API_Key.applyToRequest(localVarRequestOptions) + ); + } + authenticationPromise = authenticationPromise.then(() => + this.authentications.default.applyToRequest(localVarRequestOptions) + ); + + let interceptorPromise = authenticationPromise; + for (const interceptor of this.interceptors) { + interceptorPromise = interceptorPromise.then(() => + interceptor(localVarRequestOptions) + ); + } + + return interceptorPromise.then(() => { + if (Object.keys(localVarFormParams).length) { + if (localVarUseFormData) { + (localVarRequestOptions).formData = localVarFormParams; + } else { + localVarRequestOptions.form = localVarFormParams; + } + } + return new Promise<{ + response: http.IncomingMessage; + body: Array; + }>((resolve, reject) => { + localVarRequest(localVarRequestOptions, (error, response, body) => { + if (error) { + reject(error); + } else { + if ( + response.statusCode && + response.statusCode >= 200 && + response.statusCode <= 299 + ) { + body = ObjectSerializer.deserialize(body, 'Array'); + resolve({ response: response, body: body }); + } else { + reject(new HttpError(response, body, response.statusCode)); + } + } + }); + }); + }); + } /** * * @summary Registers a File Provider. @@ -113,7 +294,7 @@ export class FileProviderApi { public async fileProviderControllerRegisterFileProvider( registerFileProviderModel: RegisterFileProviderModel, options: { headers: { [name: string]: string } } = { headers: {} } - ): Promise<{ response: http.IncomingMessage; body: FileProviderResponse }> { + ): Promise<{ response: http.IncomingMessage; body: FileProviderPartial }> { const localVarPath = this.basePath + '/file/provider'; let localVarQueryParameters: any = {}; let localVarHeaderParams: any = (Object).assign( @@ -183,7 +364,7 @@ export class FileProviderApi { } return new Promise<{ response: http.IncomingMessage; - body: FileProviderResponse; + body: FileProviderPartial; }>((resolve, reject) => { localVarRequest(localVarRequestOptions, (error, response, body) => { if (error) { @@ -194,7 +375,7 @@ export class FileProviderApi { response.statusCode >= 200 && response.statusCode <= 299 ) { - body = ObjectSerializer.deserialize(body, 'FileProviderResponse'); + body = ObjectSerializer.deserialize(body, 'FileProviderPartial'); resolve({ response: response, body: body }); } else { reject(new HttpError(response, body, response.statusCode)); diff --git a/src/internal/model/deleteFileBucketModel.ts b/src/internal/model/deleteFileBucketModel.ts new file mode 100644 index 0000000..92e5114 --- /dev/null +++ b/src/internal/model/deleteFileBucketModel.ts @@ -0,0 +1,56 @@ +/** + * Juno + * Juno Public API Docs + * + * The version of the OpenAPI document: 1.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 { RequestFile } from './models'; + +export class DeleteFileBucketModel { + /** + * The unique name of the bucket + */ + 'name': string; + /** + * Configuration ID for the bucket + */ + 'configId': number; + /** + * The file provider name associated with the bucket + */ + 'fileProviderName': string; + + static discriminator: string | undefined = undefined; + + static attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + }> = [ + { + name: 'name', + baseName: 'name', + type: 'string', + }, + { + name: 'configId', + baseName: 'configId', + type: 'number', + }, + { + name: 'fileProviderName', + baseName: 'fileProviderName', + type: 'string', + }, + ]; + + static getAttributeTypeMap() { + return DeleteFileBucketModel.attributeTypeMap; + } +} diff --git a/src/internal/model/fileProvider.ts b/src/internal/model/fileProvider.ts new file mode 100644 index 0000000..37a8363 --- /dev/null +++ b/src/internal/model/fileProvider.ts @@ -0,0 +1,65 @@ +/** + * Juno + * Juno Public API Docs + * + * The version of the OpenAPI document: 1.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 { AccessKey } from './accessKey'; + +export class FileProvider { + /** + * The access key to register with + */ + 'accessKey': AccessKey; + /** + * The base url associated with file provider. + */ + 'baseUrl': string; + /** + * The file provider name being registered. + */ + 'providerName': string; + /** + * File provider type (one of S3 or AZURE) + */ + 'type': string; + + static discriminator: string | undefined = undefined; + + static attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + }> = [ + { + name: 'accessKey', + baseName: 'accessKey', + type: 'AccessKey', + }, + { + name: 'baseUrl', + baseName: 'baseUrl', + type: 'string', + }, + { + name: 'providerName', + baseName: 'providerName', + type: 'string', + }, + { + name: 'type', + baseName: 'type', + type: 'string', + }, + ]; + + static getAttributeTypeMap() { + return FileProvider.attributeTypeMap; + } +} diff --git a/src/internal/model/fileProviderPartial.ts b/src/internal/model/fileProviderPartial.ts new file mode 100644 index 0000000..0c8ce79 --- /dev/null +++ b/src/internal/model/fileProviderPartial.ts @@ -0,0 +1,47 @@ +/** + * Juno + * Juno Public API Docs + * + * The version of the OpenAPI document: 1.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 { RequestFile } from './models'; + +export class FileProviderPartial { + /** + * The unique provider name of the file provider + */ + 'providerName': string; + /** + * The metadata of the file provider + */ + 'metadata': string; + + static discriminator: string | undefined = undefined; + + static attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + }> = [ + { + name: 'providerName', + baseName: 'providerName', + type: 'string', + }, + { + name: 'metadata', + baseName: 'metadata', + type: 'string', + }, + ]; + + static getAttributeTypeMap() { + return FileProviderPartial.attributeTypeMap; + } +} diff --git a/src/internal/model/models.ts b/src/internal/model/models.ts index ca90a55..556227b 100644 --- a/src/internal/model/models.ts +++ b/src/internal/model/models.ts @@ -12,6 +12,7 @@ export * from './customEventResponse'; export * from './customEventTypeResponse'; export * from './customGraphType'; export * from './customGraphTypeResponse'; +export * from './deleteFileBucketModel'; export * from './downloadFileModel'; export * from './downloadFileResponse'; export * from './emailConfigResponse'; @@ -22,7 +23,8 @@ export * from './emailSender'; export * from './emailSenderSendEmailModel'; export * from './fileBucket'; export * from './fileConfigResponse'; -export * from './fileProviderResponse'; +export * from './fileProvider'; +export * from './fileProviderPartial'; export * from './getAllClickEventsResponse'; export * from './getAllCustomEventTypeResponse'; export * from './getAllCustomEventsResponse'; @@ -95,6 +97,7 @@ import { CustomEventResponse } from './customEventResponse'; import { CustomEventTypeResponse } from './customEventTypeResponse'; import { CustomGraphType } from './customGraphType'; import { CustomGraphTypeResponse } from './customGraphTypeResponse'; +import { DeleteFileBucketModel } from './deleteFileBucketModel'; import { DownloadFileModel } from './downloadFileModel'; import { DownloadFileResponse } from './downloadFileResponse'; import { EmailConfigResponse } from './emailConfigResponse'; @@ -105,7 +108,8 @@ import { EmailSender } from './emailSender'; import { EmailSenderSendEmailModel } from './emailSenderSendEmailModel'; import { FileBucket } from './fileBucket'; import { FileConfigResponse } from './fileConfigResponse'; -import { FileProviderResponse } from './fileProviderResponse'; +import { FileProvider } from './fileProvider'; +import { FileProviderPartial } from './fileProviderPartial'; import { GetAllClickEventsResponse } from './getAllClickEventsResponse'; import { GetAllCustomEventTypeResponse } from './getAllCustomEventTypeResponse'; import { GetAllCustomEventsResponse } from './getAllCustomEventsResponse'; @@ -168,7 +172,6 @@ let primitives = [ let enumsMap: { [index: string]: any } = { AggregateInterval: AggregateInterval, - 'RegisterFileProviderModel.TypeEnum': RegisterFileProviderModel.TypeEnum, 'SetUserTypeModel.TypeEnum': SetUserTypeModel.TypeEnum, 'UserResponse.TypeEnum': UserResponse.TypeEnum, }; @@ -185,6 +188,7 @@ let typeMap: { [index: string]: any } = { CustomEventTypeResponse: CustomEventTypeResponse, CustomGraphType: CustomGraphType, CustomGraphTypeResponse: CustomGraphTypeResponse, + DeleteFileBucketModel: DeleteFileBucketModel, DownloadFileModel: DownloadFileModel, DownloadFileResponse: DownloadFileResponse, EmailConfigResponse: EmailConfigResponse, @@ -195,7 +199,8 @@ let typeMap: { [index: string]: any } = { EmailSenderSendEmailModel: EmailSenderSendEmailModel, FileBucket: FileBucket, FileConfigResponse: FileConfigResponse, - FileProviderResponse: FileProviderResponse, + FileProvider: FileProvider, + FileProviderPartial: FileProviderPartial, GetAllClickEventsResponse: GetAllClickEventsResponse, GetAllCustomEventTypeResponse: GetAllCustomEventTypeResponse, GetAllCustomEventsResponse: GetAllCustomEventsResponse, diff --git a/src/internal/model/registerFileProviderModel.ts b/src/internal/model/registerFileProviderModel.ts index c0fd10e..4aef5d9 100644 --- a/src/internal/model/registerFileProviderModel.ts +++ b/src/internal/model/registerFileProviderModel.ts @@ -10,7 +10,6 @@ * Do not edit the class manually. */ -import { RequestFile } from './models'; import { AccessKey } from './accessKey'; export class RegisterFileProviderModel { @@ -29,7 +28,7 @@ export class RegisterFileProviderModel { /** * File provider type (one of S3 or AZURE) */ - 'type': RegisterFileProviderModel.TypeEnum; + 'type': string; static discriminator: string | undefined = undefined; @@ -56,7 +55,7 @@ export class RegisterFileProviderModel { { name: 'type', baseName: 'type', - type: 'RegisterFileProviderModel.TypeEnum', + type: 'string', }, ]; @@ -64,11 +63,3 @@ export class RegisterFileProviderModel { return RegisterFileProviderModel.attributeTypeMap; } } - -export namespace RegisterFileProviderModel { - export enum TypeEnum { - _0 = '0', - _1 = '1', - _12 = '-1', - } -} diff --git a/src/lib/email.ts b/src/lib/email.ts index d71a4e0..bcfef65 100644 --- a/src/lib/email.ts +++ b/src/lib/email.ts @@ -1,21 +1,21 @@ import { - RegisterEmailModel, - SendEmailModel, - EmailRecipient, - EmailSender, + EmailApi, + EmailConfigResponse, EmailContent, - SendEmailResponse, - RegisterEmailResponse, + EmailRecipient, + EmailSenderSendEmailModel, RegisterDomainModel, - VerifyDomainModel, - EmailApi, RegisterDomainResponse, - SetupEmailServiceModel, + RegisterEmailModel, + RegisterEmailResponse, + SendEmailModel, + SendEmailResponse, SetupEmailResponse, - EmailSenderSendEmailModel, + SetupEmailServiceModel, + VerifyDomainModel, } from '../internal/api'; -import { AuthAPI } from './auth'; import { ApiCredentials } from './apiCredentials'; +import { AuthAPI } from './auth'; import { JunoValidationError } from './errors'; import { validateEmailContent, @@ -34,6 +34,25 @@ export class EmailAPI { this.internalApi.accessToken = this.auth?.junoApiKey; } + async getEmailConfig( + projectId: string, + credentials?: ApiCredentials + ): Promise { + const headers: any = {}; + if (credentials?.userJwt) { + headers['X-User-JWT'] = credentials.userJwt; + } + if (credentials?.projectId !== undefined) { + headers['X-Project-Id'] = String(credentials.projectId); + } + + const res = await this.internalApi.emailControllerGetEmailConfigById( + projectId, + { headers } + ); + return res.body; + } + async setupEmail( options: SetupEmailServiceModel, credentials?: ApiCredentials diff --git a/src/lib/file.ts b/src/lib/file.ts index af70f40..1569a4b 100644 --- a/src/lib/file.ts +++ b/src/lib/file.ts @@ -1,4 +1,5 @@ import { + DeleteFileBucketModel, DownloadFileModel, DownloadFileResponse, FileBucket, @@ -6,15 +7,17 @@ import { FileConfigApi, FileConfigResponse, FileDownloadApi, + FileProvider, FileProviderApi, - FileProviderResponse, + FileProviderPartial, + FileUploadApi, RegisterFileBucketModel, RegisterFileProviderModel, SetupFileServiceResponse, - FileUploadApi, UploadFileModel, UploadFileResponse, } from '../internal/api'; +import { ApiCredentials } from './apiCredentials'; import { JunoValidationError } from './errors'; import { validateString } from './validators'; @@ -39,35 +42,87 @@ export class FileAPI { this.providerApi.accessToken = apiKey; } - async setup(): Promise { - const res = await this.configApi.fileConfigControllerSetup(); + async setup(credentials?: ApiCredentials): Promise { + const headers: any = {}; + if (credentials?.userJwt) { + headers['X-User-JWT'] = credentials.userJwt; + } + if (credentials?.projectId !== undefined) { + headers['X-Project-Id'] = String(credentials.projectId); + } + const res = await this.configApi.fileConfigControllerSetup({ headers }); return res.body; } - async getConfigByProjectId(projectId: string): Promise { - validateString(projectId, 'Project ID must be non-empty'); + async getConfig( + projectId: string, + credentials?: ApiCredentials + ): Promise { + const headers: any = {}; + if (credentials?.userJwt) { + headers['X-User-JWT'] = credentials.userJwt; + } + if (credentials?.projectId !== undefined) { + headers['X-Project-Id'] = String(credentials.projectId); + } + const res = await this.configApi.fileConfigControllerGetFileConfigByProjectId( - projectId + projectId, + { headers } ); return res.body; } - async registerProvider(options: { - baseUrl: string; - providerName: string; - type: RegisterFileProviderModel.TypeEnum; - accessKey: { accessKeyId: string; secretAccessKey: string }; - }): Promise { + async deleteConfig( + projectId: string, + credentials?: ApiCredentials + ): Promise { + const headers: any = {}; + if (credentials?.userJwt) { + headers['X-User-JWT'] = credentials.userJwt; + } + if (credentials?.projectId !== undefined) { + headers['X-Project-Id'] = String(credentials.projectId); + } + + const res = + await this.configApi.fileConfigControllerDeleteFileConfigByProjectId( + projectId, + { headers } + ); + return res.body; + } + + async registerProvider( + options: { + baseUrl: string; + providerName: string; + type: string; + accessKey: { publicAccessKey: string; privateAccessKey: string }; + }, + credentials?: ApiCredentials + ): Promise { const { baseUrl, providerName, type, accessKey } = options; validateString(baseUrl, 'baseUrl must be non-empty'); validateString(providerName, 'providerName must be non-empty'); - validateString(accessKey?.accessKeyId, 'accessKeyId must be non-empty'); validateString( - accessKey?.secretAccessKey, - 'secretAccessKey must be non-empty' + accessKey?.publicAccessKey, + 'publicAccessKey must be non-empty' ); + validateString( + accessKey?.privateAccessKey, + 'privateAccessKey must be non-empty' + ); + + const headers: any = {}; + if (credentials?.userJwt) { + headers['X-User-JWT'] = credentials.userJwt; + } + if (credentials?.projectId !== undefined) { + headers['X-Project-Id'] = String(credentials.projectId); + } const model = new RegisterFileProviderModel(); (model as any).accessKey = accessKey as any; @@ -76,16 +131,59 @@ export class FileAPI { model.type = type; const res = - await this.providerApi.fileProviderControllerRegisterFileProvider(model); + await this.providerApi.fileProviderControllerRegisterFileProvider(model, { + headers, + }); return res.body; } - async registerBucket(options: { - name: string; - configId: number; - fileProviderName: string; - fileServiceFile?: Array; - }): Promise { + async deleteProvider( + name: string, + credentials?: ApiCredentials + ): Promise { + validateString(name, 'Provider name must be non-empty'); + const headers: any = {}; + if (credentials?.userJwt) { + headers['X-User-JWT'] = credentials.userJwt; + } + if (credentials?.projectId !== undefined) { + headers['X-Project-Id'] = String(credentials.projectId); + } + + const res = await this.providerApi.fileProviderControllerDeleteFileProvider( + name, + { headers } + ); + return res.body; + } + + async getAllFileProviders( + credentials?: ApiCredentials + ): Promise { + const headers: any = {}; + if (credentials?.userJwt) { + headers['X-User-JWT'] = credentials.userJwt; + } + if (credentials?.projectId !== undefined) { + headers['X-Project-Id'] = String(credentials.projectId); + } + + const res = + await this.providerApi.fileProviderControllerGetAllFileProviders({ + headers, + }); + return res.body; + } + + async registerBucket( + options: { + name: string; + configId: number; + fileProviderName: string; + fileServiceFile?: Array; + }, + credentials?: ApiCredentials + ): Promise { const { name, configId, fileProviderName, fileServiceFile } = options; validateString(name, 'Bucket name must be non-empty'); @@ -94,6 +192,14 @@ export class FileAPI { } validateString(fileProviderName, 'fileProviderName must be non-empty'); + const headers: any = {}; + if (credentials?.userJwt) { + headers['X-User-JWT'] = credentials.userJwt; + } + if (credentials?.projectId !== undefined) { + headers['X-Project-Id'] = String(credentials.projectId); + } + const model = new RegisterFileBucketModel(); model.name = name; model.configId = configId; @@ -101,11 +207,58 @@ export class FileAPI { model.fileServiceFile = fileServiceFile ?? []; const res = await this.bucketApi.fileBucketControllerRegisterFileBucket( - model + model, + { headers } + ); + return res.body; + } + + async deleteBucket( + options: DeleteFileBucketModel, + credentials?: ApiCredentials + ): Promise { + const { name, configId, fileProviderName } = options; + validateString(name, 'Bucket name must be non-empty'); + if (typeof configId !== 'number') { + throw new JunoValidationError('configId must be a number'); + } + validateString(fileProviderName, 'fileProviderName must be non-empty'); + + const headers: any = {}; + if (credentials?.userJwt) { + headers['X-User-JWT'] = credentials.userJwt; + } + if (credentials?.projectId !== undefined) { + headers['X-Project-Id'] = String(credentials.projectId); + } + + const res = await this.bucketApi.fileBucketControllerDeleteFileBucket( + options, + { headers } ); return res.body; } + async getBucketsByConfigIdAndEnv( + configId: string, + credentials?: ApiCredentials + ): Promise { + const headers: any = {}; + if (credentials?.userJwt) { + headers['X-User-JWT'] = credentials.userJwt; + } + if (credentials?.projectId !== undefined) { + headers['X-Project-Id'] = String(credentials.projectId); + } + + const res = + await this.bucketApi.fileBucketControllerGetBucketsByConfigIdAndEnv( + configId, + { headers } + ); + return res.body; + } + async uploadFile(options: { fileName: string; bucketName: string; diff --git a/src/lib/juno.ts b/src/lib/juno.ts index 9f8e926..1eb26ae 100644 --- a/src/lib/juno.ts +++ b/src/lib/juno.ts @@ -2,10 +2,9 @@ import { AnalyticsAPI } from './analytics'; import { AnalyticsConfigAPI } from './analyticsConfig'; import { AuthAPI } from './auth'; import { EmailAPI } from './email'; -import { FileAPI } from './file'; import { JunoValidationError } from './errors'; +import { FileAPI } from './file'; import { ProjectAPI } from './project'; -import { SettingsAPI } from './settings'; import { UserAPI } from './user'; class JunoAPI { @@ -14,7 +13,6 @@ class JunoAPI { private emailAPI?: EmailAPI; private projectAPI?: ProjectAPI; private authAPI?: AuthAPI; - private settingsAPI?: SettingsAPI; private analyticsAPI?: AnalyticsAPI; private analyticsConfigAPI?: AnalyticsConfigAPI; private fileAPI?: FileAPI; @@ -46,15 +44,6 @@ class JunoAPI { return this.userAPI; } - get settings(): SettingsAPI { - if (!this.settingsAPI) { - throw new JunoValidationError( - 'juno.init() must be called before using the Juno SDK' - ); - } - return this.settingsAPI; - } - get email(): EmailAPI { if (!this.emailAPI) { throw new JunoValidationError( @@ -95,7 +84,6 @@ class JunoAPI { this.userAPI = new UserAPI(options.baseURL); this.emailAPI = new EmailAPI(options.baseURL, this.authAPI); this.projectAPI = new ProjectAPI(options.baseURL, this.apiKey); - this.settingsAPI = new SettingsAPI(options.baseURL, this.apiKey); this.analyticsAPI = new AnalyticsAPI(options.baseURL, this.apiKey); this.analyticsConfigAPI = new AnalyticsConfigAPI( options.baseURL, diff --git a/src/lib/settings.ts b/src/lib/settings.ts deleted file mode 100644 index 90ef6e4..0000000 --- a/src/lib/settings.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { - EmailApi, - EmailConfigResponse, - FileConfigApi, - FileConfigResponse, -} from '../internal/api'; -import { ApiCredentials } from './apiCredentials'; - -export class SettingsAPI { - private internalFileConfigApi: FileConfigApi; - private internalEmailApi: EmailApi; - constructor(baseURL?: string, apiKey?: string) { - this.internalFileConfigApi = new FileConfigApi(baseURL); - this.internalFileConfigApi.accessToken = apiKey; - - this.internalEmailApi = new EmailApi(baseURL); - this.internalEmailApi.accessToken = apiKey; - } - - async getFileConfig( - projectId: string, - credentials?: ApiCredentials - ): Promise { - const headers: any = {}; - if (credentials?.userJwt) { - headers['X-User-JWT'] = credentials.userJwt; - } - if (credentials?.projectId !== undefined) { - headers['X-Project-Id'] = String(credentials.projectId); - } - - const res = - await this.internalFileConfigApi.fileConfigControllerGetFileConfigByProjectId( - projectId, - { headers } - ); - return res.body; - } - - async getEmailConfig( - projectId: string, - credentials?: ApiCredentials - ): Promise { - const headers: any = {}; - if (credentials?.userJwt) { - headers['X-User-JWT'] = credentials.userJwt; - } - if (credentials?.projectId !== undefined) { - headers['X-Project-Id'] = String(credentials.projectId); - } - - const res = await this.internalEmailApi.emailControllerGetEmailConfigById( - projectId, - { headers } - ); - return res.body; - } -}