@@ -143,10 +143,45 @@ type ClickPipeKinesisSource struct {
143143 IAMRole * string `json:"iamRole,omitempty"`
144144}
145145
146+ type ClickPipePostgresSource struct {
147+ Host string `json:"host"`
148+ Port int `json:"port"`
149+ Database string `json:"database"`
150+ Credentials * ClickPipeSourceCredentials `json:"credentials,omitempty"`
151+ Settings ClickPipePostgresSettings `json:"settings"`
152+ Mappings []ClickPipePostgresTableMapping `json:"tableMappings"`
153+ TableMappingsToRemove []ClickPipePostgresTableMapping `json:"tableMappingsToRemove,omitempty"`
154+ TableMappingsToAdd []ClickPipePostgresTableMapping `json:"tableMappingsToAdd,omitempty"`
155+ }
156+
157+ type ClickPipePostgresSettings struct {
158+ SyncIntervalSeconds * int `json:"syncIntervalSeconds,omitempty"`
159+ PullBatchSize * int `json:"pullBatchSize,omitempty"`
160+ PublicationName * string `json:"publicationName,omitempty"`
161+ ReplicationMode string `json:"replicationMode"`
162+ ReplicationSlotName * string `json:"replicationSlotName,omitempty"`
163+ AllowNullableColumns * bool `json:"allowNullableColumns,omitempty"`
164+ InitialLoadParallelism * int `json:"initialLoadParallelism,omitempty"`
165+ SnapshotNumRowsPerPartition * int `json:"snapshotNumRowsPerPartition,omitempty"`
166+ SnapshotNumberOfParallelTables * int `json:"snapshotNumberOfParallelTables,omitempty"`
167+ EnableFailoverSlots * bool `json:"enableFailoverSlots,omitempty"`
168+ }
169+
170+ type ClickPipePostgresTableMapping struct {
171+ SourceSchemaName string `json:"sourceSchemaName"`
172+ SourceTable string `json:"sourceTable"`
173+ TargetTable string `json:"targetTable"`
174+ ExcludedColumns []string `json:"excludedColumns,omitempty"`
175+ UseCustomSortingKey * bool `json:"useCustomSortingKey,omitempty"`
176+ SortingKeys []string `json:"sortingKeys,omitempty"`
177+ TableEngine * string `json:"tableEngine,omitempty"`
178+ }
179+
146180type ClickPipeSource struct {
147181 Kafka * ClickPipeKafkaSource `json:"kafka,omitempty"`
148182 ObjectStorage * ClickPipeObjectStorageSource `json:"objectStorage,omitempty"`
149183 Kinesis * ClickPipeKinesisSource `json:"kinesis,omitempty"`
184+ Postgres * ClickPipePostgresSource `json:"postgres,omitempty"`
150185 ValidateSamples bool `json:"validateSamples,omitempty"`
151186}
152187
@@ -170,10 +205,10 @@ type ClickPipeDestinationTableDefinition struct {
170205
171206type ClickPipeDestination struct {
172207 Database string `json:"database"`
173- Table string `json:"table"`
174- ManagedTable bool `json:"managedTable"`
208+ Table * string `json:"table,omitempty "`
209+ ManagedTable * bool `json:"managedTable,omitempty "`
175210 TableDefinition * ClickPipeDestinationTableDefinition `json:"tableDefinition,omitempty"`
176- Columns []ClickPipeDestinationColumn `json:"columns"`
211+ Columns []ClickPipeDestinationColumn `json:"columns,omitempty "`
177212 Roles []string `json:"roles,omitempty"`
178213}
179214
@@ -193,7 +228,7 @@ type ClickPipe struct {
193228 State string `json:"state,omitempty"`
194229 Source ClickPipeSource `json:"source"`
195230 Destination ClickPipeDestination `json:"destination"`
196- FieldMappings []ClickPipeFieldMapping `json:"fieldMappings"`
231+ FieldMappings []ClickPipeFieldMapping `json:"fieldMappings,omitempty "`
197232 Settings map [string ]any `json:"settings,omitempty"`
198233 CreatedAt * time.Time `json:"createdAt,omitempty"`
199234 UpdatedAt * time.Time `json:"updatedAt,omitempty"`
0 commit comments