public sealed class Type : IMessage<Type>, IEquatable<Type>, IDeepCloneable<Type>, IBufferMessage, IMessage
Reference documentation and code samples for the Google Cloud Bigtable Administration v2 API class Type.
Type represents the type of data that is written to, read from, or stored
in Bigtable. It is heavily based on the GoogleSQL standard to help maintain
familiarity and consistency across products and features.
For compatibility with Bigtable's existing untyped APIs, each Type includes
an Encoding which describes how to convert to or from the underlying data.
Each encoding can operate in one of two modes:
Sorted: In this mode, Bigtable guarantees that Encode(X) <= Encode(Y)
if and only if X <= Y. This is useful anywhere sort order is important,
for example when encoding keys.
Distinct: In this mode, Bigtable guarantees that if X != Y then
Encode(X) != Encode(Y). However, the converse is not guaranteed. For
example, both "{'foo': '1', 'bar': '2'}" and "{'bar': '2', 'foo': '1'}"
are valid encodings of the same JSON value.
The API clearly documents which mode is used wherever an encoding can be
configured. Each encoding also documents which values are supported in which
modes. For example, when encoding INT64 as a numeric STRING, negative numbers
cannot be encoded in sorted mode. This is because INT64(1) > INT64(-1), but
STRING("-00001") > STRING("00001").
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-08 UTC."],[[["\u003cp\u003eThe latest version of the Google Cloud Bigtable Administration v2 API class Type is 3.24.0, with multiple previous versions available for reference, ranging from 3.23.0 down to 2.4.0.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eType\u003c/code\u003e class is central to defining the data types used in Google Bigtable, drawing heavily from the GoogleSQL standard to ensure familiarity and consistency, and offering \u003ccode\u003eEncoding\u003c/code\u003e for converting data to and from the Bigtable's untyped APIs.\u003c/p\u003e\n"],["\u003cp\u003eThe class supports two modes of data handling: Sorted mode, which guarantees sort order consistency, and Distinct mode, which ensures distinct values have distinct encodings, although the converse isn't guaranteed.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eType\u003c/code\u003e class includes many properties like AggregateType, ArrayType, BoolType, BytesType, DateType, Float32Type, Float64Type, Int64Type, KindCase, MapType, StringType, StructType, and TimestampType.\u003c/p\u003e\n"],["\u003cp\u003eThis class implements IMessage, IEquatable, IDeepCloneable, and IBufferMessage interfaces and inherits members from the object class, including GetHashCode, GetType, and ToString methods.\u003c/p\u003e\n"]]],[],null,["# Google Cloud Bigtable Administration v2 API - Class Type (3.29.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.29.0 (latest)](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/latest/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.28.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.28.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.27.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.27.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.26.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.26.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.25.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.25.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.24.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.24.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.23.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.23.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.22.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.22.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.21.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.21.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.20.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.20.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.19.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.19.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.18.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.18.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.17.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.17.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.16.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.16.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.15.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.15.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.14.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.14.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.13.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.13.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.12.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.12.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.11.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.11.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.10.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.10.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.9.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.9.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.8.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.8.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.7.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.7.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.6.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.6.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.5.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.5.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.4.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.4.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.3.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.3.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.2.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.2.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.1.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.1.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [3.0.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/3.0.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [2.9.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/2.9.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [2.8.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/2.8.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/2.7.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/2.6.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/2.5.0/Google.Cloud.Bigtable.Admin.V2.Type)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/2.4.0/Google.Cloud.Bigtable.Admin.V2.Type) \n\n public sealed class Type : IMessage\u003cType\u003e, IEquatable\u003cType\u003e, IDeepCloneable\u003cType\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google Cloud Bigtable Administration v2 API class Type.\n\n`Type` represents the type of data that is written to, read from, or stored\nin Bigtable. It is heavily based on the GoogleSQL standard to help maintain\nfamiliarity and consistency across products and features.\n\nFor compatibility with Bigtable's existing untyped APIs, each `Type` includes\nan `Encoding` which describes how to convert to or from the underlying data.\n\nEach encoding can operate in one of two modes:\n\n- Sorted: In this mode, Bigtable guarantees that `Encode(X) \u003c= Encode(Y)` if and only if `X \u003c= Y`. This is useful anywhere sort order is important, for example when encoding keys.\n- Distinct: In this mode, Bigtable guarantees that if `X != Y` then `Encode(X) != Encode(Y)`. However, the converse is not guaranteed. For example, both \"{'foo': '1', 'bar': '2'}\" and \"{'bar': '2', 'foo': '1'}\" are valid encodings of the same JSON value.\n\nThe API clearly documents which mode is used wherever an encoding can be\nconfigured. Each encoding also documents which values are supported in which\nmodes. For example, when encoding INT64 as a numeric STRING, negative numbers\ncannot be encoded in sorted mode. This is because `INT64(1) \u003e INT64(-1)`, but\n`STRING(\"-00001\") \u003e STRING(\"00001\")`. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Type \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Type](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/latest/Google.Cloud.Bigtable.Admin.V2.Type), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Type](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/latest/Google.Cloud.Bigtable.Admin.V2.Type), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Type](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/latest/Google.Cloud.Bigtable.Admin.V2.Type), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Bigtable.Admin.V2](/dotnet/docs/reference/Google.Cloud.Bigtable.Admin.V2/latest/Google.Cloud.Bigtable.Admin.V2)\n\nAssembly\n--------\n\nGoogle.Cloud.Bigtable.Admin.V2.dll\n\nConstructors\n------------\n\n### Type()\n\n public Type()\n\n### Type(Type)\n\n public Type(Type other)\n\nProperties\n----------\n\n### AggregateType\n\n public Type.Types.Aggregate AggregateType { get; set; }\n\nAggregate\n\n### ArrayType\n\n public Type.Types.Array ArrayType { get; set; }\n\nArray\n\n### BoolType\n\n public Type.Types.Bool BoolType { get; set; }\n\nBool\n\n### BytesType\n\n public Type.Types.Bytes BytesType { get; set; }\n\nBytes\n\n### DateType\n\n public Type.Types.Date DateType { get; set; }\n\nDate\n\n### EnumType\n\n public Type.Types.Enum EnumType { get; set; }\n\nEnum\n\n### Float32Type\n\n public Type.Types.Float32 Float32Type { get; set; }\n\nFloat32\n\n### Float64Type\n\n public Type.Types.Float64 Float64Type { get; set; }\n\nFloat64\n\n### Int64Type\n\n public Type.Types.Int64 Int64Type { get; set; }\n\nInt64\n\n### KindCase\n\n public Type.KindOneofCase KindCase { get; }\n\n### MapType\n\n public Type.Types.Map MapType { get; set; }\n\nMap\n\n### ProtoType\n\n public Type.Types.Proto ProtoType { get; set; }\n\nProto\n\n### StringType\n\n public Type.Types.String StringType { get; set; }\n\nString\n\n### StructType\n\n public Type.Types.Struct StructType { get; set; }\n\nStruct\n\n### TimestampType\n\n public Type.Types.Timestamp TimestampType { get; set; }\n\nTimestamp"]]