packages feed

hydra-ext-0.17.0: src/main/haskell/Hydra/Kusto/Kql.hs

-- Note: this is an automatically generated file. Do not edit.
-- | A partial KQL (Kusto Query Language) model, based on examples from the documentation. Not normative.

module Hydra.Kusto.Kql where
import qualified Hydra.Core as Core
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.Scientific as Sci
import qualified Data.Int as I
data BetweenExpression =
  BetweenExpression {
    betweenExpressionNot :: Bool,
    betweenExpressionExpression :: Expression,
    betweenExpressionLowerBound :: Expression,
    betweenExpressionUpperBound :: Expression}
  deriving (Eq, Ord, Read, Show)
_BetweenExpression = Core.Name "hydra.kusto.kql.BetweenExpression"
_BetweenExpression_not = Core.Name "not"
_BetweenExpression_expression = Core.Name "expression"
_BetweenExpression_lowerBound = Core.Name "lowerBound"
_BetweenExpression_upperBound = Core.Name "upperBound"
data BinaryExpression =
  BinaryExpression {
    binaryExpressionLeft :: Expression,
    binaryExpressionOperator :: BinaryOperator,
    binaryExpressionRight :: Expression}
  deriving (Eq, Ord, Read, Show)
_BinaryExpression = Core.Name "hydra.kusto.kql.BinaryExpression"
_BinaryExpression_left = Core.Name "left"
_BinaryExpression_operator = Core.Name "operator"
_BinaryExpression_right = Core.Name "right"
data BinaryOperator =
  BinaryOperatorCaseInsensitiveEqual |
  BinaryOperatorContains |
  BinaryOperatorDivide |
  BinaryOperatorEndsWith |
  BinaryOperatorEqual |
  BinaryOperatorGreater |
  BinaryOperatorGreaterOrEqual |
  BinaryOperatorHas |
  BinaryOperatorHasPrefix |
  BinaryOperatorHasSuffix |
  BinaryOperatorLess |
  BinaryOperatorLessOrEqual |
  BinaryOperatorMatchesRegex |
  BinaryOperatorMinus |
  BinaryOperatorNotEqual |
  BinaryOperatorPlus |
  BinaryOperatorStartsWith |
  BinaryOperatorTimes
  deriving (Eq, Ord, Read, Show)
_BinaryOperator = Core.Name "hydra.kusto.kql.BinaryOperator"
_BinaryOperator_caseInsensitiveEqual = Core.Name "caseInsensitiveEqual"
_BinaryOperator_contains = Core.Name "contains"
_BinaryOperator_divide = Core.Name "divide"
_BinaryOperator_endsWith = Core.Name "endsWith"
_BinaryOperator_equal = Core.Name "equal"
_BinaryOperator_greater = Core.Name "greater"
_BinaryOperator_greaterOrEqual = Core.Name "greaterOrEqual"
_BinaryOperator_has = Core.Name "has"
_BinaryOperator_hasPrefix = Core.Name "hasPrefix"
_BinaryOperator_hasSuffix = Core.Name "hasSuffix"
_BinaryOperator_less = Core.Name "less"
_BinaryOperator_lessOrEqual = Core.Name "lessOrEqual"
_BinaryOperator_matchesRegex = Core.Name "matchesRegex"
_BinaryOperator_minus = Core.Name "minus"
_BinaryOperator_notEqual = Core.Name "notEqual"
_BinaryOperator_plus = Core.Name "plus"
_BinaryOperator_startsWith = Core.Name "startsWith"
_BinaryOperator_times = Core.Name "times"
data BuiltInFunction =
  BuiltInFunctionAgo |
  BuiltInFunctionBin |
  BuiltInFunctionCount |
  BuiltInFunctionDcount |
  BuiltInFunctionEndofday |
  BuiltInFunctionExtract |
  BuiltInFunctionFormat_datetime |
  BuiltInFunctionMaterialize |
  BuiltInFunctionNow |
  BuiltInFunctionRange |
  BuiltInFunctionStartofday |
  BuiltInFunctionStrcat |
  BuiltInFunctionTodynamic
  deriving (Eq, Ord, Read, Show)
