google-cloud-cloudcontrolspartner 0.1.0__py3-none-any.whl

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.
Files changed (76) hide show
  1. google/cloud/cloudcontrolspartner/__init__.py +115 -0
  2. google/cloud/cloudcontrolspartner/gapic_version.py +16 -0
  3. google/cloud/cloudcontrolspartner/py.typed +2 -0
  4. google/cloud/cloudcontrolspartner_v1/__init__.py +103 -0
  5. google/cloud/cloudcontrolspartner_v1/gapic_metadata.json +197 -0
  6. google/cloud/cloudcontrolspartner_v1/gapic_version.py +16 -0
  7. google/cloud/cloudcontrolspartner_v1/py.typed +2 -0
  8. google/cloud/cloudcontrolspartner_v1/services/__init__.py +15 -0
  9. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/__init__.py +22 -0
  10. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/async_client.py +1253 -0
  11. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/client.py +1705 -0
  12. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/pagers.py +429 -0
  13. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/__init__.py +41 -0
  14. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/base.py +340 -0
  15. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/grpc.py +466 -0
  16. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/grpc_asyncio.py +472 -0
  17. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_core/transports/rest.py +1212 -0
  18. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/__init__.py +22 -0
  19. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/async_client.py +528 -0
  20. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/client.py +935 -0
  21. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/pagers.py +155 -0
  22. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/__init__.py +41 -0
  23. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/base.py +194 -0
  24. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/grpc.py +300 -0
  25. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/grpc_asyncio.py +299 -0
  26. google/cloud/cloudcontrolspartner_v1/services/cloud_controls_partner_monitoring/transports/rest.py +434 -0
  27. google/cloud/cloudcontrolspartner_v1/types/__init__.py +82 -0
  28. google/cloud/cloudcontrolspartner_v1/types/access_approval_requests.py +228 -0
  29. google/cloud/cloudcontrolspartner_v1/types/completion_state.py +53 -0
  30. google/cloud/cloudcontrolspartner_v1/types/core.py +93 -0
  31. google/cloud/cloudcontrolspartner_v1/types/customer_workloads.py +300 -0
  32. google/cloud/cloudcontrolspartner_v1/types/customers.py +233 -0
  33. google/cloud/cloudcontrolspartner_v1/types/ekm_connections.py +141 -0
  34. google/cloud/cloudcontrolspartner_v1/types/monitoring.py +24 -0
  35. google/cloud/cloudcontrolspartner_v1/types/partner_permissions.py +94 -0
  36. google/cloud/cloudcontrolspartner_v1/types/partners.py +188 -0
  37. google/cloud/cloudcontrolspartner_v1/types/violations.py +388 -0
  38. google/cloud/cloudcontrolspartner_v1beta/__init__.py +103 -0
  39. google/cloud/cloudcontrolspartner_v1beta/gapic_metadata.json +197 -0
  40. google/cloud/cloudcontrolspartner_v1beta/gapic_version.py +16 -0
  41. google/cloud/cloudcontrolspartner_v1beta/py.typed +2 -0
  42. google/cloud/cloudcontrolspartner_v1beta/services/__init__.py +15 -0
  43. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/__init__.py +22 -0
  44. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/async_client.py +1262 -0
  45. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/client.py +1714 -0
  46. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/pagers.py +429 -0
  47. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/__init__.py +41 -0
  48. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/base.py +340 -0
  49. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/grpc.py +466 -0
  50. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/grpc_asyncio.py +472 -0
  51. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_core/transports/rest.py +1212 -0
  52. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/__init__.py +22 -0
  53. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/async_client.py +530 -0
  54. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/client.py +937 -0
  55. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/pagers.py +155 -0
  56. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/__init__.py +41 -0
  57. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/base.py +194 -0
  58. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/grpc.py +300 -0
  59. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/grpc_asyncio.py +299 -0
  60. google/cloud/cloudcontrolspartner_v1beta/services/cloud_controls_partner_monitoring/transports/rest.py +434 -0
  61. google/cloud/cloudcontrolspartner_v1beta/types/__init__.py +82 -0
  62. google/cloud/cloudcontrolspartner_v1beta/types/access_approval_requests.py +230 -0
  63. google/cloud/cloudcontrolspartner_v1beta/types/completion_state.py +53 -0
  64. google/cloud/cloudcontrolspartner_v1beta/types/core.py +93 -0
  65. google/cloud/cloudcontrolspartner_v1beta/types/customer_workloads.py +304 -0
  66. google/cloud/cloudcontrolspartner_v1beta/types/customers.py +236 -0
  67. google/cloud/cloudcontrolspartner_v1beta/types/ekm_connections.py +143 -0
  68. google/cloud/cloudcontrolspartner_v1beta/types/monitoring.py +24 -0
  69. google/cloud/cloudcontrolspartner_v1beta/types/partner_permissions.py +96 -0
  70. google/cloud/cloudcontrolspartner_v1beta/types/partners.py +189 -0
  71. google/cloud/cloudcontrolspartner_v1beta/types/violations.py +391 -0
  72. google_cloud_cloudcontrolspartner-0.1.0.dist-info/LICENSE +202 -0
  73. google_cloud_cloudcontrolspartner-0.1.0.dist-info/METADATA +137 -0
  74. google_cloud_cloudcontrolspartner-0.1.0.dist-info/RECORD +76 -0
  75. google_cloud_cloudcontrolspartner-0.1.0.dist-info/WHEEL +5 -0
  76. google_cloud_cloudcontrolspartner-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,434 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright 2023 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
