Class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Tree
- Inherits:
-
Object
- Object
- Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Tree
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- generated/google/apis/remotebuildexecution_v2/classes.rb,
generated/google/apis/remotebuildexecution_v2/representations.rb,
generated/google/apis/remotebuildexecution_v2/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::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Directory>
All the child directories: the directories referred to by the root and, recursively, all its children.
-
#root ⇒ Google::Apis::RemotebuildexecutionV2::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.
2086 2087 2088 |
# File 'generated/google/apis/remotebuildexecution_v2/classes.rb', line 2086 def initialize(**args) update!(**args) end |
Instance Attribute Details
#children ⇒ Array<Google::Apis::RemotebuildexecutionV2::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
2019 2020 2021 |
# File 'generated/google/apis/remotebuildexecution_v2/classes.rb', line 2019 def children @children end |
#root ⇒ Google::Apis::RemotebuildexecutionV2::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
2084 2085 2086 |
# File 'generated/google/apis/remotebuildexecution_v2/classes.rb', line 2084 def root @root end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
2091 2092 2093 2094 |
# File 'generated/google/apis/remotebuildexecution_v2/classes.rb', line 2091 def update!(**args) @children = args[:children] if args.key?(:children) @root = args[:root] if args.key?(:root) end |