/** * RDI Client Interface * * Public contract for all RDI client implementations. * * @packageDocumentation */ import type { ActionIdResponse, CredentialsInfo, DlqRecordsResponse, DlqTableInfo, FlushResponse, JobDryRunBody, JobDryRunSuccessResponse, MetadataResponse, OperationResponse, PipelineSecretResponse, PipelineSourceSchemaResponse, SchemaResponse, StatisticsResponse } from '@rdi-ui/sdk/models'; import type { DeleteSecretProviderRequest, GetMetadataRequest, GetSchemasRequest, GetSourceSchemasRequest, UpdateSecretRequest, UpsertSecretProviderRequest } from '@rdi-ui/sdk/models/operations'; import type { RdiClientConfig, ResolvedClientVersion } from '../config/types'; import type { MonitoringStatistics } from '../metrics/types'; import type { ConfigSchemaResponse, JobSchemaResponse, CreatePipelineRequest, PatchRequest, PipelineOperationResponse, PipelineResponse, SecretsRequest, SetMultiKeySecretRequest, SourceDbConnectionTest, SourceTestResponse, StatusResponse, TargetDbRequest, TargetTestResponse, UpdatePipelineRequest } from '../pipeline/types'; export interface GetDlqRecordsRequest { pipelineName: string; fullTableName: string; limit?: number; offset?: number; sortOrder?: 'asc' | 'desc'; fields?: string | null; } export interface RdiClient { readonly config: RdiClientConfig; readonly version: ResolvedClientVersion; login(credentials: CredentialsInfo): Promise; getPipeline(pipelineName?: string): Promise; getPipelineStatus(pipelineName: string): Promise; startPipeline(pipelineName: string, source?: string): Promise; stopPipeline(pipelineName: string, source?: string): Promise; resetPipeline(pipelineName: string, source?: string): Promise; flushTarget(pipelineName: string, targetName: string): Promise; createPipeline(request: CreatePipelineRequest, dryRun?: boolean): Promise; updatePipeline(pipelineName: string, request: UpdatePipelineRequest, options?: { dryRun?: boolean; validateCdc?: boolean; }): Promise; patchPipeline(pipelineName: string, request: PatchRequest, options?: { dryRun?: boolean; validateCdc?: boolean; }): Promise; deletePipeline(pipelineName: string): Promise; getDlqStreams(pipelineName: string): Promise>; getDlqStream(pipelineName: string, fullTableName: string): Promise>; getDlqRecords(request: GetDlqRecordsRequest): Promise; getMonitoringStatistics(): Promise; /** * @deprecated Temporary compatibility workaround while UI migrates to * processor-specific visualizations. Prefer consuming raw metric * collections and rendering separate classic/flink views so each processor * type can surface its own meaningful dataset. */ getProcessorMetrics(pipelineName: string): Promise; getSchemas(request: GetSchemasRequest): Promise; getSourceSchemas(request: GetSourceSchemasRequest, pipelineName: string): Promise; getMetadata(request: GetMetadataRequest): Promise; jobDryRun(request: JobDryRunBody): Promise; testTarget(pipelineName: string, request: TargetDbRequest): Promise; testSource(pipelineName: string, request: SourceDbConnectionTest): Promise; setSecrets(request: SecretsRequest): Promise; setMultiKeySecret(request: SetMultiKeySecretRequest): Promise; updateSecret(request: UpdateSecretRequest): Promise; upsertSecretProvider(request: UpsertSecretProviderRequest): Promise; deleteSecretProvider(request: DeleteSecretProviderRequest): Promise; getConfigSchemas(): Promise; getJobsSchemas(): Promise; }