You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

2808 lines
118 KiB

  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: google/devtools/remoteexecution/v1test/remote_execution.proto
  3. package remoteexecution // import "google.golang.org/genproto/googleapis/devtools/remoteexecution/v1test"
  4. import proto "github.com/golang/protobuf/proto"
  5. import fmt "fmt"
  6. import math "math"
  7. import duration "github.com/golang/protobuf/ptypes/duration"
  8. import _ "google.golang.org/genproto/googleapis/api/annotations"
  9. import longrunning "google.golang.org/genproto/googleapis/longrunning"
  10. import status "google.golang.org/genproto/googleapis/rpc/status"
  11. import (
  12. context "golang.org/x/net/context"
  13. grpc "google.golang.org/grpc"
  14. )
  15. // Reference imports to suppress errors if they are not otherwise used.
  16. var _ = proto.Marshal
  17. var _ = fmt.Errorf
  18. var _ = math.Inf
  19. // This is a compile-time assertion to ensure that this generated file
  20. // is compatible with the proto package it is being compiled against.
  21. // A compilation error at this line likely means your copy of the
  22. // proto package needs to be updated.
  23. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  24. // The current stage of execution.
  25. type ExecuteOperationMetadata_Stage int32
  26. const (
  27. ExecuteOperationMetadata_UNKNOWN ExecuteOperationMetadata_Stage = 0
  28. // Checking the result against the cache.
  29. ExecuteOperationMetadata_CACHE_CHECK ExecuteOperationMetadata_Stage = 1
  30. // Currently idle, awaiting a free machine to execute.
  31. ExecuteOperationMetadata_QUEUED ExecuteOperationMetadata_Stage = 2
  32. // Currently being executed by a worker.
  33. ExecuteOperationMetadata_EXECUTING ExecuteOperationMetadata_Stage = 3
  34. // Finished execution.
  35. ExecuteOperationMetadata_COMPLETED ExecuteOperationMetadata_Stage = 4
  36. )
  37. var ExecuteOperationMetadata_Stage_name = map[int32]string{
  38. 0: "UNKNOWN",
  39. 1: "CACHE_CHECK",
  40. 2: "QUEUED",
  41. 3: "EXECUTING",
  42. 4: "COMPLETED",
  43. }
  44. var ExecuteOperationMetadata_Stage_value = map[string]int32{
  45. "UNKNOWN": 0,
  46. "CACHE_CHECK": 1,
  47. "QUEUED": 2,
  48. "EXECUTING": 3,
  49. "COMPLETED": 4,
  50. }
  51. func (x ExecuteOperationMetadata_Stage) String() string {
  52. return proto.EnumName(ExecuteOperationMetadata_Stage_name, int32(x))
  53. }
  54. func (ExecuteOperationMetadata_Stage) EnumDescriptor() ([]byte, []int) {
  55. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{14, 0}
  56. }
  57. // An `Action` captures all the information about an execution which is required
  58. // to reproduce it.
  59. //
  60. // `Action`s are the core component of the [Execution] service. A single
  61. // `Action` represents a repeatable action that can be performed by the
  62. // execution service. `Action`s can be succinctly identified by the digest of
  63. // their wire format encoding and, once an `Action` has been executed, will be
  64. // cached in the action cache. Future requests can then use the cached result
  65. // rather than needing to run afresh.
  66. //
  67. // When a server completes execution of an
  68. // [Action][google.devtools.remoteexecution.v1test.Action], it MAY choose to
  69. // cache the [result][google.devtools.remoteexecution.v1test.ActionResult] in
  70. // the [ActionCache][google.devtools.remoteexecution.v1test.ActionCache] unless
  71. // `do_not_cache` is `true`. Clients SHOULD expect the server to do so. By
  72. // default, future calls to [Execute][] the same `Action` will also serve their
  73. // results from the cache. Clients must take care to understand the caching
  74. // behaviour. Ideally, all `Action`s will be reproducible so that serving a
  75. // result from cache is always desirable and correct.
  76. type Action struct {
  77. // The digest of the [Command][google.devtools.remoteexecution.v1test.Command]
  78. // to run, which MUST be present in the
  79. // [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
  80. CommandDigest *Digest `protobuf:"bytes,1,opt,name=command_digest,json=commandDigest,proto3" json:"command_digest,omitempty"`
  81. // The digest of the root
  82. // [Directory][google.devtools.remoteexecution.v1test.Directory] for the input
  83. // files. The files in the directory tree are available in the correct
  84. // location on the build machine before the command is executed. The root
  85. // directory, as well as every subdirectory and content blob referred to, MUST
  86. // be in the
  87. // [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
  88. InputRootDigest *Digest `protobuf:"bytes,2,opt,name=input_root_digest,json=inputRootDigest,proto3" json:"input_root_digest,omitempty"`
  89. // A list of the output files that the client expects to retrieve from the
  90. // action. Only the listed files, as well as directories listed in
  91. // `output_directories`, will be returned to the client as output.
  92. // Other files that may be created during command execution are discarded.
  93. //
  94. // The paths are relative to the working directory of the action execution.
  95. // The paths are specified using a single forward slash (`/`) as a path
  96. // separator, even if the execution platform natively uses a different
  97. // separator. The path MUST NOT include a trailing slash, nor a leading slash,
  98. // being a relative path.
  99. //
  100. // In order to ensure consistent hashing of the same Action, the output paths
  101. // MUST be sorted lexicographically by code point (or, equivalently, by UTF-8
  102. // bytes).
  103. OutputFiles []string `protobuf:"bytes,3,rep,name=output_files,json=outputFiles,proto3" json:"output_files,omitempty"`
  104. // A list of the output directories that the client expects to retrieve from
  105. // the action. Only the contents of the indicated directories (recursively
  106. // including the contents of their subdirectories) will be
  107. // returned, as well as files listed in `output_files`. Other files that may
  108. // be created during command execution are discarded.
  109. //
  110. // The paths are relative to the working directory of the action execution.
  111. // The paths are specified using a single forward slash (`/`) as a path
  112. // separator, even if the execution platform natively uses a different
  113. // separator. The path MUST NOT include a trailing slash, nor a leading slash,
  114. // being a relative path.
  115. // The special value of empty string is allowed, although not recommended, and
  116. // can be used to capture the entire working directory tree, including inputs.
  117. //
  118. // In order to ensure consistent hashing of the same Action, the output paths
  119. // MUST be sorted lexicographically by code point (or, equivalently, by UTF-8
  120. // bytes).
  121. OutputDirectories []string `protobuf:"bytes,4,rep,name=output_directories,json=outputDirectories,proto3" json:"output_directories,omitempty"`
  122. // The platform requirements for the execution environment. The server MAY
  123. // choose to execute the action on any worker satisfying the requirements, so
  124. // the client SHOULD ensure that running the action on any such worker will
  125. // have the same result.
  126. Platform *Platform `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"`
  127. // A timeout after which the execution should be killed. If the timeout is
  128. // absent, then the client is specifying that the execution should continue
  129. // as long as the server will let it. The server SHOULD impose a timeout if
  130. // the client does not specify one, however, if the client does specify a
  131. // timeout that is longer than the server's maximum timeout, the server MUST
  132. // reject the request.
  133. //
  134. // The timeout is a part of the
  135. // [Action][google.devtools.remoteexecution.v1test.Action] message, and
  136. // therefore two `Actions` with different timeouts are different, even if they
  137. // are otherwise identical. This is because, if they were not, running an
  138. // `Action` with a lower timeout than is required might result in a cache hit
  139. // from an execution run with a longer timeout, hiding the fact that the
  140. // timeout is too short. By encoding it directly in the `Action`, a lower
  141. // timeout will result in a cache miss and the execution timeout will fail
  142. // immediately, rather than whenever the cache entry gets evicted.
  143. Timeout *duration.Duration `protobuf:"bytes,6,opt,name=timeout,proto3" json:"timeout,omitempty"`
  144. // If true, then the `Action`'s result cannot be cached.
  145. DoNotCache bool `protobuf:"varint,7,opt,name=do_not_cache,json=doNotCache,proto3" json:"do_not_cache,omitempty"`
  146. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  147. XXX_unrecognized []byte `json:"-"`
  148. XXX_sizecache int32 `json:"-"`
  149. }
  150. func (m *Action) Reset() { *m = Action{} }
  151. func (m *Action) String() string { return proto.CompactTextString(m) }
  152. func (*Action) ProtoMessage() {}
  153. func (*Action) Descriptor() ([]byte, []int) {
  154. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{0}
  155. }
  156. func (m *Action) XXX_Unmarshal(b []byte) error {
  157. return xxx_messageInfo_Action.Unmarshal(m, b)
  158. }
  159. func (m *Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  160. return xxx_messageInfo_Action.Marshal(b, m, deterministic)
  161. }
  162. func (dst *Action) XXX_Merge(src proto.Message) {
  163. xxx_messageInfo_Action.Merge(dst, src)
  164. }
  165. func (m *Action) XXX_Size() int {
  166. return xxx_messageInfo_Action.Size(m)
  167. }
  168. func (m *Action) XXX_DiscardUnknown() {
  169. xxx_messageInfo_Action.DiscardUnknown(m)
  170. }
  171. var xxx_messageInfo_Action proto.InternalMessageInfo
  172. func (m *Action) GetCommandDigest() *Digest {
  173. if m != nil {
  174. return m.CommandDigest
  175. }
  176. return nil
  177. }
  178. func (m *Action) GetInputRootDigest() *Digest {
  179. if m != nil {
  180. return m.InputRootDigest
  181. }
  182. return nil
  183. }
  184. func (m *Action) GetOutputFiles() []string {
  185. if m != nil {
  186. return m.OutputFiles
  187. }
  188. return nil
  189. }
  190. func (m *Action) GetOutputDirectories() []string {
  191. if m != nil {
  192. return m.OutputDirectories
  193. }
  194. return nil
  195. }
  196. func (m *Action) GetPlatform() *Platform {
  197. if m != nil {
  198. return m.Platform
  199. }
  200. return nil
  201. }
  202. func (m *Action) GetTimeout() *duration.Duration {
  203. if m != nil {
  204. return m.Timeout
  205. }
  206. return nil
  207. }
  208. func (m *Action) GetDoNotCache() bool {
  209. if m != nil {
  210. return m.DoNotCache
  211. }
  212. return false
  213. }
  214. // A `Command` is the actual command executed by a worker running an
  215. // [Action][google.devtools.remoteexecution.v1test.Action].
  216. //
  217. // Except as otherwise required, the environment (such as which system
  218. // libraries or binaries are available, and what filesystems are mounted where)
  219. // is defined by and specific to the implementation of the remote execution API.
  220. type Command struct {
  221. // The arguments to the command. The first argument must be the path to the
  222. // executable, which must be either a relative path, in which case it is
  223. // evaluated with respect to the input root, or an absolute path.
  224. //
  225. // The working directory will always be the input root.
  226. Arguments []string `protobuf:"bytes,1,rep,name=arguments,proto3" json:"arguments,omitempty"`
  227. // The environment variables to set when running the program. The worker may
  228. // provide its own default environment variables; these defaults can be
  229. // overridden using this field. Additional variables can also be specified.
  230. //
  231. // In order to ensure that equivalent `Command`s always hash to the same
  232. // value, the environment variables MUST be lexicographically sorted by name.
  233. // Sorting of strings is done by code point, equivalently, by the UTF-8 bytes.
  234. EnvironmentVariables []*Command_EnvironmentVariable `protobuf:"bytes,2,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
  235. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  236. XXX_unrecognized []byte `json:"-"`
  237. XXX_sizecache int32 `json:"-"`
  238. }
  239. func (m *Command) Reset() { *m = Command{} }
  240. func (m *Command) String() string { return proto.CompactTextString(m) }
  241. func (*Command) ProtoMessage() {}
  242. func (*Command) Descriptor() ([]byte, []int) {
  243. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{1}
  244. }
  245. func (m *Command) XXX_Unmarshal(b []byte) error {
  246. return xxx_messageInfo_Command.Unmarshal(m, b)
  247. }
  248. func (m *Command) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  249. return xxx_messageInfo_Command.Marshal(b, m, deterministic)
  250. }
  251. func (dst *Command) XXX_Merge(src proto.Message) {
  252. xxx_messageInfo_Command.Merge(dst, src)
  253. }
  254. func (m *Command) XXX_Size() int {
  255. return xxx_messageInfo_Command.Size(m)
  256. }
  257. func (m *Command) XXX_DiscardUnknown() {
  258. xxx_messageInfo_Command.DiscardUnknown(m)
  259. }
  260. var xxx_messageInfo_Command proto.InternalMessageInfo
  261. func (m *Command) GetArguments() []string {
  262. if m != nil {
  263. return m.Arguments
  264. }
  265. return nil
  266. }
  267. func (m *Command) GetEnvironmentVariables() []*Command_EnvironmentVariable {
  268. if m != nil {
  269. return m.EnvironmentVariables
  270. }
  271. return nil
  272. }
  273. // An `EnvironmentVariable` is one variable to set in the running program's
  274. // environment.
  275. type Command_EnvironmentVariable struct {
  276. // The variable name.
  277. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  278. // The variable value.
  279. Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  280. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  281. XXX_unrecognized []byte `json:"-"`
  282. XXX_sizecache int32 `json:"-"`
  283. }
  284. func (m *Command_EnvironmentVariable) Reset() { *m = Command_EnvironmentVariable{} }
  285. func (m *Command_EnvironmentVariable) String() string { return proto.CompactTextString(m) }
  286. func (*Command_EnvironmentVariable) ProtoMessage() {}
  287. func (*Command_EnvironmentVariable) Descriptor() ([]byte, []int) {
  288. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{1, 0}
  289. }
  290. func (m *Command_EnvironmentVariable) XXX_Unmarshal(b []byte) error {
  291. return xxx_messageInfo_Command_EnvironmentVariable.Unmarshal(m, b)
  292. }
  293. func (m *Command_EnvironmentVariable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  294. return xxx_messageInfo_Command_EnvironmentVariable.Marshal(b, m, deterministic)
  295. }
  296. func (dst *Command_EnvironmentVariable) XXX_Merge(src proto.Message) {
  297. xxx_messageInfo_Command_EnvironmentVariable.Merge(dst, src)
  298. }
  299. func (m *Command_EnvironmentVariable) XXX_Size() int {
  300. return xxx_messageInfo_Command_EnvironmentVariable.Size(m)
  301. }
  302. func (m *Command_EnvironmentVariable) XXX_DiscardUnknown() {
  303. xxx_messageInfo_Command_EnvironmentVariable.DiscardUnknown(m)
  304. }
  305. var xxx_messageInfo_Command_EnvironmentVariable proto.InternalMessageInfo
  306. func (m *Command_EnvironmentVariable) GetName() string {
  307. if m != nil {
  308. return m.Name
  309. }
  310. return ""
  311. }
  312. func (m *Command_EnvironmentVariable) GetValue() string {
  313. if m != nil {
  314. return m.Value
  315. }
  316. return ""
  317. }
  318. // A `Platform` is a set of requirements, such as hardware, operating system, or
  319. // compiler toolchain, for an
  320. // [Action][google.devtools.remoteexecution.v1test.Action]'s execution
  321. // environment. A `Platform` is represented as a series of key-value pairs
  322. // representing the properties that are required of the platform.
  323. //
  324. // This message is currently being redeveloped since it is an overly simplistic
  325. // model of platforms.
  326. type Platform struct {
  327. // The properties that make up this platform. In order to ensure that
  328. // equivalent `Platform`s always hash to the same value, the properties MUST
  329. // be lexicographically sorted by name, and then by value. Sorting of strings
  330. // is done by code point, equivalently, by the UTF-8 bytes.
  331. Properties []*Platform_Property `protobuf:"bytes,1,rep,name=properties,proto3" json:"properties,omitempty"`
  332. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  333. XXX_unrecognized []byte `json:"-"`
  334. XXX_sizecache int32 `json:"-"`
  335. }
  336. func (m *Platform) Reset() { *m = Platform{} }
  337. func (m *Platform) String() string { return proto.CompactTextString(m) }
  338. func (*Platform) ProtoMessage() {}
  339. func (*Platform) Descriptor() ([]byte, []int) {
  340. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{2}
  341. }
  342. func (m *Platform) XXX_Unmarshal(b []byte) error {
  343. return xxx_messageInfo_Platform.Unmarshal(m, b)
  344. }
  345. func (m *Platform) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  346. return xxx_messageInfo_Platform.Marshal(b, m, deterministic)
  347. }
  348. func (dst *Platform) XXX_Merge(src proto.Message) {
  349. xxx_messageInfo_Platform.Merge(dst, src)
  350. }
  351. func (m *Platform) XXX_Size() int {
  352. return xxx_messageInfo_Platform.Size(m)
  353. }
  354. func (m *Platform) XXX_DiscardUnknown() {
  355. xxx_messageInfo_Platform.DiscardUnknown(m)
  356. }
  357. var xxx_messageInfo_Platform proto.InternalMessageInfo
  358. func (m *Platform) GetProperties() []*Platform_Property {
  359. if m != nil {
  360. return m.Properties
  361. }
  362. return nil
  363. }
  364. // A single property for the environment. The server is responsible for
  365. // specifying the property `name`s that it accepts. If an unknown `name` is
  366. // provided in the requirements for an
  367. // [Action][google.devtools.remoteexecution.v1test.Action], the server SHOULD
  368. // reject the execution request. If permitted by the server, the same `name`
  369. // may occur multiple times.
  370. //
  371. // The server is also responsible for specifying the interpretation of
  372. // property `value`s. For instance, a property describing how much RAM must be
  373. // available may be interpreted as allowing a worker with 16GB to fulfill a
  374. // request for 8GB, while a property describing the OS environment on which
  375. // the action must be performed may require an exact match with the worker's
  376. // OS.
  377. //
  378. // The server MAY use the `value` of one or more properties to determine how
  379. // it sets up the execution environment, such as by making specific system
  380. // files available to the worker.
  381. type Platform_Property struct {
  382. // The property name.
  383. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  384. // The property value.
  385. Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  386. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  387. XXX_unrecognized []byte `json:"-"`
  388. XXX_sizecache int32 `json:"-"`
  389. }
  390. func (m *Platform_Property) Reset() { *m = Platform_Property{} }
  391. func (m *Platform_Property) String() string { return proto.CompactTextString(m) }
  392. func (*Platform_Property) ProtoMessage() {}
  393. func (*Platform_Property) Descriptor() ([]byte, []int) {
  394. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{2, 0}
  395. }
  396. func (m *Platform_Property) XXX_Unmarshal(b []byte) error {
  397. return xxx_messageInfo_Platform_Property.Unmarshal(m, b)
  398. }
  399. func (m *Platform_Property) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  400. return xxx_messageInfo_Platform_Property.Marshal(b, m, deterministic)
  401. }
  402. func (dst *Platform_Property) XXX_Merge(src proto.Message) {
  403. xxx_messageInfo_Platform_Property.Merge(dst, src)
  404. }
  405. func (m *Platform_Property) XXX_Size() int {
  406. return xxx_messageInfo_Platform_Property.Size(m)
  407. }
  408. func (m *Platform_Property) XXX_DiscardUnknown() {
  409. xxx_messageInfo_Platform_Property.DiscardUnknown(m)
  410. }
  411. var xxx_messageInfo_Platform_Property proto.InternalMessageInfo
  412. func (m *Platform_Property) GetName() string {
  413. if m != nil {
  414. return m.Name
  415. }
  416. return ""
  417. }
  418. func (m *Platform_Property) GetValue() string {
  419. if m != nil {
  420. return m.Value
  421. }
  422. return ""
  423. }
  424. // A `Directory` represents a directory node in a file tree, containing zero or
  425. // more children [FileNodes][google.devtools.remoteexecution.v1test.FileNode]
  426. // and [DirectoryNodes][google.devtools.remoteexecution.v1test.DirectoryNode].
  427. // Each `Node` contains its name in the directory, the digest of its content
  428. // (either a file blob or a `Directory` proto), as well as possibly some
  429. // metadata about the file or directory.
  430. //
  431. // In order to ensure that two equivalent directory trees hash to the same
  432. // value, the following restrictions MUST be obeyed when constructing a
  433. // a `Directory`:
  434. // - Every child in the directory must have a path of exactly one segment.
  435. // Multiple levels of directory hierarchy may not be collapsed.
  436. // - Each child in the directory must have a unique path segment (file name).
  437. // - The files and directories in the directory must each be sorted in
  438. // lexicographical order by path. The path strings must be sorted by code
  439. // point, equivalently, by UTF-8 bytes.
  440. //
  441. // A `Directory` that obeys the restrictions is said to be in canonical form.
  442. //
  443. // As an example, the following could be used for a file named `bar` and a
  444. // directory named `foo` with an executable file named `baz` (hashes shortened
  445. // for readability):
  446. //
  447. // ```json
  448. // // (Directory proto)
  449. // {
  450. // files: [
  451. // {
  452. // name: "bar",
  453. // digest: {
  454. // hash: "4a73bc9d03...",
  455. // size: 65534
  456. // }
  457. // }
  458. // ],
  459. // directories: [
  460. // {
  461. // name: "foo",
  462. // digest: {
  463. // hash: "4cf2eda940...",
  464. // size: 43
  465. // }
  466. // }
  467. // ]
  468. // }
  469. //
  470. // // (Directory proto with hash "4cf2eda940..." and size 43)
  471. // {
  472. // files: [
  473. // {
  474. // name: "baz",
  475. // digest: {
  476. // hash: "b2c941073e...",
  477. // size: 1294,
  478. // },
  479. // is_executable: true
  480. // }
  481. // ]
  482. // }
  483. // ```
  484. type Directory struct {
  485. // The files in the directory.
  486. Files []*FileNode `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
  487. // The subdirectories in the directory.
  488. Directories []*DirectoryNode `protobuf:"bytes,2,rep,name=directories,proto3" json:"directories,omitempty"`
  489. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  490. XXX_unrecognized []byte `json:"-"`
  491. XXX_sizecache int32 `json:"-"`
  492. }
  493. func (m *Directory) Reset() { *m = Directory{} }
  494. func (m *Directory) String() string { return proto.CompactTextString(m) }
  495. func (*Directory) ProtoMessage() {}
  496. func (*Directory) Descriptor() ([]byte, []int) {
  497. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{3}
  498. }
  499. func (m *Directory) XXX_Unmarshal(b []byte) error {
  500. return xxx_messageInfo_Directory.Unmarshal(m, b)
  501. }
  502. func (m *Directory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  503. return xxx_messageInfo_Directory.Marshal(b, m, deterministic)
  504. }
  505. func (dst *Directory) XXX_Merge(src proto.Message) {
  506. xxx_messageInfo_Directory.Merge(dst, src)
  507. }
  508. func (m *Directory) XXX_Size() int {
  509. return xxx_messageInfo_Directory.Size(m)
  510. }
  511. func (m *Directory) XXX_DiscardUnknown() {
  512. xxx_messageInfo_Directory.DiscardUnknown(m)
  513. }
  514. var xxx_messageInfo_Directory proto.InternalMessageInfo
  515. func (m *Directory) GetFiles() []*FileNode {
  516. if m != nil {
  517. return m.Files
  518. }
  519. return nil
  520. }
  521. func (m *Directory) GetDirectories() []*DirectoryNode {
  522. if m != nil {
  523. return m.Directories
  524. }
  525. return nil
  526. }
  527. // A `FileNode` represents a single file and associated metadata.
  528. type FileNode struct {
  529. // The name of the file.
  530. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  531. // The digest of the file's content.
  532. Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
  533. // True if file is executable, false otherwise.
  534. IsExecutable bool `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
  535. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  536. XXX_unrecognized []byte `json:"-"`
  537. XXX_sizecache int32 `json:"-"`
  538. }
  539. func (m *FileNode) Reset() { *m = FileNode{} }
  540. func (m *FileNode) String() string { return proto.CompactTextString(m) }
  541. func (*FileNode) ProtoMessage() {}
  542. func (*FileNode) Descriptor() ([]byte, []int) {
  543. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{4}
  544. }
  545. func (m *FileNode) XXX_Unmarshal(b []byte) error {
  546. return xxx_messageInfo_FileNode.Unmarshal(m, b)
  547. }
  548. func (m *FileNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  549. return xxx_messageInfo_FileNode.Marshal(b, m, deterministic)
  550. }
  551. func (dst *FileNode) XXX_Merge(src proto.Message) {
  552. xxx_messageInfo_FileNode.Merge(dst, src)
  553. }
  554. func (m *FileNode) XXX_Size() int {
  555. return xxx_messageInfo_FileNode.Size(m)
  556. }
  557. func (m *FileNode) XXX_DiscardUnknown() {
  558. xxx_messageInfo_FileNode.DiscardUnknown(m)
  559. }
  560. var xxx_messageInfo_FileNode proto.InternalMessageInfo
  561. func (m *FileNode) GetName() string {
  562. if m != nil {
  563. return m.Name
  564. }
  565. return ""
  566. }
  567. func (m *FileNode) GetDigest() *Digest {
  568. if m != nil {
  569. return m.Digest
  570. }
  571. return nil
  572. }
  573. func (m *FileNode) GetIsExecutable() bool {
  574. if m != nil {
  575. return m.IsExecutable
  576. }
  577. return false
  578. }
  579. // A `DirectoryNode` represents a child of a
  580. // [Directory][google.devtools.remoteexecution.v1test.Directory] which is itself
  581. // a `Directory` and its associated metadata.
  582. type DirectoryNode struct {
  583. // The name of the directory.
  584. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  585. // The digest of the
  586. // [Directory][google.devtools.remoteexecution.v1test.Directory] object
  587. // represented. See [Digest][google.devtools.remoteexecution.v1test.Digest]
  588. // for information about how to take the digest of a proto message.
  589. Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
  590. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  591. XXX_unrecognized []byte `json:"-"`
  592. XXX_sizecache int32 `json:"-"`
  593. }
  594. func (m *DirectoryNode) Reset() { *m = DirectoryNode{} }
  595. func (m *DirectoryNode) String() string { return proto.CompactTextString(m) }
  596. func (*DirectoryNode) ProtoMessage() {}
  597. func (*DirectoryNode) Descriptor() ([]byte, []int) {
  598. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{5}
  599. }
  600. func (m *DirectoryNode) XXX_Unmarshal(b []byte) error {
  601. return xxx_messageInfo_DirectoryNode.Unmarshal(m, b)
  602. }
  603. func (m *DirectoryNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  604. return xxx_messageInfo_DirectoryNode.Marshal(b, m, deterministic)
  605. }
  606. func (dst *DirectoryNode) XXX_Merge(src proto.Message) {
  607. xxx_messageInfo_DirectoryNode.Merge(dst, src)
  608. }
  609. func (m *DirectoryNode) XXX_Size() int {
  610. return xxx_messageInfo_DirectoryNode.Size(m)
  611. }
  612. func (m *DirectoryNode) XXX_DiscardUnknown() {
  613. xxx_messageInfo_DirectoryNode.DiscardUnknown(m)
  614. }
  615. var xxx_messageInfo_DirectoryNode proto.InternalMessageInfo
  616. func (m *DirectoryNode) GetName() string {
  617. if m != nil {
  618. return m.Name
  619. }
  620. return ""
  621. }
  622. func (m *DirectoryNode) GetDigest() *Digest {
  623. if m != nil {
  624. return m.Digest
  625. }
  626. return nil
  627. }
  628. // A content digest. A digest for a given blob consists of the size of the blob
  629. // and its hash. The hash algorithm to use is defined by the server, but servers
  630. // SHOULD use SHA-256.
  631. //
  632. // The size is considered to be an integral part of the digest and cannot be
  633. // separated. That is, even if the `hash` field is correctly specified but
  634. // `size_bytes` is not, the server MUST reject the request.
  635. //
  636. // The reason for including the size in the digest is as follows: in a great
  637. // many cases, the server needs to know the size of the blob it is about to work
  638. // with prior to starting an operation with it, such as flattening Merkle tree
  639. // structures or streaming it to a worker. Technically, the server could
  640. // implement a separate metadata store, but this results in a significantly more
  641. // complicated implementation as opposed to having the client specify the size
  642. // up-front (or storing the size along with the digest in every message where
  643. // digests are embedded). This does mean that the API leaks some implementation
  644. // details of (what we consider to be) a reasonable server implementation, but
  645. // we consider this to be a worthwhile tradeoff.
  646. //
  647. // When a `Digest` is used to refer to a proto message, it always refers to the
  648. // message in binary encoded form. To ensure consistent hashing, clients and
  649. // servers MUST ensure that they serialize messages according to the following
  650. // rules, even if there are alternate valid encodings for the same message.
  651. // - Fields are serialized in tag order.
  652. // - There are no unknown fields.
  653. // - There are no duplicate fields.
  654. // - Fields are serialized according to the default semantics for their type.
  655. //
  656. // Most protocol buffer implementations will always follow these rules when
  657. // serializing, but care should be taken to avoid shortcuts. For instance,
  658. // concatenating two messages to merge them may produce duplicate fields.
  659. type Digest struct {
  660. // The hash. In the case of SHA-256, it will always be a lowercase hex string
  661. // exactly 64 characters long.
  662. Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
  663. // The size of the blob, in bytes.
  664. SizeBytes int64 `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
  665. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  666. XXX_unrecognized []byte `json:"-"`
  667. XXX_sizecache int32 `json:"-"`
  668. }
  669. func (m *Digest) Reset() { *m = Digest{} }
  670. func (m *Digest) String() string { return proto.CompactTextString(m) }
  671. func (*Digest) ProtoMessage() {}
  672. func (*Digest) Descriptor() ([]byte, []int) {
  673. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{6}
  674. }
  675. func (m *Digest) XXX_Unmarshal(b []byte) error {
  676. return xxx_messageInfo_Digest.Unmarshal(m, b)
  677. }
  678. func (m *Digest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  679. return xxx_messageInfo_Digest.Marshal(b, m, deterministic)
  680. }
  681. func (dst *Digest) XXX_Merge(src proto.Message) {
  682. xxx_messageInfo_Digest.Merge(dst, src)
  683. }
  684. func (m *Digest) XXX_Size() int {
  685. return xxx_messageInfo_Digest.Size(m)
  686. }
  687. func (m *Digest) XXX_DiscardUnknown() {
  688. xxx_messageInfo_Digest.DiscardUnknown(m)
  689. }
  690. var xxx_messageInfo_Digest proto.InternalMessageInfo
  691. func (m *Digest) GetHash() string {
  692. if m != nil {
  693. return m.Hash
  694. }
  695. return ""
  696. }
  697. func (m *Digest) GetSizeBytes() int64 {
  698. if m != nil {
  699. return m.SizeBytes
  700. }
  701. return 0
  702. }
  703. // An ActionResult represents the result of an
  704. // [Action][google.devtools.remoteexecution.v1test.Action] being run.
  705. type ActionResult struct {
  706. // The output files of the action. For each output file requested in the
  707. // `output_files` field of the Action, if the corresponding file existed after
  708. // the action completed, a single entry will be present in the output list.
  709. //
  710. // If the action does not produce the requested output, or produces a
  711. // directory where a regular file is expected or vice versa, then that output
  712. // will be omitted from the list. The server is free to arrange the output
  713. // list as desired; clients MUST NOT assume that the output list is sorted.
  714. OutputFiles []*OutputFile `protobuf:"bytes,2,rep,name=output_files,json=outputFiles,proto3" json:"output_files,omitempty"`
  715. // The output directories of the action. For each output directory requested
  716. // in the `output_directories` field of the Action, if the corresponding
  717. // directory existed after the action completed, a single entry will be
  718. // present in the output list, which will contain the digest of
  719. // a [Tree][google.devtools.remoteexecution.v1test.Tree] message containing
  720. // the directory tree, and the path equal exactly to the corresponding Action
  721. // output_directories member.
  722. // As an example, suppose the Action had an output directory `a/b/dir` and the
  723. // execution produced the following contents in `a/b/dir`: a file named `bar`
  724. // and a directory named `foo` with an executable file named `baz`. Then,
  725. // output_directory will contain (hashes shortened for readability):
  726. //
  727. // ```json
  728. // // OutputDirectory proto:
  729. // {
  730. // path: "a/b/dir"
  731. // tree_digest: {
  732. // hash: "4a73bc9d03...",
  733. // size: 55
  734. // }
  735. // }
  736. // // Tree proto with hash "4a73bc9d03..." and size 55:
  737. // {
  738. // root: {
  739. // files: [
  740. // {
  741. // name: "bar",
  742. // digest: {
  743. // hash: "4a73bc9d03...",
  744. // size: 65534
  745. // }
  746. // }
  747. // ],
  748. // directories: [
  749. // {
  750. // name: "foo",
  751. // digest: {
  752. // hash: "4cf2eda940...",
  753. // size: 43
  754. // }
  755. // }
  756. // ]
  757. // }
  758. // children : {
  759. // // (Directory proto with hash "4cf2eda940..." and size 43)
  760. // files: [
  761. // {
  762. // name: "baz",
  763. // digest: {
  764. // hash: "b2c941073e...",
  765. // size: 1294,
  766. // },
  767. // is_executable: true
  768. // }
  769. // ]
  770. // }
  771. // }
  772. // ```
  773. OutputDirectories []*OutputDirectory `protobuf:"bytes,3,rep,name=output_directories,json=outputDirectories,proto3" json:"output_directories,omitempty"`
  774. // The exit code of the command.
  775. ExitCode int32 `protobuf:"varint,4,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
  776. // The standard output buffer of the action. The server will determine, based
  777. // on the size of the buffer, whether to return it in raw form or to return
  778. // a digest in `stdout_digest` that points to the buffer. If neither is set,
  779. // then the buffer is empty. The client SHOULD NOT assume it will get one of
  780. // the raw buffer or a digest on any given request and should be prepared to
  781. // handle either.
  782. StdoutRaw []byte `protobuf:"bytes,5,opt,name=stdout_raw,json=stdoutRaw,proto3" json:"stdout_raw,omitempty"`
  783. // The digest for a blob containing the standard output of the action, which
  784. // can be retrieved from the
  785. // [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
  786. // See `stdout_raw` for when this will be set.
  787. StdoutDigest *Digest `protobuf:"bytes,6,opt,name=stdout_digest,json=stdoutDigest,proto3" json:"stdout_digest,omitempty"`
  788. // The standard error buffer of the action. The server will determine, based
  789. // on the size of the buffer, whether to return it in raw form or to return
  790. // a digest in `stderr_digest` that points to the buffer. If neither is set,
  791. // then the buffer is empty. The client SHOULD NOT assume it will get one of
  792. // the raw buffer or a digest on any given request and should be prepared to
  793. // handle either.
  794. StderrRaw []byte `protobuf:"bytes,7,opt,name=stderr_raw,json=stderrRaw,proto3" json:"stderr_raw,omitempty"`
  795. // The digest for a blob containing the standard error of the action, which
  796. // can be retrieved from the
  797. // [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
  798. // See `stderr_raw` for when this will be set.
  799. StderrDigest *Digest `protobuf:"bytes,8,opt,name=stderr_digest,json=stderrDigest,proto3" json:"stderr_digest,omitempty"`
  800. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  801. XXX_unrecognized []byte `json:"-"`
  802. XXX_sizecache int32 `json:"-"`
  803. }
  804. func (m *ActionResult) Reset() { *m = ActionResult{} }
  805. func (m *ActionResult) String() string { return proto.CompactTextString(m) }
  806. func (*ActionResult) ProtoMessage() {}
  807. func (*ActionResult) Descriptor() ([]byte, []int) {
  808. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{7}
  809. }
  810. func (m *ActionResult) XXX_Unmarshal(b []byte) error {
  811. return xxx_messageInfo_ActionResult.Unmarshal(m, b)
  812. }
  813. func (m *ActionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  814. return xxx_messageInfo_ActionResult.Marshal(b, m, deterministic)
  815. }
  816. func (dst *ActionResult) XXX_Merge(src proto.Message) {
  817. xxx_messageInfo_ActionResult.Merge(dst, src)
  818. }
  819. func (m *ActionResult) XXX_Size() int {
  820. return xxx_messageInfo_ActionResult.Size(m)
  821. }
  822. func (m *ActionResult) XXX_DiscardUnknown() {
  823. xxx_messageInfo_ActionResult.DiscardUnknown(m)
  824. }
  825. var xxx_messageInfo_ActionResult proto.InternalMessageInfo
  826. func (m *ActionResult) GetOutputFiles() []*OutputFile {
  827. if m != nil {
  828. return m.OutputFiles
  829. }
  830. return nil
  831. }
  832. func (m *ActionResult) GetOutputDirectories() []*OutputDirectory {
  833. if m != nil {
  834. return m.OutputDirectories
  835. }
  836. return nil
  837. }
  838. func (m *ActionResult) GetExitCode() int32 {
  839. if m != nil {
  840. return m.ExitCode
  841. }
  842. return 0
  843. }
  844. func (m *ActionResult) GetStdoutRaw() []byte {
  845. if m != nil {
  846. return m.StdoutRaw
  847. }
  848. return nil
  849. }
  850. func (m *ActionResult) GetStdoutDigest() *Digest {
  851. if m != nil {
  852. return m.StdoutDigest
  853. }
  854. return nil
  855. }
  856. func (m *ActionResult) GetStderrRaw() []byte {
  857. if m != nil {
  858. return m.StderrRaw
  859. }
  860. return nil
  861. }
  862. func (m *ActionResult) GetStderrDigest() *Digest {
  863. if m != nil {
  864. return m.StderrDigest
  865. }
  866. return nil
  867. }
  868. // An `OutputFile` is similar to a
  869. // [FileNode][google.devtools.remoteexecution.v1test.FileNode], but it is
  870. // tailored for output as part of an `ActionResult`. It allows a full file path
  871. // rather than only a name, and allows the server to include content inline.
  872. //
  873. // `OutputFile` is binary-compatible with `FileNode`.
  874. type OutputFile struct {
  875. // The full path of the file relative to the input root, including the
  876. // filename. The path separator is a forward slash `/`. Since this is a
  877. // relative path, it MUST NOT begin with a leading forward slash.
  878. Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
  879. // The digest of the file's content.
  880. Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
  881. // The raw content of the file.
  882. //
  883. // This field may be used by the server to provide the content of a file
  884. // inline in an
  885. // [ActionResult][google.devtools.remoteexecution.v1test.ActionResult] and
  886. // avoid requiring that the client make a separate call to
  887. // [ContentAddressableStorage.GetBlob] to retrieve it.
  888. //
  889. // The client SHOULD NOT assume that it will get raw content with any request,
  890. // and always be prepared to retrieve it via `digest`.
  891. Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"`
  892. // True if file is executable, false otherwise.
  893. IsExecutable bool `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
  894. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  895. XXX_unrecognized []byte `json:"-"`
  896. XXX_sizecache int32 `json:"-"`
  897. }
  898. func (m *OutputFile) Reset() { *m = OutputFile{} }
  899. func (m *OutputFile) String() string { return proto.CompactTextString(m) }
  900. func (*OutputFile) ProtoMessage() {}
  901. func (*OutputFile) Descriptor() ([]byte, []int) {
  902. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{8}
  903. }
  904. func (m *OutputFile) XXX_Unmarshal(b []byte) error {
  905. return xxx_messageInfo_OutputFile.Unmarshal(m, b)
  906. }
  907. func (m *OutputFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  908. return xxx_messageInfo_OutputFile.Marshal(b, m, deterministic)
  909. }
  910. func (dst *OutputFile) XXX_Merge(src proto.Message) {
  911. xxx_messageInfo_OutputFile.Merge(dst, src)
  912. }
  913. func (m *OutputFile) XXX_Size() int {
  914. return xxx_messageInfo_OutputFile.Size(m)
  915. }
  916. func (m *OutputFile) XXX_DiscardUnknown() {
  917. xxx_messageInfo_OutputFile.DiscardUnknown(m)
  918. }
  919. var xxx_messageInfo_OutputFile proto.InternalMessageInfo
  920. func (m *OutputFile) GetPath() string {
  921. if m != nil {
  922. return m.Path
  923. }
  924. return ""
  925. }
  926. func (m *OutputFile) GetDigest() *Digest {
  927. if m != nil {
  928. return m.Digest
  929. }
  930. return nil
  931. }
  932. func (m *OutputFile) GetContent() []byte {
  933. if m != nil {
  934. return m.Content
  935. }
  936. return nil
  937. }
  938. func (m *OutputFile) GetIsExecutable() bool {
  939. if m != nil {
  940. return m.IsExecutable
  941. }
  942. return false
  943. }
  944. // A `Tree` contains all the
  945. // [Directory][google.devtools.remoteexecution.v1test.Directory] protos in a
  946. // single directory Merkle tree, compressed into one message.
  947. type Tree struct {
  948. // The root directory in the tree.
  949. Root *Directory `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"`
  950. // All the child directories: the directories referred to by the root and,
  951. // recursively, all its children. In order to reconstruct the directory tree,
  952. // the client must take the digests of each of the child directories and then
  953. // build up a tree starting from the `root`.
  954. Children []*Directory `protobuf:"bytes,2,rep,name=children,proto3" json:"children,omitempty"`
  955. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  956. XXX_unrecognized []byte `json:"-"`
  957. XXX_sizecache int32 `json:"-"`
  958. }
  959. func (m *Tree) Reset() { *m = Tree{} }
  960. func (m *Tree) String() string { return proto.CompactTextString(m) }
  961. func (*Tree) ProtoMessage() {}
  962. func (*Tree) Descriptor() ([]byte, []int) {
  963. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{9}
  964. }
  965. func (m *Tree) XXX_Unmarshal(b []byte) error {
  966. return xxx_messageInfo_Tree.Unmarshal(m, b)
  967. }
  968. func (m *Tree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  969. return xxx_messageInfo_Tree.Marshal(b, m, deterministic)
  970. }
  971. func (dst *Tree) XXX_Merge(src proto.Message) {
  972. xxx_messageInfo_Tree.Merge(dst, src)
  973. }
  974. func (m *Tree) XXX_Size() int {
  975. return xxx_messageInfo_Tree.Size(m)
  976. }
  977. func (m *Tree) XXX_DiscardUnknown() {
  978. xxx_messageInfo_Tree.DiscardUnknown(m)
  979. }
  980. var xxx_messageInfo_Tree proto.InternalMessageInfo
  981. func (m *Tree) GetRoot() *Directory {
  982. if m != nil {
  983. return m.Root
  984. }
  985. return nil
  986. }
  987. func (m *Tree) GetChildren() []*Directory {
  988. if m != nil {
  989. return m.Children
  990. }
  991. return nil
  992. }
  993. // An `OutputDirectory` is the output in an `ActionResult` corresponding to a
  994. // directory's full contents rather than a single file.
  995. type OutputDirectory struct {
  996. // The full path of the directory relative to the working directory. The path
  997. // separator is a forward slash `/`. Since this is a relative path, it MUST
  998. // NOT begin with a leading forward slash. The empty string value is allowed,
  999. // and it denotes the entire working directory.
  1000. Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
  1001. // DEPRECATED: This field is deprecated and should no longer be used.
  1002. Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
  1003. // The digest of the encoded
  1004. // [Tree][google.devtools.remoteexecution.v1test.Tree] proto containing the
  1005. // directory's contents.
  1006. TreeDigest *Digest `protobuf:"bytes,3,opt,name=tree_digest,json=treeDigest,proto3" json:"tree_digest,omitempty"`
  1007. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1008. XXX_unrecognized []byte `json:"-"`
  1009. XXX_sizecache int32 `json:"-"`
  1010. }
  1011. func (m *OutputDirectory) Reset() { *m = OutputDirectory{} }
  1012. func (m *OutputDirectory) String() string { return proto.CompactTextString(m) }
  1013. func (*OutputDirectory) ProtoMessage() {}
  1014. func (*OutputDirectory) Descriptor() ([]byte, []int) {
  1015. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{10}
  1016. }
  1017. func (m *OutputDirectory) XXX_Unmarshal(b []byte) error {
  1018. return xxx_messageInfo_OutputDirectory.Unmarshal(m, b)
  1019. }
  1020. func (m *OutputDirectory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1021. return xxx_messageInfo_OutputDirectory.Marshal(b, m, deterministic)
  1022. }
  1023. func (dst *OutputDirectory) XXX_Merge(src proto.Message) {
  1024. xxx_messageInfo_OutputDirectory.Merge(dst, src)
  1025. }
  1026. func (m *OutputDirectory) XXX_Size() int {
  1027. return xxx_messageInfo_OutputDirectory.Size(m)
  1028. }
  1029. func (m *OutputDirectory) XXX_DiscardUnknown() {
  1030. xxx_messageInfo_OutputDirectory.DiscardUnknown(m)
  1031. }
  1032. var xxx_messageInfo_OutputDirectory proto.InternalMessageInfo
  1033. func (m *OutputDirectory) GetPath() string {
  1034. if m != nil {
  1035. return m.Path
  1036. }
  1037. return ""
  1038. }
  1039. func (m *OutputDirectory) GetDigest() *Digest {
  1040. if m != nil {
  1041. return m.Digest
  1042. }
  1043. return nil
  1044. }
  1045. func (m *OutputDirectory) GetTreeDigest() *Digest {
  1046. if m != nil {
  1047. return m.TreeDigest
  1048. }
  1049. return nil
  1050. }
  1051. // A request message for
  1052. // [Execution.Execute][google.devtools.remoteexecution.v1test.Execution.Execute].
  1053. type ExecuteRequest struct {
  1054. // The instance of the execution system to operate against. A server may
  1055. // support multiple instances of the execution system (with their own workers,
  1056. // storage, caches, etc.). The server MAY require use of this field to select
  1057. // between them in an implementation-defined fashion, otherwise it can be
  1058. // omitted.
  1059. InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
  1060. // The action to be performed.
  1061. Action *Action `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
  1062. // If true, the action will be executed anew even if its result was already
  1063. // present in the cache. If false, the result may be served from the
  1064. // [ActionCache][google.devtools.remoteexecution.v1test.ActionCache].
  1065. SkipCacheLookup bool `protobuf:"varint,3,opt,name=skip_cache_lookup,json=skipCacheLookup,proto3" json:"skip_cache_lookup,omitempty"`
  1066. // DEPRECATED: This field should be ignored by clients and servers and will be
  1067. // removed.
  1068. TotalInputFileCount int32 `protobuf:"varint,4,opt,name=total_input_file_count,json=totalInputFileCount,proto3" json:"total_input_file_count,omitempty"`
  1069. // DEPRECATED: This field should be ignored by clients and servers and will be
  1070. // removed.
  1071. TotalInputFileBytes int64 `protobuf:"varint,5,opt,name=total_input_file_bytes,json=totalInputFileBytes,proto3" json:"total_input_file_bytes,omitempty"`
  1072. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1073. XXX_unrecognized []byte `json:"-"`
  1074. XXX_sizecache int32 `json:"-"`
  1075. }
  1076. func (m *ExecuteRequest) Reset() { *m = ExecuteRequest{} }
  1077. func (m *ExecuteRequest) String() string { return proto.CompactTextString(m) }
  1078. func (*ExecuteRequest) ProtoMessage() {}
  1079. func (*ExecuteRequest) Descriptor() ([]byte, []int) {
  1080. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{11}
  1081. }
  1082. func (m *ExecuteRequest) XXX_Unmarshal(b []byte) error {
  1083. return xxx_messageInfo_ExecuteRequest.Unmarshal(m, b)
  1084. }
  1085. func (m *ExecuteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1086. return xxx_messageInfo_ExecuteRequest.Marshal(b, m, deterministic)
  1087. }
  1088. func (dst *ExecuteRequest) XXX_Merge(src proto.Message) {
  1089. xxx_messageInfo_ExecuteRequest.Merge(dst, src)
  1090. }
  1091. func (m *ExecuteRequest) XXX_Size() int {
  1092. return xxx_messageInfo_ExecuteRequest.Size(m)
  1093. }
  1094. func (m *ExecuteRequest) XXX_DiscardUnknown() {
  1095. xxx_messageInfo_ExecuteRequest.DiscardUnknown(m)
  1096. }
  1097. var xxx_messageInfo_ExecuteRequest proto.InternalMessageInfo
  1098. func (m *ExecuteRequest) GetInstanceName() string {
  1099. if m != nil {
  1100. return m.InstanceName
  1101. }
  1102. return ""
  1103. }
  1104. func (m *ExecuteRequest) GetAction() *Action {
  1105. if m != nil {
  1106. return m.Action
  1107. }
  1108. return nil
  1109. }
  1110. func (m *ExecuteRequest) GetSkipCacheLookup() bool {
  1111. if m != nil {
  1112. return m.SkipCacheLookup
  1113. }
  1114. return false
  1115. }
  1116. func (m *ExecuteRequest) GetTotalInputFileCount() int32 {
  1117. if m != nil {
  1118. return m.TotalInputFileCount
  1119. }
  1120. return 0
  1121. }
  1122. func (m *ExecuteRequest) GetTotalInputFileBytes() int64 {
  1123. if m != nil {
  1124. return m.TotalInputFileBytes
  1125. }
  1126. return 0
  1127. }
  1128. // A `LogFile` is a log stored in the CAS.
  1129. type LogFile struct {
  1130. // The digest of the log contents.
  1131. Digest *Digest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
  1132. // This is a hint as to the purpose of the log, and is set to true if the log
  1133. // is human-readable text that can be usefully displayed to a user, and false
  1134. // otherwise. For instance, if a command-line client wishes to print the
  1135. // server logs to the terminal for a failed action, this allows it to avoid
  1136. // displaying a binary file.
  1137. HumanReadable bool `protobuf:"varint,2,opt,name=human_readable,json=humanReadable,proto3" json:"human_readable,omitempty"`
  1138. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1139. XXX_unrecognized []byte `json:"-"`
  1140. XXX_sizecache int32 `json:"-"`
  1141. }
  1142. func (m *LogFile) Reset() { *m = LogFile{} }
  1143. func (m *LogFile) String() string { return proto.CompactTextString(m) }
  1144. func (*LogFile) ProtoMessage() {}
  1145. func (*LogFile) Descriptor() ([]byte, []int) {
  1146. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{12}
  1147. }
  1148. func (m *LogFile) XXX_Unmarshal(b []byte) error {
  1149. return xxx_messageInfo_LogFile.Unmarshal(m, b)
  1150. }
  1151. func (m *LogFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1152. return xxx_messageInfo_LogFile.Marshal(b, m, deterministic)
  1153. }
  1154. func (dst *LogFile) XXX_Merge(src proto.Message) {
  1155. xxx_messageInfo_LogFile.Merge(dst, src)
  1156. }
  1157. func (m *LogFile) XXX_Size() int {
  1158. return xxx_messageInfo_LogFile.Size(m)
  1159. }
  1160. func (m *LogFile) XXX_DiscardUnknown() {
  1161. xxx_messageInfo_LogFile.DiscardUnknown(m)
  1162. }
  1163. var xxx_messageInfo_LogFile proto.InternalMessageInfo
  1164. func (m *LogFile) GetDigest() *Digest {
  1165. if m != nil {
  1166. return m.Digest
  1167. }
  1168. return nil
  1169. }
  1170. func (m *LogFile) GetHumanReadable() bool {
  1171. if m != nil {
  1172. return m.HumanReadable
  1173. }
  1174. return false
  1175. }
  1176. // The response message for
  1177. // [Execution.Execute][google.devtools.remoteexecution.v1test.Execution.Execute],
  1178. // which will be contained in the [response
  1179. // field][google.longrunning.Operation.response] of the
  1180. // [Operation][google.longrunning.Operation].
  1181. type ExecuteResponse struct {
  1182. // The result of the action.
  1183. Result *ActionResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
  1184. // True if the result was served from cache, false if it was executed.
  1185. CachedResult bool `protobuf:"varint,2,opt,name=cached_result,json=cachedResult,proto3" json:"cached_result,omitempty"`
  1186. // If the status has a code other than `OK`, it indicates that the action did
  1187. // not finish execution. For example, if the operation times out during
  1188. // execution, the status will have a `DEADLINE_EXCEEDED` code. Servers MUST
  1189. // use this field for errors in execution, rather than the error field on the
  1190. // `Operation` object.
  1191. //
  1192. // If the status code is other than `OK`, then the result MUST NOT be cached.
  1193. // For an error status, the `result` field is optional; the server may
  1194. // populate the output-, stdout-, and stderr-related fields if it has any
  1195. // information available, such as the stdout and stderr of a timed-out action.
  1196. Status *status.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
  1197. // An optional list of additional log outputs the server wishes to provide. A
  1198. // server can use this to return execution-specific logs however it wishes.
  1199. // This is intended primarily to make it easier for users to debug issues that
  1200. // may be outside of the actual job execution, such as by identifying the
  1201. // worker executing the action or by providing logs from the worker's setup
  1202. // phase. The keys SHOULD be human readable so that a client can display them
  1203. // to a user.
  1204. ServerLogs map[string]*LogFile `protobuf:"bytes,4,rep,name=server_logs,json=serverLogs,proto3" json:"server_logs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  1205. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1206. XXX_unrecognized []byte `json:"-"`
  1207. XXX_sizecache int32 `json:"-"`
  1208. }
  1209. func (m *ExecuteResponse) Reset() { *m = ExecuteResponse{} }
  1210. func (m *ExecuteResponse) String() string { return proto.CompactTextString(m) }
  1211. func (*ExecuteResponse) ProtoMessage() {}
  1212. func (*ExecuteResponse) Descriptor() ([]byte, []int) {
  1213. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{13}
  1214. }
  1215. func (m *ExecuteResponse) XXX_Unmarshal(b []byte) error {
  1216. return xxx_messageInfo_ExecuteResponse.Unmarshal(m, b)
  1217. }
  1218. func (m *ExecuteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1219. return xxx_messageInfo_ExecuteResponse.Marshal(b, m, deterministic)
  1220. }
  1221. func (dst *ExecuteResponse) XXX_Merge(src proto.Message) {
  1222. xxx_messageInfo_ExecuteResponse.Merge(dst, src)
  1223. }
  1224. func (m *ExecuteResponse) XXX_Size() int {
  1225. return xxx_messageInfo_ExecuteResponse.Size(m)
  1226. }
  1227. func (m *ExecuteResponse) XXX_DiscardUnknown() {
  1228. xxx_messageInfo_ExecuteResponse.DiscardUnknown(m)
  1229. }
  1230. var xxx_messageInfo_ExecuteResponse proto.InternalMessageInfo
  1231. func (m *ExecuteResponse) GetResult() *ActionResult {
  1232. if m != nil {
  1233. return m.Result
  1234. }
  1235. return nil
  1236. }
  1237. func (m *ExecuteResponse) GetCachedResult() bool {
  1238. if m != nil {
  1239. return m.CachedResult
  1240. }
  1241. return false
  1242. }
  1243. func (m *ExecuteResponse) GetStatus() *status.Status {
  1244. if m != nil {
  1245. return m.Status
  1246. }
  1247. return nil
  1248. }
  1249. func (m *ExecuteResponse) GetServerLogs() map[string]*LogFile {
  1250. if m != nil {
  1251. return m.ServerLogs
  1252. }
  1253. return nil
  1254. }
  1255. // Metadata about an ongoing
  1256. // [execution][google.devtools.remoteexecution.v1test.Execution.Execute], which
  1257. // will be contained in the [metadata
  1258. // field][google.longrunning.Operation.response] of the
  1259. // [Operation][google.longrunning.Operation].
  1260. type ExecuteOperationMetadata struct {
  1261. Stage ExecuteOperationMetadata_Stage `protobuf:"varint,1,opt,name=stage,proto3,enum=google.devtools.remoteexecution.v1test.ExecuteOperationMetadata_Stage" json:"stage,omitempty"`
  1262. // The digest of the [Action][google.devtools.remoteexecution.v1test.Action]
  1263. // being executed.
  1264. ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
  1265. // If set, the client can use this name with
  1266. // [ByteStream.Read][google.bytestream.ByteStream.Read] to stream the
  1267. // standard output.
  1268. StdoutStreamName string `protobuf:"bytes,3,opt,name=stdout_stream_name,json=stdoutStreamName,proto3" json:"stdout_stream_name,omitempty"`
  1269. // If set, the client can use this name with
  1270. // [ByteStream.Read][google.bytestream.ByteStream.Read] to stream the
  1271. // standard error.
  1272. StderrStreamName string `protobuf:"bytes,4,opt,name=stderr_stream_name,json=stderrStreamName,proto3" json:"stderr_stream_name,omitempty"`
  1273. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1274. XXX_unrecognized []byte `json:"-"`
  1275. XXX_sizecache int32 `json:"-"`
  1276. }
  1277. func (m *ExecuteOperationMetadata) Reset() { *m = ExecuteOperationMetadata{} }
  1278. func (m *ExecuteOperationMetadata) String() string { return proto.CompactTextString(m) }
  1279. func (*ExecuteOperationMetadata) ProtoMessage() {}
  1280. func (*ExecuteOperationMetadata) Descriptor() ([]byte, []int) {
  1281. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{14}
  1282. }
  1283. func (m *ExecuteOperationMetadata) XXX_Unmarshal(b []byte) error {
  1284. return xxx_messageInfo_ExecuteOperationMetadata.Unmarshal(m, b)
  1285. }
  1286. func (m *ExecuteOperationMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1287. return xxx_messageInfo_ExecuteOperationMetadata.Marshal(b, m, deterministic)
  1288. }
  1289. func (dst *ExecuteOperationMetadata) XXX_Merge(src proto.Message) {
  1290. xxx_messageInfo_ExecuteOperationMetadata.Merge(dst, src)
  1291. }
  1292. func (m *ExecuteOperationMetadata) XXX_Size() int {
  1293. return xxx_messageInfo_ExecuteOperationMetadata.Size(m)
  1294. }
  1295. func (m *ExecuteOperationMetadata) XXX_DiscardUnknown() {
  1296. xxx_messageInfo_ExecuteOperationMetadata.DiscardUnknown(m)
  1297. }
  1298. var xxx_messageInfo_ExecuteOperationMetadata proto.InternalMessageInfo
  1299. func (m *ExecuteOperationMetadata) GetStage() ExecuteOperationMetadata_Stage {
  1300. if m != nil {
  1301. return m.Stage
  1302. }
  1303. return ExecuteOperationMetadata_UNKNOWN
  1304. }
  1305. func (m *ExecuteOperationMetadata) GetActionDigest() *Digest {
  1306. if m != nil {
  1307. return m.ActionDigest
  1308. }
  1309. return nil
  1310. }
  1311. func (m *ExecuteOperationMetadata) GetStdoutStreamName() string {
  1312. if m != nil {
  1313. return m.StdoutStreamName
  1314. }
  1315. return ""
  1316. }
  1317. func (m *ExecuteOperationMetadata) GetStderrStreamName() string {
  1318. if m != nil {
  1319. return m.StderrStreamName
  1320. }
  1321. return ""
  1322. }
  1323. // A request message for
  1324. // [ActionCache.GetActionResult][google.devtools.remoteexecution.v1test.ActionCache.GetActionResult].
  1325. type GetActionResultRequest struct {
  1326. // The instance of the execution system to operate against. A server may
  1327. // support multiple instances of the execution system (with their own workers,
  1328. // storage, caches, etc.). The server MAY require use of this field to select
  1329. // between them in an implementation-defined fashion, otherwise it can be
  1330. // omitted.
  1331. InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
  1332. // The digest of the [Action][google.devtools.remoteexecution.v1test.Action]
  1333. // whose result is requested.
  1334. ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
  1335. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1336. XXX_unrecognized []byte `json:"-"`
  1337. XXX_sizecache int32 `json:"-"`
  1338. }
  1339. func (m *GetActionResultRequest) Reset() { *m = GetActionResultRequest{} }
  1340. func (m *GetActionResultRequest) String() string { return proto.CompactTextString(m) }
  1341. func (*GetActionResultRequest) ProtoMessage() {}
  1342. func (*GetActionResultRequest) Descriptor() ([]byte, []int) {
  1343. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{15}
  1344. }
  1345. func (m *GetActionResultRequest) XXX_Unmarshal(b []byte) error {
  1346. return xxx_messageInfo_GetActionResultRequest.Unmarshal(m, b)
  1347. }
  1348. func (m *GetActionResultRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1349. return xxx_messageInfo_GetActionResultRequest.Marshal(b, m, deterministic)
  1350. }
  1351. func (dst *GetActionResultRequest) XXX_Merge(src proto.Message) {
  1352. xxx_messageInfo_GetActionResultRequest.Merge(dst, src)
  1353. }
  1354. func (m *GetActionResultRequest) XXX_Size() int {
  1355. return xxx_messageInfo_GetActionResultRequest.Size(m)
  1356. }
  1357. func (m *GetActionResultRequest) XXX_DiscardUnknown() {
  1358. xxx_messageInfo_GetActionResultRequest.DiscardUnknown(m)
  1359. }
  1360. var xxx_messageInfo_GetActionResultRequest proto.InternalMessageInfo
  1361. func (m *GetActionResultRequest) GetInstanceName() string {
  1362. if m != nil {
  1363. return m.InstanceName
  1364. }
  1365. return ""
  1366. }
  1367. func (m *GetActionResultRequest) GetActionDigest() *Digest {
  1368. if m != nil {
  1369. return m.ActionDigest
  1370. }
  1371. return nil
  1372. }
  1373. // A request message for
  1374. // [ActionCache.UpdateActionResult][google.devtools.remoteexecution.v1test.ActionCache.UpdateActionResult].
  1375. type UpdateActionResultRequest struct {
  1376. // The instance of the execution system to operate against. A server may
  1377. // support multiple instances of the execution system (with their own workers,
  1378. // storage, caches, etc.). The server MAY require use of this field to select
  1379. // between them in an implementation-defined fashion, otherwise it can be
  1380. // omitted.
  1381. InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
  1382. // The digest of the [Action][google.devtools.remoteexecution.v1test.Action]
  1383. // whose result is being uploaded.
  1384. ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
  1385. // The [ActionResult][google.devtools.remoteexecution.v1test.ActionResult]
  1386. // to store in the cache.
  1387. ActionResult *ActionResult `protobuf:"bytes,3,opt,name=action_result,json=actionResult,proto3" json:"action_result,omitempty"`
  1388. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1389. XXX_unrecognized []byte `json:"-"`
  1390. XXX_sizecache int32 `json:"-"`
  1391. }
  1392. func (m *UpdateActionResultRequest) Reset() { *m = UpdateActionResultRequest{} }
  1393. func (m *UpdateActionResultRequest) String() string { return proto.CompactTextString(m) }
  1394. func (*UpdateActionResultRequest) ProtoMessage() {}
  1395. func (*UpdateActionResultRequest) Descriptor() ([]byte, []int) {
  1396. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{16}
  1397. }
  1398. func (m *UpdateActionResultRequest) XXX_Unmarshal(b []byte) error {
  1399. return xxx_messageInfo_UpdateActionResultRequest.Unmarshal(m, b)
  1400. }
  1401. func (m *UpdateActionResultRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1402. return xxx_messageInfo_UpdateActionResultRequest.Marshal(b, m, deterministic)
  1403. }
  1404. func (dst *UpdateActionResultRequest) XXX_Merge(src proto.Message) {
  1405. xxx_messageInfo_UpdateActionResultRequest.Merge(dst, src)
  1406. }
  1407. func (m *UpdateActionResultRequest) XXX_Size() int {
  1408. return xxx_messageInfo_UpdateActionResultRequest.Size(m)
  1409. }
  1410. func (m *UpdateActionResultRequest) XXX_DiscardUnknown() {
  1411. xxx_messageInfo_UpdateActionResultRequest.DiscardUnknown(m)
  1412. }
  1413. var xxx_messageInfo_UpdateActionResultRequest proto.InternalMessageInfo
  1414. func (m *UpdateActionResultRequest) GetInstanceName() string {
  1415. if m != nil {
  1416. return m.InstanceName
  1417. }
  1418. return ""
  1419. }
  1420. func (m *UpdateActionResultRequest) GetActionDigest() *Digest {
  1421. if m != nil {
  1422. return m.ActionDigest
  1423. }
  1424. return nil
  1425. }
  1426. func (m *UpdateActionResultRequest) GetActionResult() *ActionResult {
  1427. if m != nil {
  1428. return m.ActionResult
  1429. }
  1430. return nil
  1431. }
  1432. // A request message for
  1433. // [ContentAddressableStorage.FindMissingBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.FindMissingBlobs].
  1434. type FindMissingBlobsRequest struct {
  1435. // The instance of the execution system to operate against. A server may
  1436. // support multiple instances of the execution system (with their own workers,
  1437. // storage, caches, etc.). The server MAY require use of this field to select
  1438. // between them in an implementation-defined fashion, otherwise it can be
  1439. // omitted.
  1440. InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
  1441. // A list of the blobs to check.
  1442. BlobDigests []*Digest `protobuf:"bytes,2,rep,name=blob_digests,json=blobDigests,proto3" json:"blob_digests,omitempty"`
  1443. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1444. XXX_unrecognized []byte `json:"-"`
  1445. XXX_sizecache int32 `json:"-"`
  1446. }
  1447. func (m *FindMissingBlobsRequest) Reset() { *m = FindMissingBlobsRequest{} }
  1448. func (m *FindMissingBlobsRequest) String() string { return proto.CompactTextString(m) }
  1449. func (*FindMissingBlobsRequest) ProtoMessage() {}
  1450. func (*FindMissingBlobsRequest) Descriptor() ([]byte, []int) {
  1451. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{17}
  1452. }
  1453. func (m *FindMissingBlobsRequest) XXX_Unmarshal(b []byte) error {
  1454. return xxx_messageInfo_FindMissingBlobsRequest.Unmarshal(m, b)
  1455. }
  1456. func (m *FindMissingBlobsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1457. return xxx_messageInfo_FindMissingBlobsRequest.Marshal(b, m, deterministic)
  1458. }
  1459. func (dst *FindMissingBlobsRequest) XXX_Merge(src proto.Message) {
  1460. xxx_messageInfo_FindMissingBlobsRequest.Merge(dst, src)
  1461. }
  1462. func (m *FindMissingBlobsRequest) XXX_Size() int {
  1463. return xxx_messageInfo_FindMissingBlobsRequest.Size(m)
  1464. }
  1465. func (m *FindMissingBlobsRequest) XXX_DiscardUnknown() {
  1466. xxx_messageInfo_FindMissingBlobsRequest.DiscardUnknown(m)
  1467. }
  1468. var xxx_messageInfo_FindMissingBlobsRequest proto.InternalMessageInfo
  1469. func (m *FindMissingBlobsRequest) GetInstanceName() string {
  1470. if m != nil {
  1471. return m.InstanceName
  1472. }
  1473. return ""
  1474. }
  1475. func (m *FindMissingBlobsRequest) GetBlobDigests() []*Digest {
  1476. if m != nil {
  1477. return m.BlobDigests
  1478. }
  1479. return nil
  1480. }
  1481. // A response message for
  1482. // [ContentAddressableStorage.FindMissingBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.FindMissingBlobs].
  1483. type FindMissingBlobsResponse struct {
  1484. // A list of the blobs requested *not* present in the storage.
  1485. MissingBlobDigests []*Digest `protobuf:"bytes,2,rep,name=missing_blob_digests,json=missingBlobDigests,proto3" json:"missing_blob_digests,omitempty"`
  1486. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1487. XXX_unrecognized []byte `json:"-"`
  1488. XXX_sizecache int32 `json:"-"`
  1489. }
  1490. func (m *FindMissingBlobsResponse) Reset() { *m = FindMissingBlobsResponse{} }
  1491. func (m *FindMissingBlobsResponse) String() string { return proto.CompactTextString(m) }
  1492. func (*FindMissingBlobsResponse) ProtoMessage() {}
  1493. func (*FindMissingBlobsResponse) Descriptor() ([]byte, []int) {
  1494. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{18}
  1495. }
  1496. func (m *FindMissingBlobsResponse) XXX_Unmarshal(b []byte) error {
  1497. return xxx_messageInfo_FindMissingBlobsResponse.Unmarshal(m, b)
  1498. }
  1499. func (m *FindMissingBlobsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1500. return xxx_messageInfo_FindMissingBlobsResponse.Marshal(b, m, deterministic)
  1501. }
  1502. func (dst *FindMissingBlobsResponse) XXX_Merge(src proto.Message) {
  1503. xxx_messageInfo_FindMissingBlobsResponse.Merge(dst, src)
  1504. }
  1505. func (m *FindMissingBlobsResponse) XXX_Size() int {
  1506. return xxx_messageInfo_FindMissingBlobsResponse.Size(m)
  1507. }
  1508. func (m *FindMissingBlobsResponse) XXX_DiscardUnknown() {
  1509. xxx_messageInfo_FindMissingBlobsResponse.DiscardUnknown(m)
  1510. }
  1511. var xxx_messageInfo_FindMissingBlobsResponse proto.InternalMessageInfo
  1512. func (m *FindMissingBlobsResponse) GetMissingBlobDigests() []*Digest {
  1513. if m != nil {
  1514. return m.MissingBlobDigests
  1515. }
  1516. return nil
  1517. }
  1518. // A single request message for
  1519. // [ContentAddressableStorage.BatchUpdateBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.BatchUpdateBlobs].
  1520. type UpdateBlobRequest struct {
  1521. // The digest of the blob. This MUST be the digest of `data`.
  1522. ContentDigest *Digest `protobuf:"bytes,1,opt,name=content_digest,json=contentDigest,proto3" json:"content_digest,omitempty"`
  1523. // The raw binary data.
  1524. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  1525. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1526. XXX_unrecognized []byte `json:"-"`
  1527. XXX_sizecache int32 `json:"-"`
  1528. }
  1529. func (m *UpdateBlobRequest) Reset() { *m = UpdateBlobRequest{} }
  1530. func (m *UpdateBlobRequest) String() string { return proto.CompactTextString(m) }
  1531. func (*UpdateBlobRequest) ProtoMessage() {}
  1532. func (*UpdateBlobRequest) Descriptor() ([]byte, []int) {
  1533. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{19}
  1534. }
  1535. func (m *UpdateBlobRequest) XXX_Unmarshal(b []byte) error {
  1536. return xxx_messageInfo_UpdateBlobRequest.Unmarshal(m, b)
  1537. }
  1538. func (m *UpdateBlobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1539. return xxx_messageInfo_UpdateBlobRequest.Marshal(b, m, deterministic)
  1540. }
  1541. func (dst *UpdateBlobRequest) XXX_Merge(src proto.Message) {
  1542. xxx_messageInfo_UpdateBlobRequest.Merge(dst, src)
  1543. }
  1544. func (m *UpdateBlobRequest) XXX_Size() int {
  1545. return xxx_messageInfo_UpdateBlobRequest.Size(m)
  1546. }
  1547. func (m *UpdateBlobRequest) XXX_DiscardUnknown() {
  1548. xxx_messageInfo_UpdateBlobRequest.DiscardUnknown(m)
  1549. }
  1550. var xxx_messageInfo_UpdateBlobRequest proto.InternalMessageInfo
  1551. func (m *UpdateBlobRequest) GetContentDigest() *Digest {
  1552. if m != nil {
  1553. return m.ContentDigest
  1554. }
  1555. return nil
  1556. }
  1557. func (m *UpdateBlobRequest) GetData() []byte {
  1558. if m != nil {
  1559. return m.Data
  1560. }
  1561. return nil
  1562. }
  1563. // A request message for
  1564. // [ContentAddressableStorage.BatchUpdateBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.BatchUpdateBlobs].
  1565. type BatchUpdateBlobsRequest struct {
  1566. // The instance of the execution system to operate against. A server may
  1567. // support multiple instances of the execution system (with their own workers,
  1568. // storage, caches, etc.). The server MAY require use of this field to select
  1569. // between them in an implementation-defined fashion, otherwise it can be
  1570. // omitted.
  1571. InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
  1572. // The individual upload requests.
  1573. Requests []*UpdateBlobRequest `protobuf:"bytes,2,rep,name=requests,proto3" json:"requests,omitempty"`
  1574. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1575. XXX_unrecognized []byte `json:"-"`
  1576. XXX_sizecache int32 `json:"-"`
  1577. }
  1578. func (m *BatchUpdateBlobsRequest) Reset() { *m = BatchUpdateBlobsRequest{} }
  1579. func (m *BatchUpdateBlobsRequest) String() string { return proto.CompactTextString(m) }
  1580. func (*BatchUpdateBlobsRequest) ProtoMessage() {}
  1581. func (*BatchUpdateBlobsRequest) Descriptor() ([]byte, []int) {
  1582. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{20}
  1583. }
  1584. func (m *BatchUpdateBlobsRequest) XXX_Unmarshal(b []byte) error {
  1585. return xxx_messageInfo_BatchUpdateBlobsRequest.Unmarshal(m, b)
  1586. }
  1587. func (m *BatchUpdateBlobsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1588. return xxx_messageInfo_BatchUpdateBlobsRequest.Marshal(b, m, deterministic)
  1589. }
  1590. func (dst *BatchUpdateBlobsRequest) XXX_Merge(src proto.Message) {
  1591. xxx_messageInfo_BatchUpdateBlobsRequest.Merge(dst, src)
  1592. }
  1593. func (m *BatchUpdateBlobsRequest) XXX_Size() int {
  1594. return xxx_messageInfo_BatchUpdateBlobsRequest.Size(m)
  1595. }
  1596. func (m *BatchUpdateBlobsRequest) XXX_DiscardUnknown() {
  1597. xxx_messageInfo_BatchUpdateBlobsRequest.DiscardUnknown(m)
  1598. }
  1599. var xxx_messageInfo_BatchUpdateBlobsRequest proto.InternalMessageInfo
  1600. func (m *BatchUpdateBlobsRequest) GetInstanceName() string {
  1601. if m != nil {
  1602. return m.InstanceName
  1603. }
  1604. return ""
  1605. }
  1606. func (m *BatchUpdateBlobsRequest) GetRequests() []*UpdateBlobRequest {
  1607. if m != nil {
  1608. return m.Requests
  1609. }
  1610. return nil
  1611. }
  1612. // A response message for
  1613. // [ContentAddressableStorage.BatchUpdateBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.BatchUpdateBlobs].
  1614. type BatchUpdateBlobsResponse struct {
  1615. // The responses to the requests.
  1616. Responses []*BatchUpdateBlobsResponse_Response `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
  1617. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1618. XXX_unrecognized []byte `json:"-"`
  1619. XXX_sizecache int32 `json:"-"`
  1620. }
  1621. func (m *BatchUpdateBlobsResponse) Reset() { *m = BatchUpdateBlobsResponse{} }
  1622. func (m *BatchUpdateBlobsResponse) String() string { return proto.CompactTextString(m) }
  1623. func (*BatchUpdateBlobsResponse) ProtoMessage() {}
  1624. func (*BatchUpdateBlobsResponse) Descriptor() ([]byte, []int) {
  1625. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{21}
  1626. }
  1627. func (m *BatchUpdateBlobsResponse) XXX_Unmarshal(b []byte) error {
  1628. return xxx_messageInfo_BatchUpdateBlobsResponse.Unmarshal(m, b)
  1629. }
  1630. func (m *BatchUpdateBlobsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1631. return xxx_messageInfo_BatchUpdateBlobsResponse.Marshal(b, m, deterministic)
  1632. }
  1633. func (dst *BatchUpdateBlobsResponse) XXX_Merge(src proto.Message) {
  1634. xxx_messageInfo_BatchUpdateBlobsResponse.Merge(dst, src)
  1635. }
  1636. func (m *BatchUpdateBlobsResponse) XXX_Size() int {
  1637. return xxx_messageInfo_BatchUpdateBlobsResponse.Size(m)
  1638. }
  1639. func (m *BatchUpdateBlobsResponse) XXX_DiscardUnknown() {
  1640. xxx_messageInfo_BatchUpdateBlobsResponse.DiscardUnknown(m)
  1641. }
  1642. var xxx_messageInfo_BatchUpdateBlobsResponse proto.InternalMessageInfo
  1643. func (m *BatchUpdateBlobsResponse) GetResponses() []*BatchUpdateBlobsResponse_Response {
  1644. if m != nil {
  1645. return m.Responses
  1646. }
  1647. return nil
  1648. }
  1649. // A response corresponding to a single blob that the client tried to upload.
  1650. type BatchUpdateBlobsResponse_Response struct {
  1651. // The digest to which this response corresponds.
  1652. BlobDigest *Digest `protobuf:"bytes,1,opt,name=blob_digest,json=blobDigest,proto3" json:"blob_digest,omitempty"`
  1653. // The result of attempting to upload that blob.
  1654. Status *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
  1655. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1656. XXX_unrecognized []byte `json:"-"`
  1657. XXX_sizecache int32 `json:"-"`
  1658. }
  1659. func (m *BatchUpdateBlobsResponse_Response) Reset() { *m = BatchUpdateBlobsResponse_Response{} }
  1660. func (m *BatchUpdateBlobsResponse_Response) String() string { return proto.CompactTextString(m) }
  1661. func (*BatchUpdateBlobsResponse_Response) ProtoMessage() {}
  1662. func (*BatchUpdateBlobsResponse_Response) Descriptor() ([]byte, []int) {
  1663. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{21, 0}
  1664. }
  1665. func (m *BatchUpdateBlobsResponse_Response) XXX_Unmarshal(b []byte) error {
  1666. return xxx_messageInfo_BatchUpdateBlobsResponse_Response.Unmarshal(m, b)
  1667. }
  1668. func (m *BatchUpdateBlobsResponse_Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1669. return xxx_messageInfo_BatchUpdateBlobsResponse_Response.Marshal(b, m, deterministic)
  1670. }
  1671. func (dst *BatchUpdateBlobsResponse_Response) XXX_Merge(src proto.Message) {
  1672. xxx_messageInfo_BatchUpdateBlobsResponse_Response.Merge(dst, src)
  1673. }
  1674. func (m *BatchUpdateBlobsResponse_Response) XXX_Size() int {
  1675. return xxx_messageInfo_BatchUpdateBlobsResponse_Response.Size(m)
  1676. }
  1677. func (m *BatchUpdateBlobsResponse_Response) XXX_DiscardUnknown() {
  1678. xxx_messageInfo_BatchUpdateBlobsResponse_Response.DiscardUnknown(m)
  1679. }
  1680. var xxx_messageInfo_BatchUpdateBlobsResponse_Response proto.InternalMessageInfo
  1681. func (m *BatchUpdateBlobsResponse_Response) GetBlobDigest() *Digest {
  1682. if m != nil {
  1683. return m.BlobDigest
  1684. }
  1685. return nil
  1686. }
  1687. func (m *BatchUpdateBlobsResponse_Response) GetStatus() *status.Status {
  1688. if m != nil {
  1689. return m.Status
  1690. }
  1691. return nil
  1692. }
  1693. // A request message for
  1694. // [ContentAddressableStorage.GetTree][google.devtools.remoteexecution.v1test.ContentAddressableStorage.GetTree].
  1695. type GetTreeRequest struct {
  1696. // The instance of the execution system to operate against. A server may
  1697. // support multiple instances of the execution system (with their own workers,
  1698. // storage, caches, etc.). The server MAY require use of this field to select
  1699. // between them in an implementation-defined fashion, otherwise it can be
  1700. // omitted.
  1701. InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
  1702. // The digest of the root, which must be an encoded
  1703. // [Directory][google.devtools.remoteexecution.v1test.Directory] message
  1704. // stored in the
  1705. // [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
  1706. RootDigest *Digest `protobuf:"bytes,2,opt,name=root_digest,json=rootDigest,proto3" json:"root_digest,omitempty"`
  1707. // A maximum page size to request. If present, the server will request no more
  1708. // than this many items. Regardless of whether a page size is specified, the
  1709. // server may place its own limit on the number of items to be returned and
  1710. // require the client to retrieve more items using a subsequent request.
  1711. PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
  1712. // A page token, which must be a value received in a previous
  1713. // [GetTreeResponse][google.devtools.remoteexecution.v1test.GetTreeResponse].
  1714. // If present, the server will use it to return the following page of results.
  1715. PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
  1716. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1717. XXX_unrecognized []byte `json:"-"`
  1718. XXX_sizecache int32 `json:"-"`
  1719. }
  1720. func (m *GetTreeRequest) Reset() { *m = GetTreeRequest{} }
  1721. func (m *GetTreeRequest) String() string { return proto.CompactTextString(m) }
  1722. func (*GetTreeRequest) ProtoMessage() {}
  1723. func (*GetTreeRequest) Descriptor() ([]byte, []int) {
  1724. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{22}
  1725. }
  1726. func (m *GetTreeRequest) XXX_Unmarshal(b []byte) error {
  1727. return xxx_messageInfo_GetTreeRequest.Unmarshal(m, b)
  1728. }
  1729. func (m *GetTreeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1730. return xxx_messageInfo_GetTreeRequest.Marshal(b, m, deterministic)
  1731. }
  1732. func (dst *GetTreeRequest) XXX_Merge(src proto.Message) {
  1733. xxx_messageInfo_GetTreeRequest.Merge(dst, src)
  1734. }
  1735. func (m *GetTreeRequest) XXX_Size() int {
  1736. return xxx_messageInfo_GetTreeRequest.Size(m)
  1737. }
  1738. func (m *GetTreeRequest) XXX_DiscardUnknown() {
  1739. xxx_messageInfo_GetTreeRequest.DiscardUnknown(m)
  1740. }
  1741. var xxx_messageInfo_GetTreeRequest proto.InternalMessageInfo
  1742. func (m *GetTreeRequest) GetInstanceName() string {
  1743. if m != nil {
  1744. return m.InstanceName
  1745. }
  1746. return ""
  1747. }
  1748. func (m *GetTreeRequest) GetRootDigest() *Digest {
  1749. if m != nil {
  1750. return m.RootDigest
  1751. }
  1752. return nil
  1753. }
  1754. func (m *GetTreeRequest) GetPageSize() int32 {
  1755. if m != nil {
  1756. return m.PageSize
  1757. }
  1758. return 0
  1759. }
  1760. func (m *GetTreeRequest) GetPageToken() string {
  1761. if m != nil {
  1762. return m.PageToken
  1763. }
  1764. return ""
  1765. }
  1766. // A response message for
  1767. // [ContentAddressableStorage.GetTree][google.devtools.remoteexecution.v1test.ContentAddressableStorage.GetTree].
  1768. type GetTreeResponse struct {
  1769. // The directories descended from the requested root.
  1770. Directories []*Directory `protobuf:"bytes,1,rep,name=directories,proto3" json:"directories,omitempty"`
  1771. // If present, signifies that there are more results which the client can
  1772. // retrieve by passing this as the page_token in a subsequent
  1773. // [request][google.devtools.remoteexecution.v1test.GetTreeRequest].
  1774. // If empty, signifies that this is the last page of results.
  1775. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
  1776. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1777. XXX_unrecognized []byte `json:"-"`
  1778. XXX_sizecache int32 `json:"-"`
  1779. }
  1780. func (m *GetTreeResponse) Reset() { *m = GetTreeResponse{} }
  1781. func (m *GetTreeResponse) String() string { return proto.CompactTextString(m) }
  1782. func (*GetTreeResponse) ProtoMessage() {}
  1783. func (*GetTreeResponse) Descriptor() ([]byte, []int) {
  1784. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{23}
  1785. }
  1786. func (m *GetTreeResponse) XXX_Unmarshal(b []byte) error {
  1787. return xxx_messageInfo_GetTreeResponse.Unmarshal(m, b)
  1788. }
  1789. func (m *GetTreeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1790. return xxx_messageInfo_GetTreeResponse.Marshal(b, m, deterministic)
  1791. }
  1792. func (dst *GetTreeResponse) XXX_Merge(src proto.Message) {
  1793. xxx_messageInfo_GetTreeResponse.Merge(dst, src)
  1794. }
  1795. func (m *GetTreeResponse) XXX_Size() int {
  1796. return xxx_messageInfo_GetTreeResponse.Size(m)
  1797. }
  1798. func (m *GetTreeResponse) XXX_DiscardUnknown() {
  1799. xxx_messageInfo_GetTreeResponse.DiscardUnknown(m)
  1800. }
  1801. var xxx_messageInfo_GetTreeResponse proto.InternalMessageInfo
  1802. func (m *GetTreeResponse) GetDirectories() []*Directory {
  1803. if m != nil {
  1804. return m.Directories
  1805. }
  1806. return nil
  1807. }
  1808. func (m *GetTreeResponse) GetNextPageToken() string {
  1809. if m != nil {
  1810. return m.NextPageToken
  1811. }
  1812. return ""
  1813. }
  1814. // Details for the tool used to call the API.
  1815. type ToolDetails struct {
  1816. // Name of the tool, e.g. bazel.
  1817. ToolName string `protobuf:"bytes,1,opt,name=tool_name,json=toolName,proto3" json:"tool_name,omitempty"`
  1818. // Version of the tool used for the request, e.g. 5.0.3.
  1819. ToolVersion string `protobuf:"bytes,2,opt,name=tool_version,json=toolVersion,proto3" json:"tool_version,omitempty"`
  1820. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1821. XXX_unrecognized []byte `json:"-"`
  1822. XXX_sizecache int32 `json:"-"`
  1823. }
  1824. func (m *ToolDetails) Reset() { *m = ToolDetails{} }
  1825. func (m *ToolDetails) String() string { return proto.CompactTextString(m) }
  1826. func (*ToolDetails) ProtoMessage() {}
  1827. func (*ToolDetails) Descriptor() ([]byte, []int) {
  1828. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{24}
  1829. }
  1830. func (m *ToolDetails) XXX_Unmarshal(b []byte) error {
  1831. return xxx_messageInfo_ToolDetails.Unmarshal(m, b)
  1832. }
  1833. func (m *ToolDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1834. return xxx_messageInfo_ToolDetails.Marshal(b, m, deterministic)
  1835. }
  1836. func (dst *ToolDetails) XXX_Merge(src proto.Message) {
  1837. xxx_messageInfo_ToolDetails.Merge(dst, src)
  1838. }
  1839. func (m *ToolDetails) XXX_Size() int {
  1840. return xxx_messageInfo_ToolDetails.Size(m)
  1841. }
  1842. func (m *ToolDetails) XXX_DiscardUnknown() {
  1843. xxx_messageInfo_ToolDetails.DiscardUnknown(m)
  1844. }
  1845. var xxx_messageInfo_ToolDetails proto.InternalMessageInfo
  1846. func (m *ToolDetails) GetToolName() string {
  1847. if m != nil {
  1848. return m.ToolName
  1849. }
  1850. return ""
  1851. }
  1852. func (m *ToolDetails) GetToolVersion() string {
  1853. if m != nil {
  1854. return m.ToolVersion
  1855. }
  1856. return ""
  1857. }
  1858. // An optional Metadata to attach to any RPC request to tell the server about an
  1859. // external context of the request. The server may use this for logging or other
  1860. // purposes. To use it, the client attaches the header to the call using the
  1861. // canonical proto serialization:
  1862. // name: google.devtools.remoteexecution.v1test.requestmetadata-bin
  1863. // contents: the base64 encoded binary RequestMetadata message.
  1864. type RequestMetadata struct {
  1865. // The details for the tool invoking the requests.
  1866. ToolDetails *ToolDetails `protobuf:"bytes,1,opt,name=tool_details,json=toolDetails,proto3" json:"tool_details,omitempty"`
  1867. // An identifier that ties multiple requests to the same action.
  1868. // For example, multiple requests to the CAS, Action Cache, and Execution
  1869. // API are used in order to compile foo.cc.
  1870. ActionId string `protobuf:"bytes,2,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"`
  1871. // An identifier that ties multiple actions together to a final result.
  1872. // For example, multiple actions are required to build and run foo_test.
  1873. ToolInvocationId string `protobuf:"bytes,3,opt,name=tool_invocation_id,json=toolInvocationId,proto3" json:"tool_invocation_id,omitempty"`
  1874. // An identifier to tie multiple tool invocations together. For example,
  1875. // runs of foo_test, bar_test and baz_test on a post-submit of a given patch.
  1876. CorrelatedInvocationsId string `protobuf:"bytes,4,opt,name=correlated_invocations_id,json=correlatedInvocationsId,proto3" json:"correlated_invocations_id,omitempty"`
  1877. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1878. XXX_unrecognized []byte `json:"-"`
  1879. XXX_sizecache int32 `json:"-"`
  1880. }
  1881. func (m *RequestMetadata) Reset() { *m = RequestMetadata{} }
  1882. func (m *RequestMetadata) String() string { return proto.CompactTextString(m) }
  1883. func (*RequestMetadata) ProtoMessage() {}
  1884. func (*RequestMetadata) Descriptor() ([]byte, []int) {
  1885. return fileDescriptor_remote_execution_f2e80cfcae585c72, []int{25}
  1886. }
  1887. func (m *RequestMetadata) XXX_Unmarshal(b []byte) error {
  1888. return xxx_messageInfo_RequestMetadata.Unmarshal(m, b)
  1889. }
  1890. func (m *RequestMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1891. return xxx_messageInfo_RequestMetadata.Marshal(b, m, deterministic)
  1892. }
  1893. func (dst *RequestMetadata) XXX_Merge(src proto.Message) {
  1894. xxx_messageInfo_RequestMetadata.Merge(dst, src)
  1895. }
  1896. func (m *RequestMetadata) XXX_Size() int {
  1897. return xxx_messageInfo_RequestMetadata.Size(m)
  1898. }
  1899. func (m *RequestMetadata) XXX_DiscardUnknown() {
  1900. xxx_messageInfo_RequestMetadata.DiscardUnknown(m)
  1901. }
  1902. var xxx_messageInfo_RequestMetadata proto.InternalMessageInfo
  1903. func (m *RequestMetadata) GetToolDetails() *ToolDetails {
  1904. if m != nil {
  1905. return m.ToolDetails
  1906. }
  1907. return nil
  1908. }
  1909. func (m *RequestMetadata) GetActionId() string {
  1910. if m != nil {
  1911. return m.ActionId
  1912. }
  1913. return ""
  1914. }
  1915. func (m *RequestMetadata) GetToolInvocationId() string {
  1916. if m != nil {
  1917. return m.ToolInvocationId
  1918. }
  1919. return ""
  1920. }
  1921. func (m *RequestMetadata) GetCorrelatedInvocationsId() string {
  1922. if m != nil {
  1923. return m.CorrelatedInvocationsId
  1924. }
  1925. return ""
  1926. }
  1927. func init() {
  1928. proto.RegisterType((*Action)(nil), "google.devtools.remoteexecution.v1test.Action")
  1929. proto.RegisterType((*Command)(nil), "google.devtools.remoteexecution.v1test.Command")
  1930. proto.RegisterType((*Command_EnvironmentVariable)(nil), "google.devtools.remoteexecution.v1test.Command.EnvironmentVariable")
  1931. proto.RegisterType((*Platform)(nil), "google.devtools.remoteexecution.v1test.Platform")
  1932. proto.RegisterType((*Platform_Property)(nil), "google.devtools.remoteexecution.v1test.Platform.Property")
  1933. proto.RegisterType((*Directory)(nil), "google.devtools.remoteexecution.v1test.Directory")
  1934. proto.RegisterType((*FileNode)(nil), "google.devtools.remoteexecution.v1test.FileNode")
  1935. proto.RegisterType((*DirectoryNode)(nil), "google.devtools.remoteexecution.v1test.DirectoryNode")
  1936. proto.RegisterType((*Digest)(nil), "google.devtools.remoteexecution.v1test.Digest")
  1937. proto.RegisterType((*ActionResult)(nil), "google.devtools.remoteexecution.v1test.ActionResult")
  1938. proto.RegisterType((*OutputFile)(nil), "google.devtools.remoteexecution.v1test.OutputFile")
  1939. proto.RegisterType((*Tree)(nil), "google.devtools.remoteexecution.v1test.Tree")
  1940. proto.RegisterType((*OutputDirectory)(nil), "google.devtools.remoteexecution.v1test.OutputDirectory")
  1941. proto.RegisterType((*ExecuteRequest)(nil), "google.devtools.remoteexecution.v1test.ExecuteRequest")
  1942. proto.RegisterType((*LogFile)(nil), "google.devtools.remoteexecution.v1test.LogFile")
  1943. proto.RegisterType((*ExecuteResponse)(nil), "google.devtools.remoteexecution.v1test.ExecuteResponse")
  1944. proto.RegisterMapType((map[string]*LogFile)(nil), "google.devtools.remoteexecution.v1test.ExecuteResponse.ServerLogsEntry")
  1945. proto.RegisterType((*ExecuteOperationMetadata)(nil), "google.devtools.remoteexecution.v1test.ExecuteOperationMetadata")
  1946. proto.RegisterType((*GetActionResultRequest)(nil), "google.devtools.remoteexecution.v1test.GetActionResultRequest")
  1947. proto.RegisterType((*UpdateActionResultRequest)(nil), "google.devtools.remoteexecution.v1test.UpdateActionResultRequest")
  1948. proto.RegisterType((*FindMissingBlobsRequest)(nil), "google.devtools.remoteexecution.v1test.FindMissingBlobsRequest")
  1949. proto.RegisterType((*FindMissingBlobsResponse)(nil), "google.devtools.remoteexecution.v1test.FindMissingBlobsResponse")
  1950. proto.RegisterType((*UpdateBlobRequest)(nil), "google.devtools.remoteexecution.v1test.UpdateBlobRequest")
  1951. proto.RegisterType((*BatchUpdateBlobsRequest)(nil), "google.devtools.remoteexecution.v1test.BatchUpdateBlobsRequest")
  1952. proto.RegisterType((*BatchUpdateBlobsResponse)(nil), "google.devtools.remoteexecution.v1test.BatchUpdateBlobsResponse")
  1953. proto.RegisterType((*BatchUpdateBlobsResponse_Response)(nil), "google.devtools.remoteexecution.v1test.BatchUpdateBlobsResponse.Response")
  1954. proto.RegisterType((*GetTreeRequest)(nil), "google.devtools.remoteexecution.v1test.GetTreeRequest")
  1955. proto.RegisterType((*GetTreeResponse)(nil), "google.devtools.remoteexecution.v1test.GetTreeResponse")
  1956. proto.RegisterType((*ToolDetails)(nil), "google.devtools.remoteexecution.v1test.ToolDetails")
  1957. proto.RegisterType((*RequestMetadata)(nil), "google.devtools.remoteexecution.v1test.RequestMetadata")
  1958. proto.RegisterEnum("google.devtools.remoteexecution.v1test.ExecuteOperationMetadata_Stage", ExecuteOperationMetadata_Stage_name, ExecuteOperationMetadata_Stage_value)
  1959. }
  1960. // Reference imports to suppress errors if they are not otherwise used.
  1961. var _ context.Context
  1962. var _ grpc.ClientConn
  1963. // This is a compile-time assertion to ensure that this generated file
  1964. // is compatible with the grpc package it is being compiled against.
  1965. const _ = grpc.SupportPackageIsVersion4
  1966. // ExecutionClient is the client API for Execution service.
  1967. //
  1968. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  1969. type ExecutionClient interface {
  1970. // Execute an action remotely.
  1971. //
  1972. // In order to execute an action, the client must first upload all of the
  1973. // inputs, as well as the
  1974. // [Command][google.devtools.remoteexecution.v1test.Command] to run, into the
  1975. // [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
  1976. // It then calls `Execute` with an
  1977. // [Action][google.devtools.remoteexecution.v1test.Action] referring to them.
  1978. // The server will run the action and eventually return the result.
  1979. //
  1980. // The input `Action`'s fields MUST meet the various canonicalization
  1981. // requirements specified in the documentation for their types so that it has
  1982. // the same digest as other logically equivalent `Action`s. The server MAY
  1983. // enforce the requirements and return errors if a non-canonical input is
  1984. // received. It MAY also proceed without verifying some or all of the
  1985. // requirements, such as for performance reasons. If the server does not
  1986. // verify the requirement, then it will treat the `Action` as distinct from
  1987. // another logically equivalent action if they hash differently.
  1988. //
  1989. // Returns a [google.longrunning.Operation][google.longrunning.Operation]
  1990. // describing the resulting execution, with eventual `response`
  1991. // [ExecuteResponse][google.devtools.remoteexecution.v1test.ExecuteResponse].
  1992. // The `metadata` on the operation is of type
  1993. // [ExecuteOperationMetadata][google.devtools.remoteexecution.v1test.ExecuteOperationMetadata].
  1994. //
  1995. // To query the operation, you can use the
  1996. // [Operations API][google.longrunning.Operations.GetOperation]. If you wish
  1997. // to allow the server to stream operations updates, rather than requiring
  1998. // client polling, you can use the
  1999. // [Watcher API][google.watcher.v1.Watcher.Watch] with the Operation's `name`
  2000. // as the `target`.
  2001. //
  2002. // When using the Watcher API, the initial `data` will be the `Operation` at
  2003. // the time of the request. Updates will be provided periodically by the
  2004. // server until the `Operation` completes, at which point the response message
  2005. // will (assuming no error) be at `data.response`.
  2006. //
  2007. // The server NEED NOT implement other methods or functionality of the
  2008. // Operation and Watcher APIs.
  2009. //
  2010. // Errors discovered during creation of the `Operation` will be reported
  2011. // as gRPC Status errors, while errors that occurred while running the
  2012. // action will be reported in the `status` field of the `ExecuteResponse`. The
  2013. // server MUST NOT set the `error` field of the `Operation` proto.
  2014. // The possible errors include:
  2015. // * `INVALID_ARGUMENT`: One or more arguments are invalid.
  2016. // * `FAILED_PRECONDITION`: One or more errors occurred in setting up the
  2017. // action requested, such as a missing input or command or no worker being
  2018. // available. The client may be able to fix the errors and retry.
  2019. // * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run
  2020. // the action.
  2021. // * `UNAVAILABLE`: Due to a transient condition, such as all workers being
  2022. // occupied (and the server does not support a queue), the action could not
  2023. // be started. The client should retry.
  2024. // * `INTERNAL`: An internal error occurred in the execution engine or the
  2025. // worker.
  2026. // * `DEADLINE_EXCEEDED`: The execution timed out.
  2027. //
  2028. // In the case of a missing input or command, the server SHOULD additionally
  2029. // send a [PreconditionFailure][google.rpc.PreconditionFailure] error detail
  2030. // where, for each requested blob not present in the CAS, there is a
  2031. // `Violation` with a `type` of `MISSING` and a `subject` of
  2032. // `"blobs/{hash}/{size}"` indicating the digest of the missing blob.
  2033. Execute(ctx context.Context, in *ExecuteRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
  2034. }
  2035. type executionClient struct {
  2036. cc *grpc.ClientConn
  2037. }
  2038. func NewExecutionClient(cc *grpc.ClientConn) ExecutionClient {
  2039. return &executionClient{cc}
  2040. }
  2041. func (c *executionClient) Execute(ctx context.Context, in *ExecuteRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
  2042. out := new(longrunning.Operation)
  2043. err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.Execution/Execute", in, out, opts...)
  2044. if err != nil {
  2045. return nil, err
  2046. }
  2047. return out, nil
  2048. }
  2049. // ExecutionServer is the server API for Execution service.
  2050. type ExecutionServer interface {
  2051. // Execute an action remotely.
  2052. //
  2053. // In order to execute an action, the client must first upload all of the
  2054. // inputs, as well as the
  2055. // [Command][google.devtools.remoteexecution.v1test.Command] to run, into the
  2056. // [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
  2057. // It then calls `Execute` with an
  2058. // [Action][google.devtools.remoteexecution.v1test.Action] referring to them.
  2059. // The server will run the action and eventually return the result.
  2060. //
  2061. // The input `Action`'s fields MUST meet the various canonicalization
  2062. // requirements specified in the documentation for their types so that it has
  2063. // the same digest as other logically equivalent `Action`s. The server MAY
  2064. // enforce the requirements and return errors if a non-canonical input is
  2065. // received. It MAY also proceed without verifying some or all of the
  2066. // requirements, such as for performance reasons. If the server does not
  2067. // verify the requirement, then it will treat the `Action` as distinct from
  2068. // another logically equivalent action if they hash differently.
  2069. //
  2070. // Returns a [google.longrunning.Operation][google.longrunning.Operation]
  2071. // describing the resulting execution, with eventual `response`
  2072. // [ExecuteResponse][google.devtools.remoteexecution.v1test.ExecuteResponse].
  2073. // The `metadata` on the operation is of type
  2074. // [ExecuteOperationMetadata][google.devtools.remoteexecution.v1test.ExecuteOperationMetadata].
  2075. //
  2076. // To query the operation, you can use the
  2077. // [Operations API][google.longrunning.Operations.GetOperation]. If you wish
  2078. // to allow the server to stream operations updates, rather than requiring
  2079. // client polling, you can use the
  2080. // [Watcher API][google.watcher.v1.Watcher.Watch] with the Operation's `name`
  2081. // as the `target`.
  2082. //
  2083. // When using the Watcher API, the initial `data` will be the `Operation` at
  2084. // the time of the request. Updates will be provided periodically by the
  2085. // server until the `Operation` completes, at which point the response message
  2086. // will (assuming no error) be at `data.response`.
  2087. //
  2088. // The server NEED NOT implement other methods or functionality of the
  2089. // Operation and Watcher APIs.
  2090. //
  2091. // Errors discovered during creation of the `Operation` will be reported
  2092. // as gRPC Status errors, while errors that occurred while running the
  2093. // action will be reported in the `status` field of the `ExecuteResponse`. The
  2094. // server MUST NOT set the `error` field of the `Operation` proto.
  2095. // The possible errors include:
  2096. // * `INVALID_ARGUMENT`: One or more arguments are invalid.
  2097. // * `FAILED_PRECONDITION`: One or more errors occurred in setting up the
  2098. // action requested, such as a missing input or command or no worker being
  2099. // available. The client may be able to fix the errors and retry.
  2100. // * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run
  2101. // the action.
  2102. // * `UNAVAILABLE`: Due to a transient condition, such as all workers being
  2103. // occupied (and the server does not support a queue), the action could not
  2104. // be started. The client should retry.
  2105. // * `INTERNAL`: An internal error occurred in the execution engine or the
  2106. // worker.
  2107. // * `DEADLINE_EXCEEDED`: The execution timed out.
  2108. //
  2109. // In the case of a missing input or command, the server SHOULD additionally
  2110. // send a [PreconditionFailure][google.rpc.PreconditionFailure] error detail
  2111. // where, for each requested blob not present in the CAS, there is a
  2112. // `Violation` with a `type` of `MISSING` and a `subject` of
  2113. // `"blobs/{hash}/{size}"` indicating the digest of the missing blob.
  2114. Execute(context.Context, *ExecuteRequest) (*longrunning.Operation, error)
  2115. }
  2116. func RegisterExecutionServer(s *grpc.Server, srv ExecutionServer) {
  2117. s.RegisterService(&_Execution_serviceDesc, srv)
  2118. }
  2119. func _Execution_Execute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2120. in := new(ExecuteRequest)
  2121. if err := dec(in); err != nil {
  2122. return nil, err
  2123. }
  2124. if interceptor == nil {
  2125. return srv.(ExecutionServer).Execute(ctx, in)
  2126. }
  2127. info := &grpc.UnaryServerInfo{
  2128. Server: srv,
  2129. FullMethod: "/google.devtools.remoteexecution.v1test.Execution/Execute",
  2130. }
  2131. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2132. return srv.(ExecutionServer).Execute(ctx, req.(*ExecuteRequest))
  2133. }
  2134. return interceptor(ctx, in, info, handler)
  2135. }
  2136. var _Execution_serviceDesc = grpc.ServiceDesc{
  2137. ServiceName: "google.devtools.remoteexecution.v1test.Execution",
  2138. HandlerType: (*ExecutionServer)(nil),
  2139. Methods: []grpc.MethodDesc{
  2140. {
  2141. MethodName: "Execute",
  2142. Handler: _Execution_Execute_Handler,
  2143. },
  2144. },
  2145. Streams: []grpc.StreamDesc{},
  2146. Metadata: "google/devtools/remoteexecution/v1test/remote_execution.proto",
  2147. }
  2148. // ActionCacheClient is the client API for ActionCache service.
  2149. //
  2150. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  2151. type ActionCacheClient interface {
  2152. // Retrieve a cached execution result.
  2153. //
  2154. // Errors:
  2155. // * `NOT_FOUND`: The requested `ActionResult` is not in the cache.
  2156. GetActionResult(ctx context.Context, in *GetActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error)
  2157. // Upload a new execution result.
  2158. //
  2159. // This method is intended for servers which implement the distributed cache
  2160. // independently of the
  2161. // [Execution][google.devtools.remoteexecution.v1test.Execution] API. As a
  2162. // result, it is OPTIONAL for servers to implement.
  2163. //
  2164. // Errors:
  2165. // * `NOT_IMPLEMENTED`: This method is not supported by the server.
  2166. // * `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the
  2167. // entry to the cache.
  2168. UpdateActionResult(ctx context.Context, in *UpdateActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error)
  2169. }
  2170. type actionCacheClient struct {
  2171. cc *grpc.ClientConn
  2172. }
  2173. func NewActionCacheClient(cc *grpc.ClientConn) ActionCacheClient {
  2174. return &actionCacheClient{cc}
  2175. }
  2176. func (c *actionCacheClient) GetActionResult(ctx context.Context, in *GetActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error) {
  2177. out := new(ActionResult)
  2178. err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.ActionCache/GetActionResult", in, out, opts...)
  2179. if err != nil {
  2180. return nil, err
  2181. }
  2182. return out, nil
  2183. }
  2184. func (c *actionCacheClient) UpdateActionResult(ctx context.Context, in *UpdateActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error) {
  2185. out := new(ActionResult)
  2186. err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.ActionCache/UpdateActionResult", in, out, opts...)
  2187. if err != nil {
  2188. return nil, err
  2189. }
  2190. return out, nil
  2191. }
  2192. // ActionCacheServer is the server API for ActionCache service.
  2193. type ActionCacheServer interface {
  2194. // Retrieve a cached execution result.
  2195. //
  2196. // Errors:
  2197. // * `NOT_FOUND`: The requested `ActionResult` is not in the cache.
  2198. GetActionResult(context.Context, *GetActionResultRequest) (*ActionResult, error)
  2199. // Upload a new execution result.
  2200. //
  2201. // This method is intended for servers which implement the distributed cache
  2202. // independently of the
  2203. // [Execution][google.devtools.remoteexecution.v1test.Execution] API. As a
  2204. // result, it is OPTIONAL for servers to implement.
  2205. //
  2206. // Errors:
  2207. // * `NOT_IMPLEMENTED`: This method is not supported by the server.
  2208. // * `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the
  2209. // entry to the cache.
  2210. UpdateActionResult(context.Context, *UpdateActionResultRequest) (*ActionResult, error)
  2211. }
  2212. func RegisterActionCacheServer(s *grpc.Server, srv ActionCacheServer) {
  2213. s.RegisterService(&_ActionCache_serviceDesc, srv)
  2214. }
  2215. func _ActionCache_GetActionResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2216. in := new(GetActionResultRequest)
  2217. if err := dec(in); err != nil {
  2218. return nil, err
  2219. }
  2220. if interceptor == nil {
  2221. return srv.(ActionCacheServer).GetActionResult(ctx, in)
  2222. }
  2223. info := &grpc.UnaryServerInfo{
  2224. Server: srv,
  2225. FullMethod: "/google.devtools.remoteexecution.v1test.ActionCache/GetActionResult",
  2226. }
  2227. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2228. return srv.(ActionCacheServer).GetActionResult(ctx, req.(*GetActionResultRequest))
  2229. }
  2230. return interceptor(ctx, in, info, handler)
  2231. }
  2232. func _ActionCache_UpdateActionResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2233. in := new(UpdateActionResultRequest)
  2234. if err := dec(in); err != nil {
  2235. return nil, err
  2236. }
  2237. if interceptor == nil {
  2238. return srv.(ActionCacheServer).UpdateActionResult(ctx, in)
  2239. }
  2240. info := &grpc.UnaryServerInfo{
  2241. Server: srv,
  2242. FullMethod: "/google.devtools.remoteexecution.v1test.ActionCache/UpdateActionResult",
  2243. }
  2244. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2245. return srv.(ActionCacheServer).UpdateActionResult(ctx, req.(*UpdateActionResultRequest))
  2246. }
  2247. return interceptor(ctx, in, info, handler)
  2248. }
  2249. var _ActionCache_serviceDesc = grpc.ServiceDesc{
  2250. ServiceName: "google.devtools.remoteexecution.v1test.ActionCache",
  2251. HandlerType: (*ActionCacheServer)(nil),
  2252. Methods: []grpc.MethodDesc{
  2253. {
  2254. MethodName: "GetActionResult",
  2255. Handler: _ActionCache_GetActionResult_Handler,
  2256. },
  2257. {
  2258. MethodName: "UpdateActionResult",
  2259. Handler: _ActionCache_UpdateActionResult_Handler,
  2260. },
  2261. },
  2262. Streams: []grpc.StreamDesc{},
  2263. Metadata: "google/devtools/remoteexecution/v1test/remote_execution.proto",
  2264. }
  2265. // ContentAddressableStorageClient is the client API for ContentAddressableStorage service.
  2266. //
  2267. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  2268. type ContentAddressableStorageClient interface {
  2269. // Determine if blobs are present in the CAS.
  2270. //
  2271. // Clients can use this API before uploading blobs to determine which ones are
  2272. // already present in the CAS and do not need to be uploaded again.
  2273. //
  2274. // There are no method-specific errors.
  2275. FindMissingBlobs(ctx context.Context, in *FindMissingBlobsRequest, opts ...grpc.CallOption) (*FindMissingBlobsResponse, error)
  2276. // Upload many blobs at once.
  2277. //
  2278. // The client MUST NOT upload blobs with a combined total size of more than 10
  2279. // MiB using this API. Such requests should either be split into smaller
  2280. // chunks or uploaded using the
  2281. // [ByteStream API][google.bytestream.ByteStream], as appropriate.
  2282. //
  2283. // This request is equivalent to calling [UpdateBlob][] on each individual
  2284. // blob, in parallel. The requests may succeed or fail independently.
  2285. //
  2286. // Errors:
  2287. // * `INVALID_ARGUMENT`: The client attempted to upload more than 10 MiB of
  2288. // data.
  2289. //
  2290. // Individual requests may return the following errors, additionally:
  2291. // * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob.
  2292. // * `INVALID_ARGUMENT`: The
  2293. // [Digest][google.devtools.remoteexecution.v1test.Digest] does not match the
  2294. // provided data.
  2295. BatchUpdateBlobs(ctx context.Context, in *BatchUpdateBlobsRequest, opts ...grpc.CallOption) (*BatchUpdateBlobsResponse, error)
  2296. // Fetch the entire directory tree rooted at a node.
  2297. //
  2298. // This request must be targeted at a
  2299. // [Directory][google.devtools.remoteexecution.v1test.Directory] stored in the
  2300. // [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage]
  2301. // (CAS). The server will enumerate the `Directory` tree recursively and
  2302. // return every node descended from the root.
  2303. // The exact traversal order is unspecified and, unless retrieving subsequent
  2304. // pages from an earlier request, is not guaranteed to be stable across
  2305. // multiple invocations of `GetTree`.
  2306. //
  2307. // If part of the tree is missing from the CAS, the server will return the
  2308. // portion present and omit the rest.
  2309. //
  2310. // * `NOT_FOUND`: The requested tree root is not present in the CAS.
  2311. GetTree(ctx context.Context, in *GetTreeRequest, opts ...grpc.CallOption) (*GetTreeResponse, error)
  2312. }
  2313. type contentAddressableStorageClient struct {
  2314. cc *grpc.ClientConn
  2315. }
  2316. func NewContentAddressableStorageClient(cc *grpc.ClientConn) ContentAddressableStorageClient {
  2317. return &contentAddressableStorageClient{cc}
  2318. }
  2319. func (c *contentAddressableStorageClient) FindMissingBlobs(ctx context.Context, in *FindMissingBlobsRequest, opts ...grpc.CallOption) (*FindMissingBlobsResponse, error) {
  2320. out := new(FindMissingBlobsResponse)
  2321. err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/FindMissingBlobs", in, out, opts...)
  2322. if err != nil {
  2323. return nil, err
  2324. }
  2325. return out, nil
  2326. }
  2327. func (c *contentAddressableStorageClient) BatchUpdateBlobs(ctx context.Context, in *BatchUpdateBlobsRequest, opts ...grpc.CallOption) (*BatchUpdateBlobsResponse, error) {
  2328. out := new(BatchUpdateBlobsResponse)
  2329. err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/BatchUpdateBlobs", in, out, opts...)
  2330. if err != nil {
  2331. return nil, err
  2332. }
  2333. return out, nil
  2334. }
  2335. func (c *contentAddressableStorageClient) GetTree(ctx context.Context, in *GetTreeRequest, opts ...grpc.CallOption) (*GetTreeResponse, error) {
  2336. out := new(GetTreeResponse)
  2337. err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/GetTree", in, out, opts...)
  2338. if err != nil {
  2339. return nil, err
  2340. }
  2341. return out, nil
  2342. }
  2343. // ContentAddressableStorageServer is the server API for ContentAddressableStorage service.
  2344. type ContentAddressableStorageServer interface {
  2345. // Determine if blobs are present in the CAS.
  2346. //
  2347. // Clients can use this API before uploading blobs to determine which ones are
  2348. // already present in the CAS and do not need to be uploaded again.
  2349. //
  2350. // There are no method-specific errors.
  2351. FindMissingBlobs(context.Context, *FindMissingBlobsRequest) (*FindMissingBlobsResponse, error)
  2352. // Upload many blobs at once.
  2353. //
  2354. // The client MUST NOT upload blobs with a combined total size of more than 10
  2355. // MiB using this API. Such requests should either be split into smaller
  2356. // chunks or uploaded using the
  2357. // [ByteStream API][google.bytestream.ByteStream], as appropriate.
  2358. //
  2359. // This request is equivalent to calling [UpdateBlob][] on each individual
  2360. // blob, in parallel. The requests may succeed or fail independently.
  2361. //
  2362. // Errors:
  2363. // * `INVALID_ARGUMENT`: The client attempted to upload more than 10 MiB of
  2364. // data.
  2365. //
  2366. // Individual requests may return the following errors, additionally:
  2367. // * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob.
  2368. // * `INVALID_ARGUMENT`: The
  2369. // [Digest][google.devtools.remoteexecution.v1test.Digest] does not match the
  2370. // provided data.
  2371. BatchUpdateBlobs(context.Context, *BatchUpdateBlobsRequest) (*BatchUpdateBlobsResponse, error)
  2372. // Fetch the entire directory tree rooted at a node.
  2373. //
  2374. // This request must be targeted at a
  2375. // [Directory][google.devtools.remoteexecution.v1test.Directory] stored in the
  2376. // [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage]
  2377. // (CAS). The server will enumerate the `Directory` tree recursively and
  2378. // return every node descended from the root.
  2379. // The exact traversal order is unspecified and, unless retrieving subsequent
  2380. // pages from an earlier request, is not guaranteed to be stable across
  2381. // multiple invocations of `GetTree`.
  2382. //
  2383. // If part of the tree is missing from the CAS, the server will return the
  2384. // portion present and omit the rest.
  2385. //
  2386. // * `NOT_FOUND`: The requested tree root is not present in the CAS.
  2387. GetTree(context.Context, *GetTreeRequest) (*GetTreeResponse, error)
  2388. }
  2389. func RegisterContentAddressableStorageServer(s *grpc.Server, srv ContentAddressableStorageServer) {
  2390. s.RegisterService(&_ContentAddressableStorage_serviceDesc, srv)
  2391. }
  2392. func _ContentAddressableStorage_FindMissingBlobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2393. in := new(FindMissingBlobsRequest)
  2394. if err := dec(in); err != nil {
  2395. return nil, err
  2396. }
  2397. if interceptor == nil {
  2398. return srv.(ContentAddressableStorageServer).FindMissingBlobs(ctx, in)
  2399. }
  2400. info := &grpc.UnaryServerInfo{
  2401. Server: srv,
  2402. FullMethod: "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/FindMissingBlobs",
  2403. }
  2404. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2405. return srv.(ContentAddressableStorageServer).FindMissingBlobs(ctx, req.(*FindMissingBlobsRequest))
  2406. }
  2407. return interceptor(ctx, in, info, handler)
  2408. }
  2409. func _ContentAddressableStorage_BatchUpdateBlobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2410. in := new(BatchUpdateBlobsRequest)
  2411. if err := dec(in); err != nil {
  2412. return nil, err
  2413. }
  2414. if interceptor == nil {
  2415. return srv.(ContentAddressableStorageServer).BatchUpdateBlobs(ctx, in)
  2416. }
  2417. info := &grpc.UnaryServerInfo{
  2418. Server: srv,
  2419. FullMethod: "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/BatchUpdateBlobs",
  2420. }
  2421. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2422. return srv.(ContentAddressableStorageServer).BatchUpdateBlobs(ctx, req.(*BatchUpdateBlobsRequest))
  2423. }
  2424. return interceptor(ctx, in, info, handler)
  2425. }
  2426. func _ContentAddressableStorage_GetTree_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2427. in := new(GetTreeRequest)
  2428. if err := dec(in); err != nil {
  2429. return nil, err
  2430. }
  2431. if interceptor == nil {
  2432. return srv.(ContentAddressableStorageServer).GetTree(ctx, in)
  2433. }
  2434. info := &grpc.UnaryServerInfo{
  2435. Server: srv,
  2436. FullMethod: "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/GetTree",
  2437. }
  2438. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2439. return srv.(ContentAddressableStorageServer).GetTree(ctx, req.(*GetTreeRequest))
  2440. }
  2441. return interceptor(ctx, in, info, handler)
  2442. }
  2443. var _ContentAddressableStorage_serviceDesc = grpc.ServiceDesc{
  2444. ServiceName: "google.devtools.remoteexecution.v1test.ContentAddressableStorage",
  2445. HandlerType: (*ContentAddressableStorageServer)(nil),
  2446. Methods: []grpc.MethodDesc{
  2447. {
  2448. MethodName: "FindMissingBlobs",
  2449. Handler: _ContentAddressableStorage_FindMissingBlobs_Handler,
  2450. },
  2451. {
  2452. MethodName: "BatchUpdateBlobs",
  2453. Handler: _ContentAddressableStorage_BatchUpdateBlobs_Handler,
  2454. },
  2455. {
  2456. MethodName: "GetTree",
  2457. Handler: _ContentAddressableStorage_GetTree_Handler,
  2458. },
  2459. },
  2460. Streams: []grpc.StreamDesc{},
  2461. Metadata: "google/devtools/remoteexecution/v1test/remote_execution.proto",
  2462. }
  2463. func init() {
  2464. proto.RegisterFile("google/devtools/remoteexecution/v1test/remote_execution.proto", fileDescriptor_remote_execution_f2e80cfcae585c72)
  2465. }
  2466. var fileDescriptor_remote_execution_f2e80cfcae585c72 = []byte{
  2467. // 2025 bytes of a gzipped FileDescriptorProto
  2468. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xdd, 0x6f, 0x23, 0x57,
  2469. 0x15, 0x67, 0xec, 0x24, 0xb6, 0x8f, 0x9d, 0x75, 0xf6, 0x76, 0xe9, 0x7a, 0xdd, 0x2e, 0x4a, 0xa7,
  2470. 0xa2, 0x8a, 0xa2, 0x62, 0xb3, 0xde, 0x96, 0x85, 0x54, 0xa5, 0x6c, 0x1c, 0x27, 0x8d, 0x9a, 0xaf,
  2471. 0x4e, 0xe2, 0x74, 0xbb, 0xaa, 0x34, 0x9d, 0x78, 0x6e, 0xc6, 0xa3, 0xd8, 0x73, 0xcd, 0xbd, 0xd7,
  2472. 0x69, 0xd2, 0x65, 0x79, 0xe0, 0x05, 0x09, 0x04, 0x12, 0x54, 0x08, 0x24, 0x78, 0x42, 0x42, 0x48,
  2473. 0x88, 0x27, 0xfe, 0x00, 0x24, 0xf8, 0x03, 0x78, 0x80, 0x17, 0x9e, 0x11, 0x2f, 0xbc, 0xf1, 0xdc,
  2474. 0x07, 0x84, 0xee, 0xc7, 0x7c, 0xd8, 0xc9, 0xb2, 0x63, 0x67, 0x57, 0xe2, 0xcd, 0x73, 0xce, 0x3d,
  2475. 0xbf, 0xf3, 0x79, 0xcf, 0x39, 0x33, 0x86, 0xb7, 0x3d, 0x42, 0xbc, 0x1e, 0xae, 0xbb, 0xf8, 0x94,
  2476. 0x13, 0xd2, 0x63, 0x75, 0x8a, 0xfb, 0x84, 0x63, 0x7c, 0x86, 0x3b, 0x43, 0xee, 0x93, 0xa0, 0x7e,
  2477. 0x7a, 0x87, 0x63, 0xc6, 0x35, 0xd9, 0x8e, 0xe8, 0xb5, 0x01, 0x25, 0x9c, 0xa0, 0xd7, 0x94, 0x78,
  2478. 0x2d, 0x14, 0xaf, 0x8d, 0x89, 0xd7, 0x94, 0x78, 0xf5, 0x65, 0xad, 0xc6, 0x19, 0xf8, 0x75, 0x27,
  2479. 0x08, 0x08, 0x77, 0x04, 0x97, 0x29, 0x94, 0xea, 0xab, 0x9a, 0xdb, 0x23, 0x81, 0x47, 0x87, 0x41,
  2480. 0xe0, 0x07, 0x5e, 0x9d, 0x0c, 0x30, 0x1d, 0x39, 0xf4, 0x25, 0x7d, 0x48, 0x3e, 0x1d, 0x0d, 0x8f,
  2481. 0xeb, 0xee, 0x50, 0x1d, 0xd0, 0xfc, 0x9b, 0x9a, 0x4f, 0x07, 0x9d, 0x3a, 0xe3, 0x0e, 0x1f, 0x6a,
  2482. 0x41, 0xf3, 0x0f, 0x59, 0x98, 0xbb, 0xdf, 0x11, 0x27, 0x51, 0x1b, 0xae, 0x75, 0x48, 0xbf, 0xef,
  2483. 0x04, 0xae, 0xed, 0xfa, 0x1e, 0x66, 0xbc, 0x62, 0x2c, 0x1a, 0x4b, 0xc5, 0x46, 0xad, 0x96, 0xce,
  2484. 0x8f, 0xda, 0x9a, 0x94, 0xb2, 0xe6, 0x35, 0x8a, 0x7a, 0x44, 0x0f, 0xe1, 0xba, 0x1f, 0x0c, 0x86,
  2485. 0xdc, 0xa6, 0x84, 0xf0, 0x10, 0x39, 0x33, 0x15, 0x72, 0x59, 0x02, 0x59, 0x84, 0x70, 0x8d, 0xfd,
  2486. 0x0a, 0x94, 0xc8, 0x90, 0x0b, 0xf0, 0x63, 0xbf, 0x87, 0x59, 0x25, 0xbb, 0x98, 0x5d, 0x2a, 0x58,
  2487. 0x45, 0x45, 0x5b, 0x17, 0x24, 0xf4, 0x15, 0x40, 0xfa, 0x88, 0xeb, 0x53, 0xdc, 0xe1, 0x84, 0xfa,
  2488. 0x98, 0x55, 0x66, 0xe4, 0xc1, 0xeb, 0x8a, 0xb3, 0x16, 0x33, 0xd0, 0x16, 0xe4, 0x07, 0x3d, 0x87,
  2489. 0x1f, 0x13, 0xda, 0xaf, 0xcc, 0x4a, 0x23, 0xbf, 0x9a, 0xd6, 0xc8, 0x3d, 0x2d, 0x67, 0x45, 0x08,
  2490. 0xe8, 0x2e, 0xe4, 0xb8, 0xdf, 0xc7, 0x64, 0xc8, 0x2b, 0x73, 0x12, 0xec, 0x56, 0x08, 0x16, 0x26,
  2491. 0xaa, 0xb6, 0xa6, 0x13, 0x65, 0x85, 0x27, 0xd1, 0x22, 0x94, 0x5c, 0x62, 0x07, 0x84, 0xdb, 0x1d,
  2492. 0xa7, 0xd3, 0xc5, 0x95, 0xdc, 0xa2, 0xb1, 0x94, 0xb7, 0xc0, 0x25, 0x3b, 0x84, 0x37, 0x05, 0xc5,
  2493. 0xfc, 0x87, 0x01, 0xb9, 0xa6, 0x0a, 0x32, 0x7a, 0x19, 0x0a, 0x0e, 0xf5, 0x86, 0x7d, 0x1c, 0x70,
  2494. 0x56, 0x31, 0xa4, 0x5b, 0x31, 0x01, 0x9d, 0xc1, 0x17, 0x71, 0x70, 0xea, 0x53, 0x12, 0x88, 0x67,
  2495. 0xfb, 0xd4, 0xa1, 0xbe, 0x73, 0x24, 0x22, 0x95, 0x59, 0xcc, 0x2e, 0x15, 0x1b, 0xcd, 0xb4, 0xbe,
  2496. 0x69, 0x6d, 0xb5, 0x56, 0x0c, 0x76, 0xa8, 0xb1, 0xac, 0x1b, 0xf8, 0x22, 0x91, 0x55, 0xdf, 0x81,
  2497. 0x17, 0x2e, 0x39, 0x8c, 0x10, 0xcc, 0x04, 0x4e, 0x1f, 0xcb, 0xd2, 0x2a, 0x58, 0xf2, 0x37, 0xba,
  2498. 0x01, 0xb3, 0xa7, 0x4e, 0x6f, 0x88, 0x65, 0x55, 0x14, 0x2c, 0xf5, 0x60, 0xfe, 0xd2, 0x80, 0x7c,
  2499. 0x18, 0x52, 0xf4, 0x21, 0xc0, 0x80, 0x8a, 0xaa, 0xe7, 0x22, 0x7b, 0x86, 0x34, 0xfe, 0x1b, 0x93,
  2500. 0x26, 0xa6, 0xb6, 0xa7, 0x20, 0xce, 0xad, 0x04, 0x58, 0xf5, 0x0d, 0xc8, 0x87, 0xf4, 0x09, 0xac,
  2501. 0xfb, 0xbd, 0x01, 0x85, 0xb0, 0x6e, 0xce, 0xd1, 0x3a, 0xcc, 0xaa, 0x02, 0x54, 0x96, 0xa5, 0x2e,
  2502. 0x19, 0x51, 0xa2, 0x3b, 0xc4, 0xc5, 0x96, 0x12, 0x47, 0x1f, 0x40, 0x31, 0x59, 0xa5, 0x2a, 0x49,
  2503. 0x6f, 0xa6, 0xbf, 0x25, 0xda, 0x1e, 0x09, 0x99, 0x44, 0x32, 0x7f, 0x68, 0x40, 0x3e, 0x54, 0x76,
  2504. 0xa9, 0x97, 0xeb, 0x30, 0x77, 0xa5, 0xab, 0xa9, 0xa5, 0xd1, 0xab, 0x30, 0xef, 0x33, 0xdd, 0x09,
  2505. 0x45, 0xc2, 0x2b, 0x33, 0xb2, 0x7a, 0x4b, 0x3e, 0x6b, 0x45, 0x34, 0xf3, 0x04, 0xe6, 0x47, 0x6c,
  2506. 0x7d, 0x9e, 0x16, 0x99, 0x6f, 0xc1, 0x9c, 0xee, 0x16, 0x08, 0x66, 0xba, 0x0e, 0xeb, 0x86, 0x5a,
  2507. 0xc4, 0x6f, 0x74, 0x1b, 0x80, 0xf9, 0x9f, 0x62, 0xfb, 0xe8, 0x9c, 0xcb, 0x80, 0x1b, 0x4b, 0x59,
  2508. 0xab, 0x20, 0x28, 0xab, 0x82, 0x60, 0xfe, 0x35, 0x0b, 0x25, 0xd5, 0x1e, 0x2d, 0xcc, 0x86, 0x3d,
  2509. 0x8e, 0xda, 0x63, 0x1d, 0x47, 0xa5, 0xa8, 0x91, 0xd6, 0xb6, 0xdd, 0xa8, 0x33, 0x8d, 0x76, 0xa9,
  2510. 0xe3, 0x4b, 0xbb, 0x54, 0x56, 0x82, 0xdf, 0x9b, 0x0c, 0x3c, 0x8a, 0xec, 0x65, 0xed, 0xed, 0x25,
  2511. 0x28, 0xe0, 0x33, 0x9f, 0xdb, 0x1d, 0xe2, 0xaa, 0xd4, 0xcc, 0x5a, 0x79, 0x41, 0x68, 0x8a, 0x2c,
  2512. 0x88, 0x58, 0x70, 0x97, 0x88, 0x56, 0xed, 0x7c, 0x22, 0xbb, 0x5f, 0xc9, 0x2a, 0x28, 0x8a, 0xe5,
  2513. 0x7c, 0x82, 0xf6, 0x61, 0x5e, 0xb3, 0x75, 0x5e, 0xe6, 0xa6, 0xca, 0x4b, 0x49, 0x81, 0xe8, 0x9c,
  2514. 0x28, 0x9d, 0x98, 0x52, 0xa9, 0x33, 0x17, 0xe9, 0xc4, 0x94, 0xc6, 0x3a, 0x05, 0x5b, 0xeb, 0xcc,
  2515. 0x4f, 0xad, 0x13, 0x53, 0xaa, 0x9e, 0xcc, 0xdf, 0x1a, 0x00, 0x71, 0x22, 0x44, 0x59, 0x0c, 0x1c,
  2516. 0x1e, 0x95, 0x85, 0xf8, 0xfd, 0xcc, 0xae, 0x43, 0x05, 0x72, 0x1d, 0x12, 0x70, 0x1c, 0xf0, 0x4a,
  2517. 0x56, 0xfa, 0x16, 0x3e, 0xa6, 0xbb, 0x28, 0xbf, 0x32, 0x60, 0xe6, 0x80, 0x62, 0x8c, 0x5a, 0x30,
  2518. 0x23, 0xc6, 0xa7, 0x9e, 0xc8, 0x77, 0x26, 0xee, 0x08, 0x96, 0x14, 0x47, 0xdb, 0x90, 0xef, 0x74,
  2519. 0xfd, 0x9e, 0x4b, 0x71, 0xa0, 0x2b, 0x77, 0x0a, 0xa8, 0x08, 0xc2, 0xfc, 0xa3, 0x01, 0xe5, 0xb1,
  2520. 0xa2, 0x7b, 0xae, 0xd1, 0xdc, 0x85, 0x22, 0xa7, 0x18, 0x87, 0xb5, 0x90, 0x9d, 0x0a, 0x0c, 0x04,
  2521. 0x84, 0xae, 0x84, 0xcf, 0x32, 0x70, 0x4d, 0x85, 0x1b, 0x5b, 0xf8, 0xdb, 0xc3, 0xb0, 0x81, 0x05,
  2522. 0x8c, 0x3b, 0x41, 0x07, 0xdb, 0x89, 0x9e, 0x54, 0x0a, 0x89, 0x3b, 0xba, 0x37, 0x39, 0xb2, 0x2b,
  2523. 0x4c, 0xea, 0x90, 0xee, 0x25, 0x5a, 0x1a, 0x2d, 0xc3, 0x75, 0x76, 0xe2, 0x0f, 0xd4, 0xa0, 0xb7,
  2524. 0x7b, 0x84, 0x9c, 0x0c, 0x07, 0xd2, 0xad, 0xbc, 0x55, 0x16, 0x0c, 0x39, 0xee, 0xb7, 0x24, 0x19,
  2525. 0xdd, 0x85, 0x17, 0x39, 0xe1, 0x4e, 0xcf, 0x56, 0xdb, 0x94, 0x68, 0x3f, 0x76, 0x87, 0x0c, 0x03,
  2526. 0xae, 0xef, 0xf1, 0x0b, 0x92, 0xbb, 0x19, 0xe8, 0xb2, 0x6e, 0x0a, 0xd6, 0xa5, 0x42, 0xaa, 0xd5,
  2527. 0xcd, 0xca, 0x56, 0x37, 0x26, 0xa4, 0x9a, 0xde, 0x19, 0xe4, 0xb6, 0x88, 0x27, 0xef, 0x46, 0x9c,
  2528. 0x39, 0xe3, 0x4a, 0x99, 0xfb, 0x32, 0x5c, 0xeb, 0x0e, 0xfb, 0x4e, 0x60, 0x53, 0xec, 0xb8, 0xb2,
  2529. 0xdc, 0x33, 0xd2, 0xcb, 0x79, 0x49, 0xb5, 0x34, 0xd1, 0xfc, 0x41, 0x16, 0xca, 0x51, 0x3e, 0xd8,
  2530. 0x80, 0x04, 0x0c, 0xa3, 0x2d, 0x98, 0xa3, 0xb2, 0xf7, 0x6a, 0x13, 0xde, 0x98, 0x30, 0xd6, 0x52,
  2531. 0xd6, 0xd2, 0x18, 0x22, 0xbd, 0x32, 0xd8, 0xae, 0xad, 0x41, 0x95, 0x1d, 0x25, 0x45, 0xd4, 0x4d,
  2532. 0x7e, 0x19, 0xe6, 0xd4, 0x92, 0xac, 0x4b, 0x0c, 0x85, 0x2a, 0xe9, 0xa0, 0x53, 0xdb, 0x97, 0x1c,
  2533. 0x4b, 0x9f, 0x40, 0x5d, 0x28, 0x32, 0x4c, 0x4f, 0x31, 0xb5, 0x7b, 0xc4, 0x53, 0x8b, 0x65, 0xb1,
  2534. 0xb1, 0x91, 0xd6, 0xc6, 0x31, 0x67, 0x6b, 0xfb, 0x12, 0x6a, 0x8b, 0x78, 0xac, 0x15, 0x70, 0x7a,
  2535. 0x6e, 0x01, 0x8b, 0x08, 0xd5, 0x00, 0xca, 0x63, 0x6c, 0xb4, 0x00, 0xd9, 0x13, 0x7c, 0xae, 0x4b,
  2536. 0x54, 0xfc, 0x44, 0xad, 0xe4, 0xb6, 0x52, 0x6c, 0xd4, 0xd3, 0x1a, 0xa2, 0x13, 0xae, 0xd7, 0x9b,
  2537. 0x95, 0xcc, 0xd7, 0x0d, 0xf3, 0xf3, 0x0c, 0x54, 0xb4, 0x7d, 0xbb, 0xe1, 0xfb, 0xc6, 0x36, 0xe6,
  2538. 0x8e, 0xeb, 0x70, 0x07, 0x7d, 0x04, 0xb3, 0x8c, 0x3b, 0x9e, 0xba, 0x1e, 0xd7, 0x1a, 0xeb, 0x13,
  2539. 0x3a, 0x7c, 0x01, 0x50, 0x84, 0xd5, 0xc3, 0x96, 0x02, 0x15, 0x6d, 0x5f, 0xdd, 0x90, 0xab, 0xbd,
  2540. 0x2f, 0x94, 0x14, 0x88, 0x1e, 0x35, 0xaf, 0x03, 0xd2, 0xf3, 0x8b, 0x71, 0x8a, 0x9d, 0xbe, 0xba,
  2541. 0xde, 0x59, 0x19, 0xbb, 0x05, 0xc5, 0xd9, 0x97, 0x0c, 0x79, 0xc5, 0xd5, 0x69, 0x31, 0x79, 0x92,
  2542. 0xa7, 0x67, 0xa2, 0xd3, 0x98, 0xd2, 0xf8, 0xb4, 0xb9, 0x0b, 0xb3, 0xd2, 0x01, 0x54, 0x84, 0x5c,
  2543. 0x7b, 0xe7, 0xbd, 0x9d, 0xdd, 0x0f, 0x76, 0x16, 0xbe, 0x80, 0xca, 0x50, 0x6c, 0xde, 0x6f, 0xbe,
  2544. 0xdb, 0xb2, 0x9b, 0xef, 0xb6, 0x9a, 0xef, 0x2d, 0x18, 0x08, 0x60, 0xee, 0xfd, 0x76, 0xab, 0xdd,
  2545. 0x5a, 0x5b, 0xc8, 0xa0, 0x79, 0x28, 0xb4, 0x1e, 0xb4, 0x9a, 0xed, 0x83, 0xcd, 0x9d, 0x8d, 0x85,
  2546. 0xac, 0x78, 0x6c, 0xee, 0x6e, 0xef, 0x6d, 0xb5, 0x0e, 0x5a, 0x6b, 0x0b, 0x33, 0xe6, 0x4f, 0x0d,
  2547. 0x78, 0x71, 0x03, 0xf3, 0x91, 0x1a, 0x9e, 0xa4, 0x43, 0x3d, 0x8f, 0x08, 0x9a, 0xff, 0x36, 0xe0,
  2548. 0x56, 0x7b, 0xe0, 0x3a, 0x1c, 0xff, 0x5f, 0xd9, 0x85, 0x3e, 0x8c, 0x40, 0xf5, 0xa5, 0xce, 0x5e,
  2549. 0xa1, 0x53, 0x68, 0x68, 0xf5, 0x64, 0xfe, 0xc4, 0x80, 0x9b, 0xeb, 0x7e, 0xe0, 0x6e, 0xfb, 0x8c,
  2550. 0xf9, 0x81, 0xb7, 0xda, 0x23, 0x47, 0x6c, 0x22, 0x87, 0xdf, 0x87, 0xd2, 0x51, 0x8f, 0x1c, 0x69,
  2551. 0x77, 0xc3, 0x85, 0x71, 0x52, 0x7f, 0x8b, 0x02, 0x43, 0xfd, 0x66, 0xe6, 0x77, 0xa0, 0x72, 0xd1,
  2552. 0x24, 0xdd, 0x2d, 0x3f, 0x86, 0x1b, 0x7d, 0x45, 0xb7, 0x9f, 0x81, 0x5a, 0xd4, 0x8f, 0x75, 0x84,
  2553. 0xda, 0xbf, 0x0b, 0xd7, 0x55, 0x0d, 0x08, 0x62, 0x18, 0x0a, 0xf9, 0xed, 0x40, 0x2e, 0x36, 0x57,
  2554. 0xfe, 0x76, 0x20, 0x51, 0xe2, 0x8d, 0x5d, 0x34, 0x07, 0x59, 0x24, 0x25, 0x4b, 0xfe, 0x36, 0x7f,
  2555. 0x66, 0xc0, 0xcd, 0x55, 0x87, 0x77, 0xba, 0xb1, 0x15, 0x93, 0x65, 0xa4, 0x0d, 0x79, 0xaa, 0xce,
  2556. 0x87, 0x61, 0x49, 0xfd, 0x26, 0x79, 0xc1, 0x71, 0x2b, 0x82, 0x32, 0x7f, 0x94, 0x81, 0xca, 0x45,
  2557. 0xbb, 0x74, 0x5a, 0x3c, 0x28, 0x50, 0xfd, 0x3b, 0x7c, 0x49, 0xdc, 0x4c, 0xab, 0xf4, 0x49, 0xa0,
  2558. 0xb5, 0xf0, 0x87, 0x15, 0x63, 0x57, 0xbf, 0x6f, 0x40, 0x3e, 0xd2, 0xba, 0x0b, 0xc5, 0x44, 0x11,
  2559. 0x4c, 0x99, 0x12, 0x88, 0x4b, 0x2f, 0x31, 0x18, 0x33, 0x4f, 0x1b, 0x8c, 0xe6, 0x9f, 0x0d, 0xb8,
  2560. 0xb6, 0x81, 0xb9, 0x58, 0x5f, 0x27, 0x4a, 0xcf, 0x2e, 0x14, 0xaf, 0xfe, 0xa5, 0x08, 0x68, 0xfc,
  2561. 0x91, 0xe8, 0x25, 0x28, 0x0c, 0x1c, 0x0f, 0xdb, 0xe2, 0xad, 0x4e, 0x76, 0x86, 0x59, 0x2b, 0x2f,
  2562. 0x08, 0xfb, 0xfe, 0xa7, 0xf2, 0x9d, 0x47, 0x32, 0x39, 0x39, 0xc1, 0x81, 0x6e, 0xef, 0xf2, 0xf8,
  2563. 0x81, 0x20, 0x98, 0x3f, 0x36, 0xa0, 0x1c, 0x39, 0xa1, 0xa3, 0xba, 0x3f, 0xfa, 0x92, 0x6e, 0x4c,
  2564. 0xbb, 0x47, 0x27, 0x51, 0xd0, 0x6b, 0x50, 0x0e, 0xf0, 0x19, 0xb7, 0x13, 0xc6, 0xa8, 0xef, 0x0d,
  2565. 0xf3, 0x82, 0xbc, 0x17, 0x19, 0xb4, 0x0d, 0xc5, 0x03, 0x42, 0x7a, 0x6b, 0x98, 0x3b, 0x7e, 0x4f,
  2566. 0xbe, 0xcf, 0x09, 0x6d, 0xc9, 0x68, 0xe6, 0x05, 0x41, 0x46, 0xf2, 0x15, 0x28, 0x49, 0xe6, 0x29,
  2567. 0xa6, 0x2c, 0xdc, 0x55, 0x0b, 0x56, 0x51, 0xd0, 0x0e, 0x15, 0x49, 0x74, 0xf4, 0xb2, 0xce, 0x4e,
  2568. 0x34, 0xda, 0x0f, 0xb5, 0x98, 0xab, 0x74, 0xe8, 0xb2, 0xb9, 0x9b, 0xd6, 0xc1, 0x84, 0x79, 0x4a,
  2569. 0x57, 0xc2, 0x56, 0xdd, 0xa5, 0x7d, 0x57, 0xdb, 0x92, 0x57, 0x84, 0x4d, 0x57, 0x8c, 0x5b, 0xa9,
  2570. 0xd4, 0x0f, 0x4e, 0x49, 0xc7, 0x09, 0x4f, 0xe9, 0xe1, 0x2c, 0x38, 0x9b, 0x11, 0x63, 0xd3, 0x45,
  2571. 0x2b, 0x70, 0xab, 0x43, 0x28, 0xc5, 0x3d, 0x87, 0x63, 0x37, 0x21, 0xc3, 0x84, 0x90, 0x4a, 0xe2,
  2572. 0xcd, 0xf8, 0x40, 0x2c, 0xca, 0x36, 0xdd, 0xc6, 0x6f, 0x0c, 0x28, 0xb4, 0x42, 0xa3, 0xd1, 0xcf,
  2573. 0x0d, 0xc8, 0xe9, 0x9d, 0x04, 0x7d, 0x6d, 0xe2, 0xad, 0x4d, 0x06, 0xae, 0x7a, 0x3b, 0x94, 0x4b,
  2574. 0x7c, 0xa2, 0xad, 0x45, 0x1b, 0x8e, 0xf9, 0xe6, 0xf7, 0xfe, 0xf6, 0xcf, 0xcf, 0x32, 0x75, 0x73,
  2575. 0x39, 0xfc, 0x5c, 0xfc, 0x68, 0xe4, 0x12, 0xbc, 0xbd, 0xbc, 0xfc, 0xb8, 0xae, 0xe2, 0xc0, 0x56,
  2576. 0x94, 0x2a, 0xbc, 0x62, 0x2c, 0x37, 0x3e, 0xcf, 0x42, 0x51, 0x0d, 0x26, 0xf9, 0x16, 0x80, 0xfe,
  2577. 0xa5, 0x4a, 0x71, 0xe4, 0x6b, 0xc4, 0x37, 0xd3, 0x5a, 0x7c, 0xf9, 0x2a, 0x51, 0x9d, 0x6a, 0x42,
  2578. 0x9a, 0x1f, 0x4b, 0x87, 0x1e, 0xa2, 0x07, 0x4f, 0x75, 0x48, 0x09, 0xb0, 0xfa, 0xa3, 0x91, 0x99,
  2579. 0x5f, 0xeb, 0x3a, 0xac, 0xfb, 0x78, 0x9c, 0x18, 0x7f, 0x86, 0x79, 0x8c, 0xfe, 0x63, 0x00, 0xba,
  2580. 0xb8, 0x68, 0xa0, 0xfb, 0x93, 0xf5, 0xe9, 0x67, 0xe7, 0x31, 0x91, 0x1e, 0xfb, 0xd5, 0xe7, 0xe6,
  2581. 0xf1, 0xca, 0xe8, 0x02, 0xd3, 0xf8, 0xc5, 0x2c, 0xdc, 0x6a, 0xaa, 0x51, 0x78, 0xdf, 0x75, 0x29,
  2582. 0x66, 0x4c, 0xbc, 0x1f, 0xed, 0x73, 0x42, 0xc5, 0x92, 0xf9, 0x17, 0x03, 0x16, 0xc6, 0x37, 0x00,
  2583. 0xf4, 0x4e, 0xfa, 0x8f, 0x8e, 0x97, 0xae, 0x33, 0xd5, 0x6f, 0x4d, 0x0f, 0xa0, 0x3a, 0xa3, 0x79,
  2584. 0x4f, 0x86, 0xe9, 0x8e, 0xf9, 0xfa, 0xff, 0x08, 0x93, 0x98, 0x26, 0x6c, 0xe5, 0x38, 0x86, 0x58,
  2585. 0x31, 0x96, 0xa5, 0x43, 0xe3, 0x63, 0x2e, 0xbd, 0x43, 0x4f, 0xd8, 0x06, 0xd2, 0x3b, 0xf4, 0xa4,
  2586. 0x09, 0x3b, 0x81, 0x43, 0x47, 0x31, 0x84, 0x70, 0xe8, 0xef, 0x06, 0xe4, 0xf4, 0xdc, 0x48, 0xdf,
  2587. 0x56, 0x46, 0xa7, 0x65, 0xf5, 0xde, 0xc4, 0x72, 0xda, 0xea, 0x8f, 0xa4, 0xd5, 0x87, 0xe8, 0xe0,
  2588. 0x69, 0x56, 0xd7, 0x1f, 0x25, 0x26, 0x6d, 0x58, 0xa3, 0x49, 0x52, 0xb2, 0x42, 0x3d, 0xa5, 0x65,
  2589. 0xf5, 0x4f, 0x06, 0x2c, 0x77, 0x48, 0x3f, 0xa5, 0x71, 0xab, 0x37, 0x2c, 0x49, 0x8f, 0x3a, 0xee,
  2590. 0x1e, 0x25, 0x9c, 0xec, 0x19, 0x0f, 0xdb, 0x5a, 0xde, 0x23, 0x3d, 0x27, 0xf0, 0x6a, 0x84, 0x7a,
  2591. 0x75, 0x0f, 0x07, 0xf2, 0x6f, 0x91, 0xba, 0x62, 0x39, 0x03, 0x9f, 0x3d, 0xed, 0xaf, 0xb7, 0xb7,
  2592. 0xc6, 0xc8, 0xbf, 0xce, 0x64, 0xad, 0xd6, 0x83, 0xdf, 0x65, 0x6e, 0x6f, 0x28, 0xf4, 0x31, 0xe5,
  2593. 0xb5, 0xc3, 0x3b, 0x07, 0x98, 0xf1, 0xa3, 0x39, 0xa9, 0xe7, 0xee, 0x7f, 0x03, 0x00, 0x00, 0xff,
  2594. 0xff, 0xf0, 0x8a, 0x2f, 0x43, 0xe1, 0x1b, 0x00, 0x00,
  2595. }