Class: Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Directory
- Inherits:
-
Object
- Object
- Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2Directory
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- generated/google/apis/remotebuildexecution_v1alpha/classes.rb,
generated/google/apis/remotebuildexecution_v1alpha/representations.rb,
generated/google/apis/remotebuildexecution_v1alpha/representations.rb
Overview
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 ` ] `
Instance Attribute Summary collapse
-
#directories ⇒ Array<Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2DirectoryNode>
The subdirectories in the directory.
-
#files ⇒ Array<Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2FileNode>
The files in the directory.
-
#symlinks ⇒ Array<Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2SymlinkNode>
The symlinks in the directory.
Instance Method Summary collapse
-
#initialize(**args) ⇒ BuildBazelRemoteExecutionV2Directory
constructor
A new instance of BuildBazelRemoteExecutionV2Directory.
-
#update!(**args) ⇒ Object
Update properties of this object.
Methods included from Core::JsonObjectSupport
Methods included from Core::Hashable
Constructor Details
#initialize(**args) ⇒ BuildBazelRemoteExecutionV2Directory
Returns a new instance of BuildBazelRemoteExecutionV2Directory.
641 642 643 |
# File 'generated/google/apis/remotebuildexecution_v1alpha/classes.rb', line 641 def initialize(**args) update!(**args) end |
Instance Attribute Details
#directories ⇒ Array<Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2DirectoryNode>
The subdirectories in the directory.
Corresponds to the JSON property directories
629 630 631 |
# File 'generated/google/apis/remotebuildexecution_v1alpha/classes.rb', line 629 def directories @directories end |
#files ⇒ Array<Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2FileNode>
The files in the directory.
Corresponds to the JSON property files
634 635 636 |
# File 'generated/google/apis/remotebuildexecution_v1alpha/classes.rb', line 634 def files @files end |
#symlinks ⇒ Array<Google::Apis::RemotebuildexecutionV1alpha::BuildBazelRemoteExecutionV2SymlinkNode>
The symlinks in the directory.
Corresponds to the JSON property symlinks
639 640 641 |
# File 'generated/google/apis/remotebuildexecution_v1alpha/classes.rb', line 639 def symlinks @symlinks end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
646 647 648 649 650 |
# File 'generated/google/apis/remotebuildexecution_v1alpha/classes.rb', line 646 def update!(**args) @directories = args[:directories] if args.key?(:directories) @files = args[:files] if args.key?(:files) @symlinks = args[:symlinks] if args.key?(:symlinks) end |