+
17
+ import dataclasses
18
+ import json # type: ignore
19
+ import re
20
+ from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
21
+ import warnings
22
+
23
+ from google.api_core import gapic_v1, path_template, rest_helpers, rest_streaming
24
+ from google.api_core import exceptions as core_exceptions
25
+ from google.api_core import retry as retries
26
+ from google.auth import credentials as ga_credentials # type: ignore
27
+ from google.auth.transport.grpc import SslCredentials # type: ignore
28
+ from google.auth.transport.requests import AuthorizedSession # type: ignore
29
+ from google.protobuf import json_format
30
+ import grpc # type: ignore
31
+ from requests import __version__ as requests_version
32
+
33
+ try:
34
+ OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None]
35
+ except AttributeError: # pragma: NO COVER
36
+ OptionalRetry = Union[retries.Retry, object, None] # type: ignore
37
+
38
+
39
+ from google.cloud.cloudcontrolspartner_v1beta.types import violations
40
+
41
+ from .base import CloudControlsPartnerMonitoringTransport
42
+ from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO
43
+
44
+ DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
45
+ gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version,
46
+ grpc_version=None,
47
+ rest_version=requests_version,
48
+ )
49
+
50
+
51
+ class CloudControlsPartnerMonitoringRestInterceptor:
52
+ """Interceptor for CloudControlsPartnerMonitoring.
53
+
54
+ Interceptors are used to manipulate requests, request metadata, and responses
55
+ in arbitrary ways.
56
+ Example use cases include:
57
+ * Logging
58
+ * Verifying requests according to service or custom semantics
59
+ * Stripping extraneous information from responses
60
+
61
+ These use cases and more can be enabled by injecting an
62
+ instance of a custom subclass when constructing the CloudControlsPartnerMonitoringRestTransport.
63
+
64
+ .. code-block:: python
65
+ class MyCustomCloudControlsPartnerMonitoringInterceptor(CloudControlsPartnerMonitoringRestInterceptor):
66
+ def pre_get_violation(self, request, metadata):
67
+ logging.log(f"Received request: {request}")
68
+ return request, metadata
69
+
70
+ def post_get_violation(self, response):
71
+ logging.log(f"Received response: {response}")
72
+ return response
73
+
74
+ def pre_list_violations(self, request, metadata):
75
+ logging.log(f"Received request: {request}")
76
+ return request, metadata
77
+
78
+ def post_list_violations(self, response):
79
+ logging.log(f"Received response: {response}")
80
+ return response
81
+
82
+ transport = CloudControlsPartnerMonitoringRestTransport(interceptor=MyCustomCloudControlsPartnerMonitoringInterceptor())
83
+ client = CloudControlsPartnerMonitoringClient(transport=transport)
84
+
85
+
86
+ """
87
+
88
+ def pre_get_violation(
89
+ self,
90
+ request: violations.GetViolationRequest,
91
+ metadata: Sequence[Tuple[str, str]],
92
+ ) -> Tuple[violations.GetViolationRequest, Sequence[Tuple[str, str]]]:
93
+ """Pre-rpc interceptor for get_violation
94
+
95
+ Override in a subclass to manipulate the request or metadata
96
+ before they are sent to the CloudControlsPartnerMonitoring server.
97
+ """
98
+ return request, metadata
99
+
100
+ def post_get_violation(
101
+ self, response: violations.Violation
102
+ ) -> violations.Violation:
103
+ """Post-rpc interceptor for get_violation
104
+
105
+ Override in a subclass to manipulate the response
106
+ after it is returned by the CloudControlsPartnerMonitoring server but before
107
+ it is returned to user code.
108
+ """
109
+ return response
110
+
111
+ def pre_list_violations(
112
+ self,
113
+ request: violations.ListViolationsRequest,
114
+ metadata: Sequence[Tuple[str, str]],
115
+ ) -> Tuple[violations.ListViolationsRequest, Sequence[Tuple[str, str]]]:
116
+ """Pre-rpc interceptor for list_violations
117
+
118
+ Override in a subclass to manipulate the request or metadata
119
+ before they are sent to the CloudControlsPartnerMonitoring server.
120
+ """
121
+ return request, metadata
122
+
123
+ def post_list_violations(
124
+ self, response: violations.ListViolationsResponse
125
+ ) -> violations.ListViolationsResponse:
126
+ """Post-rpc interceptor for list_violations
127
+
128
+ Override in a subclass to manipulate the response
129
+ after it is returned by the CloudControlsPartnerMonitoring server but before
130
+ it is returned to user code.
131
+ """
132
+ return response
133
+
134
+
135
+ @dataclasses.dataclass
136
+ class CloudControlsPartnerMonitoringRestStub:
137
+ _session: AuthorizedSession
138
+ _host: str
139
+ _interceptor: CloudControlsPartnerMonitoringRestInterceptor
140
+
141
+
142
+ class CloudControlsPartnerMonitoringRestTransport(
143
+ CloudControlsPartnerMonitoringTransport
144
+ ):
145
+ """REST backend transport for CloudControlsPartnerMonitoring.
146
+
147
+ Service describing handlers for resources
148
+
149
+ This class defines the same methods as the primary client, so the
150
+ primary client can load the underlying transport implementation
151
+ and call it.
152
+
153
+ It sends JSON representations of protocol buffers over HTTP/1.1
154
+
155
+ """
156
+
157
+ def __init__(
158
+ self,
159
+ *,
160
+ host: str = "cloudcontrolspartner.googleapis.com",
161
+ credentials: Optional[ga_credentials.Credentials] = None,
162
+ credentials_file: Optional[str] = None,
163
+ scopes: Optional[Sequence[str]] = None,
164
+ client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
165
+ quota_project_id: Optional[str] = None,
166
+ client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
167
+ always_use_jwt_access: Optional[bool] = False,
168
+ url_scheme: str = "https",
169
+ interceptor: Optional[CloudControlsPartnerMonitoringRestInterceptor] = None,
170
+ api_audience: Optional[str] = None,
171
+ ) -> None:
172
+ """Instantiate the transport.
173
+
174
+ Args:
175
+ host (Optional[str]):
176
+ The hostname to connect to (default: 'cloudcontrolspartner.googleapis.com').
177
+ credentials (Optional[google.auth.credentials.Credentials]): The
178
+ authorization credentials to attach to requests. These
179
+ credentials identify the application to the service; if none
180
+ are specified, the client will attempt to ascertain the
181
+ credentials from the environment.
182
+
183
+ credentials_file (Optional[str]): A file with credentials that can
184
+ be loaded with :func:`google.auth.load_credentials_from_file`.
185
+ This argument is ignored if ``channel`` is provided.
186
+ scopes (Optional(Sequence[str])): A list of scopes. This argument is
187
+ ignored if ``channel`` is provided.
188
+ client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client
189
+ certificate to configure mutual TLS HTTP channel. It is ignored
190
+ if ``channel`` is provided.
191
+ quota_project_id (Optional[str]): An optional project to use for billing
192
+ and quota.
193
+ client_info (google.api_core.gapic_v1.client_info.ClientInfo):
194
+ The client info used to send a user-agent string along with
195
+ API requests. If ``None``, then default info will be used.
196
+ Generally, you only need to set this if you are developing
197
+ your own client library.
198
+ always_use_jwt_access (Optional[bool]): Whether self signed JWT should
199
+ be used for service account credentials.
200
+ url_scheme: the protocol scheme for the API endpoint. Normally
201
+ "https", but for testing or local servers,
202
+ "http" can be specified.
203
+ """
204
+ # Run the base constructor
205
+ # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
206
+ # TODO: When custom host (api_endpoint) is set, `scopes` must *also* be set on the
207
+ # credentials object
208
+ maybe_url_match = re.match("^(?P<scheme>http(?:s)?://)?(?P<host>.*)$", host)
209
+ if maybe_url_match is None:
210
+ raise ValueError(
211
+ f"Unexpected hostname structure: {host}"
212
+ ) # pragma: NO COVER
213
+
214
+ url_match_items = maybe_url_match.groupdict()
215
+
216
+ host = f"{url_scheme}://{host}" if not url_match_items["scheme"] else host
217
+
218
+ super().__init__(
219
+ host=host,
220
+ credentials=credentials,
221
+ client_info=client_info,
222
+ always_use_jwt_access=always_use_jwt_access,
223
+ api_audience=api_audience,
224
+ )
225
+ self._session = AuthorizedSession(
226
+ self._credentials, default_host=self.DEFAULT_HOST
227
+ )
228
+ if client_cert_source_for_mtls:
229
+ self._session.configure_mtls_channel(client_cert_source_for_mtls)
230
+ self._interceptor = (
231
+ interceptor or CloudControlsPartnerMonitoringRestInterceptor()
232
+ )
233
+ self._prep_wrapped_messages(client_info)
234
+
235
+ class _GetViolation(CloudControlsPartnerMonitoringRestStub):
236
+ def __hash__(self):
237
+ return hash("GetViolation")
238
+
239
+ __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {}
240
+
241
+ @classmethod
242
+ def _get_unset_required_fields(cls, message_dict):
243
+ return {
244
+ k: v
245
+ for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items()
246
+ if k not in message_dict
247
+ }
248
+
249
+ def __call__(
250
+ self,
251
+ request: violations.GetViolationRequest,
252
+ *,
253
+ retry: OptionalRetry = gapic_v1.method.DEFAULT,
254
+ timeout: Optional[float] = None,
255
+ metadata: Sequence[Tuple[str, str]] = (),
256
+ ) -> violations.Violation:
257
+ r"""Call the get violation method over HTTP.
258
+
259
+ Args:
260
+ request (~.violations.GetViolationRequest):
261
+ The request object. Message for getting a Violation
262
+ retry (google.api_core.retry.Retry): Designation of what errors, if any,
263
+ should be retried.
264
+ timeout (float): The timeout for this request.
265
+ metadata (Sequence[Tuple[str, str]]): Strings which should be
266
+ sent along with the request as metadata.
267
+
268
+ Returns:
269
+ ~.violations.Violation:
270
+ Details of resource Violation
271
+ """
272
+
273
+ http_options: List[Dict[str, str]] = [
274
+ {
275
+ "method": "get",
276
+ "uri": "/v1beta/{name=organizations/*/locations/*/customers/*/workloads/*/violations/*}",
277
+ },
278
+ ]
279
+ request, metadata = self._interceptor.pre_get_violation(request, metadata)
280
+ pb_request = violations.GetViolationRequest.pb(request)
281
+ transcoded_request = path_template.transcode(http_options, pb_request)
282
+
283
+ uri = transcoded_request["uri"]
284
+ method = transcoded_request["method"]
285
+
286
+ # Jsonify the query params
287
+ query_params = json.loads(
288
+ json_format.MessageToJson(
289
+ transcoded_request["query_params"],
290
+ use_integers_for_enums=True,
291
+ )
292
+ )
293
+ query_params.update(self._get_unset_required_fields(query_params))
294
+
295
+ query_params["$alt"] = "json;enum-encoding=int"
296
+
297
+ # Send the request
298
+ headers = dict(metadata)
299
+ headers["Content-Type"] = "application/json"
300
+ response = getattr(self._session, method)(
301
+ "{host}{uri}".format(host=self._host, uri=uri),
302
+ timeout=timeout,
303
+ headers=headers,
304
+ params=rest_helpers.flatten_query_params(query_params, strict=True),
305
+ )
306
+
307
+ # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
308
+ # subclass.
309
+ if response.status_code >= 400:
310
+ raise core_exceptions.from_http_response(response)
311
+
312
+ # Return the response
313
+ resp = violations.Violation()
314
+ pb_resp = violations.Violation.pb(resp)
315
+
316
+ json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
317
+ resp = self._interceptor.post_get_violation(resp)
318
+ return resp
319
+
320
+ class _ListViolations(CloudControlsPartnerMonitoringRestStub):
321
+ def __hash__(self):
322
+ return hash("ListViolations")
323
+
324
+ __REQUIRED_FIELDS_DEFAULT_VALUES: Dict[str, Any] = {}
325
+
326
+ @classmethod
327
+ def _get_unset_required_fields(cls, message_dict):
328
+ return {
329
+ k: v
330
+ for k, v in cls.__REQUIRED_FIELDS_DEFAULT_VALUES.items()
331
+ if k not in message_dict
332
+ }
333
+
334
+ def __call__(
335
+ self,
336
+ request: violations.ListViolationsRequest,
337
+ *,
338
+ retry: OptionalRetry = gapic_v1.method.DEFAULT,
339
+ timeout: Optional[float] = None,
340
+ metadata: Sequence[Tuple[str, str]] = (),
341
+ ) -> violations.ListViolationsResponse:
342
+ r"""Call the list violations method over HTTP.
343
+
344
+ Args:
345
+ request (~.violations.ListViolationsRequest):
346
+ The request object. Message for requesting list of
347
+ Violations
348
+ retry (google.api_core.retry.Retry): Designation of what errors, if any,
349
+ should be retried.
350
+ timeout (float): The timeout for this request.
351
+ metadata (Sequence[Tuple[str, str]]): Strings which should be
352
+ sent along with the request as metadata.
353
+
354
+ Returns:
355
+ ~.violations.ListViolationsResponse:
356
+ Response message for list customer
357
+ violation requests
358
+
359
+ """
360
+
361
+ http_options: List[Dict[str, str]] = [
362
+ {
363
+ "method": "get",
364
+ "uri": "/v1beta/{parent=organizations/*/locations/*/customers/*/workloads/*}/violations",
365
+ },
366
+ ]
367
+ request, metadata = self._interceptor.pre_list_violations(request, metadata)
368
+ pb_request = violations.ListViolationsRequest.pb(request)
369
+ transcoded_request = path_template.transcode(http_options, pb_request)
370
+
371
+ uri = transcoded_request["uri"]
372
+ method = transcoded_request["method"]
373
+
374
+ # Jsonify the query params
375
+ query_params = json.loads(
376
+ json_format.MessageToJson(
377
+ transcoded_request["query_params"],
378
+ use_integers_for_enums=True,
379
+ )
380
+ )
381
+ query_params.update(self._get_unset_required_fields(query_params))
382
+
383
+ query_params["$alt"] = "json;enum-encoding=int"
384
+
385
+ # Send the request
386
+ headers = dict(metadata)
387
+ headers["Content-Type"] = "application/json"
388
+ response = getattr(self._session, method)(
389
+ "{host}{uri}".format(host=self._host, uri=uri),
390
+ timeout=timeout,
391
+ headers=headers,
392
+ params=rest_helpers.flatten_query_params(query_params, strict=True),
393
+ )
394
+
395
+ # In case of error, raise the appropriate core_exceptions.GoogleAPICallError exception
396
+ # subclass.
397
+ if response.status_code >= 400:
398
+ raise core_exceptions.from_http_response(response)
399
+
400
+ # Return the response
401
+ resp = violations.ListViolationsResponse()
402
+ pb_resp = violations.ListViolationsResponse.pb(resp)
403
+
404
+ json_format.Parse(response.content, pb_resp, ignore_unknown_fields=True)
405
+ resp = self._interceptor.post_list_violations(resp)
406
+ return resp
407
+
408
+ @property
409
+ def get_violation(
410
+ self,
411
+ ) -> Callable[[violations.GetViolationRequest], violations.Violation]:
412
+ # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
413
+ # In C++ this would require a dynamic_cast
414
+ return self._GetViolation(self._session, self._host, self._interceptor) # type: ignore
415
+
416
+ @property
417
+ def list_violations(
418
+ self,
419
+ ) -> Callable[
420
+ [violations.ListViolationsRequest], violations.ListViolationsResponse
421
+ ]:
422
+ # The return type is fine, but mypy isn't sophisticated enough to determine what's going on here.
423
+ # In C++ this would require a dynamic_cast
424
+ return self._ListViolations(self._session, self._host, self._interceptor) # type: ignore
425
+
426
+ @property
427
+ def kind(self) -> str:
428
+ return "rest"
429
+
430
+ def close(self):
431
+ self._session.close()
432
+
433
+
434
+ __all__ = ("CloudControlsPartnerMonitoringRestTransport",)
@@ -0,0 +1,82 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright 2023 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
+ from .access_approval_requests import (
17
+ AccessApprovalRequest,
18
+ AccessReason,
19
+ ListAccessApprovalRequestsRequest,
20
+ ListAccessApprovalRequestsResponse,
21
+ )
22
+ from .completion_state import CompletionState
23
+ from .core import OperationMetadata
24
+ from .customer_workloads import (
25
+ GetWorkloadRequest,
26
+ ListWorkloadsRequest,
27
+ ListWorkloadsResponse,
28
+ Workload,
29
+ WorkloadOnboardingState,
30
+ WorkloadOnboardingStep,
31
+ )
32
+ from .customers import (
33
+ Customer,
34
+ CustomerOnboardingState,
35
+ CustomerOnboardingStep,
36
+ GetCustomerRequest,
37
+ ListCustomersRequest,
38
+ ListCustomersResponse,
39
+ )
40
+ from .ekm_connections import EkmConnection, EkmConnections, GetEkmConnectionsRequest
41
+ from .partner_permissions import GetPartnerPermissionsRequest, PartnerPermissions
42
+ from .partners import EkmMetadata, GetPartnerRequest, Partner, Sku
43
+ from .violations import (
44
+ GetViolationRequest,
45
+ ListViolationsRequest,
46
+ ListViolationsResponse,
47
+ Violation,
48
+ )
49
+
50
+ __all__ = (
51
+ "AccessApprovalRequest",
52
+ "AccessReason",
53
+ "ListAccessApprovalRequestsRequest",
54
+ "ListAccessApprovalRequestsResponse",
55
+ "CompletionState",
56
+ "OperationMetadata",
57
+ "GetWorkloadRequest",
58
+ "ListWorkloadsRequest",
59
+ "ListWorkloadsResponse",
60
+ "Workload",
61
+ "WorkloadOnboardingState",
62
+ "WorkloadOnboardingStep",
63
+ "Customer",
64
+ "CustomerOnboardingState",
65
+ "CustomerOnboardingStep",
66
+ "GetCustomerRequest",
67
+ "ListCustomersRequest",
68
+ "ListCustomersResponse",
69
+ "EkmConnection",
70
+ "EkmConnections",
71
+ "GetEkmConnectionsRequest",
72
+ "GetPartnerPermissionsRequest",
73
+ "PartnerPermissions",
74
+ "EkmMetadata",
75
+ "GetPartnerRequest",
76
+ "Partner",
77
+ "Sku",
78
+ "GetViolationRequest",
79
+ "ListViolationsRequest",
80
+ "ListViolationsResponse",
81
+ "Violation",
82
+ )