_BuiltInFunction = Core.Name "hydra.kusto.kql.BuiltInFunction"
_BuiltInFunction_ago = Core.Name "ago"
_BuiltInFunction_bin = Core.Name "bin"
_BuiltInFunction_count = Core.Name "count"
_BuiltInFunction_dcount = Core.Name "dcount"
_BuiltInFunction_endofday = Core.Name "endofday"
_BuiltInFunction_extract = Core.Name "extract"
_BuiltInFunction_format_datetime = Core.Name "format_datetime"
_BuiltInFunction_materialize = Core.Name "materialize"
_BuiltInFunction_now = Core.Name "now"
_BuiltInFunction_range = Core.Name "range"
_BuiltInFunction_startofday = Core.Name "startofday"
_BuiltInFunction_strcat = Core.Name "strcat"
_BuiltInFunction_todynamic = Core.Name "todynamic"
data ColumnAlias =
  ColumnAlias {
    columnAliasColumn :: ColumnName,
    columnAliasAlias :: ColumnName}
  deriving (Eq, Ord, Read, Show)
_ColumnAlias = Core.Name "hydra.kusto.kql.ColumnAlias"
_ColumnAlias_column = Core.Name "column"
_ColumnAlias_alias = Core.Name "alias"
data ColumnAssignment =
  ColumnAssignment {
    columnAssignmentColumn :: ColumnName,
    columnAssignmentExpression :: Expression}
  deriving (Eq, Ord, Read, Show)
_ColumnAssignment = Core.Name "hydra.kusto.kql.ColumnAssignment"
_ColumnAssignment_column = Core.Name "column"
_ColumnAssignment_expression = Core.Name "expression"
newtype ColumnName =
  ColumnName {
    unColumnName :: String}
  deriving (Eq, Ord, Read, Show)
_ColumnName = Core.Name "hydra.kusto.kql.ColumnName"
data Columns =
  ColumnsAll |
  ColumnsSingle ColumnName
  deriving (Eq, Ord, Read, Show)
_Columns = Core.Name "hydra.kusto.kql.Columns"
_Columns_all = Core.Name "all"
_Columns_single = Core.Name "single"
data Command =
  CommandCount |
  -- | See https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/distinct-operator
  CommandDistinct [ColumnName] |
  CommandExtend [ColumnAssignment] |
  CommandJoin JoinCommand |
  CommandLimit Int |
  CommandMvexpand ColumnName |
  CommandOrderBy [SortBy] |
  CommandParse ParseCommand |
  CommandPrint PrintCommand |
  CommandProject [Projection] |
  CommandProjectAway [ColumnName] |
  CommandProjectRename [ColumnAlias] |
  CommandRender String |
  CommandSearch SearchCommand |
  CommandSortBy [SortBy] |
  CommandSummarize SummarizeCommand |
  -- | Limit a search to a specified number of results
  CommandTake Int |
  CommandTop TopCommand |
  CommandUnion UnionCommand |
  CommandWhere Expression
  deriving (Eq, Ord, Read, Show)
_Command = Core.Name "hydra.kusto.kql.Command"
_Command_count = Core.Name "count"
_Command_distinct = Core.Name "distinct"
_Command_extend = Core.Name "extend"
_Command_join = Core.Name "join"
_Command_limit = Core.Name "limit"
_Command_mvexpand = Core.Name "mvexpand"
_Command_orderBy = Core.Name "orderBy"
_Command_parse = Core.Name "parse"
_Command_print = Core.Name "print"
_Command_project = Core.Name "project"
_Command_projectAway = Core.Name "projectAway"
_Command_projectRename = Core.Name "projectRename"
_Command_render = Core.Name "render"
_Command_search = Core.Name "search"
_Command_sortBy = Core.Name "sortBy"
_Command_summarize = Core.Name "summarize"
_Command_take = Core.Name "take"
_Command_top = Core.Name "top"
_Command_union = Core.Name "union"
_Command_where = Core.Name "where"
newtype Datetime =
  Datetime {
    unDatetime :: String}
  deriving (Eq, Ord, Read, Show)
_Datetime = Core.Name "hydra.kusto.kql.Datetime"
data Duration =
  Duration {
    durationValue :: Int,
    durationUnit :: DurationUnit}
  deriving (Eq, Ord, Read, Show)
