packages feed

hydra-0.1.0: src/gen-main/haskell/Hydra/Ext/Pegasus/Pdl.hs

-- | A model for PDL (Pegasus Data Language) schemas. Based on the specification at:
-- |   https://linkedin.github.io/rest.li/pdl_schema

module Hydra.Ext.Pegasus.Pdl where

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

-- | Annotations which can be applied to record fields, aliased union members, enum symbols, or named schemas
data Annotations = 
  Annotations {
    annotationsDoc :: (Maybe String),
    annotationsDeprecated :: Bool}
  deriving (Eq, Ord, Read, Show)

_Annotations = (Core.Name "hydra/ext/pegasus/pdl.Annotations")

_Annotations_doc = (Core.FieldName "doc")

_Annotations_deprecated = (Core.FieldName "deprecated")

data EnumField = 
  EnumField {
    enumFieldName :: EnumFieldName,
    enumFieldAnnotations :: Annotations}
  deriving (Eq, Ord, Read, Show)

_EnumField = (Core.Name "hydra/ext/pegasus/pdl.EnumField")

_EnumField_name = (Core.FieldName "name")

_EnumField_annotations = (Core.FieldName "annotations")

newtype EnumFieldName = 
  EnumFieldName {
    unEnumFieldName :: String}
  deriving (Eq, Ord, Read, Show)

_EnumFieldName = (Core.Name "hydra/ext/pegasus/pdl.EnumFieldName")

data EnumSchema = 
  EnumSchema {
    enumSchemaFields :: [EnumField]}
  deriving (Eq, Ord, Read, Show)

_EnumSchema = (Core.Name "hydra/ext/pegasus/pdl.EnumSchema")

_EnumSchema_fields = (Core.FieldName "fields")

newtype FieldName = 
  FieldName {
    unFieldName :: String}
  deriving (Eq, Ord, Read, Show)

_FieldName = (Core.Name "hydra/ext/pegasus/pdl.FieldName")

data NamedSchema = 
  NamedSchema {
    namedSchemaQualifiedName :: QualifiedName,
    namedSchemaType :: NamedSchema_Type,
    namedSchemaAnnotations :: Annotations}
  deriving (Eq, Ord, Read, Show)

_NamedSchema = (Core.Name "hydra/ext/pegasus/pdl.NamedSchema")

_NamedSchema_qualifiedName = (Core.FieldName "qualifiedName")

_NamedSchema_type = (Core.FieldName "type")

_NamedSchema_annotations = (Core.FieldName "annotations")

data NamedSchema_Type = 
  NamedSchema_TypeRecord RecordSchema |
  NamedSchema_TypeEnum EnumSchema |
  NamedSchema_TypeTyperef Schema
  deriving (Eq, Ord, Read, Show)

_NamedSchema_Type = (Core.Name "hydra/ext/pegasus/pdl.NamedSchema.Type")

_NamedSchema_Type_record = (Core.FieldName "record")

_NamedSchema_Type_enum = (Core.FieldName "enum")

_NamedSchema_Type_typeref = (Core.FieldName "typeref")

newtype Name = 
  Name {
    unName :: String}
  deriving (Eq, Ord, Read, Show)

_Name = (Core.Name "hydra/ext/pegasus/pdl.Name")

newtype Namespace = 
  Namespace {
    unNamespace :: String}
  deriving (Eq, Ord, Read, Show)

_Namespace = (Core.Name "hydra/ext/pegasus/pdl.Namespace")

newtype Package = 
  Package {
    unPackage :: String}
  deriving (Eq, Ord, Read, Show)

_Package = (Core.Name "hydra/ext/pegasus/pdl.Package")

data PrimitiveType = 
  PrimitiveTypeBoolean  |
  PrimitiveTypeBytes  |
  PrimitiveTypeDouble  |
  PrimitiveTypeFloat  |
  PrimitiveTypeInt  |
  PrimitiveTypeLong  |
  PrimitiveTypeString 
  deriving (Eq, Ord, Read, Show)

_PrimitiveType = (Core.Name "hydra/ext/pegasus/pdl.PrimitiveType")

_PrimitiveType_boolean = (Core.FieldName "boolean")

_PrimitiveType_bytes = (Core.FieldName "bytes")

_PrimitiveType_double = (Core.FieldName "double")

_PrimitiveType_float = (Core.FieldName "float")

_PrimitiveType_int = (Core.FieldName "int")

