Class: Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Directory
- Inherits:
-
Object
- Object
- Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2Directory
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- lib/google/apis/remotebuildexecution_v2/classes.rb,
lib/google/apis/remotebuildexecution_v2/representations.rb,
lib/google/apis/remotebuildexecution_v2/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. * The NodeProperties of files,
directories, and symlinks must be sorted in lexicographical order by property
name. A Directory
that obeys the restrictions is said to be in canonical
form. As an example, the following could be used for a file named bar
and a
directory named foo
with an executable file named baz
(hashes shortened
for readability): json // (Directory proto) ` files: [ ` name: "bar",
digest: ` hash: "4a73bc9d03...", size: 65534 `, node_properties: [ ` "name": "
MTime", "value": "2017-01-15T01:30:15.01Z" ` ] ` ], 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::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2DirectoryNode>
The subdirectories in the directory.
-
#files ⇒ Array<Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2FileNode>
The files in the directory.
-
#node_properties ⇒ Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2NodeProperties
Node properties for FileNodes, DirectoryNodes, and SymlinkNodes.
-
#symlinks ⇒ Array<Google::Apis::RemotebuildexecutionV2::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.
Constructor Details
#initialize(**args) ⇒ BuildBazelRemoteExecutionV2Directory
Returns a new instance of BuildBazelRemoteExecutionV2Directory.
926 927 928 |
# File 'lib/google/apis/remotebuildexecution_v2/classes.rb', line 926 def initialize(**args) update!(**args) end |
Instance Attribute Details
#directories ⇒ Array<Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2DirectoryNode>
The subdirectories in the directory.
Corresponds to the JSON property directories
908 909 910 |
# File 'lib/google/apis/remotebuildexecution_v2/classes.rb', line 908 def directories @directories end |
#files ⇒ Array<Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2FileNode>
The files in the directory.
Corresponds to the JSON property files
913 914 915 |
# File 'lib/google/apis/remotebuildexecution_v2/classes.rb', line 913 def files @files end |
#node_properties ⇒ Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2NodeProperties
Node properties for FileNodes, DirectoryNodes, and SymlinkNodes. The server is
responsible for specifying the properties that it accepts.
Corresponds to the JSON property nodeProperties
919 920 921 |
# File 'lib/google/apis/remotebuildexecution_v2/classes.rb', line 919 def node_properties @node_properties end |
#symlinks ⇒ Array<Google::Apis::RemotebuildexecutionV2::BuildBazelRemoteExecutionV2SymlinkNode>
The symlinks in the directory.
Corresponds to the JSON property symlinks
924 925 926 |
# File 'lib/google/apis/remotebuildexecution_v2/classes.rb', line 924 def symlinks @symlinks end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
931 932 933 934 935 936 |
# File 'lib/google/apis/remotebuildexecution_v2/classes.rb', line 931 def update!(**args) @directories = args[:directories] if args.key?(:directories) @files = args[:files] if args.key?(:files) @node_properties = args[:node_properties] if args.key?(:node_properties) @symlinks = args[:symlinks] if args.key?(:symlinks) end |