_Duration = Core.Name "hydra.kusto.kql.Duration"
_Duration_value = Core.Name "value"
_Duration_unit = Core.Name "unit"
data DurationUnit =
  DurationUnitSecond |
  DurationUnitMinute |
  DurationUnitHour
  deriving (Eq, Ord, Read, Show)
_DurationUnit = Core.Name "hydra.kusto.kql.DurationUnit"
_DurationUnit_second = Core.Name "second"
_DurationUnit_minute = Core.Name "minute"
_DurationUnit_hour = Core.Name "hour"
data Expression =
  ExpressionAnd [Expression] |
  ExpressionAny |
  ExpressionBetween BetweenExpression |
  ExpressionBinary BinaryExpression |
  ExpressionBraces Expression |
  ExpressionColumn ColumnName |
  ExpressionDataset TableName |
  ExpressionIndex IndexExpression |
  ExpressionList [Expression] |
  ExpressionLiteral Literal |
  ExpressionOr [Expression] |
  ExpressionParentheses Expression |
  ExpressionProperty PropertyExpression |
  ExpressionUnary UnaryExpression
  deriving (Eq, Ord, Read, Show)
_Expression = Core.Name "hydra.kusto.kql.Expression"
_Expression_and = Core.Name "and"
_Expression_any = Core.Name "any"
_Expression_between = Core.Name "between"
_Expression_binary = Core.Name "binary"
_Expression_braces = Core.Name "braces"
_Expression_column = Core.Name "column"
_Expression_dataset = Core.Name "dataset"
_Expression_index = Core.Name "index"
_Expression_list = Core.Name "list"
_Expression_literal = Core.Name "literal"
_Expression_or = Core.Name "or"
_Expression_parentheses = Core.Name "parentheses"
_Expression_property = Core.Name "property"
_Expression_unary = Core.Name "unary"
data Function =
  FunctionBuiltIn BuiltInFunction |
  FunctionCustom FunctionName
  deriving (Eq, Ord, Read, Show)
_Function = Core.Name "hydra.kusto.kql.Function"
_Function_builtIn = Core.Name "builtIn"
_Function_custom = Core.Name "custom"
data FunctionExpression =
  FunctionExpression {
    functionExpressionFunction :: Function,
    functionExpressionArguments :: [Expression]}
  deriving (Eq, Ord, Read, Show)
_FunctionExpression = Core.Name "hydra.kusto.kql.FunctionExpression"
_FunctionExpression_function = Core.Name "function"
_FunctionExpression_arguments = Core.Name "arguments"
newtype FunctionName =
  FunctionName {
    unFunctionName :: String}
  deriving (Eq, Ord, Read, Show)
_FunctionName = Core.Name "hydra.kusto.kql.FunctionName"
data IndexExpression =
  IndexExpression {
    indexExpressionExpression :: Expression,
    indexExpressionIndex :: String}
  deriving (Eq, Ord, Read, Show)
_IndexExpression = Core.Name "hydra.kusto.kql.IndexExpression"
_IndexExpression_expression = Core.Name "expression"
_IndexExpression_index = Core.Name "index"
data JoinCommand =
  JoinCommand {
    joinCommandKind :: JoinKind,
    joinCommandExpression :: TableName,
    joinCommandOn :: Expression}
  deriving (Eq, Ord, Read, Show)
_JoinCommand = Core.Name "hydra.kusto.kql.JoinCommand"
_JoinCommand_kind = Core.Name "kind"
_JoinCommand_expression = Core.Name "expression"
_JoinCommand_on = Core.Name "on"
data JoinKind =
  JoinKindLeftouter |
  JoinKindLeftsemi |
  JoinKindLeftanti |
  JoinKindFullouter |
  JoinKindInner |
  JoinKindInnerunique |
  JoinKindRightouter |
  JoinKindRightsemi |
  JoinKindRightanti
  deriving (Eq, Ord, Read, Show)
