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 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817
// This file is @generated by prost-build.
/// A bucket.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Bucket {
/// Access controls on the bucket.
#[prost(message, repeated, tag = "1")]
pub acl: ::prost::alloc::vec::Vec<BucketAccessControl>,
/// Default access controls to apply to new objects when no ACL is provided.
#[prost(message, repeated, tag = "2")]
pub default_object_acl: ::prost::alloc::vec::Vec<ObjectAccessControl>,
/// The bucket's lifecycle configuration. See
/// \[<https://developers.google.com/storage/docs/lifecycle\]Lifecycle> Management]
/// for more information.
#[prost(message, optional, tag = "3")]
pub lifecycle: ::core::option::Option<bucket::Lifecycle>,
/// The creation time of the bucket in
/// [<https://tools.ietf.org/html/rfc3339][RFC> 3339] format.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(message, optional, tag = "4")]
pub time_created: ::core::option::Option<::prost_types::Timestamp>,
/// The ID of the bucket. For buckets, the `id` and `name` properties are the
/// same.
/// Attempting to update this field after the bucket is created will result in
/// a [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(string, tag = "5")]
pub id: ::prost::alloc::string::String,
/// The name of the bucket.
/// Attempting to update this field after the bucket is created will result in
/// an error.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
/// The project number of the project the bucket belongs to.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(int64, tag = "7")]
pub project_number: i64,
/// The metadata generation of this bucket.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(int64, tag = "8")]
pub metageneration: i64,
/// The bucket's [<https://www.w3.org/TR/cors/][Cross-Origin> Resource Sharing]
/// (CORS) configuration.
#[prost(message, repeated, tag = "9")]
pub cors: ::prost::alloc::vec::Vec<bucket::Cors>,
/// The location of the bucket. Object data for objects in the bucket resides
/// in physical storage within this region. Defaults to `US`. See the
/// [<https://developers.google.com/storage/docs/concepts-techniques#specifyinglocations"][developer's>
/// guide] for the authoritative list. Attempting to update this field after
/// the bucket is created will result in an error.
#[prost(string, tag = "10")]
pub location: ::prost::alloc::string::String,
/// The bucket's default storage class, used whenever no storageClass is
/// specified for a newly-created object. This defines how objects in the
/// bucket are stored and determines the SLA and the cost of storage.
/// If this value is not specified when the bucket is created, it will default
/// to `STANDARD`. For more information, see
/// <https://developers.google.com/storage/docs/storage-classes.>
#[prost(string, tag = "11")]
pub storage_class: ::prost::alloc::string::String,
/// HTTP 1.1 \[<https://tools.ietf.org/html/rfc7232#section-2.3"\]Entity> tag]
/// for the bucket.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(string, tag = "12")]
pub etag: ::prost::alloc::string::String,
/// The modification time of the bucket.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(message, optional, tag = "13")]
pub updated: ::core::option::Option<::prost_types::Timestamp>,
/// The default value for event-based hold on newly created objects in this
/// bucket. Event-based hold is a way to retain objects indefinitely until an
/// event occurs, signified by the
/// hold's release. After being released, such objects will be subject to
/// bucket-level retention (if any). One sample use case of this flag is for
/// banks to hold loan documents for at least 3 years after loan is paid in
/// full. Here, bucket-level retention is 3 years and the event is loan being
/// paid in full. In this example, these objects will be held intact for any
/// number of years until the event has occurred (event-based hold on the
/// object is released) and then 3 more years after that. That means retention
/// duration of the objects begins from the moment event-based hold
/// transitioned from true to false. Objects under event-based hold cannot be
/// deleted, overwritten or archived until the hold is removed.
#[prost(bool, tag = "14")]
pub default_event_based_hold: bool,
/// User-provided labels, in key/value pairs.
#[prost(btree_map = "string, string", tag = "15")]
pub labels: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
/// The bucket's website configuration, controlling how the service behaves
/// when accessing bucket contents as a web site. See the
/// [<https://cloud.google.com/storage/docs/static-website][Static> Website
/// Examples] for more information.
#[prost(message, optional, tag = "16")]
pub website: ::core::option::Option<bucket::Website>,
/// The bucket's versioning configuration.
#[prost(message, optional, tag = "17")]
pub versioning: ::core::option::Option<bucket::Versioning>,
/// The bucket's logging configuration, which defines the destination bucket
/// and optional name prefix for the current bucket's logs.
#[prost(message, optional, tag = "18")]
pub logging: ::core::option::Option<bucket::Logging>,
/// The owner of the bucket. This is always the project team's owner group.
#[prost(message, optional, tag = "19")]
pub owner: ::core::option::Option<Owner>,
/// Encryption configuration for a bucket.
#[prost(message, optional, tag = "20")]
pub encryption: ::core::option::Option<bucket::Encryption>,
/// The bucket's billing configuration.
#[prost(message, optional, tag = "21")]
pub billing: ::core::option::Option<bucket::Billing>,
/// The bucket's retention policy. The retention policy enforces a minimum
/// retention time for all objects contained in the bucket, based on their
/// creation time. Any attempt to overwrite or delete objects younger than the
/// retention period will result in a PERMISSION_DENIED error. An unlocked
/// retention policy can be modified or removed from the bucket via a
/// storage.buckets.update operation. A locked retention policy cannot be
/// removed or shortened in duration for the lifetime of the bucket.
/// Attempting to remove or decrease period of a locked retention policy will
/// result in a PERMISSION_DENIED error.
#[prost(message, optional, tag = "22")]
pub retention_policy: ::core::option::Option<bucket::RetentionPolicy>,
/// The location type of the bucket (region, dual-region, multi-region, etc).
#[prost(string, tag = "23")]
pub location_type: ::prost::alloc::string::String,
/// The bucket's IAM configuration.
#[prost(message, optional, tag = "24")]
pub iam_configuration: ::core::option::Option<bucket::IamConfiguration>,
/// The zone or zones from which the bucket is intended to use zonal quota.
/// Requests for data from outside the specified affinities are still allowed
/// but won't be able to use zonal quota. The values are case-insensitive.
/// Attempting to update this field after bucket is created will result in an
/// error.
#[deprecated]
#[prost(string, repeated, tag = "25")]
pub zone_affinity: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// Reserved for future use.
#[prost(bool, tag = "26")]
pub satisfies_pzs: bool,
/// The bucket's autoclass configuration. If there is no configuration, the
/// Autoclass feature will be disabled and have no effect on the bucket.
#[prost(message, optional, tag = "28")]
pub autoclass: ::core::option::Option<bucket::Autoclass>,
}
/// Nested message and enum types in `Bucket`.
pub mod bucket {
/// Billing properties of a bucket.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Billing {
/// When set to true, Requester Pays is enabled for this bucket.
#[prost(bool, tag = "1")]
pub requester_pays: bool,
}
/// Cross-Origin Response sharing (CORS) properties for a bucket.
/// For more on GCS and CORS, see
/// <https://cloud.google.com/storage/docs/cross-origin.>
/// For more on CORS in general, see <https://tools.ietf.org/html/rfc6454.>
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Cors {
/// The list of Origins eligible to receive CORS response headers. See
/// [<https://tools.ietf.org/html/rfc6454][RFC> 6454] for more on origins.
/// Note: "*" is permitted in the list of origins, and means "any Origin".
#[prost(string, repeated, tag = "1")]
pub origin: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// The list of HTTP methods on which to include CORS response headers,
/// (`GET`, `OPTIONS`, `POST`, etc) Note: "*" is permitted in the list of
/// methods, and means "any method".
#[prost(string, repeated, tag = "2")]
pub method: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// The list of HTTP headers other than the
/// [<https://www.w3.org/TR/cors/#simple-response-header][simple> response
/// headers] to give permission for the user-agent to share across domains.
#[prost(string, repeated, tag = "3")]
pub response_header: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// The value, in seconds, to return in the
/// [<https://www.w3.org/TR/cors/#access-control-max-age-response-header][Access-Control-Max-Age>
/// header] used in preflight responses.
#[prost(int32, tag = "4")]
pub max_age_seconds: i32,
}
/// Encryption properties of a bucket.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Encryption {
/// A Cloud KMS key that will be used to encrypt objects inserted into this
/// bucket, if no encryption method is specified.
#[prost(string, tag = "1")]
pub default_kms_key_name: ::prost::alloc::string::String,
}
/// Bucket restriction options currently enforced on the bucket.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct IamConfiguration {
#[prost(message, optional, tag = "1")]
pub uniform_bucket_level_access: ::core::option::Option<
iam_configuration::UniformBucketLevelAccess,
>,
/// Whether IAM will enforce public access prevention.
#[prost(enumeration = "iam_configuration::PublicAccessPrevention", tag = "2")]
pub public_access_prevention: i32,
}
/// Nested message and enum types in `IamConfiguration`.
pub mod iam_configuration {
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct UniformBucketLevelAccess {
/// If set, access checks only use bucket-level IAM policies or above.
#[prost(bool, tag = "1")]
pub enabled: bool,
/// The deadline time for changing
/// <code>iamConfiguration.uniformBucketLevelAccess.enabled</code> from
/// true to false in [<https://tools.ietf.org/html/rfc3339][RFC> 3339]. After
/// the deadline is passed the field is immutable.
#[prost(message, optional, tag = "2")]
pub locked_time: ::core::option::Option<::prost_types::Timestamp>,
}
/// Public Access Prevention configuration values.
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum PublicAccessPrevention {
/// No specified PublicAccessPrevention.
Unspecified = 0,
/// Prevents access from being granted to public members 'allUsers' and
/// 'allAuthenticatedUsers'. Prevents attempts to grant new access to
/// public members.
Enforced = 1,
/// This setting is inherited from Org Policy. Does not prevent access from
/// being granted to public members 'allUsers' or 'allAuthenticatedUsers'.
Inherited = 2,
}
impl PublicAccessPrevention {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
PublicAccessPrevention::Unspecified => {
"PUBLIC_ACCESS_PREVENTION_UNSPECIFIED"
}
PublicAccessPrevention::Enforced => "ENFORCED",
PublicAccessPrevention::Inherited => "INHERITED",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PUBLIC_ACCESS_PREVENTION_UNSPECIFIED" => Some(Self::Unspecified),
"ENFORCED" => Some(Self::Enforced),
"INHERITED" => Some(Self::Inherited),
_ => None,
}
}
}
}
/// Lifecycle properties of a bucket.
/// For more information, see <https://cloud.google.com/storage/docs/lifecycle.>
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Lifecycle {
/// A lifecycle management rule, which is made of an action to take and the
/// condition(s) under which the action will be taken.
#[prost(message, repeated, tag = "1")]
pub rule: ::prost::alloc::vec::Vec<lifecycle::Rule>,
}
/// Nested message and enum types in `Lifecycle`.
pub mod lifecycle {
/// A lifecycle Rule, combining an action to take on an object and a
/// condition which will trigger that action.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Rule {
/// The action to take.
#[prost(message, optional, tag = "1")]
pub action: ::core::option::Option<rule::Action>,
/// The condition(s) under which the action will be taken.
#[prost(message, optional, tag = "2")]
pub condition: ::core::option::Option<rule::Condition>,
}
/// Nested message and enum types in `Rule`.
pub mod rule {
/// An action to take on an object.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Action {
/// Type of the action. Currently, only `Delete`, `SetStorageClass`, and
/// `AbortIncompleteMultipartUpload` are supported.
#[prost(string, tag = "1")]
pub r#type: ::prost::alloc::string::String,
/// Target storage class. Required iff the type of the action is
/// SetStorageClass.
#[prost(string, tag = "2")]
pub storage_class: ::prost::alloc::string::String,
}
/// A condition of an object which triggers some action.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Condition {
/// Age of an object (in days). This condition is satisfied when an
/// object reaches the specified age.
#[prost(int32, tag = "1")]
pub age: i32,
/// A date in [RFC 3339][1] format with only the date part (for
/// instance, "2013-01-15"). This condition is satisfied when an
/// object is created before midnight of the specified date in UTC.
/// \[1\]: <https://tools.ietf.org/html/rfc3339>
#[prost(message, optional, tag = "2")]
pub created_before: ::core::option::Option<::prost_types::Timestamp>,
/// Relevant only for versioned objects. If the value is
/// `true`, this condition matches live objects; if the value
/// is `false`, it matches archived objects.
#[prost(message, optional, tag = "3")]
pub is_live: ::core::option::Option<bool>,
/// Relevant only for versioned objects. If the value is N, this
/// condition is satisfied when there are at least N versions (including
/// the live version) newer than this version of the object.
#[prost(int32, tag = "4")]
pub num_newer_versions: i32,
/// Objects having any of the storage classes specified by this condition
/// will be matched. Values include `MULTI_REGIONAL`, `REGIONAL`,
/// `NEARLINE`, `COLDLINE`, `STANDARD`, and
/// `DURABLE_REDUCED_AVAILABILITY`.
#[prost(string, repeated, tag = "5")]
pub matches_storage_class: ::prost::alloc::vec::Vec<
::prost::alloc::string::String,
>,
/// A regular expression that satisfies the RE2 syntax. This condition is
/// satisfied when the name of the object matches the RE2 pattern. Note:
/// This feature is currently in the "Early Access" launch stage and is
/// only available to an allowlisted set of users; that means that this
/// feature may be changed in backward-incompatible ways and that it is
/// not guaranteed to be released.
#[prost(string, tag = "6")]
pub matches_pattern: ::prost::alloc::string::String,
/// Number of days that has elapsed since the custom timestamp set on an
/// object.
#[prost(int32, tag = "7")]
pub days_since_custom_time: i32,
/// An object matches this condition if the custom timestamp set on the
/// object is before this timestamp.
#[prost(message, optional, tag = "8")]
pub custom_time_before: ::core::option::Option<::prost_types::Timestamp>,
/// This condition is relevant only for versioned objects. An object
/// version satisfies this condition only if these many days have been
/// passed since it became noncurrent. The value of the field must be a
/// nonnegative integer. If it's zero, the object version will become
/// eligible for Lifecycle action as soon as it becomes noncurrent.
#[prost(int32, tag = "9")]
pub days_since_noncurrent_time: i32,
/// This condition is relevant only for versioned objects. An object
/// version satisfies this condition only if it became noncurrent before
/// the specified timestamp.
#[prost(message, optional, tag = "10")]
pub noncurrent_time_before: ::core::option::Option<
::prost_types::Timestamp,
>,
/// List of object name prefixes. If any prefix exactly matches the
/// beginning of the object name, the condition evaluates to true.
#[prost(string, repeated, tag = "11")]
pub matches_prefix: ::prost::alloc::vec::Vec<
::prost::alloc::string::String,
>,
/// List of object name suffixes. If any suffix exactly matches the
/// end of the object name, the condition evaluates to true.
#[prost(string, repeated, tag = "12")]
pub matches_suffix: ::prost::alloc::vec::Vec<
::prost::alloc::string::String,
>,
}
}
}
/// Logging-related properties of a bucket.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Logging {
/// The destination bucket where the current bucket's logs should be placed.
#[prost(string, tag = "1")]
pub log_bucket: ::prost::alloc::string::String,
/// A prefix for log object names.
#[prost(string, tag = "2")]
pub log_object_prefix: ::prost::alloc::string::String,
}
/// Retention policy properties of a bucket.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RetentionPolicy {
/// Server-determined value that indicates the time from which policy was
/// enforced and effective. This value is in
/// [<https://tools.ietf.org/html/rfc3339][RFC> 3339] format.
#[prost(message, optional, tag = "1")]
pub effective_time: ::core::option::Option<::prost_types::Timestamp>,
/// Once locked, an object retention policy cannot be modified.
#[prost(bool, tag = "2")]
pub is_locked: bool,
/// The duration in seconds that objects need to be retained. Retention
/// duration must be greater than zero and less than 100 years. Note that
/// enforcement of retention periods less than a day is not guaranteed. Such
/// periods should only be used for testing purposes.
#[prost(int64, tag = "3")]
pub retention_period: i64,
}
/// Properties of a bucket related to versioning.
/// For more on GCS versioning, see
/// <https://cloud.google.com/storage/docs/object-versioning.>
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Versioning {
/// While set to true, versioning is fully enabled for this bucket.
#[prost(bool, tag = "1")]
pub enabled: bool,
}
/// Properties of a bucket related to accessing the contents as a static
/// website. For more on hosting a static website via GCS, see
/// <https://cloud.google.com/storage/docs/hosting-static-website.>
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Website {
/// If the requested object path is missing, the service will ensure the path
/// has a trailing '/', append this suffix, and attempt to retrieve the
/// resulting object. This allows the creation of `index.html`
/// objects to represent directory pages.
#[prost(string, tag = "1")]
pub main_page_suffix: ::prost::alloc::string::String,
/// If the requested object path is missing, and any
/// `mainPageSuffix` object is missing, if applicable, the service
/// will return the named object from this bucket as the content for a
/// [<https://tools.ietf.org/html/rfc7231#section-6.5.4][404> Not Found]
/// result.
#[prost(string, tag = "2")]
pub not_found_page: ::prost::alloc::string::String,
}
/// Configuration for a bucket's Autoclass feature.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Autoclass {
/// Enables Autoclass.
#[prost(bool, tag = "1")]
pub enabled: bool,
/// Latest instant at which the `enabled` bit was flipped.
#[prost(message, optional, tag = "2")]
pub toggle_time: ::core::option::Option<::prost_types::Timestamp>,
}
}
/// An access-control entry.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BucketAccessControl {
/// The access permission for the entity.
#[prost(string, tag = "1")]
pub role: ::prost::alloc::string::String,
/// HTTP 1.1 ["<https://tools.ietf.org/html/rfc7232#section-2.3][Entity> tag]
/// for the access-control entry.
#[prost(string, tag = "2")]
pub etag: ::prost::alloc::string::String,
/// The ID of the access-control entry.
#[prost(string, tag = "3")]
pub id: ::prost::alloc::string::String,
/// The name of the bucket.
#[prost(string, tag = "4")]
pub bucket: ::prost::alloc::string::String,
/// The entity holding the permission, in one of the following forms:
/// * `user-{userid}`
/// * `user-{email}`
/// * `group-{groupid}`
/// * `group-{email}`
/// * `domain-{domain}`
/// * `project-{team-projectid}`
/// * `allUsers`
/// * `allAuthenticatedUsers`
/// Examples:
/// * The user `liz@example.com` would be `user-liz@example.com`.
/// * The group `example@googlegroups.com` would be
/// `group-example@googlegroups.com`
/// * All members of the Google Apps for Business domain `example.com` would be
/// `domain-example.com`
#[prost(string, tag = "6")]
pub entity: ::prost::alloc::string::String,
/// The ID for the entity, if any.
#[prost(string, tag = "7")]
pub entity_id: ::prost::alloc::string::String,
/// The email address associated with the entity, if any.
#[prost(string, tag = "8")]
pub email: ::prost::alloc::string::String,
/// The domain associated with the entity, if any.
#[prost(string, tag = "9")]
pub domain: ::prost::alloc::string::String,
/// The project team associated with the entity, if any.
#[prost(message, optional, tag = "10")]
pub project_team: ::core::option::Option<ProjectTeam>,
}
/// The response to a call to BucketAccessControls.ListBucketAccessControls.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListBucketAccessControlsResponse {
/// The list of items.
#[prost(message, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<BucketAccessControl>,
}
/// The result of a call to Buckets.ListBuckets
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListBucketsResponse {
/// The list of items.
#[prost(message, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<Bucket>,
/// The continuation token, used to page through large result sets. Provide
/// this value in a subsequent request to return the next page of results.
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
/// An notification channel used to watch for resource changes.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Channel {
/// A UUID or similar unique string that identifies this channel.
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
/// An opaque ID that identifies the resource being watched on this channel.
/// Stable across different API versions.
#[prost(string, tag = "2")]
pub resource_id: ::prost::alloc::string::String,
/// A version-specific identifier for the watched resource.
#[prost(string, tag = "3")]
pub resource_uri: ::prost::alloc::string::String,
/// An arbitrary string delivered to the target address with each notification
/// delivered over this channel. Optional.
#[prost(string, tag = "4")]
pub token: ::prost::alloc::string::String,
/// Date and time of notification channel expiration. Optional.
#[prost(message, optional, tag = "5")]
pub expiration: ::core::option::Option<::prost_types::Timestamp>,
/// The type of delivery mechanism used for this channel.
#[prost(string, tag = "6")]
pub r#type: ::prost::alloc::string::String,
/// The address where notifications are delivered for this channel.
#[prost(string, tag = "7")]
pub address: ::prost::alloc::string::String,
/// Additional parameters controlling delivery channel behavior. Optional.
#[prost(btree_map = "string, string", tag = "8")]
pub params: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
/// A Boolean value to indicate whether payload is wanted. Optional.
#[prost(bool, tag = "9")]
pub payload: bool,
}
/// The result of a call to Channels.ListChannels
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListChannelsResponse {
/// The list of notification channels for a bucket.
#[prost(message, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<list_channels_response::Items>,
}
/// Nested message and enum types in `ListChannelsResponse`.
pub mod list_channels_response {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Items {
/// User-specified name for a channel. Needed to unsubscribe.
#[prost(string, tag = "1")]
pub channel_id: ::prost::alloc::string::String,
/// Opaque value generated by GCS representing a bucket. Needed to
/// unsubscribe.
#[prost(string, tag = "2")]
pub resource_id: ::prost::alloc::string::String,
/// Url used to identify where notifications are sent to.
#[prost(string, tag = "3")]
pub push_url: ::prost::alloc::string::String,
/// Email address of the subscriber.
#[prost(string, tag = "4")]
pub subscriber_email: ::prost::alloc::string::String,
/// Time when the channel was created.
#[prost(message, optional, tag = "5")]
pub creation_time: ::core::option::Option<::prost_types::Timestamp>,
}
}
/// Message used to convey content being read or written, along with its
/// checksum.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChecksummedData {
/// The data.
#[prost(bytes = "bytes", tag = "1")]
pub content: ::prost::bytes::Bytes,
/// CRC32C digest of the contents.
#[prost(message, optional, tag = "2")]
pub crc32c: ::core::option::Option<u32>,
}
/// Message used for storing full (not subrange) object checksums.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectChecksums {
/// CRC32C digest of the object data. Computed by the GCS service for
/// all written objects, and validated by the GCS service against
/// client-supplied values if present in an InsertObjectRequest.
#[prost(message, optional, tag = "1")]
pub crc32c: ::core::option::Option<u32>,
/// Hex-encoded MD5 hash of the object data (hexdigest). Whether/how this
/// checksum is provided and validated is service-dependent.
#[prost(string, tag = "2")]
pub md5_hash: ::prost::alloc::string::String,
}
/// A collection of enums used in multiple places throughout the API.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct CommonEnums {}
/// Nested message and enum types in `CommonEnums`.
pub mod common_enums {
/// A set of properties to return in a response.
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Projection {
/// No specified projection.
Unspecified = 0,
/// Omit `owner`, `acl`, and `defaultObjectAcl` properties.
NoAcl = 1,
/// Include all properties.
Full = 2,
}
impl Projection {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
Projection::Unspecified => "PROJECTION_UNSPECIFIED",
Projection::NoAcl => "NO_ACL",
Projection::Full => "FULL",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PROJECTION_UNSPECIFIED" => Some(Self::Unspecified),
"NO_ACL" => Some(Self::NoAcl),
"FULL" => Some(Self::Full),
_ => None,
}
}
}
/// Predefined or "canned" aliases for sets of specific bucket ACL entries.
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum PredefinedBucketAcl {
/// No predefined ACL.
Unspecified = 0,
/// Project team owners get `OWNER` access, and
/// `allAuthenticatedUsers` get `READER` access.
BucketAclAuthenticatedRead = 1,
/// Project team owners get `OWNER` access.
BucketAclPrivate = 2,
/// Project team members get access according to their roles.
BucketAclProjectPrivate = 3,
/// Project team owners get `OWNER` access, and
/// `allUsers` get `READER` access.
BucketAclPublicRead = 4,
/// Project team owners get `OWNER` access, and
/// `allUsers` get `WRITER` access.
BucketAclPublicReadWrite = 5,
}
impl PredefinedBucketAcl {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
PredefinedBucketAcl::Unspecified => "PREDEFINED_BUCKET_ACL_UNSPECIFIED",
PredefinedBucketAcl::BucketAclAuthenticatedRead => {
"BUCKET_ACL_AUTHENTICATED_READ"
}
PredefinedBucketAcl::BucketAclPrivate => "BUCKET_ACL_PRIVATE",
PredefinedBucketAcl::BucketAclProjectPrivate => {
"BUCKET_ACL_PROJECT_PRIVATE"
}
PredefinedBucketAcl::BucketAclPublicRead => "BUCKET_ACL_PUBLIC_READ",
PredefinedBucketAcl::BucketAclPublicReadWrite => {
"BUCKET_ACL_PUBLIC_READ_WRITE"
}
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PREDEFINED_BUCKET_ACL_UNSPECIFIED" => Some(Self::Unspecified),
"BUCKET_ACL_AUTHENTICATED_READ" => Some(Self::BucketAclAuthenticatedRead),
"BUCKET_ACL_PRIVATE" => Some(Self::BucketAclPrivate),
"BUCKET_ACL_PROJECT_PRIVATE" => Some(Self::BucketAclProjectPrivate),
"BUCKET_ACL_PUBLIC_READ" => Some(Self::BucketAclPublicRead),
"BUCKET_ACL_PUBLIC_READ_WRITE" => Some(Self::BucketAclPublicReadWrite),
_ => None,
}
}
}
/// Predefined or "canned" aliases for sets of specific object ACL entries.
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum PredefinedObjectAcl {
/// No predefined ACL.
Unspecified = 0,
/// Object owner gets `OWNER` access, and
/// `allAuthenticatedUsers` get `READER` access.
ObjectAclAuthenticatedRead = 1,
/// Object owner gets `OWNER` access, and project team owners get
/// `OWNER` access.
ObjectAclBucketOwnerFullControl = 2,
/// Object owner gets `OWNER` access, and project team owners get
/// `READER` access.
ObjectAclBucketOwnerRead = 3,
/// Object owner gets `OWNER` access.
ObjectAclPrivate = 4,
/// Object owner gets `OWNER` access, and project team members get
/// access according to their roles.
ObjectAclProjectPrivate = 5,
/// Object owner gets `OWNER` access, and `allUsers`
/// get `READER` access.
ObjectAclPublicRead = 6,
}
impl PredefinedObjectAcl {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
PredefinedObjectAcl::Unspecified => "PREDEFINED_OBJECT_ACL_UNSPECIFIED",
PredefinedObjectAcl::ObjectAclAuthenticatedRead => {
"OBJECT_ACL_AUTHENTICATED_READ"
}
PredefinedObjectAcl::ObjectAclBucketOwnerFullControl => {
"OBJECT_ACL_BUCKET_OWNER_FULL_CONTROL"
}
PredefinedObjectAcl::ObjectAclBucketOwnerRead => {
"OBJECT_ACL_BUCKET_OWNER_READ"
}
PredefinedObjectAcl::ObjectAclPrivate => "OBJECT_ACL_PRIVATE",
PredefinedObjectAcl::ObjectAclProjectPrivate => {
"OBJECT_ACL_PROJECT_PRIVATE"
}
PredefinedObjectAcl::ObjectAclPublicRead => "OBJECT_ACL_PUBLIC_READ",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PREDEFINED_OBJECT_ACL_UNSPECIFIED" => Some(Self::Unspecified),
"OBJECT_ACL_AUTHENTICATED_READ" => Some(Self::ObjectAclAuthenticatedRead),
"OBJECT_ACL_BUCKET_OWNER_FULL_CONTROL" => {
Some(Self::ObjectAclBucketOwnerFullControl)
}
"OBJECT_ACL_BUCKET_OWNER_READ" => Some(Self::ObjectAclBucketOwnerRead),
"OBJECT_ACL_PRIVATE" => Some(Self::ObjectAclPrivate),
"OBJECT_ACL_PROJECT_PRIVATE" => Some(Self::ObjectAclProjectPrivate),
"OBJECT_ACL_PUBLIC_READ" => Some(Self::ObjectAclPublicRead),
_ => None,
}
}
}
}
/// Specifies a requested range of bytes to download.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ContentRange {
/// The starting offset of the object data.
#[prost(int64, tag = "1")]
pub start: i64,
/// The ending offset of the object data.
#[prost(int64, tag = "2")]
pub end: i64,
/// The complete length of the object data.
#[prost(int64, tag = "3")]
pub complete_length: i64,
}
/// Hmac Key Metadata, which includes all information other than the secret.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HmacKeyMetadata {
/// Resource name ID of the key in the format <projectId>/<accessId>.
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
/// Globally unique id for keys.
#[prost(string, tag = "2")]
pub access_id: ::prost::alloc::string::String,
/// The project ID that the hmac key is contained in.
#[prost(string, tag = "3")]
pub project_id: ::prost::alloc::string::String,
/// Email of the service account the key authenticates as.
#[prost(string, tag = "4")]
pub service_account_email: ::prost::alloc::string::String,
/// State of the key. One of ACTIVE, INACTIVE, or DELETED.
#[prost(string, tag = "5")]
pub state: ::prost::alloc::string::String,
/// The creation time of the HMAC key in RFC 3339 format.
#[prost(message, optional, tag = "6")]
pub time_created: ::core::option::Option<::prost_types::Timestamp>,
/// The last modification time of the HMAC key metadata in RFC 3339 format.
#[prost(message, optional, tag = "7")]
pub updated: ::core::option::Option<::prost_types::Timestamp>,
/// Tag updated with each key update.
#[prost(string, tag = "8")]
pub etag: ::prost::alloc::string::String,
}
/// A subscription to receive Google PubSub notifications.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Notification {
/// The Cloud PubSub topic to which this subscription publishes. Formatted as:
/// '//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}'
#[prost(string, tag = "1")]
pub topic: ::prost::alloc::string::String,
/// If present, only send notifications about listed event types. If empty,
/// sent notifications for all event types.
#[prost(string, repeated, tag = "2")]
pub event_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// An optional list of additional attributes to attach to each Cloud PubSub
/// message published for this notification subscription.
#[prost(btree_map = "string, string", tag = "3")]
pub custom_attributes: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
/// HTTP 1.1 [<https://tools.ietf.org/html/rfc7232#section-2.3][Entity> tag]
/// for this subscription notification.
#[prost(string, tag = "4")]
pub etag: ::prost::alloc::string::String,
/// If present, only apply this notification configuration to object names that
/// begin with this prefix.
#[prost(string, tag = "5")]
pub object_name_prefix: ::prost::alloc::string::String,
/// The desired content of the Payload.
#[prost(string, tag = "6")]
pub payload_format: ::prost::alloc::string::String,
/// The ID of the notification.
#[prost(string, tag = "7")]
pub id: ::prost::alloc::string::String,
}
/// The result of a call to Notifications.ListNotifications
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListNotificationsResponse {
/// The list of items.
#[prost(message, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<Notification>,
}
/// An object.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Object {
/// Content-Encoding of the object data, matching
/// [<https://tools.ietf.org/html/rfc7231#section-3.1.2.2][RFC> 7231 §3.1.2.2]
#[prost(string, tag = "1")]
pub content_encoding: ::prost::alloc::string::String,
/// Content-Disposition of the object data, matching
/// [<https://tools.ietf.org/html/rfc6266][RFC> 6266].
#[prost(string, tag = "2")]
pub content_disposition: ::prost::alloc::string::String,
/// Cache-Control directive for the object data, matching
/// [<https://tools.ietf.org/html/rfc7234#section-5.2"][RFC> 7234 §5.2].
/// If omitted, and the object is accessible to all anonymous users, the
/// default will be `public, max-age=3600`.
#[prost(string, tag = "3")]
pub cache_control: ::prost::alloc::string::String,
/// Access controls on the object.
#[prost(message, repeated, tag = "4")]
pub acl: ::prost::alloc::vec::Vec<ObjectAccessControl>,
/// Content-Language of the object data, matching
/// [<https://tools.ietf.org/html/rfc7231#section-3.1.3.2][RFC> 7231 §3.1.3.2].
#[prost(string, tag = "5")]
pub content_language: ::prost::alloc::string::String,
/// The version of the metadata for this object at this generation. Used for
/// preconditions and for detecting changes in metadata. A metageneration
/// number is only meaningful in the context of a particular generation of a
/// particular object.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(int64, tag = "6")]
pub metageneration: i64,
/// The deletion time of the object. Will be returned if and only if this
/// version of the object has been deleted.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(message, optional, tag = "7")]
pub time_deleted: ::core::option::Option<::prost_types::Timestamp>,
/// Content-Type of the object data, matching
/// [<https://tools.ietf.org/html/rfc7231#section-3.1.1.5][RFC> 7231 §3.1.1.5].
/// If an object is stored without a Content-Type, it is served as
/// `application/octet-stream`.
#[prost(string, tag = "8")]
pub content_type: ::prost::alloc::string::String,
/// Content-Length of the object data in bytes, matching
/// [<https://tools.ietf.org/html/rfc7230#section-3.3.2][RFC> 7230 §3.3.2].
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(int64, tag = "9")]
pub size: i64,
/// The creation time of the object.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(message, optional, tag = "10")]
pub time_created: ::core::option::Option<::prost_types::Timestamp>,
/// CRC32c checksum. For more information about using the CRC32c
/// checksum, see
/// [<https://cloud.google.com/storage/docs/hashes-etags#json-api][Hashes> and
/// ETags: Best Practices]. This is a server determined value and should not be
/// supplied by the user when sending an Object. The server will ignore any
/// value provided. Users should instead use the object_checksums field on the
/// InsertObjectRequest when uploading an object.
#[prost(message, optional, tag = "11")]
pub crc32c: ::core::option::Option<u32>,
/// Number of underlying components that make up this object. Components are
/// accumulated by compose operations.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(int32, tag = "12")]
pub component_count: i32,
/// MD5 hash of the data; encoded using base64 as per
/// [<https://tools.ietf.org/html/rfc4648#section-4][RFC> 4648 §4]. For more
/// information about using the MD5 hash, see
/// [<https://cloud.google.com/storage/docs/hashes-etags#json-api][Hashes> and
/// ETags: Best Practices]. This is a server determined value and should not be
/// supplied by the user when sending an Object. The server will ignore any
/// value provided. Users should instead use the object_checksums field on the
/// InsertObjectRequest when uploading an object.
#[prost(string, tag = "13")]
pub md5_hash: ::prost::alloc::string::String,
/// HTTP 1.1 Entity tag for the object. See
/// [<https://tools.ietf.org/html/rfc7232#section-2.3][RFC> 7232 §2.3].
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(string, tag = "14")]
pub etag: ::prost::alloc::string::String,
/// The modification time of the object metadata.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(message, optional, tag = "15")]
pub updated: ::core::option::Option<::prost_types::Timestamp>,
/// Storage class of the object.
#[prost(string, tag = "16")]
pub storage_class: ::prost::alloc::string::String,
/// Cloud KMS Key used to encrypt this object, if the object is encrypted by
/// such a key.
#[prost(string, tag = "17")]
pub kms_key_name: ::prost::alloc::string::String,
/// The time at which the object's storage class was last changed. When the
/// object is initially created, it will be set to time_created.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(message, optional, tag = "18")]
pub time_storage_class_updated: ::core::option::Option<::prost_types::Timestamp>,
/// Whether an object is under temporary hold. While this flag is set to true,
/// the object is protected against deletion and overwrites. A common use case
/// of this flag is regulatory investigations where objects need to be retained
/// while the investigation is ongoing. Note that unlike event-based hold,
/// temporary hold does not impact retention expiration time of an object.
#[prost(bool, tag = "19")]
pub temporary_hold: bool,
/// A server-determined value that specifies the earliest time that the
/// object's retention period expires. This value is in
/// [<https://tools.ietf.org/html/rfc3339][RFC> 3339] format.
/// Note 1: This field is not provided for objects with an active event-based
/// hold, since retention expiration is unknown until the hold is removed.
/// Note 2: This value can be provided even when temporary hold is set (so that
/// the user can reason about policy without having to first unset the
/// temporary hold).
#[prost(message, optional, tag = "20")]
pub retention_expiration_time: ::core::option::Option<::prost_types::Timestamp>,
/// User-provided metadata, in key/value pairs.
#[prost(btree_map = "string, string", tag = "21")]
pub metadata: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
/// Whether an object is under event-based hold. Event-based hold is a way to
/// retain objects until an event occurs, which is signified by the
/// hold's release (i.e. this value is set to false). After being released (set
/// to false), such objects will be subject to bucket-level retention (if any).
/// One sample use case of this flag is for banks to hold loan documents for at
/// least 3 years after loan is paid in full. Here, bucket-level retention is 3
/// years and the event is the loan being paid in full. In this example, these
/// objects will be held intact for any number of years until the event has
/// occurred (event-based hold on the object is released) and then 3 more years
/// after that. That means retention duration of the objects begins from the
/// moment event-based hold transitioned from true to false.
#[prost(message, optional, tag = "29")]
pub event_based_hold: ::core::option::Option<bool>,
/// The name of the object.
/// Attempting to update this field after the object is created will result in
/// an error.
#[prost(string, tag = "23")]
pub name: ::prost::alloc::string::String,
/// The ID of the object, including the bucket name, object name, and
/// generation number.
/// Attempting to update this field after the object is created will result in
/// an error.
#[prost(string, tag = "24")]
pub id: ::prost::alloc::string::String,
/// The name of the bucket containing this object.
/// Attempting to update this field after the object is created will result in
/// an error.
#[prost(string, tag = "25")]
pub bucket: ::prost::alloc::string::String,
/// The content generation of this object. Used for object versioning.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(int64, tag = "26")]
pub generation: i64,
/// The owner of the object. This will always be the uploader of the object.
/// Attempting to set or update this field will result in a
/// [FieldViolation][google.rpc.BadRequest.FieldViolation].
#[prost(message, optional, tag = "27")]
pub owner: ::core::option::Option<Owner>,
/// Metadata of customer-supplied encryption key, if the object is encrypted by
/// such a key.
#[prost(message, optional, tag = "28")]
pub customer_encryption: ::core::option::Option<object::CustomerEncryption>,
/// A user-specified timestamp set on an object.
#[prost(message, optional, tag = "30")]
pub custom_time: ::core::option::Option<::prost_types::Timestamp>,
}
/// Nested message and enum types in `Object`.
pub mod object {
/// Describes the customer-specified mechanism used to store the data at rest.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CustomerEncryption {
/// The encryption algorithm.
#[prost(string, tag = "1")]
pub encryption_algorithm: ::prost::alloc::string::String,
/// SHA256 hash value of the encryption key.
#[prost(string, tag = "2")]
pub key_sha256: ::prost::alloc::string::String,
}
}
/// An access-control entry.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectAccessControl {
/// The access permission for the entity.
#[prost(string, tag = "1")]
pub role: ::prost::alloc::string::String,
/// HTTP 1.1 Entity tag for the access-control entry.
/// See [<https://tools.ietf.org/html/rfc7232#section-2.3][RFC> 7232 §2.3].
#[prost(string, tag = "2")]
pub etag: ::prost::alloc::string::String,
/// The ID of the access-control entry.
#[prost(string, tag = "3")]
pub id: ::prost::alloc::string::String,
/// The name of the bucket.
#[prost(string, tag = "4")]
pub bucket: ::prost::alloc::string::String,
/// The name of the object, if applied to an object.
#[prost(string, tag = "5")]
pub object: ::prost::alloc::string::String,
/// The content generation of the object, if applied to an object.
#[prost(int64, tag = "6")]
pub generation: i64,
/// The entity holding the permission, in one of the following forms:
/// * `user-{userid}`
/// * `user-{email}`
/// * `group-{groupid}`
/// * `group-{email}`
/// * `domain-{domain}`
/// * `project-{team-projectid}`
/// * `allUsers`
/// * `allAuthenticatedUsers`
/// Examples:
/// * The user `liz@example.com` would be `user-liz@example.com`.
/// * The group `example@googlegroups.com` would be
/// `group-example@googlegroups.com`.
/// * All members of the Google Apps for Business domain `example.com` would be
/// `domain-example.com`.
#[prost(string, tag = "7")]
pub entity: ::prost::alloc::string::String,
/// The ID for the entity, if any.
#[prost(string, tag = "8")]
pub entity_id: ::prost::alloc::string::String,
/// The email address associated with the entity, if any.
#[prost(string, tag = "9")]
pub email: ::prost::alloc::string::String,
/// The domain associated with the entity, if any.
#[prost(string, tag = "10")]
pub domain: ::prost::alloc::string::String,
/// The project team associated with the entity, if any.
#[prost(message, optional, tag = "11")]
pub project_team: ::core::option::Option<ProjectTeam>,
}
/// The result of a call to ObjectAccessControls.ListObjectAccessControls.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListObjectAccessControlsResponse {
/// The list of items.
#[prost(message, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<ObjectAccessControl>,
}
/// The result of a call to Objects.ListObjects
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListObjectsResponse {
/// The list of prefixes of objects matching-but-not-listed up to and including
/// the requested delimiter.
#[prost(string, repeated, tag = "1")]
pub prefixes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// The list of items.
#[prost(message, repeated, tag = "2")]
pub items: ::prost::alloc::vec::Vec<Object>,
/// The continuation token, used to page through large result sets. Provide
/// this value in a subsequent request to return the next page of results.
#[prost(string, tag = "3")]
pub next_page_token: ::prost::alloc::string::String,
}
/// Represents the Viewers, Editors, or Owners of a given project.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProjectTeam {
/// The project number.
#[prost(string, tag = "1")]
pub project_number: ::prost::alloc::string::String,
/// The team.
#[prost(string, tag = "2")]
pub team: ::prost::alloc::string::String,
}
/// A subscription to receive Google PubSub notifications.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ServiceAccount {
/// The ID of the notification.
#[prost(string, tag = "1")]
pub email_address: ::prost::alloc::string::String,
}
/// The owner of a specific resource.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Owner {
/// The entity, in the form `user-`*userId*.
#[prost(string, tag = "1")]
pub entity: ::prost::alloc::string::String,
/// The ID for the entity.
#[prost(string, tag = "2")]
pub entity_id: ::prost::alloc::string::String,
}
/// Request message for DeleteBucketAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteBucketAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for GetBucketAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetBucketAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for InsertBucketAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InsertBucketAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Properties of the new bucket access control being inserted.
#[prost(message, optional, tag = "3")]
pub bucket_access_control: ::core::option::Option<BucketAccessControl>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for ListBucketAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListBucketAccessControlsRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "3")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request for PatchBucketAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PatchBucketAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// The BucketAccessControl for updating.
#[prost(message, optional, tag = "4")]
pub bucket_access_control: ::core::option::Option<BucketAccessControl>,
/// List of fields to be updated.
///
/// To specify ALL fields, equivalent to the JSON API's "update" function,
/// specify a single field with the value `*`.
///
///
/// Not specifying any fields is an error.
/// Not specifying a field while setting that field to a non-default value is
/// an error.
#[prost(message, optional, tag = "5")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "6")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request for UpdateBucketAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateBucketAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// The BucketAccessControl for updating.
#[prost(message, optional, tag = "4")]
pub bucket_access_control: ::core::option::Option<BucketAccessControl>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "5")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for DeleteBucket.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteBucketRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// If set, only deletes the bucket if its metageneration matches this value.
#[prost(message, optional, tag = "2")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// If set, only deletes the bucket if its metageneration does not match this
/// value.
#[prost(message, optional, tag = "3")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "5")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for GetBucket.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetBucketRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Makes the return of the bucket metadata conditional on whether the bucket's
/// current metageneration matches the given value.
#[prost(message, optional, tag = "2")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the return of the bucket metadata conditional on whether the bucket's
/// current metageneration does not match the given value.
#[prost(message, optional, tag = "3")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// Set of properties to return. Defaults to `NO_ACL`.
#[prost(enumeration = "common_enums::Projection", tag = "4")]
pub projection: i32,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "6")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for InsertBucket.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InsertBucketRequest {
/// Apply a predefined set of access controls to this bucket.
#[prost(enumeration = "common_enums::PredefinedBucketAcl", tag = "1")]
pub predefined_acl: i32,
/// Apply a predefined set of default object access controls to this bucket.
#[prost(enumeration = "common_enums::PredefinedObjectAcl", tag = "2")]
pub predefined_default_object_acl: i32,
/// Required. A valid API project identifier.
#[prost(string, tag = "3")]
pub project: ::prost::alloc::string::String,
/// Set of properties to return. Defaults to `NO_ACL`, unless the
/// bucket resource specifies `acl` or `defaultObjectAcl`
/// properties, when it defaults to `FULL`.
#[prost(enumeration = "common_enums::Projection", tag = "4")]
pub projection: i32,
/// Properties of the new bucket being inserted, including its name.
#[prost(message, optional, tag = "6")]
pub bucket: ::core::option::Option<Bucket>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "7")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for ListChannels.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListChannelsRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "3")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for ListBuckets.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListBucketsRequest {
/// Maximum number of buckets to return in a single response. The service will
/// use this parameter or 1,000 items, whichever is smaller.
#[prost(int32, tag = "1")]
pub max_results: i32,
/// A previously-returned page token representing part of the larger set of
/// results to view.
#[prost(string, tag = "2")]
pub page_token: ::prost::alloc::string::String,
/// Filter results to buckets whose names begin with this prefix.
#[prost(string, tag = "3")]
pub prefix: ::prost::alloc::string::String,
/// Required. A valid API project identifier.
#[prost(string, tag = "4")]
pub project: ::prost::alloc::string::String,
/// Set of properties to return. Defaults to `NO_ACL`.
#[prost(enumeration = "common_enums::Projection", tag = "5")]
pub projection: i32,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "7")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for LockRetentionPolicy.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LockRetentionPolicyRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Makes the operation conditional on whether bucket's current metageneration
/// matches the given value. Must be positive.
#[prost(int64, tag = "2")]
pub if_metageneration_match: i64,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request for PatchBucket method.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PatchBucketRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Makes the return of the bucket metadata conditional on whether the bucket's
/// current metageneration matches the given value.
#[prost(message, optional, tag = "2")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the return of the bucket metadata conditional on whether the bucket's
/// current metageneration does not match the given value.
#[prost(message, optional, tag = "3")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// Apply a predefined set of access controls to this bucket.
#[prost(enumeration = "common_enums::PredefinedBucketAcl", tag = "4")]
pub predefined_acl: i32,
/// Apply a predefined set of default object access controls to this bucket.
#[prost(enumeration = "common_enums::PredefinedObjectAcl", tag = "5")]
pub predefined_default_object_acl: i32,
/// Set of properties to return. Defaults to `FULL`.
#[prost(enumeration = "common_enums::Projection", tag = "6")]
pub projection: i32,
/// The Bucket metadata for updating.
#[prost(message, optional, tag = "8")]
pub metadata: ::core::option::Option<Bucket>,
/// List of fields to be updated.
///
/// To specify ALL fields, equivalent to the JSON API's "update" function,
/// specify a single field with the value `*`. Note: not recommended. If a new
/// field is introduced at a later time, an older client updating with the `*`
/// may accidentally reset the new field's value.
///
/// Not specifying any fields is an error.
/// Not specifying a field while setting that field to a non-default value is
/// an error.
#[prost(message, optional, tag = "9")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "10")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request for UpdateBucket method.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateBucketRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Makes the return of the bucket metadata conditional on whether the bucket's
/// current metageneration matches the given value.
#[prost(message, optional, tag = "2")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the return of the bucket metadata conditional on whether the bucket's
/// current metageneration does not match the given value.
#[prost(message, optional, tag = "3")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// Apply a predefined set of access controls to this bucket.
#[prost(enumeration = "common_enums::PredefinedBucketAcl", tag = "4")]
pub predefined_acl: i32,
/// Apply a predefined set of default object access controls to this bucket.
#[prost(enumeration = "common_enums::PredefinedObjectAcl", tag = "5")]
pub predefined_default_object_acl: i32,
/// Set of properties to return. Defaults to `FULL`.
#[prost(enumeration = "common_enums::Projection", tag = "6")]
pub projection: i32,
/// The Bucket metadata for updating.
#[prost(message, optional, tag = "8")]
pub metadata: ::core::option::Option<Bucket>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "9")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for StopChannel.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopChannelRequest {
/// The channel to be stopped.
#[prost(message, optional, tag = "1")]
pub channel: ::core::option::Option<Channel>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "2")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for DeleteDefaultObjectAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteDefaultObjectAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for GetDefaultObjectAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetDefaultObjectAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for InsertDefaultObjectAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InsertDefaultObjectAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Properties of the object access control being inserted.
#[prost(message, optional, tag = "3")]
pub object_access_control: ::core::option::Option<ObjectAccessControl>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for ListDefaultObjectAccessControls.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListDefaultObjectAccessControlsRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// If present, only return default ACL listing if the bucket's current
/// metageneration matches this value.
#[prost(message, optional, tag = "2")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// If present, only return default ACL listing if the bucket's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "3")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "5")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for PatchDefaultObjectAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PatchDefaultObjectAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// The ObjectAccessControl for updating.
#[prost(message, optional, tag = "4")]
pub object_access_control: ::core::option::Option<ObjectAccessControl>,
/// List of fields to be updated.
///
/// To specify ALL fields, equivalent to the JSON API's "update" function,
/// specify a single field with the value `*`. Note: not recommended. If a new
/// field is introduced at a later time, an older client updating with the `*`
/// may accidentally reset the new field's value.
///
/// Not specifying any fields is an error.
/// Not specifying a field while setting that field to a non-default value is
/// an error.
#[prost(message, optional, tag = "5")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "6")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for UpdateDefaultObjectAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateDefaultObjectAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// The ObjectAccessControl for updating.
#[prost(message, optional, tag = "4")]
pub object_access_control: ::core::option::Option<ObjectAccessControl>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "5")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for DeleteNotification.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteNotificationRequest {
/// Required. The parent bucket of the notification.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. ID of the notification to delete.
#[prost(string, tag = "2")]
pub notification: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for GetNotification.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetNotificationRequest {
/// Required. The parent bucket of the notification.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. Notification ID.
/// Required.
#[prost(string, tag = "2")]
pub notification: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for InsertNotification.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InsertNotificationRequest {
/// Required. The parent bucket of the notification.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Properties of the notification to be inserted.
#[prost(message, optional, tag = "3")]
pub notification: ::core::option::Option<Notification>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for ListNotifications.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListNotificationsRequest {
/// Required. Name of a Google Cloud Storage bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "3")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for DeleteObjectAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteObjectAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// Required. Name of the object.
#[prost(string, tag = "3")]
pub object: ::prost::alloc::string::String,
/// If present, selects a specific revision of this object (as opposed to the
/// latest version, the default).
#[prost(int64, tag = "4")]
pub generation: i64,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "6")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for GetObjectAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetObjectAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// Required. Name of the object.
#[prost(string, tag = "3")]
pub object: ::prost::alloc::string::String,
/// If present, selects a specific revision of this object (as opposed to the
/// latest version, the default).
#[prost(int64, tag = "4")]
pub generation: i64,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "6")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for InsertObjectAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InsertObjectAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. Name of the object.
#[prost(string, tag = "2")]
pub object: ::prost::alloc::string::String,
/// If present, selects a specific revision of this object (as opposed to the
/// latest version, the default).
#[prost(int64, tag = "3")]
pub generation: i64,
/// Properties of the object access control to be inserted.
#[prost(message, optional, tag = "5")]
pub object_access_control: ::core::option::Option<ObjectAccessControl>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "6")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for ListObjectAccessControls.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListObjectAccessControlsRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. Name of the object.
#[prost(string, tag = "2")]
pub object: ::prost::alloc::string::String,
/// If present, selects a specific revision of this object (as opposed to the
/// latest version, the default).
#[prost(int64, tag = "3")]
pub generation: i64,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "5")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for PatchObjectAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PatchObjectAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// Required. Name of the object.
/// Required.
#[prost(string, tag = "3")]
pub object: ::prost::alloc::string::String,
/// If present, selects a specific revision of this object (as opposed to the
/// latest version, the default).
#[prost(int64, tag = "4")]
pub generation: i64,
/// The ObjectAccessControl for updating.
#[prost(message, optional, tag = "5")]
pub object_access_control: ::core::option::Option<ObjectAccessControl>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "6")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
/// List of fields to be updated.
///
/// To specify ALL fields, equivalent to the JSON API's "update" function,
/// specify a single field with the value `*`. Note: not recommended. If a new
/// field is introduced at a later time, an older client updating with the `*`
/// may accidentally reset the new field's value.
///
/// Not specifying any fields is an error.
/// Not specifying a field while setting that field to a non-default value is
/// an error.
#[prost(message, optional, tag = "7")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
/// Request message for UpdateObjectAccessControl.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateObjectAccessControlRequest {
/// Required. Name of a bucket.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The entity holding the permission. Can be one of:
/// * `user-`*userId*
/// * `user-`*emailAddress*
/// * `group-`*groupId*
/// * `group-`*emailAddress*
/// * `allUsers`
/// * `allAuthenticatedUsers`
#[prost(string, tag = "2")]
pub entity: ::prost::alloc::string::String,
/// Required. Name of the object.
/// Required.
#[prost(string, tag = "3")]
pub object: ::prost::alloc::string::String,
/// If present, selects a specific revision of this object (as opposed to the
/// latest version, the default).
#[prost(int64, tag = "4")]
pub generation: i64,
/// The ObjectAccessControl for updating.
#[prost(message, optional, tag = "6")]
pub object_access_control: ::core::option::Option<ObjectAccessControl>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "7")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
/// List of fields to be updated.
///
/// To specify ALL fields, equivalent to the JSON API's "update" function,
/// specify a single field with the value `*`. Note: not recommended. If a new
/// field is introduced at a later time, an older client updating with the `*`
/// may accidentally reset the new field's value.
///
/// Not specifying any fields is an error.
/// Not specifying a field while setting that field to a non-default value is
/// an error.
#[prost(message, optional, tag = "8")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
/// Request message for ComposeObject.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ComposeObjectRequest {
/// Required. Name of the bucket containing the source objects. The destination object is
/// stored in this bucket.
#[prost(string, tag = "1")]
pub destination_bucket: ::prost::alloc::string::String,
/// Required. Name of the new object.
#[prost(string, tag = "2")]
pub destination_object: ::prost::alloc::string::String,
/// Apply a predefined set of access controls to the destination object.
#[prost(enumeration = "common_enums::PredefinedObjectAcl", tag = "3")]
pub destination_predefined_acl: i32,
/// Properties of the resulting object.
#[prost(message, optional, tag = "11")]
pub destination: ::core::option::Option<Object>,
/// The list of source objects that will be concatenated into a single object.
#[prost(message, repeated, tag = "12")]
pub source_objects: ::prost::alloc::vec::Vec<compose_object_request::SourceObjects>,
/// Makes the operation conditional on whether the object's current generation
/// matches the given value. Setting to 0 makes the operation succeed only if
/// there are no live versions of the object.
#[prost(message, optional, tag = "4")]
pub if_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "5")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Resource name of the Cloud KMS key, of the form
/// `projects/my-project/locations/my-location/keyRings/my-kr/cryptoKeys/my-key`,
/// that will be used to encrypt the object. Overrides the object
/// metadata's `kms_key_name` value, if any.
#[prost(string, tag = "6")]
pub kms_key_name: ::prost::alloc::string::String,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "9")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "10")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Nested message and enum types in `ComposeObjectRequest`.
pub mod compose_object_request {
/// Description of a source object for a composition request.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SourceObjects {
/// The source object's name. All source objects must reside in the same
/// bucket.
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// The generation of this object to use as the source.
#[prost(int64, tag = "2")]
pub generation: i64,
/// Conditions that must be met for this operation to execute.
#[prost(message, optional, tag = "3")]
pub object_preconditions: ::core::option::Option<
source_objects::ObjectPreconditions,
>,
}
/// Nested message and enum types in `SourceObjects`.
pub mod source_objects {
/// Preconditions for a source object of a composition request.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ObjectPreconditions {
/// Only perform the composition if the generation of the source object
/// that would be used matches this value. If this value and a generation
/// are both specified, they must be the same value or the call will fail.
#[prost(message, optional, tag = "1")]
pub if_generation_match: ::core::option::Option<i64>,
}
}
}
/// Request message for CopyObject.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CopyObjectRequest {
/// Required. Name of the bucket in which to store the new object. Overrides the provided
/// object
/// metadata's `bucket` value, if any.
#[prost(string, tag = "1")]
pub destination_bucket: ::prost::alloc::string::String,
/// Required. Name of the new object.
/// Required when the object metadata is not otherwise provided. Overrides the
/// object metadata's `name` value, if any.
#[prost(string, tag = "2")]
pub destination_object: ::prost::alloc::string::String,
/// Apply a predefined set of access controls to the destination object.
#[prost(enumeration = "common_enums::PredefinedObjectAcl", tag = "3")]
pub destination_predefined_acl: i32,
/// Makes the operation conditional on whether the destination object's current
/// generation matches the given value. Setting to 0 makes the operation
/// succeed only if there are no live versions of the object.
#[prost(message, optional, tag = "4")]
pub if_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the destination object's current
/// generation does not match the given value. If no live object exists, the
/// precondition fails. Setting to 0 makes the operation succeed only if there
/// is a live version of the object.
#[prost(message, optional, tag = "5")]
pub if_generation_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the destination object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "6")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the destination object's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "7")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the source object's current
/// generation matches the given value.
#[prost(message, optional, tag = "8")]
pub if_source_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the source object's current
/// generation does not match the given value.
#[prost(message, optional, tag = "9")]
pub if_source_generation_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the source object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "10")]
pub if_source_metageneration_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the source object's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "11")]
pub if_source_metageneration_not_match: ::core::option::Option<i64>,
/// Set of properties to return. Defaults to `NO_ACL`, unless the
/// object resource specifies the `acl` property, when it defaults
/// to `full`.
#[prost(enumeration = "common_enums::Projection", tag = "12")]
pub projection: i32,
/// Required. Name of the bucket in which to find the source object.
#[prost(string, tag = "13")]
pub source_bucket: ::prost::alloc::string::String,
/// Required. Name of the source object.
#[prost(string, tag = "14")]
pub source_object: ::prost::alloc::string::String,
/// If present, selects a specific revision of the source object (as opposed to
/// the latest version, the default).
#[prost(int64, tag = "15")]
pub source_generation: i64,
/// Properties of the resulting object. If not set, duplicate properties of
/// source object.
#[prost(message, optional, tag = "17")]
pub destination: ::core::option::Option<Object>,
/// Resource name of the Cloud KMS key, of the form
/// `projects/my-project/locations/my-location/keyRings/my-kr/cryptoKeys/my-key`,
/// that will be used to encrypt the object. Overrides the object
/// metadata's `kms_key_name` value, if any.
#[prost(string, tag = "20")]
pub destination_kms_key_name: ::prost::alloc::string::String,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "18")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "19")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Message for deleting an object.
/// Either `bucket` and `object` *or* `upload_id` **must** be set (but not both).
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteObjectRequest {
/// Required. Name of the bucket in which the object resides.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. The name of the object to delete (when not using a resumable write).
#[prost(string, tag = "2")]
pub object: ::prost::alloc::string::String,
/// The resumable upload_id of the object to delete (when using a
/// resumable write). This should be copied from the `upload_id` field of
/// `StartResumableWriteResponse`.
#[prost(string, tag = "3")]
pub upload_id: ::prost::alloc::string::String,
/// If present, permanently deletes a specific revision of this object (as
/// opposed to the latest version, the default).
#[prost(int64, tag = "4")]
pub generation: i64,
/// Makes the operation conditional on whether the object's current generation
/// matches the given value. Setting to 0 makes the operation succeed only if
/// there are no live versions of the object.
#[prost(message, optional, tag = "5")]
pub if_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current generation
/// does not match the given value. If no live object exists, the precondition
/// fails. Setting to 0 makes the operation succeed only if there is a live
/// version of the object.
#[prost(message, optional, tag = "6")]
pub if_generation_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "7")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "8")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "10")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "11")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for GetObjectMedia.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetObjectMediaRequest {
/// The name of the bucket containing the object to read.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// The name of the object to read.
#[prost(string, tag = "2")]
pub object: ::prost::alloc::string::String,
/// If present, selects a specific revision of this object (as opposed
/// to the latest version, the default).
#[prost(int64, tag = "3")]
pub generation: i64,
/// The offset for the first byte to return in the read, relative to the start
/// of the object.
///
/// A negative `read_offset` value will be interpreted as the number of bytes
/// back from the end of the object to be returned. For example, if an object's
/// length is 15 bytes, a GetObjectMediaRequest with `read_offset` = -5 and
/// `read_limit` = 3 would return bytes 10 through 12 of the object. Requesting
/// a negative offset whose magnitude is larger than the size of the object
/// will result in an error.
#[prost(int64, tag = "4")]
pub read_offset: i64,
/// The maximum number of `data` bytes the server is allowed to return in the
/// sum of all `Object` messages. A `read_limit` of zero indicates that there
/// is no limit, and a negative `read_limit` will cause an error.
///
/// If the stream returns fewer bytes than allowed by the `read_limit` and no
/// error occurred, the stream includes all data from the `read_offset` to the
/// end of the resource.
#[prost(int64, tag = "5")]
pub read_limit: i64,
/// Makes the operation conditional on whether the object's current generation
/// matches the given value. Setting to 0 makes the operation succeed only if
/// there are no live versions of the object.
#[prost(message, optional, tag = "6")]
pub if_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current generation
/// does not match the given value. If no live object exists, the precondition
/// fails. Setting to 0 makes the operation succeed only if there is a live
/// version of the object.
#[prost(message, optional, tag = "7")]
pub if_generation_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "8")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "9")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "11")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "12")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for GetObject.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetObjectRequest {
/// Required. Name of the bucket in which the object resides.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. Name of the object.
#[prost(string, tag = "2")]
pub object: ::prost::alloc::string::String,
/// If present, selects a specific revision of this object (as opposed to the
/// latest version, the default).
#[prost(int64, tag = "3")]
pub generation: i64,
/// Makes the operation conditional on whether the object's current generation
/// matches the given value. Setting to 0 makes the operation succeed only if
/// there are no live versions of the object.
#[prost(message, optional, tag = "4")]
pub if_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current generation
/// does not match the given value. If no live object exists, the precondition
/// fails. Setting to 0 makes the operation succeed only if there is a live
/// version of the object.
#[prost(message, optional, tag = "5")]
pub if_generation_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "6")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "7")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// Set of properties to return. Defaults to `NO_ACL`.
#[prost(enumeration = "common_enums::Projection", tag = "8")]
pub projection: i32,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "10")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "11")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Response message for GetObject.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetObjectMediaResponse {
/// A portion of the data for the object. The service **may** leave `data`
/// empty for any given `ReadResponse`. This enables the service to inform the
/// client that the request is still live while it is running an operation to
/// generate more data.
#[prost(message, optional, tag = "1")]
pub checksummed_data: ::core::option::Option<ChecksummedData>,
/// The checksums of the complete object. The client should compute one of
/// these checksums over the downloaded object and compare it against the value
/// provided here.
#[prost(message, optional, tag = "2")]
pub object_checksums: ::core::option::Option<ObjectChecksums>,
/// If read_offset and or read_limit was specified on the
/// GetObjectMediaRequest, ContentRange will be populated on the first
/// GetObjectMediaResponse message of the read stream.
#[prost(message, optional, tag = "3")]
pub content_range: ::core::option::Option<ContentRange>,
/// Metadata of the object whose media is being returned.
/// Only populated in the first response in the stream.
#[prost(message, optional, tag = "4")]
pub metadata: ::core::option::Option<Object>,
}
/// Describes an attempt to insert an object, possibly over multiple requests.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InsertObjectSpec {
/// Destination object, including its name and its metadata.
#[prost(message, optional, tag = "1")]
pub resource: ::core::option::Option<Object>,
/// Apply a predefined set of access controls to this object.
#[prost(enumeration = "common_enums::PredefinedObjectAcl", tag = "2")]
pub predefined_acl: i32,
/// Makes the operation conditional on whether the object's current
/// generation matches the given value. Setting to 0 makes the operation
/// succeed only if there are no live versions of the object.
#[prost(message, optional, tag = "3")]
pub if_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// generation does not match the given value. If no live object exists, the
/// precondition fails. Setting to 0 makes the operation succeed only if
/// there is a live version of the object.
#[prost(message, optional, tag = "4")]
pub if_generation_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "5")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "6")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// Set of properties to return. Defaults to `NO_ACL`, unless the
/// object resource specifies the `acl` property, when it defaults
/// to `full`.
#[prost(enumeration = "common_enums::Projection", tag = "7")]
pub projection: i32,
}
/// Message for writing an object.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InsertObjectRequest {
/// Required. The offset from the beginning of the object at which the data should be
/// written.
///
/// In the first `InsertObjectRequest` of a `InsertObject()` action, it
/// indicates the initial offset for the `Insert()` call. The value **must** be
/// equal to the `committed_size` that a call to `QueryWriteStatus()` would
/// return (0 if this is the first write to the object).
///
/// On subsequent calls, this value **must** be no larger than the sum of the
/// first `write_offset` and the sizes of all `data` chunks sent previously on
/// this stream.
///
/// An incorrect value will cause an error.
#[prost(int64, tag = "3")]
pub write_offset: i64,
/// Checksums for the complete object. If the checksums computed by the service
/// don't match the specifified checksums the call will fail. May only be
/// provided in the first or last request (either with first_message, or
/// finish_write set).
#[prost(message, optional, tag = "6")]
pub object_checksums: ::core::option::Option<ObjectChecksums>,
/// If `true`, this indicates that the write is complete. Sending any
/// `InsertObjectRequest`s subsequent to one in which `finish_write` is `true`
/// will cause an error.
/// For a non-resumable write (where the upload_id was not set in the first
/// message), it is an error not to set this field in the final message of the
/// stream.
#[prost(bool, tag = "7")]
pub finish_write: bool,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "8")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "9")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
/// The first message of each stream should set one of the following.
#[prost(oneof = "insert_object_request::FirstMessage", tags = "1, 2")]
pub first_message: ::core::option::Option<insert_object_request::FirstMessage>,
/// A portion of the data for the object.
#[prost(oneof = "insert_object_request::Data", tags = "4, 5")]
pub data: ::core::option::Option<insert_object_request::Data>,
}
/// Nested message and enum types in `InsertObjectRequest`.
pub mod insert_object_request {
/// The first message of each stream should set one of the following.
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum FirstMessage {
/// For resumable uploads. This should be the `upload_id` returned from a
/// call to `StartResumableWriteResponse`.
#[prost(string, tag = "1")]
UploadId(::prost::alloc::string::String),
/// For non-resumable uploads. Describes the overall upload, including the
/// destination bucket and object name, preconditions, etc.
#[prost(message, tag = "2")]
InsertObjectSpec(super::InsertObjectSpec),
}
/// A portion of the data for the object.
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Data {
/// The data to insert. If a crc32c checksum is provided that doesn't match
/// the checksum computed by the service, the request will fail.
#[prost(message, tag = "4")]
ChecksummedData(super::ChecksummedData),
/// A reference to an existing object. This can be used to support
/// several use cases:
/// - Writing a sequence of data buffers supports the basic use case of
/// uploading a complete object, chunk by chunk.
/// - Writing a sequence of references to existing objects allows an
/// object to be composed from a collection of objects, which can be
/// used to support parallel object writes.
/// - Writing a single reference with a given offset and size can be used
/// to create an object from a slice of an existing object.
/// - Writing an object referencing a object slice (created as noted
/// above) followed by a data buffer followed by another object
/// slice can be used to support delta upload functionality.
#[prost(message, tag = "5")]
Reference(super::GetObjectMediaRequest),
}
}
/// Request message for ListObjects.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListObjectsRequest {
/// Required. Name of the bucket in which to look for objects.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Returns results in a directory-like mode. `items` will contain
/// only objects whose names, aside from the `prefix`, do not
/// contain `delimiter`. Objects whose names, aside from the
/// `prefix`, contain `delimiter` will have their name,
/// truncated after the `delimiter`, returned in
/// `prefixes`. Duplicate `prefixes` are omitted.
#[prost(string, tag = "2")]
pub delimiter: ::prost::alloc::string::String,
/// If true, objects that end in exactly one instance of `delimiter`
/// will have their metadata included in `items` in addition to
/// `prefixes`.
#[prost(bool, tag = "3")]
pub include_trailing_delimiter: bool,
/// Maximum number of `items` plus `prefixes` to return
/// in a single page of responses. As duplicate `prefixes` are
/// omitted, fewer total results may be returned than requested. The service
/// will use this parameter or 1,000 items, whichever is smaller.
#[prost(int32, tag = "4")]
pub max_results: i32,
/// A previously-returned page token representing part of the larger set of
/// results to view.
#[prost(string, tag = "5")]
pub page_token: ::prost::alloc::string::String,
/// Filter results to objects whose names begin with this prefix.
#[prost(string, tag = "6")]
pub prefix: ::prost::alloc::string::String,
/// Set of properties to return. Defaults to `NO_ACL`.
#[prost(enumeration = "common_enums::Projection", tag = "7")]
pub projection: i32,
/// If `true`, lists all versions of an object as distinct results.
/// The default is `false`. For more information, see
/// [Object
/// Versioning](<https://cloud.google.com/storage/docs/object-versioning>).
#[prost(bool, tag = "9")]
pub versions: bool,
/// Filter results to objects whose names are lexicographically equal to or
/// after lexicographic_start. If lexicographic_end is also set, the objects
/// listed have names between lexicographic_start (inclusive) and
/// lexicographic_end (exclusive).
#[prost(string, tag = "11")]
pub lexicographic_start: ::prost::alloc::string::String,
/// Filter results to objects whose names are lexicographically before
/// lexicographic_end. If lexicographic_start is also set, the objects listed
/// have names between lexicographic_start (inclusive) and lexicographic_end
/// (exclusive).
#[prost(string, tag = "12")]
pub lexicographic_end: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "10")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request object for `QueryWriteStatus`.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryWriteStatusRequest {
/// Required. The name of the resume token for the object whose write status is being
/// requested.
#[prost(string, tag = "1")]
pub upload_id: ::prost::alloc::string::String,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "2")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "3")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Response object for `QueryWriteStatus`.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct QueryWriteStatusResponse {
/// The number of bytes that have been processed for the given object.
#[prost(int64, tag = "1")]
pub committed_size: i64,
/// `complete` is `true` only if the client has sent a `InsertObjectRequest`
/// with `finish_write` set to true, and the server has processed that request.
#[prost(bool, tag = "2")]
pub complete: bool,
/// The metadata for the uploaded object. Only set if `complete` is `true`.
#[prost(message, optional, tag = "3")]
pub resource: ::core::option::Option<Object>,
}
/// Request message for RewriteObject.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RewriteObjectRequest {
/// Required. Name of the bucket in which to store the new object. Overrides the provided
/// object metadata's `bucket` value, if any.
#[prost(string, tag = "1")]
pub destination_bucket: ::prost::alloc::string::String,
/// Required. Name of the new object.
/// Required when the object metadata is not otherwise provided. Overrides the
/// object metadata's `name` value, if any.
#[prost(string, tag = "2")]
pub destination_object: ::prost::alloc::string::String,
/// Resource name of the Cloud KMS key, of the form
/// `projects/my-project/locations/my-location/keyRings/my-kr/cryptoKeys/my-key`,
/// that will be used to encrypt the object. Overrides the object
/// metadata's `kms_key_name` value, if any.
#[prost(string, tag = "3")]
pub destination_kms_key_name: ::prost::alloc::string::String,
/// Apply a predefined set of access controls to the destination object.
#[prost(enumeration = "common_enums::PredefinedObjectAcl", tag = "4")]
pub destination_predefined_acl: i32,
/// Makes the operation conditional on whether the object's current generation
/// matches the given value. Setting to 0 makes the operation succeed only if
/// there are no live versions of the object.
#[prost(message, optional, tag = "5")]
pub if_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current generation
/// does not match the given value. If no live object exists, the precondition
/// fails. Setting to 0 makes the operation succeed only if there is a live
/// version of the object.
#[prost(message, optional, tag = "6")]
pub if_generation_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the destination object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "7")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the destination object's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "8")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the source object's current
/// generation matches the given value.
#[prost(message, optional, tag = "9")]
pub if_source_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the source object's current
/// generation does not match the given value.
#[prost(message, optional, tag = "10")]
pub if_source_generation_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the source object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "11")]
pub if_source_metageneration_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the source object's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "12")]
pub if_source_metageneration_not_match: ::core::option::Option<i64>,
/// The maximum number of bytes that will be rewritten per rewrite request.
/// Most callers
/// shouldn't need to specify this parameter - it is primarily in place to
/// support testing. If specified the value must be an integral multiple of
/// 1 MiB (1048576). Also, this only applies to requests where the source and
/// destination span locations and/or storage classes. Finally, this value must
/// not change across rewrite calls else you'll get an error that the
/// `rewriteToken` is invalid.
#[prost(int64, tag = "13")]
pub max_bytes_rewritten_per_call: i64,
/// Set of properties to return. Defaults to `NO_ACL`, unless the
/// object resource specifies the `acl` property, when it defaults
/// to `full`.
#[prost(enumeration = "common_enums::Projection", tag = "14")]
pub projection: i32,
/// Include this field (from the previous rewrite response) on each rewrite
/// request after the first one, until the rewrite response 'done' flag is
/// true. Calls that provide a rewriteToken can omit all other request fields,
/// but if included those fields must match the values provided in the first
/// rewrite request.
#[prost(string, tag = "15")]
pub rewrite_token: ::prost::alloc::string::String,
/// Required. Name of the bucket in which to find the source object.
#[prost(string, tag = "16")]
pub source_bucket: ::prost::alloc::string::String,
/// Required. Name of the source object.
#[prost(string, tag = "17")]
pub source_object: ::prost::alloc::string::String,
/// If present, selects a specific revision of the source object (as opposed to
/// the latest version, the default).
#[prost(int64, tag = "18")]
pub source_generation: i64,
/// Properties of the destination, post-rewrite object.
#[prost(message, optional, tag = "20")]
pub object: ::core::option::Option<Object>,
/// The algorithm used to encrypt the source object, if any.
#[prost(string, tag = "21")]
pub copy_source_encryption_algorithm: ::prost::alloc::string::String,
/// The encryption key used to encrypt the source object, if any.
#[prost(string, tag = "22")]
pub copy_source_encryption_key: ::prost::alloc::string::String,
/// The SHA-256 hash of the key used to encrypt the source object, if any.
#[prost(string, tag = "23")]
pub copy_source_encryption_key_sha256: ::prost::alloc::string::String,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "24")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "25")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// A rewrite response.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RewriteResponse {
/// The total bytes written so far, which can be used to provide a waiting user
/// with a progress indicator. This property is always present in the response.
#[prost(int64, tag = "1")]
pub total_bytes_rewritten: i64,
/// The total size of the object being copied in bytes. This property is always
/// present in the response.
#[prost(int64, tag = "2")]
pub object_size: i64,
/// `true` if the copy is finished; otherwise, `false` if
/// the copy is in progress. This property is always present in the response.
#[prost(bool, tag = "3")]
pub done: bool,
/// A token to use in subsequent requests to continue copying data. This token
/// is present in the response only when there is more data to copy.
#[prost(string, tag = "4")]
pub rewrite_token: ::prost::alloc::string::String,
/// A resource containing the metadata for the copied-to object. This property
/// is present in the response only when copying completes.
#[prost(message, optional, tag = "5")]
pub resource: ::core::option::Option<Object>,
}
/// Request message StartResumableWrite.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartResumableWriteRequest {
/// The destination bucket, object, and metadata, as well as any preconditions.
#[prost(message, optional, tag = "1")]
pub insert_object_spec: ::core::option::Option<InsertObjectSpec>,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "3")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "4")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Response object for `StartResumableWrite`.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartResumableWriteResponse {
/// The upload_id of the newly started resumable write operation. This
/// value should be copied into the `InsertObjectRequest.upload_id` field.
#[prost(string, tag = "1")]
pub upload_id: ::prost::alloc::string::String,
}
/// Request message for PatchObject.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PatchObjectRequest {
/// Required. Name of the bucket in which the object resides.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. Name of the object.
#[prost(string, tag = "2")]
pub object: ::prost::alloc::string::String,
/// If present, selects a specific revision of this object (as opposed to the
/// latest version, the default).
#[prost(int64, tag = "3")]
pub generation: i64,
/// Makes the operation conditional on whether the object's current generation
/// matches the given value. Setting to 0 makes the operation succeed only if
/// there are no live versions of the object.
#[prost(message, optional, tag = "4")]
pub if_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current generation
/// does not match the given value. If no live object exists, the precondition
/// fails. Setting to 0 makes the operation succeed only if there is a live
/// version of the object.
#[prost(message, optional, tag = "5")]
pub if_generation_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "6")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "7")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// Apply a predefined set of access controls to this object.
#[prost(enumeration = "common_enums::PredefinedObjectAcl", tag = "8")]
pub predefined_acl: i32,
/// Set of properties to return. Defaults to `FULL`.
#[prost(enumeration = "common_enums::Projection", tag = "9")]
pub projection: i32,
/// The Object metadata for updating.
#[prost(message, optional, tag = "11")]
pub metadata: ::core::option::Option<Object>,
/// List of fields to be updated.
///
/// To specify ALL fields, equivalent to the JSON API's "update" function,
/// specify a single field with the value `*`. Note: not recommended. If a new
/// field is introduced at a later time, an older client updating with the `*`
/// may accidentally reset the new field's value.
///
/// Not specifying any fields is an error.
/// Not specifying a field while setting that field to a non-default value is
/// an error.
#[prost(message, optional, tag = "12")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "13")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "14")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for UpdateObject.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateObjectRequest {
/// Required. Name of the bucket in which the object resides.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// Required. Name of the object.
#[prost(string, tag = "2")]
pub object: ::prost::alloc::string::String,
/// If present, selects a specific revision of this object (as opposed to the
/// latest version, the default).
#[prost(int64, tag = "3")]
pub generation: i64,
/// Makes the operation conditional on whether the object's current generation
/// matches the given value. Setting to 0 makes the operation succeed only if
/// there are no live versions of the object.
#[prost(message, optional, tag = "4")]
pub if_generation_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current generation
/// does not match the given value. If no live object exists, the precondition
/// fails. Setting to 0 makes the operation succeed only if there is a live
/// version of the object.
#[prost(message, optional, tag = "5")]
pub if_generation_not_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration matches the given value.
#[prost(message, optional, tag = "6")]
pub if_metageneration_match: ::core::option::Option<i64>,
/// Makes the operation conditional on whether the object's current
/// metageneration does not match the given value.
#[prost(message, optional, tag = "7")]
pub if_metageneration_not_match: ::core::option::Option<i64>,
/// Apply a predefined set of access controls to this object.
#[prost(enumeration = "common_enums::PredefinedObjectAcl", tag = "8")]
pub predefined_acl: i32,
/// Set of properties to return. Defaults to `FULL`.
#[prost(enumeration = "common_enums::Projection", tag = "9")]
pub projection: i32,
/// The Object metadata for updating.
#[prost(message, optional, tag = "11")]
pub metadata: ::core::option::Option<Object>,
/// A set of parameters common to Storage API requests concerning an object.
#[prost(message, optional, tag = "12")]
pub common_object_request_params: ::core::option::Option<CommonObjectRequestParams>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "13")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for WatchAllObjects.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WatchAllObjectsRequest {
/// Name of the bucket in which to look for objects.
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
/// If `true`, lists all versions of an object as distinct results.
/// The default is `false`. For more information, see
/// [Object
/// Versioning](<https://cloud.google.com/storage/docs/object-versioning>).
#[prost(bool, tag = "2")]
pub versions: bool,
/// Returns results in a directory-like mode. `items` will contain
/// only objects whose names, aside from the `prefix`, do not
/// contain `delimiter`. Objects whose names, aside from the
/// `prefix`, contain `delimiter` will have their name,
/// truncated after the `delimiter`, returned in
/// `prefixes`. Duplicate `prefixes` are omitted.
#[prost(string, tag = "3")]
pub delimiter: ::prost::alloc::string::String,
/// Maximum number of `items` plus `prefixes` to return
/// in a single page of responses. As duplicate `prefixes` are
/// omitted, fewer total results may be returned than requested. The service
/// will use this parameter or 1,000 items, whichever is smaller.
#[prost(int32, tag = "4")]
pub max_results: i32,
/// Filter results to objects whose names begin with this prefix.
#[prost(string, tag = "5")]
pub prefix: ::prost::alloc::string::String,
/// If true, objects that end in exactly one instance of `delimiter`
/// will have their metadata included in `items` in addition to
/// `prefixes`.
#[prost(bool, tag = "6")]
pub include_trailing_delimiter: bool,
/// A previously-returned page token representing part of the larger set of
/// results to view.
#[prost(string, tag = "7")]
pub page_token: ::prost::alloc::string::String,
/// Set of properties to return. Defaults to `NO_ACL`.
#[prost(enumeration = "common_enums::Projection", tag = "8")]
pub projection: i32,
/// Properties of the channel to be inserted.
#[prost(message, optional, tag = "10")]
pub channel: ::core::option::Option<Channel>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "11")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request message for GetProjectServiceAccount.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetProjectServiceAccountRequest {
/// Required. Project ID.
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "3")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateHmacKeyRequest {
/// Required. The project that the HMAC-owning service account lives in.
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. The service account to create the HMAC for.
#[prost(string, tag = "2")]
pub service_account_email: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "3")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Create hmac response. The only time the secret for an HMAC will be returned.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateHmacKeyResponse {
/// Key metadata.
#[prost(message, optional, tag = "1")]
pub metadata: ::core::option::Option<HmacKeyMetadata>,
/// HMAC key secret material.
#[prost(string, tag = "2")]
pub secret: ::prost::alloc::string::String,
}
/// Request object to delete a given HMAC key.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteHmacKeyRequest {
/// Required. The identifying key for the HMAC to delete.
#[prost(string, tag = "1")]
pub access_id: ::prost::alloc::string::String,
/// Required. The project id the HMAC key lies in.
#[prost(string, tag = "2")]
pub project_id: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "3")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request object to get metadata on a given HMAC key.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetHmacKeyRequest {
/// Required. The identifying key for the HMAC to delete.
#[prost(string, tag = "1")]
pub access_id: ::prost::alloc::string::String,
/// Required. The project id the HMAC key lies in.
#[prost(string, tag = "2")]
pub project_id: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "3")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Request to fetch a list of HMAC keys under a given project.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListHmacKeysRequest {
/// Required. The project id to list HMAC keys for.
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// An optional filter to only return HMAC keys for one service account.
#[prost(string, tag = "2")]
pub service_account_email: ::prost::alloc::string::String,
/// An optional bool to return deleted keys that have not been wiped out yet.
#[prost(bool, tag = "3")]
pub show_deleted_keys: bool,
/// The maximum number of keys to return.
#[prost(int32, tag = "4")]
pub max_results: i32,
/// A previously returned token from ListHmacKeysResponse to get the next page.
#[prost(string, tag = "5")]
pub page_token: ::prost::alloc::string::String,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "6")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Hmac key list response with next page information.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListHmacKeysResponse {
/// The continuation token, used to page through large result sets. Provide
/// this value in a subsequent request to return the next page of results.
#[prost(string, tag = "1")]
pub next_page_token: ::prost::alloc::string::String,
/// The list of items.
#[prost(message, repeated, tag = "2")]
pub items: ::prost::alloc::vec::Vec<HmacKeyMetadata>,
}
/// Request object to update an HMAC key state.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateHmacKeyRequest {
/// Required. The id of the HMAC key.
#[prost(string, tag = "1")]
pub access_id: ::prost::alloc::string::String,
/// Required. The project id the HMAC's service account lies in.
#[prost(string, tag = "2")]
pub project_id: ::prost::alloc::string::String,
/// Required. The service account owner of the HMAC key.
#[prost(message, optional, tag = "3")]
pub metadata: ::core::option::Option<HmacKeyMetadata>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "5")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// A wrapper around the IAM get policy request to support our
/// common_request_params.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetIamPolicyRequest {
/// The request sent to IAM.
#[prost(message, optional, tag = "1")]
pub iam_request: ::core::option::Option<super::super::iam::v1::GetIamPolicyRequest>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "2")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// A wrapper around the IAM set policy request to support our
/// common_request_params.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetIamPolicyRequest {
/// The request sent to IAM.
#[prost(message, optional, tag = "1")]
pub iam_request: ::core::option::Option<super::super::iam::v1::SetIamPolicyRequest>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "2")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// A wrapper around the IAM test iam permissions request to support our
/// common_request_params.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TestIamPermissionsRequest {
/// The request sent to IAM.
#[prost(message, optional, tag = "1")]
pub iam_request: ::core::option::Option<
super::super::iam::v1::TestIamPermissionsRequest,
>,
/// A set of parameters common to all Storage API requests.
#[prost(message, optional, tag = "2")]
pub common_request_params: ::core::option::Option<CommonRequestParams>,
}
/// Parameters that can be passed to any object request.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommonObjectRequestParams {
/// Encryption algorithm used with Customer-Supplied Encryption Keys feature.
#[prost(string, tag = "1")]
pub encryption_algorithm: ::prost::alloc::string::String,
/// Encryption key used with Customer-Supplied Encryption Keys feature.
#[prost(string, tag = "2")]
pub encryption_key: ::prost::alloc::string::String,
/// SHA256 hash of encryption key used with Customer-Supplied Encryption Keys
/// feature.
#[prost(string, tag = "3")]
pub encryption_key_sha256: ::prost::alloc::string::String,
}
/// Parameters that can be passed to any request.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommonRequestParams {
/// Required. Required when using buckets with Requestor Pays feature enabled.
#[prost(string, tag = "1")]
pub user_project: ::prost::alloc::string::String,
/// Lets you enforce per-user quotas from a server-side application even in
/// cases when the user's IP address is unknown. This can occur, for example,
/// with applications that run cron jobs on App Engine on a user's behalf.
/// You can choose any arbitrary string that uniquely identifies a user, but it
/// is limited to 40 characters.
#[prost(string, tag = "2")]
pub quota_user: ::prost::alloc::string::String,
/// Subset of fields to include in the response.
#[prost(message, optional, tag = "4")]
pub fields: ::core::option::Option<::prost_types::FieldMask>,
}