Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import static io.airbyte.protocol.models.JsonSchemaReferenceTypes.TIMESTAMP_WITHOUT_TIMEZONE_REFERENCE;
import static io.airbyte.protocol.models.JsonSchemaReferenceTypes.TIMESTAMP_WITH_TIMEZONE_REFERENCE;
import static io.airbyte.protocol.models.JsonSchemaReferenceTypes.TIME_WITHOUT_TIMEZONE_REFERENCE;
import static io.airbyte.protocol.models.JsonSchemaReferenceTypes.GEOMETRY_REFERENCE;
import static io.airbyte.protocol.models.JsonSchemaReferenceTypes.TIME_WITH_TIMEZONE_REFERENCE;

import java.util.Map;
Expand All @@ -39,7 +40,8 @@ public enum JsonSchemaPrimitive {
TIME_WITHOUT_TIMEZONE_V1,
NUMBER_V1,
INTEGER_V1,
BOOLEAN_V1;
BOOLEAN_V1,
GEOMETRY_V1;
}

public static final Set<JsonSchemaPrimitive> VO_JSON_SCHEMA_PRIMITIVE_SET =
Expand Down Expand Up @@ -67,6 +69,7 @@ public static final boolean isV0Schema(final JsonSchemaPrimitive type) {
JsonSchemaPrimitive.TIME_WITHOUT_TIMEZONE_V1, TIME_WITHOUT_TIMEZONE_REFERENCE,
JsonSchemaPrimitive.NUMBER_V1, NUMBER_REFERENCE,
JsonSchemaPrimitive.INTEGER_V1, INTEGER_REFERENCE,
JsonSchemaPrimitive.BOOLEAN_V1, BOOLEAN_REFERENCE);
JsonSchemaPrimitive.BOOLEAN_V1, BOOLEAN_REFERENCE,
JsonSchemaPrimitive.GEOMETRY_V1, GEOMETRY_REFERENCE);

}
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public class JsonSchemaReferenceTypes {
public static final String TIMESTAMP_WITHOUT_TIMEZONE_REFERENCE = WELL_KNOWN_TYPES_FILENAME + "#/definitions/TimestampWithoutTimezone";
public static final String TIME_WITH_TIMEZONE_REFERENCE = WELL_KNOWN_TYPES_FILENAME + "#/definitions/TimeWithTimezone";
public static final String TIME_WITHOUT_TIMEZONE_REFERENCE = WELL_KNOWN_TYPES_FILENAME + "#/definitions/TimeWithoutTimezone";
public static final String GEOMETRY_REFERENCE = WELL_KNOWN_TYPES_FILENAME + "#/definitions/Geometry";

/**
* This is primarily useful for migrating from protocol v0 to v1. It provides a mapping from the old
Expand All @@ -50,7 +51,8 @@ public class JsonSchemaReferenceTypes {
"string", STRING_REFERENCE,
"number", NUMBER_REFERENCE,
"boolean", BOOLEAN_REFERENCE,
"date", DATE_REFERENCE);
"date", DATE_REFERENCE,
"geometry", GEOMETRY_REFERENCE);

public static final Map<String, ObjectNode> REFERENCE_TYPE_TO_OLD_TYPE = Map.of(
TIMESTAMP_WITH_TIMEZONE_REFERENCE,
Expand Down Expand Up @@ -93,6 +95,10 @@ public class JsonSchemaReferenceTypes {
BINARY_DATA_REFERENCE, (ObjectNode) Jsons.deserialize(
"""
{"type": "string", "contentEncoding": "base64"}
"""),
GEOMETRY_REFERENCE, (ObjectNode) Jsons.deserialize(
"""
{"type": "object"}
"""));

}
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public class JsonSchemaType {
public static final JsonSchemaType NUMBER_V1 = JsonSchemaType.builder(JsonSchemaPrimitive.NUMBER_V1).build();
public static final JsonSchemaType INTEGER_V1 = JsonSchemaType.builder(JsonSchemaPrimitive.INTEGER_V1).build();
public static final JsonSchemaType BOOLEAN_V1 = JsonSchemaType.builder(JsonSchemaPrimitive.BOOLEAN_V1).build();
public static final JsonSchemaType GEOMETRY_V1 = JsonSchemaType.builder(JsonSchemaPrimitive.GEOMETRY_V1).build();

public static final JsonSchemaType STRING = JsonSchemaType.builder(JsonSchemaPrimitive.STRING).build();
public static final JsonSchemaType NUMBER = JsonSchemaType.builder(JsonSchemaPrimitive.NUMBER).build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,17 @@ definitions:
Boolean:
type: boolean
description: Note the direct usage of a primitive boolean rather than string. Unlike Numbers and Integers, we don't expect unusual values here.
Geometry:
type: object
description: >
Spatial data represented as GeoJSON FeatureCollection.
Contains geographic information including geometries and their associated properties.
Assumes EPSG:4326 coordinate reference system.
properties:
type:
type: string
enum: [FeatureCollection]
features:
type: array
items:
type: object
Loading