Package-level declarations

Types

Link copied to clipboard
Link copied to clipboard
sealed class AirbyteType
Link copied to clipboard
sealed interface AirbyteValue
Link copied to clipboard

Utility class to coerce AirbyteValue to specific types. Does not support recursive coercion.

Link copied to clipboard
class AirbyteValueDeepCoercingMapper(recurseIntoObjects: Boolean, recurseIntoArrays: Boolean, recurseIntoUnions: Boolean) : AirbyteValueIdentityMapper

A mapper which coerces ALL values against the schema. This mapper MUST NOT be called after any mapper that returns non-native-JSON types (date, timestamp, etc.), or any mapper that causes the values to become misaligned with the schema (e.g. AirbyteSchemaNoopMapper + SchemalessValuesToJsonString).

Link copied to clipboard
open class AirbyteValueIdentityMapper(recurseIntoObjects: Boolean = true, recurseIntoArrays: Boolean = true, recurseIntoUnions: Boolean = true) : AirbyteValueMapper
Link copied to clipboard
class AirbyteValueJsonlProxy(data: ObjectNode) : AirbyteValueProxy
Link copied to clipboard
Link copied to clipboard

An optimized identity mapper that just passes through.

Link copied to clipboard
class AirbyteValueProtobufProxy(data: List<AirbyteRecordMessage.AirbyteValueProtobuf>) : AirbyteValueProxy

Protobuf is sent as an ordered list of AirbyteValues. Coherent access depends on the source and destination agreeing on the schema. Currently, this is alphabetical order by field name, as constraints on the socket implementation guarantee that source and destination will always see the same schema. Eventually this order needs to be set by the source with a header message.

Link copied to clipboard

Provides a universal view over raw data, agnostic of the serialization format. Fields are accessed with accessors that contain name, index, and type. The type indicates with method should be used.

Link copied to clipboard

Convenience class for testing.

Link copied to clipboard
data class ArrayType(val items: FieldType) : AirbyteType
Link copied to clipboard
Link copied to clipboard
value class ArrayValue(val values: List<AirbyteValue>) : AirbyteValue
Link copied to clipboard
data object BooleanType : AirbyteType
Link copied to clipboard
Link copied to clipboard
data object DateType : AirbyteType
Link copied to clipboard
Link copied to clipboard
class DestinationRecordToAirbyteValueWithMeta(val stream: DestinationStream, flatten: Boolean, extractedAtAsTimestampWithTimezone: Boolean, airbyteRawId: UUID)
Link copied to clipboard
class EnrichedAirbyteValue(var abValue: AirbyteValue, val type: AirbyteType, val name: String, val changes: MutableList<Meta.Change> = mutableListOf(), val airbyteMetaField: Meta.AirbyteMetaFields?)

Represents an "enriched" (/augmented) Airbyte value with additional metadata.

Link copied to clipboard

Intended for Avro and Parquet Conversions and similar use cases.

Link copied to clipboard
data class FieldType(val type: AirbyteType, val nullable: Boolean)
Link copied to clipboard
data object IntegerType : AirbyteType
Link copied to clipboard
Link copied to clipboard
class MapperPipeline(inputSchema: AirbyteType, schemaValueMapperPairs: List<Pair<AirbyteSchemaMapper, AirbyteValueMapper>>)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
class NullOutOfRangeIntegers(minValue: BigInteger = Long.MIN_VALUE.toBigInteger(), maxValue: BigInteger = Long.MAX_VALUE.toBigInteger()) : AirbyteValueIdentityMapper

Mapper for nulling out integers that are out of range. The default behavior is to null out integers that are outside the range of a 64-bit signed integer.

Link copied to clipboard
Link copied to clipboard
data object NumberType : AirbyteType
Link copied to clipboard
Link copied to clipboard
data class ObjectType(val properties: LinkedHashMap<String, FieldType>, val additionalProperties: Boolean = true, val required: List<String> = emptyList<String>()) : AirbyteType
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
class ProtobufTypeMismatchException(val streamName: String, val columnName: String, val expectedType: AirbyteType, val actualValueCase: AirbyteRecordMessage.AirbyteValueProtobuf.ValueCase) : RuntimeException

Exception thrown when a protobuf value type doesn't match the expected AirbyteType. This indicates that the source connector is using the wrong protobuf setter method for the declared schema type.

Link copied to clipboard
data object StringType : AirbyteType
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

NOTE: To keep parity with the old avro/parquet code, we will always first try to parse the value as with timezone, then fall back to without. But in theory we should be more strict.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class UnionType(val options: Set<AirbyteType>, val isLegacyUnion: Boolean) : AirbyteType
Link copied to clipboard
data class UnknownType(val schema: JsonNode) : AirbyteType

Functions

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun DestinationRecordAirbyteValue.dataWithAirbyteMeta(stream: DestinationStream, flatten: Boolean = false, extractedAtAsTimestampWithTimezone: Boolean = false, airbyteRawId: UUID): ObjectValue
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun Pair<AirbyteValue, List<Meta.Change>>.withAirbyteMeta(stream: DestinationStream, emittedAtMs: Long, flatten: Boolean = false, extractedAtAsTimestampWithTimezone: Boolean = false, airbyteRawId: UUID): ObjectValue