Class: Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Tree
- Inherits:
-
Object
- Object
- Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Tree
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- generated/google/apis/remotebuildexecution_v1/classes.rb,
generated/google/apis/remotebuildexecution_v1/representations.rb,
generated/google/apis/remotebuildexecution_v1/representations.rb
Overview
A Tree
contains all the
Directory protos in a
single directory Merkle tree, compressed into one message.
Instance Attribute Summary collapse
-
#children ⇒ Array<Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Directory>
All the child directories: the directories referred to by the root and, recursively, all its children.
-
#root ⇒ Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Directory
A
Directory
represents a directory node in a file tree, containing zero or more children FileNodes, DirectoryNodes and SymlinkNodes.
Instance Method Summary collapse
-
#initialize(**args) ⇒ BuildBazelRemoteExecutionV2Tree
constructor
A new instance of BuildBazelRemoteExecutionV2Tree.
-
#update!(**args) ⇒ Object
Update properties of this object.
Methods included from Core::JsonObjectSupport
Methods included from Core::Hashable
Constructor Details
#initialize(**args) ⇒ BuildBazelRemoteExecutionV2Tree
Returns a new instance of BuildBazelRemoteExecutionV2Tree.
1442 1443 1444 |
# File 'generated/google/apis/remotebuildexecution_v1/classes.rb', line 1442 def initialize(**args) update!(**args) end |
Instance Attribute Details
#children ⇒ Array<Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Directory>
All the child directories: the directories referred to by the root and,
recursively, all its children. In order to reconstruct the directory tree,
the client must take the digests of each of the child directories and then
build up a tree starting from the root
.
Corresponds to the JSON property children
1375 1376 1377 |
# File 'generated/google/apis/remotebuildexecution_v1/classes.rb', line 1375 def children @children end |
#root ⇒ Google::Apis::RemotebuildexecutionV1::BuildBazelRemoteExecutionV2Directory
A Directory
represents a directory node in a file tree, containing zero or
more children FileNodes,
DirectoryNodes and
SymlinkNodes.
Each Node
contains its name in the directory, either the digest of its
content (either a file blob or a Directory
proto) or a symlink target, as
well as possibly some metadata about the file or directory.
In order to ensure that two equivalent directory trees hash to the same
value, the following restrictions MUST be obeyed when constructing a
a Directory
:
- Every child in the directory must have a path of exactly one segment. Multiple levels of directory hierarchy may not be collapsed.
- Each child in the directory must have a unique path segment (file name). Note that while the API itself is case-sensitive, the environment where the Action is executed may or may not be case-sensitive. That is, it is legal to call the API with a Directory that has both "Foo" and "foo" as children, but the Action may be rejected by the remote system upon execution.
- The files, directories and symlinks in the directory must each be sorted
in lexicographical order by path. The path strings must be sorted by code
point, equivalently, by UTF-8 bytes.
A
Directory
that obeys the restrictions is said to be in canonical form. As an example, the following could be used for a file namedbar
and a directory namedfoo
with an executable file namedbaz
(hashes shortened for readability):json // (Directory proto) ` files: [ ` name: "bar", digest: ` hash: "4a73bc9d03...", size: 65534 ` ` ], directories: [ ` name: "foo", digest: ` hash: "4cf2eda940...", size: 43 ` ` ] ` // (Directory proto with hash "4cf2eda940..." and size 43) ` files: [ ` name: "baz", digest: ` hash: "b2c941073e...", size: 1294, `, is_executable: true ` ] `
Corresponds to the JSON propertyroot
1440 1441 1442 |
# File 'generated/google/apis/remotebuildexecution_v1/classes.rb', line 1440 def root @root end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
1447 1448 1449 1450 |
# File 'generated/google/apis/remotebuildexecution_v1/classes.rb', line 1447 def update!(**args) @children = args[:children] if args.key?(:children) @root = args[:root] if args.key?(:root) end |