Package biopb.tensor

Interface TensorDescriptorOrBuilder

All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
All Known Implementing Classes:
TensorDescriptor, TensorDescriptor.Builder

public interface TensorDescriptorOrBuilder extends com.google.protobuf.MessageOrBuilder
  • Method Summary

    Modifier and Type
    Method
    Description
    Globally-unique tensor identifier and primary key (see the tensor identity policy above).
    com.google.protobuf.ByteString
    Globally-unique tensor identifier and primary key (see the tensor identity policy above).
    long
    getChunkShape(int index)
    Nominal transfer chunk size per dimension (actual may vary for edge chunks).
    int
    Nominal transfer chunk size per dimension (actual may vary for edge chunks).
    Nominal transfer chunk size per dimension (actual may vary for edge chunks).
    com.google.protobuf.ByteString
    Opaque per-source generation token, sampled once at (re-)registration (biopb/biopb#178): the stat signature `mtime_ns:size` for a file/dir source, `iat:<ts>` for a caching proxy's mirror.
    getDimLabels(int index)
    Maps dimension index to semantic label (e.g., ["z", "y", "x"])
    com.google.protobuf.ByteString
    getDimLabelsBytes(int index)
    Maps dimension index to semantic label (e.g., ["z", "y", "x"])
    int
    Maps dimension index to semantic label (e.g., ["z", "y", "x"])
    Maps dimension index to semantic label (e.g., ["z", "y", "x"])
    Element dtype (numpy-style, e.g., "uint8", "float32", "float64")
    com.google.protobuf.ByteString
    Element dtype (numpy-style, e.g., "uint8", "float32", "float64")
    boolean
    Whether this source's bytes are local and cheap to read *right now*.
    Opaque JSON metadata compatible with OME-NGFF (.zattrs schema).
    com.google.protobuf.ByteString
    Opaque JSON metadata compatible with OME-NGFF (.zattrs schema).
    double
    getPhysicalScale(int index)
    Per-dimension physical pixel size, aligned 1:1 with dim_labels/shape (same length and order).
    int
    Per-dimension physical pixel size, aligned 1:1 with dim_labels/shape (same length and order).
    Per-dimension physical pixel size, aligned 1:1 with dim_labels/shape (same length and order).
    getPhysicalUnit(int index)
    Per-dimension unit string for physical_scale (e.g.
    com.google.protobuf.ByteString
    Per-dimension unit string for physical_scale (e.g.
    int
    Per-dimension unit string for physical_scale (e.g.
    Per-dimension unit string for physical_scale (e.g.
    getPyramid(int index)
    Server-advertised resolution pyramid: the ordered levels the server recommends reading this tensor at, coarsest decision made server-side so native (precomputed) pyramids are honored and the precache worker and client request the same scales.
    int
    Server-advertised resolution pyramid: the ordered levels the server recommends reading this tensor at, coarsest decision made server-side so native (precomputed) pyramids are honored and the precache worker and client request the same scales.
    Server-advertised resolution pyramid: the ordered levels the server recommends reading this tensor at, coarsest decision made server-side so native (precomputed) pyramids are honored and the precache worker and client request the same scales.
    Server-advertised resolution pyramid: the ordered levels the server recommends reading this tensor at, coarsest decision made server-side so native (precomputed) pyramids are honored and the precache worker and client request the same scales.
    Server-advertised resolution pyramid: the ordered levels the server recommends reading this tensor at, coarsest decision made server-side so native (precomputed) pyramids are honored and the precache worker and client request the same scales.
    Dynamic reduction/downsampling method for scaled reads: "nearest", "area", or "precompute" (serve a native on-disk pyramid level).
    com.google.protobuf.ByteString
    Dynamic reduction/downsampling method for scaled reads: "nearest", "area", or "precompute" (serve a native on-disk pyramid level).
    long
    getScaleHint(int index)
    Per-dimension integer downsampling factors for virtual/scaled reads.
    int
    Per-dimension integer downsampling factors for virtual/scaled reads.
    Per-dimension integer downsampling factors for virtual/scaled reads.
    long
    getShape(int index)
    Full array shape (per dimension)
    int
    Full array shape (per dimension)
    Full array shape (per dimension)
    Optional slice hint - if provided, GetFlightInfo returns only chunks covering this range.
    Optional slice hint - if provided, GetFlightInfo returns only chunks covering this range.
    int
    How long the server keeps this tensor, in seconds from `add_tensor`.
    How far the upload backing this tensor has got, when one does; unset for every ordinary (file-backed) source.
    How far the upload backing this tensor has got, when one does; unset for every ordinary (file-backed) source.
    boolean
    Opaque per-source generation token, sampled once at (re-)registration (biopb/biopb#178): the stat signature `mtime_ns:size` for a file/dir source, `iat:<ts>` for a caching proxy's mirror.
    boolean
    Whether this source's bytes are local and cheap to read *right now*.
    boolean
    Optional slice hint - if provided, GetFlightInfo returns only chunks covering this range.
    boolean
    How long the server keeps this tensor, in seconds from `add_tensor`.
    boolean
    How far the upload backing this tensor has got, when one does; unset for every ordinary (file-backed) source.

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    isInitialized

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
  • Method Details

    • getArrayId

      String getArrayId()
       Globally-unique tensor identifier and primary key (see the tensor identity
       policy above). Constructed as source_id (single-tensor) or source_id/field
       (multi-tensor). Same value as TensorReadOption.array_id.
       
      string array_id = 1;
      Returns:
      The arrayId.
    • getArrayIdBytes

      com.google.protobuf.ByteString getArrayIdBytes()
       Globally-unique tensor identifier and primary key (see the tensor identity
       policy above). Constructed as source_id (single-tensor) or source_id/field
       (multi-tensor). Same value as TensorReadOption.array_id.
       
      string array_id = 1;
      Returns:
      The bytes for arrayId.
    • getDimLabelsList

      List<String> getDimLabelsList()
       Maps dimension index to semantic label (e.g., ["z", "y", "x"])
       
      repeated string dim_labels = 2;
      Returns:
      A list containing the dimLabels.
    • getDimLabelsCount

      int getDimLabelsCount()
       Maps dimension index to semantic label (e.g., ["z", "y", "x"])
       
      repeated string dim_labels = 2;
      Returns:
      The count of dimLabels.
    • getDimLabels

      String getDimLabels(int index)
       Maps dimension index to semantic label (e.g., ["z", "y", "x"])
       
      repeated string dim_labels = 2;
      Parameters:
      index - The index of the element to return.
      Returns:
      The dimLabels at the given index.
    • getDimLabelsBytes

      com.google.protobuf.ByteString getDimLabelsBytes(int index)
       Maps dimension index to semantic label (e.g., ["z", "y", "x"])
       
      repeated string dim_labels = 2;
      Parameters:
      index - The index of the value to return.
      Returns:
      The bytes of the dimLabels at the given index.
    • getShapeList

      List<Long> getShapeList()
       Full array shape (per dimension)
       
      repeated int64 shape = 3;
      Returns:
      A list containing the shape.
    • getShapeCount

      int getShapeCount()
       Full array shape (per dimension)
       
      repeated int64 shape = 3;
      Returns:
      The count of shape.
    • getShape

      long getShape(int index)
       Full array shape (per dimension)
       
      repeated int64 shape = 3;
      Parameters:
      index - The index of the element to return.
      Returns:
      The shape at the given index.
    • getChunkShapeList

      List<Long> getChunkShapeList()
       Nominal transfer chunk size per dimension (actual may vary for edge
       chunks). This is the grid the tensor's chunks are delivered on, chosen by
       the server-side adapter that knows how the bytes sit on disk; it is not the
       store's own block size, and no read is issued at any other granularity.
      
       On a *response* it is the grid you will read on -- the tensor's own grid in
       a describe, and for a scaled read the grid of that response's (already
       reduced) chunks. It is answered ONLY by GetFlightInfo, which resolves the
       tensor adapter first: the grid depends on facts that exist only once a
       specific tensor/scene is bound (its backing chunk layout, its dimension
       labels, format layout rules, the native pyramid level, the request scale),
       so a source-level listing cannot own it. The catalog and
       DataSourceDescriptor.tensors therefore carry it EMPTY -- like pyramid and
       physical_scale -- and an empty grid is not a usable fallback: a client that
       needs one for Dask construction, tiling or prefetching must describe the
       tensor. (Empty also means "old server"; the field has always been optional.)
      
       On an upload *request* it is the grid you will write on -- it sets the
       created store's blocking and the bounds every chunk must land on.
       
      repeated int64 chunk_shape = 4;
      Returns:
      A list containing the chunkShape.
    • getChunkShapeCount

      int getChunkShapeCount()
       Nominal transfer chunk size per dimension (actual may vary for edge
       chunks). This is the grid the tensor's chunks are delivered on, chosen by
       the server-side adapter that knows how the bytes sit on disk; it is not the
       store's own block size, and no read is issued at any other granularity.
      
       On a *response* it is the grid you will read on -- the tensor's own grid in
       a describe, and for a scaled read the grid of that response's (already
       reduced) chunks. It is answered ONLY by GetFlightInfo, which resolves the
       tensor adapter first: the grid depends on facts that exist only once a
       specific tensor/scene is bound (its backing chunk layout, its dimension
       labels, format layout rules, the native pyramid level, the request scale),
       so a source-level listing cannot own it. The catalog and
       DataSourceDescriptor.tensors therefore carry it EMPTY -- like pyramid and
       physical_scale -- and an empty grid is not a usable fallback: a client that
       needs one for Dask construction, tiling or prefetching must describe the
       tensor. (Empty also means "old server"; the field has always been optional.)
      
       On an upload *request* it is the grid you will write on -- it sets the
       created store's blocking and the bounds every chunk must land on.
       
      repeated int64 chunk_shape = 4;
      Returns:
      The count of chunkShape.
    • getChunkShape

      long getChunkShape(int index)
       Nominal transfer chunk size per dimension (actual may vary for edge
       chunks). This is the grid the tensor's chunks are delivered on, chosen by
       the server-side adapter that knows how the bytes sit on disk; it is not the
       store's own block size, and no read is issued at any other granularity.
      
       On a *response* it is the grid you will read on -- the tensor's own grid in
       a describe, and for a scaled read the grid of that response's (already
       reduced) chunks. It is answered ONLY by GetFlightInfo, which resolves the
       tensor adapter first: the grid depends on facts that exist only once a
       specific tensor/scene is bound (its backing chunk layout, its dimension
       labels, format layout rules, the native pyramid level, the request scale),
       so a source-level listing cannot own it. The catalog and
       DataSourceDescriptor.tensors therefore carry it EMPTY -- like pyramid and
       physical_scale -- and an empty grid is not a usable fallback: a client that
       needs one for Dask construction, tiling or prefetching must describe the
       tensor. (Empty also means "old server"; the field has always been optional.)
      
       On an upload *request* it is the grid you will write on -- it sets the
       created store's blocking and the bounds every chunk must land on.
       
      repeated int64 chunk_shape = 4;
      Parameters:
      index - The index of the element to return.
      Returns:
      The chunkShape at the given index.
    • getDtype

      String getDtype()
       Element dtype (numpy-style, e.g., "uint8", "float32", "float64")
       
      string dtype = 5;
      Returns:
      The dtype.
    • getDtypeBytes

      com.google.protobuf.ByteString getDtypeBytes()
       Element dtype (numpy-style, e.g., "uint8", "float32", "float64")
       
      string dtype = 5;
      Returns:
      The bytes for dtype.
    • hasSliceHint

      boolean hasSliceHint()
       Optional slice hint - if provided, GetFlightInfo returns only chunks
       covering this range. Leave unset/null to return all chunks.
       
      .biopb.tensor.SliceHint slice_hint = 6;
      Returns:
      Whether the sliceHint field is set.
    • getSliceHint

      SliceHint getSliceHint()
       Optional slice hint - if provided, GetFlightInfo returns only chunks
       covering this range. Leave unset/null to return all chunks.
       
      .biopb.tensor.SliceHint slice_hint = 6;
      Returns:
      The sliceHint.
    • getSliceHintOrBuilder

      SliceHintOrBuilder getSliceHintOrBuilder()
       Optional slice hint - if provided, GetFlightInfo returns only chunks
       covering this range. Leave unset/null to return all chunks.
       
      .biopb.tensor.SliceHint slice_hint = 6;
    • getScaleHintList

      List<Long> getScaleHintList()
       Per-dimension integer downsampling factors for virtual/scaled reads.
       Example: [1, 8, 8] means full resolution on first axis, 8x reduced on remaining.
       These do not change tensor identity, only how a specific read request is planned.
       
      repeated int64 scale_hint = 7;
      Returns:
      A list containing the scaleHint.
    • getScaleHintCount

      int getScaleHintCount()
       Per-dimension integer downsampling factors for virtual/scaled reads.
       Example: [1, 8, 8] means full resolution on first axis, 8x reduced on remaining.
       These do not change tensor identity, only how a specific read request is planned.
       
      repeated int64 scale_hint = 7;
      Returns:
      The count of scaleHint.
    • getScaleHint

      long getScaleHint(int index)
       Per-dimension integer downsampling factors for virtual/scaled reads.
       Example: [1, 8, 8] means full resolution on first axis, 8x reduced on remaining.
       These do not change tensor identity, only how a specific read request is planned.
       
      repeated int64 scale_hint = 7;
      Parameters:
      index - The index of the element to return.
      Returns:
      The scaleHint at the given index.
    • getReductionMethod

      String getReductionMethod()
       Dynamic reduction/downsampling method for scaled reads: "nearest", "area",
       or "precompute" (serve a native on-disk pyramid level).
       Compatibility aliases accepted: "stride" -> "nearest", "mean" -> "area",
       "precomputed" -> "precompute", "linear" (deprecated) -> "area".
       An empty or omitted value is resolved to "nearest" by the server.
       Clients that want averaging must set this field explicitly to "area".
       Note: already-cached chunk IDs that carry no method byte (issued before
       this default was established) are decoded as "area" for compatibility;
       only newly minted IDs default to "nearest".
       
      string reduction_method = 8;
      Returns:
      The reductionMethod.
    • getReductionMethodBytes

      com.google.protobuf.ByteString getReductionMethodBytes()
       Dynamic reduction/downsampling method for scaled reads: "nearest", "area",
       or "precompute" (serve a native on-disk pyramid level).
       Compatibility aliases accepted: "stride" -> "nearest", "mean" -> "area",
       "precomputed" -> "precompute", "linear" (deprecated) -> "area".
       An empty or omitted value is resolved to "nearest" by the server.
       Clients that want averaging must set this field explicitly to "area".
       Note: already-cached chunk IDs that carry no method byte (issued before
       this default was established) are decoded as "area" for compatibility;
       only newly minted IDs default to "nearest".
       
      string reduction_method = 8;
      Returns:
      The bytes for reductionMethod.
    • getMetadataJson

      String getMetadataJson()
       Opaque JSON metadata compatible with OME-NGFF (.zattrs schema).
       Contains: multiscales, axes, coordinateTransformations, channels, etc.
       For precomputed pyramids: multiscales[].datasets[].path and scale info.
       Empty string if no metadata available.
       
      string metadata_json = 9;
      Returns:
      The metadataJson.
    • getMetadataJsonBytes

      com.google.protobuf.ByteString getMetadataJsonBytes()
       Opaque JSON metadata compatible with OME-NGFF (.zattrs schema).
       Contains: multiscales, axes, coordinateTransformations, channels, etc.
       For precomputed pyramids: multiscales[].datasets[].path and scale info.
       Empty string if no metadata available.
       
      string metadata_json = 9;
      Returns:
      The bytes for metadataJson.
    • getPyramidList

      List<PyramidLevel> getPyramidList()
       Server-advertised resolution pyramid: the ordered levels the server
       recommends reading this tensor at, coarsest decision made server-side so
       native (precomputed) pyramids are honored and the precache worker and
       client request the same scales. Level 0 is full resolution
       (scale_hint all 1s). A client reads each level via the normal scale_hint
       read path. Populated only by GetFlightInfo (left empty in the catalog,
       like metadata_json); empty also means "old server / decide client-side".
       
      repeated .biopb.tensor.PyramidLevel pyramid = 10;
    • getPyramid

      PyramidLevel getPyramid(int index)
       Server-advertised resolution pyramid: the ordered levels the server
       recommends reading this tensor at, coarsest decision made server-side so
       native (precomputed) pyramids are honored and the precache worker and
       client request the same scales. Level 0 is full resolution
       (scale_hint all 1s). A client reads each level via the normal scale_hint
       read path. Populated only by GetFlightInfo (left empty in the catalog,
       like metadata_json); empty also means "old server / decide client-side".
       
      repeated .biopb.tensor.PyramidLevel pyramid = 10;
    • getPyramidCount

      int getPyramidCount()
       Server-advertised resolution pyramid: the ordered levels the server
       recommends reading this tensor at, coarsest decision made server-side so
       native (precomputed) pyramids are honored and the precache worker and
       client request the same scales. Level 0 is full resolution
       (scale_hint all 1s). A client reads each level via the normal scale_hint
       read path. Populated only by GetFlightInfo (left empty in the catalog,
       like metadata_json); empty also means "old server / decide client-side".
       
      repeated .biopb.tensor.PyramidLevel pyramid = 10;
    • getPyramidOrBuilderList

      List<? extends PyramidLevelOrBuilder> getPyramidOrBuilderList()
       Server-advertised resolution pyramid: the ordered levels the server
       recommends reading this tensor at, coarsest decision made server-side so
       native (precomputed) pyramids are honored and the precache worker and
       client request the same scales. Level 0 is full resolution
       (scale_hint all 1s). A client reads each level via the normal scale_hint
       read path. Populated only by GetFlightInfo (left empty in the catalog,
       like metadata_json); empty also means "old server / decide client-side".
       
      repeated .biopb.tensor.PyramidLevel pyramid = 10;
    • getPyramidOrBuilder

      PyramidLevelOrBuilder getPyramidOrBuilder(int index)
       Server-advertised resolution pyramid: the ordered levels the server
       recommends reading this tensor at, coarsest decision made server-side so
       native (precomputed) pyramids are honored and the precache worker and
       client request the same scales. Level 0 is full resolution
       (scale_hint all 1s). A client reads each level via the normal scale_hint
       read path. Populated only by GetFlightInfo (left empty in the catalog,
       like metadata_json); empty also means "old server / decide client-side".
       
      repeated .biopb.tensor.PyramidLevel pyramid = 10;
    • getPhysicalScaleList

      List<Double> getPhysicalScaleList()
       Per-dimension physical pixel size, aligned 1:1 with dim_labels/shape
       (same length and order). Element i is the physical extent of one sample
       along dimension i, in the unit given by physical_unit[i]. 0.0 means
       "unknown" for that dimension. This is the ~200-byte summary consumers need
       for display scale, so the common case avoids fetching the full OME tree.
       Populated by GetFlightInfo (left empty in the catalog, like pyramid /
       metadata_json); empty also means "old server / no physical scale -> the
       full OME (metadata_json) remains the authoritative source".
       
      repeated double physical_scale = 11;
      Returns:
      A list containing the physicalScale.
    • getPhysicalScaleCount

      int getPhysicalScaleCount()
       Per-dimension physical pixel size, aligned 1:1 with dim_labels/shape
       (same length and order). Element i is the physical extent of one sample
       along dimension i, in the unit given by physical_unit[i]. 0.0 means
       "unknown" for that dimension. This is the ~200-byte summary consumers need
       for display scale, so the common case avoids fetching the full OME tree.
       Populated by GetFlightInfo (left empty in the catalog, like pyramid /
       metadata_json); empty also means "old server / no physical scale -> the
       full OME (metadata_json) remains the authoritative source".
       
      repeated double physical_scale = 11;
      Returns:
      The count of physicalScale.
    • getPhysicalScale

      double getPhysicalScale(int index)
       Per-dimension physical pixel size, aligned 1:1 with dim_labels/shape
       (same length and order). Element i is the physical extent of one sample
       along dimension i, in the unit given by physical_unit[i]. 0.0 means
       "unknown" for that dimension. This is the ~200-byte summary consumers need
       for display scale, so the common case avoids fetching the full OME tree.
       Populated by GetFlightInfo (left empty in the catalog, like pyramid /
       metadata_json); empty also means "old server / no physical scale -> the
       full OME (metadata_json) remains the authoritative source".
       
      repeated double physical_scale = 11;
      Parameters:
      index - The index of the element to return.
      Returns:
      The physicalScale at the given index.
    • getPhysicalUnitList

      List<String> getPhysicalUnitList()
       Per-dimension unit string for physical_scale (e.g. "micrometer", "µm"),
       aligned 1:1 with physical_scale. "" means unknown.
       
      repeated string physical_unit = 12;
      Returns:
      A list containing the physicalUnit.
    • getPhysicalUnitCount

      int getPhysicalUnitCount()
       Per-dimension unit string for physical_scale (e.g. "micrometer", "µm"),
       aligned 1:1 with physical_scale. "" means unknown.
       
      repeated string physical_unit = 12;
      Returns:
      The count of physicalUnit.
    • getPhysicalUnit

      String getPhysicalUnit(int index)
       Per-dimension unit string for physical_scale (e.g. "micrometer", "µm"),
       aligned 1:1 with physical_scale. "" means unknown.
       
      repeated string physical_unit = 12;
      Parameters:
      index - The index of the element to return.
      Returns:
      The physicalUnit at the given index.
    • getPhysicalUnitBytes

      com.google.protobuf.ByteString getPhysicalUnitBytes(int index)
       Per-dimension unit string for physical_scale (e.g. "micrometer", "µm"),
       aligned 1:1 with physical_scale. "" means unknown.
       
      repeated string physical_unit = 12;
      Parameters:
      index - The index of the value to return.
      Returns:
      The bytes of the physicalUnit at the given index.
    • hasUploadStatus

      boolean hasUploadStatus()
       How far the upload backing this tensor has got, when one does; unset for
       every ordinary (file-backed) source. Populated only by GetFlightInfo, like
       `pyramid` and `physical_scale`, and left empty in the catalog.
      
       A live read, computed per request and stored nowhere -- which is what
       biopb/biopb#1035 actually requires. It rides the *per-source* surface
       because the caller who needs it holds a per-source credential and asks
       about one object: that is the fast-return poller. A catalog-shaped
       question would belong on a catalog-shaped surface.
       
      .biopb.tensor.UploadStatus upload_status = 15;
      Returns:
      Whether the uploadStatus field is set.
    • getUploadStatus

      UploadStatus getUploadStatus()
       How far the upload backing this tensor has got, when one does; unset for
       every ordinary (file-backed) source. Populated only by GetFlightInfo, like
       `pyramid` and `physical_scale`, and left empty in the catalog.
      
       A live read, computed per request and stored nowhere -- which is what
       biopb/biopb#1035 actually requires. It rides the *per-source* surface
       because the caller who needs it holds a per-source credential and asks
       about one object: that is the fast-return poller. A catalog-shaped
       question would belong on a catalog-shaped surface.
       
      .biopb.tensor.UploadStatus upload_status = 15;
      Returns:
      The uploadStatus.
    • getUploadStatusOrBuilder

      UploadStatusOrBuilder getUploadStatusOrBuilder()
       How far the upload backing this tensor has got, when one does; unset for
       every ordinary (file-backed) source. Populated only by GetFlightInfo, like
       `pyramid` and `physical_scale`, and left empty in the catalog.
      
       A live read, computed per request and stored nowhere -- which is what
       biopb/biopb#1035 actually requires. It rides the *per-source* surface
       because the caller who needs it holds a per-source credential and asks
       about one object: that is the fast-return poller. A catalog-shaped
       question would belong on a catalog-shaped surface.
       
      .biopb.tensor.UploadStatus upload_status = 15;
    • hasIsResident

      boolean hasIsResident()
       Whether this source's bytes are local and cheap to read *right now*.
      
       Filled only when the read mask asks for "is_resident", because the answer
       is a bounded stat walk of the source -- never free, so never default. Unset
       means nobody asked, which a UI draws as no indicator rather than as
       "remote".
      
       Volatile: a synced folder re-dehydrates under storage pressure with nothing
       to notify anyone, so there is no moment at which a stored answer stays true.
       Computed per request, stored nowhere, and not to be cached by a client
       (biopb/biopb#1035). It was briefly a catalog-wide action; that made a live
       filesystem walk the cost of listing, which is why it is here and per-source
       now.
       
      optional bool is_resident = 16;
      Returns:
      Whether the isResident field is set.
    • getIsResident

      boolean getIsResident()
       Whether this source's bytes are local and cheap to read *right now*.
      
       Filled only when the read mask asks for "is_resident", because the answer
       is a bounded stat walk of the source -- never free, so never default. Unset
       means nobody asked, which a UI draws as no indicator rather than as
       "remote".
      
       Volatile: a synced folder re-dehydrates under storage pressure with nothing
       to notify anyone, so there is no moment at which a stored answer stays true.
       Computed per request, stored nowhere, and not to be cached by a client
       (biopb/biopb#1035). It was briefly a catalog-wide action; that made a live
       filesystem walk the cost of listing, which is why it is here and per-source
       now.
       
      optional bool is_resident = 16;
      Returns:
      The isResident.
    • hasTtlSeconds

      boolean hasTtlSeconds()
       How long the server keeps this tensor, in seconds from `add_tensor`.
      
       **A request on the way in, a statement on the way out.** The server
       applies its own policy over what was asked for and answers with the
       lifetime it granted, which may be shorter: a source that caps lifetimes
       clamps an unset request to the cap too.
      
       Unset on the way in asks for the source's default; unset on the way out
       means the tensor is kept until someone discards it. Zero is not a lifetime
       and is refused rather than read as "expire immediately".
      
       The deadline is absolute and recorded with the store, so it survives a
       restart, and it runs from `add_tensor` rather than from READY -- a
       producer that never publishes cannot keep bytes alive by not finishing.
       Past it the reclaim sweep discards the tensor as if its producer had.
       
      optional uint32 ttl_seconds = 17;
      Returns:
      Whether the ttlSeconds field is set.
    • getTtlSeconds

      int getTtlSeconds()
       How long the server keeps this tensor, in seconds from `add_tensor`.
      
       **A request on the way in, a statement on the way out.** The server
       applies its own policy over what was asked for and answers with the
       lifetime it granted, which may be shorter: a source that caps lifetimes
       clamps an unset request to the cap too.
      
       Unset on the way in asks for the source's default; unset on the way out
       means the tensor is kept until someone discards it. Zero is not a lifetime
       and is refused rather than read as "expire immediately".
      
       The deadline is absolute and recorded with the store, so it survives a
       restart, and it runs from `add_tensor` rather than from READY -- a
       producer that never publishes cannot keep bytes alive by not finishing.
       Past it the reclaim sweep discards the tensor as if its producer had.
       
      optional uint32 ttl_seconds = 17;
      Returns:
      The ttlSeconds.
    • hasContentVersion

      boolean hasContentVersion()
       Opaque per-source generation token, sampled once at (re-)registration
       (biopb/biopb#178): the stat signature `mtime_ns:size` for a file/dir
       source, `iat:<ts>` for a caching proxy's mirror. Two descriptors carrying
       DIFFERENT tokens for one source describe different content; two carrying
       the SAME token describe the same content. It is not ordered -- newer is not
       "greater" -- and it is not a hash of the bytes, so an in-place edit that
       preserves mtime and size is invisible to it.
      
       A SERVING field, like chunk_shape and pyramid: filled by GetFlightInfo from
       the bound TENSOR adapter, left empty on the structural
       DataSourceDescriptor.tensors entries. Consumers need it on the freshest
       thing in the request, and GetFlightInfo is fetch-per-call by contract while
       a catalog listing is a natural thing to cache (biopb/biopb#834). Usually a
       source-level property repeated on the tensor, but not always: a tensor whose
       bytes are not the source's carries its own (an uploaded label set).
      
       Absent means "no claim", not "unchanged": a source whose URL cannot be
       stat'd (cloud, unresolved) leaves it unset, and consumers must degrade to
       whatever freshness policy they used before rather than treating absence as
       a stable version. Servers predating this field also leave it unset.
      
       Read it as a version suffix on the tensor's identity: an identifier built
       from it changes when the data changes. The HTTP sidecar does exactly that,
       splicing the token into the array_id it publishes so a browser cache keyed
       on a tile URL cannot outlive the content (biopb/biopb#780). A chunk cache
       needs nothing from this field -- the server folds the same value into
       chunk_id, where it invalidates for free.
      
       A claim about the DATA: it moves only when the data does. How the server
       forms an opaque chunk key, which must also change when chunking or
       normalization changes, is internal to the server and not visible here.
       
      optional bytes content_version = 14;
      Returns:
      Whether the contentVersion field is set.
    • getContentVersion

      com.google.protobuf.ByteString getContentVersion()
       Opaque per-source generation token, sampled once at (re-)registration
       (biopb/biopb#178): the stat signature `mtime_ns:size` for a file/dir
       source, `iat:<ts>` for a caching proxy's mirror. Two descriptors carrying
       DIFFERENT tokens for one source describe different content; two carrying
       the SAME token describe the same content. It is not ordered -- newer is not
       "greater" -- and it is not a hash of the bytes, so an in-place edit that
       preserves mtime and size is invisible to it.
      
       A SERVING field, like chunk_shape and pyramid: filled by GetFlightInfo from
       the bound TENSOR adapter, left empty on the structural
       DataSourceDescriptor.tensors entries. Consumers need it on the freshest
       thing in the request, and GetFlightInfo is fetch-per-call by contract while
       a catalog listing is a natural thing to cache (biopb/biopb#834). Usually a
       source-level property repeated on the tensor, but not always: a tensor whose
       bytes are not the source's carries its own (an uploaded label set).
      
       Absent means "no claim", not "unchanged": a source whose URL cannot be
       stat'd (cloud, unresolved) leaves it unset, and consumers must degrade to
       whatever freshness policy they used before rather than treating absence as
       a stable version. Servers predating this field also leave it unset.
      
       Read it as a version suffix on the tensor's identity: an identifier built
       from it changes when the data changes. The HTTP sidecar does exactly that,
       splicing the token into the array_id it publishes so a browser cache keyed
       on a tile URL cannot outlive the content (biopb/biopb#780). A chunk cache
       needs nothing from this field -- the server folds the same value into
       chunk_id, where it invalidates for free.
      
       A claim about the DATA: it moves only when the data does. How the server
       forms an opaque chunk key, which must also change when chunking or
       normalization changes, is internal to the server and not visible here.
       
      optional bytes content_version = 14;
      Returns:
      The contentVersion.