_JoinKind = Core.Name "hydra.kusto.kql.JoinKind"
_JoinKind_leftouter = Core.Name "leftouter"
_JoinKind_leftsemi = Core.Name "leftsemi"
_JoinKind_leftanti = Core.Name "leftanti"
_JoinKind_fullouter = Core.Name "fullouter"
_JoinKind_inner = Core.Name "inner"
_JoinKind_innerunique = Core.Name "innerunique"
_JoinKind_rightouter = Core.Name "rightouter"
_JoinKind_rightsemi = Core.Name "rightsemi"
_JoinKind_rightanti = Core.Name "rightanti"
data KeyValuePair =
  KeyValuePair {
    keyValuePairKey :: String,
    keyValuePairValue :: Expression}
  deriving (Eq, Ord, Read, Show)
_KeyValuePair = Core.Name "hydra.kusto.kql.KeyValuePair"
_KeyValuePair_key = Core.Name "key"
_KeyValuePair_value = Core.Name "value"
data LetBinding =
  LetBinding {
    letBindingName :: ColumnName,
    letBindingExpression :: Expression}
  deriving (Eq, Ord, Read, Show)
_LetBinding = Core.Name "hydra.kusto.kql.LetBinding"
_LetBinding_name = Core.Name "name"
_LetBinding_expression = Core.Name "expression"
data LetExpression =
  LetExpression {
    letExpressionBindings :: [LetBinding],
    letExpressionExpression :: TabularExpression}
  deriving (Eq, Ord, Read, Show)
_LetExpression = Core.Name "hydra.kusto.kql.LetExpression"
_LetExpression_bindings = Core.Name "bindings"
_LetExpression_expression = Core.Name "expression"
data Literal =
  LiteralDuration Duration |
  LiteralDatetime Datetime |
  LiteralString String |
  LiteralInt Int |
  LiteralLong I.Int64 |
  LiteralDouble Double |
  LiteralBoolean Bool
  deriving (Eq, Ord, Read, Show)
_Literal = Core.Name "hydra.kusto.kql.Literal"
_Literal_duration = Core.Name "duration"
_Literal_datetime = Core.Name "datetime"
_Literal_string = Core.Name "string"
_Literal_int = Core.Name "int"
_Literal_long = Core.Name "long"
_Literal_double = Core.Name "double"
_Literal_boolean = Core.Name "boolean"
data Order =
  OrderAscending |
  OrderDescending
  deriving (Eq, Ord, Read, Show)
_Order = Core.Name "hydra.kusto.kql.Order"
_Order_ascending = Core.Name "ascending"
_Order_descending = Core.Name "descending"
data Parameter =
  Parameter {
    parameterKey :: String,
    parameterValue :: Literal}
  deriving (Eq, Ord, Read, Show)
_Parameter = Core.Name "hydra.kusto.kql.Parameter"
_Parameter_key = Core.Name "key"
_Parameter_value = Core.Name "value"
data ParseCommand =
  ParseCommand {
    parseCommandColumn :: ColumnName,
    parseCommandPairs :: [KeyValuePair]}
  deriving (Eq, Ord, Read, Show)
_ParseCommand = Core.Name "hydra.kusto.kql.ParseCommand"
_ParseCommand_column = Core.Name "column"
_ParseCommand_pairs = Core.Name "pairs"
newtype PipelineExpression =
  PipelineExpression {
    unPipelineExpression :: [TabularExpression]}
  deriving (Eq, Ord, Read, Show)
_PipelineExpression = Core.Name "hydra.kusto.kql.PipelineExpression"
data PrintCommand =
  PrintCommand {
    printCommandColumn :: (Maybe ColumnName),
    printCommandExpression :: Expression}
  deriving (Eq, Ord, Read, Show)
_PrintCommand = Core.Name "hydra.kusto.kql.PrintCommand"
_PrintCommand_column = Core.Name "column"
_PrintCommand_expression = Core.Name "expression"
data Projection =
  Projection {
    projectionExpression :: Expression,
    projectionAlias :: (Maybe ColumnName)}
  deriving (Eq, Ord, Read, Show)
_Projection = Core.Name "hydra.kusto.kql.Projection"
_Projection_expression = Core.Name "expression"
_Projection_alias = Core.Name "alias"
data PropertyExpression =
  PropertyExpression {
    propertyExpressionExpression :: Expression,
    propertyExpressionProperty :: String}
  deriving (Eq, Ord, Read, Show)
