1/**
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements.  See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership.  The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License.  You may obtain a copy of the License at
9 *
10 *     http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19/**
20 * These .proto interfaces are private and stable.
21 * Please see http://wiki.apache.org/hadoop/Compatibility
22 * for what changes are allowed for a *stable* .proto interface.
23 */
24
25option java_package = "org.apache.hadoop.hdfs.protocol.proto";
26option java_outer_classname = "ClientNamenodeProtocolProtos";
27option java_generic_services = true;
28option java_generate_equals_and_hash = true;
29package hadoop.hdfs;
30
31import "Security.proto";
32import "hdfs.proto";
33import "acl.proto";
34import "xattr.proto";
35import "encryption.proto";
36import "inotify.proto";
37import "erasurecoding.proto";
38
39/**
40 * The ClientNamenodeProtocol Service defines the interface between a client
41 * (as runnign inside a MR Task) and the Namenode.
42 * See org.apache.hadoop.hdfs.protocol.ClientProtocol for the javadoc
43 * for each of the methods.
44 * The exceptions declared in the above class also apply to this protocol.
45 * Exceptions are unwrapped and thrown by the  PB libraries.
46 */
47
48message GetBlockLocationsRequestProto {
49  required string src = 1;     // file name
50  required uint64 offset = 2;  // range start offset
51  required uint64 length = 3;  // range length
52}
53
54message GetBlockLocationsResponseProto {
55  optional LocatedBlocksProto locations = 1;
56}
57
58message GetServerDefaultsRequestProto { // No parameters
59}
60
61message GetServerDefaultsResponseProto {
62  required FsServerDefaultsProto serverDefaults = 1;
63}
64
65enum CreateFlagProto {
66  CREATE = 0x01;    // Create a file
67  OVERWRITE = 0x02; // Truncate/overwrite a file. Same as POSIX O_TRUNC
68  APPEND = 0x04;    // Append to a file
69  LAZY_PERSIST = 0x10; // File with reduced durability guarantees.
70  NEW_BLOCK = 0x20; // Write data to a new block when appending
71}
72
73message CreateRequestProto {
74  required string src = 1;
75  required FsPermissionProto masked = 2;
76  required string clientName = 3;
77  required uint32 createFlag = 4;  // bits set using CreateFlag
78  required bool createParent = 5;
79  required uint32 replication = 6; // Short: Only 16 bits used
80  required uint64 blockSize = 7;
81  repeated CryptoProtocolVersionProto cryptoProtocolVersion = 8;
82}
83
84message CreateResponseProto {
85  optional HdfsFileStatusProto fs = 1;
86}
87
88message AppendRequestProto {
89  required string src = 1;
90  required string clientName = 2;
91  optional uint32 flag = 3; // bits set using CreateFlag
92}
93
94message AppendResponseProto {
95  optional LocatedBlockProto block = 1;
96  optional HdfsFileStatusProto stat = 2;
97}
98
99message SetReplicationRequestProto {
100  required string src = 1;
101  required uint32 replication = 2; // Short: Only 16 bits used
102}
103
104message SetReplicationResponseProto {
105  required bool result = 1;
106}
107
108message SetStoragePolicyRequestProto {
109  required string src = 1;
110  required string policyName = 2;
111}
112
113message SetStoragePolicyResponseProto { // void response
114}
115
116message UnsetStoragePolicyRequestProto {
117  required string src = 1;
118}
119
120message UnsetStoragePolicyResponseProto {
121}
122
123message GetStoragePolicyRequestProto {
124  required string path = 1;
125}
126
127message GetStoragePolicyResponseProto {
128  required BlockStoragePolicyProto storagePolicy = 1;
129}
130
131message GetStoragePoliciesRequestProto { // void request
132}
133
134message GetStoragePoliciesResponseProto {
135  repeated BlockStoragePolicyProto policies = 1;
136}
137
138message SetPermissionRequestProto {
139  required string src = 1;
140  required FsPermissionProto permission = 2;
141}
142
143message SetPermissionResponseProto { // void response
144}
145
146message SetOwnerRequestProto {
147  required string src = 1;
148  optional string username = 2;
149  optional string groupname = 3;
150}
151
152message SetOwnerResponseProto { // void response
153}
154
155message AbandonBlockRequestProto {
156  required ExtendedBlockProto b = 1;
157  required string src = 2;
158  required string holder = 3;
159  optional uint64 fileId = 4 [default = 0];  // default to GRANDFATHER_INODE_ID
160}
161
162message AbandonBlockResponseProto { // void response
163}
164
165message AddBlockRequestProto {
166  required string src = 1;
167  required string clientName = 2;
168  optional ExtendedBlockProto previous = 3;
169  repeated DatanodeInfoProto excludeNodes = 4;
170  optional uint64 fileId = 5 [default = 0];  // default as a bogus id
171  repeated string favoredNodes = 6; //the set of datanodes to use for the block
172}
173
174message AddBlockResponseProto {
175  required LocatedBlockProto block = 1;
176}
177
178message GetAdditionalDatanodeRequestProto {
179  required string src = 1;
180  required ExtendedBlockProto blk = 2;
181  repeated DatanodeInfoProto existings = 3;
182  repeated DatanodeInfoProto excludes = 4;
183  required uint32 numAdditionalNodes = 5;
184  required string clientName = 6;
185  repeated string existingStorageUuids = 7;
186  optional uint64 fileId = 8 [default = 0];  // default to GRANDFATHER_INODE_ID
187}
188
189message GetAdditionalDatanodeResponseProto {
190  required LocatedBlockProto block = 1;
191}
192
193message CompleteRequestProto {
194  required string src = 1;
195  required string clientName = 2;
196  optional ExtendedBlockProto last = 3;
197  optional uint64 fileId = 4 [default = 0];  // default to GRANDFATHER_INODE_ID
198}
199
200message CompleteResponseProto {
201  required bool result = 1;
202}
203
204message ReportBadBlocksRequestProto {
205  repeated LocatedBlockProto blocks = 1;
206}
207
208message ReportBadBlocksResponseProto { // void response
209}
210
211message ConcatRequestProto {
212  required string trg = 1;
213  repeated string srcs = 2;
214}
215
216message ConcatResponseProto { // void response
217}
218
219message TruncateRequestProto {
220  required string src = 1;
221  required uint64 newLength = 2;
222  required string clientName = 3;
223}
224
225message TruncateResponseProto {
226  required bool result = 1;
227}
228
229message RenameRequestProto {
230  required string src = 1;
231  required string dst = 2;
232}
233
234message RenameResponseProto {
235  required bool result = 1;
236}
237
238
239message Rename2RequestProto {
240  required string src = 1;
241  required string dst = 2;
242  required bool overwriteDest = 3;
243}
244
245message Rename2ResponseProto { // void response
246}
247
248message DeleteRequestProto {
249  required string src = 1;
250  required bool recursive = 2;
251}
252
253message DeleteResponseProto {
254    required bool result = 1;
255}
256
257message MkdirsRequestProto {
258  required string src = 1;
259  required FsPermissionProto masked = 2;
260  required bool createParent = 3;
261}
262message MkdirsResponseProto {
263    required bool result = 1;
264}
265
266message GetListingRequestProto {
267  required string src = 1;
268  required bytes startAfter = 2;
269  required bool needLocation = 3;
270}
271message GetListingResponseProto {
272  optional DirectoryListingProto dirList = 1;
273}
274
275message GetSnapshottableDirListingRequestProto { // no input parameters
276}
277message GetSnapshottableDirListingResponseProto {
278  optional SnapshottableDirectoryListingProto snapshottableDirList = 1;
279}
280
281message GetSnapshotDiffReportRequestProto {
282  required string snapshotRoot = 1;
283  required string fromSnapshot = 2;
284  required string toSnapshot = 3;
285}
286message GetSnapshotDiffReportResponseProto {
287  required SnapshotDiffReportProto diffReport = 1;
288}
289
290message RenewLeaseRequestProto {
291  required string clientName = 1;
292}
293
294message RenewLeaseResponseProto { //void response
295}
296
297message RecoverLeaseRequestProto {
298  required string src = 1;
299  required string clientName = 2;
300}
301message RecoverLeaseResponseProto {
302  required bool result = 1;
303}
304
305message GetFsStatusRequestProto { // no input paramters
306}
307
308message GetFsStatsResponseProto {
309  required uint64 capacity = 1;
310  required uint64 used = 2;
311  required uint64 remaining = 3;
312  required uint64 under_replicated = 4;
313  required uint64 corrupt_blocks = 5;
314  required uint64 missing_blocks = 6;
315  optional uint64 missing_repl_one_blocks = 7;
316  optional uint64 blocks_in_future = 8;
317  optional uint64 pending_deletion_blocks = 9;
318}
319
320enum DatanodeReportTypeProto {  // type of the datanode report
321  ALL = 1;
322  LIVE = 2;
323  DEAD = 3;
324  DECOMMISSIONING = 4;
325}
326
327message GetDatanodeReportRequestProto {
328  required DatanodeReportTypeProto type = 1;
329}
330
331message GetDatanodeReportResponseProto {
332  repeated DatanodeInfoProto di = 1;
333}
334
335message GetDatanodeStorageReportRequestProto {
336  required DatanodeReportTypeProto type = 1;
337}
338
339message DatanodeStorageReportProto {
340  required DatanodeInfoProto datanodeInfo = 1;
341  repeated StorageReportProto storageReports = 2;
342}
343
344message GetDatanodeStorageReportResponseProto {
345  repeated DatanodeStorageReportProto datanodeStorageReports = 1;
346}
347
348message GetPreferredBlockSizeRequestProto {
349  required string filename = 1;
350}
351
352message GetPreferredBlockSizeResponseProto {
353  required uint64 bsize = 1;
354}
355
356enum SafeModeActionProto {
357  SAFEMODE_LEAVE = 1;
358  SAFEMODE_ENTER = 2;
359  SAFEMODE_GET = 3;
360  SAFEMODE_FORCE_EXIT = 4;
361}
362
363message SetSafeModeRequestProto {
364  required SafeModeActionProto action = 1;
365  optional bool checked = 2 [default = false];
366}
367
368message SetSafeModeResponseProto {
369  required bool result = 1;
370}
371
372message SaveNamespaceRequestProto {
373  optional uint64 timeWindow = 1 [default = 0];
374  optional uint64 txGap = 2 [default = 0];
375}
376
377message SaveNamespaceResponseProto { // void response
378  optional bool saved = 1 [default = true];
379}
380
381message RollEditsRequestProto { // no parameters
382}
383
384message RollEditsResponseProto { // response
385  required uint64 newSegmentTxId = 1;
386}
387
388message RestoreFailedStorageRequestProto {
389  required string arg = 1;
390}
391
392message RestoreFailedStorageResponseProto {
393    required bool result = 1;
394}
395
396message RefreshNodesRequestProto { // no parameters
397}
398
399message RefreshNodesResponseProto { // void response
400}
401
402message FinalizeUpgradeRequestProto { // no parameters
403}
404
405message FinalizeUpgradeResponseProto { // void response
406}
407
408enum RollingUpgradeActionProto {
409  QUERY = 1;
410  START = 2;
411  FINALIZE = 3;
412}
413
414message RollingUpgradeRequestProto {
415  required RollingUpgradeActionProto action = 1;
416}
417
418message RollingUpgradeInfoProto {
419  required RollingUpgradeStatusProto status = 1;
420  required uint64 startTime = 2;
421  required uint64 finalizeTime = 3;
422  required bool createdRollbackImages = 4;
423}
424
425message RollingUpgradeResponseProto {
426  optional RollingUpgradeInfoProto rollingUpgradeInfo= 1;
427}
428
429message ListCorruptFileBlocksRequestProto {
430  required string path = 1;
431  optional string cookie = 2;
432}
433
434message ListCorruptFileBlocksResponseProto {
435  required CorruptFileBlocksProto corrupt = 1;
436}
437
438message MetaSaveRequestProto {
439  required string filename = 1;
440}
441
442message MetaSaveResponseProto { // void response
443}
444
445message GetFileInfoRequestProto {
446  required string src = 1;
447}
448
449message GetFileInfoResponseProto {
450  optional HdfsFileStatusProto fs = 1;
451}
452
453message IsFileClosedRequestProto {
454  required string src = 1;
455}
456
457message IsFileClosedResponseProto {
458  required bool result = 1;
459}
460
461message CacheDirectiveInfoProto {
462  optional int64 id = 1;
463  optional string path = 2;
464  optional uint32 replication = 3;
465  optional string pool = 4;
466  optional CacheDirectiveInfoExpirationProto expiration = 5;
467}
468
469message CacheDirectiveInfoExpirationProto {
470  required int64 millis = 1;
471  required bool isRelative = 2;
472}
473
474message CacheDirectiveStatsProto {
475  required int64 bytesNeeded = 1;
476  required int64 bytesCached = 2;
477  required int64 filesNeeded = 3;
478  required int64 filesCached = 4;
479  required bool hasExpired = 5;
480}
481
482enum CacheFlagProto {
483  FORCE = 0x01;    // Ignore pool resource limits
484}
485
486message AddCacheDirectiveRequestProto {
487  required CacheDirectiveInfoProto info = 1;
488  optional uint32 cacheFlags = 2;  // bits set using CacheFlag
489}
490
491message AddCacheDirectiveResponseProto {
492  required int64 id = 1;
493}
494
495message ModifyCacheDirectiveRequestProto {
496  required CacheDirectiveInfoProto info = 1;
497  optional uint32 cacheFlags = 2;  // bits set using CacheFlag
498}
499
500message ModifyCacheDirectiveResponseProto {
501}
502
503message RemoveCacheDirectiveRequestProto {
504  required int64 id = 1;
505}
506
507message RemoveCacheDirectiveResponseProto {
508}
509
510message ListCacheDirectivesRequestProto {
511  required int64 prevId = 1;
512  required CacheDirectiveInfoProto filter = 2;
513}
514
515message CacheDirectiveEntryProto {
516  required CacheDirectiveInfoProto info = 1;
517  required CacheDirectiveStatsProto stats = 2;
518}
519
520message ListCacheDirectivesResponseProto {
521  repeated CacheDirectiveEntryProto elements = 1;
522  required bool hasMore = 2;
523}
524
525message CachePoolInfoProto {
526  optional string poolName = 1;
527  optional string ownerName = 2;
528  optional string groupName = 3;
529  optional int32 mode = 4;
530  optional int64 limit = 5;
531  optional int64 maxRelativeExpiry = 6;
532}
533
534message CachePoolStatsProto {
535  required int64 bytesNeeded = 1;
536  required int64 bytesCached = 2;
537  required int64 bytesOverlimit = 3;
538  required int64 filesNeeded = 4;
539  required int64 filesCached = 5;
540}
541
542message AddCachePoolRequestProto {
543  required CachePoolInfoProto info = 1;
544}
545
546message AddCachePoolResponseProto { // void response
547}
548
549message ModifyCachePoolRequestProto {
550  required CachePoolInfoProto info = 1;
551}
552
553message ModifyCachePoolResponseProto { // void response
554}
555
556message RemoveCachePoolRequestProto {
557  required string poolName = 1;
558}
559
560message RemoveCachePoolResponseProto { // void response
561}
562
563message ListCachePoolsRequestProto {
564  required string prevPoolName = 1;
565}
566
567message ListCachePoolsResponseProto {
568  repeated CachePoolEntryProto entries = 1;
569  required bool hasMore = 2;
570}
571
572message CachePoolEntryProto {
573  required CachePoolInfoProto info = 1;
574  required CachePoolStatsProto stats = 2;
575}
576
577message GetFileLinkInfoRequestProto {
578  required string src = 1;
579}
580
581message GetFileLinkInfoResponseProto {
582  optional HdfsFileStatusProto fs = 1;
583}
584
585message GetContentSummaryRequestProto {
586  required string path = 1;
587}
588
589message GetContentSummaryResponseProto {
590  required ContentSummaryProto summary = 1;
591}
592
593message GetQuotaUsageRequestProto {
594  required string path = 1;
595}
596
597message GetQuotaUsageResponseProto {
598  required QuotaUsageProto usage = 1;
599}
600
601message SetQuotaRequestProto {
602  required string path = 1;
603  required uint64 namespaceQuota = 2;
604  required uint64 storagespaceQuota = 3;
605  optional StorageTypeProto storageType = 4;
606}
607
608message SetQuotaResponseProto { // void response
609}
610
611message FsyncRequestProto {
612  required string src = 1;
613  required string client = 2;
614  optional sint64 lastBlockLength = 3 [default = -1];
615  optional uint64 fileId = 4 [default = 0];  // default to GRANDFATHER_INODE_ID
616}
617
618message FsyncResponseProto { // void response
619}
620
621message SetTimesRequestProto {
622  required string src = 1;
623  required uint64 mtime = 2;
624  required uint64 atime = 3;
625}
626
627message SetTimesResponseProto { // void response
628}
629
630message CreateSymlinkRequestProto {
631  required string target = 1;
632  required string link = 2;
633  required FsPermissionProto dirPerm = 3;
634  required bool createParent = 4;
635}
636
637message CreateSymlinkResponseProto { // void response
638}
639
640message GetLinkTargetRequestProto {
641  required string path = 1;
642}
643message GetLinkTargetResponseProto {
644  optional string targetPath = 1;
645}
646
647message UpdateBlockForPipelineRequestProto {
648  required ExtendedBlockProto block = 1;
649  required string clientName = 2;
650}
651
652message UpdateBlockForPipelineResponseProto {
653  required LocatedBlockProto block = 1;
654}
655
656message UpdatePipelineRequestProto {
657  required string clientName = 1;
658  required ExtendedBlockProto oldBlock = 2;
659  required ExtendedBlockProto newBlock = 3;
660  repeated DatanodeIDProto newNodes = 4;
661  repeated string storageIDs = 5;
662}
663
664message UpdatePipelineResponseProto { // void response
665}
666
667message SetBalancerBandwidthRequestProto {
668  required int64 bandwidth = 1;
669}
670
671message SetBalancerBandwidthResponseProto { // void response
672}
673
674message GetDataEncryptionKeyRequestProto { // no parameters
675}
676
677message GetDataEncryptionKeyResponseProto {
678  optional DataEncryptionKeyProto dataEncryptionKey = 1;
679}
680
681message CreateSnapshotRequestProto {
682  required string snapshotRoot = 1;
683  optional string snapshotName = 2;
684}
685
686message CreateSnapshotResponseProto {
687  required string snapshotPath = 1;
688}
689
690message RenameSnapshotRequestProto {
691  required string snapshotRoot = 1;
692  required string snapshotOldName = 2;
693  required string snapshotNewName = 3;
694}
695
696message RenameSnapshotResponseProto { // void response
697}
698
699message AllowSnapshotRequestProto {
700  required string snapshotRoot = 1;
701}
702
703message AllowSnapshotResponseProto {
704}
705
706message DisallowSnapshotRequestProto {
707  required string snapshotRoot = 1;
708}
709
710message DisallowSnapshotResponseProto {
711}
712
713message DeleteSnapshotRequestProto {
714  required string snapshotRoot = 1;
715  required string snapshotName = 2;
716}
717
718message DeleteSnapshotResponseProto { // void response
719}
720
721message CheckAccessRequestProto {
722  required string path = 1;
723  required AclEntryProto.FsActionProto mode = 2;
724}
725
726message CheckAccessResponseProto { // void response
727}
728
729message GetCurrentEditLogTxidRequestProto {
730}
731
732message GetCurrentEditLogTxidResponseProto {
733  required int64 txid = 1;
734}
735
736message GetEditsFromTxidRequestProto {
737  required int64 txid = 1;
738}
739
740message GetEditsFromTxidResponseProto {
741  required EventsListProto eventsList = 1;
742}
743
744service ClientNamenodeProtocol {
745  rpc getBlockLocations(GetBlockLocationsRequestProto)
746      returns(GetBlockLocationsResponseProto);
747  rpc getServerDefaults(GetServerDefaultsRequestProto)
748      returns(GetServerDefaultsResponseProto);
749  rpc create(CreateRequestProto)returns(CreateResponseProto);
750  rpc append(AppendRequestProto) returns(AppendResponseProto);
751  rpc setReplication(SetReplicationRequestProto)
752      returns(SetReplicationResponseProto);
753  rpc setStoragePolicy(SetStoragePolicyRequestProto)
754      returns(SetStoragePolicyResponseProto);
755  rpc unsetStoragePolicy(UnsetStoragePolicyRequestProto)
756      returns(UnsetStoragePolicyResponseProto);
757  rpc getStoragePolicy(GetStoragePolicyRequestProto)
758      returns(GetStoragePolicyResponseProto);
759  rpc getStoragePolicies(GetStoragePoliciesRequestProto)
760      returns(GetStoragePoliciesResponseProto);
761  rpc setPermission(SetPermissionRequestProto)
762      returns(SetPermissionResponseProto);
763  rpc setOwner(SetOwnerRequestProto) returns(SetOwnerResponseProto);
764  rpc abandonBlock(AbandonBlockRequestProto) returns(AbandonBlockResponseProto);
765  rpc addBlock(AddBlockRequestProto) returns(AddBlockResponseProto);
766  rpc getAdditionalDatanode(GetAdditionalDatanodeRequestProto)
767      returns(GetAdditionalDatanodeResponseProto);
768  rpc complete(CompleteRequestProto) returns(CompleteResponseProto);
769  rpc reportBadBlocks(ReportBadBlocksRequestProto)
770      returns(ReportBadBlocksResponseProto);
771  rpc concat(ConcatRequestProto) returns(ConcatResponseProto);
772  rpc truncate(TruncateRequestProto) returns(TruncateResponseProto);
773  rpc rename(RenameRequestProto) returns(RenameResponseProto);
774  rpc rename2(Rename2RequestProto) returns(Rename2ResponseProto);
775  rpc delete(DeleteRequestProto) returns(DeleteResponseProto);
776  rpc mkdirs(MkdirsRequestProto) returns(MkdirsResponseProto);
777  rpc getListing(GetListingRequestProto) returns(GetListingResponseProto);
778  rpc renewLease(RenewLeaseRequestProto) returns(RenewLeaseResponseProto);
779  rpc recoverLease(RecoverLeaseRequestProto)
780      returns(RecoverLeaseResponseProto);
781  rpc getFsStats(GetFsStatusRequestProto) returns(GetFsStatsResponseProto);
782  rpc getDatanodeReport(GetDatanodeReportRequestProto)
783      returns(GetDatanodeReportResponseProto);
784  rpc getDatanodeStorageReport(GetDatanodeStorageReportRequestProto)
785      returns(GetDatanodeStorageReportResponseProto);
786  rpc getPreferredBlockSize(GetPreferredBlockSizeRequestProto)
787      returns(GetPreferredBlockSizeResponseProto);
788  rpc setSafeMode(SetSafeModeRequestProto)
789      returns(SetSafeModeResponseProto);
790  rpc saveNamespace(SaveNamespaceRequestProto)
791      returns(SaveNamespaceResponseProto);
792  rpc rollEdits(RollEditsRequestProto)
793      returns(RollEditsResponseProto);
794  rpc restoreFailedStorage(RestoreFailedStorageRequestProto)
795      returns(RestoreFailedStorageResponseProto);
796  rpc refreshNodes(RefreshNodesRequestProto) returns(RefreshNodesResponseProto);
797  rpc finalizeUpgrade(FinalizeUpgradeRequestProto)
798      returns(FinalizeUpgradeResponseProto);
799  rpc rollingUpgrade(RollingUpgradeRequestProto)
800      returns(RollingUpgradeResponseProto);
801  rpc listCorruptFileBlocks(ListCorruptFileBlocksRequestProto)
802      returns(ListCorruptFileBlocksResponseProto);
803  rpc metaSave(MetaSaveRequestProto) returns(MetaSaveResponseProto);
804  rpc getFileInfo(GetFileInfoRequestProto) returns(GetFileInfoResponseProto);
805  rpc addCacheDirective(AddCacheDirectiveRequestProto)
806      returns (AddCacheDirectiveResponseProto);
807  rpc modifyCacheDirective(ModifyCacheDirectiveRequestProto)
808      returns (ModifyCacheDirectiveResponseProto);
809  rpc removeCacheDirective(RemoveCacheDirectiveRequestProto)
810      returns (RemoveCacheDirectiveResponseProto);
811  rpc listCacheDirectives(ListCacheDirectivesRequestProto)
812      returns (ListCacheDirectivesResponseProto);
813  rpc addCachePool(AddCachePoolRequestProto)
814      returns(AddCachePoolResponseProto);
815  rpc modifyCachePool(ModifyCachePoolRequestProto)
816      returns(ModifyCachePoolResponseProto);
817  rpc removeCachePool(RemoveCachePoolRequestProto)
818      returns(RemoveCachePoolResponseProto);
819  rpc listCachePools(ListCachePoolsRequestProto)
820      returns(ListCachePoolsResponseProto);
821  rpc getFileLinkInfo(GetFileLinkInfoRequestProto)
822      returns(GetFileLinkInfoResponseProto);
823  rpc getContentSummary(GetContentSummaryRequestProto)
824      returns(GetContentSummaryResponseProto);
825  rpc setQuota(SetQuotaRequestProto) returns(SetQuotaResponseProto);
826  rpc fsync(FsyncRequestProto) returns(FsyncResponseProto);
827  rpc setTimes(SetTimesRequestProto) returns(SetTimesResponseProto);
828  rpc createSymlink(CreateSymlinkRequestProto)
829      returns(CreateSymlinkResponseProto);
830  rpc getLinkTarget(GetLinkTargetRequestProto)
831      returns(GetLinkTargetResponseProto);
832  rpc updateBlockForPipeline(UpdateBlockForPipelineRequestProto)
833      returns(UpdateBlockForPipelineResponseProto);
834  rpc updatePipeline(UpdatePipelineRequestProto)
835      returns(UpdatePipelineResponseProto);
836  rpc getDelegationToken(hadoop.common.GetDelegationTokenRequestProto)
837      returns(hadoop.common.GetDelegationTokenResponseProto);
838  rpc renewDelegationToken(hadoop.common.RenewDelegationTokenRequestProto)
839      returns(hadoop.common.RenewDelegationTokenResponseProto);
840  rpc cancelDelegationToken(hadoop.common.CancelDelegationTokenRequestProto)
841      returns(hadoop.common.CancelDelegationTokenResponseProto);
842  rpc setBalancerBandwidth(SetBalancerBandwidthRequestProto)
843      returns(SetBalancerBandwidthResponseProto);
844  rpc getDataEncryptionKey(GetDataEncryptionKeyRequestProto)
845      returns(GetDataEncryptionKeyResponseProto);
846  rpc createSnapshot(CreateSnapshotRequestProto)
847      returns(CreateSnapshotResponseProto);
848  rpc renameSnapshot(RenameSnapshotRequestProto)
849      returns(RenameSnapshotResponseProto);
850  rpc allowSnapshot(AllowSnapshotRequestProto)
851      returns(AllowSnapshotResponseProto);
852  rpc disallowSnapshot(DisallowSnapshotRequestProto)
853      returns(DisallowSnapshotResponseProto);
854  rpc getSnapshottableDirListing(GetSnapshottableDirListingRequestProto)
855      returns(GetSnapshottableDirListingResponseProto);
856  rpc deleteSnapshot(DeleteSnapshotRequestProto)
857      returns(DeleteSnapshotResponseProto);
858  rpc getSnapshotDiffReport(GetSnapshotDiffReportRequestProto)
859      returns(GetSnapshotDiffReportResponseProto);
860  rpc isFileClosed(IsFileClosedRequestProto)
861      returns(IsFileClosedResponseProto);
862  rpc modifyAclEntries(ModifyAclEntriesRequestProto)
863      returns(ModifyAclEntriesResponseProto);
864  rpc removeAclEntries(RemoveAclEntriesRequestProto)
865      returns(RemoveAclEntriesResponseProto);
866  rpc removeDefaultAcl(RemoveDefaultAclRequestProto)
867      returns(RemoveDefaultAclResponseProto);
868  rpc removeAcl(RemoveAclRequestProto)
869      returns(RemoveAclResponseProto);
870  rpc setAcl(SetAclRequestProto)
871      returns(SetAclResponseProto);
872  rpc getAclStatus(GetAclStatusRequestProto)
873      returns(GetAclStatusResponseProto);
874  rpc setXAttr(SetXAttrRequestProto)
875      returns(SetXAttrResponseProto);
876  rpc getXAttrs(GetXAttrsRequestProto)
877      returns(GetXAttrsResponseProto);
878  rpc listXAttrs(ListXAttrsRequestProto)
879      returns(ListXAttrsResponseProto);
880  rpc removeXAttr(RemoveXAttrRequestProto)
881      returns(RemoveXAttrResponseProto);
882  rpc checkAccess(CheckAccessRequestProto)
883      returns(CheckAccessResponseProto);
884  rpc createEncryptionZone(CreateEncryptionZoneRequestProto)
885      returns(CreateEncryptionZoneResponseProto);
886  rpc listEncryptionZones(ListEncryptionZonesRequestProto)
887      returns(ListEncryptionZonesResponseProto);
888  rpc getEZForPath(GetEZForPathRequestProto)
889      returns(GetEZForPathResponseProto);
890  rpc setErasureCodingPolicy(SetErasureCodingPolicyRequestProto)
891      returns(SetErasureCodingPolicyResponseProto);
892  rpc getCurrentEditLogTxid(GetCurrentEditLogTxidRequestProto)
893      returns(GetCurrentEditLogTxidResponseProto);
894  rpc getEditsFromTxid(GetEditsFromTxidRequestProto)
895      returns(GetEditsFromTxidResponseProto);
896  rpc getErasureCodingPolicies(GetErasureCodingPoliciesRequestProto)
897      returns(GetErasureCodingPoliciesResponseProto);
898  rpc getErasureCodingPolicy(GetErasureCodingPolicyRequestProto)
899      returns(GetErasureCodingPolicyResponseProto);
900  rpc getQuotaUsage(GetQuotaUsageRequestProto)
901      returns(GetQuotaUsageResponseProto);
902}
903