google-cloud-cloudcontrolspartner 0.3.0__tar.gz → 0.4.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_cloudcontrolspartner-0.3.0/google_cloud_cloudcontrolspartner.egg-info → google_cloud_cloudcontrolspartner-0.4.0}/PKG-INFO +1 -1
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner/gapic_version.py +1 -1
- google_cloud_cloudcontrolspartner-0.4.0/google/cloud/cloudcontrolspartner_v1/__init__.py +213 -0
- {google_cloud_cloudcontrolspartner-0.3.0/google/cloud/cloudcontrolspartner_v1beta → google_cloud_cloudcontrolspartner-0.4.0/google/cloud/cloudcontrolspartner_v1}/gapic_version.py +1 -1
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/client.py +32 -14
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/client.py +36 -14
- google_cloud_cloudcontrolspartner-0.4.0/google/cloud/cloudcontrolspartner_v1beta/__init__.py +213 -0
- {google_cloud_cloudcontrolspartner-0.3.0/google/cloud/cloudcontrolspartner_v1 → google_cloud_cloudcontrolspartner-0.4.0/google/cloud/cloudcontrolspartner_v1beta}/gapic_version.py +1 -1
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/client.py +32 -14
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/client.py +36 -14
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0/google_cloud_cloudcontrolspartner.egg-info}/PKG-INFO +1 -1
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/tests/unit/gapic/cloudcontrolspartner_v1/test_cloud_controls_partner_core.py +228 -29
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/tests/unit/gapic/cloudcontrolspartner_v1/test_cloud_controls_partner_monitoring.py +262 -29
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/tests/unit/gapic/cloudcontrolspartner_v1beta/test_cloud_controls_partner_core.py +228 -29
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/tests/unit/gapic/cloudcontrolspartner_v1beta/test_cloud_controls_partner_monitoring.py +262 -29
- google_cloud_cloudcontrolspartner-0.3.0/google/cloud/cloudcontrolspartner_v1/__init__.py +0 -109
- google_cloud_cloudcontrolspartner-0.3.0/google/cloud/cloudcontrolspartner_v1beta/__init__.py +0 -109
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/LICENSE +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/MANIFEST.in +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/README.rst +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner/py.typed +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/gapic_metadata.json +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/py.typed +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/async_client.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/pagers.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/base.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/grpc.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/grpc_asyncio.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/rest.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/rest_base.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/async_client.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/pagers.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/base.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/grpc.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/grpc_asyncio.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/rest.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/rest_base.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/access_approval_requests.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/completion_state.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/core.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/customer_workloads.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/customers.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/ekm_connections.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/monitoring.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/partner_permissions.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/partners.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1/types/violations.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/gapic_metadata.json +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/py.typed +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/async_client.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/pagers.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/base.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/grpc.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/grpc_asyncio.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/rest.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/rest_base.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/async_client.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/pagers.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/base.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/grpc.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/grpc_asyncio.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/rest.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/rest_base.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/access_approval_requests.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/completion_state.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/core.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/customer_workloads.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/customers.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/ekm_connections.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/monitoring.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/partner_permissions.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/partners.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google/cloud/cloudcontrolspartner_v1beta/types/violations.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google_cloud_cloudcontrolspartner.egg-info/SOURCES.txt +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google_cloud_cloudcontrolspartner.egg-info/dependency_links.txt +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google_cloud_cloudcontrolspartner.egg-info/not-zip-safe +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google_cloud_cloudcontrolspartner.egg-info/requires.txt +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/google_cloud_cloudcontrolspartner.egg-info/top_level.txt +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/setup.cfg +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/setup.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/tests/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/tests/unit/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/tests/unit/gapic/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/tests/unit/gapic/cloudcontrolspartner_v1/__init__.py +0 -0
- {google_cloud_cloudcontrolspartner-0.3.0 → google_cloud_cloudcontrolspartner-0.4.0}/tests/unit/gapic/cloudcontrolspartner_v1beta/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: google-cloud-cloudcontrolspartner
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Google Cloud Cloudcontrolspartner API client library
|
|
5
5
|
Home-page: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-cloudcontrolspartner
|
|
6
6
|
Author: Google LLC
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Copyright 2025 Google LLC
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
#
|
|
16
|
+
import sys
|
|
17
|
+
|
|
18
|
+
import google.api_core as api_core
|
|
19
|
+
|
|
20
|
+
from google.cloud.cloudcontrolspartner_v1 import gapic_version as package_version
|
|
21
|
+
|
|
22
|
+
__version__ = package_version.__version__
|
|
23
|
+
|
|
24
|
+
if sys.version_info >= (3, 8): # pragma: NO COVER
|
|
25
|
+
from importlib import metadata
|
|
26
|
+
else: # pragma: NO COVER
|
|
27
|
+
# TODO(https://github.com/googleapis/python-api-core/issues/835): Remove
|
|
28
|
+
# this code path once we drop support for Python 3.7
|
|
29
|
+
import importlib_metadata as metadata
|
|
30
|
+
|
|
31
|
+
from .services.cloud_controls_partner_core import (
|
|
32
|
+
CloudControlsPartnerCoreAsyncClient,
|
|
33
|
+
CloudControlsPartnerCoreClient,
|
|
34
|
+
)
|
|
35
|
+
from .services.cloud_controls_partner_monitoring import (
|
|
36
|
+
CloudControlsPartnerMonitoringAsyncClient,
|
|
37
|
+
CloudControlsPartnerMonitoringClient,
|
|
38
|
+
)
|
|
39
|
+
from .types.access_approval_requests import (
|
|
40
|
+
AccessApprovalRequest,
|
|
41
|
+
AccessReason,
|
|
42
|
+
ListAccessApprovalRequestsRequest,
|
|
43
|
+
ListAccessApprovalRequestsResponse,
|
|
44
|
+
)
|
|
45
|
+
from .types.completion_state import CompletionState
|
|
46
|
+
from .types.core import OperationMetadata
|
|
47
|
+
from .types.customer_workloads import (
|
|
48
|
+
GetWorkloadRequest,
|
|
49
|
+
ListWorkloadsRequest,
|
|
50
|
+
ListWorkloadsResponse,
|
|
51
|
+
Workload,
|
|
52
|
+
WorkloadOnboardingState,
|
|
53
|
+
WorkloadOnboardingStep,
|
|
54
|
+
)
|
|
55
|
+
from .types.customers import (
|
|
56
|
+
CreateCustomerRequest,
|
|
57
|
+
Customer,
|
|
58
|
+
CustomerOnboardingState,
|
|
59
|
+
CustomerOnboardingStep,
|
|
60
|
+
DeleteCustomerRequest,
|
|
61
|
+
GetCustomerRequest,
|
|
62
|
+
ListCustomersRequest,
|
|
63
|
+
ListCustomersResponse,
|
|
64
|
+
UpdateCustomerRequest,
|
|
65
|
+
)
|
|
66
|
+
from .types.ekm_connections import (
|
|
67
|
+
EkmConnection,
|
|
68
|
+
EkmConnections,
|
|
69
|
+
GetEkmConnectionsRequest,
|
|
70
|
+
)
|
|
71
|
+
from .types.partner_permissions import GetPartnerPermissionsRequest, PartnerPermissions
|
|
72
|
+
from .types.partners import EkmMetadata, GetPartnerRequest, Partner, Sku
|
|
73
|
+
from .types.violations import (
|
|
74
|
+
GetViolationRequest,
|
|
75
|
+
ListViolationsRequest,
|
|
76
|
+
ListViolationsResponse,
|
|
77
|
+
Violation,
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
if hasattr(api_core, "check_python_version") and hasattr(
|
|
81
|
+
api_core, "check_dependency_versions"
|
|
82
|
+
): # pragma: NO COVER
|
|
83
|
+
api_core.check_python_version("google.cloud.cloudcontrolspartner_v1") # type: ignore
|
|
84
|
+
api_core.check_dependency_versions("google.cloud.cloudcontrolspartner_v1") # type: ignore
|
|
85
|
+
else: # pragma: NO COVER
|
|
86
|
+
# An older version of api_core is installed which does not define the
|
|
87
|
+
# functions above. We do equivalent checks manually.
|
|
88
|
+
try:
|
|
89
|
+
import sys
|
|
90
|
+
import warnings
|
|
91
|
+
|
|
92
|
+
_py_version_str = sys.version.split()[0]
|
|
93
|
+
_package_label = "google.cloud.cloudcontrolspartner_v1"
|
|
94
|
+
if sys.version_info < (3, 9):
|
|
95
|
+
warnings.warn(
|
|
96
|
+
"You are using a non-supported Python version "
|
|
97
|
+
+ f"({_py_version_str}). Google will not post any further "
|
|
98
|
+
+ f"updates to {_package_label} supporting this Python version. "
|
|
99
|
+
+ "Please upgrade to the latest Python version, or at "
|
|
100
|
+
+ f"least to Python 3.9, and then update {_package_label}.",
|
|
101
|
+
FutureWarning,
|
|
102
|
+
)
|
|
103
|
+
if sys.version_info[:2] == (3, 9):
|
|
104
|
+
warnings.warn(
|
|
105
|
+
f"You are using a Python version ({_py_version_str}) "
|
|
106
|
+
+ f"which Google will stop supporting in {_package_label} in "
|
|
107
|
+
+ "January 2026. Please "
|
|
108
|
+
+ "upgrade to the latest Python version, or at "
|
|
109
|
+
+ "least to Python 3.10, before then, and "
|
|
110
|
+
+ f"then update {_package_label}.",
|
|
111
|
+
FutureWarning,
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
def parse_version_to_tuple(version_string: str):
|
|
115
|
+
"""Safely converts a semantic version string to a comparable tuple of integers.
|
|
116
|
+
Example: "4.25.8" -> (4, 25, 8)
|
|
117
|
+
Ignores non-numeric parts and handles common version formats.
|
|
118
|
+
Args:
|
|
119
|
+
version_string: Version string in the format "x.y.z" or "x.y.z<suffix>"
|
|
120
|
+
Returns:
|
|
121
|
+
Tuple of integers for the parsed version string.
|
|
122
|
+
"""
|
|
123
|
+
parts = []
|
|
124
|
+
for part in version_string.split("."):
|
|
125
|
+
try:
|
|
126
|
+
parts.append(int(part))
|
|
127
|
+
except ValueError:
|
|
128
|
+
# If it's a non-numeric part (e.g., '1.0.0b1' -> 'b1'), stop here.
|
|
129
|
+
# This is a simplification compared to 'packaging.parse_version', but sufficient
|
|
130
|
+
# for comparing strictly numeric semantic versions.
|
|
131
|
+
break
|
|
132
|
+
return tuple(parts)
|
|
133
|
+
|
|
134
|
+
def _get_version(dependency_name):
|
|
135
|
+
try:
|
|
136
|
+
version_string: str = metadata.version(dependency_name)
|
|
137
|
+
parsed_version = parse_version_to_tuple(version_string)
|
|
138
|
+
return (parsed_version, version_string)
|
|
139
|
+
except Exception:
|
|
140
|
+
# Catch exceptions from metadata.version() (e.g., PackageNotFoundError)
|
|
141
|
+
# or errors during parse_version_to_tuple
|
|
142
|
+
return (None, "--")
|
|
143
|
+
|
|
144
|
+
_dependency_package = "google.protobuf"
|
|
145
|
+
_next_supported_version = "4.25.8"
|
|
146
|
+
_next_supported_version_tuple = (4, 25, 8)
|
|
147
|
+
_recommendation = " (we recommend 6.x)"
|
|
148
|
+
(_version_used, _version_used_string) = _get_version(_dependency_package)
|
|
149
|
+
if _version_used and _version_used < _next_supported_version_tuple:
|
|
150
|
+
warnings.warn(
|
|
151
|
+
f"Package {_package_label} depends on "
|
|
152
|
+
+ f"{_dependency_package}, currently installed at version "
|
|
153
|
+
+ f"{_version_used_string}. Future updates to "
|
|
154
|
+
+ f"{_package_label} will require {_dependency_package} at "
|
|
155
|
+
+ f"version {_next_supported_version} or higher{_recommendation}."
|
|
156
|
+
+ " Please ensure "
|
|
157
|
+
+ "that either (a) your Python environment doesn't pin the "
|
|
158
|
+
+ f"version of {_dependency_package}, so that updates to "
|
|
159
|
+
+ f"{_package_label} can require the higher version, or "
|
|
160
|
+
+ "(b) you manually update your Python environment to use at "
|
|
161
|
+
+ f"least version {_next_supported_version} of "
|
|
162
|
+
+ f"{_dependency_package}.",
|
|
163
|
+
FutureWarning,
|
|
164
|
+
)
|
|
165
|
+
except Exception:
|
|
166
|
+
warnings.warn(
|
|
167
|
+
"Could not determine the version of Python "
|
|
168
|
+
+ "currently being used. To continue receiving "
|
|
169
|
+
+ "updates for {_package_label}, ensure you are "
|
|
170
|
+
+ "using a supported version of Python; see "
|
|
171
|
+
+ "https://devguide.python.org/versions/"
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
__all__ = (
|
|
175
|
+
"CloudControlsPartnerCoreAsyncClient",
|
|
176
|
+
"CloudControlsPartnerMonitoringAsyncClient",
|
|
177
|
+
"AccessApprovalRequest",
|
|
178
|
+
"AccessReason",
|
|
179
|
+
"CloudControlsPartnerCoreClient",
|
|
180
|
+
"CloudControlsPartnerMonitoringClient",
|
|
181
|
+
"CompletionState",
|
|
182
|
+
"CreateCustomerRequest",
|
|
183
|
+
"Customer",
|
|
184
|
+
"CustomerOnboardingState",
|
|
185
|
+
"CustomerOnboardingStep",
|
|
186
|
+
"DeleteCustomerRequest",
|
|
187
|
+
"EkmConnection",
|
|
188
|
+
"EkmConnections",
|
|
189
|
+
"EkmMetadata",
|
|
190
|
+
"GetCustomerRequest",
|
|
191
|
+
"GetEkmConnectionsRequest",
|
|
192
|
+
"GetPartnerPermissionsRequest",
|
|
193
|
+
"GetPartnerRequest",
|
|
194
|
+
"GetViolationRequest",
|
|
195
|
+
"GetWorkloadRequest",
|
|
196
|
+
"ListAccessApprovalRequestsRequest",
|
|
197
|
+
"ListAccessApprovalRequestsResponse",
|
|
198
|
+
"ListCustomersRequest",
|
|
199
|
+
"ListCustomersResponse",
|
|
200
|
+
"ListViolationsRequest",
|
|
201
|
+
"ListViolationsResponse",
|
|
202
|
+
"ListWorkloadsRequest",
|
|
203
|
+
"ListWorkloadsResponse",
|
|
204
|
+
"OperationMetadata",
|
|
205
|
+
"Partner",
|
|
206
|
+
"PartnerPermissions",
|
|
207
|
+
"Sku",
|
|
208
|
+
"UpdateCustomerRequest",
|
|
209
|
+
"Violation",
|
|
210
|
+
"Workload",
|
|
211
|
+
"WorkloadOnboardingState",
|
|
212
|
+
"WorkloadOnboardingStep",
|
|
213
|
+
)
|
|
@@ -161,6 +161,34 @@ class CloudControlsPartnerCoreClient(metaclass=CloudControlsPartnerCoreClientMet
|
|
|
161
161
|
_DEFAULT_ENDPOINT_TEMPLATE = "cloudcontrolspartner.{UNIVERSE_DOMAIN}"
|
|
162
162
|
_DEFAULT_UNIVERSE = "googleapis.com"
|
|
163
163
|
|
|
164
|
+
@staticmethod
|
|
165
|
+
def _use_client_cert_effective():
|
|
166
|
+
"""Returns whether client certificate should be used for mTLS if the
|
|
167
|
+
google-auth version supports should_use_client_cert automatic mTLS enablement.
|
|
168
|
+
|
|
169
|
+
Alternatively, read from the GOOGLE_API_USE_CLIENT_CERTIFICATE env var.
|
|
170
|
+
|
|
171
|
+
Returns:
|
|
172
|
+
bool: whether client certificate should be used for mTLS
|
|
173
|
+
Raises:
|
|
174
|
+
ValueError: (If using a version of google-auth without should_use_client_cert and
|
|
175
|
+
GOOGLE_API_USE_CLIENT_CERTIFICATE is set to an unexpected value.)
|
|
176
|
+
"""
|
|
177
|
+
# check if google-auth version supports should_use_client_cert for automatic mTLS enablement
|
|
178
|
+
if hasattr(mtls, "should_use_client_cert"): # pragma: NO COVER
|
|
179
|
+
return mtls.should_use_client_cert()
|
|
180
|
+
else: # pragma: NO COVER
|
|
181
|
+
# if unsupported, fallback to reading from env var
|
|
182
|
+
use_client_cert_str = os.getenv(
|
|
183
|
+
"GOOGLE_API_USE_CLIENT_CERTIFICATE", "false"
|
|
184
|
+
).lower()
|
|
185
|
+
if use_client_cert_str not in ("true", "false"):
|
|
186
|
+
raise ValueError(
|
|
187
|
+
"Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be"
|
|
188
|
+
" either `true` or `false`"
|
|
189
|
+
)
|
|
190
|
+
return use_client_cert_str == "true"
|
|
191
|
+
|
|
164
192
|
@classmethod
|
|
165
193
|
def from_service_account_info(cls, info: dict, *args, **kwargs):
|
|
166
194
|
"""Creates an instance of this client using the provided credentials
|
|
@@ -466,12 +494,8 @@ class CloudControlsPartnerCoreClient(metaclass=CloudControlsPartnerCoreClientMet
|
|
|
466
494
|
)
|
|
467
495
|
if client_options is None:
|
|
468
496
|
client_options = client_options_lib.ClientOptions()
|
|
469
|
-
use_client_cert =
|
|
497
|
+
use_client_cert = CloudControlsPartnerCoreClient._use_client_cert_effective()
|
|
470
498
|
use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
|
|
471
|
-
if use_client_cert not in ("true", "false"):
|
|
472
|
-
raise ValueError(
|
|
473
|
-
"Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
|
|
474
|
-
)
|
|
475
499
|
if use_mtls_endpoint not in ("auto", "never", "always"):
|
|
476
500
|
raise MutualTLSChannelError(
|
|
477
501
|
"Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
|
|
@@ -479,7 +503,7 @@ class CloudControlsPartnerCoreClient(metaclass=CloudControlsPartnerCoreClientMet
|
|
|
479
503
|
|
|
480
504
|
# Figure out the client cert source to use.
|
|
481
505
|
client_cert_source = None
|
|
482
|
-
if use_client_cert
|
|
506
|
+
if use_client_cert:
|
|
483
507
|
if client_options.client_cert_source:
|
|
484
508
|
client_cert_source = client_options.client_cert_source
|
|
485
509
|
elif mtls.has_default_client_cert_source():
|
|
@@ -511,20 +535,14 @@ class CloudControlsPartnerCoreClient(metaclass=CloudControlsPartnerCoreClientMet
|
|
|
511
535
|
google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
|
|
512
536
|
is not any of ["auto", "never", "always"].
|
|
513
537
|
"""
|
|
514
|
-
use_client_cert =
|
|
515
|
-
"GOOGLE_API_USE_CLIENT_CERTIFICATE", "false"
|
|
516
|
-
).lower()
|
|
538
|
+
use_client_cert = CloudControlsPartnerCoreClient._use_client_cert_effective()
|
|
517
539
|
use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
|
|
518
540
|
universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
|
|
519
|
-
if use_client_cert not in ("true", "false"):
|
|
520
|
-
raise ValueError(
|
|
521
|
-
"Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
|
|
522
|
-
)
|
|
523
541
|
if use_mtls_endpoint not in ("auto", "never", "always"):
|
|
524
542
|
raise MutualTLSChannelError(
|
|
525
543
|
"Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
|
|
526
544
|
)
|
|
527
|
-
return use_client_cert
|
|
545
|
+
return use_client_cert, use_mtls_endpoint, universe_domain_env
|
|
528
546
|
|
|
529
547
|
@staticmethod
|
|
530
548
|
def _get_client_cert_source(provided_cert_source, use_cert_flag):
|
|
@@ -160,6 +160,34 @@ class CloudControlsPartnerMonitoringClient(
|
|
|
160
160
|
_DEFAULT_ENDPOINT_TEMPLATE = "cloudcontrolspartner.{UNIVERSE_DOMAIN}"
|
|
161
161
|
_DEFAULT_UNIVERSE = "googleapis.com"
|
|
162
162
|
|
|
163
|
+
@staticmethod
|
|
164
|
+
def _use_client_cert_effective():
|
|
165
|
+
"""Returns whether client certificate should be used for mTLS if the
|
|
166
|
+
google-auth version supports should_use_client_cert automatic mTLS enablement.
|
|
167
|
+
|
|
168
|
+
Alternatively, read from the GOOGLE_API_USE_CLIENT_CERTIFICATE env var.
|
|
169
|
+
|
|
170
|
+
Returns:
|
|
171
|
+
bool: whether client certificate should be used for mTLS
|
|
172
|
+
Raises:
|
|
173
|
+
ValueError: (If using a version of google-auth without should_use_client_cert and
|
|
174
|
+
GOOGLE_API_USE_CLIENT_CERTIFICATE is set to an unexpected value.)
|
|
175
|
+
"""
|
|
176
|
+
# check if google-auth version supports should_use_client_cert for automatic mTLS enablement
|
|
177
|
+
if hasattr(mtls, "should_use_client_cert"): # pragma: NO COVER
|
|
178
|
+
return mtls.should_use_client_cert()
|
|
179
|
+
else: # pragma: NO COVER
|
|
180
|
+
# if unsupported, fallback to reading from env var
|
|
181
|
+
use_client_cert_str = os.getenv(
|
|
182
|
+
"GOOGLE_API_USE_CLIENT_CERTIFICATE", "false"
|
|
183
|
+
).lower()
|
|
184
|
+
if use_client_cert_str not in ("true", "false"):
|
|
185
|
+
raise ValueError(
|
|
186
|
+
"Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be"
|
|
187
|
+
" either `true` or `false`"
|
|
188
|
+
)
|
|
189
|
+
return use_client_cert_str == "true"
|
|
190
|
+
|
|
163
191
|
@classmethod
|
|
164
192
|
def from_service_account_info(cls, info: dict, *args, **kwargs):
|
|
165
193
|
"""Creates an instance of this client using the provided credentials
|
|
@@ -351,12 +379,10 @@ class CloudControlsPartnerMonitoringClient(
|
|
|
351
379
|
)
|
|
352
380
|
if client_options is None:
|
|
353
381
|
client_options = client_options_lib.ClientOptions()
|
|
354
|
-
use_client_cert =
|
|
382
|
+
use_client_cert = (
|
|
383
|
+
CloudControlsPartnerMonitoringClient._use_client_cert_effective()
|
|
384
|
+
)
|
|
355
385
|
use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto")
|
|
356
|
-
if use_client_cert not in ("true", "false"):
|
|
357
|
-
raise ValueError(
|
|
358
|
-
"Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
|
|
359
|
-
)
|
|
360
386
|
if use_mtls_endpoint not in ("auto", "never", "always"):
|
|
361
387
|
raise MutualTLSChannelError(
|
|
362
388
|
"Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
|
|
@@ -364,7 +390,7 @@ class CloudControlsPartnerMonitoringClient(
|
|
|
364
390
|
|
|
365
391
|
# Figure out the client cert source to use.
|
|
366
392
|
client_cert_source = None
|
|
367
|
-
if use_client_cert
|
|
393
|
+
if use_client_cert:
|
|
368
394
|
if client_options.client_cert_source:
|
|
369
395
|
client_cert_source = client_options.client_cert_source
|
|
370
396
|
elif mtls.has_default_client_cert_source():
|
|
@@ -396,20 +422,16 @@ class CloudControlsPartnerMonitoringClient(
|
|
|
396
422
|
google.auth.exceptions.MutualTLSChannelError: If GOOGLE_API_USE_MTLS_ENDPOINT
|
|
397
423
|
is not any of ["auto", "never", "always"].
|
|
398
424
|
"""
|
|
399
|
-
use_client_cert =
|
|
400
|
-
|
|
401
|
-
)
|
|
425
|
+
use_client_cert = (
|
|
426
|
+
CloudControlsPartnerMonitoringClient._use_client_cert_effective()
|
|
427
|
+
)
|
|
402
428
|
use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
|
|
403
429
|
universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
|
|
404
|
-
if use_client_cert not in ("true", "false"):
|
|
405
|
-
raise ValueError(
|
|
406
|
-
"Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
|
|
407
|
-
)
|
|
408
430
|
if use_mtls_endpoint not in ("auto", "never", "always"):
|
|
409
431
|
raise MutualTLSChannelError(
|
|
410
432
|
"Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`"
|
|
411
433
|
)
|
|
412
|
-
return use_client_cert
|
|
434
|
+
return use_client_cert, use_mtls_endpoint, universe_domain_env
|
|
413
435
|
|
|
414
436
|
@staticmethod
|
|
415
437
|
def _get_client_cert_source(provided_cert_source, use_cert_flag):
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Copyright 2025 Google LLC
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
#
|
|
16
|
+
import sys
|
|
17
|
+
|
|
18
|
+
import google.api_core as api_core
|
|
19
|
+
|
|
20
|
+
from google.cloud.cloudcontrolspartner_v1beta import gapic_version as package_version
|
|
21
|
+
|
|
22
|
+
__version__ = package_version.__version__
|
|
23
|
+
|
|
24
|
+
if sys.version_info >= (3, 8): # pragma: NO COVER
|
|
25
|
+
from importlib import metadata
|
|
26
|
+
else: # pragma: NO COVER
|
|
27
|
+
# TODO(https://github.com/googleapis/python-api-core/issues/835): Remove
|
|
28
|
+
# this code path once we drop support for Python 3.7
|
|
29
|
+
import importlib_metadata as metadata
|
|
30
|
+
|
|
31
|
+
from .services.cloud_controls_partner_core import (
|
|
32
|
+
CloudControlsPartnerCoreAsyncClient,
|
|
33
|
+
CloudControlsPartnerCoreClient,
|
|
34
|
+
)
|
|
35
|
+
from .services.cloud_controls_partner_monitoring import (
|
|
36
|
+
CloudControlsPartnerMonitoringAsyncClient,
|
|
37
|
+
CloudControlsPartnerMonitoringClient,
|
|
38
|
+
)
|
|
39
|
+
from .types.access_approval_requests import (
|
|
40
|
+
AccessApprovalRequest,
|
|
41
|
+
AccessReason,
|
|
42
|
+
ListAccessApprovalRequestsRequest,
|
|
43
|
+
ListAccessApprovalRequestsResponse,
|
|
44
|
+
)
|
|
45
|
+
from .types.completion_state import CompletionState
|
|
46
|
+
from .types.core import OperationMetadata
|
|
47
|
+
from .types.customer_workloads import (
|
|
48
|
+
GetWorkloadRequest,
|
|
49
|
+
ListWorkloadsRequest,
|
|
50
|
+
ListWorkloadsResponse,
|
|
51
|
+
Workload,
|
|
52
|
+
WorkloadOnboardingState,
|
|
53
|
+
WorkloadOnboardingStep,
|
|
54
|
+
)
|
|
55
|
+
from .types.customers import (
|
|
56
|
+
CreateCustomerRequest,
|
|
57
|
+
Customer,
|
|
58
|
+
CustomerOnboardingState,
|
|
59
|
+
CustomerOnboardingStep,
|
|
60
|
+
DeleteCustomerRequest,
|
|
61
|
+
GetCustomerRequest,
|
|
62
|
+
ListCustomersRequest,
|
|
63
|
+
ListCustomersResponse,
|
|
64
|
+
UpdateCustomerRequest,
|
|
65
|
+
)
|
|
66
|
+
from .types.ekm_connections import (
|
|
67
|
+
EkmConnection,
|
|
68
|
+
EkmConnections,
|
|
69
|
+
GetEkmConnectionsRequest,
|
|
70
|
+
)
|
|
71
|
+
from .types.partner_permissions import GetPartnerPermissionsRequest, PartnerPermissions
|
|
72
|
+
from .types.partners import EkmMetadata, GetPartnerRequest, Partner, Sku
|
|
73
|
+
from .types.violations import (
|
|
74
|
+
GetViolationRequest,
|
|
75
|
+
ListViolationsRequest,
|
|
76
|
+
ListViolationsResponse,
|
|
77
|
+
Violation,
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
if hasattr(api_core, "check_python_version") and hasattr(
|
|
81
|
+
api_core, "check_dependency_versions"
|
|
82
|
+
): # pragma: NO COVER
|
|
83
|
+
api_core.check_python_version("google.cloud.cloudcontrolspartner_v1beta") # type: ignore
|
|
84
|
+
api_core.check_dependency_versions("google.cloud.cloudcontrolspartner_v1beta") # type: ignore
|
|
85
|
+
else: # pragma: NO COVER
|
|
86
|
+
# An older version of api_core is installed which does not define the
|
|
87
|
+
# functions above. We do equivalent checks manually.
|
|
88
|
+
try:
|
|
89
|
+
import sys
|
|
90
|
+
import warnings
|
|
91
|
+
|
|
92
|
+
_py_version_str = sys.version.split()[0]
|
|
93
|
+
_package_label = "google.cloud.cloudcontrolspartner_v1beta"
|
|
94
|
+
if sys.version_info < (3, 9):
|
|
95
|
+
warnings.warn(
|
|
96
|
+
"You are using a non-supported Python version "
|
|
97
|
+
+ f"({_py_version_str}). Google will not post any further "
|
|
98
|
+
+ f"updates to {_package_label} supporting this Python version. "
|
|
99
|
+
+ "Please upgrade to the latest Python version, or at "
|
|
100
|
+
+ f"least to Python 3.9, and then update {_package_label}.",
|
|
101
|
+
FutureWarning,
|
|
102
|
+
)
|
|
103
|
+
if sys.version_info[:2] == (3, 9):
|
|
104
|
+
warnings.warn(
|
|
105
|
+
f"You are using a Python version ({_py_version_str}) "
|
|
106
|
+
+ f"which Google will stop supporting in {_package_label} in "
|
|
107
|
+
+ "January 2026. Please "
|
|
108
|
+
+ "upgrade to the latest Python version, or at "
|
|
109
|
+
+ "least to Python 3.10, before then, and "
|
|
110
|
+
+ f"then update {_package_label}.",
|
|
111
|
+
FutureWarning,
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
def parse_version_to_tuple(version_string: str):
|
|
115
|
+
"""Safely converts a semantic version string to a comparable tuple of integers.
|
|
116
|
+
Example: "4.25.8" -> (4, 25, 8)
|
|
117
|
+
Ignores non-numeric parts and handles common version formats.
|
|
118
|
+
Args:
|
|
119
|
+
version_string: Version string in the format "x.y.z" or "x.y.z<suffix>"
|
|
120
|
+
Returns:
|
|
121
|
+
Tuple of integers for the parsed version string.
|
|
122
|
+
"""
|
|
123
|
+
parts = []
|
|
124
|
+
for part in version_string.split("."):
|
|
125
|
+
try:
|
|
126
|
+
parts.append(int(part))
|
|
127
|
+
except ValueError:
|
|
128
|
+
# If it's a non-numeric part (e.g., '1.0.0b1' -> 'b1'), stop here.
|
|
129
|
+
# This is a simplification compared to 'packaging.parse_version', but sufficient
|
|
130
|
+
# for comparing strictly numeric semantic versions.
|
|
131
|
+
break
|
|
132
|
+
return tuple(parts)
|
|
133
|
+
|
|
134
|
+
def _get_version(dependency_name):
|
|
135
|
+
try:
|
|
136
|
+
version_string: str = metadata.version(dependency_name)
|
|
137
|
+
parsed_version = parse_version_to_tuple(version_string)
|
|
138
|
+
return (parsed_version, version_string)
|
|
139
|
+
except Exception:
|
|
140
|
+
# Catch exceptions from metadata.version() (e.g., PackageNotFoundError)
|
|
141
|
+
# or errors during parse_version_to_tuple
|
|
142
|
+
return (None, "--")
|
|
143
|
+
|
|
144
|
+
_dependency_package = "google.protobuf"
|
|
145
|
+
_next_supported_version = "4.25.8"
|
|
146
|
+
_next_supported_version_tuple = (4, 25, 8)
|
|
147
|
+
_recommendation = " (we recommend 6.x)"
|
|
148
|
+
(_version_used, _version_used_string) = _get_version(_dependency_package)
|
|
149
|
+
if _version_used and _version_used < _next_supported_version_tuple:
|
|
150
|
+
warnings.warn(
|
|
151
|
+
f"Package {_package_label} depends on "
|
|
152
|
+
+ f"{_dependency_package}, currently installed at version "
|
|
153
|
+
+ f"{_version_used_string}. Future updates to "
|
|
154
|
+
+ f"{_package_label} will require {_dependency_package} at "
|
|
155
|
+
+ f"version {_next_supported_version} or higher{_recommendation}."
|
|
156
|
+
+ " Please ensure "
|
|
157
|
+
+ "that either (a) your Python environment doesn't pin the "
|
|
158
|
+
+ f"version of {_dependency_package}, so that updates to "
|
|
159
|
+
+ f"{_package_label} can require the higher version, or "
|
|
160
|
+
+ "(b) you manually update your Python environment to use at "
|
|
161
|
+
+ f"least version {_next_supported_version} of "
|
|
162
|
+
+ f"{_dependency_package}.",
|
|
163
|
+
FutureWarning,
|
|
164
|
+
)
|
|
165
|
+
except Exception:
|
|
166
|
+
warnings.warn(
|
|
167
|
+
"Could not determine the version of Python "
|
|
168
|
+
+ "currently being used. To continue receiving "
|
|
169
|
+
+ "updates for {_package_label}, ensure you are "
|
|
170
|
+
+ "using a supported version of Python; see "
|
|
171
|
+
+ "https://devguide.python.org/versions/"
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
__all__ = (
|
|
175
|
+
"CloudControlsPartnerCoreAsyncClient",
|
|
176
|
+
"CloudControlsPartnerMonitoringAsyncClient",
|
|
177
|
+
"AccessApprovalRequest",
|
|
178
|
+
"AccessReason",
|
|
179
|
+
"CloudControlsPartnerCoreClient",
|
|
180
|
+
"CloudControlsPartnerMonitoringClient",
|
|
181
|
+
"CompletionState",
|
|
182
|
+
"CreateCustomerRequest",
|
|
183
|
+
"Customer",
|
|
184
|
+
"CustomerOnboardingState",
|
|
185
|
+
"CustomerOnboardingStep",
|
|
186
|
+
"DeleteCustomerRequest",
|
|
187
|
+
"EkmConnection",
|
|
188
|
+
"EkmConnections",
|
|
189
|
+
"EkmMetadata",
|
|
190
|
+
"GetCustomerRequest",
|
|
191
|
+
"GetEkmConnectionsRequest",
|
|
192
|
+
"GetPartnerPermissionsRequest",
|
|
193
|
+
"GetPartnerRequest",
|
|
194
|
+
"GetViolationRequest",
|
|
195
|
+
"GetWorkloadRequest",
|
|
196
|
+
"ListAccessApprovalRequestsRequest",
|
|
197
|
+
"ListAccessApprovalRequestsResponse",
|
|
198
|
+
"ListCustomersRequest",
|
|
199
|
+
"ListCustomersResponse",
|
|
200
|
+
"ListViolationsRequest",
|
|
201
|
+
"ListViolationsResponse",
|
|
202
|
+
"ListWorkloadsRequest",
|
|
203
|
+
"ListWorkloadsResponse",
|
|
204
|
+
"OperationMetadata",
|
|
205
|
+
"Partner",
|
|
206
|
+
"PartnerPermissions",
|
|
207
|
+
"Sku",
|
|
208
|
+
"UpdateCustomerRequest",
|
|
209
|
+
"Violation",
|
|
210
|
+
"Workload",
|
|
211
|
+
"WorkloadOnboardingState",
|
|
212
|
+
"WorkloadOnboardingStep",
|
|
213
|
+
)
|