_PrimitiveType_long = (Core.FieldName "long")

_PrimitiveType_string = (Core.FieldName "string")

newtype PropertyKey = 
  PropertyKey {
    unPropertyKey :: String}
  deriving (Eq, Ord, Read, Show)

_PropertyKey = (Core.Name "hydra/ext/pegasus/pdl.PropertyKey")

data Property = 
  Property {
    propertyKey :: PropertyKey,
    propertyValue :: (Maybe Model.Value)}
  deriving (Eq, Ord, Read, Show)

_Property = (Core.Name "hydra/ext/pegasus/pdl.Property")

_Property_key = (Core.FieldName "key")

_Property_value = (Core.FieldName "value")

data QualifiedName = 
  QualifiedName {
    qualifiedNameName :: Name,
    qualifiedNameNamespace :: (Maybe Namespace)}
  deriving (Eq, Ord, Read, Show)

_QualifiedName = (Core.Name "hydra/ext/pegasus/pdl.QualifiedName")

_QualifiedName_name = (Core.FieldName "name")

_QualifiedName_namespace = (Core.FieldName "namespace")

data RecordField = 
  RecordField {
    recordFieldName :: FieldName,
    recordFieldValue :: Schema,
    recordFieldOptional :: Bool,
    recordFieldDefault :: (Maybe Model.Value),
    recordFieldAnnotations :: Annotations}
  deriving (Eq, Ord, Read, Show)

_RecordField = (Core.Name "hydra/ext/pegasus/pdl.RecordField")

_RecordField_name = (Core.FieldName "name")

_RecordField_value = (Core.FieldName "value")

_RecordField_optional = (Core.FieldName "optional")

_RecordField_default = (Core.FieldName "default")

_RecordField_annotations = (Core.FieldName "annotations")

data RecordSchema = 
  RecordSchema {
    recordSchemaFields :: [RecordField],
    recordSchemaIncludes :: [NamedSchema]}
  deriving (Eq, Ord, Read, Show)

_RecordSchema = (Core.Name "hydra/ext/pegasus/pdl.RecordSchema")

_RecordSchema_fields = (Core.FieldName "fields")

_RecordSchema_includes = (Core.FieldName "includes")

data Schema = 
  SchemaArray Schema |
  SchemaFixed Int |
  SchemaInline NamedSchema |
  SchemaMap Schema |
  SchemaNamed QualifiedName |
  SchemaNull  |
  SchemaPrimitive PrimitiveType |
  SchemaUnion UnionSchema
  deriving (Eq, Ord, Read, Show)

_Schema = (Core.Name "hydra/ext/pegasus/pdl.Schema")

_Schema_array = (Core.FieldName "array")

_Schema_fixed = (Core.FieldName "fixed")

_Schema_inline = (Core.FieldName "inline")

_Schema_map = (Core.FieldName "map")

_Schema_named = (Core.FieldName "named")

_Schema_null = (Core.FieldName "null")

_Schema_primitive = (Core.FieldName "primitive")

_Schema_union = (Core.FieldName "union")

data SchemaFile = 
  SchemaFile {
    schemaFileNamespace :: Namespace,
    schemaFilePackage :: (Maybe Package),
    schemaFileImports :: [QualifiedName],
    schemaFileSchemas :: [NamedSchema]}
  deriving (Eq, Ord, Read, Show)

_SchemaFile = (Core.Name "hydra/ext/pegasus/pdl.SchemaFile")

_SchemaFile_namespace = (Core.FieldName "namespace")

_SchemaFile_package = (Core.FieldName "package")

_SchemaFile_imports = (Core.FieldName "imports")

_SchemaFile_schemas = (Core.FieldName "schemas")

data UnionMember = 
  UnionMember {
    unionMemberAlias :: (Maybe FieldName),
    unionMemberValue :: Schema,
    unionMemberAnnotations :: Annotations}
  deriving (Eq, Ord, Read, Show)

_UnionMember = (Core.Name "hydra/ext/pegasus/pdl.UnionMember")

_UnionMember_alias = (Core.FieldName "alias")

_UnionMember_value = (Core.FieldName "value")

_UnionMember_annotations = (Core.FieldName "annotations")

newtype UnionSchema = 
  UnionSchema {
    unUnionSchema :: [UnionMember]}
  deriving (Eq, Ord, Read, Show)

_UnionSchema = (Core.Name "hydra/ext/pegasus/pdl.UnionSchema")