1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113
#[derive(Clone, PartialEq, ::prost::Message)] pub struct BoolNull { #[prost(oneof="bool_null::Data", tags="1")] pub data: ::std::option::Option<bool_null::Data>, } pub mod bool_null { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Data { #[prost(bool, tag="1")] Option(bool), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct I64Null { #[prost(oneof="i64_null::Data", tags="1")] pub data: ::std::option::Option<i64_null::Data>, } pub mod i64_null { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Data { #[prost(int64, tag="1")] Option(i64), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct F64Null { #[prost(oneof="f64_null::Data", tags="1")] pub data: ::std::option::Option<f64_null::Data>, } pub mod f64_null { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Data { #[prost(double, tag="1")] Option(f64), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct StrNull { #[prost(oneof="str_null::Data", tags="1")] pub data: ::std::option::Option<str_null::Data>, } pub mod str_null { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Data { #[prost(string, tag="1")] Option(std::string::String), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array1dBoolNull { #[prost(message, repeated, tag="1")] pub data: ::std::vec::Vec<BoolNull>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array1dI64Null { #[prost(message, repeated, tag="1")] pub data: ::std::vec::Vec<I64Null>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array1dF64Null { #[prost(message, repeated, tag="1")] pub data: ::std::vec::Vec<F64Null>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array1dStrNull { #[prost(message, repeated, tag="1")] pub data: ::std::vec::Vec<StrNull>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array1dNull { #[prost(oneof="array1d_null::Data", tags="1, 2, 3, 4")] pub data: ::std::option::Option<array1d_null::Data>, } pub mod array1d_null { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Data { #[prost(message, tag="1")] Bool(super::Array1dBoolNull), #[prost(message, tag="2")] I64(super::Array1dI64Null), #[prost(message, tag="3")] F64(super::Array1dF64Null), #[prost(message, tag="4")] String(super::Array1dStrNull), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array1dBool { #[prost(bool, repeated, tag="1")] pub data: ::std::vec::Vec<bool>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array1dI64 { #[prost(int64, repeated, tag="1")] pub data: ::std::vec::Vec<i64>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array1dF64 { #[prost(double, repeated, tag="1")] pub data: ::std::vec::Vec<f64>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array1dStr { #[prost(string, repeated, tag="1")] pub data: ::std::vec::Vec<std::string::String>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array1d { #[prost(oneof="array1d::Data", tags="1, 2, 3, 4")] pub data: ::std::option::Option<array1d::Data>, } pub mod array1d { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Data { #[prost(message, tag="1")] Bool(super::Array1dBool), #[prost(message, tag="2")] I64(super::Array1dI64), #[prost(message, tag="3")] F64(super::Array1dF64), #[prost(message, tag="4")] String(super::Array1dStr), } } /// N-dimensional homogeneously typed array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Array { #[prost(message, optional, tag="1")] pub flattened: ::std::option::Option<Array1d>, /// length of axes #[prost(uint64, repeated, tag="2")] pub shape: ::std::vec::Vec<u64>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Jagged { #[prost(message, repeated, tag="1")] pub data: ::std::vec::Vec<Array1d>, #[prost(enumeration="DataType", tag="2")] pub data_type: i32, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct PrivacyUsage { #[prost(oneof="privacy_usage::Distance", tags="1")] pub distance: ::std::option::Option<privacy_usage::Distance>, } pub mod privacy_usage { #[derive(Clone, PartialEq, ::prost::Message)] pub struct DistanceApproximate { #[prost(double, tag="1")] pub epsilon: f64, #[prost(double, tag="2")] pub delta: f64, } #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Distance { #[prost(message, tag="1")] Approximate(DistanceApproximate), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct PrivacyUsages { #[prost(message, repeated, tag="1")] pub values: ::std::vec::Vec<PrivacyUsage>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ArgumentNodeIds { #[prost(message, repeated, tag="1")] pub keys: ::std::vec::Vec<IndexKey>, #[prost(uint32, repeated, tag="2")] pub values: ::std::vec::Vec<u32>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct IndexKey { #[prost(oneof="index_key::Key", tags="1, 2, 3, 4")] pub key: ::std::option::Option<index_key::Key>, } pub mod index_key { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Tuple { #[prost(message, repeated, tag="1")] pub values: ::std::vec::Vec<super::IndexKey>, } #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Key { #[prost(string, tag="1")] Str(std::string::String), #[prost(int64, tag="2")] I64(i64), #[prost(bool, tag="3")] Bool(bool), #[prost(message, tag="4")] Tuple(Tuple), } } #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum DataType { Unknown = 0, Bool = 1, I64 = 2, F64 = 3, String = 4, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Component { #[prost(message, optional, tag="1")] pub arguments: ::std::option::Option<ArgumentNodeIds>, /// if true, then don't include the evaluation for this component in the release #[prost(bool, tag="2")] pub omit: bool, /// for interactive analyses #[prost(uint32, tag="3")] pub submission: u32, #[prost(oneof="component::Variant", tags="100, 101, 104, 105, 168, 106, 107, 119, 120, 108, 109, 166, 110, 167, 111, 112, 113, 114, 116, 115, 117, 118, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 102, 144, 134, 135, 136, 137, 163, 139, 140, 141, 142, 143, 145, 146, 147, 129, 149, 150, 151, 152, 153, 164, 155, 156, 165, 157, 148, 158, 159, 160, 162, 161")] pub variant: ::std::option::Option<component::Variant>, } pub mod component { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Variant { #[prost(message, tag="100")] Abs(super::Abs), #[prost(message, tag="101")] Add(super::Add), #[prost(message, tag="104")] Cast(super::Cast), #[prost(message, tag="105")] Clamp(super::Clamp), #[prost(message, tag="168")] ColumnBind(super::ColumnBind), #[prost(message, tag="106")] Count(super::Count), #[prost(message, tag="107")] Covariance(super::Covariance), #[prost(message, tag="119")] Digitize(super::Digitize), #[prost(message, tag="120")] Divide(super::Divide), #[prost(message, tag="108")] DpCount(super::DpCount), #[prost(message, tag="109")] DpCovariance(super::DpCovariance), #[prost(message, tag="166")] DpGumbelMedian(super::DpGumbelMedian), #[prost(message, tag="110")] DpHistogram(super::DpHistogram), #[prost(message, tag="167")] DpLinearRegression(super::DpLinearRegression), #[prost(message, tag="111")] DpMaximum(super::DpMaximum), #[prost(message, tag="112")] DpMean(super::DpMean), #[prost(message, tag="113")] DpMedian(super::DpMedian), #[prost(message, tag="114")] DpMinimum(super::DpMinimum), #[prost(message, tag="116")] DpQuantile(super::DpQuantile), #[prost(message, tag="115")] DpRawMoment(super::DpRawMoment), #[prost(message, tag="117")] DpSum(super::DpSum), #[prost(message, tag="118")] DpVariance(super::DpVariance), #[prost(message, tag="121")] Equal(super::Equal), #[prost(message, tag="122")] ExponentialMechanism(super::ExponentialMechanism), #[prost(message, tag="123")] Filter(super::Filter), #[prost(message, tag="124")] GaussianMechanism(super::GaussianMechanism), #[prost(message, tag="125")] GreaterThan(super::GreaterThan), #[prost(message, tag="126")] Histogram(super::Histogram), #[prost(message, tag="127")] Impute(super::Impute), #[prost(message, tag="128")] Index(super::Index), #[prost(message, tag="130")] LaplaceMechanism(super::LaplaceMechanism), #[prost(message, tag="131")] LessThan(super::LessThan), #[prost(message, tag="132")] Literal(super::Literal), #[prost(message, tag="133")] Log(super::Log), #[prost(message, tag="102")] LogicalAnd(super::And), #[prost(message, tag="144")] LogicalOr(super::Or), #[prost(message, tag="134")] Map(Box<super::Map>), #[prost(message, tag="135")] Materialize(super::Materialize), #[prost(message, tag="136")] Maximum(super::Maximum), #[prost(message, tag="137")] Mean(super::Mean), #[prost(message, tag="163")] Median(super::Median), #[prost(message, tag="139")] Minimum(super::Minimum), #[prost(message, tag="140")] Modulo(super::Modulo), #[prost(message, tag="141")] Multiply(super::Multiply), #[prost(message, tag="142")] Negate(super::Negate), #[prost(message, tag="143")] Negative(super::Negative), #[prost(message, tag="145")] Partition(super::Partition), #[prost(message, tag="146")] Power(super::Power), #[prost(message, tag="147")] Quantile(super::Quantile), #[prost(message, tag="129")] RawMoment(super::RawMoment), #[prost(message, tag="149")] Reshape(super::Reshape), #[prost(message, tag="150")] Resize(super::Resize), #[prost(message, tag="151")] RowMax(super::RowMax), #[prost(message, tag="152")] RowMin(super::RowMin), #[prost(message, tag="153")] SimpleGeometricMechanism(super::SimpleGeometricMechanism), #[prost(message, tag="164")] SnappingMechanism(super::SnappingMechanism), #[prost(message, tag="155")] Subtract(super::Subtract), #[prost(message, tag="156")] Sum(super::Sum), #[prost(message, tag="165")] TheilSen(super::TheilSen), #[prost(message, tag="157")] ToBool(super::ToBool), #[prost(message, tag="148")] ToDataframe(super::ToDataframe), #[prost(message, tag="158")] ToFloat(super::ToFloat), #[prost(message, tag="159")] ToInt(super::ToInt), #[prost(message, tag="160")] ToString(super::ToString), #[prost(message, tag="162")] Union(super::Union), #[prost(message, tag="161")] Variance(super::Variance), } } /// Abs Component /// /// Absolute value of data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the abs on the arguments. /// /// # Arguments /// * `data` - Array - Atomic types must be of type float or integer. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Abs { } /// Add Component /// /// Mathematical addition. Value types of arguments must match. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the add on the arguments. /// /// # Arguments /// * `left` - Array - Left value to add. Must be of type float or integer. /// * `right` - Array - Right value to add. Must be of type float or integer. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Add { } /// Cast Component /// /// Cast data to an atomic type. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the cast on the arguments. /// /// # Arguments /// * `data` - Array - Data to be cast to another type. /// * `true_label` - Array - Positive class (class to be mapped to `true`) for each column. Used only if casting to `bool`. /// * `lower` - Array - Minimum allowable imputation value. Used only if casting to `i64`. /// * `upper` - Array - Maximum allowable imputation value. Used only if casting to `i64`. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Cast { /// Type to which data should be cast. One of [`string`, `int`, `bool`, `float`] #[prost(string, tag="1")] pub atomic_type: std::string::String, } /// Clamp Component /// /// Clamps data to the provided bounds. /// /// If data are numeric, clamping maps elements outside of an interval `[lower, upper]` to the closer endpoint. /// If data are categorical, clamping maps elements outside of the `categories` argument to the associated `null`. /// Using clamp sets the `categories` property for the analysis with value `categories` plus `null_value` in the last position. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the clamp on the arguments. /// /// # Arguments /// * `data` - Array - Data to be clamped. /// * `lower` - Array - Desired lower bound for each column of the data. Used only if `categories` is `None`. /// * `upper` - Array - Desired upper bound for each column of the data. Used only if `categories` is `None`. /// * `categories` - Jagged - The set of categories you want to be represented for each column of the data, or `None`. /// * `null_value` - Array - The value to which elements not included in `categories` will be mapped for each column of the data. Used only if `categories` is not `None`. /// /// # Returns /// * `Value` - Array - Clamped data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Clamp { } /// ColumnBind Component /// /// Bind arguments as columns of an array to produce a larger array /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the column_bind on the arguments. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct ColumnBind { } /// Count Component /// /// Returns the number of rows in the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the count on the arguments. /// /// # Arguments /// * `data` - Array /// /// # Returns /// * `Value` - Array - Row count. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Count { /// Set to true for the number of unique members in the data. #[prost(bool, tag="1")] pub distinct: bool, } /// Covariance Component /// /// Calculate covariance. /// /// If `data` argument is provided as a 2D array, calculate covariance matrix. Otherwise, `left` and `right` 1D arrays are used to calculate a cross-covariance matrix between elements of the two arrays. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the covariance on the arguments. /// /// # Arguments /// * `data` - Array - 2D data array used to construct covariance matrix. /// * `left` - Array - Left data array used to calculate cross-covariance matrix. Used only if `data` not provided. /// * `right` - Array - Right data array used to calculate cross-covariance matrix. Used only if `data` not provided. /// /// # Returns /// * `Value` - Array - Flattened covariance or cross-covariance matrix. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Covariance { /// Whether or not to use the finite sample correction (Bessel's correction). #[prost(bool, tag="1")] pub finite_sample_correction: bool, } /// Digitize Component /// /// Maps data to bins. /// /// Bins will be of the form [lower, upper) or (lower, upper]. The null value is the final category. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the digitize on the arguments. /// /// # Arguments /// * `data` - Array - Data to be binned. /// * `edges` - Jagged - Values representing the edges of bins. Edges must be sorted, and may not contain duplicates. /// * `null_value` - Array - Value to which to map if there is no valid bin (e.g. if the element falls outside the bin range). The null value is the final category. /// * `inclusive_left` - Array - Whether or not the left edge of the bin is inclusive, i.e. the bins are of the form [lower, upper). /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Digitize { } /// Divide Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the divide on the arguments. /// /// # Arguments /// * `left` - Array - Atomic type must match right /// * `right` - Array - Atomic type must match left /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Divide { } /// DPCount Component /// /// Returns a differentially private row count. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_count on the arguments. /// /// # Arguments /// * `data` - Array /// * `lower` - Array - Estimated minimum possible value of the statistic. Useful to help bound elapsed time when sampling for the geometric mechanism. Required for the snapping mechanism. /// * `upper` - Array - Estimated maximum possible value of the statistic. Useful to help bound elapsed time when sampling for the geometric mechanism. Required for the snapping mechanism. /// /// # Returns /// * `Value` - Array - Differentially private row count. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpCount { /// Set to true for the number of unique members in the data. #[prost(bool, tag="1")] pub distinct: bool, /// Privatizing mechanism to use. One of [`SimpleGeometric`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. Only `SimpleGeometric` is accepted if floating-point protections are enabled. #[prost(string, tag="2")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5} #[prost(message, repeated, tag="3")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// DPCovariance Component /// /// Calculate differentially private covariance. /// /// If `data` argument is provided as a 2D array, calculate covariance matrix. Otherwise, `left` and `right` 1D arrays are used to calculate a cross-covariance matrix between elements of the two arrays. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_covariance on the arguments. /// /// # Arguments /// * `left` - Array - Left data array used to calculate cross-covariance matrix. Used only if `data` not provided. /// * `right` - Array - Right data array used to calculate cross-covariance matrix. Used only if `data` not provided. /// * `data` - Array - 2D data array used to construct covariance matrix. /// * `lower` - Array - Estimated minimum possible value of the statistic. Only useful for the snapping mechanism. /// * `upper` - Array - Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. /// /// # Returns /// * `Value` - Array - Flattened covariance or cross-covariance matrix. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpCovariance { /// Privatizing mechanism to use. One of [`Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`] #[prost(string, tag="1")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5} #[prost(message, repeated, tag="2")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, /// Whether or not to use the finite sample correction (Bessel's correction). #[prost(bool, tag="3")] pub finite_sample_correction: bool, } /// DPGumbelMedian Component /// /// Returns differentially private estimates of the median of each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_gumbel_median on the arguments. /// /// # Arguments /// * `data` - Array /// * `lower` - - Min candidate /// * `upper` - - Max candidate /// * `enforce_constant_time` - - Enforce constant time for median /// /// # Returns /// * `Value` - Array - Differentially private estimates of the median of each column of the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpGumbelMedian { /// Object describing the type and amount of privacy to be used for the mechanism release. #[prost(message, repeated, tag="1")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// DPHistogram Component /// /// Returns a differentially private histogram over user-defined categories. The final cell contains the counts for null values (outside the set of categories). /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_histogram on the arguments. /// /// # Arguments /// * `data` - Array - Atomic type must be numeric. /// * `edges` - Jagged - Set of edges to bin continuous-valued data. Used only if data are of `continuous` nature. /// * `categories` - Jagged - Set of categories in data. Used only if data are of `categorical` nature. /// * `null_value` - Array - The value to which elements not included in `categories` will be mapped for each column of the data. Used only if `categories` is not `None`. The null value is the final category- counts for the null category are at the end of the vector of counts. /// * `lower` - Array - Estimated minimum possible value of bin counts. Useful to help bound elapsed time when sampling for the geometric mechanism. Required for the snapping mechanism. /// * `upper` - Array - Estimated maximum possible value of bin counts. Useful to help bound elapsed time when sampling for the geometric mechanism. Required for the snapping mechanism. /// * `inclusive_left` - Array - Whether or not the left edge of the bin is inclusive. If `true` bins are of the form [lower, upper). Otherwise, bins are of the form (lower, upper]. Used only if data are of `continuous` nature. /// /// # Returns /// * `Value` - Array - Differentially private histogram. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpHistogram { /// Privatizing mechanism to use. One of [`SimpleGeometric`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. Only `SimpleGeometric` is accepted if floating-point protections are enabled. #[prost(string, tag="1")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. #[prost(message, repeated, tag="2")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// DPLinearRegression Component /// /// Returns differentially private estimates of the slope and intercept. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_linear_regression on the arguments. /// /// # Arguments /// * `data_x` - Array - Predictor variable /// * `data_y` - Array - Target variable /// * `k` - Integer - Number of matchings. Memory usage is quadratic in K. /// * `lower_slope` - Array - Estimated minimum possible value of the slope. /// * `upper_slope` - Array - Estimated maximum possible value of the slope. /// * `lower_intercept` - Array - Estimated minimum possible value of the intercept. /// * `upper_intercept` - Array - Estimated maximum possible value of the intercept. /// /// # Returns /// * `Value` - Array - Differentially private estimate of the slope and intercept of the line fit to the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpLinearRegression { /// Theil-Sen implementation to use. One of [`theil-sen`, `theil-sen-k-match`] #[prost(string, tag="1")] pub implementation: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. #[prost(message, repeated, tag="2")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// DPMaximum Component /// /// Returns differentially private estimates of the maximum elements of each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_maximum on the arguments. /// /// # Arguments /// * `data` - Array /// * `candidates` - Array - Set from which the Exponential mechanism will return an element. Type must match with atomic type of data. This value must be column-conformable with data. Only useful for Exponential mechanism. /// * `lower` - Array - Estimated minimum possible value of the statistic. Only useful for the snapping mechanism. /// * `upper` - Array - Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. /// /// # Returns /// * `Value` - Array - Differentially private estimates of the maximum elements of the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpMaximum { /// Privatizing mechanism to use. Value must be one of [`Automatic`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`] #[prost(string, tag="1")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5} #[prost(message, repeated, tag="2")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// DPMean Component /// /// Returns differentially private estimates of the means of each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_mean on the arguments. /// /// # Arguments /// * `data` - Array - Atomic type must be numeric. /// * `lower` - Array - Estimated minimum possible value of the statistic. Only useful for the snapping mechanism. /// * `upper` - Array - Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. /// /// # Returns /// * `Value` - Array - Differentially private estimate of the mean of each column of the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpMean { /// Privatizing algorithm to use. One of [`resize`, `plug-in`] #[prost(string, tag="1")] pub implementation: std::string::String, /// Privatizing mechanism to use. One of [`Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. #[prost(string, tag="2")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5} #[prost(message, repeated, tag="3")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// DPMedian Component /// /// Returns differentially private estimates of the median of each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_median on the arguments. /// /// # Arguments /// * `data` - Array - Atomic type must be numeric. For Gumbel mechanism, must be limited to a single column of data. /// * `candidates` - Array - Set from which the Exponential mechanism will return an element. Type must match with atomic type of data. This value must be column-conformable with data. Only useful for Exponential mechanism. /// * `lower` - Array - Estimated minimum possible value of the statistic. Only useful for the snapping mechanism. /// * `upper` - Array - Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. /// /// # Returns /// * `Value` - Array - Differentially private estimates of the median of each column of the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpMedian { /// Privatizing mechanism to use. Value must be one of [`Exponential`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`, `Gumbel`]. `Automatic` chooses `Exponential` if candidates provided, otherwise chooses `Laplace`. #[prost(string, tag="1")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. For Gumbel mechanism, must be limited to a single column of data. Atomic data type value must be float. Example value: {'epsilon': 0.5} #[prost(message, repeated, tag="2")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, /// Interpolation strategy. One of [`lower`, `upper`, `midpoint`, `nearest`, `linear`] #[prost(string, tag="3")] pub interpolation: std::string::String, } /// DPMinimum Component /// /// Returns differentially private estimates of the minimum elements of each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_minimum on the arguments. /// /// # Arguments /// * `data` - Array /// * `candidates` - Array - Set from which the Exponential mechanism will return an element. Type must match with atomic type of data. This value must be column-conformable with data. Only useful for Exponential mechanism. /// * `lower` - Array - Estimated minimum possible value of the statistic. Only useful for the snapping mechanism. /// * `upper` - Array - Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. /// /// # Returns /// * `Value` - Array - Differentially private estimates of the minimum elements of the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpMinimum { /// Privatizing mechanism to use. Value must be one of [`Automatic`, `Exponential`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. `Automatic` chooses `Exponential` if candidates provided. #[prost(string, tag="1")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5} #[prost(message, repeated, tag="2")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// DPQuantile Component /// /// Returns differentially private estimates of specified quantiles for each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_quantile on the arguments. /// /// # Arguments /// * `data` - Array - Atomic type must be numeric. /// * `candidates` - Array - Set from which the Exponential mechanism will return an element. Type must match with atomic type of data. This value must be column-conformable with data. Only useful for Exponential mechanism. /// * `lower` - Array - Estimated minimum possible value of the statistic. Only useful for the snapping mechanism. /// * `upper` - Array - Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. /// /// # Returns /// * `Value` - Array - Differentially private estimate of the quantile. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpQuantile { /// Desired quantiles, defined on `[0,1]`. #[prost(double, tag="1")] pub alpha: f64, /// Privatizing mechanism to use. Value must be one of [`Automatic`, `Exponential`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. `Automatic` chooses `Exponential` if candidates provided. #[prost(string, tag="2")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5} #[prost(message, repeated, tag="3")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, /// Interpolation strategy. One of [`lower`, `upper`, `midpoint`, `nearest`, `linear`] #[prost(string, tag="4")] pub interpolation: std::string::String, } /// DPRawMoment Component /// /// Returns differentially private sample estimate of a raw moment for each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_raw_moment on the arguments. /// /// # Arguments /// * `data` - Array - Data for which you would like the kth raw moments. Atomic data type must be float. /// * `lower` - Array - Estimated minimum possible value of the statistic. Only useful for the snapping mechanism. /// * `upper` - Array - Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. /// /// # Returns /// * `Value` - Array - Differentially private sample estimate of kth raw moment for each column of the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpRawMoment { /// Integer statistical moment indicator. #[prost(uint32, tag="1")] pub order: u32, /// Privatizing mechanism to use. Value must be one of [`Automatic`, `Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. #[prost(string, tag="2")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5} #[prost(message, repeated, tag="3")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// DPSum Component /// /// Returns differentially private estimates of the sums of each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_sum on the arguments. /// /// # Arguments /// * `data` - Array /// * `lower` - Array - Estimated minimum possible value of the statistic, on integral data. Useful to help bound elapsed time when sampling for the geometric mechanism. Useful for the snapping mechanism. /// * `upper` - Array - Estimated maximum possible value of the statistic, on integral data. Useful to help bound elapsed time when sampling for the geometric mechanism. Useful for the snapping mechanism. /// /// # Returns /// * `Value` - Array - Differentially private sum over elements for each column of the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpSum { /// Privatizing mechanism to use. Value must be one of [`Automatic`, `Laplace`, `Gaussian`, `AnalyticGaussian`, `SimpleGeometric`]. `Automatic` chooses based on the input data type. #[prost(string, tag="1")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5} #[prost(message, repeated, tag="2")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// DPVariance Component /// /// Returns a differentially private estimate of the variance for each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the dp_variance on the arguments. /// /// # Arguments /// * `data` - Array /// * `lower` - Array - Estimated minimum possible value of the statistic. Only useful for the snapping mechanism. Atomic data type must be float. /// * `upper` - Array - Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. Atomic data type must be float. /// /// # Returns /// * `Value` - Array - Differentially private sample variance for each column of the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct DpVariance { /// Privatizing mechanism to use. Value must be one of [`Laplace`, `Snapping`, `Gaussian`, `AnalyticGaussian`]. #[prost(string, tag="1")] pub mechanism: std::string::String, /// Object describing the type and amount of privacy to be used for the mechanism release. Atomic data type value must be float. Example value: {'epsilon': 0.5} #[prost(message, repeated, tag="2")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, /// Whether or not to use the finite sample correction (Bessel's correction). #[prost(bool, tag="3")] pub finite_sample_correction: bool, } /// Equal Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the equal on the arguments. /// /// # Arguments /// * `left` - Array - Atomic type must match right /// * `right` - Array - Atomic type must match left /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Equal { } /// ExponentialMechanism Component /// /// Returns an element from a finite set with probability relative to its utility. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the exponential_mechanism on the arguments. /// /// # Arguments /// * `utilities` - Array - Respective scores for each candidate. Total number of records must match candidates. /// * `candidates` - Array - Set from which the Exponential mechanism will return an element. Total number of records must match utilities. /// * `sensitivity` - Array - Override the sensitivity computed by the library. Rejected unless `protect_sensitivity` is disabled. /// /// # Returns /// * `Value` - Array - Element from the candidate set selected via the Exponential mechanism. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ExponentialMechanism { /// Object describing the type and amount of privacy to be used for the mechanism release. Length of privacy_usage must be exactly one. #[prost(message, repeated, tag="1")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// Filter Component /// /// Filters data down into only the desired rows. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the filter on the arguments. /// /// # Arguments /// * `data` - Array /// * `mask` - Array - Boolean mask giving whether or not each row should be kept. Example value: data['age'] == '4' /// /// # Returns /// * `Value` - Array - Data with only the desired rows. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Filter { } /// GaussianMechanism Component /// /// Privatizes a result by returning it perturbed with Gaussian noise. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the gaussian_mechanism on the arguments. /// /// # Arguments /// * `data` - Array - Result to be released privately via the Gaussian mechanism. Atomic type must be numeric. /// * `sensitivity` - Array - Override the sensitivity computed by the library. Rejected unless `protect_sensitivity` is disabled. /// /// # Returns /// * `Value` - Array - Original data perturbed with Gaussian noise. #[derive(Clone, PartialEq, ::prost::Message)] pub struct GaussianMechanism { /// Object describing the type and amount of privacy to be used for the mechanism release. #[prost(message, repeated, tag="1")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, /// Set to enable use of the analytic gaussian mechanism. #[prost(bool, tag="2")] pub analytic: bool, } /// GreaterThan Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the greater_than on the arguments. /// /// # Arguments /// * `left` - Array - Atomic values must be numeric and of the same type. Type must match right. /// * `right` - Array - Atomic values must be numeric and of the same type. Type must match left. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct GreaterThan { } /// Histogram Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the histogram on the arguments. /// /// # Arguments /// * `data` - Array /// * `edges` - Jagged - Set of edges to bin continuous-valued data. Used only if data are of `continuous` nature. Must have a value if categories not specified. /// * `categories` - Jagged - Set of categories in data. Used only if data are of `categorical` nature. Must have a value if edges not specified. /// * `null_value` - Array - The value to which elements not included in `categories` will be mapped for each column of the data. Used only if `categories` is not `None`. /// * `inclusive_left` - - Whether or not the left edge of the bin is inclusive. If `true` bins are of the form [lower, upper). Otherwise, bins are of the form (lower, upper]. Used only if data are of `continuous` nature. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Histogram { } /// Impute Component /// /// Replaces null values with draws from a specified distribution. /// /// If the `categories` argument is provided, the data are considered to be categorical regardless of atomic type and the elements provided in `null_value` will be replaced with those in `categories` according to `weights`. /// /// If the `categories` argument is not provided, the data are considered to be numeric and elements that are `f64::NAN` will be replaced according to the specified distribution. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the impute on the arguments. /// /// # Arguments /// * `data` - Array - The data for which null values will be imputed. /// * `lower` - Array - A lower bound on data elements for each column. Used only if `categories` is `None`. /// * `upper` - Array - An upper bound on data elements for each column. Used only if `categories` is `None`. /// * `categories` - Jagged - The set of categories you want to be represented for each column of the data, if the data is categorical. Atomic type must match atomic type of data. /// * `null_values` - Jagged - The set of values that are considered null for each column of the data, if the data is categorical. Atomic type must match atomic type of data. /// * `weights` - Jagged - Optional. The weight of each category when imputing. Uniform weights are used if not specified. /// * `distribution` - String - The distribution to be used when imputing records. Used only if `categories` is `None`. /// * `shift` - Array - The expectation of the Gaussian distribution to be used for imputation. Used only if `distribution` is `Gaussian`. /// * `scale` - Array - The standard deviation of the Gaussian distribution to be used for imputation. Used only if `distribution` is `Gaussian`. /// /// # Returns /// * `Value` - Array - Data with null values replaced by imputed values. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Impute { } /// Index Component /// /// Index into data frames, partitions and arrays to retrieve homogeneously typed contiguous arrays /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the index on the arguments. /// /// # Arguments /// * `data` - Indexmap /// * `names` - Array /// * `indices` - Array /// * `mask` - Array /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Index { } /// LaplaceMechanism Component /// /// Privatizes a result by returning it perturbed with Laplace noise. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the laplace_mechanism on the arguments. /// /// # Arguments /// * `data` - Array - True value to be released privately via the Laplace mechanism. /// * `sensitivity` - Array - Override the sensitivity computed by the library. Rejected unless `protect_sensitivity` is disabled. /// /// # Returns /// * `Value` - Array - Original data perturbed with Laplace noise. #[derive(Clone, PartialEq, ::prost::Message)] pub struct LaplaceMechanism { /// Object describing the type and amount of privacy to be used for the mechanism release. #[prost(message, repeated, tag="1")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// LessThan Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the less_than on the arguments. /// /// # Arguments /// * `left` - Array - Atomic type must be numeric, and match with atomic type of right. /// * `right` - Array - Atomic type must be numeric, and match with atomic type of left. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct LessThan { } /// Literal Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the literal on the arguments. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Literal { } /// Log Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the log on the arguments. /// /// # Arguments /// * `data` - Array - Atomic type must be float. /// * `base` - Array /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Log { } /// And Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the logical_and on the arguments. /// /// # Arguments /// * `left` - Array - Left argument for the logical AND. /// * `right` - Array - Right argument for the logical AND. /// /// # Returns /// * `Value` - Array - Logical AND of left and right. #[derive(Clone, PartialEq, ::prost::Message)] pub struct And { } /// Or Component /// /// left and right arguments must share the same data types /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the logical_or on the arguments. /// /// # Arguments /// * `left` - Array /// * `right` - Array /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Or { } /// Map Component /// /// Apply Component to each data partition. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the map on the arguments. /// /// # Returns /// * `Value` - Indexmap #[derive(Clone, PartialEq, ::prost::Message)] pub struct Map { #[prost(message, optional, boxed, tag="1")] pub component: ::std::option::Option<::std::boxed::Box<Component>>, } /// Materialize Component /// /// Load a tabular frame from a data source /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the materialize on the arguments. /// /// # Arguments /// * `column_names` - Array /// /// # Returns /// * `Value` - Dataframe #[derive(Clone, PartialEq, ::prost::Message)] pub struct Materialize { #[prost(bool, tag="1")] pub public: bool, /// when set, skip the first line (header) in a csv #[prost(bool, tag="2")] pub skip_row: bool, /// Path to the file on the system. #[prost(string, tag="3")] pub file_path: std::string::String, } /// Maximum Component /// /// Find the maximum value of each column in the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the maximum on the arguments. /// /// # Arguments /// * `data` - Array - Data for which you want the maximum value in each column. /// * `candidates` - Array - Set from which the Exponential mechanism will return an element. /// /// # Returns /// * `Value` - Array - Maximum of each column in the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Maximum { } /// Mean Component /// /// Calculates the arithmetic mean of each column in the provided data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the mean on the arguments. /// /// # Arguments /// * `data` - Array /// /// # Returns /// * `Value` - Array - Arithmetic mean for each column of the data in question. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Mean { } /// Median Component /// /// Find the median value of each column in the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the median on the arguments. /// /// # Arguments /// * `data` - Array - Data for which you want the median value in each column. /// * `candidates` - Array - Set from which to compute scores for the Exponential mechanism. /// /// # Returns /// * `Value` - Array - Median of each column in the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Median { } /// Minimum Component /// /// Find the minimum value of each column in the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the minimum on the arguments. /// /// # Arguments /// * `data` - Array - Data for which you want the maximum value in each column. /// * `candidates` - Array - Set from which the Exponential mechanism will return an element. /// /// # Returns /// * `Value` - Array - Maximum of each column in the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Minimum { } /// Modulo Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the modulo on the arguments. /// /// # Arguments /// * `left` - Array - Atomic type must be numeric. Atomic type must match right. /// * `right` - Array - Atomic type must be numeric. Atomic type must match left. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Modulo { } /// Multiply Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the multiply on the arguments. /// /// # Arguments /// * `left` - Array - Atomic type must be numeric. Atomic type must match right. /// * `right` - Array - Atomic type must be numeric. Atomic type must match left. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Multiply { } /// Negate Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the negate on the arguments. /// /// # Arguments /// * `data` - Array - Atomic type must be boolean. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Negate { } /// Negative Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the negative on the arguments. /// /// # Arguments /// * `data` - Array - Atomic type must be numeric. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Negative { } /// Partition Component /// /// Split the rows of data into either k equally sized partitions, or by the categories of a vector /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the partition on the arguments. /// /// # Arguments /// * `data` - Array - Must be a dataframe or an array /// * `num_partitions` - Array /// * `by` - Array /// /// # Returns /// * `Value` - Indexmap #[derive(Clone, PartialEq, ::prost::Message)] pub struct Partition { } /// Power Component /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the power on the arguments. /// /// # Arguments /// * `data` - Array - Atomic types must be numeric and homogenous. /// * `radical` - Array - Atomic values may not be negative. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Power { } /// Quantile Component /// /// Get values corresponding to specified quantiles for each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the quantile on the arguments. /// /// # Arguments /// * `data` - Array - Atomic type must be numeric. /// * `candidates` - Array - Set from which the Exponential mechanism will return an element. Type must match with atomic type of data. This value must be column-conformable with data. /// /// # Returns /// * `Value` - Array - Quantile values for each column. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Quantile { /// Desired quantiles, defined on `[0,1]`. Examples: 0: min, 0.5: median, 1: max #[prost(double, tag="1")] pub alpha: f64, /// Interpolation strategy. One of [`lower`, `upper`, `midpoint`, `nearest`, `linear`] #[prost(string, tag="2")] pub interpolation: std::string::String, } /// RawMoment Component /// /// Returns sample estimate of kth raw moment for each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the raw_moment on the arguments. /// /// # Arguments /// * `data` - Array - Data for which you would like the kth raw moments. Atomic data type must be float. /// /// # Returns /// * `Value` - Array - kth raw sample moment for each column. #[derive(Clone, PartialEq, ::prost::Message)] pub struct RawMoment { /// Indicate the kth integer statistical moment. #[prost(uint32, tag="1")] pub order: u32, } /// Reshape Component /// /// Reshapes a row vector into a matrix. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the reshape on the arguments. /// /// # Arguments /// * `data` - Array - Vector of data to stack into a matrix. A Indexmap of matrices will be emitted if multiple rows are provided. /// /// # Returns /// * `Value` - Array - Reshape of data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Reshape { /// Set if data are elements from the upper triangle of a symmetric matrix. #[prost(bool, tag="1")] pub symmetric: bool, /// Consecutive elements of either the `row` or `column` reside next to each other. Note that multi-row inputs are reshaped to partitional outputs, having one matrix per partition. #[prost(string, tag="2")] pub layout: std::string::String, /// The shape of the output matrix. Dimensionality may not be greater than 2. #[prost(uint32, repeated, tag="3")] pub shape: ::std::vec::Vec<u32>, } /// Resize Component /// /// Resizes the data in question to be consistent with a provided sample size, `n`. /// /// The library does not, in general, assume that the sample size of the data being analyzed is known. This introduces a number of problems around how to calculate statistics that are a function of the sample size. /// /// To address this problem, the library asks the user to provide `n`, an estimate of the true sample size based on their own beliefs about the data or a previous differentially private count of the number of rows in the data. This component then either subsamples or appends to the data in order to make it consistent with the provided `n`. /// /// Note that lower/upper/categorical arguments must be provided, or lower/upper/categorical properties must be known on data. /// /// Note that if using categories constraint, data are treated as categorical regardless of atomic type. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the resize on the arguments. /// /// # Arguments /// * `data` - Array - The data to be resized. Atomic type of data must match atomic type of categories. If categories not populated, data are treated as numeric and any necessary imputation is done according to a continuous distribution. /// * `number_rows` - Array - An estimate of the number of rows in the data. This could be the guess of the user, or the result of a DP release. Cannot be set with minimum_rows. /// * `number_columns` - Array - An estimate of the number of columns in the data. This must be the guess of the user, if not previously known (optional). A non-empty value must be positive. A non-empty value is incompatiable with an attempt to resize number of columns and results in an error. /// * `lower` - Array - A lower bound on data elements for each column. This value must be less than upper. /// * `upper` - Array - An upper bound on data elements for each column. This value must be greater than lower. /// * `categories` - Jagged - The set of categories you want to be represented for each column of the data, if the data is categorical. Atomic type of data must match atomic type of categories. /// * `weights` - Jagged - Optional. The weight of each category when imputing. Uniform weights are used if not specified. /// * `distribution` - String - The distribution to be used when imputing records. /// * `shift` - Array - The expectation of the Gaussian distribution used for imputation (used only if `distribution = Gaussian`). /// * `scale` - Array - The standard deviation of the Gaussian distribution used for imputation (used only if `distribution = Gaussian`). /// * `sample_proportion` - Array - The proportion of underlying data that may be used to construct the new data. May be > 1. /// * `minimum_rows` - Array - Only add synthetic data if the actual row count is less than this number. No sampling is performed. Cannot be set with `number_rows` /// /// # Returns /// * `Value` - Array - A resized version of data consistent with the provided `n` #[derive(Clone, PartialEq, ::prost::Message)] pub struct Resize { } /// RowMax Component /// /// Returns the maximum of the left and right arguments, per row. Note that left and right arguments must share the same data types. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the row_max on the arguments. /// /// # Arguments /// * `left` - Array - Member data type must match that of right. /// * `right` - Array - Member data type must match that of left. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct RowMax { } /// RowMin Component /// /// Returns the minimum of the left and right arguments, per row. Note that left and right arguments must share the same data types. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the row_min on the arguments. /// /// # Arguments /// * `left` - Array - Member data type must match that of right. /// * `right` - Array - Member data type must match that of left. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct RowMin { } /// SimpleGeometricMechanism Component /// /// Privatizes a result by returning it perturbed with Geometric noise. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the simple_geometric_mechanism on the arguments. /// /// # Arguments /// * `data` - Array - Result to be released privately via the Geometric mechanism. Member data type must be integer. /// * `lower` - Array - Lower bound of the statistic to be privatized. Member data type must be integer. /// * `upper` - Array - Upper bound of the statistic to be privatized. Member data type must be integer. /// * `sensitivity` - Array - Override the sensitivity computed by the library. Rejected unless `protect_sensitivity` is disabled. /// /// # Returns /// * `Value` - Array - Original data perturbed with Geometric noise. #[derive(Clone, PartialEq, ::prost::Message)] pub struct SimpleGeometricMechanism { /// Object describing the type and amount of privacy to be used for the mechanism release. Values of zero or less, and values of greater than one, will result in warnings. #[prost(message, repeated, tag="1")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// SnappingMechanism Component /// /// Privatizes a result by returning it perturbed via the Snapping mechanism. This mechanism is generally intended for non-integer numerical data. Note that snapping may not operate on integers when floating-point protections are enabled. For this situation, use the geometric mechanism instead. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the snapping_mechanism on the arguments. /// /// # Arguments /// * `data` - Array - Result to be released privately via the Snapping mechanism. Array members must be of type float or of type integer. /// * `lower` - Array - Estimated minimum possible value of the data. Only useful for the snapping mechanism. This argument is required. /// * `upper` - Array - Estimated maximum possible value of the statistic. Only useful for the snapping mechanism. This argument is required. /// * `binding_probability` - Array - Upper bound on probability that final clamp binds. Must be within [0, 1). /// * `sensitivity` - Array - Override the sensitivity computed by the library. Rejected unless `protect_sensitivity` is disabled. /// /// # Returns /// * `Value` - Array - Original data perturbed via the Snapping mechanism. #[derive(Clone, PartialEq, ::prost::Message)] pub struct SnappingMechanism { /// Object describing the type and amount of privacy to be used for the mechanism release. #[prost(message, repeated, tag="1")] pub privacy_usage: ::std::vec::Vec<PrivacyUsage>, } /// Subtract Component /// /// Mathematical subtraction. Value types of arguments must match. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the subtract on the arguments. /// /// # Arguments /// * `left` - Array - Value from which to subtract. Must be of type float or integer. /// * `right` - Array - Value which to subtract. Must be of type float or integer. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct Subtract { } /// Sum Component /// /// Calculates the sum of each column of the data. Data must be of type float or integer. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the sum on the arguments. /// /// # Arguments /// * `data` - Array - Data for which you want the sum of each column. /// /// # Returns /// * `Value` - Array - Sum of each column of the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Sum { } /// TheilSen Component /// /// Returns slope and intercept estimates for point pairs /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the theil_sen on the arguments. /// /// # Arguments /// * `data_x` - Array - value(s) from the first coordinate axis /// * `data_y` - Array - value(s) from the second coordinate axis /// /// # Returns /// * `Value` - Array - All slope and intercept estimates for point pairs #[derive(Clone, PartialEq, ::prost::Message)] pub struct TheilSen { /// Theil-Sen implementation to use. One of [`theil-sen`, `theil-sen-k-match`] #[prost(string, tag="1")] pub implementation: std::string::String, /// Number of trials to run for Theil-Sen K Match. #[prost(uint32, tag="2")] pub k: u32, } /// ToBool Component /// /// Cast data to a bool atomic type. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the to_bool on the arguments. /// /// # Arguments /// * `data` - Array - Data to be cast to Boolean type. /// * `true_label` - Array - Positive class (class to be mapped to `true`) for each column. /// /// # Returns /// * `Value` - Array #[derive(Clone, PartialEq, ::prost::Message)] pub struct ToBool { } /// ToDataframe Component /// /// Name columns of an array to produce a Dataframe with the specified names. Typically used when partitioning a dataframe with preprocessed columns. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the to_dataframe on the arguments. /// /// # Arguments /// * `data` - Array - ndarray (structured or homogeneous), Iterable, dict, or DataFrame /// * `names` - Array - Column labels to use for resulting frame. Will default to RangeIndex (0, 1, 2, …, n) if no column labels are provided. /// /// # Returns /// * `Value` - Dataframe - Dataframe in target language, for example <a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html">pandas.DataFrame</a>. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ToDataframe { } /// ToFloat Component /// /// Cast data to a float atomic type. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the to_float on the arguments. /// /// # Arguments /// * `data` - Array - Data to be cast to float. /// /// # Returns /// * `Value` - Array - Array containing the converted float value(s). #[derive(Clone, PartialEq, ::prost::Message)] pub struct ToFloat { } /// ToInt Component /// /// Cast data to a int atomic type. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the to_int on the arguments. /// /// # Arguments /// * `data` - Array - Data to be cast to integer type. /// * `lower` - Array - Minimum allowable imputation value. Integers cannot represent null, so values that cannot be parsed are imputed. /// * `upper` - Array - Maximum allowable imputation value. /// /// # Returns /// * `Value` - Array - Array containing the converted integer value(s). #[derive(Clone, PartialEq, ::prost::Message)] pub struct ToInt { } /// ToString Component /// /// Cast data to a string atomic type. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the to_string on the arguments. /// /// # Arguments /// * `data` - Array - Data to be cast to string type. /// /// # Returns /// * `Value` - Array - The return is the result of the to_string on the arguments. #[derive(Clone, PartialEq, ::prost::Message)] pub struct ToString { } /// Union Component /// /// Union the arrays in the arguments into one array. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the union on the arguments. /// /// # Returns /// * `Value` - Array - Array (or indexmap of arrays) containing item(s) representing the concatenation of all partitions #[derive(Clone, PartialEq, ::prost::Message)] pub struct Union { /// When set, the output is an array. When unset, the output is an indexmap of arrays. #[prost(bool, tag="1")] pub flatten: bool, } /// Variance Component /// /// Calculates the sample variance for each column of the data. /// /// This struct represents an abstract computation. Arguments are provided via the graph. Additional options are set via the fields on this struct. The return is the result of the variance on the arguments. /// /// # Arguments /// * `data` - Array /// /// # Returns /// * `Value` - Array - Sample variance for each column of the data. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Variance { /// Whether or not to use the finite sample correction (Bessel's correction) to correct the bias in the estimation of the population variance. #[prost(bool, tag="1")] pub finite_sample_correction: bool, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Error { #[prost(string, tag="1")] pub message: std::string::String, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Analysis { #[prost(message, optional, tag="1")] pub privacy_definition: ::std::option::Option<PrivacyDefinition>, #[prost(message, optional, tag="2")] pub computation_graph: ::std::option::Option<ComputationGraph>, } /// The definition of privacy determines parameters for sensitivity derivations and the set of available algorithms. #[derive(Clone, PartialEq, ::prost::Message)] pub struct PrivacyDefinition { /// Privacy leakage with respect `group_size` number of rows. This is typically one. #[prost(uint32, tag="1")] pub group_size: u32, /// Define the kind of perturbation that may be applied to a dataset to create a neighboring dataset. #[prost(enumeration="privacy_definition::Neighboring", tag="2")] pub neighboring: i32, /// enable to reject the use of algorithms using delta when n is not known /// enable to reject the use of algorithms when some soft violations of assumptions are observed /// - epsilon greater than one with the gaussian mechanism #[prost(bool, tag="3")] pub strict_parameter_checks: bool, /// enable for tighter bounds checking to prevent leaks via overflow/underflow #[prost(bool, tag="4")] pub protect_overflow: bool, /// enable if side-channel elapsed execution time is considered part of the release #[prost(bool, tag="5")] pub protect_elapsed_time: bool, /// enable if side-channel memory usage is considered part of the release #[prost(bool, tag="6")] pub protect_memory_utilization: bool, /// enable to block mechanisms known to be vulnerable to floating point attacks #[prost(bool, tag="7")] pub protect_floating_point: bool, /// enable to prevent manual insertion of sensitivity to mechanisms #[prost(bool, tag="8")] pub protect_sensitivity: bool, } pub mod privacy_definition { #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum Neighboring { Substitute = 0, AddRemove = 1, } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ComputationGraph { #[prost(map="uint32, message", tag="1")] pub value: ::std::collections::HashMap<u32, Component>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Release { #[prost(map="uint32, message", tag="1")] pub values: ::std::collections::HashMap<u32, ReleaseNode>, } /// derived properties for the top-level Value type #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValueProperties { #[prost(oneof="value_properties::Variant", tags="1, 2, 3, 4, 5")] pub variant: ::std::option::Option<value_properties::Variant>, } pub mod value_properties { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Variant { #[prost(message, tag="1")] Dataframe(super::DataframeProperties), #[prost(message, tag="2")] Partitions(super::PartitionsProperties), #[prost(message, tag="3")] Array(super::ArrayProperties), #[prost(message, tag="4")] Jagged(super::JaggedProperties), #[prost(message, tag="5")] Function(super::FunctionProperties), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ArgumentProperties { #[prost(message, repeated, tag="1")] pub keys: ::std::vec::Vec<IndexKey>, #[prost(message, repeated, tag="2")] pub values: ::std::vec::Vec<ValueProperties>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct DataframeProperties { #[prost(message, repeated, tag="1")] pub keys: ::std::vec::Vec<IndexKey>, #[prost(message, repeated, tag="2")] pub values: ::std::vec::Vec<ValueProperties>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct PartitionsProperties { #[prost(message, repeated, tag="1")] pub keys: ::std::vec::Vec<IndexKey>, #[prost(message, repeated, tag="2")] pub values: ::std::vec::Vec<ValueProperties>, } /// sub-properties for Value::* types that may be aggregated #[derive(Clone, PartialEq, ::prost::Message)] pub struct AggregatorProperties { #[prost(message, optional, tag="1")] pub component: ::std::option::Option<Component>, #[prost(message, optional, tag="2")] pub properties: ::std::option::Option<ArgumentProperties>, #[prost(message, optional, tag="3")] pub lipschitz_constants: ::std::option::Option<Value>, } //// derived properties for the Value::Array //// a homogeneously-typed (0, 1, 2)-dimensional array #[derive(Clone, PartialEq, ::prost::Message)] pub struct ArrayProperties { //// length of axis zero. May be unknown #[prost(message, optional, tag="1")] pub num_records: ::std::option::Option<I64Null>, //// length of axis one. If dimensionality is one, then one. May be unknown #[prost(message, optional, tag="2")] pub num_columns: ::std::option::Option<I64Null>, //// true if data may contain null values #[prost(bool, tag="3")] pub nullity: bool, //// number of records one individual may influence #[prost(uint32, tag="4")] pub c_stability: u32, //// description of the aggregation that has been applied to the data //// used to help compute sensitivity in the mechanisms #[prost(message, optional, tag="5")] pub aggregator: ::std::option::Option<AggregatorProperties>, //// atomic type #[prost(enumeration="DataType", tag="6")] pub data_type: i32, //// true if the data has been sanitized #[prost(bool, tag="7")] pub releasable: bool, //// node_id of the dataset this observation originated from //// used to check for conformability, is erased upon resize, is reset upon filter #[prost(message, optional, tag="8")] pub dataset_id: ::std::option::Option<I64Null>, //// true if the row length is known to be greater than zero #[prost(bool, tag="9")] pub is_not_empty: bool, //// number of axes in the array #[prost(message, optional, tag="10")] pub dimensionality: ::std::option::Option<I64Null>, //// used for tracking subpartitions #[prost(message, repeated, tag="11")] pub group_id: ::std::vec::Vec<GroupId>, /// true if row ordering has not changed #[prost(bool, tag="12")] pub naturally_ordered: bool, /// proportion of records this array contains sampled from the original dataset #[prost(message, optional, tag="13")] pub sample_proportion: ::std::option::Option<F64Null>, /// useful to reference an intermediate calculation #[prost(uint32, tag="14")] pub node_id: u32, #[prost(oneof="array_properties::Nature", tags="100, 101")] pub nature: ::std::option::Option<array_properties::Nature>, } pub mod array_properties { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Nature { //// numerical bounds of each column #[prost(message, tag="100")] Continuous(super::NatureContinuous), //// categories of each column #[prost(message, tag="101")] Categorical(super::NatureCategorical), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct NatureContinuous { #[prost(message, optional, tag="1")] pub minimum: ::std::option::Option<Array1dNull>, #[prost(message, optional, tag="2")] pub maximum: ::std::option::Option<Array1dNull>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct NatureCategorical { #[prost(message, optional, tag="1")] pub categories: ::std::option::Option<Jagged>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct GroupId { //// node id of partition #[prost(uint32, tag="1")] pub partition_id: u32, //// indexes referenced in the partition #[prost(message, optional, tag="2")] pub index: ::std::option::Option<IndexKey>, } //// derived properties for the Value::Jagged type //// a homogeneously-typed vector of vectors //// each vector represents a column #[derive(Clone, PartialEq, ::prost::Message)] pub struct JaggedProperties { //// number of records per column #[prost(message, optional, tag="1")] pub num_records: ::std::option::Option<Array1dI64>, //// true if the data may contain null values #[prost(bool, tag="2")] pub nullity: bool, //// description of the aggregation that has been applied to the data //// used to help compute sensitivity in the mechanisms #[prost(message, optional, tag="3")] pub aggregator: ::std::option::Option<AggregatorProperties>, //// atomic type #[prost(enumeration="DataType", tag="4")] pub data_type: i32, //// true if the data has been sanitized #[prost(bool, tag="5")] pub releasable: bool, #[prost(oneof="jagged_properties::Nature", tags="100, 101")] pub nature: ::std::option::Option<jagged_properties::Nature>, } pub mod jagged_properties { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Nature { //// numerical bounds of each column #[prost(message, tag="100")] Continuous(super::NatureContinuous), //// categories of each column #[prost(message, tag="101")] Categorical(super::NatureCategorical), } } /// derived properties for the Value::Function type #[derive(Clone, PartialEq, ::prost::Message)] pub struct FunctionProperties { #[prost(bool, tag="1")] pub releasable: bool, } /// properties for each node on a graph #[derive(Clone, PartialEq, ::prost::Message)] pub struct GraphProperties { #[prost(map="uint32, message", tag="1")] pub properties: ::std::collections::HashMap<u32, ValueProperties>, #[prost(message, repeated, tag="2")] pub warnings: ::std::vec::Vec<Error>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Accuracies { #[prost(message, repeated, tag="1")] pub values: ::std::vec::Vec<Accuracy>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Accuracy { #[prost(double, tag="1")] pub value: f64, #[prost(double, tag="2")] pub alpha: f64, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ComponentExpansion { #[prost(map="uint32, message", tag="1")] pub computation_graph: ::std::collections::HashMap<u32, Component>, #[prost(map="uint32, message", tag="2")] pub properties: ::std::collections::HashMap<u32, ValueProperties>, #[prost(map="uint32, message", tag="3")] pub releases: ::std::collections::HashMap<u32, ReleaseNode>, #[prost(uint32, repeated, tag="4")] pub traversal: ::std::vec::Vec<u32>, #[prost(message, repeated, tag="5")] pub warnings: ::std::vec::Vec<Error>, } /// literals #[derive(Clone, PartialEq, ::prost::Message)] pub struct Value { /// bytes bytes = 1; #[prost(oneof="value::Data", tags="2, 3, 4, 5, 6")] pub data: ::std::option::Option<value::Data>, } pub mod value { /// bytes bytes = 1; #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Data { /// N-dimensional homogeneously typed array #[prost(message, tag="2")] Array(super::Array), /// Key-Value pairs #[prost(message, tag="3")] Dataframe(super::Dataframe), #[prost(message, tag="4")] Partitions(super::Partitions), /// Data structure with mixed column lengths #[prost(message, tag="5")] Jagged(super::Jagged), /// Evaluable function #[prost(message, tag="6")] Function(super::Function), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Dataframe { #[prost(message, repeated, tag="1")] pub keys: ::std::vec::Vec<IndexKey>, #[prost(message, repeated, tag="2")] pub values: ::std::vec::Vec<Value>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Partitions { #[prost(message, repeated, tag="1")] pub keys: ::std::vec::Vec<IndexKey>, #[prost(message, repeated, tag="2")] pub values: ::std::vec::Vec<Value>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct Function { #[prost(message, optional, tag="1")] pub computation_graph: ::std::option::Option<ComputationGraph>, #[prost(message, optional, tag="2")] pub release: ::std::option::Option<Release>, #[prost(map="string, uint32", tag="3")] pub arguments: ::std::collections::HashMap<std::string::String, u32>, #[prost(map="string, uint32", tag="4")] pub outputs: ::std::collections::HashMap<std::string::String, u32>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ReleaseNode { #[prost(message, optional, tag="1")] pub value: ::std::option::Option<Value>, #[prost(message, optional, tag="2")] pub privacy_usages: ::std::option::Option<PrivacyUsages>, #[prost(bool, tag="3")] pub public: bool, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct IndexmapReleaseNode { #[prost(message, repeated, tag="1")] pub keys: ::std::vec::Vec<IndexKey>, #[prost(message, repeated, tag="2")] pub values: ::std::vec::Vec<ReleaseNode>, } #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum FilterLevel { /// release from runtime should include public data (either literals or sanitized data) Public = 0, /// release from runtime should include public and prior known values PublicAndPrior = 1, /// release from runtime should include evaluations from all nodes All = 2, } // REQUESTS // VALIDATOR API #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestValidateAnalysis { #[prost(message, optional, tag="1")] pub analysis: ::std::option::Option<Analysis>, #[prost(message, optional, tag="2")] pub release: ::std::option::Option<Release>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestComputePrivacyUsage { #[prost(message, optional, tag="1")] pub analysis: ::std::option::Option<Analysis>, #[prost(message, optional, tag="2")] pub release: ::std::option::Option<Release>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestGenerateReport { #[prost(message, optional, tag="1")] pub analysis: ::std::option::Option<Analysis>, #[prost(message, optional, tag="2")] pub release: ::std::option::Option<Release>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestGetProperties { #[prost(message, optional, tag="1")] pub analysis: ::std::option::Option<Analysis>, #[prost(message, optional, tag="2")] pub release: ::std::option::Option<Release>, /// only compute properties for these nodes. If empty, properties for all nodes are returned #[prost(uint32, repeated, tag="3")] pub node_ids: ::std::vec::Vec<u32>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestAccuracyToPrivacyUsage { #[prost(message, optional, tag="1")] pub privacy_definition: ::std::option::Option<PrivacyDefinition>, #[prost(message, optional, tag="2")] pub component: ::std::option::Option<Component>, #[prost(message, optional, tag="3")] pub properties: ::std::option::Option<ArgumentProperties>, #[prost(message, optional, tag="4")] pub accuracies: ::std::option::Option<Accuracies>, #[prost(message, optional, tag="5")] pub public_arguments: ::std::option::Option<IndexmapReleaseNode>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestPrivacyUsageToAccuracy { #[prost(message, optional, tag="1")] pub privacy_definition: ::std::option::Option<PrivacyDefinition>, #[prost(message, optional, tag="2")] pub component: ::std::option::Option<Component>, #[prost(message, optional, tag="3")] pub properties: ::std::option::Option<ArgumentProperties>, #[prost(double, tag="4")] pub alpha: f64, #[prost(message, optional, tag="5")] pub public_arguments: ::std::option::Option<IndexmapReleaseNode>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestExpandComponent { #[prost(message, optional, tag="1")] pub component: ::std::option::Option<Component>, #[prost(message, optional, tag="2")] pub properties: ::std::option::Option<ArgumentProperties>, #[prost(message, optional, tag="3")] pub arguments: ::std::option::Option<IndexmapReleaseNode>, #[prost(message, optional, tag="4")] pub privacy_definition: ::std::option::Option<PrivacyDefinition>, #[prost(uint32, tag="5")] pub component_id: u32, #[prost(uint32, tag="6")] pub maximum_id: u32, } // REQUESTS // RUNTIME API #[derive(Clone, PartialEq, ::prost::Message)] pub struct RequestRelease { #[prost(message, optional, tag="1")] pub analysis: ::std::option::Option<Analysis>, #[prost(message, optional, tag="2")] pub release: ::std::option::Option<Release>, /// enable to return stack traces in the error response variant #[prost(bool, tag="10")] pub stack_trace: bool, /// configure how much data should be returned from runtime #[prost(enumeration="FilterLevel", tag="11")] pub filter_level: i32, } // RESPONSES // VALIDATOR API #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseValidateAnalysis { #[prost(oneof="response_validate_analysis::Value", tags="1, 2")] pub value: ::std::option::Option<response_validate_analysis::Value>, } pub mod response_validate_analysis { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Validated { #[prost(bool, tag="1")] pub value: bool, #[prost(string, tag="2")] pub message: std::string::String, } #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Value { #[prost(message, tag="1")] Data(Validated), #[prost(message, tag="2")] Error(super::Error), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseComputePrivacyUsage { #[prost(oneof="response_compute_privacy_usage::Value", tags="1, 2")] pub value: ::std::option::Option<response_compute_privacy_usage::Value>, } pub mod response_compute_privacy_usage { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Value { #[prost(message, tag="1")] Data(super::PrivacyUsage), #[prost(message, tag="2")] Error(super::Error), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseGenerateReport { #[prost(oneof="response_generate_report::Value", tags="1, 2")] pub value: ::std::option::Option<response_generate_report::Value>, } pub mod response_generate_report { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Value { #[prost(string, tag="1")] Data(std::string::String), #[prost(message, tag="2")] Error(super::Error), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseGetProperties { #[prost(oneof="response_get_properties::Value", tags="1, 2")] pub value: ::std::option::Option<response_get_properties::Value>, } pub mod response_get_properties { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Value { #[prost(message, tag="1")] Data(super::GraphProperties), #[prost(message, tag="2")] Error(super::Error), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseAccuracyToPrivacyUsage { #[prost(oneof="response_accuracy_to_privacy_usage::Value", tags="1, 2")] pub value: ::std::option::Option<response_accuracy_to_privacy_usage::Value>, } pub mod response_accuracy_to_privacy_usage { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Value { #[prost(message, tag="1")] Data(super::PrivacyUsages), #[prost(message, tag="2")] Error(super::Error), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponsePrivacyUsageToAccuracy { #[prost(oneof="response_privacy_usage_to_accuracy::Value", tags="1, 2")] pub value: ::std::option::Option<response_privacy_usage_to_accuracy::Value>, } pub mod response_privacy_usage_to_accuracy { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Value { #[prost(message, tag="1")] Data(super::Accuracies), #[prost(message, tag="2")] Error(super::Error), } } #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseExpandComponent { #[prost(oneof="response_expand_component::Value", tags="1, 2")] pub value: ::std::option::Option<response_expand_component::Value>, } pub mod response_expand_component { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Value { #[prost(message, tag="1")] Data(super::ComponentExpansion), #[prost(message, tag="2")] Error(super::Error), } } // RESPONSES // RUNTIME API #[derive(Clone, PartialEq, ::prost::Message)] pub struct ResponseRelease { #[prost(oneof="response_release::Value", tags="1, 2")] pub value: ::std::option::Option<response_release::Value>, } pub mod response_release { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Success { #[prost(message, optional, tag="1")] pub release: ::std::option::Option<super::Release>, #[prost(message, repeated, tag="2")] pub warnings: ::std::vec::Vec<super::Error>, } #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Value { #[prost(message, tag="1")] Data(Success), #[prost(message, tag="2")] Error(super::Error), } }