_PropertyExpression = Core.Name "hydra.kusto.kql.PropertyExpression"
_PropertyExpression_expression = Core.Name "expression"
_PropertyExpression_property = Core.Name "property"
newtype Query =
  Query {
    unQuery :: TabularExpression}
  deriving (Eq, Ord, Read, Show)
_Query = Core.Name "hydra.kusto.kql.Query"
-- | Search across all datasets and columns or, if provided, specific datasets and/or columns
data SearchCommand =
  SearchCommand {
    searchCommandDatasets :: [TableName],
    searchCommandPattern :: Expression}
  deriving (Eq, Ord, Read, Show)
_SearchCommand = Core.Name "hydra.kusto.kql.SearchCommand"
_SearchCommand_datasets = Core.Name "datasets"
_SearchCommand_pattern = Core.Name "pattern"
data SummarizeCommand =
  SummarizeCommand {
    summarizeCommandColumns :: [ColumnAssignment],
    summarizeCommandBy :: [ColumnName]}
  deriving (Eq, Ord, Read, Show)
_SummarizeCommand = Core.Name "hydra.kusto.kql.SummarizeCommand"
_SummarizeCommand_columns = Core.Name "columns"
_SummarizeCommand_by = Core.Name "by"
newtype TableName =
  TableName {
    unTableName :: String}
  deriving (Eq, Ord, Read, Show)
_TableName = Core.Name "hydra.kusto.kql.TableName"
data TopCommand =
  TopCommand {
    topCommandCount :: Int,
    topCommandSort :: [SortBy]}
  deriving (Eq, Ord, Read, Show)
_TopCommand = Core.Name "hydra.kusto.kql.TopCommand"
_TopCommand_count = Core.Name "count"
_TopCommand_sort = Core.Name "sort"
data SortBy =
  SortBy {
    sortByColumn :: ColumnName,
    sortByOrder :: (Maybe Order)}
  deriving (Eq, Ord, Read, Show)
_SortBy = Core.Name "hydra.kusto.kql.SortBy"
_SortBy_column = Core.Name "column"
_SortBy_order = Core.Name "order"
data TabularExpression =
  TabularExpressionCommand Command |
  TabularExpressionPipeline PipelineExpression |
  TabularExpressionLet LetExpression |
  TabularExpressionTable TableName
  deriving (Eq, Ord, Read, Show)
_TabularExpression = Core.Name "hydra.kusto.kql.TabularExpression"
_TabularExpression_command = Core.Name "command"
_TabularExpression_pipeline = Core.Name "pipeline"
_TabularExpression_let = Core.Name "let"
_TabularExpression_table = Core.Name "table"
data UnaryExpression =
  UnaryExpression {
    unaryExpressionOperator :: UnaryOperator,
    unaryExpressionExpression :: Expression}
  deriving (Eq, Ord, Read, Show)
_UnaryExpression = Core.Name "hydra.kusto.kql.UnaryExpression"
_UnaryExpression_operator = Core.Name "operator"
_UnaryExpression_expression = Core.Name "expression"
data UnaryOperator =
  UnaryOperatorNot
  deriving (Eq, Ord, Read, Show)
_UnaryOperator = Core.Name "hydra.kusto.kql.UnaryOperator"
_UnaryOperator_not = Core.Name "not"
data UnionCommand =
  UnionCommand {
    unionCommandParameters :: [Parameter],
    unionCommandKind :: (Maybe UnionKind),
    unionCommandWithSource :: (Maybe ColumnName),
    unionCommandIsFuzzy :: (Maybe Bool),
    unionCommandTables :: [TableName]}
  deriving (Eq, Ord, Read, Show)
_UnionCommand = Core.Name "hydra.kusto.kql.UnionCommand"
_UnionCommand_parameters = Core.Name "parameters"
_UnionCommand_kind = Core.Name "kind"
_UnionCommand_withSource = Core.Name "withSource"
_UnionCommand_isFuzzy = Core.Name "isFuzzy"
_UnionCommand_tables = Core.Name "tables"
data UnionKind =
  UnionKindInner |
  UnionKindOuter
  deriving (Eq, Ord, Read, Show)
_UnionKind = Core.Name "hydra.kusto.kql.UnionKind"
_UnionKind_inner = Core.Name "inner"
_UnionKind_outer = Core.Name "outer"