google-cloud-container 2.53.0__tar.gz → 2.54.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {google_cloud_container-2.53.0/google_cloud_container.egg-info → google_cloud_container-2.54.0}/PKG-INFO +1 -1
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container/__init__.py +4 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container/gapic_version.py +1 -1
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/__init__.py +4 -0
- {google_cloud_container-2.53.0/google/cloud/container_v1beta1 → google_cloud_container-2.54.0/google/cloud/container_v1}/gapic_version.py +1 -1
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/client.py +3 -37
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/types/__init__.py +4 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/types/cluster_service.py +190 -10
- {google_cloud_container-2.53.0/google/cloud/container_v1 → google_cloud_container-2.54.0/google/cloud/container_v1beta1}/gapic_version.py +1 -1
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/client.py +3 -37
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0/google_cloud_container.egg-info}/PKG-INFO +1 -1
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/container_v1/test_cluster_manager.py +0 -80
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/container_v1beta1/test_cluster_manager.py +0 -79
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/LICENSE +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/MANIFEST.in +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/README.rst +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container/py.typed +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/gapic_metadata.json +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/py.typed +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/async_client.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/pagers.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/base.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/grpc.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/grpc_asyncio.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/rest.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/services/cluster_manager/transports/rest_base.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/gapic_metadata.json +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/py.typed +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/async_client.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/pagers.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/transports/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/transports/base.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/transports/grpc.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/services/cluster_manager/transports/grpc_asyncio.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/types/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1beta1/types/cluster_service.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google_cloud_container.egg-info/SOURCES.txt +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google_cloud_container.egg-info/dependency_links.txt +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google_cloud_container.egg-info/not-zip-safe +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google_cloud_container.egg-info/requires.txt +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google_cloud_container.egg-info/top_level.txt +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/setup.cfg +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/setup.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/system/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/system/smoke_test.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/container_v1/__init__.py +0 -0
- {google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/container_v1beta1/__init__.py +0 -0
{google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container/__init__.py
RENAMED
|
@@ -64,6 +64,7 @@ from google.cloud.container_v1.types.cluster_service import (
|
|
|
64
64
|
DefaultSnatStatus,
|
|
65
65
|
DeleteClusterRequest,
|
|
66
66
|
DeleteNodePoolRequest,
|
|
67
|
+
DesiredEnterpriseConfig,
|
|
67
68
|
DnsCacheConfig,
|
|
68
69
|
DNSConfig,
|
|
69
70
|
EnterpriseConfig,
|
|
@@ -193,6 +194,7 @@ from google.cloud.container_v1.types.cluster_service import (
|
|
|
193
194
|
UpdateNodePoolRequest,
|
|
194
195
|
UpgradeAvailableEvent,
|
|
195
196
|
UpgradeEvent,
|
|
197
|
+
UpgradeInfoEvent,
|
|
196
198
|
UpgradeResourceType,
|
|
197
199
|
UsableSubnetwork,
|
|
198
200
|
UsableSubnetworkSecondaryRange,
|
|
@@ -246,6 +248,7 @@ __all__ = (
|
|
|
246
248
|
"DefaultSnatStatus",
|
|
247
249
|
"DeleteClusterRequest",
|
|
248
250
|
"DeleteNodePoolRequest",
|
|
251
|
+
"DesiredEnterpriseConfig",
|
|
249
252
|
"DnsCacheConfig",
|
|
250
253
|
"DNSConfig",
|
|
251
254
|
"EnterpriseConfig",
|
|
@@ -370,6 +373,7 @@ __all__ = (
|
|
|
370
373
|
"UpdateNodePoolRequest",
|
|
371
374
|
"UpgradeAvailableEvent",
|
|
372
375
|
"UpgradeEvent",
|
|
376
|
+
"UpgradeInfoEvent",
|
|
373
377
|
"UsableSubnetwork",
|
|
374
378
|
"UsableSubnetworkSecondaryRange",
|
|
375
379
|
"UserManagedKeysConfig",
|
|
@@ -59,6 +59,7 @@ from .types.cluster_service import (
|
|
|
59
59
|
DefaultSnatStatus,
|
|
60
60
|
DeleteClusterRequest,
|
|
61
61
|
DeleteNodePoolRequest,
|
|
62
|
+
DesiredEnterpriseConfig,
|
|
62
63
|
DnsCacheConfig,
|
|
63
64
|
DNSConfig,
|
|
64
65
|
EnterpriseConfig,
|
|
@@ -188,6 +189,7 @@ from .types.cluster_service import (
|
|
|
188
189
|
UpdateNodePoolRequest,
|
|
189
190
|
UpgradeAvailableEvent,
|
|
190
191
|
UpgradeEvent,
|
|
192
|
+
UpgradeInfoEvent,
|
|
191
193
|
UpgradeResourceType,
|
|
192
194
|
UsableSubnetwork,
|
|
193
195
|
UsableSubnetworkSecondaryRange,
|
|
@@ -243,6 +245,7 @@ __all__ = (
|
|
|
243
245
|
"DefaultSnatStatus",
|
|
244
246
|
"DeleteClusterRequest",
|
|
245
247
|
"DeleteNodePoolRequest",
|
|
248
|
+
"DesiredEnterpriseConfig",
|
|
246
249
|
"DnsCacheConfig",
|
|
247
250
|
"EnterpriseConfig",
|
|
248
251
|
"EphemeralStorageLocalSsdConfig",
|
|
@@ -371,6 +374,7 @@ __all__ = (
|
|
|
371
374
|
"UpdateNodePoolRequest",
|
|
372
375
|
"UpgradeAvailableEvent",
|
|
373
376
|
"UpgradeEvent",
|
|
377
|
+
"UpgradeInfoEvent",
|
|
374
378
|
"UpgradeResourceType",
|
|
375
379
|
"UsableSubnetwork",
|
|
376
380
|
"UsableSubnetworkSecondaryRange",
|
|
@@ -506,36 +506,6 @@ class ClusterManagerClient(metaclass=ClusterManagerClientMeta):
|
|
|
506
506
|
raise ValueError("Universe Domain cannot be an empty string.")
|
|
507
507
|
return universe_domain
|
|
508
508
|
|
|
509
|
-
@staticmethod
|
|
510
|
-
def _compare_universes(
|
|
511
|
-
client_universe: str, credentials: ga_credentials.Credentials
|
|
512
|
-
) -> bool:
|
|
513
|
-
"""Returns True iff the universe domains used by the client and credentials match.
|
|
514
|
-
|
|
515
|
-
Args:
|
|
516
|
-
client_universe (str): The universe domain configured via the client options.
|
|
517
|
-
credentials (ga_credentials.Credentials): The credentials being used in the client.
|
|
518
|
-
|
|
519
|
-
Returns:
|
|
520
|
-
bool: True iff client_universe matches the universe in credentials.
|
|
521
|
-
|
|
522
|
-
Raises:
|
|
523
|
-
ValueError: when client_universe does not match the universe in credentials.
|
|
524
|
-
"""
|
|
525
|
-
|
|
526
|
-
default_universe = ClusterManagerClient._DEFAULT_UNIVERSE
|
|
527
|
-
credentials_universe = getattr(credentials, "universe_domain", default_universe)
|
|
528
|
-
|
|
529
|
-
if client_universe != credentials_universe:
|
|
530
|
-
raise ValueError(
|
|
531
|
-
"The configured universe domain "
|
|
532
|
-
f"({client_universe}) does not match the universe domain "
|
|
533
|
-
f"found in the credentials ({credentials_universe}). "
|
|
534
|
-
"If you haven't configured the universe domain explicitly, "
|
|
535
|
-
f"`{default_universe}` is the default."
|
|
536
|
-
)
|
|
537
|
-
return True
|
|
538
|
-
|
|
539
509
|
def _validate_universe_domain(self):
|
|
540
510
|
"""Validates client's and credentials' universe domains are consistent.
|
|
541
511
|
|
|
@@ -545,13 +515,9 @@ class ClusterManagerClient(metaclass=ClusterManagerClientMeta):
|
|
|
545
515
|
Raises:
|
|
546
516
|
ValueError: If the configured universe domain is not valid.
|
|
547
517
|
"""
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
self.universe_domain, self.transport._credentials
|
|
552
|
-
)
|
|
553
|
-
)
|
|
554
|
-
return self._is_universe_domain_valid
|
|
518
|
+
|
|
519
|
+
# NOTE (b/349488459): universe validation is disabled until further notice.
|
|
520
|
+
return True
|
|
555
521
|
|
|
556
522
|
@property
|
|
557
523
|
def api_endpoint(self):
|
|
@@ -53,6 +53,7 @@ from .cluster_service import (
|
|
|
53
53
|
DefaultSnatStatus,
|
|
54
54
|
DeleteClusterRequest,
|
|
55
55
|
DeleteNodePoolRequest,
|
|
56
|
+
DesiredEnterpriseConfig,
|
|
56
57
|
DnsCacheConfig,
|
|
57
58
|
DNSConfig,
|
|
58
59
|
EnterpriseConfig,
|
|
@@ -182,6 +183,7 @@ from .cluster_service import (
|
|
|
182
183
|
UpdateNodePoolRequest,
|
|
183
184
|
UpgradeAvailableEvent,
|
|
184
185
|
UpgradeEvent,
|
|
186
|
+
UpgradeInfoEvent,
|
|
185
187
|
UpgradeResourceType,
|
|
186
188
|
UsableSubnetwork,
|
|
187
189
|
UsableSubnetworkSecondaryRange,
|
|
@@ -233,6 +235,7 @@ __all__ = (
|
|
|
233
235
|
"DefaultSnatStatus",
|
|
234
236
|
"DeleteClusterRequest",
|
|
235
237
|
"DeleteNodePoolRequest",
|
|
238
|
+
"DesiredEnterpriseConfig",
|
|
236
239
|
"DnsCacheConfig",
|
|
237
240
|
"DNSConfig",
|
|
238
241
|
"EnterpriseConfig",
|
|
@@ -357,6 +360,7 @@ __all__ = (
|
|
|
357
360
|
"UpdateNodePoolRequest",
|
|
358
361
|
"UpgradeAvailableEvent",
|
|
359
362
|
"UpgradeEvent",
|
|
363
|
+
"UpgradeInfoEvent",
|
|
360
364
|
"UsableSubnetwork",
|
|
361
365
|
"UsableSubnetworkSecondaryRange",
|
|
362
366
|
"UserManagedKeysConfig",
|
|
@@ -91,6 +91,7 @@ __protobuf__ = proto.module(
|
|
|
91
91
|
"ClusterUpdate",
|
|
92
92
|
"AdditionalPodRangesConfig",
|
|
93
93
|
"RangeInfo",
|
|
94
|
+
"DesiredEnterpriseConfig",
|
|
94
95
|
"Operation",
|
|
95
96
|
"OperationProgress",
|
|
96
97
|
"CreateClusterRequest",
|
|
@@ -182,6 +183,7 @@ __protobuf__ = proto.module(
|
|
|
182
183
|
"NotificationConfig",
|
|
183
184
|
"ConfidentialNodes",
|
|
184
185
|
"UpgradeEvent",
|
|
186
|
+
"UpgradeInfoEvent",
|
|
185
187
|
"UpgradeAvailableEvent",
|
|
186
188
|
"SecurityBulletinEvent",
|
|
187
189
|
"Autopilot",
|
|
@@ -359,7 +361,8 @@ class LinuxNodeConfig(proto.Message):
|
|
|
359
361
|
net.core.netdev_max_backlog net.core.rmem_max
|
|
360
362
|
net.core.wmem_default net.core.wmem_max net.core.optmem_max
|
|
361
363
|
net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem
|
|
362
|
-
net.ipv4.tcp_tw_reuse
|
|
364
|
+
net.ipv4.tcp_tw_reuse kernel.shmmni kernel.shmmax
|
|
365
|
+
kernel.shmall
|
|
363
366
|
cgroup_mode (google.cloud.container_v1.types.LinuxNodeConfig.CgroupMode):
|
|
364
367
|
cgroup_mode specifies the cgroup mode to be used on the
|
|
365
368
|
node.
|
|
@@ -780,6 +783,11 @@ class NodeConfig(proto.Message):
|
|
|
780
783
|
Secondary boot disk update strategy.
|
|
781
784
|
|
|
782
785
|
This field is a member of `oneof`_ ``_secondary_boot_disk_update_strategy``.
|
|
786
|
+
local_ssd_encryption_mode (google.cloud.container_v1.types.NodeConfig.LocalSsdEncryptionMode):
|
|
787
|
+
Specifies which method should be used for
|
|
788
|
+
encrypting the Local SSDs attahced to the node.
|
|
789
|
+
|
|
790
|
+
This field is a member of `oneof`_ ``_local_ssd_encryption_mode``.
|
|
783
791
|
effective_cgroup_mode (google.cloud.container_v1.types.NodeConfig.EffectiveCgroupMode):
|
|
784
792
|
Output only. effective_cgroup_mode is the cgroup mode
|
|
785
793
|
actually used by the node pool. It is determined by the
|
|
@@ -787,6 +795,29 @@ class NodeConfig(proto.Message):
|
|
|
787
795
|
cgroup mode based on the cluster creation version.
|
|
788
796
|
"""
|
|
789
797
|
|
|
798
|
+
class LocalSsdEncryptionMode(proto.Enum):
|
|
799
|
+
r"""LocalSsdEncryptionMode specifies the method used for
|
|
800
|
+
encrypting the Local SSDs attached to the node.
|
|
801
|
+
|
|
802
|
+
Values:
|
|
803
|
+
LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED (0):
|
|
804
|
+
The given node will be encrypted using keys
|
|
805
|
+
managed by Google infrastructure and the keys
|
|
806
|
+
will be deleted when the node is deleted.
|
|
807
|
+
STANDARD_ENCRYPTION (1):
|
|
808
|
+
The given node will be encrypted using keys
|
|
809
|
+
managed by Google infrastructure and the keys
|
|
810
|
+
will be deleted when the node is deleted.
|
|
811
|
+
EPHEMERAL_KEY_ENCRYPTION (2):
|
|
812
|
+
The given node will opt-in for using
|
|
813
|
+
ephemeral key for encryption of Local SSDs.
|
|
814
|
+
The Local SSDs will not be able to recover data
|
|
815
|
+
in case of node crash.
|
|
816
|
+
"""
|
|
817
|
+
LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED = 0
|
|
818
|
+
STANDARD_ENCRYPTION = 1
|
|
819
|
+
EPHEMERAL_KEY_ENCRYPTION = 2
|
|
820
|
+
|
|
790
821
|
class EffectiveCgroupMode(proto.Enum):
|
|
791
822
|
r"""Possible effective cgroup modes for the node.
|
|
792
823
|
|
|
@@ -995,6 +1026,12 @@ class NodeConfig(proto.Message):
|
|
|
995
1026
|
message="SecondaryBootDiskUpdateStrategy",
|
|
996
1027
|
)
|
|
997
1028
|
)
|
|
1029
|
+
local_ssd_encryption_mode: LocalSsdEncryptionMode = proto.Field(
|
|
1030
|
+
proto.ENUM,
|
|
1031
|
+
number=54,
|
|
1032
|
+
optional=True,
|
|
1033
|
+
enum=LocalSsdEncryptionMode,
|
|
1034
|
+
)
|
|
998
1035
|
effective_cgroup_mode: EffectiveCgroupMode = proto.Field(
|
|
999
1036
|
proto.ENUM,
|
|
1000
1037
|
number=55,
|
|
@@ -3750,6 +3787,9 @@ class NodePoolAutoConfig(proto.Message):
|
|
|
3750
3787
|
|
|
3751
3788
|
Currently only ``insecure_kubelet_readonly_port_enabled``
|
|
3752
3789
|
can be set here.
|
|
3790
|
+
linux_node_config (google.cloud.container_v1.types.LinuxNodeConfig):
|
|
3791
|
+
Output only. Configuration options for Linux
|
|
3792
|
+
nodes.
|
|
3753
3793
|
"""
|
|
3754
3794
|
|
|
3755
3795
|
network_tags: "NetworkTags" = proto.Field(
|
|
@@ -3767,6 +3807,11 @@ class NodePoolAutoConfig(proto.Message):
|
|
|
3767
3807
|
number=3,
|
|
3768
3808
|
message="NodeKubeletConfig",
|
|
3769
3809
|
)
|
|
3810
|
+
linux_node_config: "LinuxNodeConfig" = proto.Field(
|
|
3811
|
+
proto.MESSAGE,
|
|
3812
|
+
number=4,
|
|
3813
|
+
message="LinuxNodeConfig",
|
|
3814
|
+
)
|
|
3770
3815
|
|
|
3771
3816
|
|
|
3772
3817
|
class NodePoolDefaults(proto.Message):
|
|
@@ -4119,6 +4164,15 @@ class ClusterUpdate(proto.Message):
|
|
|
4119
4164
|
created.
|
|
4120
4165
|
|
|
4121
4166
|
This field is a member of `oneof`_ ``_desired_rbac_binding_config``.
|
|
4167
|
+
desired_enterprise_config (google.cloud.container_v1.types.DesiredEnterpriseConfig):
|
|
4168
|
+
The desired enterprise configuration for the
|
|
4169
|
+
cluster.
|
|
4170
|
+
desired_node_pool_auto_config_linux_node_config (google.cloud.container_v1.types.LinuxNodeConfig):
|
|
4171
|
+
The desired Linux node config for all auto-provisioned node
|
|
4172
|
+
pools in autopilot clusters and node auto-provisioning
|
|
4173
|
+
enabled clusters.
|
|
4174
|
+
|
|
4175
|
+
Currently only ``cgroup_mode`` can be set here.
|
|
4122
4176
|
"""
|
|
4123
4177
|
|
|
4124
4178
|
desired_node_version: str = proto.Field(
|
|
@@ -4431,6 +4485,16 @@ class ClusterUpdate(proto.Message):
|
|
|
4431
4485
|
optional=True,
|
|
4432
4486
|
message="RBACBindingConfig",
|
|
4433
4487
|
)
|
|
4488
|
+
desired_enterprise_config: "DesiredEnterpriseConfig" = proto.Field(
|
|
4489
|
+
proto.MESSAGE,
|
|
4490
|
+
number=147,
|
|
4491
|
+
message="DesiredEnterpriseConfig",
|
|
4492
|
+
)
|
|
4493
|
+
desired_node_pool_auto_config_linux_node_config: "LinuxNodeConfig" = proto.Field(
|
|
4494
|
+
proto.MESSAGE,
|
|
4495
|
+
number=150,
|
|
4496
|
+
message="LinuxNodeConfig",
|
|
4497
|
+
)
|
|
4434
4498
|
|
|
4435
4499
|
|
|
4436
4500
|
class AdditionalPodRangesConfig(proto.Message):
|
|
@@ -4478,6 +4542,22 @@ class RangeInfo(proto.Message):
|
|
|
4478
4542
|
)
|
|
4479
4543
|
|
|
4480
4544
|
|
|
4545
|
+
class DesiredEnterpriseConfig(proto.Message):
|
|
4546
|
+
r"""DesiredEnterpriseConfig is a wrapper used for updating
|
|
4547
|
+
enterprise_config.
|
|
4548
|
+
|
|
4549
|
+
Attributes:
|
|
4550
|
+
desired_tier (google.cloud.container_v1.types.EnterpriseConfig.ClusterTier):
|
|
4551
|
+
desired_tier specifies the desired tier of the cluster.
|
|
4552
|
+
"""
|
|
4553
|
+
|
|
4554
|
+
desired_tier: "EnterpriseConfig.ClusterTier" = proto.Field(
|
|
4555
|
+
proto.ENUM,
|
|
4556
|
+
number=1,
|
|
4557
|
+
enum="EnterpriseConfig.ClusterTier",
|
|
4558
|
+
)
|
|
4559
|
+
|
|
4560
|
+
|
|
4481
4561
|
class Operation(proto.Message):
|
|
4482
4562
|
r"""This operation resource represents operations that may have
|
|
4483
4563
|
happened or are happening on the cluster. All fields are output
|
|
@@ -7624,10 +7704,11 @@ class NodePoolAutoscaling(proto.Message):
|
|
|
7624
7704
|
enabled (bool):
|
|
7625
7705
|
Is autoscaling enabled for this node pool.
|
|
7626
7706
|
min_node_count (int):
|
|
7627
|
-
Minimum number of nodes for one location in the
|
|
7628
|
-
Must be
|
|
7707
|
+
Minimum number of nodes for one location in the node pool.
|
|
7708
|
+
Must be greater than or equal to 0 and less than or equal to
|
|
7709
|
+
max_node_count.
|
|
7629
7710
|
max_node_count (int):
|
|
7630
|
-
Maximum number of nodes for one location in the
|
|
7711
|
+
Maximum number of nodes for one location in the node pool.
|
|
7631
7712
|
Must be >= min_node_count. There has to be enough quota to
|
|
7632
7713
|
scale up the cluster.
|
|
7633
7714
|
autoprovisioned (bool):
|
|
@@ -7637,14 +7718,14 @@ class NodePoolAutoscaling(proto.Message):
|
|
|
7637
7718
|
nodepool.
|
|
7638
7719
|
total_min_node_count (int):
|
|
7639
7720
|
Minimum number of nodes in the node pool. Must be greater
|
|
7640
|
-
than
|
|
7641
|
-
total_*_node_count fields are
|
|
7642
|
-
\*_node_count fields.
|
|
7721
|
+
than or equal to 0 and less than or equal to
|
|
7722
|
+
total_max_node_count. The total_*_node_count fields are
|
|
7723
|
+
mutually exclusive with the \*_node_count fields.
|
|
7643
7724
|
total_max_node_count (int):
|
|
7644
7725
|
Maximum number of nodes in the node pool. Must be greater
|
|
7645
|
-
than total_min_node_count. There has to be
|
|
7646
|
-
scale up the cluster. The total_*_node_count
|
|
7647
|
-
mutually exclusive with the \*_node_count fields.
|
|
7726
|
+
than or equal to total_min_node_count. There has to be
|
|
7727
|
+
enough quota to scale up the cluster. The total_*_node_count
|
|
7728
|
+
fields are mutually exclusive with the \*_node_count fields.
|
|
7648
7729
|
"""
|
|
7649
7730
|
|
|
7650
7731
|
class LocationPolicy(proto.Enum):
|
|
@@ -9636,6 +9717,98 @@ class UpgradeEvent(proto.Message):
|
|
|
9636
9717
|
)
|
|
9637
9718
|
|
|
9638
9719
|
|
|
9720
|
+
class UpgradeInfoEvent(proto.Message):
|
|
9721
|
+
r"""UpgradeInfoEvent is a notification sent to customers about
|
|
9722
|
+
the upgrade information of a resource.
|
|
9723
|
+
|
|
9724
|
+
Attributes:
|
|
9725
|
+
resource_type (google.cloud.container_v1.types.UpgradeResourceType):
|
|
9726
|
+
The resource type associated with the
|
|
9727
|
+
upgrade.
|
|
9728
|
+
operation (str):
|
|
9729
|
+
The operation associated with this upgrade.
|
|
9730
|
+
start_time (google.protobuf.timestamp_pb2.Timestamp):
|
|
9731
|
+
The time when the operation was started.
|
|
9732
|
+
end_time (google.protobuf.timestamp_pb2.Timestamp):
|
|
9733
|
+
The time when the operation ended.
|
|
9734
|
+
current_version (str):
|
|
9735
|
+
The current version before the upgrade.
|
|
9736
|
+
target_version (str):
|
|
9737
|
+
The target version for the upgrade.
|
|
9738
|
+
resource (str):
|
|
9739
|
+
Optional relative path to the resource. For
|
|
9740
|
+
example in node pool upgrades, the relative path
|
|
9741
|
+
of the node pool.
|
|
9742
|
+
state (google.cloud.container_v1.types.UpgradeInfoEvent.State):
|
|
9743
|
+
Output only. The state of the upgrade.
|
|
9744
|
+
description (str):
|
|
9745
|
+
A brief description of the event.
|
|
9746
|
+
"""
|
|
9747
|
+
|
|
9748
|
+
class State(proto.Enum):
|
|
9749
|
+
r"""The state of the upgrade.
|
|
9750
|
+
|
|
9751
|
+
Values:
|
|
9752
|
+
STATE_UNSPECIFIED (0):
|
|
9753
|
+
STATE_UNSPECIFIED indicates the state is unspecified.
|
|
9754
|
+
STARTED (3):
|
|
9755
|
+
STARTED indicates the upgrade has started.
|
|
9756
|
+
SUCCEEDED (4):
|
|
9757
|
+
SUCCEEDED indicates the upgrade has completed
|
|
9758
|
+
successfully.
|
|
9759
|
+
FAILED (5):
|
|
9760
|
+
FAILED indicates the upgrade has failed.
|
|
9761
|
+
CANCELED (6):
|
|
9762
|
+
CANCELED indicates the upgrade has canceled.
|
|
9763
|
+
"""
|
|
9764
|
+
STATE_UNSPECIFIED = 0
|
|
9765
|
+
STARTED = 3
|
|
9766
|
+
SUCCEEDED = 4
|
|
9767
|
+
FAILED = 5
|
|
9768
|
+
CANCELED = 6
|
|
9769
|
+
|
|
9770
|
+
resource_type: "UpgradeResourceType" = proto.Field(
|
|
9771
|
+
proto.ENUM,
|
|
9772
|
+
number=1,
|
|
9773
|
+
enum="UpgradeResourceType",
|
|
9774
|
+
)
|
|
9775
|
+
operation: str = proto.Field(
|
|
9776
|
+
proto.STRING,
|
|
9777
|
+
number=2,
|
|
9778
|
+
)
|
|
9779
|
+
start_time: timestamp_pb2.Timestamp = proto.Field(
|
|
9780
|
+
proto.MESSAGE,
|
|
9781
|
+
number=3,
|
|
9782
|
+
message=timestamp_pb2.Timestamp,
|
|
9783
|
+
)
|
|
9784
|
+
end_time: timestamp_pb2.Timestamp = proto.Field(
|
|
9785
|
+
proto.MESSAGE,
|
|
9786
|
+
number=4,
|
|
9787
|
+
message=timestamp_pb2.Timestamp,
|
|
9788
|
+
)
|
|
9789
|
+
current_version: str = proto.Field(
|
|
9790
|
+
proto.STRING,
|
|
9791
|
+
number=5,
|
|
9792
|
+
)
|
|
9793
|
+
target_version: str = proto.Field(
|
|
9794
|
+
proto.STRING,
|
|
9795
|
+
number=6,
|
|
9796
|
+
)
|
|
9797
|
+
resource: str = proto.Field(
|
|
9798
|
+
proto.STRING,
|
|
9799
|
+
number=7,
|
|
9800
|
+
)
|
|
9801
|
+
state: State = proto.Field(
|
|
9802
|
+
proto.ENUM,
|
|
9803
|
+
number=8,
|
|
9804
|
+
enum=State,
|
|
9805
|
+
)
|
|
9806
|
+
description: str = proto.Field(
|
|
9807
|
+
proto.STRING,
|
|
9808
|
+
number=11,
|
|
9809
|
+
)
|
|
9810
|
+
|
|
9811
|
+
|
|
9639
9812
|
class UpgradeAvailableEvent(proto.Message):
|
|
9640
9813
|
r"""UpgradeAvailableEvent is a notification sent to customers
|
|
9641
9814
|
when a new available version is released.
|
|
@@ -10375,6 +10548,8 @@ class EnterpriseConfig(proto.Message):
|
|
|
10375
10548
|
cluster_tier (google.cloud.container_v1.types.EnterpriseConfig.ClusterTier):
|
|
10376
10549
|
Output only. cluster_tier indicates the effective tier of
|
|
10377
10550
|
the cluster.
|
|
10551
|
+
desired_tier (google.cloud.container_v1.types.EnterpriseConfig.ClusterTier):
|
|
10552
|
+
desired_tier specifies the desired tier of the cluster.
|
|
10378
10553
|
"""
|
|
10379
10554
|
|
|
10380
10555
|
class ClusterTier(proto.Enum):
|
|
@@ -10398,6 +10573,11 @@ class EnterpriseConfig(proto.Message):
|
|
|
10398
10573
|
number=1,
|
|
10399
10574
|
enum=ClusterTier,
|
|
10400
10575
|
)
|
|
10576
|
+
desired_tier: ClusterTier = proto.Field(
|
|
10577
|
+
proto.ENUM,
|
|
10578
|
+
number=2,
|
|
10579
|
+
enum=ClusterTier,
|
|
10580
|
+
)
|
|
10401
10581
|
|
|
10402
10582
|
|
|
10403
10583
|
class SecretManagerConfig(proto.Message):
|
|
@@ -456,36 +456,6 @@ class ClusterManagerClient(metaclass=ClusterManagerClientMeta):
|
|
|
456
456
|
raise ValueError("Universe Domain cannot be an empty string.")
|
|
457
457
|
return universe_domain
|
|
458
458
|
|
|
459
|
-
@staticmethod
|
|
460
|
-
def _compare_universes(
|
|
461
|
-
client_universe: str, credentials: ga_credentials.Credentials
|
|
462
|
-
) -> bool:
|
|
463
|
-
"""Returns True iff the universe domains used by the client and credentials match.
|
|
464
|
-
|
|
465
|
-
Args:
|
|
466
|
-
client_universe (str): The universe domain configured via the client options.
|
|
467
|
-
credentials (ga_credentials.Credentials): The credentials being used in the client.
|
|
468
|
-
|
|
469
|
-
Returns:
|
|
470
|
-
bool: True iff client_universe matches the universe in credentials.
|
|
471
|
-
|
|
472
|
-
Raises:
|
|
473
|
-
ValueError: when client_universe does not match the universe in credentials.
|
|
474
|
-
"""
|
|
475
|
-
|
|
476
|
-
default_universe = ClusterManagerClient._DEFAULT_UNIVERSE
|
|
477
|
-
credentials_universe = getattr(credentials, "universe_domain", default_universe)
|
|
478
|
-
|
|
479
|
-
if client_universe != credentials_universe:
|
|
480
|
-
raise ValueError(
|
|
481
|
-
"The configured universe domain "
|
|
482
|
-
f"({client_universe}) does not match the universe domain "
|
|
483
|
-
f"found in the credentials ({credentials_universe}). "
|
|
484
|
-
"If you haven't configured the universe domain explicitly, "
|
|
485
|
-
f"`{default_universe}` is the default."
|
|
486
|
-
)
|
|
487
|
-
return True
|
|
488
|
-
|
|
489
459
|
def _validate_universe_domain(self):
|
|
490
460
|
"""Validates client's and credentials' universe domains are consistent.
|
|
491
461
|
|
|
@@ -495,13 +465,9 @@ class ClusterManagerClient(metaclass=ClusterManagerClientMeta):
|
|
|
495
465
|
Raises:
|
|
496
466
|
ValueError: If the configured universe domain is not valid.
|
|
497
467
|
"""
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
self.universe_domain, self.transport._credentials
|
|
502
|
-
)
|
|
503
|
-
)
|
|
504
|
-
return self._is_universe_domain_valid
|
|
468
|
+
|
|
469
|
+
# NOTE (b/349488459): universe validation is disabled until further notice.
|
|
470
|
+
return True
|
|
505
471
|
|
|
506
472
|
@property
|
|
507
473
|
def api_endpoint(self):
|
|
@@ -323,86 +323,6 @@ def test__get_universe_domain():
|
|
|
323
323
|
assert str(excinfo.value) == "Universe Domain cannot be an empty string."
|
|
324
324
|
|
|
325
325
|
|
|
326
|
-
@pytest.mark.parametrize(
|
|
327
|
-
"client_class,transport_class,transport_name",
|
|
328
|
-
[
|
|
329
|
-
(ClusterManagerClient, transports.ClusterManagerGrpcTransport, "grpc"),
|
|
330
|
-
(ClusterManagerClient, transports.ClusterManagerRestTransport, "rest"),
|
|
331
|
-
],
|
|
332
|
-
)
|
|
333
|
-
def test__validate_universe_domain(client_class, transport_class, transport_name):
|
|
334
|
-
client = client_class(
|
|
335
|
-
transport=transport_class(credentials=ga_credentials.AnonymousCredentials())
|
|
336
|
-
)
|
|
337
|
-
assert client._validate_universe_domain() == True
|
|
338
|
-
|
|
339
|
-
# Test the case when universe is already validated.
|
|
340
|
-
assert client._validate_universe_domain() == True
|
|
341
|
-
|
|
342
|
-
if transport_name == "grpc":
|
|
343
|
-
# Test the case where credentials are provided by the
|
|
344
|
-
# `local_channel_credentials`. The default universes in both match.
|
|
345
|
-
channel = grpc.secure_channel(
|
|
346
|
-
"http://localhost/", grpc.local_channel_credentials()
|
|
347
|
-
)
|
|
348
|
-
client = client_class(transport=transport_class(channel=channel))
|
|
349
|
-
assert client._validate_universe_domain() == True
|
|
350
|
-
|
|
351
|
-
# Test the case where credentials do not exist: e.g. a transport is provided
|
|
352
|
-
# with no credentials. Validation should still succeed because there is no
|
|
353
|
-
# mismatch with non-existent credentials.
|
|
354
|
-
channel = grpc.secure_channel(
|
|
355
|
-
"http://localhost/", grpc.local_channel_credentials()
|
|
356
|
-
)
|
|
357
|
-
transport = transport_class(channel=channel)
|
|
358
|
-
transport._credentials = None
|
|
359
|
-
client = client_class(transport=transport)
|
|
360
|
-
assert client._validate_universe_domain() == True
|
|
361
|
-
|
|
362
|
-
# TODO: This is needed to cater for older versions of google-auth
|
|
363
|
-
# Make this test unconditional once the minimum supported version of
|
|
364
|
-
# google-auth becomes 2.23.0 or higher.
|
|
365
|
-
google_auth_major, google_auth_minor = [
|
|
366
|
-
int(part) for part in google.auth.__version__.split(".")[0:2]
|
|
367
|
-
]
|
|
368
|
-
if google_auth_major > 2 or (google_auth_major == 2 and google_auth_minor >= 23):
|
|
369
|
-
credentials = ga_credentials.AnonymousCredentials()
|
|
370
|
-
credentials._universe_domain = "foo.com"
|
|
371
|
-
# Test the case when there is a universe mismatch from the credentials.
|
|
372
|
-
client = client_class(transport=transport_class(credentials=credentials))
|
|
373
|
-
with pytest.raises(ValueError) as excinfo:
|
|
374
|
-
client._validate_universe_domain()
|
|
375
|
-
assert (
|
|
376
|
-
str(excinfo.value)
|
|
377
|
-
== "The configured universe domain (googleapis.com) does not match the universe domain found in the credentials (foo.com). If you haven't configured the universe domain explicitly, `googleapis.com` is the default."
|
|
378
|
-
)
|
|
379
|
-
|
|
380
|
-
# Test the case when there is a universe mismatch from the client.
|
|
381
|
-
#
|
|
382
|
-
# TODO: Make this test unconditional once the minimum supported version of
|
|
383
|
-
# google-api-core becomes 2.15.0 or higher.
|
|
384
|
-
api_core_major, api_core_minor = [
|
|
385
|
-
int(part) for part in api_core_version.__version__.split(".")[0:2]
|
|
386
|
-
]
|
|
387
|
-
if api_core_major > 2 or (api_core_major == 2 and api_core_minor >= 15):
|
|
388
|
-
client = client_class(
|
|
389
|
-
client_options={"universe_domain": "bar.com"},
|
|
390
|
-
transport=transport_class(
|
|
391
|
-
credentials=ga_credentials.AnonymousCredentials(),
|
|
392
|
-
),
|
|
393
|
-
)
|
|
394
|
-
with pytest.raises(ValueError) as excinfo:
|
|
395
|
-
client._validate_universe_domain()
|
|
396
|
-
assert (
|
|
397
|
-
str(excinfo.value)
|
|
398
|
-
== "The configured universe domain (bar.com) does not match the universe domain found in the credentials (googleapis.com). If you haven't configured the universe domain explicitly, `googleapis.com` is the default."
|
|
399
|
-
)
|
|
400
|
-
|
|
401
|
-
# Test that ValueError is raised if universe_domain is provided via client options and credentials is None
|
|
402
|
-
with pytest.raises(ValueError):
|
|
403
|
-
client._compare_universes("foo.bar", None)
|
|
404
|
-
|
|
405
|
-
|
|
406
326
|
@pytest.mark.parametrize(
|
|
407
327
|
"client_class,transport_name",
|
|
408
328
|
[
|
|
@@ -318,85 +318,6 @@ def test__get_universe_domain():
|
|
|
318
318
|
assert str(excinfo.value) == "Universe Domain cannot be an empty string."
|
|
319
319
|
|
|
320
320
|
|
|
321
|
-
@pytest.mark.parametrize(
|
|
322
|
-
"client_class,transport_class,transport_name",
|
|
323
|
-
[
|
|
324
|
-
(ClusterManagerClient, transports.ClusterManagerGrpcTransport, "grpc"),
|
|
325
|
-
],
|
|
326
|
-
)
|
|
327
|
-
def test__validate_universe_domain(client_class, transport_class, transport_name):
|
|
328
|
-
client = client_class(
|
|
329
|
-
transport=transport_class(credentials=ga_credentials.AnonymousCredentials())
|
|
330
|
-
)
|
|
331
|
-
assert client._validate_universe_domain() == True
|
|
332
|
-
|
|
333
|
-
# Test the case when universe is already validated.
|
|
334
|
-
assert client._validate_universe_domain() == True
|
|
335
|
-
|
|
336
|
-
if transport_name == "grpc":
|
|
337
|
-
# Test the case where credentials are provided by the
|
|
338
|
-
# `local_channel_credentials`. The default universes in both match.
|
|
339
|
-
channel = grpc.secure_channel(
|
|
340
|
-
"http://localhost/", grpc.local_channel_credentials()
|
|
341
|
-
)
|
|
342
|
-
client = client_class(transport=transport_class(channel=channel))
|
|
343
|
-
assert client._validate_universe_domain() == True
|
|
344
|
-
|
|
345
|
-
# Test the case where credentials do not exist: e.g. a transport is provided
|
|
346
|
-
# with no credentials. Validation should still succeed because there is no
|
|
347
|
-
# mismatch with non-existent credentials.
|
|
348
|
-
channel = grpc.secure_channel(
|
|
349
|
-
"http://localhost/", grpc.local_channel_credentials()
|
|
350
|
-
)
|
|
351
|
-
transport = transport_class(channel=channel)
|
|
352
|
-
transport._credentials = None
|
|
353
|
-
client = client_class(transport=transport)
|
|
354
|
-
assert client._validate_universe_domain() == True
|
|
355
|
-
|
|
356
|
-
# TODO: This is needed to cater for older versions of google-auth
|
|
357
|
-
# Make this test unconditional once the minimum supported version of
|
|
358
|
-
# google-auth becomes 2.23.0 or higher.
|
|
359
|
-
google_auth_major, google_auth_minor = [
|
|
360
|
-
int(part) for part in google.auth.__version__.split(".")[0:2]
|
|
361
|
-
]
|
|
362
|
-
if google_auth_major > 2 or (google_auth_major == 2 and google_auth_minor >= 23):
|
|
363
|
-
credentials = ga_credentials.AnonymousCredentials()
|
|
364
|
-
credentials._universe_domain = "foo.com"
|
|
365
|
-
# Test the case when there is a universe mismatch from the credentials.
|
|
366
|
-
client = client_class(transport=transport_class(credentials=credentials))
|
|
367
|
-
with pytest.raises(ValueError) as excinfo:
|
|
368
|
-
client._validate_universe_domain()
|
|
369
|
-
assert (
|
|
370
|
-
str(excinfo.value)
|
|
371
|
-
== "The configured universe domain (googleapis.com) does not match the universe domain found in the credentials (foo.com). If you haven't configured the universe domain explicitly, `googleapis.com` is the default."
|
|
372
|
-
)
|
|
373
|
-
|
|
374
|
-
# Test the case when there is a universe mismatch from the client.
|
|
375
|
-
#
|
|
376
|
-
# TODO: Make this test unconditional once the minimum supported version of
|
|
377
|
-
# google-api-core becomes 2.15.0 or higher.
|
|
378
|
-
api_core_major, api_core_minor = [
|
|
379
|
-
int(part) for part in api_core_version.__version__.split(".")[0:2]
|
|
380
|
-
]
|
|
381
|
-
if api_core_major > 2 or (api_core_major == 2 and api_core_minor >= 15):
|
|
382
|
-
client = client_class(
|
|
383
|
-
client_options={"universe_domain": "bar.com"},
|
|
384
|
-
transport=transport_class(
|
|
385
|
-
credentials=ga_credentials.AnonymousCredentials(),
|
|
386
|
-
),
|
|
387
|
-
)
|
|
388
|
-
with pytest.raises(ValueError) as excinfo:
|
|
389
|
-
client._validate_universe_domain()
|
|
390
|
-
assert (
|
|
391
|
-
str(excinfo.value)
|
|
392
|
-
== "The configured universe domain (bar.com) does not match the universe domain found in the credentials (googleapis.com). If you haven't configured the universe domain explicitly, `googleapis.com` is the default."
|
|
393
|
-
)
|
|
394
|
-
|
|
395
|
-
# Test that ValueError is raised if universe_domain is provided via client options and credentials is None
|
|
396
|
-
with pytest.raises(ValueError):
|
|
397
|
-
client._compare_universes("foo.bar", None)
|
|
398
|
-
|
|
399
|
-
|
|
400
321
|
@pytest.mark.parametrize(
|
|
401
322
|
"client_class,transport_name",
|
|
402
323
|
[
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/google/cloud/container_v1/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_container-2.53.0 → google_cloud_container-2.54.0}/tests/unit/gapic/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|