packages feed

hydra-0.1.0: src/gen-main/haskell/Hydra/Ext/Avro/Schema.hs

-- | A model for Avro schemas. Based on the Avro 1.11.1 specification:
-- |   https://avro.apache.org/docs/1.11.1/specification)

module Hydra.Ext.Avro.Schema where

import qualified Hydra.Core as Core
import qualified Hydra.Ext.Json.Model as Model
import Data.List
import Data.Map
import Data.Set

data Array = 
  Array {
    arrayItems :: Schema}
  deriving (Eq, Ord, Read, Show)

_Array = (Core.Name "hydra/ext/avro/schema.Array")

_Array_items = (Core.FieldName "items")

data Enum_ = 
  Enum_ {
    -- | a JSON array, listing symbols, as JSON strings. All symbols in an enum must be unique; duplicates are prohibited. Every symbol must match the regular expression [A-Za-z_][A-Za-z0-9_]* (the same requirement as for names)
    enumSymbols :: [String],
    -- | A default value for this enumeration, used during resolution when the reader encounters a symbol from the writer that isn’t defined in the reader’s schema. The value provided here must be a JSON string that’s a member of the symbols array
    enumDefault :: (Maybe String)}
  deriving (Eq, Ord, Read, Show)

_Enum = (Core.Name "hydra/ext/avro/schema.Enum")

_Enum_symbols = (Core.FieldName "symbols")

_Enum_default = (Core.FieldName "default")

data Field = 
  Field {
    -- | a JSON string providing the name of the field
    fieldName :: String,
    -- | a JSON string describing this field for users
    fieldDoc :: (Maybe String),
    -- | a schema
    fieldType :: Schema,
    -- | default value for this field, only used when reading instances that lack the field for schema evolution purposes
    fieldDefault :: (Maybe Model.Value),
    -- | specifies how this field impacts sort ordering of this record
    fieldOrder :: (Maybe Order),
    -- | a JSON array of strings, providing alternate names for this field
    fieldAliases :: (Maybe [String]),
    -- | Any additional key/value pairs attached to the field
    fieldAnnotations :: (Map String Model.Value)}
  deriving (Eq, Ord, Read, Show)

_Field = (Core.Name "hydra/ext/avro/schema.Field")

_Field_name = (Core.FieldName "name")

_Field_doc = (Core.FieldName "doc")

_Field_type = (Core.FieldName "type")

_Field_default = (Core.FieldName "default")

_Field_order = (Core.FieldName "order")

_Field_aliases = (Core.FieldName "aliases")

_Field_annotations = (Core.FieldName "annotations")

data Fixed = 
  Fixed {
    -- | an integer, specifying the number of bytes per value
    fixedSize :: Int}
  deriving (Eq, Ord, Read, Show)

_Fixed = (Core.Name "hydra/ext/avro/schema.Fixed")

_Fixed_size = (Core.FieldName "size")

data Map_ = 
  Map_ {
    mapValues :: Schema}
  deriving (Eq, Ord, Read, Show)

_Map = (Core.Name "hydra/ext/avro/schema.Map")

_Map_values = (Core.FieldName "values")

data Named = 
  Named {
    -- | a string naming this schema
    namedName :: String,
    -- | a string that qualifies the name
    namedNamespace :: (Maybe String),
    -- | a JSON array of strings, providing alternate names for this schema
    namedAliases :: (Maybe [String]),
    -- | a JSON string providing documentation to the user of this schema
    namedDoc :: (Maybe String),
    namedType :: NamedType,
    -- | Any additional key/value pairs attached to the type
    namedAnnotations :: (Map String Model.Value)}
  deriving (Eq, Ord, Read, Show)

_Named = (Core.Name "hydra/ext/avro/schema.Named")

_Named_name = (Core.FieldName "name")

_Named_namespace = (Core.FieldName "namespace")

_Named_aliases = (Core.FieldName "aliases")

_Named_doc = (Core.FieldName "doc")

_Named_type = (Core.FieldName "type")

_Named_annotations = (Core.FieldName "annotations")

data NamedType = 
  NamedTypeEnum Enum_ |
  NamedTypeFixed Fixed |
  NamedTypeRecord Record
  deriving (Eq, Ord, Read, Show)

_NamedType = (Core.Name "hydra/ext/avro/schema.NamedType")

_NamedType_enum = (Core.FieldName "enum")

_NamedType_fixed = (Core.FieldName "fixed")

_NamedType_record = (Core.FieldName "record")

data Order = 
  OrderAscending  |
  OrderDescending  |
  OrderIgnore 
  deriving (Eq, Ord, Read, Show)

_Order = (Core.Name "hydra/ext/avro/schema.Order")

_Order_ascending = (Core.FieldName "ascending")

_Order_descending = (Core.FieldName "descending")

_Order_ignore = (Core.FieldName "ignore")

data Primitive = 
  -- | no value
  PrimitiveNull  |
  -- | A binary value
  PrimitiveBoolean  |
  -- | 32-bit signed integer
  PrimitiveInt  |
  -- | 64-bit signed integer
  PrimitiveLong  |
  -- | single precision (32-bit) IEEE 754 floating-point number
  PrimitiveFloat  |
  -- | double precision (64-bit) IEEE 754 floating-point number
  PrimitiveDouble  |
  -- | sequence of 8-bit unsigned bytes
  PrimitiveBytes  |
  -- | unicode character sequence
  PrimitiveString 
  deriving (Eq, Ord, Read, Show)

_Primitive = (Core.Name "hydra/ext/avro/schema.Primitive")

_Primitive_null = (Core.FieldName "null")

_Primitive_boolean = (Core.FieldName "boolean")

_Primitive_int = (Core.FieldName "int")

_Primitive_long = (Core.FieldName "long")

_Primitive_float = (Core.FieldName "float")

_Primitive_double = (Core.FieldName "double")

_Primitive_bytes = (Core.FieldName "bytes")

_Primitive_string = (Core.FieldName "string")

data Record = 
  Record {
    -- | a JSON array, listing fields
    recordFields :: [Field]}
  deriving (Eq, Ord, Read, Show)

_Record = (Core.Name "hydra/ext/avro/schema.Record")

_Record_fields = (Core.FieldName "fields")

data Schema = 
  SchemaArray Array |
  SchemaMap Map_ |
  SchemaNamed Named |
  SchemaPrimitive Primitive |
  -- | A reference by name to a previously defined type
  SchemaReference String |
  SchemaUnion Union
  deriving (Eq, Ord, Read, Show)

_Schema = (Core.Name "hydra/ext/avro/schema.Schema")

_Schema_array = (Core.FieldName "array")

_Schema_map = (Core.FieldName "map")

_Schema_named = (Core.FieldName "named")

_Schema_primitive = (Core.FieldName "primitive")

_Schema_reference = (Core.FieldName "reference")

_Schema_union = (Core.FieldName "union")

newtype Union = 
  Union {
    unUnion :: [Schema]}
  deriving (Eq, Ord, Read, Show)

_Union = (Core.Name "hydra/ext/avro/schema.Union")