Oms API GET model - openmpp/openmpp.github.io GitHub Wiki
Get model definition: language-neutral part of model metadata.
Methods:
GET /api/model/:model
GET /api/model/:model/pack
Arguments:
:model - (required) model digest or model name
Model can be identified by digest or by model name. It is recommended to use digest because it is uniquely identifies model. It is possible to use model name, which is more human readable than digest, but if there are multiple models with same name in database than result is undefined.
Call examples:
http://localhost:4040/api/model/modelOne
http://localhost:4040/api/model/649f17f26d67c37b78dde94f79772445
http://localhost:4040/api/model/RiskPaths/pack
The /pack/
version of the method produce more compact output results.
For example range types are retrurned as [min, max]
enum id's only:
{
"ModelId": 101,
"TypeId": 103,
"TypeHid": 101,
"Name": "LIFE",
"Digest": "90bc3191bed66b07d1c7b9f88c42584c",
"DicId": 3,
"TotalEnumId": 101,
"IsRange": true,
"MinEnumId": 0,
"MaxEnumId": 100,
"Enum": null
},
And a regular method (without /pack/
) return a full list of enum type values:
{
"ModelId": 101,
"TypeId": 103,
"TypeHid": 101,
"Name": "LIFE",
"Digest": "90bc3191bed66b07d1c7b9f88c42584c",
"DicId": 3,
"TotalEnumId": 101,
"IsRange": true,
"MinEnumId": 0,
"MaxEnumId": 100,
"Enum": [{
"ModelId": 101,
"TypeId": 103,
"EnumId": 0,
"Name": "0"
},
................
................
{
"ModelId": 101,
"TypeId": 103,
"EnumId": 100,
"Name": "100"
}
]
}
Return example:
{
"Model": {
"ModelId": 1,
"Name": "modelOne",
"Digest": "_201208171604590148_",
"Type": 0,
"Version": "1.0",
"CreateDateTime": "2012-08-17 16:04:59.148",
"DefaultLangCode": "EN"
},
"Type": [
{
"ModelId": 1,
"TypeId": 4,
"TypeHid": 4,
"Name": "int",
"Digest": "_int_",
"DicId": 0,
"TotalEnumId": 1,
"Enum": null
},
{
"ModelId": 1,
"TypeId": 7,
"TypeHid": 7,
"Name": "bool",
"Digest": "_bool_",
"DicId": 1,
"TotalEnumId": 2,
"Enum": [
{
"ModelId": 1,
"TypeId": 7,
"EnumId": 0,
"Name": "false"
},
{
"ModelId": 1,
"TypeId": 7,
"EnumId": 1,
"Name": "true"
}
]
},
{
"ModelId": 1,
"TypeId": 14,
"TypeHid": 14,
"Name": "double",
"Digest": "_double_",
"DicId": 0,
"TotalEnumId": 1,
"Enum": null
},
{
"ModelId": 1,
"TypeId": 21,
"TypeHid": 21,
"Name": "file",
"Digest": "_file_",
"DicId": 0,
"TotalEnumId": 1,
"Enum": null
},
{
"ModelId": 1,
"TypeId": 101,
"TypeHid": 96,
"Name": "age",
"Digest": "_20128171604590121",
"DicId": 2,
"TotalEnumId": 500,
"Enum": [
{
"ModelId": 1,
"TypeId": 101,
"EnumId": 10,
"Name": "10-20"
},
{
"ModelId": 1,
"TypeId": 101,
"EnumId": 20,
"Name": "20-30"
},
{
"ModelId": 1,
"TypeId": 101,
"EnumId": 30,
"Name": "30-40"
},
{
"ModelId": 1,
"TypeId": 101,
"EnumId": 40,
"Name": "40+"
}
]
},
{
"ModelId": 1,
"TypeId": 102,
"TypeHid": 97,
"Name": "sex",
"Digest": "_20128171604590122",
"DicId": 2,
"TotalEnumId": 800,
"Enum": [
{
"ModelId": 1,
"TypeId": 102,
"EnumId": 0,
"Name": "M"
},
{
"ModelId": 1,
"TypeId": 102,
"EnumId": 1,
"Name": "F"
}
]
},
{
"ModelId": 1,
"TypeId": 103,
"TypeHid": 98,
"Name": "salary",
"Digest": "_20128171604590123",
"DicId": 2,
"TotalEnumId": 400,
"Enum": [
{
"ModelId": 1,
"TypeId": 103,
"EnumId": 100,
"Name": "L"
},
{
"ModelId": 1,
"TypeId": 103,
"EnumId": 200,
"Name": "M"
},
{
"ModelId": 1,
"TypeId": 103,
"EnumId": 300,
"Name": "H"
}
]
},
{
"ModelId": 1,
"TypeId": 104,
"TypeHid": 99,
"Name": "full",
"Digest": "_20128171604590124",
"DicId": 2,
"TotalEnumId": 44,
"Enum": [
{
"ModelId": 1,
"TypeId": 104,
"EnumId": 22,
"Name": "Full"
},
{
"ModelId": 1,
"TypeId": 104,
"EnumId": 33,
"Name": "Part"
}
]
}
],
"Param": [
{
"ModelId": 1,
"ParamId": 0,
"ParamHid": 44,
"Name": "ageSex",
"Digest": "_20128171604590131",
"Rank": 2,
"TypeId": 14,
"IsExtendable": true,
"IsHidden": false,
"NumCumulated": 0,
"DbRunTable": "ageSex_p_2012817",
"DbSetTable": "ageSex_w_2012817",
"ImportDigest": "_i0128171604590131",
"Dim": [
{
"ModelId": 1,
"ParamId": 0,
"DimId": 0,
"Name": "dim0",
"TypeId": 101
},
{
"ModelId": 1,
"ParamId": 0,
"DimId": 1,
"Name": "dim1",
"TypeId": 102
}
],
"Import": [
{
"ModelId": 1,
"ParamId": 0,
"FromName": "ageSexIncome",
"FromModel": "modelOne",
"IsSampleDim": false
}
]
},
{
"ModelId": 1,
"ParamId": 1,
"ParamHid": 45,
"Name": "salaryAge",
"Digest": "_20128171604590132",
"Rank": 2,
"TypeId": 4,
"IsExtendable": false,
"IsHidden": false,
"NumCumulated": 0,
"DbRunTable": "salaryAge_p_2012818",
"DbSetTable": "salaryAge_w_2012818",
"ImportDigest": "_i0128171604590132",
"Dim": [
{
"ModelId": 1,
"ParamId": 1,
"DimId": 0,
"Name": "dim0",
"TypeId": 103
},
{
"ModelId": 1,
"ParamId": 1,
"DimId": 1,
"Name": "dim1",
"TypeId": 101
}
],
"Import": [
{
"ModelId": 1,
"ParamId": 1,
"FromName": "salaryAge",
"FromModel": "modelOne",
"IsSampleDim": false
}
]
},
{
"ModelId": 1,
"ParamId": 2,
"ParamHid": 46,
"Name": "StartingSeed",
"Digest": "_20128171604590133",
"Rank": 0,
"TypeId": 4,
"IsExtendable": false,
"IsHidden": false,
"NumCumulated": 0,
"DbRunTable": "StartingSeed_p_2012819",
"DbSetTable": "StartingSeed_w_2012819",
"ImportDigest": "_i0128171604590133",
"Dim": null,
"Import": [
{
"ModelId": 1,
"ParamId": 2,
"FromName": "StartingSeed",
"FromModel": "modelOne",
"IsSampleDim": false
}
]
},
{
"ModelId": 1,
"ParamId": 3,
"ParamHid": 47,
"Name": "salaryFull",
"Digest": "_20128171604590134",
"Rank": 1,
"TypeId": 104,
"IsExtendable": false,
"IsHidden": false,
"NumCumulated": 0,
"DbRunTable": "salaryFull_p_2012812",
"DbSetTable": "salaryFull_w_2012812",
"ImportDigest": "_i0128171604590134",
"Dim": [
{
"ModelId": 1,
"ParamId": 3,
"DimId": 0,
"Name": "dim0",
"TypeId": 103
}
],
"Import": null
},
{
"ModelId": 1,
"ParamId": 4,
"ParamHid": 48,
"Name": "baseSalary",
"Digest": "_20128171604590135",
"Rank": 0,
"TypeId": 104,
"IsExtendable": false,
"IsHidden": false,
"NumCumulated": 0,
"DbRunTable": "baseSalary_p_2012811",
"DbSetTable": "baseSalary_w_2012811",
"ImportDigest": "_i0128171604590135",
"Dim": null,
"Import": null
},
{
"ModelId": 1,
"ParamId": 5,
"ParamHid": 49,
"Name": "filePath",
"Digest": "_20128171604590136",
"Rank": 0,
"TypeId": 21,
"IsExtendable": false,
"IsHidden": false,
"NumCumulated": 0,
"DbRunTable": "filePath_p_2012814",
"DbSetTable": "filePath_w_2012814",
"ImportDigest": "_i0128171604590136",
"Dim": null,
"Import": null
},
{
"ModelId": 1,
"ParamId": 6,
"ParamHid": 50,
"Name": "isOldAge",
"Digest": "_20128171604590137",
"Rank": 1,
"TypeId": 7,
"IsExtendable": false,
"IsHidden": false,
"NumCumulated": 0,
"DbRunTable": "isOldAge_p_2012815",
"DbSetTable": "isOldAge_w_2012815",
"ImportDigest": "_i0128171604590137",
"Dim": [
{
"ModelId": 1,
"ParamId": 6,
"DimId": 0,
"Name": "dim0",
"TypeId": 101
}
],
"Import": null
}
],
"Table": [
{
"ModelId": 1,
"TableId": 0,
"TableHid": 82,
"Name": "salarySex",
"Digest": "_20128171604590182",
"IsUser": false,
"Rank": 2,
"IsSparse": true,
"DbExprTable": "salarySex_v_2012882",
"DbAccTable": "salarySex_a_2012882",
"DbAccAllView": "salarySex_d_2012882",
"ExprPos": 1,
"IsHidden": false,
"ImportDigest": "_i0128171604590182",
"Dim": [
{
"ModelId": 1,
"TableId": 0,
"DimId": 0,
"Name": "dim0",
"TypeId": 103,
"IsTotal": false,
"DimSize": 3
},
{
"ModelId": 1,
"TableId": 0,
"DimId": 1,
"Name": "dim1",
"TypeId": 102,
"IsTotal": true,
"DimSize": 3
}
],
"Acc": [
{
"ModelId": 1,
"TableId": 0,
"AccId": 0,
"Name": "acc0",
"IsDerived": false,
"SrcAcc": "value_sum()",
"AccSql": "A.acc_value"
},
{
"ModelId": 1,
"TableId": 0,
"AccId": 1,
"Name": "acc1",
"IsDerived": false,
"SrcAcc": "value_count()",
"AccSql": "SELECT A1.acc_value FROM salarySex_a_2012882 A1 WHERE A1.run_id = A.run_id AND A1.sub_id = A.sub_id AND A1.dim0 = A.dim0 AND A1.dim1 = A.dim1 AND A1.acc_id = 1"
},
{
"ModelId": 1,
"TableId": 0,
"AccId": 2,
"Name": "acc2",
"IsDerived": true,
"SrcAcc": "acc0 + acc1",
"AccSql": "(A.acc_value) + (SELECT A1.acc_value FROM salarySex_a_2012882 A1 WHERE A1.run_id = A.run_id AND A1.sub_id = A.sub_id AND A1.dim0 = A.dim0 AND A1.dim1 = A.dim1 AND A1.acc_id = 1)"
}
],
"Expr": [
{
"ModelId": 1,
"TableId": 0,
"ExprId": 0,
"Name": "expr0",
"Decimals": 4,
"SrcExpr": "OM_AVG(acc0)",
"ExprSql": "SELECT M1.run_id, M1.dim0, M1.dim1, AVG(M1.acc_value) AS expr0 FROM salarySex_a_2012882 M1 WHERE M1.acc_id = 0 GROUP BY M1.run_id, M1.dim0, M1.dim1"
},
{
"ModelId": 1,
"TableId": 0,
"ExprId": 1,
"Name": "expr1",
"Decimals": 4,
"SrcExpr": "OM_SUM(acc1)",
"ExprSql": "SELECT M1.run_id, M1.dim0, M1.dim1, SUM(M1.acc_value) AS expr1 FROM salarySex_a_2012882 M1 WHERE M1.acc_id = 1 GROUP BY M1.run_id, M1.dim0, M1.dim1"
},
{
"ModelId": 1,
"TableId": 0,
"ExprId": 2,
"Name": "expr2",
"Decimals": 2,
"SrcExpr": "OM_MIN(acc0)",
"ExprSql": "SELECT M1.run_id, M1.dim0, M1.dim1, MIN(M1.acc_value) AS expr2 FROM salarySex_a_2012882 M1 WHERE M1.acc_id = 0 GROUP BY M1.run_id, M1.dim0, M1.dim1"
},
{
"ModelId": 1,
"TableId": 0,
"ExprId": 3,
"Name": "expr3",
"Decimals": 3,
"SrcExpr": "OM_AVG(acc0 * acc1)",
"ExprSql": "SELECT M1.run_id, M1.dim0, M1.dim1, AVG(M1.acc_value * A1.acc1) AS expr3 FROM salarySex_a_2012882 M1 INNER JOIN (SELECT run_id, dim0, dim1, sub_id, acc_value AS acc1 FROM salarySex_a_2012882 WHERE acc_id = 1) A1 ON (A1.run_id = M1.run_id AND A1.dim0 = M1.dim0 AND A1.dim1 = M1.dim1 AND A1.sub_id = M1.sub_id) WHERE M1.acc_id = 0 GROUP BY M1.run_id, M1.dim0, M1.dim1"
}
]
},
{
"ModelId": 1,
"TableId": 1,
"TableHid": 83,
"Name": "fullAgeSalary",
"Digest": "_20128171604590183",
"IsUser": false,
"Rank": 3,
"IsSparse": false,
"DbExprTable": "fullAgeSalary_v_2012883",
"DbAccTable": "fullAgeSalary_a_2012883",
"DbAccAllView": "fullAgeSalary_d_2012883",
"ExprPos": 1,
"IsHidden": false,
"ImportDigest": "_i0128171604590183",
"Dim": [
{
"ModelId": 1,
"TableId": 1,
"DimId": 0,
"Name": "dim0",
"TypeId": 104,
"IsTotal": false,
"DimSize": 2
},
{
"ModelId": 1,
"TableId": 1,
"DimId": 1,
"Name": "dim1",
"TypeId": 101,
"IsTotal": true,
"DimSize": 5
},
{
"ModelId": 1,
"TableId": 1,
"DimId": 2,
"Name": "dim2",
"TypeId": 103,
"IsTotal": false,
"DimSize": 3
}
],
"Acc": [
{
"ModelId": 1,
"TableId": 1,
"AccId": 0,
"Name": "acc0",
"IsDerived": false,
"SrcAcc": "raw_value()",
"AccSql": "A.acc_value"
}
],
"Expr": [
{
"ModelId": 1,
"TableId": 1,
"ExprId": 0,
"Name": "expr0",
"Decimals": 2,
"SrcExpr": "OM_AVG(acc0)",
"ExprSql": "SELECT M1.run_id, M1.dim0, M1.dim1, M1.dim2, AVG(M1.acc_value) AS expr0 FROM fullAgeSalary_a_2012883 M1 WHERE M1.acc_id = 0 GROUP BY M1.run_id, M1.dim0, M1.dim1, M1.dim2"
}
]
},
{
"ModelId": 1,
"TableId": 2,
"TableHid": 84,
"Name": "ageSexIncome",
"Digest": "_20128171604590184",
"IsUser": false,
"Rank": 2,
"IsSparse": false,
"DbExprTable": "ageSexIncome_v_2012884",
"DbAccTable": "ageSexIncome_a_2012884",
"DbAccAllView": "ageSexIncome_d_2012884",
"ExprPos": 0,
"IsHidden": false,
"ImportDigest": "_i0128171604590131",
"Dim": [
{
"ModelId": 1,
"TableId": 2,
"DimId": 0,
"Name": "dim0",
"TypeId": 101,
"IsTotal": false,
"DimSize": 4
},
{
"ModelId": 1,
"TableId": 2,
"DimId": 1,
"Name": "dim1",
"TypeId": 102,
"IsTotal": false,
"DimSize": 2
}
],
"Acc": [
{
"ModelId": 1,
"TableId": 2,
"AccId": 0,
"Name": "acc0",
"IsDerived": false,
"SrcAcc": "raw_value()",
"AccSql": "A.acc_value"
},
{
"ModelId": 1,
"TableId": 2,
"AccId": 1,
"Name": "acc1",
"IsDerived": false,
"SrcAcc": "adjust_value()",
"AccSql": "A.acc_value"
}
],
"Expr": [
{
"ModelId": 1,
"TableId": 2,
"ExprId": 0,
"Name": "expr0",
"Decimals": 2,
"SrcExpr": "OM_AVG(acc0)",
"ExprSql": "SELECT M1.run_id, M1.dim0, M1.dim1, AVG(M1.acc_value) AS expr0 FROM ageSexIncome_a_2012884 M1 WHERE M1.acc_id = 0 GROUP BY M1.run_id, M1.dim0, M1.dim1"
},
{
"ModelId": 1,
"TableId": 2,
"ExprId": 1,
"Name": "expr1",
"Decimals": 3,
"SrcExpr": "OM_AVG(acc1)",
"ExprSql": "SELECT M1.run_id, M1.dim0, M1.dim1, AVG(M1.acc_value) AS expr1 FROM ageSexIncome_a_2012884 M1 WHERE M1.acc_id = 1 GROUP BY M1.run_id, M1.dim0, M1.dim1"
}
]
},
{
"ModelId": 1,
"TableId": 3,
"TableHid": 85,
"Name": "seedOldAge",
"Digest": "_20128171604590185",
"IsUser": false,
"Rank": 0,
"IsSparse": false,
"DbExprTable": "seedOldAge_v_2012885",
"DbAccTable": "seedOldAge_a_2012885",
"DbAccAllView": "seedOldAge_d_2012885",
"ExprPos": 0,
"IsHidden": false,
"ImportDigest": "_i0128171604590185",
"Dim": null,
"Acc": [
{
"ModelId": 1,
"TableId": 3,
"AccId": 0,
"Name": "acc0",
"IsDerived": false,
"SrcAcc": "raw_value()",
"AccSql": "A.acc_value"
}
],
"Expr": [
{
"ModelId": 1,
"TableId": 3,
"ExprId": 0,
"Name": "expr0",
"Decimals": 5,
"SrcExpr": "OM_AVG(acc0)",
"ExprSql": "SELECT M1.run_id, AVG(M1.acc_value) AS expr0 FROM seedOldAge_a_2012885 M1 WHERE M1.acc_id = 0 GROUP BY M1.run_id"
}
]
}
],
"Group": [
{
"ModelId": 1,
"GroupId": 1,
"IsParam": true,
"Name": "AllParameters",
"IsHidden": false,
"GroupPc": [
{
"ModelId": 1,
"GroupId": 1,
"ChildPos": 0,
"ChildGroupId": 2,
"ChildLeafId": -1
},
{
"ModelId": 1,
"GroupId": 1,
"ChildPos": 1,
"ChildGroupId": 3,
"ChildLeafId": -1
},
{
"ModelId": 1,
"GroupId": 1,
"ChildPos": 2,
"ChildGroupId": -1,
"ChildLeafId": 2
},
{
"ModelId": 1,
"GroupId": 1,
"ChildPos": 3,
"ChildGroupId": -1,
"ChildLeafId": 5
}
]
},
{
"ModelId": 1,
"GroupId": 2,
"IsParam": true,
"Name": "AgeSexParameters",
"IsHidden": false,
"GroupPc": [
{
"ModelId": 1,
"GroupId": 2,
"ChildPos": 0,
"ChildGroupId": -1,
"ChildLeafId": 0
},
{
"ModelId": 1,
"GroupId": 2,
"ChildPos": 1,
"ChildGroupId": -1,
"ChildLeafId": 1
},
{
"ModelId": 1,
"GroupId": 2,
"ChildPos": 2,
"ChildGroupId": -1,
"ChildLeafId": 6
}
]
},
{
"ModelId": 1,
"GroupId": 3,
"IsParam": true,
"Name": "SalaryParameters",
"IsHidden": false,
"GroupPc": [
{
"ModelId": 1,
"GroupId": 3,
"ChildPos": 0,
"ChildGroupId": -1,
"ChildLeafId": 1
},
{
"ModelId": 1,
"GroupId": 3,
"ChildPos": 1,
"ChildGroupId": -1,
"ChildLeafId": 3
},
{
"ModelId": 1,
"GroupId": 3,
"ChildPos": 2,
"ChildGroupId": -1,
"ChildLeafId": 4
}
]
},
{
"ModelId": 1,
"GroupId": 10,
"IsParam": false,
"Name": "AdditionalTables",
"IsHidden": false,
"GroupPc": [
{
"ModelId": 1,
"GroupId": 10,
"ChildPos": 0,
"ChildGroupId": -1,
"ChildLeafId": 1
},
{
"ModelId": 1,
"GroupId": 10,
"ChildPos": 1,
"ChildGroupId": -1,
"ChildLeafId": 2
},
{
"ModelId": 1,
"GroupId": 10,
"ChildPos": 2,
"ChildGroupId": -1,
"ChildLeafId": 3
}
]
}
]
}