diff --git a/package-lock.json b/package-lock.json index fa24531..1bd137b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "dependencies": { "@aws-sdk/client-secrets-manager": "^3.112.0", "@dadosfera/dadosfera-logs": "^1.0.0-beta.3", - "@dadosfera/protospack-v2": "^3.13.0", + "@dadosfera/protospack-v2": "^3.14.10", "@grpc/grpc-js": "^1.6.7", "@grpc/proto-loader": "^0.6.13", "@nestjs/common": "^8.4.7", @@ -1726,9 +1726,9 @@ } }, "node_modules/@dadosfera/protospack-v2": { - "version": "3.13.0", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.13.0.tgz", - "integrity": "sha512-MVTBvt+7rXpZ9uRPB6SF8z2wubMIYmB66krCIe3xqrdnLvtAkLc9mrJ20qMmQ6hkx5k+iMux/IJTL0IihLuEjA==", + "version": "3.14.10", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.14.10.tgz", + "integrity": "sha512-RP3f4Phq8dIcNjBs6d3VJmmr6H2NfP1vX0LcjGfIUCwczG177HGwZeQLWzKUWF3aIyh3gzb/nNmNmI2j/qWwFA==", "dependencies": { "@grpc/grpc-js": "^1.6.7", "rxjs": "^7.5.5", @@ -12297,9 +12297,9 @@ } }, "@dadosfera/protospack-v2": { - "version": "3.13.0", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.13.0.tgz", - "integrity": "sha512-MVTBvt+7rXpZ9uRPB6SF8z2wubMIYmB66krCIe3xqrdnLvtAkLc9mrJ20qMmQ6hkx5k+iMux/IJTL0IihLuEjA==", + "version": "3.14.10", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.14.10.tgz", + "integrity": "sha512-RP3f4Phq8dIcNjBs6d3VJmmr6H2NfP1vX0LcjGfIUCwczG177HGwZeQLWzKUWF3aIyh3gzb/nNmNmI2j/qWwFA==", "requires": { "@grpc/grpc-js": "^1.6.7", "rxjs": "^7.5.5", diff --git a/package.json b/package.json index 2dcb037..8cebe35 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "dependencies": { "@aws-sdk/client-secrets-manager": "^3.112.0", "@dadosfera/dadosfera-logs": "^1.0.0-beta.3", - "@dadosfera/protospack-v2": "^3.13.0", + "@dadosfera/protospack-v2": "^3.14.10", "@grpc/grpc-js": "^1.6.7", "@grpc/proto-loader": "^0.6.13", "@nestjs/common": "^8.4.7", diff --git a/src/app.module.ts b/src/app.module.ts index a95d27e..953a917 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -22,6 +22,7 @@ import { TransformationsModule } from './modules/transformations/transformations import { HealthModule } from './modules/health/health.module'; import { CatalogModule } from './modules/catalog/catalog.module'; import { ConfigModule } from '@nestjs/config'; +import { PipelinesV2Module } from './modules/pipelinesV2/pipelines.module'; @Module({ controllers: [], @@ -51,6 +52,7 @@ import { ConfigModule } from '@nestjs/config'; RolesModule, InputsModule, OauthModule, + PipelinesV2Module, ], }) export class AppModule {} diff --git a/src/authentication/permissions.enum.ts b/src/authentication/permissions.enum.ts index f2e73ea..ab08187 100644 --- a/src/authentication/permissions.enum.ts +++ b/src/authentication/permissions.enum.ts @@ -441,6 +441,67 @@ export const PERMISSIONS = { }, }, }, + NETWORK_CONFIG: { + title: { + 'pt-br': 'VPN', + 'en-us': 'VPN', + }, + permissions: { + CREATE: { + seqid: 35, + claim: 'network_config:create', + usage: PermissionUsages.PUBLIC, + name: { + 'pt-br': 'Cadastrar VPN', + 'en-us': 'Create VPN', + }, + }, + DELETE: { + seqid: 36, + claim: 'network_config:delete', + usage: PermissionUsages.PUBLIC, + name: { + 'pt-br': 'Excluir VPN', + 'en-us': 'Remove VPN', + }, + }, + }, + }, + CONNECTION: { + title: { + 'pt-br': 'Conexões', + 'en-us': 'Connections', + }, + permissions: { + CREATE: { + seqid: 37, + claim: 'connection:create', + usage: PermissionUsages.PUBLIC, + name: { + 'pt-br': 'Cadastrar Conexão', + 'en-us': 'Create Connection', + }, + }, + DELETE: { + seqid: 38, + claim: 'connection:delete', + usage: PermissionUsages.PUBLIC, + name: { + 'pt-br': 'Excluir Conexão', + 'en-us': 'Remove Connection', + }, + }, + UPDATE: { + seqid: 39, + claim: 'connection:update', + usage: PermissionUsages.INTERNAL, + name: { + 'pt-br': 'Editar Conexão', + 'en-us': 'Edit Connection', + }, + }, + }, + }, }; // traverses the object searching for duplicate seqids or claims (executes at runtime) diff --git a/src/authentication/user.decorator.ts b/src/authentication/user.decorator.ts index cf7709b..bdec568 100644 --- a/src/authentication/user.decorator.ts +++ b/src/authentication/user.decorator.ts @@ -20,6 +20,5 @@ export const User: (options?: { required?: boolean }) => ParameterDecorator = if (!request.user && options?.required) { throw new ErrorBuilder(ErrorCodes.AUTH.UNAUTHORIZED); } - return request.user; }); diff --git a/src/modules/connection-test/connection-test.service.ts b/src/modules/connection-test/connection-test.service.ts index f4c50ef..47f7cd5 100644 --- a/src/modules/connection-test/connection-test.service.ts +++ b/src/modules/connection-test/connection-test.service.ts @@ -20,6 +20,7 @@ import { DatabaseConnectionPropertiesDto, } from '../connection/dtos/connection'; import { RequestUser } from 'src/authentication/user.decorator'; +import { PackTheMetadata } from 'src/utils/ PackTheMetadata'; @Injectable() export class ConnectionTestService { @@ -46,17 +47,20 @@ export class ConnectionTestService { connection_id, } = body; const { user_id, customer_id, customer_name } = user; - const info = { customer_name, customer_id, user_id }; + const metadata = PackTheMetadata({ + customer_name, + customer_id, + user_id, + }); if (connection_id) { const con = await this.connectionsService.getConnectionDetails({ body, - info, + metadata, }); const conPayload = JSON.parse(con.connection.properties); const { plugin, network_config_id } = con.connection; const { host, port, endpoint } = conPayload; - console.log(plugin); return lastValueFrom( this.connectionTestReadClient.ConnectionTestPing({ @@ -87,7 +91,13 @@ export class ConnectionTestService { ): Promise { const { plugin, ...connectionBody } = body; let { connection_id } = body; - const { customer_id, customer_name, user_id } = user; + const { customer_id, customer_name, user_id, username } = user; + const metadata = PackTheMetadata({ + customer_id, + customer_name, + user_id, + username, + }); /********* CREATE CONNECTION *********/ if (!connection_id) { @@ -117,7 +127,7 @@ export class ConnectionTestService { if (!body.connection_id) { await this.connectionsService.deleteConnection({ body: { id: connection_id }, - info: { customer_id, customer_name, user_id }, + metadata, }); } throw e; @@ -125,7 +135,7 @@ export class ConnectionTestService { if (!operation_result && !body.connection_id) { await this.connectionsService.deleteConnection({ body: { id: connection_id }, - info: { customer_id, customer_name, user_id }, + metadata, }); connection_id = null; } diff --git a/src/modules/connection/client.service.ts b/src/modules/connection/client.service.ts index 2039868..95705bb 100644 --- a/src/modules/connection/client.service.ts +++ b/src/modules/connection/client.service.ts @@ -1,4 +1,3 @@ -import { Metadata } from '@grpc/grpc-js'; import { OnModuleInit, Inject, @@ -39,13 +38,8 @@ export class ConnectionClientService implements OnModuleInit { async createConnection( body: CreateConnectionDto, - info: any, + metadata, ): Promise { - const meta = new Metadata(); - meta.add('customer_id', info.customer_id); - meta.add('customer_name', info.customer_name); - meta.add('user_id', info.user_id); - const { connector_id, description, @@ -69,7 +63,7 @@ export class ConnectionClientService implements OnModuleInit { properties: JSON.stringify(properties), type, }, - meta, + metadata, ), ).catch((err) => { throw new HttpException( @@ -82,14 +76,8 @@ export class ConnectionClientService implements OnModuleInit { async updateConnection( id: string, body: UpdateConnectionDto, - info, + metadata, ): Promise { - const meta = new Metadata(); - meta.add('customer_id', info.customer_id); - meta.add('customer_name', info.customer_name); - meta.add('user_id', info.user_id); - meta.add('language', info.language); - const { description, name, network_config_id, properties } = body; return lastValueFrom( @@ -101,7 +89,7 @@ export class ConnectionClientService implements OnModuleInit { network_config_id, properties: JSON.stringify(properties), }, - meta, + metadata, ), ).catch((err) => { throw new HttpException( @@ -111,12 +99,7 @@ export class ConnectionClientService implements OnModuleInit { }); } - async deleteConnection({ body, info }): Promise { - const meta = new Metadata(); - meta.add('customer_id', info.customer_id); - meta.add('customer_name', info.customer_name); - meta.add('user_id', info.user_id); - + async deleteConnection({ body, metadata }): Promise { const { id } = body; return lastValueFrom( @@ -124,7 +107,7 @@ export class ConnectionClientService implements OnModuleInit { { id, }, - meta, + metadata, ), ).catch((err) => { throw new HttpException( @@ -134,19 +117,13 @@ export class ConnectionClientService implements OnModuleInit { }); } - async getAllConnection({ body, info }): Promise { - const meta = new Metadata(); - meta.add('customer_id', info.customer_id); - meta.add('customer_name', info.customer_name); - meta.add('user_id', info.user_id); - meta.add('language', info.language); - + async getAllConnection({ body, metadata }): Promise { const { search, filters, size, page } = body; return lastValueFrom( this.connectionServiceRead.GetAllConnection( { search, filters: JSON.stringify(filters), size, page }, - meta, + metadata, ), ).catch((err) => { throw new HttpException( @@ -156,39 +133,14 @@ export class ConnectionClientService implements OnModuleInit { }); } - async getConnection({ body, info }): Promise { - const meta = new Metadata(); - meta.add('customer_id', info.customer_id); - meta.add('customer_name', info.customer_name); - meta.add('user_id', info.user_id); - meta.add('language', info.language); - - const { id } = body; - - return lastValueFrom( - this.connectionServiceRead.GetConnection({ id }, meta), - ).catch((err) => { - throw new HttpException( - err.details, - err.code === 6 ? HttpStatus.CONFLICT : 400, - ); - }); - } - async getConnectionDetails({ body, - info, + metadata, }): Promise { - const meta = new Metadata(); - meta.add('customer_id', info.customer_id); - meta.add('customer_name', info.customer_name); - meta.add('user_id', info.user_id); - meta.add('details', info.details); - const id = body.connection_id || body.id; return lastValueFrom( - this.connectionServiceRead.GetConnectionDetails({ id }, meta), + this.connectionServiceRead.GetConnectionDetails({ id }, metadata), ).catch((err) => { throw new HttpException( err.details, diff --git a/src/modules/connection/connection.controller.ts b/src/modules/connection/connection.controller.ts index 6fdbce0..303e882 100644 --- a/src/modules/connection/connection.controller.ts +++ b/src/modules/connection/connection.controller.ts @@ -18,7 +18,7 @@ import { RequireAllPermissions, } from 'src/authentication/authentication.decorator'; import { PERMISSIONS } from 'src/authentication/permissions.enum'; -import { User } from 'src/authentication/user.decorator'; +import { RequestUser, User } from 'src/authentication/user.decorator'; import { ValidationPipe } from '../../pipes/object-validation.pipe'; import { ConnectionDetailsRes, @@ -27,6 +27,7 @@ import { UpdateConnectionDto, } from './dtos/connection'; import { CreateConnectionDto } from './dtos/connection'; +import { PackTheMetadata } from 'src/utils/ PackTheMetadata'; @ApiTags('connections') @ApiBearerAuth() @@ -45,57 +46,74 @@ export class ConnectionController { @Post() // @RequireAllPermissions(Permissions.CONNECTIONS.CREATE) async createConnection( - @User() user, + @User() user: RequestUser, @Body(new ValidationPipe()) body: CreateConnectionDto, ): Promise { this.logger.info('/connections - Create Connection'); - const { user_id, customer_id, customer_name } = user; - - const response: any = await this.clientService.createConnection(body, { + const { user_id, customer_id, customer_name, username } = user; + const metadata = PackTheMetadata({ user_id, customer_id, customer_name, + username, }); + const response: any = await this.clientService.createConnection( + body, + metadata, + ); + return response; } @Put('/:id') // @RequireAllPermissions(Permissions.CONNECTIONS.CREATE) async updateConnection( - @User() user, + @User() user: RequestUser, @Headers('Dadosfera-Lang') language: string, @Param('id') id: string, @Body(new ValidationPipe()) body: UpdateConnectionDto, ): Promise { this.logger.info('/connections - Update Connection'); - const { user_id, customer_id, customer_name } = user; - - const response: any = await this.clientService.updateConnection(id, body, { + const { user_id, customer_id, customer_name, username } = user; + const metadata = PackTheMetadata({ user_id, customer_id, customer_name, language, + username, }); + const response: any = await this.clientService.updateConnection( + id, + body, + metadata, + ); + return response; } @Delete('/:id') // @RequireAllPermissions(Permissions.CONNECTIONS.CREATE) async deleteConnection( - @User() user, + @User() user: RequestUser, @Param('id') id: string, ): Promise { this.logger.info('/connections - Delete Connection'); - const { user_id, customer_id, customer_name } = user; + const { user_id, customer_id, customer_name, username } = user; + const metadata = PackTheMetadata({ + user_id, + customer_id, + customer_name, + username, + }); const response: any = await this.clientService.deleteConnection({ body: { id }, - info: { user_id, customer_id, customer_name }, + metadata, }); return response; @@ -104,18 +122,25 @@ export class ConnectionController { @Get() // @RequireAllPermissions(Permissions.CONNECTIONS.CREATE) async getAllConnection( - @User() user, + @User() user: RequestUser, @Headers('Dadosfera-Lang') language, @Query() queries, ): Promise { this.logger.info('/connections - Get All Connection'); - const { user_id, customer_id, customer_name } = user; + const { user_id, customer_id, customer_name, username } = user; const { search, size, page, ...filters } = queries; + const metadata = PackTheMetadata({ + user_id, + customer_id, + customer_name, + language, + username, + }); const response = await this.clientService.getAllConnection({ body: { search, size, page, filters }, - info: { user_id, customer_id, customer_name, language }, + metadata, }); return response; @@ -124,17 +149,24 @@ export class ConnectionController { @Get('/:id') // @RequireAllPermissions(Permissions.CONNECTIONS.CREATE) async getConnectionDetails( - @User() user, + @User() user: RequestUser, @Param('id') id, @Query('details') details, ): Promise { this.logger.info('/connections - Get Connection Details'); - const { user_id, customer_id, customer_name } = user; + const { user_id, customer_id, customer_name, username } = user; + const metadata = PackTheMetadata({ + user_id, + customer_id, + customer_name, + username, + details, + }); const response: any = await this.clientService.getConnectionDetails({ body: { id }, - info: { user_id, customer_id, customer_name, details }, + metadata, }); if (details === 'true') { diff --git a/src/modules/pipelines/client.service.ts b/src/modules/pipelines/client.service.ts index f65cbcc..77dbff7 100644 --- a/src/modules/pipelines/client.service.ts +++ b/src/modules/pipelines/client.service.ts @@ -62,10 +62,10 @@ export class PipelinesClientService implements OnModuleInit { return createPipelineResponse; } - async findAll(data: IIdRequest) { + async findAll(data) { this.logger.info('PipelinesClientService - FindAll'); const findAllPipelineResponse = await new Promise((resolve, reject) => { - this.pipelineService.FindAll(objectSnakeToCamel(data)).subscribe({ + this.pipelineService.FindAll(data).subscribe({ next(x) { resolve(x.pipelines); }, @@ -93,7 +93,7 @@ export class PipelinesClientService implements OnModuleInit { this.logger.info('PipelinesClientService - FindOne'); const findOnePipelineResponse = await new Promise((resolve, reject) => { - this.pipelineService.FindOne(objectSnakeToCamel(data)).subscribe({ + this.pipelineService.FindOne(data).subscribe({ next(x) { resolve(x); }, diff --git a/src/modules/pipelines/pipelines-client.ts b/src/modules/pipelines/pipelines-client.ts index ce69d96..cfca399 100644 --- a/src/modules/pipelines/pipelines-client.ts +++ b/src/modules/pipelines/pipelines-client.ts @@ -19,6 +19,7 @@ export class PipelinesClientConfiguration { : credentials.createSsl(), protoPath: PipelineProtoFilePath, loader: { + keepCase: true, enums: String, objects: true, arrays: true, diff --git a/src/modules/pipelines/pipelines.controller.ts b/src/modules/pipelines/pipelines.controller.ts index 6e3cc13..fcd225d 100644 --- a/src/modules/pipelines/pipelines.controller.ts +++ b/src/modules/pipelines/pipelines.controller.ts @@ -9,11 +9,11 @@ import { Put, } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { PipelinesClientService } from './client.service'; import { AuthenticateCondition } from 'src/authentication/authentication.decorator'; import { PERMISSIONS } from '../../authentication/permissions.enum'; import { PipelinesService } from './pipelines.service'; import { DadosferaLogger } from '@dadosfera/dadosfera-logs'; +import { RequestUser, User } from 'src/authentication/user.decorator'; @ApiTags('Pipelines') @Controller('pipelines') @@ -42,7 +42,7 @@ export class PipelinesController { constructor( @Inject(DadosferaLogger) dadosferaLogger: DadosferaLogger, - private pipelinesClientService: PipelinesClientService, + private pipelineService: PipelinesService, ) { this.logger = dadosferaLogger.logger; } @@ -60,8 +60,7 @@ export class PipelinesController { }, ); - const pipelineService = new PipelinesService(this.pipelinesClientService); - const response = await pipelineService.runPipeline({ id, info }); + const response = await this.pipelineService.runPipeline({ id, info }); return response; } @@ -79,8 +78,7 @@ export class PipelinesController { }, ); - const pipelineService = new PipelinesService(this.pipelinesClientService); - const response = await pipelineService.getPipelineStatus(body); + const response = await this.pipelineService.getPipelineStatus(body); return response; } @@ -93,8 +91,10 @@ export class PipelinesController { {}, ); - const pipelineService = new PipelinesService(this.pipelinesClientService); - const response = await pipelineService.getPipelineLogsMessages(id, details); + const response = await this.pipelineService.getPipelineLogsMessages( + id, + details, + ); return response; } @@ -103,21 +103,25 @@ export class PipelinesController { async create(@Body() createPipelineDto) { this.logger.info(process.env.DEV_URL + `/pipelines ON CREATE ROUTE`); - const pipelineService = new PipelinesService(this.pipelinesClientService); - const response = await pipelineService.create(createPipelineDto); + const response = await this.pipelineService.create(createPipelineDto); return response; } @Get() - async findAll(@Body() data) { + async findAll(@User() user: RequestUser) { this.logger.info(process.env.DEV_URL + `/pipeline ON Find All ROUTE`, { - user: data.info.user_id, - customer: data.info.customer, + user: user.user_id, + customer: user.customer_id, }); - const pipelineService = new PipelinesService(this.pipelinesClientService); - const response = await pipelineService.findAll(data); + const { customer_id, user_id, customer_name } = user; + + const response = await this.pipelineService.findAll({ + customer_name, + customer_id, + user_id, + }); return response; } @@ -127,8 +131,7 @@ export class PipelinesController { const { id } = params; this.logger.info(process.env.DEV_URL + `/pipeline/${id} ON Find One ROUTE`); - const pipelineService = new PipelinesService(this.pipelinesClientService); - const response = await pipelineService.findOne({ id, ...data }); + const response = await this.pipelineService.findOne({ id, ...data }); return response; } @@ -141,8 +144,11 @@ export class PipelinesController { this.logger.info(process.env.DEV_URL + `/pipeline/${id} ON UPDATE ROUTE`); - const pipelineService = new PipelinesService(this.pipelinesClientService); - const response = await pipelineService.update(id, updatePipelineDto, info); + const response = await this.pipelineService.update( + id, + updatePipelineDto, + info, + ); return response; } @@ -152,8 +158,7 @@ export class PipelinesController { const { id } = params; this.logger.info(process.env.DEV_URL + `/pipeline/${id} ON DELETE ROUTE`); - const pipelineService = new PipelinesService(this.pipelinesClientService); - const response = await pipelineService.remove({ id, ...data }); + const response = await this.pipelineService.remove({ id, ...data }); return response; } diff --git a/src/modules/pipelines/pipelines.service.ts b/src/modules/pipelines/pipelines.service.ts index c4d50b7..d6aecd8 100644 --- a/src/modules/pipelines/pipelines.service.ts +++ b/src/modules/pipelines/pipelines.service.ts @@ -43,7 +43,9 @@ export class PipelinesService { async findAll(data) { try { - const findAllPipelineResponse = await this.pipelineClient.findAll(data); + const findAllPipelineResponse = await this.pipelineClient.findAll({ + info: data, + }); const pipelines = objectCamelToSnake(findAllPipelineResponse); pipelines.forEach((pipeline) => { diff --git a/src/modules/pipelinesV2/interfaces.d.ts b/src/modules/pipelinesV2/interfaces.d.ts new file mode 100644 index 0000000..2fd5db3 --- /dev/null +++ b/src/modules/pipelinesV2/interfaces.d.ts @@ -0,0 +1,36 @@ +import { Info } from 'protospack/dist/lib/interfaces'; + +export interface ICreatePipelineDto { + input: IdRequest; + transformations: IdRequest[]; + output: IdRequest; + tags: string[]; + name: string; + description: string; + info: Info; +} + +export interface IdRequest { + id: string; +} + +export interface IIdRequest { + id: string; + info: Info; +} + +export interface IUpdatePipelineRequest { + input: IdRequest; + transformations: IdRequest[]; + output: IdRequest; + tags: string[]; + name: string; + description: string; + id: string; + info: Info; +} + +export interface IGetPipelineLogsRequest { + id: string; + details: string; +} diff --git a/src/modules/pipelinesV2/pipelines-client.ts b/src/modules/pipelinesV2/pipelines-client.ts new file mode 100644 index 0000000..0ddce5a --- /dev/null +++ b/src/modules/pipelinesV2/pipelines-client.ts @@ -0,0 +1,36 @@ +import { + ClientsProviderAsyncOptions, + GrpcOptions, + Transport, +} from '@nestjs/microservices'; +import { + ProtoPackages, + ProtoPaths, +} from '@dadosfera/protospack-v2/dist/lib/PipelineV2'; +import { credentials } from '@grpc/grpc-js'; + +export class PipelinesClientConfiguration { + public name = 'PipelinesClientConfiguration'; + private config: GrpcOptions = { + transport: Transport.GRPC, + options: { + url: process.env.PIFACTORY_URL, + package: [ProtoPackages.ReadPackage, ProtoPackages.WritePackage], + credentials: + process.env.LOCAL_ENV || process.env.ENV === 'local' + ? undefined + : credentials.createSsl(), + protoPath: [ProtoPaths.ReadFilePath, ProtoPaths.WriteFilePath], + loader: { + keepCase: true, + enums: String, + objects: true, + arrays: true, + }, + }, + }; + providerOptions: ClientsProviderAsyncOptions = { + name: this.name, + ...this.config, + }; +} diff --git a/src/modules/pipelinesV2/pipelines.controller.ts b/src/modules/pipelinesV2/pipelines.controller.ts new file mode 100644 index 0000000..9fc04c1 --- /dev/null +++ b/src/modules/pipelinesV2/pipelines.controller.ts @@ -0,0 +1,177 @@ +import { + Body, + Controller, + Delete, + Get, + Inject, + Param, + Post, + Put, + Headers, +} from '@nestjs/common'; +import { ApiTags } from '@nestjs/swagger'; +import { AuthenticateCondition } from 'src/authentication/authentication.decorator'; +import { PERMISSIONS } from '../../authentication/permissions.enum'; +import { PipelinesService } from './pipelines.service'; +import { DadosferaLogger } from '@dadosfera/dadosfera-logs'; +import { Messages } from '@dadosfera/protospack-v2/dist/lib/PipelineV2'; +import { RequestUser, User } from 'src/authentication/user.decorator'; +import { PackTheMetadata } from 'src/utils/ PackTheMetadata'; + +import { PipelinesService as OldPipelineService } from 'src/modules/pipelines/pipelines.service'; +@ApiTags('Pipelines') +@Controller('pipelinesV2') +@AuthenticateCondition((req, user) => { + let action; + + switch (req.method) { + case 'POST': + action = 'CREATE'; + break; + + case 'PUT': + action = 'UPDATE'; + break; + + default: + action = req.method; + } + + return user.permissions.includes( + PERMISSIONS.PIPELINE.permissions[action].seqid, + ); +}) +export class PipelinesController { + logger: DadosferaLogger; + constructor( + @Inject(DadosferaLogger) + dadosferaLogger: DadosferaLogger, + private pipelinesClientService: PipelinesService, + private oldPipelinesService: OldPipelineService, + ) { + this.logger = dadosferaLogger.logger; + } + + @Post() + async create( + @Headers('Dadosfera-Lang') language, + @User() user: RequestUser, + @Body() createPipelineDto: Messages.PipelineV2CreateRequest, + ) { + this.logger.info(process.env.DEV_URL + `/pipelines ON CREATE ROUTE`); + const { customer_id, customer_name, username, user_id } = user; + const metadata = PackTheMetadata({ + customer_id, + customer_name, + username, + user_id, + language, + }); + + const response = await this.pipelinesClientService.create( + createPipelineDto, + metadata, + ); + + return response; + } + + @Get() + async findAll( + @User() user: RequestUser, + @Headers('Dadosfera-Lang') language, + @Body() data, + ) { + this.logger.info(process.env.DEV_URL + `/pipeline ON Find All ROUTE`, { + user: data.info.user_id, + customer: data.info.customer, + }); + + const { customer_id, customer_name, user_id, username } = user; + const metadata = PackTheMetadata({ + customer_id, + customer_name, + user_id, + username, + language, + }); + + const response = await this.pipelinesClientService.findAll(data, metadata); + const oldResponse = await this.oldPipelinesService.findAll({ + customer_name, + user_id, + customer_id, + }); + + return { + pipelines: [...response.pipelines, ...oldResponse.pipelines], + }; + } + + @Get('/:id') + async findOne( + @Headers('Dadosfera-Lang') language, + @User() user: RequestUser, + @Param('id') id, + ): Promise { + this.logger.info(process.env.DEV_URL + `/pipeline/${id} ON Find One ROUTE`); + + const { customer_id, customer_name, user_id, username } = user; + + const metadata = PackTheMetadata({ + customer_id, + customer_name, + user_id, + username, + language, + }); + + let result: any = []; + + console.log(id.split('_').length > 1); + + if (id.split('_').length > 1) { + result = await this.pipelinesClientService.findOne({ id }, metadata); + + Object.assign(result.pipeline, { + transformations: JSON.parse(result.pipeline.transformations), + config: { + cron: result.pipeline.config.cron, + tables: JSON.parse(result.pipeline.config.tables), + }, + }); + } else { + result = await this.oldPipelinesService.findOne({ + id, + info: { customer_id, customer: customer_name, user_id }, + }); + } + return result; + } + + @Put('/:id') + async update(@Body() updatePipelineDto, @Param('id') id) { + const { info } = updatePipelineDto; + delete updatePipelineDto.info; + + this.logger.info(process.env.DEV_URL + `/pipeline/${id} ON UPDATE ROUTE`); + + const response = await this.pipelinesClientService.update({ + ...updatePipelineDto, + info, + id, + }); + + return response; + } + + @Delete(':id') + async delete(@Body() data, @Param() params) { + const { id } = params; + this.logger.info(process.env.DEV_URL + `/pipeline/${id} ON DELETE ROUTE`); + + const response = await this.pipelinesClientService.remove({ id, ...data }); + + return response; + } +} diff --git a/src/modules/pipelinesV2/pipelines.module.ts b/src/modules/pipelinesV2/pipelines.module.ts new file mode 100644 index 0000000..f91c99c --- /dev/null +++ b/src/modules/pipelinesV2/pipelines.module.ts @@ -0,0 +1,23 @@ +import { Module } from '@nestjs/common'; +import { ClientsModule } from '@nestjs/microservices'; +import { DadosferaLogger } from '@dadosfera/dadosfera-logs'; + +import { PipelinesController } from './pipelines.controller'; +import { PipelinesService } from './pipelines.service'; + +import { PipelinesClientConfiguration } from './pipelines-client'; + +import { PipelinesModule as OldPipelineModule } from 'src/modules/pipelines/pipelines.module'; + +const client = new PipelinesClientConfiguration(); + +@Module({ + imports: [ + ClientsModule.register([client.providerOptions]), + OldPipelineModule, + ], + controllers: [PipelinesController], + providers: [PipelinesService, DadosferaLogger], + exports: [PipelinesService], +}) +export class PipelinesV2Module {} diff --git a/src/modules/pipelinesV2/pipelines.service.ts b/src/modules/pipelinesV2/pipelines.service.ts new file mode 100644 index 0000000..137961e --- /dev/null +++ b/src/modules/pipelinesV2/pipelines.service.ts @@ -0,0 +1,144 @@ +import { + BadRequestException, + Inject, + InternalServerErrorException, + OnModuleInit, +} from '@nestjs/common'; +import { ClientGrpc, Payload } from '@nestjs/microservices'; +import { + Messages, + WriteService, + ReadService, + ProtoServices, +} from '@dadosfera/protospack-v2/dist/lib/PipelineV2'; +import { lastValueFrom } from 'rxjs'; + +import { DadosferaLogger } from '@dadosfera/dadosfera-logs'; +import { PipelinesClientConfiguration } from './pipelines-client'; + +export class PipelinesService implements OnModuleInit { + logger: DadosferaLogger; + pipelineWriteService: WriteService.PipelineV2WriteService; + pipelineReadService: ReadService.PipelineV2ReadService; + constructor( + @Inject(DadosferaLogger) + dadosferaLogger: DadosferaLogger, + @Inject(PipelinesClientConfiguration.name) + private readonly grpcClient: ClientGrpc, + ) { + this.logger = dadosferaLogger.logger; + } + + onModuleInit() { + this.pipelineReadService = + this.grpcClient.getService( + ProtoServices.PipelineV2ReadService, + ); + + this.pipelineWriteService = + this.grpcClient.getService( + ProtoServices.PipelineV2WriteService, + ); + } + + async create( + @Payload() createPipelineDto: Messages.PipelineV2CreateRequest, + metadata, + ): Promise { + this.logger.info('PipelinesClientService - Create'); + const createPipelineResponse = await lastValueFrom( + this.pipelineWriteService.PipelineV2Create(createPipelineDto, metadata), + ) + .then((res) => { + this.logger.info('Done'); + return res; + }) + .catch((error: { details: string }) => { + if (error.details.includes('INVALID_REQUEST')) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [errorType, message] = error.details.split('|'); + throw new BadRequestException(message); + } + throw new InternalServerErrorException(error.details); + }); + + return createPipelineResponse; + } + + async findAll( + data: Messages.PipelineV2FindAllRequest, + metadata, + ): Promise { + this.logger.info('PipelinesClientService - FindAll'); + const findAllPipelineResponse = await lastValueFrom( + this.pipelineReadService.PipelineV2FindAll(data, metadata), + ) + .then((res) => { + this.logger.info('Done'); + return res; + }) + .catch((err) => { + this.logger.error(err.message); + throw new Error(err); + }); + + return findAllPipelineResponse; + } + + async findOne( + data: Messages.PipelineV2FindOneRequest, + metadata, + ): Promise { + this.logger.info('PipelinesClientService - FindOne'); + + const findOnePipelineResponse = await lastValueFrom( + this.pipelineReadService.PipelineV2FindOne(data, metadata), + ) + .then((res) => { + this.logger.info('Done'); + return res; + }) + .catch((err) => { + this.logger.error(err.message); + throw new Error(err); + }); + + return findOnePipelineResponse; + } + + async update(UpdatePipelineRequest: Messages.PipelineV2UpdateRequest) { + this.logger.info('PipelinesClientService - Update'); + + const updatePipelineResponse = await lastValueFrom( + this.pipelineWriteService.PipelineV2Update(UpdatePipelineRequest), + ) + .then((res) => { + this.logger.info('Done'); + return res; + }) + .catch((err) => { + this.logger.error(err.message); + throw new Error(err); + }); + + return updatePipelineResponse; + } + + async remove(data: Messages.PipelineV2RemoveRequest) { + this.logger.info('PipelinesClientService - Remove'); + + const removePipelineResponse = await lastValueFrom( + this.pipelineWriteService.PipelineV2Remove(data), + ) + .then((res) => { + this.logger.info('Done'); + return res; + }) + .catch((err) => { + this.logger.error(err.message); + throw new Error(err); + }); + + return removePipelineResponse; + } +} diff --git a/src/utils/ PackTheMetadata.ts b/src/utils/ PackTheMetadata.ts new file mode 100644 index 0000000..72f0da7 --- /dev/null +++ b/src/utils/ PackTheMetadata.ts @@ -0,0 +1,22 @@ +import { Metadata } from '@grpc/grpc-js'; + +interface Info { + customer_id?: string; + customer_name?: string; + username?: string; + user_id?: string; + language?: string; + details?: string; +} + +export const PackTheMetadata = (info: Info): Metadata => { + const meta = new Metadata(); + meta.add('customer_id', info.customer_id); + meta.add('customer_name', info.customer_name); + meta.add('user_id', info.user_id); + meta.add('username', info.username); + meta.add('details', info.details); + meta.add('language', info.language); + + return meta; +}; diff --git a/swagger.txt b/swagger.txt index b26aae3..5605266 100644 --- a/swagger.txt +++ b/swagger.txt @@ -1 +1 @@ -"{\"openapi\":\"3.0.0\",\"paths\":{\"/connectors\":{\"post\":{\"operationId\":\"ConnectorController_uploadConnector\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"multipart/form-data\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateConnectorDto\"}}}},\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]},\"get\":{\"operationId\":\"ConnectorController_getAllConnectors\",\"parameters\":[{\"name\":\"search\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}},{\"name\":\"language\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}},{\"name\":\"size\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}},{\"name\":\"page\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/uploads\":{\"post\":{\"operationId\":\"ConnectorController_uploadFile\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}}}}}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/multiple-connectors-upload\":{\"post\":{\"operationId\":\"ConnectorController_uploadConnectorsFile\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/tags\":{\"get\":{\"operationId\":\"ConnectorController_getConnectorsTags\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/{plugin}\":{\"get\":{\"operationId\":\"ConnectorController_getConnector\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}},{\"name\":\"version\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]},\"put\":{\"operationId\":\"ConnectorController_updateConnector\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"multipart/form-data\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateDto\"}}}},\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]},\"delete\":{\"operationId\":\"ConnectorController_deleteConnector\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/DeleteConnectorDto\"}}}},\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/{plugin}/details\":{\"get\":{\"operationId\":\"ConnectorController_getConnectorDetails\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}},{\"name\":\"version\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/{plugin}/add-tag\":{\"put\":{\"operationId\":\"ConnectorController_addTagOnConnector\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/AddTagDto\"}}}},\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/{plugin}/remove-tag\":{\"put\":{\"operationId\":\"ConnectorController_removeTagOnConnector\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/RemoveTagDto\"}}}},\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/auth/sign-in\":{\"post\":{\"operationId\":\"AuthController_signIn\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/refresh-access-token\":{\"post\":{\"operationId\":\"AuthController_refreshAccessToken\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/change-password\":{\"post\":{\"operationId\":\"AuthController_changePassword\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/reset-password\":{\"post\":{\"operationId\":\"AuthController_resetPassword\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/verify-reset-password-code\":{\"post\":{\"operationId\":\"AuthController_verifyResetPasswordCode\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/confirm-reset-password\":{\"post\":{\"operationId\":\"AuthController_confirmResetPassword\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/enable-totp\":{\"post\":{\"operationId\":\"AuthController_enableTotpMFA\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/disable-totp\":{\"post\":{\"operationId\":\"AuthController_disableTotpMFA\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/dismiss-totp\":{\"post\":{\"operationId\":\"AuthController_dismissTotpMFA\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/verify-totp\":{\"post\":{\"operationId\":\"AuthController_verifyTotp\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/permissions\":{\"get\":{\"operationId\":\"PermissionsController_getPublicPermissions\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetPublicPermissionsRes\"}}}}},\"tags\":[\"Permissions\"]}},\"/terms-of-use/token\":{\"get\":{\"operationId\":\"TermsOfUseController_getToken\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"TermsOfUse\"]}},\"/terms-of-use/accept\":{\"post\":{\"operationId\":\"TermsOfUseController_accept\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"TermsOfUse\"]}},\"/connections\":{\"post\":{\"operationId\":\"ConnectionController_createConnection\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateConnectionDto\"}}}},\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionRes\"}}}}},\"tags\":[\"connections\"],\"security\":[{\"bearer\":[]}]},\"get\":{\"operationId\":\"ConnectionController_getAllConnection\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionsRes\"}}}}},\"tags\":[\"connections\"],\"security\":[{\"bearer\":[]}]}},\"/connections/{id}\":{\"put\":{\"operationId\":\"ConnectionController_updateConnection\",\"parameters\":[{\"name\":\"Dadosfera-Lang\",\"required\":true,\"in\":\"header\",\"schema\":{\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateConnectionDto\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionRes\"}}}}},\"tags\":[\"connections\"],\"security\":[{\"bearer\":[]}]},\"delete\":{\"operationId\":\"ConnectionController_deleteConnection\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionRes\"}}}}},\"tags\":[\"connections\"],\"security\":[{\"bearer\":[]}]},\"get\":{\"operationId\":\"ConnectionController_getConnectionDetails\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionDetailsRes\"}}}}},\"tags\":[\"connections\"],\"security\":[{\"bearer\":[]}]}},\"/network-config\":{\"get\":{\"operationId\":\"NetworkConfigController_findAllNetworkConfigs\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FindAllNetworkConfigsRes\"}}}}},\"tags\":[\"Network Config\"]},\"post\":{\"operationId\":\"NetworkConfigController_createNetworkConfigs\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"multipart/form-data\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateNetworkConfigReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateNetworkConfigRes\"}}}},\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateNetworkConfigRes\"}}}}},\"tags\":[\"Network Config\"]}},\"/network-config/{id}\":{\"get\":{\"operationId\":\"NetworkConfigController_findNetworkConfigById\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FindAllNetworkConfigsRes\"}}}}},\"tags\":[\"Network Config\"]},\"patch\":{\"operationId\":\"NetworkConfigController_updateNetworkConfig\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateNetworkConfigReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateNetworkConfigRes\"}}}}},\"tags\":[\"Network Config\"]},\"delete\":{\"operationId\":\"NetworkConfigController_deleteNetworkConfig\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/DeleteNetworkConfigRes\"}}}}},\"tags\":[\"Network Config\"]}},\"/network-config/{id}/details\":{\"get\":{\"operationId\":\"NetworkConfigController_findNetworkConfigByIdDetails\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FindAllNetworkConfigsRes\"}}}}},\"tags\":[\"Network Config\"]}},\"/connection-test/ping\":{\"post\":{\"operationId\":\"ConnectionTestController_connectionTestPing\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestPingReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestPingRes\"}}}}},\"tags\":[\"Connection Test\"]}},\"/connection-test/credentials\":{\"post\":{\"operationId\":\"ConnectionTestController_connectionTestCredentials\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestCredentialsReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestCredentialsRes\"}}}}},\"tags\":[\"Connection Test\"]}},\"/connection-test/schemas\":{\"post\":{\"operationId\":\"ConnectionTestController_connectionTestListSchemas\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestListSchemasReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestListSchemasRes\"}}}}},\"tags\":[\"Connection Test\"]}},\"/connection-test/tables\":{\"post\":{\"operationId\":\"ConnectionTestController_connectionTestListTables\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestListTablesReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestListTablesRes\"}}}}},\"tags\":[\"Connection Test\"]}},\"/connection-test/table-metadata\":{\"post\":{\"operationId\":\"ConnectionTestController_getTableMetadata\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetTableMetadataReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetTableMetadataRes\"}}}}},\"tags\":[\"Connection Test\"]}},\"/pipelines/start/{id}\":{\"post\":{\"operationId\":\"PipelinesController_activate\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]}},\"/pipelines/{id}/status\":{\"get\":{\"operationId\":\"PipelinesController_getPipelineStatus\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]}},\"/pipelines/{id}/{details}\":{\"get\":{\"operationId\":\"PipelinesController_getPipelineLogs\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]}},\"/pipelines\":{\"post\":{\"operationId\":\"PipelinesController_create\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]},\"get\":{\"operationId\":\"PipelinesController_findAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"Pipelines\"]}},\"/pipelines/{id}\":{\"get\":{\"operationId\":\"PipelinesController_findOne\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]},\"put\":{\"operationId\":\"PipelinesController_update\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]},\"delete\":{\"operationId\":\"PipelinesController_delete\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]}},\"/transformations\":{\"post\":{\"operationId\":\"TransformationsController_create\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\"}},\"tags\":[\"Transformations\"]},\"get\":{\"operationId\":\"TransformationsController_findAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"Transformations\"]}},\"/transformations/{id}\":{\"get\":{\"operationId\":\"TransformationsController_findOne\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Transformations\"]},\"put\":{\"operationId\":\"TransformationsController_update\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Transformations\"]},\"delete\":{\"operationId\":\"TransformationsController_delete\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Transformations\"]}},\"/health\":{\"get\":{\"operationId\":\"HealthController_check\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"Health\"]}},\"/catalog/all\":{\"get\":{\"operationId\":\"CatalogController_catalogAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data_apps\":{\"get\":{\"operationId\":\"CatalogController_dataAppsAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data_apps/{id}\":{\"delete\":{\"operationId\":\"CatalogController_dataAppsOne\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/dashboard-metabase\":{\"get\":{\"operationId\":\"CatalogController_getAllDashboardMetabase\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/dashboard-metabase/{id}\":{\"get\":{\"operationId\":\"CatalogController_getOneDashboardMetabase\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-metadata\":{\"get\":{\"operationId\":\"CatalogController_getAllTableMetadata\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-metadata/{id}\":{\"delete\":{\"operationId\":\"CatalogController_deleteOneTableMetadata\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/column-metadata\":{\"get\":{\"operationId\":\"CatalogController_getOneColumnMetadata\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/column-metadata/{id}\":{\"delete\":{\"operationId\":\"CatalogController_deleteOneColumnMetadata\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-preview\":{\"get\":{\"operationId\":\"CatalogController_getOneDataPreview\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-status\":{\"get\":{\"operationId\":\"CatalogController_createDataStatus\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-description\":{\"get\":{\"operationId\":\"CatalogController_getDataDescription\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"post\":{\"operationId\":\"CatalogController_createDataDescription\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-docs\":{\"get\":{\"operationId\":\"CatalogController_getDataDocs\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"post\":{\"operationId\":\"CatalogController_createDataDocs\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-rating\":{\"get\":{\"operationId\":\"CatalogController_getDataRating\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"post\":{\"operationId\":\"CatalogController_createDataRating\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/summary-rating/{id}\":{\"get\":{\"operationId\":\"CatalogController_getSummaryRating\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"Catalog\"]}},\"/catalog/data-comment\":{\"get\":{\"operationId\":\"CatalogController_getDataComment\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"post\":{\"operationId\":\"CatalogController_createDataComment\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-review\":{\"get\":{\"operationId\":\"CatalogController_getDataReview\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/tags\":{\"post\":{\"operationId\":\"CatalogController_createTags\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"get\":{\"operationId\":\"CatalogController_findAllTags\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/tags/{id}\":{\"delete\":{\"operationId\":\"CatalogController_deleteTags\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-tags\":{\"post\":{\"operationId\":\"CatalogController_createTableTags\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"get\":{\"operationId\":\"CatalogController_getAllTableTags\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-tags/{id}\":{\"delete\":{\"operationId\":\"CatalogController_deleteTableTags\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-rules\":{\"get\":{\"operationId\":\"CatalogController_getTableRules\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-rules/{id}\":{\"delete\":{\"operationId\":\"CatalogController_deleteTableRules\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/users\":{\"get\":{\"operationId\":\"UsersController_getAllUsersByCustomerId\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"List of users of a customer\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetAllUsersByCustomerIdRes\"}}}}},\"tags\":[\"Users\"]},\"post\":{\"operationId\":\"UsersController_createUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateUserReq\"}}}},\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateUserRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/hierarchies\":{\"get\":{\"operationId\":\"UsersController_getAllHierarchies\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetAllHierarchiesRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/departments\":{\"get\":{\"operationId\":\"UsersController_getAllDepartments\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetAllDepartmentsRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/jobTitles\":{\"get\":{\"operationId\":\"UsersController_getAllJobTitles\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetAllDepartmentsRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/{id}\":{\"get\":{\"operationId\":\"UsersController_findOneById\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UserByCustomer\"}}}}},\"tags\":[\"Users\"]},\"delete\":{\"operationId\":\"UsersController_deleteUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/DeleteUserRes\"}}}}},\"tags\":[\"Users\"]},\"patch\":{\"operationId\":\"UsersController_updateUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateUserReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateUserRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/batch\":{\"post\":{\"operationId\":\"UsersController_batchCreateUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/BatchCreateUserReq\"}}}},\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/BatchCreateUserRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/{id}/resend-invite\":{\"post\":{\"operationId\":\"UsersController_resendInvite\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Users\"]}},\"/users/roles\":{\"patch\":{\"operationId\":\"UsersController_setUserRoles\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetUserRolesReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetUserRolesRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/role\":{\"put\":{\"operationId\":\"UsersController_assignRoleToUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/AssignRoleToUserReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Users\"]},\"delete\":{\"operationId\":\"UsersController_unassignRoleToUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Users\"]}},\"/roles\":{\"get\":{\"operationId\":\"RolesController_searchRoles\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"permissionId\",\"required\":false,\"in\":\"query\",\"schema\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},{\"name\":\"getUsers\",\"required\":false,\"in\":\"query\",\"schema\":{\"enum\":[\"true\",\"false\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetRolesByCustomerRes\"}}}}},\"tags\":[\"Roles\"]},\"post\":{\"operationId\":\"RolesController_createRole\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateRoleReq\"}}}},\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateRoleRes\"}}}}},\"tags\":[\"Roles\"]}},\"/roles/permissions\":{\"put\":{\"operationId\":\"RolesController_grantPermissionsToRole\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GrantPermissionsToRoleReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GrantPermissionsToRoleRes\"}}}}},\"tags\":[\"Roles\"]},\"delete\":{\"operationId\":\"RolesController_revokePermissionsFromRole\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/RevokePermissionsFromRoleReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/RevokePermissionsFromRoleRes\"}}}}},\"tags\":[\"Roles\"]},\"patch\":{\"operationId\":\"RolesController_setRolePermissions\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetRolePermissionsReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetRolePermissionsRes\"}}}}},\"tags\":[\"Roles\"]}},\"/roles/users\":{\"patch\":{\"operationId\":\"RolesController_setRoleUsers\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetRoleUsersReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetRoleUsersRes\"}}}}},\"tags\":[\"Roles\"]}},\"/roles/{id}\":{\"get\":{\"operationId\":\"RolesController_getRoleById\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/RoleDto\"}}}}},\"tags\":[\"Roles\"]},\"delete\":{\"operationId\":\"RolesController_deleteRole\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Roles\"]},\"patch\":{\"operationId\":\"RolesController_updateRole\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateRoleReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateRoleRes\"}}}}},\"tags\":[\"Roles\"]}},\"/inputs/available-entities/{plugin}\":{\"get\":{\"operationId\":\"InputsController_getAvailableEntities\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetAvailableEntitiesRes\"}}}}},\"tags\":[\"inputs\"]}},\"/inputs/test-connection\":{\"post\":{\"operationId\":\"InputsController_testConnection\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/TestConnectionReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/TestConnectionRes\"}}}},\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]}},\"/inputs/test-connection/get-columns\":{\"post\":{\"operationId\":\"InputsController_getColumns\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/TestConnectionGetColumnsReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/TestConnectionGetColumnsRes\"}}}},\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]}},\"/inputs\":{\"post\":{\"operationId\":\"InputsController_create\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateInputReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Input\"}}}},\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]},\"get\":{\"operationId\":\"InputsController_findAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"inputs\"]}},\"/inputs/{id}\":{\"post\":{\"operationId\":\"InputsController_reCreate\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateInputReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Input\"}}}},\"201\":{\"description\":\"\"}},\"tags\":[\"inputs\"]},\"get\":{\"operationId\":\"InputsController_findOne\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]},\"patch\":{\"operationId\":\"InputsController_update\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]},\"delete\":{\"operationId\":\"InputsController_delete\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]}},\"/oauth/hubspot\":{\"get\":{\"operationId\":\"OauthController_oauthHubspot\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/hubspot/callback\":{\"get\":{\"operationId\":\"OauthController_oauthHubspotCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/oauth/googleads\":{\"get\":{\"operationId\":\"OauthController_oauthGoogleAds\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/googleads/callback\":{\"get\":{\"operationId\":\"OauthController_oauthGoogleAdsCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/oauth/google-sheets\":{\"get\":{\"operationId\":\"OauthController_oauthGoogleSheets\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/google-sheets/callback\":{\"get\":{\"operationId\":\"OauthController_oauthGoogleSheetsCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/oauth/facebook\":{\"get\":{\"operationId\":\"OauthController_oauthFacebook\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/facebook/callback\":{\"get\":{\"operationId\":\"OauthController_oauthFacebookCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/oauth/mailchimp\":{\"get\":{\"operationId\":\"OauthController_oauthMailchimp\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/mailchimp/callback\":{\"get\":{\"operationId\":\"OauthController_oauthMailchimpCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/oauth/salesforce\":{\"get\":{\"operationId\":\"OauthController_oauthSalesforce\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/salesforce/callback\":{\"get\":{\"operationId\":\"OauthController_oauthSalesforceCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}}},\"info\":{\"title\":\"Maestro\",\"description\":\"Documentation for Maestro gateway\",\"version\":\"5.9.2022 - 10:21\",\"contact\":{}},\"tags\":[],\"servers\":[],\"components\":{\"securitySchemes\":{\"bearer\":{\"scheme\":\"bearer\",\"bearerFormat\":\"JWT\",\"type\":\"http\"}},\"schemas\":{\"CreateConnectorDto\":{\"type\":\"object\",\"properties\":{\"file\":{\"type\":\"string\",\"format\":\"binary\"},\"connector\":{\"type\":\"string\"}},\"required\":[\"file\",\"connector\"]},\"UpdateDto\":{\"type\":\"object\",\"properties\":{\"file\":{\"type\":\"string\",\"format\":\"binary\"},\"version\":{\"type\":\"string\"},\"category\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"image\":{\"type\":\"string\"},\"docs\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"options\":{\"type\":\"object\",\"description\":\"skip_select_entities: boolean skip_select_columns: boolean;\"},\"connection_controls\":{\"type\":\"array\",\"items\":{\"properties\":{}}}},\"required\":[\"version\"]},\"AddTagDto\":{\"type\":\"object\",\"properties\":{\"tags\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"tags\"]},\"RemoveTagDto\":{\"type\":\"object\",\"properties\":{\"tags\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"tags\"]},\"DeleteConnectorDto\":{\"type\":\"object\",\"properties\":{\"version\":{\"type\":\"string\"}},\"required\":[\"version\"]},\"PermissionGroupPermission\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"id\":{\"type\":\"number\"}},\"required\":[\"name\",\"id\"]},\"PermissionGroup\":{\"type\":\"object\",\"properties\":{\"title\":{\"type\":\"string\"},\"permissions\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PermissionGroupPermission\"}}},\"required\":[\"title\",\"permissions\"]},\"GetPublicPermissionsRes\":{\"type\":\"object\",\"properties\":{\"permissionGroups\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PermissionGroup\"}}},\"required\":[\"permissionGroups\"]},\"CreateConnectionDto\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"network_config_id\":{\"type\":\"string\"},\"properties\":{\"type\":\"object\"},\"connector_id\":{\"type\":\"string\"},\"connector_name\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"image_url\":{\"type\":\"string\"}},\"required\":[\"name\",\"description\",\"type\",\"properties\",\"connector_id\",\"connector_name\",\"plugin\",\"image_url\"]},\"ConnectionToCatalogDto\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"customer_id\":{\"type\":\"string\"},\"updated_at\":{\"type\":\"string\"},\"created_at\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"network_config_id\":{\"type\":\"string\"},\"connector_id\":{\"type\":\"string\"},\"connector_name\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"image_url\":{\"type\":\"string\"}},\"required\":[\"id\",\"customer_id\",\"updated_at\",\"created_at\",\"name\",\"description\",\"type\",\"connector_id\",\"connector_name\",\"plugin\",\"image_url\"]},\"ConnectionRes\":{\"type\":\"object\",\"properties\":{\"connection\":{\"$ref\":\"#/components/schemas/ConnectionToCatalogDto\"},\"message\":{\"type\":\"string\"}},\"required\":[\"connection\",\"message\"]},\"UpdateConnectionDto\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"network_config_id\":{\"type\":\"string\"},\"properties\":{\"type\":\"object\"}},\"required\":[\"name\",\"description\",\"properties\"]},\"ConnectionsRes\":{\"type\":\"object\",\"properties\":{\"connections\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/ConnectionToCatalogDto\"}},\"message\":{\"type\":\"string\"}},\"required\":[\"connections\",\"message\"]},\"ConnectionDto\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"customer_id\":{\"type\":\"string\"},\"customer_name\":{\"type\":\"string\"},\"user_id\":{\"type\":\"string\"},\"updated_at\":{\"type\":\"string\"},\"created_at\":{\"type\":\"string\"},\"pipelines\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"network_config_id\":{\"type\":\"string\"},\"properties\":{\"type\":\"object\"},\"connector_id\":{\"type\":\"string\"},\"connector_name\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"image_url\":{\"type\":\"string\"}},\"required\":[\"id\",\"customer_id\",\"customer_name\",\"user_id\",\"updated_at\",\"created_at\",\"pipelines\",\"name\",\"description\",\"type\",\"properties\",\"connector_id\",\"connector_name\",\"plugin\",\"image_url\"]},\"ConnectionDetailsRes\":{\"type\":\"object\",\"properties\":{\"connection\":{\"$ref\":\"#/components/schemas/ConnectionDto\"},\"message\":{\"type\":\"string\"}},\"required\":[\"connection\",\"message\"]},\"NetworkConfigToCatalogDto\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"customer_id\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"created_at\":{\"type\":\"string\"},\"updated_at\":{\"type\":\"string\"},\"network_type_id\":{\"type\":\"string\"},\"network_type_name\":{\"type\":\"string\"}},\"required\":[\"id\",\"customer_id\",\"plugin\",\"type\",\"name\",\"description\",\"created_at\",\"updated_at\",\"network_type_id\",\"network_type_name\"]},\"FindAllNetworkConfigsRes\":{\"type\":\"object\",\"properties\":{\"network_configs\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/NetworkConfigToCatalogDto\"}},\"message\":{\"type\":\"string\"}},\"required\":[\"network_configs\",\"message\"]},\"CreateNetworkConfigReq\":{\"type\":\"object\",\"properties\":{\"network_type_id\":{\"type\":\"string\"},\"network_type_name\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"ovpn_file\":{\"type\":\"string\",\"format\":\"binary\"}},\"required\":[\"network_type_id\",\"network_type_name\",\"name\",\"description\",\"ovpn_file\"]},\"CreateNetworkConfigRes\":{\"type\":\"object\",\"properties\":{\"network_config\":{\"$ref\":\"#/components/schemas/NetworkConfigToCatalogDto\"}},\"required\":[\"network_config\"]},\"UpdateNetworkConfigReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"}},\"required\":[\"name\",\"description\"]},\"UpdateNetworkConfigRes\":{\"type\":\"object\",\"properties\":{\"network_config\":{\"$ref\":\"#/components/schemas/NetworkConfigToCatalogDto\"}},\"required\":[\"network_config\"]},\"DeleteNetworkConfigRes\":{\"type\":\"object\",\"properties\":{\"message\":{\"type\":\"string\"}},\"required\":[\"message\"]},\"ConnectionTestPingReq\":{\"type\":\"object\",\"properties\":{\"plugin\":{\"type\":\"string\"},\"host\":{\"type\":\"string\"},\"port\":{\"type\":\"number\"},\"network_config_id\":{\"type\":\"string\"},\"connection_id\":{\"type\":\"string\"}}},\"ConnectionTestPingRes\":{\"type\":\"object\",\"properties\":{\"operation_result\":{\"type\":\"boolean\"}},\"required\":[\"operation_result\"]},\"ConnectionTestCredentialsProperties\":{\"type\":\"object\",\"properties\":{\"host\":{\"type\":\"string\"},\"port\":{\"type\":\"string\"},\"username\":{\"type\":\"string\"},\"password\":{\"type\":\"string\"},\"database\":{\"type\":\"string\"}},\"required\":[\"host\",\"port\",\"username\",\"password\",\"database\"]},\"ConnectionTestCredentialsReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"network_config_id\":{\"type\":\"string\"},\"connector_id\":{\"type\":\"string\"},\"connector_name\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"image_url\":{\"type\":\"string\"},\"properties\":{\"$ref\":\"#/components/schemas/ConnectionTestCredentialsProperties\"},\"connection_id\":{\"type\":\"string\"}},\"required\":[\"name\",\"description\",\"type\",\"connector_id\",\"connector_name\",\"plugin\",\"image_url\",\"properties\"]},\"ConnectionTestCredentialsRes\":{\"type\":\"object\",\"properties\":{\"operation_result\":{\"type\":\"boolean\"},\"connection_id\":{\"type\":\"string\"}},\"required\":[\"operation_result\",\"connection_id\"]},\"ConnectionTestListSchemasReq\":{\"type\":\"object\",\"properties\":{\"plugin\":{\"type\":\"string\"},\"connection_id\":{\"type\":\"string\"}},\"required\":[\"plugin\",\"connection_id\"]},\"ConnectionTestListSchemasRes\":{\"type\":\"object\",\"properties\":{\"operation_result\":{\"type\":\"boolean\"},\"schema_list\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"operation_result\",\"schema_list\"]},\"ConnectionTestListTablesReq\":{\"type\":\"object\",\"properties\":{\"plugin\":{\"type\":\"string\"},\"connection_id\":{\"type\":\"string\"},\"schema\":{\"type\":\"string\"}},\"required\":[\"plugin\",\"connection_id\",\"schema\"]},\"ConnectionTestListTablesRes\":{\"type\":\"object\",\"properties\":{\"operation_result\":{\"type\":\"boolean\"},\"table_list\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"operation_result\",\"table_list\"]},\"GetTableMetadataReq\":{\"type\":\"object\",\"properties\":{\"connection_id\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"schema\":{\"type\":\"string\"},\"table_list\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"connection_id\",\"plugin\",\"schema\",\"table_list\"]},\"ColumnDto\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"}},\"required\":[\"name\",\"type\"]},\"TableMetadataDto\":{\"type\":\"object\",\"properties\":{\"table_name\":{\"type\":\"string\"},\"columns\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/ColumnDto\"}},\"references\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/ColumnDto\"}}},\"required\":[\"table_name\",\"columns\",\"references\"]},\"GetTableMetadataRes\":{\"type\":\"object\",\"properties\":{\"operation_result\":{\"type\":\"boolean\"},\"tables_metadata\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/TableMetadataDto\"}}},\"required\":[\"operation_result\",\"tables_metadata\"]},\"PermissionDto\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"number\"},\"seqid\":{\"type\":\"number\"},\"name\":{\"type\":\"string\"},\"claim\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"}},\"required\":[\"id\",\"seqid\",\"name\",\"claim\",\"createdAt\",\"updatedAt\"]},\"Customer\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"domain\":{\"type\":\"string\"},\"tier\":{\"type\":\"string\"},\"info\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"domain\",\"tier\",\"info\",\"createdAt\",\"updatedAt\"]},\"UserRole\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"permissions\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PermissionDto\"}},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"isPublic\":{\"type\":\"boolean\"},\"customer\":{\"$ref\":\"#/components/schemas/Customer\"}},\"required\":[\"id\",\"name\",\"description\",\"createdAt\",\"updatedAt\",\"isPublic\",\"customer\"]},\"UserByCustomer\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"},\"roles\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/UserRole\"}},\"jobTitle\":{\"type\":\"string\"},\"department\":{\"type\":\"string\"},\"hierarchy\":{\"type\":\"string\"},\"mfaStatus\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"status\":{\"type\":\"string\"},\"lastLogin\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"email\",\"roles\",\"jobTitle\",\"department\",\"hierarchy\",\"mfaStatus\",\"createdAt\",\"updatedAt\",\"status\"]},\"GetAllUsersByCustomerIdRes\":{\"type\":\"object\",\"properties\":{\"users\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/UserByCustomer\"}},\"departments\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"jobTitles\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"users\",\"departments\",\"jobTitles\"]},\"Hierarchy\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"GetAllHierarchiesRes\":{\"type\":\"object\",\"properties\":{\"hierarchies\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/Hierarchy\"}}},\"required\":[\"hierarchies\"]},\"GetAllDepartmentsRes\":{\"type\":\"object\",\"properties\":{\"departments\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"departments\"]},\"CreateUserReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"},\"roleNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"jobTitle\":{\"type\":\"string\"},\"department\":{\"type\":\"string\"},\"hierarchy\":{\"type\":\"string\"}},\"required\":[\"email\"]},\"User\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"},\"roles\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/UserRole\"}},\"jobTitle\":{\"type\":\"string\"},\"department\":{\"type\":\"string\"},\"hierarchy\":{\"type\":\"string\"},\"customer\":{\"$ref\":\"#/components/schemas/Customer\"},\"mfaStatus\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"status\":{\"type\":\"string\"},\"lastLogin\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"email\",\"roles\",\"jobTitle\",\"department\",\"hierarchy\",\"mfaStatus\",\"createdAt\",\"updatedAt\",\"status\"]},\"CreateUserRes\":{\"type\":\"object\",\"properties\":{\"user\":{\"$ref\":\"#/components/schemas/User\"}},\"required\":[\"user\"]},\"BatchCreateUserReq\":{\"type\":\"object\",\"properties\":{\"users\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/CreateUserReq\"}}},\"required\":[\"users\"]},\"ErrorUsers\":{\"type\":\"object\",\"properties\":{\"user\":{\"$ref\":\"#/components/schemas/CreateUserReq\"},\"error\":{\"type\":\"string\"}},\"required\":[\"user\",\"error\"]},\"BatchCreateUserRes\":{\"type\":\"object\",\"properties\":{\"usersCreated\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/User\"}},\"errorUsers\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/ErrorUsers\"}}},\"required\":[\"usersCreated\",\"errorUsers\"]},\"DeleteUserRes\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"}},\"required\":[\"id\"]},\"SetUserRolesReq\":{\"type\":\"object\",\"properties\":{\"userId\":{\"type\":\"string\"},\"roleNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"userId\",\"roleNames\"]},\"SetUserRolesRes\":{\"type\":\"object\",\"properties\":{\"user\":{\"$ref\":\"#/components/schemas/UserByCustomer\"}},\"required\":[\"user\"]},\"AssignRoleToUserReq\":{\"type\":\"object\",\"properties\":{\"userId\":{\"type\":\"string\"},\"roleId\":{\"type\":\"string\"}},\"required\":[\"userId\",\"roleId\"]},\"UpdateUserReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"jobTitle\":{\"type\":\"string\"},\"department\":{\"type\":\"string\"},\"hierarchy\":{\"type\":\"string\"},\"roleNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"UpdateUserRes\":{\"type\":\"object\",\"properties\":{\"user\":{\"$ref\":\"#/components/schemas/UserByCustomer\"}},\"required\":[\"user\"]},\"UserNoRolesAndCustomer\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"},\"jobTitle\":{\"type\":\"string\"},\"department\":{\"type\":\"string\"},\"hierarchy\":{\"type\":\"string\"},\"mfaStatus\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"status\":{\"type\":\"string\"},\"lastLogin\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"email\",\"jobTitle\",\"department\",\"hierarchy\",\"mfaStatus\",\"createdAt\",\"updatedAt\",\"status\"]},\"RoleDto\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"permissions\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PermissionDto\"}},\"users\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/UserNoRolesAndCustomer\"}},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"isPublic\":{\"type\":\"boolean\"},\"customer\":{\"$ref\":\"#/components/schemas/Customer\"}},\"required\":[\"id\",\"name\",\"description\",\"createdAt\",\"updatedAt\",\"isPublic\",\"customer\"]},\"GetRolesByCustomerRes\":{\"type\":\"object\",\"properties\":{\"roles\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/RoleDto\"}}},\"required\":[\"roles\"]},\"CreateRoleReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"permissionIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"userIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"description\":{\"type\":\"string\"}},\"required\":[\"name\",\"permissionIds\",\"description\"]},\"CustomerRole\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"permissions\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PermissionDto\"}},\"users\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/UserNoRolesAndCustomer\"}},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"isPublic\":{\"type\":\"boolean\"}},\"required\":[\"id\",\"name\",\"description\",\"createdAt\",\"updatedAt\",\"isPublic\"]},\"CreateRoleRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/CustomerRole\"}},\"required\":[\"role\"]},\"GrantPermissionsToRoleReq\":{\"type\":\"object\",\"properties\":{\"roleId\":{\"type\":\"string\"},\"permissionIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"roleId\",\"permissionIds\"]},\"GrantPermissionsToRoleRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/RoleDto\"}},\"required\":[\"role\"]},\"RevokePermissionsFromRoleReq\":{\"type\":\"object\",\"properties\":{\"roleId\":{\"type\":\"string\"},\"permissionIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"roleId\",\"permissionIds\"]},\"RevokePermissionsFromRoleRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/RoleDto\"}},\"required\":[\"role\"]},\"SetRolePermissionsReq\":{\"type\":\"object\",\"properties\":{\"roleId\":{\"type\":\"string\"},\"permissionIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"roleId\",\"permissionIds\"]},\"SetRolePermissionsRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/RoleDto\"}},\"required\":[\"role\"]},\"SetRoleUsersReq\":{\"type\":\"object\",\"properties\":{\"roleId\":{\"type\":\"string\"},\"userIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"roleId\",\"userIds\"]},\"SetRoleUsersRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/RoleDto\"}},\"required\":[\"role\"]},\"UpdateRoleReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"}}},\"UpdateRoleRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/RoleDto\"}},\"required\":[\"role\"]},\"GetAvailableEntitiesRes\":{\"type\":\"object\",\"properties\":{\"entities\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"entities\"]},\"CredentialsJdbc\":{\"type\":\"object\",\"properties\":{\"jdbc_user\":{\"type\":\"string\"},\"jdbc_password\":{\"type\":\"string\"},\"database\":{\"type\":\"string\"},\"endpoint\":{\"type\":\"string\"},\"port\":{\"type\":\"string\"},\"engine\":{\"type\":\"string\"},\"schema\":{\"type\":\"string\"}}},\"TestConnectionReq\":{\"type\":\"object\",\"properties\":{\"plugin\":{\"type\":\"string\"},\"credentials\":{\"$ref\":\"#/components/schemas/CredentialsJdbc\"},\"info\":{\"type\":\"object\"}},\"required\":[\"plugin\",\"credentials\"]},\"TestConnectionRes\":{\"type\":\"object\",\"properties\":{\"connection_state\":{\"type\":\"boolean\"},\"total_entities\":{\"type\":\"number\"},\"database_tables\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"connection_state\",\"total_entities\",\"database_tables\"]},\"TestConnectionGetColumnsReq\":{\"type\":\"object\",\"properties\":{\"plugin\":{\"type\":\"string\"},\"tables\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"credentials\":{\"$ref\":\"#/components/schemas/CredentialsJdbc\"},\"id\":{\"type\":\"string\"},\"info\":{\"type\":\"object\"}},\"required\":[\"plugin\",\"tables\"]},\"TestConnectionGetColumnsRes\":{\"type\":\"object\",\"properties\":{\"tables\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"tables\"]},\"FileFormatParams\":{\"type\":\"object\",\"properties\":{\"file_format\":{\"type\":\"string\"},\"encoding\":{\"type\":\"string\"}}},\"GoogleAnalyticsClientSecrets\":{\"type\":\"object\",\"properties\":{\"type\":{\"type\":\"string\"},\"project_id\":{\"type\":\"string\"},\"private_key_id\":{\"type\":\"string\"},\"private_key\":{\"type\":\"string\"},\"client_email\":{\"type\":\"string\"},\"client_id\":{\"type\":\"string\"},\"auth_uri\":{\"type\":\"string\"},\"token_uri\":{\"type\":\"string\"},\"auth_provider_x509_cert_url\":{\"type\":\"string\"},\"client_x509_cert_url\":{\"type\":\"string\"}},\"required\":[\"type\",\"project_id\",\"private_key_id\",\"private_key\",\"client_email\",\"client_id\",\"auth_uri\",\"token_uri\",\"auth_provider_x509_cert_url\",\"client_x509_cert_url\"]},\"Credentials\":{\"type\":\"object\",\"properties\":{\"jdbc_user\":{\"type\":\"string\"},\"jdbc_password\":{\"type\":\"string\"},\"database\":{\"type\":\"string\"},\"endpoint\":{\"type\":\"string\"},\"port\":{\"type\":\"string\"},\"engine\":{\"type\":\"string\"},\"schema\":{\"type\":\"string\"},\"connection_type\":{\"type\":\"string\"},\"client_aws_access_key_id\":{\"type\":\"string\"},\"client_aws_secret_access_key\":{\"type\":\"string\"},\"client_bucket\":{\"type\":\"string\"},\"file_to_extract\":{\"type\":\"string\"},\"file_format_params\":{\"$ref\":\"#/components/schemas/FileFormatParams\"},\"view_id\":{\"type\":\"string\"},\"client_secrets\":{\"$ref\":\"#/components/schemas/GoogleAnalyticsClientSecrets\"},\"start_date\":{\"type\":\"string\"},\"end_date\":{\"type\":\"string\"},\"oauth_code\":{\"type\":\"string\"}},\"required\":[\"connection_type\"]},\"OauthObject\":{\"type\":\"object\",\"properties\":{\"get_tokens_url\":{\"type\":\"string\"},\"get_tokens_url_params\":{\"type\":\"string\"},\"get_tokens_set_response\":{\"type\":\"object\"},\"content_type\":{\"type\":\"string\"}}},\"InputOptions\":{\"type\":\"object\",\"properties\":{\"oauth\":{\"$ref\":\"#/components/schemas/OauthObject\"},\"skip_select_columns\":{\"type\":\"boolean\"},\"skip_select_entities\":{\"type\":\"boolean\"},\"skip_transformation\":{\"type\":\"boolean\"}}},\"CreateInputReq\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"category\":{\"type\":\"string\"},\"credentials\":{\"$ref\":\"#/components/schemas/Credentials\"},\"name\":{\"type\":\"string\"},\"options\":{\"$ref\":\"#/components/schemas/InputOptions\"},\"info\":{\"type\":\"object\"}},\"required\":[\"plugin\",\"category\",\"credentials\",\"name\"]},\"Input\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"category\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"cron\":{\"type\":\"string\"},\"credentials\":{\"$ref\":\"#/components/schemas/Credentials\"},\"client_id\":{\"type\":\"string\"},\"created_at\":{\"type\":\"string\"},\"updated_at\":{\"type\":\"string\"},\"info\":{\"type\":\"object\"}},\"required\":[\"id\",\"category\",\"plugin\",\"name\",\"cron\",\"credentials\",\"client_id\",\"created_at\",\"updated_at\"]}}}}" \ No newline at end of file +"{\"openapi\":\"3.0.0\",\"paths\":{\"/connectors\":{\"post\":{\"operationId\":\"ConnectorController_uploadConnector\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"multipart/form-data\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateConnectorDto\"}}}},\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]},\"get\":{\"operationId\":\"ConnectorController_getAllConnectors\",\"parameters\":[{\"name\":\"search\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}},{\"name\":\"language\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}},{\"name\":\"size\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}},{\"name\":\"page\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/uploads\":{\"post\":{\"operationId\":\"ConnectorController_uploadFile\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}}}}}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/multiple-connectors-upload\":{\"post\":{\"operationId\":\"ConnectorController_uploadConnectorsFile\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/tags\":{\"get\":{\"operationId\":\"ConnectorController_getConnectorsTags\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/{plugin}\":{\"get\":{\"operationId\":\"ConnectorController_getConnector\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}},{\"name\":\"version\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]},\"put\":{\"operationId\":\"ConnectorController_updateConnector\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"multipart/form-data\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateDto\"}}}},\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]},\"delete\":{\"operationId\":\"ConnectorController_deleteConnector\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/DeleteConnectorDto\"}}}},\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/{plugin}/details\":{\"get\":{\"operationId\":\"ConnectorController_getConnectorDetails\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}},{\"name\":\"version\",\"required\":true,\"in\":\"query\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/{plugin}/add-tag\":{\"put\":{\"operationId\":\"ConnectorController_addTagOnConnector\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/AddTagDto\"}}}},\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/connectors/{plugin}/remove-tag\":{\"put\":{\"operationId\":\"ConnectorController_removeTagOnConnector\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/RemoveTagDto\"}}}},\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"connectors\"],\"security\":[{\"bearer\":[]}]}},\"/auth/sign-in\":{\"post\":{\"operationId\":\"AuthController_signIn\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/refresh-access-token\":{\"post\":{\"operationId\":\"AuthController_refreshAccessToken\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/change-password\":{\"post\":{\"operationId\":\"AuthController_changePassword\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/reset-password\":{\"post\":{\"operationId\":\"AuthController_resetPassword\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/verify-reset-password-code\":{\"post\":{\"operationId\":\"AuthController_verifyResetPasswordCode\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/confirm-reset-password\":{\"post\":{\"operationId\":\"AuthController_confirmResetPassword\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/enable-totp\":{\"post\":{\"operationId\":\"AuthController_enableTotpMFA\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/disable-totp\":{\"post\":{\"operationId\":\"AuthController_disableTotpMFA\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/dismiss-totp\":{\"post\":{\"operationId\":\"AuthController_dismissTotpMFA\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/auth/verify-totp\":{\"post\":{\"operationId\":\"AuthController_verifyTotp\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Auth\"]}},\"/permissions\":{\"get\":{\"operationId\":\"PermissionsController_getPublicPermissions\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetPublicPermissionsRes\"}}}}},\"tags\":[\"Permissions\"]}},\"/terms-of-use/token\":{\"get\":{\"operationId\":\"TermsOfUseController_getToken\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"TermsOfUse\"]}},\"/terms-of-use/accept\":{\"post\":{\"operationId\":\"TermsOfUseController_accept\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"TermsOfUse\"]}},\"/connections\":{\"post\":{\"operationId\":\"ConnectionController_createConnection\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateConnectionDto\"}}}},\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionRes\"}}}}},\"tags\":[\"connections\"],\"security\":[{\"bearer\":[]}]},\"get\":{\"operationId\":\"ConnectionController_getAllConnection\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionsRes\"}}}}},\"tags\":[\"connections\"],\"security\":[{\"bearer\":[]}]}},\"/connections/{id}\":{\"put\":{\"operationId\":\"ConnectionController_updateConnection\",\"parameters\":[{\"name\":\"Dadosfera-Lang\",\"required\":true,\"in\":\"header\",\"schema\":{\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateConnectionDto\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionRes\"}}}}},\"tags\":[\"connections\"],\"security\":[{\"bearer\":[]}]},\"delete\":{\"operationId\":\"ConnectionController_deleteConnection\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionRes\"}}}}},\"tags\":[\"connections\"],\"security\":[{\"bearer\":[]}]},\"get\":{\"operationId\":\"ConnectionController_getConnectionDetails\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionDetailsRes\"}}}}},\"tags\":[\"connections\"],\"security\":[{\"bearer\":[]}]}},\"/network-config\":{\"get\":{\"operationId\":\"NetworkConfigController_findAllNetworkConfigs\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FindAllNetworkConfigsRes\"}}}}},\"tags\":[\"Network Config\"]},\"post\":{\"operationId\":\"NetworkConfigController_createNetworkConfigs\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"multipart/form-data\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateNetworkConfigReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateNetworkConfigRes\"}}}},\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateNetworkConfigRes\"}}}}},\"tags\":[\"Network Config\"]}},\"/network-config/{id}\":{\"get\":{\"operationId\":\"NetworkConfigController_findNetworkConfigById\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FindAllNetworkConfigsRes\"}}}}},\"tags\":[\"Network Config\"]},\"patch\":{\"operationId\":\"NetworkConfigController_updateNetworkConfig\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateNetworkConfigReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateNetworkConfigRes\"}}}}},\"tags\":[\"Network Config\"]},\"delete\":{\"operationId\":\"NetworkConfigController_deleteNetworkConfig\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/DeleteNetworkConfigRes\"}}}}},\"tags\":[\"Network Config\"]}},\"/network-config/{id}/details\":{\"get\":{\"operationId\":\"NetworkConfigController_findNetworkConfigByIdDetails\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/FindAllNetworkConfigsRes\"}}}}},\"tags\":[\"Network Config\"]}},\"/connection-test/ping\":{\"post\":{\"operationId\":\"ConnectionTestController_connectionTestPing\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestPingReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestPingRes\"}}}}},\"tags\":[\"Connection Test\"]}},\"/connection-test/credentials\":{\"post\":{\"operationId\":\"ConnectionTestController_connectionTestCredentials\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestCredentialsReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestCredentialsRes\"}}}}},\"tags\":[\"Connection Test\"]}},\"/connection-test/schemas\":{\"post\":{\"operationId\":\"ConnectionTestController_connectionTestListSchemas\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestListSchemasReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestListSchemasRes\"}}}}},\"tags\":[\"Connection Test\"]}},\"/connection-test/tables\":{\"post\":{\"operationId\":\"ConnectionTestController_connectionTestListTables\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestListTablesReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/ConnectionTestListTablesRes\"}}}}},\"tags\":[\"Connection Test\"]}},\"/connection-test/table-metadata\":{\"post\":{\"operationId\":\"ConnectionTestController_getTableMetadata\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetTableMetadataReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetTableMetadataRes\"}}}}},\"tags\":[\"Connection Test\"]}},\"/pipelines/start/{id}\":{\"post\":{\"operationId\":\"PipelinesController_activate\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]}},\"/pipelines/{id}/status\":{\"get\":{\"operationId\":\"PipelinesController_getPipelineStatus\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]}},\"/pipelines/{id}/{details}\":{\"get\":{\"operationId\":\"PipelinesController_getPipelineLogs\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]}},\"/pipelines\":{\"post\":{\"operationId\":\"PipelinesController_create\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]},\"get\":{\"operationId\":\"PipelinesController_findAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"Pipelines\"]}},\"/pipelines/{id}\":{\"get\":{\"operationId\":\"PipelinesController_findOne\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]},\"put\":{\"operationId\":\"PipelinesController_update\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]},\"delete\":{\"operationId\":\"PipelinesController_delete\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]}},\"/transformations\":{\"post\":{\"operationId\":\"TransformationsController_create\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\"}},\"tags\":[\"Transformations\"]},\"get\":{\"operationId\":\"TransformationsController_findAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"Transformations\"]}},\"/transformations/{id}\":{\"get\":{\"operationId\":\"TransformationsController_findOne\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Transformations\"]},\"put\":{\"operationId\":\"TransformationsController_update\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Transformations\"]},\"delete\":{\"operationId\":\"TransformationsController_delete\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Transformations\"]}},\"/health\":{\"get\":{\"operationId\":\"HealthController_check\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"Health\"]}},\"/catalog/all\":{\"get\":{\"operationId\":\"CatalogController_catalogAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data_apps\":{\"get\":{\"operationId\":\"CatalogController_dataAppsAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data_apps/{id}\":{\"delete\":{\"operationId\":\"CatalogController_dataAppsOne\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/dashboard-metabase\":{\"get\":{\"operationId\":\"CatalogController_getAllDashboardMetabase\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/dashboard-metabase/{id}\":{\"get\":{\"operationId\":\"CatalogController_getOneDashboardMetabase\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-metadata\":{\"get\":{\"operationId\":\"CatalogController_getAllTableMetadata\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-metadata/{id}\":{\"delete\":{\"operationId\":\"CatalogController_deleteOneTableMetadata\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/column-metadata\":{\"get\":{\"operationId\":\"CatalogController_getOneColumnMetadata\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/column-metadata/{id}\":{\"delete\":{\"operationId\":\"CatalogController_deleteOneColumnMetadata\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-preview\":{\"get\":{\"operationId\":\"CatalogController_getOneDataPreview\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-status\":{\"get\":{\"operationId\":\"CatalogController_createDataStatus\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-description\":{\"get\":{\"operationId\":\"CatalogController_getDataDescription\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"post\":{\"operationId\":\"CatalogController_createDataDescription\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-docs\":{\"get\":{\"operationId\":\"CatalogController_getDataDocs\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"post\":{\"operationId\":\"CatalogController_createDataDocs\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-rating\":{\"get\":{\"operationId\":\"CatalogController_getDataRating\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"post\":{\"operationId\":\"CatalogController_createDataRating\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/summary-rating/{id}\":{\"get\":{\"operationId\":\"CatalogController_getSummaryRating\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"Catalog\"]}},\"/catalog/data-comment\":{\"get\":{\"operationId\":\"CatalogController_getDataComment\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"post\":{\"operationId\":\"CatalogController_createDataComment\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/data-review\":{\"get\":{\"operationId\":\"CatalogController_getDataReview\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/tags\":{\"post\":{\"operationId\":\"CatalogController_createTags\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"get\":{\"operationId\":\"CatalogController_findAllTags\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/tags/{id}\":{\"delete\":{\"operationId\":\"CatalogController_deleteTags\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-tags\":{\"post\":{\"operationId\":\"CatalogController_createTableTags\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]},\"get\":{\"operationId\":\"CatalogController_getAllTableTags\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-tags/{id}\":{\"delete\":{\"operationId\":\"CatalogController_deleteTableTags\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-rules\":{\"get\":{\"operationId\":\"CatalogController_getTableRules\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/catalog/table-rules/{id}\":{\"delete\":{\"operationId\":\"CatalogController_deleteTableRules\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Catalog\"]}},\"/users\":{\"get\":{\"operationId\":\"UsersController_getAllUsersByCustomerId\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"List of users of a customer\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetAllUsersByCustomerIdRes\"}}}}},\"tags\":[\"Users\"]},\"post\":{\"operationId\":\"UsersController_createUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateUserReq\"}}}},\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateUserRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/hierarchies\":{\"get\":{\"operationId\":\"UsersController_getAllHierarchies\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetAllHierarchiesRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/departments\":{\"get\":{\"operationId\":\"UsersController_getAllDepartments\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetAllDepartmentsRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/jobTitles\":{\"get\":{\"operationId\":\"UsersController_getAllJobTitles\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetAllDepartmentsRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/{id}\":{\"get\":{\"operationId\":\"UsersController_findOneById\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UserByCustomer\"}}}}},\"tags\":[\"Users\"]},\"delete\":{\"operationId\":\"UsersController_deleteUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/DeleteUserRes\"}}}}},\"tags\":[\"Users\"]},\"patch\":{\"operationId\":\"UsersController_updateUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateUserReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateUserRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/batch\":{\"post\":{\"operationId\":\"UsersController_batchCreateUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/BatchCreateUserReq\"}}}},\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/BatchCreateUserRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/{id}/resend-invite\":{\"post\":{\"operationId\":\"UsersController_resendInvite\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Users\"]}},\"/users/roles\":{\"patch\":{\"operationId\":\"UsersController_setUserRoles\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetUserRolesReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetUserRolesRes\"}}}}},\"tags\":[\"Users\"]}},\"/users/role\":{\"put\":{\"operationId\":\"UsersController_assignRoleToUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/AssignRoleToUserReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Users\"]},\"delete\":{\"operationId\":\"UsersController_unassignRoleToUser\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Users\"]}},\"/roles\":{\"get\":{\"operationId\":\"RolesController_searchRoles\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"permissionId\",\"required\":false,\"in\":\"query\",\"schema\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},{\"name\":\"getUsers\",\"required\":false,\"in\":\"query\",\"schema\":{\"enum\":[\"true\",\"false\"],\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetRolesByCustomerRes\"}}}}},\"tags\":[\"Roles\"]},\"post\":{\"operationId\":\"RolesController_createRole\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateRoleReq\"}}}},\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateRoleRes\"}}}}},\"tags\":[\"Roles\"]}},\"/roles/permissions\":{\"put\":{\"operationId\":\"RolesController_grantPermissionsToRole\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GrantPermissionsToRoleReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GrantPermissionsToRoleRes\"}}}}},\"tags\":[\"Roles\"]},\"delete\":{\"operationId\":\"RolesController_revokePermissionsFromRole\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/RevokePermissionsFromRoleReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/RevokePermissionsFromRoleRes\"}}}}},\"tags\":[\"Roles\"]},\"patch\":{\"operationId\":\"RolesController_setRolePermissions\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetRolePermissionsReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetRolePermissionsRes\"}}}}},\"tags\":[\"Roles\"]}},\"/roles/users\":{\"patch\":{\"operationId\":\"RolesController_setRoleUsers\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetRoleUsersReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SetRoleUsersRes\"}}}}},\"tags\":[\"Roles\"]}},\"/roles/{id}\":{\"get\":{\"operationId\":\"RolesController_getRoleById\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/RoleDto\"}}}}},\"tags\":[\"Roles\"]},\"delete\":{\"operationId\":\"RolesController_deleteRole\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Roles\"]},\"patch\":{\"operationId\":\"RolesController_updateRole\",\"parameters\":[{\"name\":\"dadosfera-lang\",\"in\":\"header\",\"description\":\"Defaults to pt-br\",\"required\":false,\"schema\":{\"enum\":[\"pt-br\",\"en-us\"],\"type\":\"string\"}},{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateRoleReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/UpdateRoleRes\"}}}}},\"tags\":[\"Roles\"]}},\"/inputs/available-entities/{plugin}\":{\"get\":{\"operationId\":\"InputsController_getAvailableEntities\",\"parameters\":[{\"name\":\"plugin\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/GetAvailableEntitiesRes\"}}}}},\"tags\":[\"inputs\"]}},\"/inputs/test-connection\":{\"post\":{\"operationId\":\"InputsController_testConnection\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/TestConnectionReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/TestConnectionRes\"}}}},\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]}},\"/inputs/test-connection/get-columns\":{\"post\":{\"operationId\":\"InputsController_getColumns\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/TestConnectionGetColumnsReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/TestConnectionGetColumnsRes\"}}}},\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]}},\"/inputs\":{\"post\":{\"operationId\":\"InputsController_create\",\"parameters\":[],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateInputReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Input\"}}}},\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]},\"get\":{\"operationId\":\"InputsController_findAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"inputs\"]}},\"/inputs/{id}\":{\"post\":{\"operationId\":\"InputsController_reCreate\",\"parameters\":[{\"name\":\"id\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"required\":true,\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/CreateInputReq\"}}}},\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Input\"}}}},\"201\":{\"description\":\"\"}},\"tags\":[\"inputs\"]},\"get\":{\"operationId\":\"InputsController_findOne\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]},\"patch\":{\"operationId\":\"InputsController_update\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]},\"delete\":{\"operationId\":\"InputsController_delete\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"inputs\"]}},\"/oauth/hubspot\":{\"get\":{\"operationId\":\"OauthController_oauthHubspot\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/hubspot/callback\":{\"get\":{\"operationId\":\"OauthController_oauthHubspotCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/oauth/googleads\":{\"get\":{\"operationId\":\"OauthController_oauthGoogleAds\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/googleads/callback\":{\"get\":{\"operationId\":\"OauthController_oauthGoogleAdsCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/oauth/google-sheets\":{\"get\":{\"operationId\":\"OauthController_oauthGoogleSheets\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/google-sheets/callback\":{\"get\":{\"operationId\":\"OauthController_oauthGoogleSheetsCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/oauth/facebook\":{\"get\":{\"operationId\":\"OauthController_oauthFacebook\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/facebook/callback\":{\"get\":{\"operationId\":\"OauthController_oauthFacebookCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/oauth/mailchimp\":{\"get\":{\"operationId\":\"OauthController_oauthMailchimp\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/mailchimp/callback\":{\"get\":{\"operationId\":\"OauthController_oauthMailchimpCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/oauth/salesforce\":{\"get\":{\"operationId\":\"OauthController_oauthSalesforce\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"boolean\"}}}}},\"tags\":[\"oauth\"]}},\"/oauth/salesforce/callback\":{\"get\":{\"operationId\":\"OauthController_oauthSalesforceCallback\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"oauth\"]}},\"/pipelinesV2\":{\"post\":{\"operationId\":\"PipelinesController_create\",\"parameters\":[],\"responses\":{\"201\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]},\"get\":{\"operationId\":\"PipelinesController_findAll\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\"}},\"tags\":[\"Pipelines\"]}},\"/pipelinesV2/{id}\":{\"get\":{\"operationId\":\"PipelinesController_findOne\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]},\"put\":{\"operationId\":\"PipelinesController_update\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]},\"delete\":{\"operationId\":\"PipelinesController_delete\",\"parameters\":[],\"responses\":{\"200\":{\"description\":\"\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}}},\"tags\":[\"Pipelines\"]}}},\"info\":{\"title\":\"Maestro\",\"description\":\"Documentation for Maestro gateway\",\"version\":\"5.9.2022 - 11:27\",\"contact\":{}},\"tags\":[],\"servers\":[],\"components\":{\"securitySchemes\":{\"bearer\":{\"scheme\":\"bearer\",\"bearerFormat\":\"JWT\",\"type\":\"http\"}},\"schemas\":{\"CreateConnectorDto\":{\"type\":\"object\",\"properties\":{\"file\":{\"type\":\"string\",\"format\":\"binary\"},\"connector\":{\"type\":\"string\"}},\"required\":[\"file\",\"connector\"]},\"UpdateDto\":{\"type\":\"object\",\"properties\":{\"file\":{\"type\":\"string\",\"format\":\"binary\"},\"version\":{\"type\":\"string\"},\"category\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"image\":{\"type\":\"string\"},\"docs\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"options\":{\"type\":\"object\",\"description\":\"skip_select_entities: boolean skip_select_columns: boolean;\"},\"connection_controls\":{\"type\":\"array\",\"items\":{\"properties\":{}}}},\"required\":[\"version\"]},\"AddTagDto\":{\"type\":\"object\",\"properties\":{\"tags\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"tags\"]},\"RemoveTagDto\":{\"type\":\"object\",\"properties\":{\"tags\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"tags\"]},\"DeleteConnectorDto\":{\"type\":\"object\",\"properties\":{\"version\":{\"type\":\"string\"}},\"required\":[\"version\"]},\"PermissionGroupPermission\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"id\":{\"type\":\"number\"}},\"required\":[\"name\",\"id\"]},\"PermissionGroup\":{\"type\":\"object\",\"properties\":{\"title\":{\"type\":\"string\"},\"permissions\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PermissionGroupPermission\"}}},\"required\":[\"title\",\"permissions\"]},\"GetPublicPermissionsRes\":{\"type\":\"object\",\"properties\":{\"permissionGroups\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PermissionGroup\"}}},\"required\":[\"permissionGroups\"]},\"CreateConnectionDto\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"network_config_id\":{\"type\":\"string\"},\"properties\":{\"type\":\"object\"},\"connector_id\":{\"type\":\"string\"},\"connector_name\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"image_url\":{\"type\":\"string\"}},\"required\":[\"name\",\"description\",\"type\",\"properties\",\"connector_id\",\"connector_name\",\"plugin\",\"image_url\"]},\"ConnectionToCatalogDto\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"customer_id\":{\"type\":\"string\"},\"updated_at\":{\"type\":\"string\"},\"created_at\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"network_config_id\":{\"type\":\"string\"},\"connector_id\":{\"type\":\"string\"},\"connector_name\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"image_url\":{\"type\":\"string\"}},\"required\":[\"id\",\"customer_id\",\"updated_at\",\"created_at\",\"name\",\"description\",\"type\",\"connector_id\",\"connector_name\",\"plugin\",\"image_url\"]},\"ConnectionRes\":{\"type\":\"object\",\"properties\":{\"connection\":{\"$ref\":\"#/components/schemas/ConnectionToCatalogDto\"},\"message\":{\"type\":\"string\"}},\"required\":[\"connection\",\"message\"]},\"UpdateConnectionDto\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"network_config_id\":{\"type\":\"string\"},\"properties\":{\"type\":\"object\"}},\"required\":[\"name\",\"description\",\"properties\"]},\"ConnectionsRes\":{\"type\":\"object\",\"properties\":{\"connections\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/ConnectionToCatalogDto\"}},\"message\":{\"type\":\"string\"}},\"required\":[\"connections\",\"message\"]},\"ConnectionDto\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"customer_id\":{\"type\":\"string\"},\"customer_name\":{\"type\":\"string\"},\"user_id\":{\"type\":\"string\"},\"updated_at\":{\"type\":\"string\"},\"created_at\":{\"type\":\"string\"},\"pipelines\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"network_config_id\":{\"type\":\"string\"},\"properties\":{\"type\":\"object\"},\"connector_id\":{\"type\":\"string\"},\"connector_name\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"image_url\":{\"type\":\"string\"}},\"required\":[\"id\",\"customer_id\",\"customer_name\",\"user_id\",\"updated_at\",\"created_at\",\"pipelines\",\"name\",\"description\",\"type\",\"properties\",\"connector_id\",\"connector_name\",\"plugin\",\"image_url\"]},\"ConnectionDetailsRes\":{\"type\":\"object\",\"properties\":{\"connection\":{\"$ref\":\"#/components/schemas/ConnectionDto\"},\"message\":{\"type\":\"string\"}},\"required\":[\"connection\",\"message\"]},\"NetworkConfigToCatalogDto\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"customer_id\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"created_at\":{\"type\":\"string\"},\"updated_at\":{\"type\":\"string\"},\"network_type_id\":{\"type\":\"string\"},\"network_type_name\":{\"type\":\"string\"}},\"required\":[\"id\",\"customer_id\",\"plugin\",\"type\",\"name\",\"description\",\"created_at\",\"updated_at\",\"network_type_id\",\"network_type_name\"]},\"FindAllNetworkConfigsRes\":{\"type\":\"object\",\"properties\":{\"network_configs\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/NetworkConfigToCatalogDto\"}},\"message\":{\"type\":\"string\"}},\"required\":[\"network_configs\",\"message\"]},\"CreateNetworkConfigReq\":{\"type\":\"object\",\"properties\":{\"network_type_id\":{\"type\":\"string\"},\"network_type_name\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"ovpn_file\":{\"type\":\"string\",\"format\":\"binary\"}},\"required\":[\"network_type_id\",\"network_type_name\",\"name\",\"description\",\"ovpn_file\"]},\"CreateNetworkConfigRes\":{\"type\":\"object\",\"properties\":{\"network_config\":{\"$ref\":\"#/components/schemas/NetworkConfigToCatalogDto\"}},\"required\":[\"network_config\"]},\"UpdateNetworkConfigReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"}},\"required\":[\"name\",\"description\"]},\"UpdateNetworkConfigRes\":{\"type\":\"object\",\"properties\":{\"network_config\":{\"$ref\":\"#/components/schemas/NetworkConfigToCatalogDto\"}},\"required\":[\"network_config\"]},\"DeleteNetworkConfigRes\":{\"type\":\"object\",\"properties\":{\"message\":{\"type\":\"string\"}},\"required\":[\"message\"]},\"ConnectionTestPingReq\":{\"type\":\"object\",\"properties\":{\"plugin\":{\"type\":\"string\"},\"host\":{\"type\":\"string\"},\"port\":{\"type\":\"number\"},\"network_config_id\":{\"type\":\"string\"},\"connection_id\":{\"type\":\"string\"}}},\"ConnectionTestPingRes\":{\"type\":\"object\",\"properties\":{\"operation_result\":{\"type\":\"boolean\"}},\"required\":[\"operation_result\"]},\"ConnectionTestCredentialsProperties\":{\"type\":\"object\",\"properties\":{\"host\":{\"type\":\"string\"},\"port\":{\"type\":\"string\"},\"username\":{\"type\":\"string\"},\"password\":{\"type\":\"string\"},\"database\":{\"type\":\"string\"}},\"required\":[\"host\",\"port\",\"username\",\"password\",\"database\"]},\"ConnectionTestCredentialsReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"network_config_id\":{\"type\":\"string\"},\"connector_id\":{\"type\":\"string\"},\"connector_name\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"image_url\":{\"type\":\"string\"},\"properties\":{\"$ref\":\"#/components/schemas/ConnectionTestCredentialsProperties\"},\"connection_id\":{\"type\":\"string\"}},\"required\":[\"name\",\"description\",\"type\",\"connector_id\",\"connector_name\",\"plugin\",\"image_url\",\"properties\"]},\"ConnectionTestCredentialsRes\":{\"type\":\"object\",\"properties\":{\"operation_result\":{\"type\":\"boolean\"},\"connection_id\":{\"type\":\"string\"}},\"required\":[\"operation_result\",\"connection_id\"]},\"ConnectionTestListSchemasReq\":{\"type\":\"object\",\"properties\":{\"plugin\":{\"type\":\"string\"},\"connection_id\":{\"type\":\"string\"}},\"required\":[\"plugin\",\"connection_id\"]},\"ConnectionTestListSchemasRes\":{\"type\":\"object\",\"properties\":{\"operation_result\":{\"type\":\"boolean\"},\"schema_list\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"operation_result\",\"schema_list\"]},\"ConnectionTestListTablesReq\":{\"type\":\"object\",\"properties\":{\"plugin\":{\"type\":\"string\"},\"connection_id\":{\"type\":\"string\"},\"schema\":{\"type\":\"string\"}},\"required\":[\"plugin\",\"connection_id\",\"schema\"]},\"ConnectionTestListTablesRes\":{\"type\":\"object\",\"properties\":{\"operation_result\":{\"type\":\"boolean\"},\"table_list\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"operation_result\",\"table_list\"]},\"GetTableMetadataReq\":{\"type\":\"object\",\"properties\":{\"connection_id\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"schema\":{\"type\":\"string\"},\"table_list\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"connection_id\",\"plugin\",\"schema\",\"table_list\"]},\"ColumnDto\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"}},\"required\":[\"name\",\"type\"]},\"TableMetadataDto\":{\"type\":\"object\",\"properties\":{\"table_name\":{\"type\":\"string\"},\"columns\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/ColumnDto\"}},\"references\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/ColumnDto\"}}},\"required\":[\"table_name\",\"columns\",\"references\"]},\"GetTableMetadataRes\":{\"type\":\"object\",\"properties\":{\"operation_result\":{\"type\":\"boolean\"},\"tables_metadata\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/TableMetadataDto\"}}},\"required\":[\"operation_result\",\"tables_metadata\"]},\"PermissionDto\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"number\"},\"seqid\":{\"type\":\"number\"},\"name\":{\"type\":\"string\"},\"claim\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"}},\"required\":[\"id\",\"seqid\",\"name\",\"claim\",\"createdAt\",\"updatedAt\"]},\"Customer\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"domain\":{\"type\":\"string\"},\"tier\":{\"type\":\"string\"},\"info\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"domain\",\"tier\",\"info\",\"createdAt\",\"updatedAt\"]},\"UserRole\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"permissions\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PermissionDto\"}},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"isPublic\":{\"type\":\"boolean\"},\"customer\":{\"$ref\":\"#/components/schemas/Customer\"}},\"required\":[\"id\",\"name\",\"description\",\"createdAt\",\"updatedAt\",\"isPublic\",\"customer\"]},\"UserByCustomer\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"},\"roles\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/UserRole\"}},\"jobTitle\":{\"type\":\"string\"},\"department\":{\"type\":\"string\"},\"hierarchy\":{\"type\":\"string\"},\"mfaStatus\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"status\":{\"type\":\"string\"},\"lastLogin\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"email\",\"roles\",\"jobTitle\",\"department\",\"hierarchy\",\"mfaStatus\",\"createdAt\",\"updatedAt\",\"status\"]},\"GetAllUsersByCustomerIdRes\":{\"type\":\"object\",\"properties\":{\"users\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/UserByCustomer\"}},\"departments\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"jobTitles\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"users\",\"departments\",\"jobTitles\"]},\"Hierarchy\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]},\"GetAllHierarchiesRes\":{\"type\":\"object\",\"properties\":{\"hierarchies\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/Hierarchy\"}}},\"required\":[\"hierarchies\"]},\"GetAllDepartmentsRes\":{\"type\":\"object\",\"properties\":{\"departments\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"departments\"]},\"CreateUserReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"},\"roleNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"jobTitle\":{\"type\":\"string\"},\"department\":{\"type\":\"string\"},\"hierarchy\":{\"type\":\"string\"}},\"required\":[\"email\"]},\"User\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"},\"roles\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/UserRole\"}},\"jobTitle\":{\"type\":\"string\"},\"department\":{\"type\":\"string\"},\"hierarchy\":{\"type\":\"string\"},\"customer\":{\"$ref\":\"#/components/schemas/Customer\"},\"mfaStatus\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"status\":{\"type\":\"string\"},\"lastLogin\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"email\",\"roles\",\"jobTitle\",\"department\",\"hierarchy\",\"mfaStatus\",\"createdAt\",\"updatedAt\",\"status\"]},\"CreateUserRes\":{\"type\":\"object\",\"properties\":{\"user\":{\"$ref\":\"#/components/schemas/User\"}},\"required\":[\"user\"]},\"BatchCreateUserReq\":{\"type\":\"object\",\"properties\":{\"users\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/CreateUserReq\"}}},\"required\":[\"users\"]},\"ErrorUsers\":{\"type\":\"object\",\"properties\":{\"user\":{\"$ref\":\"#/components/schemas/CreateUserReq\"},\"error\":{\"type\":\"string\"}},\"required\":[\"user\",\"error\"]},\"BatchCreateUserRes\":{\"type\":\"object\",\"properties\":{\"usersCreated\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/User\"}},\"errorUsers\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/ErrorUsers\"}}},\"required\":[\"usersCreated\",\"errorUsers\"]},\"DeleteUserRes\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"}},\"required\":[\"id\"]},\"SetUserRolesReq\":{\"type\":\"object\",\"properties\":{\"userId\":{\"type\":\"string\"},\"roleNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"userId\",\"roleNames\"]},\"SetUserRolesRes\":{\"type\":\"object\",\"properties\":{\"user\":{\"$ref\":\"#/components/schemas/UserByCustomer\"}},\"required\":[\"user\"]},\"AssignRoleToUserReq\":{\"type\":\"object\",\"properties\":{\"userId\":{\"type\":\"string\"},\"roleId\":{\"type\":\"string\"}},\"required\":[\"userId\",\"roleId\"]},\"UpdateUserReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"jobTitle\":{\"type\":\"string\"},\"department\":{\"type\":\"string\"},\"hierarchy\":{\"type\":\"string\"},\"roleNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"UpdateUserRes\":{\"type\":\"object\",\"properties\":{\"user\":{\"$ref\":\"#/components/schemas/UserByCustomer\"}},\"required\":[\"user\"]},\"UserNoRolesAndCustomer\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"},\"jobTitle\":{\"type\":\"string\"},\"department\":{\"type\":\"string\"},\"hierarchy\":{\"type\":\"string\"},\"mfaStatus\":{\"type\":\"string\"},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"status\":{\"type\":\"string\"},\"lastLogin\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\",\"email\",\"jobTitle\",\"department\",\"hierarchy\",\"mfaStatus\",\"createdAt\",\"updatedAt\",\"status\"]},\"RoleDto\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"permissions\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PermissionDto\"}},\"users\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/UserNoRolesAndCustomer\"}},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"isPublic\":{\"type\":\"boolean\"},\"customer\":{\"$ref\":\"#/components/schemas/Customer\"}},\"required\":[\"id\",\"name\",\"description\",\"createdAt\",\"updatedAt\",\"isPublic\",\"customer\"]},\"GetRolesByCustomerRes\":{\"type\":\"object\",\"properties\":{\"roles\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/RoleDto\"}}},\"required\":[\"roles\"]},\"CreateRoleReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"permissionIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"userIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"description\":{\"type\":\"string\"}},\"required\":[\"name\",\"permissionIds\",\"description\"]},\"CustomerRole\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"permissions\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PermissionDto\"}},\"users\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/UserNoRolesAndCustomer\"}},\"createdAt\":{\"type\":\"string\"},\"updatedAt\":{\"type\":\"string\"},\"isPublic\":{\"type\":\"boolean\"}},\"required\":[\"id\",\"name\",\"description\",\"createdAt\",\"updatedAt\",\"isPublic\"]},\"CreateRoleRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/CustomerRole\"}},\"required\":[\"role\"]},\"GrantPermissionsToRoleReq\":{\"type\":\"object\",\"properties\":{\"roleId\":{\"type\":\"string\"},\"permissionIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"roleId\",\"permissionIds\"]},\"GrantPermissionsToRoleRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/RoleDto\"}},\"required\":[\"role\"]},\"RevokePermissionsFromRoleReq\":{\"type\":\"object\",\"properties\":{\"roleId\":{\"type\":\"string\"},\"permissionIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"roleId\",\"permissionIds\"]},\"RevokePermissionsFromRoleRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/RoleDto\"}},\"required\":[\"role\"]},\"SetRolePermissionsReq\":{\"type\":\"object\",\"properties\":{\"roleId\":{\"type\":\"string\"},\"permissionIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"roleId\",\"permissionIds\"]},\"SetRolePermissionsRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/RoleDto\"}},\"required\":[\"role\"]},\"SetRoleUsersReq\":{\"type\":\"object\",\"properties\":{\"roleId\":{\"type\":\"string\"},\"userIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"roleId\",\"userIds\"]},\"SetRoleUsersRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/RoleDto\"}},\"required\":[\"role\"]},\"UpdateRoleReq\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"}}},\"UpdateRoleRes\":{\"type\":\"object\",\"properties\":{\"role\":{\"$ref\":\"#/components/schemas/RoleDto\"}},\"required\":[\"role\"]},\"GetAvailableEntitiesRes\":{\"type\":\"object\",\"properties\":{\"entities\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"entities\"]},\"CredentialsJdbc\":{\"type\":\"object\",\"properties\":{\"jdbc_user\":{\"type\":\"string\"},\"jdbc_password\":{\"type\":\"string\"},\"database\":{\"type\":\"string\"},\"endpoint\":{\"type\":\"string\"},\"port\":{\"type\":\"string\"},\"engine\":{\"type\":\"string\"},\"schema\":{\"type\":\"string\"}}},\"TestConnectionReq\":{\"type\":\"object\",\"properties\":{\"plugin\":{\"type\":\"string\"},\"credentials\":{\"$ref\":\"#/components/schemas/CredentialsJdbc\"},\"info\":{\"type\":\"object\"}},\"required\":[\"plugin\",\"credentials\"]},\"TestConnectionRes\":{\"type\":\"object\",\"properties\":{\"connection_state\":{\"type\":\"boolean\"},\"total_entities\":{\"type\":\"number\"},\"database_tables\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"connection_state\",\"total_entities\",\"database_tables\"]},\"TestConnectionGetColumnsReq\":{\"type\":\"object\",\"properties\":{\"plugin\":{\"type\":\"string\"},\"tables\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"credentials\":{\"$ref\":\"#/components/schemas/CredentialsJdbc\"},\"id\":{\"type\":\"string\"},\"info\":{\"type\":\"object\"}},\"required\":[\"plugin\",\"tables\"]},\"TestConnectionGetColumnsRes\":{\"type\":\"object\",\"properties\":{\"tables\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"tables\"]},\"FileFormatParams\":{\"type\":\"object\",\"properties\":{\"file_format\":{\"type\":\"string\"},\"encoding\":{\"type\":\"string\"}}},\"GoogleAnalyticsClientSecrets\":{\"type\":\"object\",\"properties\":{\"type\":{\"type\":\"string\"},\"project_id\":{\"type\":\"string\"},\"private_key_id\":{\"type\":\"string\"},\"private_key\":{\"type\":\"string\"},\"client_email\":{\"type\":\"string\"},\"client_id\":{\"type\":\"string\"},\"auth_uri\":{\"type\":\"string\"},\"token_uri\":{\"type\":\"string\"},\"auth_provider_x509_cert_url\":{\"type\":\"string\"},\"client_x509_cert_url\":{\"type\":\"string\"}},\"required\":[\"type\",\"project_id\",\"private_key_id\",\"private_key\",\"client_email\",\"client_id\",\"auth_uri\",\"token_uri\",\"auth_provider_x509_cert_url\",\"client_x509_cert_url\"]},\"Credentials\":{\"type\":\"object\",\"properties\":{\"jdbc_user\":{\"type\":\"string\"},\"jdbc_password\":{\"type\":\"string\"},\"database\":{\"type\":\"string\"},\"endpoint\":{\"type\":\"string\"},\"port\":{\"type\":\"string\"},\"engine\":{\"type\":\"string\"},\"schema\":{\"type\":\"string\"},\"connection_type\":{\"type\":\"string\"},\"client_aws_access_key_id\":{\"type\":\"string\"},\"client_aws_secret_access_key\":{\"type\":\"string\"},\"client_bucket\":{\"type\":\"string\"},\"file_to_extract\":{\"type\":\"string\"},\"file_format_params\":{\"$ref\":\"#/components/schemas/FileFormatParams\"},\"view_id\":{\"type\":\"string\"},\"client_secrets\":{\"$ref\":\"#/components/schemas/GoogleAnalyticsClientSecrets\"},\"start_date\":{\"type\":\"string\"},\"end_date\":{\"type\":\"string\"},\"oauth_code\":{\"type\":\"string\"}},\"required\":[\"connection_type\"]},\"OauthObject\":{\"type\":\"object\",\"properties\":{\"get_tokens_url\":{\"type\":\"string\"},\"get_tokens_url_params\":{\"type\":\"string\"},\"get_tokens_set_response\":{\"type\":\"object\"},\"content_type\":{\"type\":\"string\"}}},\"InputOptions\":{\"type\":\"object\",\"properties\":{\"oauth\":{\"$ref\":\"#/components/schemas/OauthObject\"},\"skip_select_columns\":{\"type\":\"boolean\"},\"skip_select_entities\":{\"type\":\"boolean\"},\"skip_transformation\":{\"type\":\"boolean\"}}},\"CreateInputReq\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"category\":{\"type\":\"string\"},\"credentials\":{\"$ref\":\"#/components/schemas/Credentials\"},\"name\":{\"type\":\"string\"},\"options\":{\"$ref\":\"#/components/schemas/InputOptions\"},\"info\":{\"type\":\"object\"}},\"required\":[\"plugin\",\"category\",\"credentials\",\"name\"]},\"Input\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"category\":{\"type\":\"string\"},\"plugin\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"cron\":{\"type\":\"string\"},\"credentials\":{\"$ref\":\"#/components/schemas/Credentials\"},\"client_id\":{\"type\":\"string\"},\"created_at\":{\"type\":\"string\"},\"updated_at\":{\"type\":\"string\"},\"info\":{\"type\":\"object\"}},\"required\":[\"id\",\"category\",\"plugin\",\"name\",\"cron\",\"credentials\",\"client_id\",\"created_at\",\"updated_at\"]}}}}" \ No newline at end of file