hydra-0.5.0: src/gen-main/haskell/Hydra/Langs/Kusto/Kql.hs
-- | A partial KQL (Kusto Query Language) model, based on examples from the documentation. Not normative.
module Hydra.Langs.Kusto.Kql where
import qualified Hydra.Core as Core
import Data.Int
import Data.List as L
import Data.Map as M
import Data.Set as S
data BetweenExpression =
BetweenExpression {
betweenExpressionNot :: Bool,
betweenExpressionExpression :: Expression,
betweenExpressionLowerBound :: Expression,
betweenExpressionUpperBound :: Expression}
deriving (Eq, Ord, Read, Show)
_BetweenExpression = (Core.Name "hydra/langs/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/langs/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/langs/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/langs/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/langs/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/langs/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/langs/kusto/kql.ColumnName")
data Columns =
ColumnsAll |
ColumnsSingle ColumnName
deriving (Eq, Ord, Read, Show)
_Columns = (Core.Name "hydra/langs/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/langs/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/langs/kusto/kql.Datetime")
data Duration =
Duration {
durationValue :: Int,
durationUnit :: DurationUnit}
deriving (Eq, Ord, Read, Show)
_Duration = (Core.Name "hydra/langs/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/langs/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/langs/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/langs/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/langs/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/langs/kusto/kql.FunctionName")
data IndexExpression =
IndexExpression {
indexExpressionExpression :: Expression,
indexExpressionIndex :: String}
deriving (Eq, Ord, Read, Show)
_IndexExpression = (Core.Name "hydra/langs/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/langs/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/langs/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/langs/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/langs/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/langs/kusto/kql.LetExpression")
_LetExpression_bindings = (Core.Name "bindings")
_LetExpression_expression = (Core.Name "expression")
data Literal =
LiteralDuration Duration |
LiteralDatetime Datetime |
LiteralString String |
LiteralInt Int |
LiteralLong Int64 |
LiteralDouble Double |
LiteralBoolean Bool
deriving (Eq, Ord, Read, Show)
_Literal = (Core.Name "hydra/langs/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/langs/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/langs/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/langs/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/langs/kusto/kql.PipelineExpression")
data PrintCommand =
PrintCommand {
printCommandColumn :: (Maybe ColumnName),
printCommandExpression :: Expression}
deriving (Eq, Ord, Read, Show)
_PrintCommand = (Core.Name "hydra/langs/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/langs/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/langs/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/langs/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/langs/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/langs/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/langs/kusto/kql.TableName")
data TopCommand =
TopCommand {
topCommandCount :: Int,
topCommandSort :: [SortBy]}
deriving (Eq, Ord, Read, Show)
_TopCommand = (Core.Name "hydra/langs/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/langs/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/langs/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/langs/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/langs/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/langs/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/langs/kusto/kql.UnionKind")
_UnionKind_inner = (Core.Name "inner")
_UnionKind_outer = (Core.Name "outer")