Package biopb.tensor

Class TensorDescriptor

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessageV3
biopb.tensor.TensorDescriptor
All Implemented Interfaces:
TensorDescriptorOrBuilder, com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Serializable

public final class TensorDescriptor extends com.google.protobuf.GeneratedMessageV3 implements TensorDescriptorOrBuilder
 Encoded into FlightDescriptor.cmd bytes (identifies the tensor)
 
Protobuf type biopb.tensor.TensorDescriptor
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    Encoded into FlightDescriptor.cmd bytes (identifies the tensor)

    Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3

    com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter

    Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite

    com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     

    Fields inherited from class com.google.protobuf.GeneratedMessageV3

    alwaysUseFieldBuilders, unknownFields

    Fields inherited from class com.google.protobuf.AbstractMessage

    memoizedSize

    Fields inherited from class com.google.protobuf.AbstractMessageLite

    memoizedHashCode
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    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.
     
     
    static final com.google.protobuf.Descriptors.Descriptor
     
    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"])
    com.google.protobuf.ProtocolStringList
    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).
    com.google.protobuf.Parser<TensorDescriptor>
     
    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.
    com.google.protobuf.ProtocolStringList
    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.
    int
     
    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.
    int
     
    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.
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
     
    final boolean
     
     
     
     
    newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
     
    protected Object
    newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
     
     
    parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    parseFrom(byte[] data)
     
    parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    parseFrom(com.google.protobuf.ByteString data)
     
    parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    parseFrom(com.google.protobuf.CodedInputStream input)
     
    parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
     
    parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
     
    parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
     
    static com.google.protobuf.Parser<TensorDescriptor>
     
     
    void
    writeTo(com.google.protobuf.CodedOutputStream output)
     

    Methods inherited from class com.google.protobuf.GeneratedMessageV3

    canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag

    Methods inherited from class com.google.protobuf.AbstractMessage

    findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString

    Methods inherited from class com.google.protobuf.AbstractMessageLite

    addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface com.google.protobuf.MessageLite

    toByteArray, toByteString, writeDelimitedTo, writeTo

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

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

    • ARRAY_ID_FIELD_NUMBER

      public static final int ARRAY_ID_FIELD_NUMBER
      See Also:
    • DIM_LABELS_FIELD_NUMBER

      public static final int DIM_LABELS_FIELD_NUMBER
      See Also:
    • SHAPE_FIELD_NUMBER

      public static final int SHAPE_FIELD_NUMBER
      See Also:
    • CHUNK_SHAPE_FIELD_NUMBER

      public static final int CHUNK_SHAPE_FIELD_NUMBER
      See Also:
    • DTYPE_FIELD_NUMBER

      public static final int DTYPE_FIELD_NUMBER
      See Also:
    • SLICE_HINT_FIELD_NUMBER

      public static final int SLICE_HINT_FIELD_NUMBER
      See Also:
    • SCALE_HINT_FIELD_NUMBER

      public static final int SCALE_HINT_FIELD_NUMBER
      See Also:
    • REDUCTION_METHOD_FIELD_NUMBER

      public static final int REDUCTION_METHOD_FIELD_NUMBER
      See Also:
    • METADATA_JSON_FIELD_NUMBER

      public static final int METADATA_JSON_FIELD_NUMBER
      See Also:
    • PYRAMID_FIELD_NUMBER

      public static final int PYRAMID_FIELD_NUMBER
      See Also:
    • PHYSICAL_SCALE_FIELD_NUMBER

      public static final int PHYSICAL_SCALE_FIELD_NUMBER
      See Also:
    • PHYSICAL_UNIT_FIELD_NUMBER

      public static final int PHYSICAL_UNIT_FIELD_NUMBER
      See Also:
    • UPLOAD_STATUS_FIELD_NUMBER

      public static final int UPLOAD_STATUS_FIELD_NUMBER
      See Also:
    • IS_RESIDENT_FIELD_NUMBER

      public static final int IS_RESIDENT_FIELD_NUMBER
      See Also:
    • TTL_SECONDS_FIELD_NUMBER

      public static final int TTL_SECONDS_FIELD_NUMBER
      See Also:
    • CONTENT_VERSION_FIELD_NUMBER

      public static final int CONTENT_VERSION_FIELD_NUMBER
      See Also:
  • Method Details

    • newInstance

      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      Overrides:
      newInstance in class com.google.protobuf.GeneratedMessageV3
    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
    • getArrayId

      public 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;
      Specified by:
      getArrayId in interface TensorDescriptorOrBuilder
      Returns:
      The arrayId.
    • getArrayIdBytes

      public 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;
      Specified by:
      getArrayIdBytes in interface TensorDescriptorOrBuilder
      Returns:
      The bytes for arrayId.
    • getDimLabelsList

      public com.google.protobuf.ProtocolStringList getDimLabelsList()
       Maps dimension index to semantic label (e.g., ["z", "y", "x"])
       
      repeated string dim_labels = 2;
      Specified by:
      getDimLabelsList in interface TensorDescriptorOrBuilder
      Returns:
      A list containing the dimLabels.
    • getDimLabelsCount

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

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

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

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

      public int getShapeCount()
       Full array shape (per dimension)
       
      repeated int64 shape = 3;
      Specified by:
      getShapeCount in interface TensorDescriptorOrBuilder
      Returns:
      The count of shape.
    • getShape

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

      public 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;
      Specified by:
      getChunkShapeList in interface TensorDescriptorOrBuilder
      Returns:
      A list containing the chunkShape.
    • getChunkShapeCount

      public 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;
      Specified by:
      getChunkShapeCount in interface TensorDescriptorOrBuilder
      Returns:
      The count of chunkShape.
    • getChunkShape

      public 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;
      Specified by:
      getChunkShape in interface TensorDescriptorOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The chunkShape at the given index.
    • getDtype

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

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

      public 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;
      Specified by:
      hasSliceHint in interface TensorDescriptorOrBuilder
      Returns:
      Whether the sliceHint field is set.
    • getSliceHint

      public 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;
      Specified by:
      getSliceHint in interface TensorDescriptorOrBuilder
      Returns:
      The sliceHint.
    • getSliceHintOrBuilder

      public 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;
      Specified by:
      getSliceHintOrBuilder in interface TensorDescriptorOrBuilder
    • getScaleHintList

      public 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;
      Specified by:
      getScaleHintList in interface TensorDescriptorOrBuilder
      Returns:
      A list containing the scaleHint.
    • getScaleHintCount

      public 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;
      Specified by:
      getScaleHintCount in interface TensorDescriptorOrBuilder
      Returns:
      The count of scaleHint.
    • getScaleHint

      public 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;
      Specified by:
      getScaleHint in interface TensorDescriptorOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The scaleHint at the given index.
    • getReductionMethod

      public 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;
      Specified by:
      getReductionMethod in interface TensorDescriptorOrBuilder
      Returns:
      The reductionMethod.
    • getReductionMethodBytes

      public 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;
      Specified by:
      getReductionMethodBytes in interface TensorDescriptorOrBuilder
      Returns:
      The bytes for reductionMethod.
    • getMetadataJson

      public 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;
      Specified by:
      getMetadataJson in interface TensorDescriptorOrBuilder
      Returns:
      The metadataJson.
    • getMetadataJsonBytes

      public 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;
      Specified by:
      getMetadataJsonBytes in interface TensorDescriptorOrBuilder
      Returns:
      The bytes for metadataJson.
    • getPyramidList

      public 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;
      Specified by:
      getPyramidList in interface TensorDescriptorOrBuilder
    • getPyramidOrBuilderList

      public 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;
      Specified by:
      getPyramidOrBuilderList in interface TensorDescriptorOrBuilder
    • getPyramidCount

      public 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;
      Specified by:
      getPyramidCount in interface TensorDescriptorOrBuilder
    • getPyramid

      public 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;
      Specified by:
      getPyramid in interface TensorDescriptorOrBuilder
    • getPyramidOrBuilder

      public 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;
      Specified by:
      getPyramidOrBuilder in interface TensorDescriptorOrBuilder
    • getPhysicalScaleList

      public 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;
      Specified by:
      getPhysicalScaleList in interface TensorDescriptorOrBuilder
      Returns:
      A list containing the physicalScale.
    • getPhysicalScaleCount

      public 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;
      Specified by:
      getPhysicalScaleCount in interface TensorDescriptorOrBuilder
      Returns:
      The count of physicalScale.
    • getPhysicalScale

      public 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;
      Specified by:
      getPhysicalScale in interface TensorDescriptorOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The physicalScale at the given index.
    • getPhysicalUnitList

      public com.google.protobuf.ProtocolStringList 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;
      Specified by:
      getPhysicalUnitList in interface TensorDescriptorOrBuilder
      Returns:
      A list containing the physicalUnit.
    • getPhysicalUnitCount

      public 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;
      Specified by:
      getPhysicalUnitCount in interface TensorDescriptorOrBuilder
      Returns:
      The count of physicalUnit.
    • getPhysicalUnit

      public 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;
      Specified by:
      getPhysicalUnit in interface TensorDescriptorOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The physicalUnit at the given index.
    • getPhysicalUnitBytes

      public 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;
      Specified by:
      getPhysicalUnitBytes in interface TensorDescriptorOrBuilder
      Parameters:
      index - The index of the value to return.
      Returns:
      The bytes of the physicalUnit at the given index.
    • hasUploadStatus

      public 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;
      Specified by:
      hasUploadStatus in interface TensorDescriptorOrBuilder
      Returns:
      Whether the uploadStatus field is set.
    • getUploadStatus

      public 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;
      Specified by:
      getUploadStatus in interface TensorDescriptorOrBuilder
      Returns:
      The uploadStatus.
    • getUploadStatusOrBuilder

      public 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;
      Specified by:
      getUploadStatusOrBuilder in interface TensorDescriptorOrBuilder
    • hasIsResident

      public 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;
      Specified by:
      hasIsResident in interface TensorDescriptorOrBuilder
      Returns:
      Whether the isResident field is set.
    • getIsResident

      public 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;
      Specified by:
      getIsResident in interface TensorDescriptorOrBuilder
      Returns:
      The isResident.
    • hasTtlSeconds

      public 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;
      Specified by:
      hasTtlSeconds in interface TensorDescriptorOrBuilder
      Returns:
      Whether the ttlSeconds field is set.
    • getTtlSeconds

      public 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;
      Specified by:
      getTtlSeconds in interface TensorDescriptorOrBuilder
      Returns:
      The ttlSeconds.
    • hasContentVersion

      public 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;
      Specified by:
      hasContentVersion in interface TensorDescriptorOrBuilder
      Returns:
      Whether the contentVersion field is set.
    • getContentVersion

      public 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;
      Specified by:
      getContentVersion in interface TensorDescriptorOrBuilder
      Returns:
      The contentVersion.
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessageV3
    • writeTo

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException
      Specified by:
      writeTo in interface com.google.protobuf.MessageLite
      Overrides:
      writeTo in class com.google.protobuf.GeneratedMessageV3
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface com.google.protobuf.Message
      Overrides:
      equals in class com.google.protobuf.AbstractMessage
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface com.google.protobuf.Message
      Overrides:
      hashCode in class com.google.protobuf.AbstractMessage
    • parseFrom

      public static TensorDescriptor parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TensorDescriptor parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TensorDescriptor parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TensorDescriptor parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TensorDescriptor parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TensorDescriptor parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static TensorDescriptor parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static TensorDescriptor parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static TensorDescriptor parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static TensorDescriptor parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static TensorDescriptor parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static TensorDescriptor parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • newBuilderForType

      public TensorDescriptor.Builder newBuilderForType()
      Specified by:
      newBuilderForType in interface com.google.protobuf.Message
      Specified by:
      newBuilderForType in interface com.google.protobuf.MessageLite
    • newBuilder

      public static TensorDescriptor.Builder newBuilder()
    • newBuilder

      public static TensorDescriptor.Builder newBuilder(TensorDescriptor prototype)
    • toBuilder

      public TensorDescriptor.Builder toBuilder()
      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

      protected TensorDescriptor.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      Specified by:
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
    • getDefaultInstance

      public static TensorDescriptor getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<TensorDescriptor> parser()
    • getParserForType

      public com.google.protobuf.Parser<TensorDescriptor> getParserForType()
      Specified by:
      getParserForType in interface com.google.protobuf.Message
      Specified by:
      getParserForType in interface com.google.protobuf.MessageLite
      Overrides:
      getParserForType in class com.google.protobuf.GeneratedMessageV3
    • getDefaultInstanceForType

      public TensorDescriptor getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder