diff --git a/.librarian/state.yaml b/.librarian/state.yaml index aca1e2fca..71d0e465d 100644 --- a/.librarian/state.yaml +++ b/.librarian/state.yaml @@ -2,7 +2,7 @@ image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-li libraries: - id: google-cloud-bigtable version: 2.35.0 - last_generated_commit: a17b84add8318f780fcc8a027815d5fee644b9f7 + last_generated_commit: 9637e50bc0ff6a5e8944980aaf6a2b7f34a90910 apis: - path: google/bigtable/v2 service_config: bigtable_v2.yaml diff --git a/google/cloud/bigtable_admin/__init__.py b/google/cloud/bigtable_admin/__init__.py index 00353ea96..2d95b06c8 100644 --- a/google/cloud/bigtable_admin/__init__.py +++ b/google/cloud/bigtable_admin/__init__.py @@ -316,6 +316,8 @@ from google.cloud.bigtable_admin_v2.types.table import SchemaBundle from google.cloud.bigtable_admin_v2.types.table import Snapshot from google.cloud.bigtable_admin_v2.types.table import Table +from google.cloud.bigtable_admin_v2.types.table import TieredStorageConfig +from google.cloud.bigtable_admin_v2.types.table import TieredStorageRule from google.cloud.bigtable_admin_v2.types.table import RestoreSourceType from google.cloud.bigtable_admin_v2.types.types import Type @@ -441,6 +443,8 @@ "SchemaBundle", "Snapshot", "Table", + "TieredStorageConfig", + "TieredStorageRule", "RestoreSourceType", "Type", ) diff --git a/google/cloud/bigtable_admin_v2/__init__.py b/google/cloud/bigtable_admin_v2/__init__.py index 2102867f7..6a47979fd 100644 --- a/google/cloud/bigtable_admin_v2/__init__.py +++ b/google/cloud/bigtable_admin_v2/__init__.py @@ -150,6 +150,8 @@ from .types.table import SchemaBundle from .types.table import Snapshot from .types.table import Table +from .types.table import TieredStorageConfig +from .types.table import TieredStorageRule from .types.table import RestoreSourceType from .types.types import Type @@ -353,6 +355,8 @@ def _get_version(dependency_name): "StandardReadRemoteWrites", "StorageType", "Table", + "TieredStorageConfig", + "TieredStorageRule", "Type", "UndeleteTableMetadata", "UndeleteTableRequest", diff --git a/google/cloud/bigtable_admin_v2/types/__init__.py b/google/cloud/bigtable_admin_v2/types/__init__.py index e5deb36a1..d2036c7a3 100644 --- a/google/cloud/bigtable_admin_v2/types/__init__.py +++ b/google/cloud/bigtable_admin_v2/types/__init__.py @@ -139,6 +139,8 @@ SchemaBundle, Snapshot, Table, + TieredStorageConfig, + TieredStorageRule, RestoreSourceType, ) from .types import ( @@ -263,6 +265,8 @@ "SchemaBundle", "Snapshot", "Table", + "TieredStorageConfig", + "TieredStorageRule", "RestoreSourceType", "Type", ) diff --git a/google/cloud/bigtable_admin_v2/types/table.py b/google/cloud/bigtable_admin_v2/types/table.py index f6d1fe729..c4f23d5fa 100644 --- a/google/cloud/bigtable_admin_v2/types/table.py +++ b/google/cloud/bigtable_admin_v2/types/table.py @@ -40,6 +40,8 @@ "Snapshot", "Backup", "BackupInfo", + "TieredStorageConfig", + "TieredStorageRule", "ProtoSchema", "SchemaBundle", }, @@ -166,6 +168,17 @@ class Table(proto.Message): disabled. This field is a member of `oneof`_ ``automated_backup_config``. + tiered_storage_config (google.cloud.bigtable_admin_v2.types.TieredStorageConfig): + Rules to specify what data is stored in each + storage tier. Different tiers store data + differently, providing different trade-offs + between cost and performance. Different parts of + a table can be stored separately on different + tiers. + If a config is specified, tiered storage is + enabled for this table. Otherwise, tiered + storage is disabled. + Only SSD instances can configure tiered storage. row_key_schema (google.cloud.bigtable_admin_v2.types.Type.Struct): The row key schema for this table. The schema is used to decode the raw row key bytes into a structured format. The @@ -399,6 +412,11 @@ class AutomatedBackupPolicy(proto.Message): oneof="automated_backup_config", message=AutomatedBackupPolicy, ) + tiered_storage_config: "TieredStorageConfig" = proto.Field( + proto.MESSAGE, + number=14, + message="TieredStorageConfig", + ) row_key_schema: types.Type.Struct = proto.Field( proto.MESSAGE, number=15, @@ -1028,6 +1046,50 @@ class BackupInfo(proto.Message): ) +class TieredStorageConfig(proto.Message): + r"""Config for tiered storage. + A valid config must have a valid TieredStorageRule. Otherwise + the whole TieredStorageConfig must be unset. + By default all data is stored in the SSD tier (only SSD + instances can configure tiered storage). + + Attributes: + infrequent_access (google.cloud.bigtable_admin_v2.types.TieredStorageRule): + Rule to specify what data is stored in the + infrequent access(IA) tier. The IA tier allows + storing more data per node with reduced + performance. + """ + + infrequent_access: "TieredStorageRule" = proto.Field( + proto.MESSAGE, + number=1, + message="TieredStorageRule", + ) + + +class TieredStorageRule(proto.Message): + r"""Rule to specify what data is stored in a storage tier. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + include_if_older_than (google.protobuf.duration_pb2.Duration): + Include cells older than the given age. + For the infrequent access tier, this value must + be at least 30 days. + + This field is a member of `oneof`_ ``rule``. + """ + + include_if_older_than: duration_pb2.Duration = proto.Field( + proto.MESSAGE, + number=1, + oneof="rule", + message=duration_pb2.Duration, + ) + + class ProtoSchema(proto.Message): r"""Represents a protobuf schema. diff --git a/noxfile.py b/noxfile.py index 8df24410c..29de5901b 100644 --- a/noxfile.py +++ b/noxfile.py @@ -63,7 +63,7 @@ UNIT_TEST_EXTRAS: List[str] = [] UNIT_TEST_EXTRAS_BY_PYTHON: Dict[str, List[str]] = {} -SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.10", "3.14"] +SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ["3.9", "3.14"] SYSTEM_TEST_STANDARD_DEPENDENCIES: List[str] = [ "mock", "pytest", @@ -83,6 +83,7 @@ # 'docfx' is excluded since it only needs to run in 'docs-presubmit' nox.options.sessions = [ + "unit-3.9", "unit-3.10", "unit-3.11", "unit-3.12", @@ -516,7 +517,6 @@ def prerelease_deps(session, protobuf_implementation): # Remaining dependencies other_deps = [ "requests", - "cryptography", ] session.install(*other_deps) diff --git a/tests/unit/gapic/bigtable_admin_v2/test_bigtable_table_admin.py b/tests/unit/gapic/bigtable_admin_v2/test_bigtable_table_admin.py index cb5e8dd52..bff220693 100644 --- a/tests/unit/gapic/bigtable_admin_v2/test_bigtable_table_admin.py +++ b/tests/unit/gapic/bigtable_admin_v2/test_bigtable_table_admin.py @@ -23509,6 +23509,7 @@ def test_update_table_rest_call_success(request_type): "change_stream_config": {"retention_period": {"seconds": 751, "nanos": 543}}, "deletion_protection": True, "automated_backup_policy": {"retention_period": {}, "frequency": {}}, + "tiered_storage_config": {"infrequent_access": {"include_if_older_than": {}}}, "row_key_schema": { "fields": [ {