@@ -378,7 +378,7 @@ data Status = Status { ok :: Maybe Bool
378378
379379data IndexSettings =
380380 IndexSettings { indexShards :: ShardCount
381− , indexReplicas :: ReplicaCount } deriving (Eq, Show, Generic)
381+ , indexReplicas :: ReplicaCount } deriving (Eq, Show, Generic, Typeable)
382382
383383{-| 'defaultIndexSettings' is an 'IndexSettings' with 3 shards and 2 replicas. -}
384384defaultIndexSettings :: IndexSettings
@@ -436,7 +436,7 @@ data UpdatableIndexSetting = NumberOfReplicas ReplicaCount
436436 | IndexCompoundFormat CompoundFormat
437437 | IndexCompoundOnFlush Bool
438438 | WarmerEnabled Bool
439− deriving (Eq, Show, Generic)
439+ deriving (Eq, Show, Generic, Typeable)
440440
441441data AllocationPolicy = AllocAll
442442 -- ^ Allows shard allocation for all shards.
@@ -446,42 +446,42 @@ data AllocationPolicy = AllocAll
446446 -- ^ Allows shard allocation only for primary shards for new indices.
447447 | AllocNone
448448 -- ^ No shard allocation is allowed
449− deriving (Eq, Show, Generic)
449+ deriving (Eq, Show, Generic, Typeable)
450450
451451data ReplicaBounds = ReplicasBounded Int Int
452452 | ReplicasLowerBounded Int
453453 | ReplicasUnbounded
454− deriving (Eq, Show, Generic)
454+ deriving (Eq, Show, Generic, Typeable)
455455
456−newtype Bytes = Bytes Int deriving (Eq, Show, Generic, Ord, ToJSON, FromJSON)
456+newtype Bytes = Bytes Int deriving (Eq, Show, Generic, Typeable, Ord, ToJSON, FromJSON)
457457
458458data FSType = FSSimple
459− | FSBuffered deriving (Eq, Show, Generic, Ord)
459+ | FSBuffered deriving (Eq, Show, Generic, Typeable, Ord)
460460
461461data InitialShardCount = QuorumShards
462462 | QuorumMinus1Shards
463463 | FullShards
464464 | FullMinus1Shards
465465 | ExplicitShards Int
466− deriving (Eq, Show, Generic)
466+ deriving (Eq, Show, Generic, Typeable)
467467
468468data NodeAttrFilter = NodeAttrFilter { nodeAttrFilterName :: NodeAttrName
469469 , nodeAttrFilterValues :: NonEmpty Text}
470470 deriving (Eq, Show, Generic, Ord)
471471
472−newtype NodeAttrName = NodeAttrName Text deriving (Eq, Show, Ord, Generic)
472+newtype NodeAttrName = NodeAttrName Text deriving (Eq, Show, Ord, Generic, Typeable)
473473
474474data CompoundFormat = CompoundFileFormat Bool
475475 | MergeSegmentVsTotalIndex Double
476476 -- ^ percentage between 0 and 1 where 0 is false, 1 is true
477− deriving (Eq, Show, Generic)
477+ deriving (Eq, Show, Generic, Typeable)
478478
479479newtype NominalDiffTimeJSON = NominalDiffTimeJSON { ndtJSON :: NominalDiffTime }
480480
481481data IndexSettingsSummary = IndexSettingsSummary { sSummaryIndexName :: IndexName
482482 , sSummaryFixedSettings :: IndexSettings
483483 , sSummaryUpdateable :: [UpdatableIndexSetting]}
484− deriving (Eq, Show, Generic)
484+ deriving (Eq, Show, Generic, Typeable)
485485
486486{-| 'Reply' and 'Method' are type synonyms from 'Network.HTTP.Types.Method.Method' -}
487487type Reply = Network.HTTP.Client.Response L.ByteString
@@ -491,7 +491,7 @@ type Method = NHTM.Method
491491
492492 <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html>
493493-}
494−data OpenCloseIndex = OpenIndex | CloseIndex deriving (Eq, Show, Generic)
494+data OpenCloseIndex = OpenIndex | CloseIndex deriving (Eq, Show, Generic, Typeable)
495495
496496data FieldType = GeoPointType
497497 | GeoShapeType
@@ -499,10 +499,10 @@ data FieldType = GeoPointType
499499 | IntegerType
500500 | LongType
501501 | ShortType
502− | ByteType deriving (Eq, Show, Generic)
502+ | ByteType deriving (Eq, Show, Generic, Typeable)
503503
504504data FieldDefinition =
505− FieldDefinition { fieldType :: FieldType } deriving (Eq, Show, Generic)
505+ FieldDefinition { fieldType :: FieldType } deriving (Eq, Show, Generic, Typeable)
506506
507507{-| An 'IndexTemplate' defines a template that will automatically be
508508 applied to new indices created. The templates include both
@@ -520,7 +520,7 @@ data IndexTemplate =
520520
521521data MappingField =
522522 MappingField { mappingFieldName :: FieldName
523− , fieldDefinition :: FieldDefinition } deriving (Eq, Show, Generic)
523+ , fieldDefinition :: FieldDefinition } deriving (Eq, Show, Generic, Typeable)
524524
525525{-| Support for type reification of 'Mapping's is currently incomplete, for
526526 now the mapping API verbiage expects a 'ToJSON'able blob.
@@ -530,7 +530,7 @@ data MappingField =
530530 and keeping different kinds of documents separated if possible.
531531-}
532532data Mapping = Mapping { typeName :: TypeName
533− , mappingFields :: [MappingField] } deriving (Eq, Show, Generic)
533+ , mappingFields :: [MappingField] } deriving (Eq, Show, Generic, Typeable)
534534
535535{-| 'BulkOperation' is a sum type for expressing the four kinds of bulk
536536 operation index, create, delete, and update. 'BulkIndex' behaves like an
@@ -542,7 +542,7 @@ data BulkOperation =
542542 BulkIndex IndexName MappingName DocId Value
543543 | BulkCreate IndexName MappingName DocId Value
544544 | BulkDelete IndexName MappingName DocId
545− | BulkUpdate IndexName MappingName DocId Value deriving (Eq, Show, Generic)
545+ | BulkUpdate IndexName MappingName DocId Value deriving (Eq, Show, Generic, Typeable)
546546
547547{-| 'EsResult' describes the standard wrapper JSON document that you see in
548548 successful Elasticsearch lookups or lookups that couldn't find the document.
@@ -550,23 +550,23 @@ data BulkOperation =
550550data EsResult a = EsResult { _index :: Text
551551 , _type :: Text
552552 , _id :: Text
553− , foundResult :: Maybe (EsResultFound a)} deriving (Eq, Show, Generic)
553+ , foundResult :: Maybe (EsResultFound a)} deriving (Eq, Show, Generic, Typeable)
554554
555555{-| 'EsResultFound' contains the document and its metadata inside of an
556556 'EsResult' when the document was successfully found.
557557-}
558558data EsResultFound a = EsResultFound { _version :: DocVersion
559− , _source :: a } deriving (Eq, Show, Generic)
559+ , _source :: a } deriving (Eq, Show, Generic, Typeable)
560560
561561{-| 'EsError' is the generic type that will be returned when there was a
562562 problem. If you can't parse the expected response, its a good idea to
563563 try parsing this.
564564-}
565565data EsError = EsError { errorStatus :: Int
566− , errorMessage :: Text } deriving (Eq, Show, Generic)
566+ , errorMessage :: Text } deriving (Eq, Show, Generic, Typeable)
567567
568568data IndexAlias = IndexAlias { srcIndex :: IndexName
569− , indexAlias :: IndexAliasName } deriving (Eq, Show, Generic)
569+ , indexAlias :: IndexAliasName } deriving (Eq, Show, Generic, Typeable)
570570
571571newtype IndexAliasName = IndexAliasName { indexAliasName :: IndexName } deriving (Eq, Show, Generic, ToJSON)
572572
@@ -591,7 +591,7 @@ newtype IndexAliasesSummary = IndexAliasesSummary { indexAliasesSummary :: [Inde
591591
592592{-| 'IndexAliasSummary' is a summary of an index alias configured for a server. -}
593593data IndexAliasSummary = IndexAliasSummary { indexAliasSummaryAlias :: IndexAlias
594− , indexAliasSummaryCreate :: IndexAliasCreate} deriving (Show, Eq, Generic)
594+ , indexAliasSummaryCreate :: IndexAliasCreate} deriving (Show, Eq, Generic, Typeable)
595595
596596{-| 'DocVersion' is an integer version number for a document between 1
597597and 9.2e+18 used for <<https://www.elastic.co/guide/en/elasticsearch/guide/current/optimistic-concurrency-control.html optimistic concurrency control>>.
@@ -651,7 +651,7 @@ data VersionControl = NoVersionControl
651651{-| 'DocumentParent' is used to specify a parent document.
652652-}
653653newtype DocumentParent = DocumentParent DocId
654− deriving (Eq, Show, Generic)
654+ deriving (Eq, Show, Generic, Typeable)
655655
656656{-| 'IndexDocumentSettings' are special settings supplied when indexing
657657a document. For the best backwards compatiblity when new fields are
@@ -660,7 +660,7 @@ added, you should probably prefer to start with 'defaultIndexDocumentSettings'
660660data IndexDocumentSettings =
661661 IndexDocumentSettings { idsVersionControl :: VersionControl
662662 , idsParent :: Maybe DocumentParent
663− } deriving (Eq, Show, Generic)
663+ } deriving (Eq, Show, Generic, Typeable)
664664
665665{-| Reasonable default settings. Chooses no version control and no parent.
666666-}
@@ -680,7 +680,7 @@ type Sort = [SortSpec]
680680<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>
681681-}
682682data SortSpec = DefaultSortSpec DefaultSort
683− | GeoDistanceSortSpec SortOrder GeoPoint DistanceUnit deriving (Eq, Show, Generic)
683+ | GeoDistanceSortSpec SortOrder GeoPoint DistanceUnit deriving (Eq, Show, Generic, Typeable)
684684
685685{-| 'DefaultSort' is usually the kind of 'SortSpec' you'll want. There's a
686686 'mkSort' convenience function for when you want to specify only the most
@@ -695,7 +695,7 @@ data DefaultSort =
695695 , ignoreUnmapped :: Bool
696696 , sortMode :: Maybe SortMode
697697 , missingSort :: Maybe Missing
698− , nestedFilter :: Maybe Filter } deriving (Eq, Show, Generic)
698+ , nestedFilter :: Maybe Filter } deriving (Eq, Show, Generic, Typeable)
699699
700700{-| 'SortOrder' is 'Ascending' or 'Descending', as you might expect. These get
701701 encoded into "asc" or "desc" when turned into JSON.
@@ -703,7 +703,7 @@ data DefaultSort =
703703<http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html#search-request-sort>
704704-}
705705data SortOrder = Ascending
706− | Descending deriving (Eq, Show, Generic)
706+ | Descending deriving (Eq, Show, Generic, Typeable)
707707
708708{-| 'Missing' prescribes how to handle missing fields. A missing field can be
709709 sorted last, first, or using a custom value as a substitute.
@@ -712,7 +712,7 @@ data SortOrder = Ascending
712712-}
713713data Missing = LastMissing
714714 | FirstMissing
715− | CustomMissing Text deriving (Eq, Show, Generic)
715+ | CustomMissing Text deriving (Eq, Show, Generic, Typeable)
716716
717717{-| 'SortMode' prescribes how to handle sorting array/multi-valued fields.
718718
@@ -721,7 +721,7 @@ http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-req
721721data SortMode = SortMin
722722 | SortMax
723723 | SortSum
724− | SortAvg deriving (Eq, Show, Generic)
724+ | SortAvg deriving (Eq, Show, Generic, Typeable)
725725
726726{-| 'mkSort' defaults everything but the 'FieldName' and the 'SortOrder' so
727727 that you can concisely describe the usual kind of 'SortSpec's you want.
@@ -755,7 +755,7 @@ newtype ReplicaCount = ReplicaCount Int deriving (Eq, Show, Generic, ToJSON, Typ
755755
756756{-| 'Server' is used with the client functions to point at the ES instance
757757-}
758−newtype Server = Server Text deriving (Eq, Show, Generic)
758+newtype Server = Server Text deriving (Eq, Show, Generic, Typeable)
759759
760760{-| 'IndexName' is used to describe which index to query/create/delete
761761-}
@@ -793,7 +793,7 @@ newtype FieldName = FieldName Text deriving (Eq, Show, Generic, ToJSON, FromJSON
793793{-| 'Script' is often used in place of 'FieldName' to specify more
794794complex ways of extracting a value from a document.
795795-}
796−newtype Script = Script { scriptText :: Text } deriving (Eq, Show, Generic)
796+newtype Script = Script { scriptText :: Text } deriving (Eq, Show, Generic, Typeable)
797797
798798{-| 'CacheName' is used in 'RegexpFilter' for describing the
799799 'CacheKey' keyed caching behavior.
@@ -914,7 +914,7 @@ data Search = Search { queryBody :: Maybe Query
914914 , size :: Size
915915 , searchType :: SearchType
916916 , fields :: Maybe [FieldName]
917− , source :: Maybe Source } deriving (Eq, Show, Generic)
917+ , source :: Maybe Source } deriving (Eq, Show, Generic, Typeable)
918918
919919data SearchType = SearchTypeQueryThenFetch
920920 | SearchTypeDfsQueryThenFetch
@@ -922,40 +922,40 @@ data SearchType = SearchTypeQueryThenFetch
922922 | SearchTypeScan
923923 | SearchTypeQueryAndFetch
924924 | SearchTypeDfsQueryAndFetch
925− deriving (Eq, Show, Generic)
925+ deriving (Eq, Show, Generic, Typeable)
926926
927927data Source =
928928 NoSource
929929 | SourcePatterns PatternOrPatterns
930930 | SourceIncludeExclude Include Exclude
931− deriving (Show, Eq, Generic)
931+ deriving (Show, Eq, Generic, Typeable)
932932
933933data PatternOrPatterns = PopPattern Pattern
934− | PopPatterns [Pattern] deriving (Eq, Show, Generic)
934+ | PopPatterns [Pattern] deriving (Eq, Show, Generic, Typeable)
935935
936−data Include = Include [Pattern] deriving (Eq, Show, Generic)
937−data Exclude = Exclude [Pattern] deriving (Eq, Show, Generic)
936+data Include = Include [Pattern] deriving (Eq, Show, Generic, Typeable)
937+data Exclude = Exclude [Pattern] deriving (Eq, Show, Generic, Typeable)
938938
939−newtype Pattern = Pattern Text deriving (Eq, Show, Generic)
939+newtype Pattern = Pattern Text deriving (Eq, Show, Generic, Typeable)
940940
941941data Highlights = Highlights { globalsettings :: Maybe HighlightSettings
942942 , highlightFields :: [FieldHighlight]
943− } deriving (Show, Eq, Generic)
943+ } deriving (Show, Eq, Generic, Typeable)
944944
945945data FieldHighlight = FieldHighlight FieldName (Maybe HighlightSettings)
946− deriving (Show, Eq, Generic)
946+ deriving (Show, Eq, Generic, Typeable)
947947
948948
949949data HighlightSettings = Plain PlainHighlight
950950 | Postings PostingsHighlight
951951 | FastVector FastVectorHighlight
952− deriving (Show, Eq, Generic)
952+ deriving (Show, Eq, Generic, Typeable)
953953data PlainHighlight =
954954 PlainHighlight { plainCommon :: Maybe CommonHighlight
955− , plainNonPost :: Maybe NonPostings } deriving (Show, Eq, Generic)
955+ , plainNonPost :: Maybe NonPostings } deriving (Show, Eq, Generic, Typeable)
956956
957957 -- This requires that index_options are set to 'offset' in the mapping.
958−data PostingsHighlight = PostingsHighlight (Maybe CommonHighlight) deriving (Show, Eq, Generic)
958+data PostingsHighlight = PostingsHighlight (Maybe CommonHighlight) deriving (Show, Eq, Generic, Typeable)
959959
960960-- This requires that term_vector is set to 'with_positions_offsets' in the mapping.
961961data FastVectorHighlight =
@@ -966,7 +966,7 @@ data FastVectorHighlight =
966966 , fragmentOffset :: Maybe Int
967967 , matchedFields :: [Text]
968968 , phraseLimit :: Maybe Int
969− } deriving (Show, Eq, Generic)
969+ } deriving (Show, Eq, Generic, Typeable)
970970
971971data CommonHighlight =
972972 CommonHighlight { order :: Maybe Text
@@ -976,21 +976,21 @@ data CommonHighlight =
976976 , noMatchSize :: Maybe Int
977977 , highlightQuery :: Maybe Query
978978 , requireFieldMatch :: Maybe Bool
979− } deriving (Show, Eq, Generic)
979+ } deriving (Show, Eq, Generic, Typeable)
980980
981981-- Settings that are only applicable to FastVector and Plain highlighters.
982982data NonPostings =
983983 NonPostings { fragmentSize :: Maybe Int
984− , numberOfFragments :: Maybe Int} deriving (Show, Eq, Generic)
984+ , numberOfFragments :: Maybe Int} deriving (Show, Eq, Generic, Typeable)
985985
986986data HighlightEncoder = DefaultEncoder
987987 | HTMLEncoder
988− deriving (Show, Eq, Generic)
988+ deriving (Show, Eq, Generic, Typeable)
989989
990990-- NOTE: Should the tags use some kind of HTML type, rather than Text?
991991data HighlightTag = TagSchema Text
992992 | CustomTags ([Text], [Text]) -- Only uses more than the first value in the lists if fvh
993− deriving (Show, Eq, Generic)
993+ deriving (Show, Eq, Generic, Typeable)
994994
995995
996996data Query =
@@ -1335,24 +1335,24 @@ newtype Regexp = Regexp Text deriving (Eq, Show, Generic, FromJSON)
13351335
13361336data RegexpFlags = AllRegexpFlags
13371337 | NoRegexpFlags
1338− | SomeRegexpFlags (NonEmpty RegexpFlag) deriving (Eq, Show, Generic)
1338+ | SomeRegexpFlags (NonEmpty RegexpFlag) deriving (Eq, Show, Generic, Typeable)
13391339
13401340data RegexpFlag = AnyString
13411341 | Automaton
13421342 | Complement
13431343 | Empty
13441344 | Intersection
1345− | Interval deriving (Eq, Show, Generic)
1345+ | Interval deriving (Eq, Show, Generic, Typeable)
13461346
1347−newtype LessThan = LessThan Double deriving (Eq, Show, Generic)
1348−newtype LessThanEq = LessThanEq Double deriving (Eq, Show, Generic)
1349−newtype GreaterThan = GreaterThan Double deriving (Eq, Show, Generic)
1350−newtype GreaterThanEq = GreaterThanEq Double deriving (Eq, Show, Generic)
1347+newtype LessThan = LessThan Double deriving (Eq, Show, Generic, Typeable)
1348+newtype LessThanEq = LessThanEq Double deriving (Eq, Show, Generic, Typeable)
1349+newtype GreaterThan = GreaterThan Double deriving (Eq, Show, Generic, Typeable)
1350+newtype GreaterThanEq = GreaterThanEq Double deriving (Eq, Show, Generic, Typeable)
13511351
1352−newtype LessThanD = LessThanD UTCTime deriving (Eq, Show, Generic)
1353−newtype LessThanEqD = LessThanEqD UTCTime deriving (Eq, Show, Generic)
1354−newtype GreaterThanD = GreaterThanD UTCTime deriving (Eq, Show, Generic)
1355−newtype GreaterThanEqD = GreaterThanEqD UTCTime deriving (Eq, Show, Generic)
1352+newtype LessThanD = LessThanD UTCTime deriving (Eq, Show, Generic, Typeable)
1353+newtype LessThanEqD = LessThanEqD UTCTime deriving (Eq, Show, Generic, Typeable)
1354+newtype GreaterThanD = GreaterThanD UTCTime deriving (Eq, Show, Generic, Typeable)
1355+newtype GreaterThanEqD = GreaterThanEqD UTCTime deriving (Eq, Show, Generic, Typeable)
13561356
13571357data RangeValue = RangeDateLte LessThanEqD
13581358 | RangeDateLt LessThanD
@@ -1370,7 +1370,7 @@ data RangeValue = RangeDateLte LessThanEqD
13701370 | RangeDoubleGteLte GreaterThanEq LessThanEq
13711371 | RangeDoubleGteLt GreaterThanEq LessThan
13721372 | RangeDoubleGtLte GreaterThan LessThanEq
1373− deriving (Eq, Show, Generic)
1373+ deriving (Eq, Show, Generic, Typeable)
13741374
13751375rangeValueToPair :: RangeValue -> [Pair]
13761376rangeValueToPair rv = case rv of
@@ -1443,7 +1443,7 @@ data Distance =
14431443
14441444data DistanceRange =
14451445 DistanceRange { distanceFrom :: Distance
1446− , distanceTo :: Distance } deriving (Eq, Show, Generic)
1446+ , distanceTo :: Distance } deriving (Eq, Show, Generic, Typeable)
14471447
14481448data SearchResult a =
14491449 SearchResult { took :: Int
@@ -1451,7 +1451,7 @@ data SearchResult a =
14511451 , shards :: ShardResult
14521452 , searchHits :: SearchHits a
14531453 , aggregations :: Maybe AggregationResults
1454− , scrollId :: Maybe ScrollId } deriving (Eq, Show, Generic)
1454+ , scrollId :: Maybe ScrollId } deriving (Eq, Show, Generic, Typeable)
14551455
14561456newtype ScrollId = ScrollId Text deriving (Eq, Show, Generic, Ord, ToJSON, FromJSON)
14571457
@@ -1460,7 +1460,7 @@ type Score = Maybe Double
14601460data SearchHits a =
14611461 SearchHits { hitsTotal :: Int
14621462 , maxScore :: Score
1463− , hits :: [Hit a] } deriving (Eq, Show, Generic)
1463+ , hits :: [Hit a] } deriving (Eq, Show, Generic, Typeable)
14641464
14651465
14661466instance Monoid (SearchHits a) where
@@ -1475,12 +1475,12 @@ data Hit a =
14751475 , hitDocId :: DocId
14761476 , hitScore :: Score
14771477 , hitSource :: Maybe a
1478− , hitHighlight :: Maybe HitHighlight } deriving (Eq, Show, Generic)
1478+ , hitHighlight :: Maybe HitHighlight } deriving (Eq, Show, Generic, Typeable)
14791479
14801480data ShardResult =
14811481 ShardResult { shardTotal :: Int
14821482 , shardsSuccessful :: Int
1483− , shardsFailed :: Int } deriving (Eq, Show, Generic)
1483+ , shardsFailed :: Int } deriving (Eq, Show, Generic, Typeable)
14841484
14851485type HitHighlight = M.Map Text [Text]
14861486
@@ -1504,19 +1504,19 @@ mkAggregations :: Text -> Aggregation -> Aggregations
15041504mkAggregations name aggregation = M.insert name aggregation emptyAggregations
15051505
15061506data TermOrder = TermOrder{ termSortField :: Text
1507− , termSortOrder :: SortOrder } deriving (Eq, Show, Generic)
1507+ , termSortOrder :: SortOrder } deriving (Eq, Show, Generic, Typeable)
15081508
15091509data TermInclusion = TermInclusion Text
1510− | TermPattern Text Text deriving (Eq, Show, Generic)
1510+ | TermPattern Text Text deriving (Eq, Show, Generic, Typeable)
15111511
15121512data CollectionMode = BreadthFirst
1513− | DepthFirst deriving (Eq, Show, Generic)
1513+ | DepthFirst deriving (Eq, Show, Generic, Typeable)
15141514
15151515data ExecutionHint = Ordinals
15161516 | GlobalOrdinals
15171517 | GlobalOrdinalsHash
15181518 | GlobalOrdinalsLowCardinality
1519− | Map deriving (Eq, Show, Generic)
1519+ | Map deriving (Eq, Show, Generic, Typeable)
15201520
15211521data TimeInterval = Weeks
15221522 | Days
@@ -1532,13 +1532,13 @@ data Interval = Year
15321532 | Hour
15331533 | Minute
15341534 | Second
1535− | FractionalInterval Float TimeInterval deriving (Eq, Show, Generic)
1535+ | FractionalInterval Float TimeInterval deriving (Eq, Show, Generic, Typeable)
15361536
15371537data Aggregation = TermsAgg TermsAggregation
15381538 | DateHistogramAgg DateHistogramAggregation
15391539 | ValueCountAgg ValueCountAggregation
15401540 | FilterAgg FilterAggregation
1541− | DateRangeAgg DateRangeAggregation deriving (Eq, Show, Generic)
1541+ | DateRangeAgg DateRangeAggregation deriving (Eq, Show, Generic, Typeable)
15421542
15431543
15441544data TermsAggregation = TermsAggregation { term :: Either Text Text
@@ -1551,7 +1551,7 @@ data TermsAggregation = TermsAggregation { term :: Either Text Text
15511551 , termCollectMode :: Maybe CollectionMode
15521552 , termExecutionHint :: Maybe ExecutionHint
15531553 , termAggs :: Maybe Aggregations
1554− } deriving (Eq, Show, Generic)
1554+ } deriving (Eq, Show, Generic, Typeable)
15551555
15561556data DateHistogramAggregation = DateHistogramAggregation { dateField :: FieldName
15571557 , dateInterval :: Interval
@@ -1562,29 +1562,29 @@ data DateHistogramAggregation = DateHistogramAggregation { dateField :: Fie
15621562 , datePreOffset :: Maybe Text
15631563 , datePostOffset :: Maybe Text
15641564 , dateAggs :: Maybe Aggregations
1565− } deriving (Eq, Show, Generic)
1565+ } deriving (Eq, Show, Generic, Typeable)
15661566
15671567
15681568data DateRangeAggregation = DateRangeAggregation { draField :: FieldName
15691569 , draFormat :: Maybe Text
15701570 , draRanges :: NonEmpty DateRangeAggRange
1571− } deriving (Eq, Show, Generic)
1571+ } deriving (Eq, Show, Generic, Typeable)
15721572
15731573data DateRangeAggRange = DateRangeFrom DateMathExpr
15741574 | DateRangeTo DateMathExpr
1575− | DateRangeFromAndTo DateMathExpr DateMathExpr deriving (Eq, Show, Generic)
1575+ | DateRangeFromAndTo DateMathExpr DateMathExpr deriving (Eq, Show, Generic, Typeable)
15761576
15771577-- | See <https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#date-math> for more information.
1578−data DateMathExpr = DateMathExpr DateMathAnchor [DateMathModifier] deriving (Eq, Show, Generic)
1578+data DateMathExpr = DateMathExpr DateMathAnchor [DateMathModifier] deriving (Eq, Show, Generic, Typeable)
15791579
15801580
15811581-- | Starting point for a date range. This along with the 'DateMathModifiers' gets you the date ES will start from.
15821582data DateMathAnchor = DMNow
1583− | DMDate Day deriving (Eq, Show, Generic)
1583+ | DMDate Day deriving (Eq, Show, Generic, Typeable)
15841584
15851585data DateMathModifier = AddTime Int DateMathUnit
15861586 | SubtractTime Int DateMathUnit
1587− | RoundDownTo DateMathUnit deriving (Eq, Show, Generic)
1587+ | RoundDownTo DateMathUnit deriving (Eq, Show, Generic, Typeable)
15881588
15891589data DateMathUnit = DMYear
15901590 | DMMonth
@@ -1592,15 +1592,15 @@ data DateMathUnit = DMYear
15921592 | DMDay
15931593 | DMHour
15941594 | DMMinute
1595− | DMSecond deriving (Eq, Show, Generic)
1595+ | DMSecond deriving (Eq, Show, Generic, Typeable)
15961596
15971597-- | See <https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-valuecount-aggregation.html> for more information.
15981598data ValueCountAggregation = FieldValueCount FieldName
1599− | ScriptValueCount Script deriving (Eq, Show, Generic)
1599+ | ScriptValueCount Script deriving (Eq, Show, Generic, Typeable)
16001600
16011601-- | Single-bucket filter aggregations. See <https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html#search-aggregations-bucket-filter-aggregation> for more information.
16021602data FilterAggregation = FilterAggregation { faFilter :: Filter
1603− , faAggs :: Maybe Aggregations} deriving (Eq, Show, Generic)
1603+ , faAggs :: Maybe Aggregations} deriving (Eq, Show, Generic, Typeable)
16041604
16051605mkTermsAggregation :: Text -> TermsAggregation
16061606mkTermsAggregation t = TermsAggregation (Left t) Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing
@@ -1756,7 +1756,7 @@ data DateRangeResult = DateRangeResult { dateRangeKey :: Text
17561756 , dateRangeTo :: Maybe UTCTime
17571757 , dateRangeToAsString :: Maybe Text
17581758 , dateRangeDocCount :: Int
1759− , dateRangeAggs :: Maybe AggregationResults } deriving (Show, Eq, Generic)
1759+ , dateRangeAggs :: Maybe AggregationResults } deriving (Show, Eq, Generic, Typeable)
17601760
17611761toTerms :: Text -> AggregationResults -> Maybe (Bucket TermsResult)
17621762toTerms t a = M.lookup t a >>= deserialize