1# -*- coding: utf-8 -*-
2# Copyright 2022 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#
16from collections import OrderedDict
17import functools
18import re
19from typing import (
20 Dict,
21 Mapping,
22 MutableMapping,
23 MutableSequence,
24 Optional,
25 Sequence,
26 Tuple,
27 Type,
28 Union,
29)
30
31from google.cloud.logging_v2 import gapic_version as package_version
32
33from google.api_core.client_options import ClientOptions
34from google.api_core import exceptions as core_exceptions
35from google.api_core import gapic_v1
36from google.api_core import retry as retries
37from google.auth import credentials as ga_credentials # type: ignore
38from google.oauth2 import service_account # type: ignore
39
40try:
41 OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
42except AttributeError: # pragma: NO COVER
43 OptionalRetry = Union[retries.Retry, object] # type: ignore
44
45from google.api_core import operation # type: ignore
46from google.api_core import operation_async # type: ignore
47from google.cloud.logging_v2.services.config_service_v2 import pagers
48from google.cloud.logging_v2.types import logging_config
49from google.protobuf import field_mask_pb2 # type: ignore
50from google.protobuf import timestamp_pb2 # type: ignore
51from .transports.base import ConfigServiceV2Transport, DEFAULT_CLIENT_INFO
52from .transports.grpc_asyncio import ConfigServiceV2GrpcAsyncIOTransport
53from .client import ConfigServiceV2Client
54
55
56class ConfigServiceV2AsyncClient:
57 """Service for configuring sinks used to route log entries."""
58
59 _client: ConfigServiceV2Client
60
61 DEFAULT_ENDPOINT = ConfigServiceV2Client.DEFAULT_ENDPOINT
62 DEFAULT_MTLS_ENDPOINT = ConfigServiceV2Client.DEFAULT_MTLS_ENDPOINT
63
64 cmek_settings_path = staticmethod(ConfigServiceV2Client.cmek_settings_path)
65 parse_cmek_settings_path = staticmethod(
66 ConfigServiceV2Client.parse_cmek_settings_path
67 )
68 log_bucket_path = staticmethod(ConfigServiceV2Client.log_bucket_path)
69 parse_log_bucket_path = staticmethod(ConfigServiceV2Client.parse_log_bucket_path)
70 log_exclusion_path = staticmethod(ConfigServiceV2Client.log_exclusion_path)
71 parse_log_exclusion_path = staticmethod(
72 ConfigServiceV2Client.parse_log_exclusion_path
73 )
74 log_sink_path = staticmethod(ConfigServiceV2Client.log_sink_path)
75 parse_log_sink_path = staticmethod(ConfigServiceV2Client.parse_log_sink_path)
76 log_view_path = staticmethod(ConfigServiceV2Client.log_view_path)
77 parse_log_view_path = staticmethod(ConfigServiceV2Client.parse_log_view_path)
78 settings_path = staticmethod(ConfigServiceV2Client.settings_path)
79 parse_settings_path = staticmethod(ConfigServiceV2Client.parse_settings_path)
80 common_billing_account_path = staticmethod(
81 ConfigServiceV2Client.common_billing_account_path
82 )
83 parse_common_billing_account_path = staticmethod(
84 ConfigServiceV2Client.parse_common_billing_account_path
85 )
86 common_folder_path = staticmethod(ConfigServiceV2Client.common_folder_path)
87 parse_common_folder_path = staticmethod(
88 ConfigServiceV2Client.parse_common_folder_path
89 )
90 common_organization_path = staticmethod(
91 ConfigServiceV2Client.common_organization_path
92 )
93 parse_common_organization_path = staticmethod(
94 ConfigServiceV2Client.parse_common_organization_path
95 )
96 common_project_path = staticmethod(ConfigServiceV2Client.common_project_path)
97 parse_common_project_path = staticmethod(
98 ConfigServiceV2Client.parse_common_project_path
99 )
100 common_location_path = staticmethod(ConfigServiceV2Client.common_location_path)
101 parse_common_location_path = staticmethod(
102 ConfigServiceV2Client.parse_common_location_path
103 )
104
105 @classmethod
106 def from_service_account_info(cls, info: dict, *args, **kwargs):
107 """Creates an instance of this client using the provided credentials
108 info.
109
110 Args:
111 info (dict): The service account private key info.
112 args: Additional arguments to pass to the constructor.
113 kwargs: Additional arguments to pass to the constructor.
114
115 Returns:
116 ConfigServiceV2AsyncClient: The constructed client.
117 """
118 return ConfigServiceV2Client.from_service_account_info.__func__(ConfigServiceV2AsyncClient, info, *args, **kwargs) # type: ignore
119
120 @classmethod
121 def from_service_account_file(cls, filename: str, *args, **kwargs):
122 """Creates an instance of this client using the provided credentials
123 file.
124
125 Args:
126 filename (str): The path to the service account private key json
127 file.
128 args: Additional arguments to pass to the constructor.
129 kwargs: Additional arguments to pass to the constructor.
130
131 Returns:
132 ConfigServiceV2AsyncClient: The constructed client.
133 """
134 return ConfigServiceV2Client.from_service_account_file.__func__(ConfigServiceV2AsyncClient, filename, *args, **kwargs) # type: ignore
135
136 from_service_account_json = from_service_account_file
137
138 @classmethod
139 def get_mtls_endpoint_and_cert_source(
140 cls, client_options: Optional[ClientOptions] = None
141 ):
142 """Return the API endpoint and client cert source for mutual TLS.
143
144 The client cert source is determined in the following order:
145 (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the
146 client cert source is None.
147 (2) if `client_options.client_cert_source` is provided, use the provided one; if the
148 default client cert source exists, use the default one; otherwise the client cert
149 source is None.
150
151 The API endpoint is determined in the following order:
152 (1) if `client_options.api_endpoint` if provided, use the provided one.
153 (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the
154 default mTLS endpoint; if the environment variable is "never", use the default API
155 endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
156 use the default API endpoint.
157
158 More details can be found at https://google.aip.dev/auth/4114.
159
160 Args:
161 client_options (google.api_core.client_options.ClientOptions): Custom options for the
162 client. Only the `api_endpoint` and `client_cert_source` properties may be used
163 in this method.
164
165 Returns:
166 Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the
167 client cert source to use.
168
169 Raises:
170 google.auth.exceptions.MutualTLSChannelError: If any errors happen.
171 """
172 return ConfigServiceV2Client.get_mtls_endpoint_and_cert_source(client_options) # type: ignore
173
174 @property
175 def transport(self) -> ConfigServiceV2Transport:
176 """Returns the transport used by the client instance.
177
178 Returns:
179 ConfigServiceV2Transport: The transport used by the client instance.
180 """
181 return self._client.transport
182
183 get_transport_class = functools.partial(
184 type(ConfigServiceV2Client).get_transport_class, type(ConfigServiceV2Client)
185 )
186
187 def __init__(
188 self,
189 *,
190 credentials: Optional[ga_credentials.Credentials] = None,
191 transport: Union[str, ConfigServiceV2Transport] = "grpc_asyncio",
192 client_options: Optional[ClientOptions] = None,
193 client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
194 ) -> None:
195 """Instantiates the config service v2 client.
196
197 Args:
198 credentials (Optional[google.auth.credentials.Credentials]): The
199 authorization credentials to attach to requests. These
200 credentials identify the application to the service; if none
201 are specified, the client will attempt to ascertain the
202 credentials from the environment.
203 transport (Union[str, ~.ConfigServiceV2Transport]): The
204 transport to use. If set to None, a transport is chosen
205 automatically.
206 client_options (ClientOptions): Custom options for the client. It
207 won't take effect if a ``transport`` instance is provided.
208 (1) The ``api_endpoint`` property can be used to override the
209 default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
210 environment variable can also be used to override the endpoint:
211 "always" (always use the default mTLS endpoint), "never" (always
212 use the default regular endpoint) and "auto" (auto switch to the
213 default mTLS endpoint if client certificate is present, this is
214 the default value). However, the ``api_endpoint`` property takes
215 precedence if provided.
216 (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable
217 is "true", then the ``client_cert_source`` property can be used
218 to provide client certificate for mutual TLS transport. If
219 not provided, the default SSL client certificate will be used if
220 present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not
221 set, no client certificate will be used.
222
223 Raises:
224 google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
225 creation failed for any reason.
226 """
227 self._client = ConfigServiceV2Client(
228 credentials=credentials,
229 transport=transport,
230 client_options=client_options,
231 client_info=client_info,
232 )
233
234 async def list_buckets(
235 self,
236 request: Optional[Union[logging_config.ListBucketsRequest, dict]] = None,
237 *,
238 parent: Optional[str] = None,
239 retry: OptionalRetry = gapic_v1.method.DEFAULT,
240 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
241 metadata: Sequence[Tuple[str, str]] = (),
242 ) -> pagers.ListBucketsAsyncPager:
243 r"""Lists log buckets.
244
245 .. code-block:: python
246
247 # This snippet has been automatically generated and should be regarded as a
248 # code template only.
249 # It will require modifications to work:
250 # - It may require correct/in-range values for request initialization.
251 # - It may require specifying regional endpoints when creating the service
252 # client as shown in:
253 # https://googleapis.dev/python/google-api-core/latest/client_options.html
254 from google.cloud import logging_v2
255
256 async def sample_list_buckets():
257 # Create a client
258 client = logging_v2.ConfigServiceV2AsyncClient()
259
260 # Initialize request argument(s)
261 request = logging_v2.ListBucketsRequest(
262 parent="parent_value",
263 )
264
265 # Make the request
266 page_result = client.list_buckets(request=request)
267
268 # Handle the response
269 async for response in page_result:
270 print(response)
271
272 Args:
273 request (Optional[Union[google.cloud.logging_v2.types.ListBucketsRequest, dict]]):
274 The request object. The parameters to `ListBuckets`.
275 parent (:class:`str`):
276 Required. The parent resource whose buckets are to be
277 listed:
278
279 ::
280
281 "projects/[PROJECT_ID]/locations/[LOCATION_ID]"
282 "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]"
283 "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]"
284 "folders/[FOLDER_ID]/locations/[LOCATION_ID]"
285
286 Note: The locations portion of the resource must be
287 specified, but supplying the character ``-`` in place of
288 [LOCATION_ID] will return all buckets.
289
290 This corresponds to the ``parent`` field
291 on the ``request`` instance; if ``request`` is provided, this
292 should not be set.
293 retry (google.api_core.retry.Retry): Designation of what errors, if any,
294 should be retried.
295 timeout (float): The timeout for this request.
296 metadata (Sequence[Tuple[str, str]]): Strings which should be
297 sent along with the request as metadata.
298
299 Returns:
300 google.cloud.logging_v2.services.config_service_v2.pagers.ListBucketsAsyncPager:
301 The response from ListBuckets.
302 Iterating over this object will yield
303 results and resolve additional pages
304 automatically.
305
306 """
307 # Create or coerce a protobuf request object.
308 # Quick check: If we got a request object, we should *not* have
309 # gotten any keyword arguments that map to the request.
310 has_flattened_params = any([parent])
311 if request is not None and has_flattened_params:
312 raise ValueError(
313 "If the `request` argument is set, then none of "
314 "the individual field arguments should be set."
315 )
316
317 request = logging_config.ListBucketsRequest(request)
318
319 # If we have keyword arguments corresponding to fields on the
320 # request, apply these.
321 if parent is not None:
322 request.parent = parent
323
324 # Wrap the RPC method; this adds retry and timeout information,
325 # and friendly error handling.
326 rpc = gapic_v1.method_async.wrap_method(
327 self._client._transport.list_buckets,
328 default_timeout=None,
329 client_info=DEFAULT_CLIENT_INFO,
330 )
331
332 # Certain fields should be provided within the metadata header;
333 # add these here.
334 metadata = tuple(metadata) + (
335 gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)),
336 )
337
338 # Send the request.
339 response = await rpc(
340 request,
341 retry=retry,
342 timeout=timeout,
343 metadata=metadata,
344 )
345
346 # This method is paged; wrap the response in a pager, which provides
347 # an `__aiter__` convenience method.
348 response = pagers.ListBucketsAsyncPager(
349 method=rpc,
350 request=request,
351 response=response,
352 metadata=metadata,
353 )
354
355 # Done; return the response.
356 return response
357
358 async def get_bucket(
359 self,
360 request: Optional[Union[logging_config.GetBucketRequest, dict]] = None,
361 *,
362 retry: OptionalRetry = gapic_v1.method.DEFAULT,
363 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
364 metadata: Sequence[Tuple[str, str]] = (),
365 ) -> logging_config.LogBucket:
366 r"""Gets a log bucket.
367
368 .. code-block:: python
369
370 # This snippet has been automatically generated and should be regarded as a
371 # code template only.
372 # It will require modifications to work:
373 # - It may require correct/in-range values for request initialization.
374 # - It may require specifying regional endpoints when creating the service
375 # client as shown in:
376 # https://googleapis.dev/python/google-api-core/latest/client_options.html
377 from google.cloud import logging_v2
378
379 async def sample_get_bucket():
380 # Create a client
381 client = logging_v2.ConfigServiceV2AsyncClient()
382
383 # Initialize request argument(s)
384 request = logging_v2.GetBucketRequest(
385 name="name_value",
386 )
387
388 # Make the request
389 response = await client.get_bucket(request=request)
390
391 # Handle the response
392 print(response)
393
394 Args:
395 request (Optional[Union[google.cloud.logging_v2.types.GetBucketRequest, dict]]):
396 The request object. The parameters to `GetBucket`.
397 retry (google.api_core.retry.Retry): Designation of what errors, if any,
398 should be retried.
399 timeout (float): The timeout for this request.
400 metadata (Sequence[Tuple[str, str]]): Strings which should be
401 sent along with the request as metadata.
402
403 Returns:
404 google.cloud.logging_v2.types.LogBucket:
405 Describes a repository in which log
406 entries are stored.
407
408 """
409 # Create or coerce a protobuf request object.
410 request = logging_config.GetBucketRequest(request)
411
412 # Wrap the RPC method; this adds retry and timeout information,
413 # and friendly error handling.
414 rpc = gapic_v1.method_async.wrap_method(
415 self._client._transport.get_bucket,
416 default_timeout=None,
417 client_info=DEFAULT_CLIENT_INFO,
418 )
419
420 # Certain fields should be provided within the metadata header;
421 # add these here.
422 metadata = tuple(metadata) + (
423 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
424 )
425
426 # Send the request.
427 response = await rpc(
428 request,
429 retry=retry,
430 timeout=timeout,
431 metadata=metadata,
432 )
433
434 # Done; return the response.
435 return response
436
437 async def create_bucket(
438 self,
439 request: Optional[Union[logging_config.CreateBucketRequest, dict]] = None,
440 *,
441 retry: OptionalRetry = gapic_v1.method.DEFAULT,
442 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
443 metadata: Sequence[Tuple[str, str]] = (),
444 ) -> logging_config.LogBucket:
445 r"""Creates a log bucket that can be used to store log
446 entries. After a bucket has been created, the bucket's
447 location cannot be changed.
448
449 .. code-block:: python
450
451 # This snippet has been automatically generated and should be regarded as a
452 # code template only.
453 # It will require modifications to work:
454 # - It may require correct/in-range values for request initialization.
455 # - It may require specifying regional endpoints when creating the service
456 # client as shown in:
457 # https://googleapis.dev/python/google-api-core/latest/client_options.html
458 from google.cloud import logging_v2
459
460 async def sample_create_bucket():
461 # Create a client
462 client = logging_v2.ConfigServiceV2AsyncClient()
463
464 # Initialize request argument(s)
465 request = logging_v2.CreateBucketRequest(
466 parent="parent_value",
467 bucket_id="bucket_id_value",
468 )
469
470 # Make the request
471 response = await client.create_bucket(request=request)
472
473 # Handle the response
474 print(response)
475
476 Args:
477 request (Optional[Union[google.cloud.logging_v2.types.CreateBucketRequest, dict]]):
478 The request object. The parameters to `CreateBucket`.
479 retry (google.api_core.retry.Retry): Designation of what errors, if any,
480 should be retried.
481 timeout (float): The timeout for this request.
482 metadata (Sequence[Tuple[str, str]]): Strings which should be
483 sent along with the request as metadata.
484
485 Returns:
486 google.cloud.logging_v2.types.LogBucket:
487 Describes a repository in which log
488 entries are stored.
489
490 """
491 # Create or coerce a protobuf request object.
492 request = logging_config.CreateBucketRequest(request)
493
494 # Wrap the RPC method; this adds retry and timeout information,
495 # and friendly error handling.
496 rpc = gapic_v1.method_async.wrap_method(
497 self._client._transport.create_bucket,
498 default_timeout=None,
499 client_info=DEFAULT_CLIENT_INFO,
500 )
501
502 # Certain fields should be provided within the metadata header;
503 # add these here.
504 metadata = tuple(metadata) + (
505 gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)),
506 )
507
508 # Send the request.
509 response = await rpc(
510 request,
511 retry=retry,
512 timeout=timeout,
513 metadata=metadata,
514 )
515
516 # Done; return the response.
517 return response
518
519 async def update_bucket(
520 self,
521 request: Optional[Union[logging_config.UpdateBucketRequest, dict]] = None,
522 *,
523 retry: OptionalRetry = gapic_v1.method.DEFAULT,
524 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
525 metadata: Sequence[Tuple[str, str]] = (),
526 ) -> logging_config.LogBucket:
527 r"""Updates a log bucket. This method replaces the following fields
528 in the existing bucket with values from the new bucket:
529 ``retention_period``
530
531 If the retention period is decreased and the bucket is locked,
532 ``FAILED_PRECONDITION`` will be returned.
533
534 If the bucket has a ``lifecycle_state`` of ``DELETE_REQUESTED``,
535 then ``FAILED_PRECONDITION`` will be returned.
536
537 After a bucket has been created, the bucket's location cannot be
538 changed.
539
540 .. code-block:: python
541
542 # This snippet has been automatically generated and should be regarded as a
543 # code template only.
544 # It will require modifications to work:
545 # - It may require correct/in-range values for request initialization.
546 # - It may require specifying regional endpoints when creating the service
547 # client as shown in:
548 # https://googleapis.dev/python/google-api-core/latest/client_options.html
549 from google.cloud import logging_v2
550
551 async def sample_update_bucket():
552 # Create a client
553 client = logging_v2.ConfigServiceV2AsyncClient()
554
555 # Initialize request argument(s)
556 request = logging_v2.UpdateBucketRequest(
557 name="name_value",
558 )
559
560 # Make the request
561 response = await client.update_bucket(request=request)
562
563 # Handle the response
564 print(response)
565
566 Args:
567 request (Optional[Union[google.cloud.logging_v2.types.UpdateBucketRequest, dict]]):
568 The request object. The parameters to `UpdateBucket`.
569 retry (google.api_core.retry.Retry): Designation of what errors, if any,
570 should be retried.
571 timeout (float): The timeout for this request.
572 metadata (Sequence[Tuple[str, str]]): Strings which should be
573 sent along with the request as metadata.
574
575 Returns:
576 google.cloud.logging_v2.types.LogBucket:
577 Describes a repository in which log
578 entries are stored.
579
580 """
581 # Create or coerce a protobuf request object.
582 request = logging_config.UpdateBucketRequest(request)
583
584 # Wrap the RPC method; this adds retry and timeout information,
585 # and friendly error handling.
586 rpc = gapic_v1.method_async.wrap_method(
587 self._client._transport.update_bucket,
588 default_timeout=None,
589 client_info=DEFAULT_CLIENT_INFO,
590 )
591
592 # Certain fields should be provided within the metadata header;
593 # add these here.
594 metadata = tuple(metadata) + (
595 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
596 )
597
598 # Send the request.
599 response = await rpc(
600 request,
601 retry=retry,
602 timeout=timeout,
603 metadata=metadata,
604 )
605
606 # Done; return the response.
607 return response
608
609 async def delete_bucket(
610 self,
611 request: Optional[Union[logging_config.DeleteBucketRequest, dict]] = None,
612 *,
613 retry: OptionalRetry = gapic_v1.method.DEFAULT,
614 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
615 metadata: Sequence[Tuple[str, str]] = (),
616 ) -> None:
617 r"""Deletes a log bucket.
618
619 Changes the bucket's ``lifecycle_state`` to the
620 ``DELETE_REQUESTED`` state. After 7 days, the bucket will be
621 purged and all log entries in the bucket will be permanently
622 deleted.
623
624 .. code-block:: python
625
626 # This snippet has been automatically generated and should be regarded as a
627 # code template only.
628 # It will require modifications to work:
629 # - It may require correct/in-range values for request initialization.
630 # - It may require specifying regional endpoints when creating the service
631 # client as shown in:
632 # https://googleapis.dev/python/google-api-core/latest/client_options.html
633 from google.cloud import logging_v2
634
635 async def sample_delete_bucket():
636 # Create a client
637 client = logging_v2.ConfigServiceV2AsyncClient()
638
639 # Initialize request argument(s)
640 request = logging_v2.DeleteBucketRequest(
641 name="name_value",
642 )
643
644 # Make the request
645 await client.delete_bucket(request=request)
646
647 Args:
648 request (Optional[Union[google.cloud.logging_v2.types.DeleteBucketRequest, dict]]):
649 The request object. The parameters to `DeleteBucket`.
650 retry (google.api_core.retry.Retry): Designation of what errors, if any,
651 should be retried.
652 timeout (float): The timeout for this request.
653 metadata (Sequence[Tuple[str, str]]): Strings which should be
654 sent along with the request as metadata.
655 """
656 # Create or coerce a protobuf request object.
657 request = logging_config.DeleteBucketRequest(request)
658
659 # Wrap the RPC method; this adds retry and timeout information,
660 # and friendly error handling.
661 rpc = gapic_v1.method_async.wrap_method(
662 self._client._transport.delete_bucket,
663 default_timeout=None,
664 client_info=DEFAULT_CLIENT_INFO,
665 )
666
667 # Certain fields should be provided within the metadata header;
668 # add these here.
669 metadata = tuple(metadata) + (
670 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
671 )
672
673 # Send the request.
674 await rpc(
675 request,
676 retry=retry,
677 timeout=timeout,
678 metadata=metadata,
679 )
680
681 async def undelete_bucket(
682 self,
683 request: Optional[Union[logging_config.UndeleteBucketRequest, dict]] = None,
684 *,
685 retry: OptionalRetry = gapic_v1.method.DEFAULT,
686 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
687 metadata: Sequence[Tuple[str, str]] = (),
688 ) -> None:
689 r"""Undeletes a log bucket. A bucket that has been
690 deleted can be undeleted within the grace period of 7
691 days.
692
693 .. code-block:: python
694
695 # This snippet has been automatically generated and should be regarded as a
696 # code template only.
697 # It will require modifications to work:
698 # - It may require correct/in-range values for request initialization.
699 # - It may require specifying regional endpoints when creating the service
700 # client as shown in:
701 # https://googleapis.dev/python/google-api-core/latest/client_options.html
702 from google.cloud import logging_v2
703
704 async def sample_undelete_bucket():
705 # Create a client
706 client = logging_v2.ConfigServiceV2AsyncClient()
707
708 # Initialize request argument(s)
709 request = logging_v2.UndeleteBucketRequest(
710 name="name_value",
711 )
712
713 # Make the request
714 await client.undelete_bucket(request=request)
715
716 Args:
717 request (Optional[Union[google.cloud.logging_v2.types.UndeleteBucketRequest, dict]]):
718 The request object. The parameters to `UndeleteBucket`.
719 retry (google.api_core.retry.Retry): Designation of what errors, if any,
720 should be retried.
721 timeout (float): The timeout for this request.
722 metadata (Sequence[Tuple[str, str]]): Strings which should be
723 sent along with the request as metadata.
724 """
725 # Create or coerce a protobuf request object.
726 request = logging_config.UndeleteBucketRequest(request)
727
728 # Wrap the RPC method; this adds retry and timeout information,
729 # and friendly error handling.
730 rpc = gapic_v1.method_async.wrap_method(
731 self._client._transport.undelete_bucket,
732 default_timeout=None,
733 client_info=DEFAULT_CLIENT_INFO,
734 )
735
736 # Certain fields should be provided within the metadata header;
737 # add these here.
738 metadata = tuple(metadata) + (
739 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
740 )
741
742 # Send the request.
743 await rpc(
744 request,
745 retry=retry,
746 timeout=timeout,
747 metadata=metadata,
748 )
749
750 async def list_views(
751 self,
752 request: Optional[Union[logging_config.ListViewsRequest, dict]] = None,
753 *,
754 parent: Optional[str] = None,
755 retry: OptionalRetry = gapic_v1.method.DEFAULT,
756 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
757 metadata: Sequence[Tuple[str, str]] = (),
758 ) -> pagers.ListViewsAsyncPager:
759 r"""Lists views on a log bucket.
760
761 .. code-block:: python
762
763 # This snippet has been automatically generated and should be regarded as a
764 # code template only.
765 # It will require modifications to work:
766 # - It may require correct/in-range values for request initialization.
767 # - It may require specifying regional endpoints when creating the service
768 # client as shown in:
769 # https://googleapis.dev/python/google-api-core/latest/client_options.html
770 from google.cloud import logging_v2
771
772 async def sample_list_views():
773 # Create a client
774 client = logging_v2.ConfigServiceV2AsyncClient()
775
776 # Initialize request argument(s)
777 request = logging_v2.ListViewsRequest(
778 parent="parent_value",
779 )
780
781 # Make the request
782 page_result = client.list_views(request=request)
783
784 # Handle the response
785 async for response in page_result:
786 print(response)
787
788 Args:
789 request (Optional[Union[google.cloud.logging_v2.types.ListViewsRequest, dict]]):
790 The request object. The parameters to `ListViews`.
791 parent (:class:`str`):
792 Required. The bucket whose views are to be listed:
793
794 ::
795
796 "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
797
798 This corresponds to the ``parent`` field
799 on the ``request`` instance; if ``request`` is provided, this
800 should not be set.
801 retry (google.api_core.retry.Retry): Designation of what errors, if any,
802 should be retried.
803 timeout (float): The timeout for this request.
804 metadata (Sequence[Tuple[str, str]]): Strings which should be
805 sent along with the request as metadata.
806
807 Returns:
808 google.cloud.logging_v2.services.config_service_v2.pagers.ListViewsAsyncPager:
809 The response from ListViews.
810 Iterating over this object will yield
811 results and resolve additional pages
812 automatically.
813
814 """
815 # Create or coerce a protobuf request object.
816 # Quick check: If we got a request object, we should *not* have
817 # gotten any keyword arguments that map to the request.
818 has_flattened_params = any([parent])
819 if request is not None and has_flattened_params:
820 raise ValueError(
821 "If the `request` argument is set, then none of "
822 "the individual field arguments should be set."
823 )
824
825 request = logging_config.ListViewsRequest(request)
826
827 # If we have keyword arguments corresponding to fields on the
828 # request, apply these.
829 if parent is not None:
830 request.parent = parent
831
832 # Wrap the RPC method; this adds retry and timeout information,
833 # and friendly error handling.
834 rpc = gapic_v1.method_async.wrap_method(
835 self._client._transport.list_views,
836 default_timeout=None,
837 client_info=DEFAULT_CLIENT_INFO,
838 )
839
840 # Certain fields should be provided within the metadata header;
841 # add these here.
842 metadata = tuple(metadata) + (
843 gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)),
844 )
845
846 # Send the request.
847 response = await rpc(
848 request,
849 retry=retry,
850 timeout=timeout,
851 metadata=metadata,
852 )
853
854 # This method is paged; wrap the response in a pager, which provides
855 # an `__aiter__` convenience method.
856 response = pagers.ListViewsAsyncPager(
857 method=rpc,
858 request=request,
859 response=response,
860 metadata=metadata,
861 )
862
863 # Done; return the response.
864 return response
865
866 async def get_view(
867 self,
868 request: Optional[Union[logging_config.GetViewRequest, dict]] = None,
869 *,
870 retry: OptionalRetry = gapic_v1.method.DEFAULT,
871 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
872 metadata: Sequence[Tuple[str, str]] = (),
873 ) -> logging_config.LogView:
874 r"""Gets a view on a log bucket..
875
876 .. code-block:: python
877
878 # This snippet has been automatically generated and should be regarded as a
879 # code template only.
880 # It will require modifications to work:
881 # - It may require correct/in-range values for request initialization.
882 # - It may require specifying regional endpoints when creating the service
883 # client as shown in:
884 # https://googleapis.dev/python/google-api-core/latest/client_options.html
885 from google.cloud import logging_v2
886
887 async def sample_get_view():
888 # Create a client
889 client = logging_v2.ConfigServiceV2AsyncClient()
890
891 # Initialize request argument(s)
892 request = logging_v2.GetViewRequest(
893 name="name_value",
894 )
895
896 # Make the request
897 response = await client.get_view(request=request)
898
899 # Handle the response
900 print(response)
901
902 Args:
903 request (Optional[Union[google.cloud.logging_v2.types.GetViewRequest, dict]]):
904 The request object. The parameters to `GetView`.
905 retry (google.api_core.retry.Retry): Designation of what errors, if any,
906 should be retried.
907 timeout (float): The timeout for this request.
908 metadata (Sequence[Tuple[str, str]]): Strings which should be
909 sent along with the request as metadata.
910
911 Returns:
912 google.cloud.logging_v2.types.LogView:
913 Describes a view over log entries in
914 a bucket.
915
916 """
917 # Create or coerce a protobuf request object.
918 request = logging_config.GetViewRequest(request)
919
920 # Wrap the RPC method; this adds retry and timeout information,
921 # and friendly error handling.
922 rpc = gapic_v1.method_async.wrap_method(
923 self._client._transport.get_view,
924 default_timeout=None,
925 client_info=DEFAULT_CLIENT_INFO,
926 )
927
928 # Certain fields should be provided within the metadata header;
929 # add these here.
930 metadata = tuple(metadata) + (
931 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
932 )
933
934 # Send the request.
935 response = await rpc(
936 request,
937 retry=retry,
938 timeout=timeout,
939 metadata=metadata,
940 )
941
942 # Done; return the response.
943 return response
944
945 async def create_view(
946 self,
947 request: Optional[Union[logging_config.CreateViewRequest, dict]] = None,
948 *,
949 retry: OptionalRetry = gapic_v1.method.DEFAULT,
950 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
951 metadata: Sequence[Tuple[str, str]] = (),
952 ) -> logging_config.LogView:
953 r"""Creates a view over log entries in a log bucket. A
954 bucket may contain a maximum of 30 views.
955
956 .. code-block:: python
957
958 # This snippet has been automatically generated and should be regarded as a
959 # code template only.
960 # It will require modifications to work:
961 # - It may require correct/in-range values for request initialization.
962 # - It may require specifying regional endpoints when creating the service
963 # client as shown in:
964 # https://googleapis.dev/python/google-api-core/latest/client_options.html
965 from google.cloud import logging_v2
966
967 async def sample_create_view():
968 # Create a client
969 client = logging_v2.ConfigServiceV2AsyncClient()
970
971 # Initialize request argument(s)
972 request = logging_v2.CreateViewRequest(
973 parent="parent_value",
974 view_id="view_id_value",
975 )
976
977 # Make the request
978 response = await client.create_view(request=request)
979
980 # Handle the response
981 print(response)
982
983 Args:
984 request (Optional[Union[google.cloud.logging_v2.types.CreateViewRequest, dict]]):
985 The request object. The parameters to `CreateView`.
986 retry (google.api_core.retry.Retry): Designation of what errors, if any,
987 should be retried.
988 timeout (float): The timeout for this request.
989 metadata (Sequence[Tuple[str, str]]): Strings which should be
990 sent along with the request as metadata.
991
992 Returns:
993 google.cloud.logging_v2.types.LogView:
994 Describes a view over log entries in
995 a bucket.
996
997 """
998 # Create or coerce a protobuf request object.
999 request = logging_config.CreateViewRequest(request)
1000
1001 # Wrap the RPC method; this adds retry and timeout information,
1002 # and friendly error handling.
1003 rpc = gapic_v1.method_async.wrap_method(
1004 self._client._transport.create_view,
1005 default_timeout=None,
1006 client_info=DEFAULT_CLIENT_INFO,
1007 )
1008
1009 # Certain fields should be provided within the metadata header;
1010 # add these here.
1011 metadata = tuple(metadata) + (
1012 gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)),
1013 )
1014
1015 # Send the request.
1016 response = await rpc(
1017 request,
1018 retry=retry,
1019 timeout=timeout,
1020 metadata=metadata,
1021 )
1022
1023 # Done; return the response.
1024 return response
1025
1026 async def update_view(
1027 self,
1028 request: Optional[Union[logging_config.UpdateViewRequest, dict]] = None,
1029 *,
1030 retry: OptionalRetry = gapic_v1.method.DEFAULT,
1031 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
1032 metadata: Sequence[Tuple[str, str]] = (),
1033 ) -> logging_config.LogView:
1034 r"""Updates a view on a log bucket. This method replaces the
1035 following fields in the existing view with values from the new
1036 view: ``filter``. If an ``UNAVAILABLE`` error is returned, this
1037 indicates that system is not in a state where it can update the
1038 view. If this occurs, please try again in a few minutes.
1039
1040 .. code-block:: python
1041
1042 # This snippet has been automatically generated and should be regarded as a
1043 # code template only.
1044 # It will require modifications to work:
1045 # - It may require correct/in-range values for request initialization.
1046 # - It may require specifying regional endpoints when creating the service
1047 # client as shown in:
1048 # https://googleapis.dev/python/google-api-core/latest/client_options.html
1049 from google.cloud import logging_v2
1050
1051 async def sample_update_view():
1052 # Create a client
1053 client = logging_v2.ConfigServiceV2AsyncClient()
1054
1055 # Initialize request argument(s)
1056 request = logging_v2.UpdateViewRequest(
1057 name="name_value",
1058 )
1059
1060 # Make the request
1061 response = await client.update_view(request=request)
1062
1063 # Handle the response
1064 print(response)
1065
1066 Args:
1067 request (Optional[Union[google.cloud.logging_v2.types.UpdateViewRequest, dict]]):
1068 The request object. The parameters to `UpdateView`.
1069 retry (google.api_core.retry.Retry): Designation of what errors, if any,
1070 should be retried.
1071 timeout (float): The timeout for this request.
1072 metadata (Sequence[Tuple[str, str]]): Strings which should be
1073 sent along with the request as metadata.
1074
1075 Returns:
1076 google.cloud.logging_v2.types.LogView:
1077 Describes a view over log entries in
1078 a bucket.
1079
1080 """
1081 # Create or coerce a protobuf request object.
1082 request = logging_config.UpdateViewRequest(request)
1083
1084 # Wrap the RPC method; this adds retry and timeout information,
1085 # and friendly error handling.
1086 rpc = gapic_v1.method_async.wrap_method(
1087 self._client._transport.update_view,
1088 default_timeout=None,
1089 client_info=DEFAULT_CLIENT_INFO,
1090 )
1091
1092 # Certain fields should be provided within the metadata header;
1093 # add these here.
1094 metadata = tuple(metadata) + (
1095 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
1096 )
1097
1098 # Send the request.
1099 response = await rpc(
1100 request,
1101 retry=retry,
1102 timeout=timeout,
1103 metadata=metadata,
1104 )
1105
1106 # Done; return the response.
1107 return response
1108
1109 async def delete_view(
1110 self,
1111 request: Optional[Union[logging_config.DeleteViewRequest, dict]] = None,
1112 *,
1113 retry: OptionalRetry = gapic_v1.method.DEFAULT,
1114 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
1115 metadata: Sequence[Tuple[str, str]] = (),
1116 ) -> None:
1117 r"""Deletes a view on a log bucket. If an ``UNAVAILABLE`` error is
1118 returned, this indicates that system is not in a state where it
1119 can delete the view. If this occurs, please try again in a few
1120 minutes.
1121
1122 .. code-block:: python
1123
1124 # This snippet has been automatically generated and should be regarded as a
1125 # code template only.
1126 # It will require modifications to work:
1127 # - It may require correct/in-range values for request initialization.
1128 # - It may require specifying regional endpoints when creating the service
1129 # client as shown in:
1130 # https://googleapis.dev/python/google-api-core/latest/client_options.html
1131 from google.cloud import logging_v2
1132
1133 async def sample_delete_view():
1134 # Create a client
1135 client = logging_v2.ConfigServiceV2AsyncClient()
1136
1137 # Initialize request argument(s)
1138 request = logging_v2.DeleteViewRequest(
1139 name="name_value",
1140 )
1141
1142 # Make the request
1143 await client.delete_view(request=request)
1144
1145 Args:
1146 request (Optional[Union[google.cloud.logging_v2.types.DeleteViewRequest, dict]]):
1147 The request object. The parameters to `DeleteView`.
1148 retry (google.api_core.retry.Retry): Designation of what errors, if any,
1149 should be retried.
1150 timeout (float): The timeout for this request.
1151 metadata (Sequence[Tuple[str, str]]): Strings which should be
1152 sent along with the request as metadata.
1153 """
1154 # Create or coerce a protobuf request object.
1155 request = logging_config.DeleteViewRequest(request)
1156
1157 # Wrap the RPC method; this adds retry and timeout information,
1158 # and friendly error handling.
1159 rpc = gapic_v1.method_async.wrap_method(
1160 self._client._transport.delete_view,
1161 default_timeout=None,
1162 client_info=DEFAULT_CLIENT_INFO,
1163 )
1164
1165 # Certain fields should be provided within the metadata header;
1166 # add these here.
1167 metadata = tuple(metadata) + (
1168 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
1169 )
1170
1171 # Send the request.
1172 await rpc(
1173 request,
1174 retry=retry,
1175 timeout=timeout,
1176 metadata=metadata,
1177 )
1178
1179 async def list_sinks(
1180 self,
1181 request: Optional[Union[logging_config.ListSinksRequest, dict]] = None,
1182 *,
1183 parent: Optional[str] = None,
1184 retry: OptionalRetry = gapic_v1.method.DEFAULT,
1185 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
1186 metadata: Sequence[Tuple[str, str]] = (),
1187 ) -> pagers.ListSinksAsyncPager:
1188 r"""Lists sinks.
1189
1190 .. code-block:: python
1191
1192 # This snippet has been automatically generated and should be regarded as a
1193 # code template only.
1194 # It will require modifications to work:
1195 # - It may require correct/in-range values for request initialization.
1196 # - It may require specifying regional endpoints when creating the service
1197 # client as shown in:
1198 # https://googleapis.dev/python/google-api-core/latest/client_options.html
1199 from google.cloud import logging_v2
1200
1201 async def sample_list_sinks():
1202 # Create a client
1203 client = logging_v2.ConfigServiceV2AsyncClient()
1204
1205 # Initialize request argument(s)
1206 request = logging_v2.ListSinksRequest(
1207 parent="parent_value",
1208 )
1209
1210 # Make the request
1211 page_result = client.list_sinks(request=request)
1212
1213 # Handle the response
1214 async for response in page_result:
1215 print(response)
1216
1217 Args:
1218 request (Optional[Union[google.cloud.logging_v2.types.ListSinksRequest, dict]]):
1219 The request object. The parameters to `ListSinks`.
1220 parent (:class:`str`):
1221 Required. The parent resource whose sinks are to be
1222 listed:
1223
1224 ::
1225
1226 "projects/[PROJECT_ID]"
1227 "organizations/[ORGANIZATION_ID]"
1228 "billingAccounts/[BILLING_ACCOUNT_ID]"
1229 "folders/[FOLDER_ID]"
1230
1231 This corresponds to the ``parent`` field
1232 on the ``request`` instance; if ``request`` is provided, this
1233 should not be set.
1234 retry (google.api_core.retry.Retry): Designation of what errors, if any,
1235 should be retried.
1236 timeout (float): The timeout for this request.
1237 metadata (Sequence[Tuple[str, str]]): Strings which should be
1238 sent along with the request as metadata.
1239
1240 Returns:
1241 google.cloud.logging_v2.services.config_service_v2.pagers.ListSinksAsyncPager:
1242 Result returned from ListSinks.
1243
1244 Iterating over this object will yield results and
1245 resolve additional pages automatically.
1246
1247 """
1248 # Create or coerce a protobuf request object.
1249 # Quick check: If we got a request object, we should *not* have
1250 # gotten any keyword arguments that map to the request.
1251 has_flattened_params = any([parent])
1252 if request is not None and has_flattened_params:
1253 raise ValueError(
1254 "If the `request` argument is set, then none of "
1255 "the individual field arguments should be set."
1256 )
1257
1258 request = logging_config.ListSinksRequest(request)
1259
1260 # If we have keyword arguments corresponding to fields on the
1261 # request, apply these.
1262 if parent is not None:
1263 request.parent = parent
1264
1265 # Wrap the RPC method; this adds retry and timeout information,
1266 # and friendly error handling.
1267 rpc = gapic_v1.method_async.wrap_method(
1268 self._client._transport.list_sinks,
1269 default_retry=retries.Retry(
1270 initial=0.1,
1271 maximum=60.0,
1272 multiplier=1.3,
1273 predicate=retries.if_exception_type(
1274 core_exceptions.DeadlineExceeded,
1275 core_exceptions.InternalServerError,
1276 core_exceptions.ServiceUnavailable,
1277 ),
1278 deadline=60.0,
1279 ),
1280 default_timeout=60.0,
1281 client_info=DEFAULT_CLIENT_INFO,
1282 )
1283
1284 # Certain fields should be provided within the metadata header;
1285 # add these here.
1286 metadata = tuple(metadata) + (
1287 gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)),
1288 )
1289
1290 # Send the request.
1291 response = await rpc(
1292 request,
1293 retry=retry,
1294 timeout=timeout,
1295 metadata=metadata,
1296 )
1297
1298 # This method is paged; wrap the response in a pager, which provides
1299 # an `__aiter__` convenience method.
1300 response = pagers.ListSinksAsyncPager(
1301 method=rpc,
1302 request=request,
1303 response=response,
1304 metadata=metadata,
1305 )
1306
1307 # Done; return the response.
1308 return response
1309
1310 async def get_sink(
1311 self,
1312 request: Optional[Union[logging_config.GetSinkRequest, dict]] = None,
1313 *,
1314 sink_name: Optional[str] = None,
1315 retry: OptionalRetry = gapic_v1.method.DEFAULT,
1316 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
1317 metadata: Sequence[Tuple[str, str]] = (),
1318 ) -> logging_config.LogSink:
1319 r"""Gets a sink.
1320
1321 .. code-block:: python
1322
1323 # This snippet has been automatically generated and should be regarded as a
1324 # code template only.
1325 # It will require modifications to work:
1326 # - It may require correct/in-range values for request initialization.
1327 # - It may require specifying regional endpoints when creating the service
1328 # client as shown in:
1329 # https://googleapis.dev/python/google-api-core/latest/client_options.html
1330 from google.cloud import logging_v2
1331
1332 async def sample_get_sink():
1333 # Create a client
1334 client = logging_v2.ConfigServiceV2AsyncClient()
1335
1336 # Initialize request argument(s)
1337 request = logging_v2.GetSinkRequest(
1338 sink_name="sink_name_value",
1339 )
1340
1341 # Make the request
1342 response = await client.get_sink(request=request)
1343
1344 # Handle the response
1345 print(response)
1346
1347 Args:
1348 request (Optional[Union[google.cloud.logging_v2.types.GetSinkRequest, dict]]):
1349 The request object. The parameters to `GetSink`.
1350 sink_name (:class:`str`):
1351 Required. The resource name of the sink:
1352
1353 ::
1354
1355 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
1356 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
1357 "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
1358 "folders/[FOLDER_ID]/sinks/[SINK_ID]"
1359
1360 For example:
1361
1362 ``"projects/my-project/sinks/my-sink"``
1363
1364 This corresponds to the ``sink_name`` field
1365 on the ``request`` instance; if ``request`` is provided, this
1366 should not be set.
1367 retry (google.api_core.retry.Retry): Designation of what errors, if any,
1368 should be retried.
1369 timeout (float): The timeout for this request.
1370 metadata (Sequence[Tuple[str, str]]): Strings which should be
1371 sent along with the request as metadata.
1372
1373 Returns:
1374 google.cloud.logging_v2.types.LogSink:
1375 Describes a sink used to export log
1376 entries to one of the following
1377 destinations in any project: a Cloud
1378 Storage bucket, a BigQuery dataset, a
1379 Pub/Sub topic or a Cloud Logging log
1380 bucket. A logs filter controls which log
1381 entries are exported. The sink must be
1382 created within a project, organization,
1383 billing account, or folder.
1384
1385 """
1386 # Create or coerce a protobuf request object.
1387 # Quick check: If we got a request object, we should *not* have
1388 # gotten any keyword arguments that map to the request.
1389 has_flattened_params = any([sink_name])
1390 if request is not None and has_flattened_params:
1391 raise ValueError(
1392 "If the `request` argument is set, then none of "
1393 "the individual field arguments should be set."
1394 )
1395
1396 request = logging_config.GetSinkRequest(request)
1397
1398 # If we have keyword arguments corresponding to fields on the
1399 # request, apply these.
1400 if sink_name is not None:
1401 request.sink_name = sink_name
1402
1403 # Wrap the RPC method; this adds retry and timeout information,
1404 # and friendly error handling.
1405 rpc = gapic_v1.method_async.wrap_method(
1406 self._client._transport.get_sink,
1407 default_retry=retries.Retry(
1408 initial=0.1,
1409 maximum=60.0,
1410 multiplier=1.3,
1411 predicate=retries.if_exception_type(
1412 core_exceptions.DeadlineExceeded,
1413 core_exceptions.InternalServerError,
1414 core_exceptions.ServiceUnavailable,
1415 ),
1416 deadline=60.0,
1417 ),
1418 default_timeout=60.0,
1419 client_info=DEFAULT_CLIENT_INFO,
1420 )
1421
1422 # Certain fields should be provided within the metadata header;
1423 # add these here.
1424 metadata = tuple(metadata) + (
1425 gapic_v1.routing_header.to_grpc_metadata(
1426 (("sink_name", request.sink_name),)
1427 ),
1428 )
1429
1430 # Send the request.
1431 response = await rpc(
1432 request,
1433 retry=retry,
1434 timeout=timeout,
1435 metadata=metadata,
1436 )
1437
1438 # Done; return the response.
1439 return response
1440
1441 async def create_sink(
1442 self,
1443 request: Optional[Union[logging_config.CreateSinkRequest, dict]] = None,
1444 *,
1445 parent: Optional[str] = None,
1446 sink: Optional[logging_config.LogSink] = None,
1447 retry: OptionalRetry = gapic_v1.method.DEFAULT,
1448 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
1449 metadata: Sequence[Tuple[str, str]] = (),
1450 ) -> logging_config.LogSink:
1451 r"""Creates a sink that exports specified log entries to a
1452 destination. The export of newly-ingested log entries begins
1453 immediately, unless the sink's ``writer_identity`` is not
1454 permitted to write to the destination. A sink can export log
1455 entries only from the resource owning the sink.
1456
1457 .. code-block:: python
1458
1459 # This snippet has been automatically generated and should be regarded as a
1460 # code template only.
1461 # It will require modifications to work:
1462 # - It may require correct/in-range values for request initialization.
1463 # - It may require specifying regional endpoints when creating the service
1464 # client as shown in:
1465 # https://googleapis.dev/python/google-api-core/latest/client_options.html
1466 from google.cloud import logging_v2
1467
1468 async def sample_create_sink():
1469 # Create a client
1470 client = logging_v2.ConfigServiceV2AsyncClient()
1471
1472 # Initialize request argument(s)
1473 sink = logging_v2.LogSink()
1474 sink.name = "name_value"
1475 sink.destination = "destination_value"
1476
1477 request = logging_v2.CreateSinkRequest(
1478 parent="parent_value",
1479 sink=sink,
1480 )
1481
1482 # Make the request
1483 response = await client.create_sink(request=request)
1484
1485 # Handle the response
1486 print(response)
1487
1488 Args:
1489 request (Optional[Union[google.cloud.logging_v2.types.CreateSinkRequest, dict]]):
1490 The request object. The parameters to `CreateSink`.
1491 parent (:class:`str`):
1492 Required. The resource in which to create the sink:
1493
1494 ::
1495
1496 "projects/[PROJECT_ID]"
1497 "organizations/[ORGANIZATION_ID]"
1498 "billingAccounts/[BILLING_ACCOUNT_ID]"
1499 "folders/[FOLDER_ID]"
1500
1501 For examples:
1502
1503 ``"projects/my-project"`` ``"organizations/123456789"``
1504
1505 This corresponds to the ``parent`` field
1506 on the ``request`` instance; if ``request`` is provided, this
1507 should not be set.
1508 sink (:class:`google.cloud.logging_v2.types.LogSink`):
1509 Required. The new sink, whose ``name`` parameter is a
1510 sink identifier that is not already in use.
1511
1512 This corresponds to the ``sink`` field
1513 on the ``request`` instance; if ``request`` is provided, this
1514 should not be set.
1515 retry (google.api_core.retry.Retry): Designation of what errors, if any,
1516 should be retried.
1517 timeout (float): The timeout for this request.
1518 metadata (Sequence[Tuple[str, str]]): Strings which should be
1519 sent along with the request as metadata.
1520
1521 Returns:
1522 google.cloud.logging_v2.types.LogSink:
1523 Describes a sink used to export log
1524 entries to one of the following
1525 destinations in any project: a Cloud
1526 Storage bucket, a BigQuery dataset, a
1527 Pub/Sub topic or a Cloud Logging log
1528 bucket. A logs filter controls which log
1529 entries are exported. The sink must be
1530 created within a project, organization,
1531 billing account, or folder.
1532
1533 """
1534 # Create or coerce a protobuf request object.
1535 # Quick check: If we got a request object, we should *not* have
1536 # gotten any keyword arguments that map to the request.
1537 has_flattened_params = any([parent, sink])
1538 if request is not None and has_flattened_params:
1539 raise ValueError(
1540 "If the `request` argument is set, then none of "
1541 "the individual field arguments should be set."
1542 )
1543
1544 request = logging_config.CreateSinkRequest(request)
1545
1546 # If we have keyword arguments corresponding to fields on the
1547 # request, apply these.
1548 if parent is not None:
1549 request.parent = parent
1550 if sink is not None:
1551 request.sink = sink
1552
1553 # Wrap the RPC method; this adds retry and timeout information,
1554 # and friendly error handling.
1555 rpc = gapic_v1.method_async.wrap_method(
1556 self._client._transport.create_sink,
1557 default_timeout=120.0,
1558 client_info=DEFAULT_CLIENT_INFO,
1559 )
1560
1561 # Certain fields should be provided within the metadata header;
1562 # add these here.
1563 metadata = tuple(metadata) + (
1564 gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)),
1565 )
1566
1567 # Send the request.
1568 response = await rpc(
1569 request,
1570 retry=retry,
1571 timeout=timeout,
1572 metadata=metadata,
1573 )
1574
1575 # Done; return the response.
1576 return response
1577
1578 async def update_sink(
1579 self,
1580 request: Optional[Union[logging_config.UpdateSinkRequest, dict]] = None,
1581 *,
1582 sink_name: Optional[str] = None,
1583 sink: Optional[logging_config.LogSink] = None,
1584 update_mask: Optional[field_mask_pb2.FieldMask] = None,
1585 retry: OptionalRetry = gapic_v1.method.DEFAULT,
1586 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
1587 metadata: Sequence[Tuple[str, str]] = (),
1588 ) -> logging_config.LogSink:
1589 r"""Updates a sink. This method replaces the following fields in the
1590 existing sink with values from the new sink: ``destination``,
1591 and ``filter``.
1592
1593 The updated sink might also have a new ``writer_identity``; see
1594 the ``unique_writer_identity`` field.
1595
1596 .. code-block:: python
1597
1598 # This snippet has been automatically generated and should be regarded as a
1599 # code template only.
1600 # It will require modifications to work:
1601 # - It may require correct/in-range values for request initialization.
1602 # - It may require specifying regional endpoints when creating the service
1603 # client as shown in:
1604 # https://googleapis.dev/python/google-api-core/latest/client_options.html
1605 from google.cloud import logging_v2
1606
1607 async def sample_update_sink():
1608 # Create a client
1609 client = logging_v2.ConfigServiceV2AsyncClient()
1610
1611 # Initialize request argument(s)
1612 sink = logging_v2.LogSink()
1613 sink.name = "name_value"
1614 sink.destination = "destination_value"
1615
1616 request = logging_v2.UpdateSinkRequest(
1617 sink_name="sink_name_value",
1618 sink=sink,
1619 )
1620
1621 # Make the request
1622 response = await client.update_sink(request=request)
1623
1624 # Handle the response
1625 print(response)
1626
1627 Args:
1628 request (Optional[Union[google.cloud.logging_v2.types.UpdateSinkRequest, dict]]):
1629 The request object. The parameters to `UpdateSink`.
1630 sink_name (:class:`str`):
1631 Required. The full resource name of the sink to update,
1632 including the parent resource and the sink identifier:
1633
1634 ::
1635
1636 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
1637 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
1638 "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
1639 "folders/[FOLDER_ID]/sinks/[SINK_ID]"
1640
1641 For example:
1642
1643 ``"projects/my-project/sinks/my-sink"``
1644
1645 This corresponds to the ``sink_name`` field
1646 on the ``request`` instance; if ``request`` is provided, this
1647 should not be set.
1648 sink (:class:`google.cloud.logging_v2.types.LogSink`):
1649 Required. The updated sink, whose name is the same
1650 identifier that appears as part of ``sink_name``.
1651
1652 This corresponds to the ``sink`` field
1653 on the ``request`` instance; if ``request`` is provided, this
1654 should not be set.
1655 update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`):
1656 Optional. Field mask that specifies the fields in
1657 ``sink`` that need an update. A sink field will be
1658 overwritten if, and only if, it is in the update mask.
1659 ``name`` and output only fields cannot be updated.
1660
1661 An empty ``updateMask`` is temporarily treated as using
1662 the following mask for backwards compatibility purposes:
1663
1664 ``destination,filter,includeChildren``
1665
1666 At some point in the future, behavior will be removed
1667 and specifying an empty ``updateMask`` will be an error.
1668
1669 For a detailed ``FieldMask`` definition, see
1670 https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMask
1671
1672 For example: ``updateMask=filter``
1673
1674 This corresponds to the ``update_mask`` field
1675 on the ``request`` instance; if ``request`` is provided, this
1676 should not be set.
1677 retry (google.api_core.retry.Retry): Designation of what errors, if any,
1678 should be retried.
1679 timeout (float): The timeout for this request.
1680 metadata (Sequence[Tuple[str, str]]): Strings which should be
1681 sent along with the request as metadata.
1682
1683 Returns:
1684 google.cloud.logging_v2.types.LogSink:
1685 Describes a sink used to export log
1686 entries to one of the following
1687 destinations in any project: a Cloud
1688 Storage bucket, a BigQuery dataset, a
1689 Pub/Sub topic or a Cloud Logging log
1690 bucket. A logs filter controls which log
1691 entries are exported. The sink must be
1692 created within a project, organization,
1693 billing account, or folder.
1694
1695 """
1696 # Create or coerce a protobuf request object.
1697 # Quick check: If we got a request object, we should *not* have
1698 # gotten any keyword arguments that map to the request.
1699 has_flattened_params = any([sink_name, sink, update_mask])
1700 if request is not None and has_flattened_params:
1701 raise ValueError(
1702 "If the `request` argument is set, then none of "
1703 "the individual field arguments should be set."
1704 )
1705
1706 request = logging_config.UpdateSinkRequest(request)
1707
1708 # If we have keyword arguments corresponding to fields on the
1709 # request, apply these.
1710 if sink_name is not None:
1711 request.sink_name = sink_name
1712 if sink is not None:
1713 request.sink = sink
1714 if update_mask is not None:
1715 request.update_mask = update_mask
1716
1717 # Wrap the RPC method; this adds retry and timeout information,
1718 # and friendly error handling.
1719 rpc = gapic_v1.method_async.wrap_method(
1720 self._client._transport.update_sink,
1721 default_retry=retries.Retry(
1722 initial=0.1,
1723 maximum=60.0,
1724 multiplier=1.3,
1725 predicate=retries.if_exception_type(
1726 core_exceptions.DeadlineExceeded,
1727 core_exceptions.InternalServerError,
1728 core_exceptions.ServiceUnavailable,
1729 ),
1730 deadline=60.0,
1731 ),
1732 default_timeout=60.0,
1733 client_info=DEFAULT_CLIENT_INFO,
1734 )
1735
1736 # Certain fields should be provided within the metadata header;
1737 # add these here.
1738 metadata = tuple(metadata) + (
1739 gapic_v1.routing_header.to_grpc_metadata(
1740 (("sink_name", request.sink_name),)
1741 ),
1742 )
1743
1744 # Send the request.
1745 response = await rpc(
1746 request,
1747 retry=retry,
1748 timeout=timeout,
1749 metadata=metadata,
1750 )
1751
1752 # Done; return the response.
1753 return response
1754
1755 async def delete_sink(
1756 self,
1757 request: Optional[Union[logging_config.DeleteSinkRequest, dict]] = None,
1758 *,
1759 sink_name: Optional[str] = None,
1760 retry: OptionalRetry = gapic_v1.method.DEFAULT,
1761 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
1762 metadata: Sequence[Tuple[str, str]] = (),
1763 ) -> None:
1764 r"""Deletes a sink. If the sink has a unique ``writer_identity``,
1765 then that service account is also deleted.
1766
1767 .. code-block:: python
1768
1769 # This snippet has been automatically generated and should be regarded as a
1770 # code template only.
1771 # It will require modifications to work:
1772 # - It may require correct/in-range values for request initialization.
1773 # - It may require specifying regional endpoints when creating the service
1774 # client as shown in:
1775 # https://googleapis.dev/python/google-api-core/latest/client_options.html
1776 from google.cloud import logging_v2
1777
1778 async def sample_delete_sink():
1779 # Create a client
1780 client = logging_v2.ConfigServiceV2AsyncClient()
1781
1782 # Initialize request argument(s)
1783 request = logging_v2.DeleteSinkRequest(
1784 sink_name="sink_name_value",
1785 )
1786
1787 # Make the request
1788 await client.delete_sink(request=request)
1789
1790 Args:
1791 request (Optional[Union[google.cloud.logging_v2.types.DeleteSinkRequest, dict]]):
1792 The request object. The parameters to `DeleteSink`.
1793 sink_name (:class:`str`):
1794 Required. The full resource name of the sink to delete,
1795 including the parent resource and the sink identifier:
1796
1797 ::
1798
1799 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
1800 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
1801 "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
1802 "folders/[FOLDER_ID]/sinks/[SINK_ID]"
1803
1804 For example:
1805
1806 ``"projects/my-project/sinks/my-sink"``
1807
1808 This corresponds to the ``sink_name`` field
1809 on the ``request`` instance; if ``request`` is provided, this
1810 should not be set.
1811 retry (google.api_core.retry.Retry): Designation of what errors, if any,
1812 should be retried.
1813 timeout (float): The timeout for this request.
1814 metadata (Sequence[Tuple[str, str]]): Strings which should be
1815 sent along with the request as metadata.
1816 """
1817 # Create or coerce a protobuf request object.
1818 # Quick check: If we got a request object, we should *not* have
1819 # gotten any keyword arguments that map to the request.
1820 has_flattened_params = any([sink_name])
1821 if request is not None and has_flattened_params:
1822 raise ValueError(
1823 "If the `request` argument is set, then none of "
1824 "the individual field arguments should be set."
1825 )
1826
1827 request = logging_config.DeleteSinkRequest(request)
1828
1829 # If we have keyword arguments corresponding to fields on the
1830 # request, apply these.
1831 if sink_name is not None:
1832 request.sink_name = sink_name
1833
1834 # Wrap the RPC method; this adds retry and timeout information,
1835 # and friendly error handling.
1836 rpc = gapic_v1.method_async.wrap_method(
1837 self._client._transport.delete_sink,
1838 default_retry=retries.Retry(
1839 initial=0.1,
1840 maximum=60.0,
1841 multiplier=1.3,
1842 predicate=retries.if_exception_type(
1843 core_exceptions.DeadlineExceeded,
1844 core_exceptions.InternalServerError,
1845 core_exceptions.ServiceUnavailable,
1846 ),
1847 deadline=60.0,
1848 ),
1849 default_timeout=60.0,
1850 client_info=DEFAULT_CLIENT_INFO,
1851 )
1852
1853 # Certain fields should be provided within the metadata header;
1854 # add these here.
1855 metadata = tuple(metadata) + (
1856 gapic_v1.routing_header.to_grpc_metadata(
1857 (("sink_name", request.sink_name),)
1858 ),
1859 )
1860
1861 # Send the request.
1862 await rpc(
1863 request,
1864 retry=retry,
1865 timeout=timeout,
1866 metadata=metadata,
1867 )
1868
1869 async def list_exclusions(
1870 self,
1871 request: Optional[Union[logging_config.ListExclusionsRequest, dict]] = None,
1872 *,
1873 parent: Optional[str] = None,
1874 retry: OptionalRetry = gapic_v1.method.DEFAULT,
1875 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
1876 metadata: Sequence[Tuple[str, str]] = (),
1877 ) -> pagers.ListExclusionsAsyncPager:
1878 r"""Lists all the exclusions on the \_Default sink in a parent
1879 resource.
1880
1881 .. code-block:: python
1882
1883 # This snippet has been automatically generated and should be regarded as a
1884 # code template only.
1885 # It will require modifications to work:
1886 # - It may require correct/in-range values for request initialization.
1887 # - It may require specifying regional endpoints when creating the service
1888 # client as shown in:
1889 # https://googleapis.dev/python/google-api-core/latest/client_options.html
1890 from google.cloud import logging_v2
1891
1892 async def sample_list_exclusions():
1893 # Create a client
1894 client = logging_v2.ConfigServiceV2AsyncClient()
1895
1896 # Initialize request argument(s)
1897 request = logging_v2.ListExclusionsRequest(
1898 parent="parent_value",
1899 )
1900
1901 # Make the request
1902 page_result = client.list_exclusions(request=request)
1903
1904 # Handle the response
1905 async for response in page_result:
1906 print(response)
1907
1908 Args:
1909 request (Optional[Union[google.cloud.logging_v2.types.ListExclusionsRequest, dict]]):
1910 The request object. The parameters to `ListExclusions`.
1911 parent (:class:`str`):
1912 Required. The parent resource whose exclusions are to be
1913 listed.
1914
1915 ::
1916
1917 "projects/[PROJECT_ID]"
1918 "organizations/[ORGANIZATION_ID]"
1919 "billingAccounts/[BILLING_ACCOUNT_ID]"
1920 "folders/[FOLDER_ID]"
1921
1922 This corresponds to the ``parent`` field
1923 on the ``request`` instance; if ``request`` is provided, this
1924 should not be set.
1925 retry (google.api_core.retry.Retry): Designation of what errors, if any,
1926 should be retried.
1927 timeout (float): The timeout for this request.
1928 metadata (Sequence[Tuple[str, str]]): Strings which should be
1929 sent along with the request as metadata.
1930
1931 Returns:
1932 google.cloud.logging_v2.services.config_service_v2.pagers.ListExclusionsAsyncPager:
1933 Result returned from ListExclusions.
1934
1935 Iterating over this object will yield results and
1936 resolve additional pages automatically.
1937
1938 """
1939 # Create or coerce a protobuf request object.
1940 # Quick check: If we got a request object, we should *not* have
1941 # gotten any keyword arguments that map to the request.
1942 has_flattened_params = any([parent])
1943 if request is not None and has_flattened_params:
1944 raise ValueError(
1945 "If the `request` argument is set, then none of "
1946 "the individual field arguments should be set."
1947 )
1948
1949 request = logging_config.ListExclusionsRequest(request)
1950
1951 # If we have keyword arguments corresponding to fields on the
1952 # request, apply these.
1953 if parent is not None:
1954 request.parent = parent
1955
1956 # Wrap the RPC method; this adds retry and timeout information,
1957 # and friendly error handling.
1958 rpc = gapic_v1.method_async.wrap_method(
1959 self._client._transport.list_exclusions,
1960 default_retry=retries.Retry(
1961 initial=0.1,
1962 maximum=60.0,
1963 multiplier=1.3,
1964 predicate=retries.if_exception_type(
1965 core_exceptions.DeadlineExceeded,
1966 core_exceptions.InternalServerError,
1967 core_exceptions.ServiceUnavailable,
1968 ),
1969 deadline=60.0,
1970 ),
1971 default_timeout=60.0,
1972 client_info=DEFAULT_CLIENT_INFO,
1973 )
1974
1975 # Certain fields should be provided within the metadata header;
1976 # add these here.
1977 metadata = tuple(metadata) + (
1978 gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)),
1979 )
1980
1981 # Send the request.
1982 response = await rpc(
1983 request,
1984 retry=retry,
1985 timeout=timeout,
1986 metadata=metadata,
1987 )
1988
1989 # This method is paged; wrap the response in a pager, which provides
1990 # an `__aiter__` convenience method.
1991 response = pagers.ListExclusionsAsyncPager(
1992 method=rpc,
1993 request=request,
1994 response=response,
1995 metadata=metadata,
1996 )
1997
1998 # Done; return the response.
1999 return response
2000
2001 async def get_exclusion(
2002 self,
2003 request: Optional[Union[logging_config.GetExclusionRequest, dict]] = None,
2004 *,
2005 name: Optional[str] = None,
2006 retry: OptionalRetry = gapic_v1.method.DEFAULT,
2007 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
2008 metadata: Sequence[Tuple[str, str]] = (),
2009 ) -> logging_config.LogExclusion:
2010 r"""Gets the description of an exclusion in the \_Default sink.
2011
2012 .. code-block:: python
2013
2014 # This snippet has been automatically generated and should be regarded as a
2015 # code template only.
2016 # It will require modifications to work:
2017 # - It may require correct/in-range values for request initialization.
2018 # - It may require specifying regional endpoints when creating the service
2019 # client as shown in:
2020 # https://googleapis.dev/python/google-api-core/latest/client_options.html
2021 from google.cloud import logging_v2
2022
2023 async def sample_get_exclusion():
2024 # Create a client
2025 client = logging_v2.ConfigServiceV2AsyncClient()
2026
2027 # Initialize request argument(s)
2028 request = logging_v2.GetExclusionRequest(
2029 name="name_value",
2030 )
2031
2032 # Make the request
2033 response = await client.get_exclusion(request=request)
2034
2035 # Handle the response
2036 print(response)
2037
2038 Args:
2039 request (Optional[Union[google.cloud.logging_v2.types.GetExclusionRequest, dict]]):
2040 The request object. The parameters to `GetExclusion`.
2041 name (:class:`str`):
2042 Required. The resource name of an existing exclusion:
2043
2044 ::
2045
2046 "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
2047 "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
2048 "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]"
2049 "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
2050
2051 For example:
2052
2053 ``"projects/my-project/exclusions/my-exclusion"``
2054
2055 This corresponds to the ``name`` field
2056 on the ``request`` instance; if ``request`` is provided, this
2057 should not be set.
2058 retry (google.api_core.retry.Retry): Designation of what errors, if any,
2059 should be retried.
2060 timeout (float): The timeout for this request.
2061 metadata (Sequence[Tuple[str, str]]): Strings which should be
2062 sent along with the request as metadata.
2063
2064 Returns:
2065 google.cloud.logging_v2.types.LogExclusion:
2066 Specifies a set of log entries that are filtered out by a sink. If
2067 your Google Cloud resource receives a large volume of
2068 log entries, you can use exclusions to reduce your
2069 chargeable logs. Note that exclusions on
2070 organization-level and folder-level sinks don't apply
2071 to child resources. Note also that you cannot modify
2072 the \_Required sink or exclude logs from it.
2073
2074 """
2075 # Create or coerce a protobuf request object.
2076 # Quick check: If we got a request object, we should *not* have
2077 # gotten any keyword arguments that map to the request.
2078 has_flattened_params = any([name])
2079 if request is not None and has_flattened_params:
2080 raise ValueError(
2081 "If the `request` argument is set, then none of "
2082 "the individual field arguments should be set."
2083 )
2084
2085 request = logging_config.GetExclusionRequest(request)
2086
2087 # If we have keyword arguments corresponding to fields on the
2088 # request, apply these.
2089 if name is not None:
2090 request.name = name
2091
2092 # Wrap the RPC method; this adds retry and timeout information,
2093 # and friendly error handling.
2094 rpc = gapic_v1.method_async.wrap_method(
2095 self._client._transport.get_exclusion,
2096 default_retry=retries.Retry(
2097 initial=0.1,
2098 maximum=60.0,
2099 multiplier=1.3,
2100 predicate=retries.if_exception_type(
2101 core_exceptions.DeadlineExceeded,
2102 core_exceptions.InternalServerError,
2103 core_exceptions.ServiceUnavailable,
2104 ),
2105 deadline=60.0,
2106 ),
2107 default_timeout=60.0,
2108 client_info=DEFAULT_CLIENT_INFO,
2109 )
2110
2111 # Certain fields should be provided within the metadata header;
2112 # add these here.
2113 metadata = tuple(metadata) + (
2114 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
2115 )
2116
2117 # Send the request.
2118 response = await rpc(
2119 request,
2120 retry=retry,
2121 timeout=timeout,
2122 metadata=metadata,
2123 )
2124
2125 # Done; return the response.
2126 return response
2127
2128 async def create_exclusion(
2129 self,
2130 request: Optional[Union[logging_config.CreateExclusionRequest, dict]] = None,
2131 *,
2132 parent: Optional[str] = None,
2133 exclusion: Optional[logging_config.LogExclusion] = None,
2134 retry: OptionalRetry = gapic_v1.method.DEFAULT,
2135 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
2136 metadata: Sequence[Tuple[str, str]] = (),
2137 ) -> logging_config.LogExclusion:
2138 r"""Creates a new exclusion in the \_Default sink in a specified
2139 parent resource. Only log entries belonging to that resource can
2140 be excluded. You can have up to 10 exclusions in a resource.
2141
2142 .. code-block:: python
2143
2144 # This snippet has been automatically generated and should be regarded as a
2145 # code template only.
2146 # It will require modifications to work:
2147 # - It may require correct/in-range values for request initialization.
2148 # - It may require specifying regional endpoints when creating the service
2149 # client as shown in:
2150 # https://googleapis.dev/python/google-api-core/latest/client_options.html
2151 from google.cloud import logging_v2
2152
2153 async def sample_create_exclusion():
2154 # Create a client
2155 client = logging_v2.ConfigServiceV2AsyncClient()
2156
2157 # Initialize request argument(s)
2158 exclusion = logging_v2.LogExclusion()
2159 exclusion.name = "name_value"
2160 exclusion.filter = "filter_value"
2161
2162 request = logging_v2.CreateExclusionRequest(
2163 parent="parent_value",
2164 exclusion=exclusion,
2165 )
2166
2167 # Make the request
2168 response = await client.create_exclusion(request=request)
2169
2170 # Handle the response
2171 print(response)
2172
2173 Args:
2174 request (Optional[Union[google.cloud.logging_v2.types.CreateExclusionRequest, dict]]):
2175 The request object. The parameters to `CreateExclusion`.
2176 parent (:class:`str`):
2177 Required. The parent resource in which to create the
2178 exclusion:
2179
2180 ::
2181
2182 "projects/[PROJECT_ID]"
2183 "organizations/[ORGANIZATION_ID]"
2184 "billingAccounts/[BILLING_ACCOUNT_ID]"
2185 "folders/[FOLDER_ID]"
2186
2187 For examples:
2188
2189 ``"projects/my-logging-project"``
2190 ``"organizations/123456789"``
2191
2192 This corresponds to the ``parent`` field
2193 on the ``request`` instance; if ``request`` is provided, this
2194 should not be set.
2195 exclusion (:class:`google.cloud.logging_v2.types.LogExclusion`):
2196 Required. The new exclusion, whose ``name`` parameter is
2197 an exclusion name that is not already used in the parent
2198 resource.
2199
2200 This corresponds to the ``exclusion`` field
2201 on the ``request`` instance; if ``request`` is provided, this
2202 should not be set.
2203 retry (google.api_core.retry.Retry): Designation of what errors, if any,
2204 should be retried.
2205 timeout (float): The timeout for this request.
2206 metadata (Sequence[Tuple[str, str]]): Strings which should be
2207 sent along with the request as metadata.
2208
2209 Returns:
2210 google.cloud.logging_v2.types.LogExclusion:
2211 Specifies a set of log entries that are filtered out by a sink. If
2212 your Google Cloud resource receives a large volume of
2213 log entries, you can use exclusions to reduce your
2214 chargeable logs. Note that exclusions on
2215 organization-level and folder-level sinks don't apply
2216 to child resources. Note also that you cannot modify
2217 the \_Required sink or exclude logs from it.
2218
2219 """
2220 # Create or coerce a protobuf request object.
2221 # Quick check: If we got a request object, we should *not* have
2222 # gotten any keyword arguments that map to the request.
2223 has_flattened_params = any([parent, exclusion])
2224 if request is not None and has_flattened_params:
2225 raise ValueError(
2226 "If the `request` argument is set, then none of "
2227 "the individual field arguments should be set."
2228 )
2229
2230 request = logging_config.CreateExclusionRequest(request)
2231
2232 # If we have keyword arguments corresponding to fields on the
2233 # request, apply these.
2234 if parent is not None:
2235 request.parent = parent
2236 if exclusion is not None:
2237 request.exclusion = exclusion
2238
2239 # Wrap the RPC method; this adds retry and timeout information,
2240 # and friendly error handling.
2241 rpc = gapic_v1.method_async.wrap_method(
2242 self._client._transport.create_exclusion,
2243 default_timeout=120.0,
2244 client_info=DEFAULT_CLIENT_INFO,
2245 )
2246
2247 # Certain fields should be provided within the metadata header;
2248 # add these here.
2249 metadata = tuple(metadata) + (
2250 gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)),
2251 )
2252
2253 # Send the request.
2254 response = await rpc(
2255 request,
2256 retry=retry,
2257 timeout=timeout,
2258 metadata=metadata,
2259 )
2260
2261 # Done; return the response.
2262 return response
2263
2264 async def update_exclusion(
2265 self,
2266 request: Optional[Union[logging_config.UpdateExclusionRequest, dict]] = None,
2267 *,
2268 name: Optional[str] = None,
2269 exclusion: Optional[logging_config.LogExclusion] = None,
2270 update_mask: Optional[field_mask_pb2.FieldMask] = None,
2271 retry: OptionalRetry = gapic_v1.method.DEFAULT,
2272 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
2273 metadata: Sequence[Tuple[str, str]] = (),
2274 ) -> logging_config.LogExclusion:
2275 r"""Changes one or more properties of an existing exclusion in the
2276 \_Default sink.
2277
2278 .. code-block:: python
2279
2280 # This snippet has been automatically generated and should be regarded as a
2281 # code template only.
2282 # It will require modifications to work:
2283 # - It may require correct/in-range values for request initialization.
2284 # - It may require specifying regional endpoints when creating the service
2285 # client as shown in:
2286 # https://googleapis.dev/python/google-api-core/latest/client_options.html
2287 from google.cloud import logging_v2
2288
2289 async def sample_update_exclusion():
2290 # Create a client
2291 client = logging_v2.ConfigServiceV2AsyncClient()
2292
2293 # Initialize request argument(s)
2294 exclusion = logging_v2.LogExclusion()
2295 exclusion.name = "name_value"
2296 exclusion.filter = "filter_value"
2297
2298 request = logging_v2.UpdateExclusionRequest(
2299 name="name_value",
2300 exclusion=exclusion,
2301 )
2302
2303 # Make the request
2304 response = await client.update_exclusion(request=request)
2305
2306 # Handle the response
2307 print(response)
2308
2309 Args:
2310 request (Optional[Union[google.cloud.logging_v2.types.UpdateExclusionRequest, dict]]):
2311 The request object. The parameters to `UpdateExclusion`.
2312 name (:class:`str`):
2313 Required. The resource name of the exclusion to update:
2314
2315 ::
2316
2317 "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
2318 "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
2319 "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]"
2320 "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
2321
2322 For example:
2323
2324 ``"projects/my-project/exclusions/my-exclusion"``
2325
2326 This corresponds to the ``name`` field
2327 on the ``request`` instance; if ``request`` is provided, this
2328 should not be set.
2329 exclusion (:class:`google.cloud.logging_v2.types.LogExclusion`):
2330 Required. New values for the existing exclusion. Only
2331 the fields specified in ``update_mask`` are relevant.
2332
2333 This corresponds to the ``exclusion`` field
2334 on the ``request`` instance; if ``request`` is provided, this
2335 should not be set.
2336 update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`):
2337 Required. A non-empty list of fields to change in the
2338 existing exclusion. New values for the fields are taken
2339 from the corresponding fields in the
2340 [LogExclusion][google.logging.v2.LogExclusion] included
2341 in this request. Fields not mentioned in ``update_mask``
2342 are not changed and are ignored in the request.
2343
2344 For example, to change the filter and description of an
2345 exclusion, specify an ``update_mask`` of
2346 ``"filter,description"``.
2347
2348 This corresponds to the ``update_mask`` field
2349 on the ``request`` instance; if ``request`` is provided, this
2350 should not be set.
2351 retry (google.api_core.retry.Retry): Designation of what errors, if any,
2352 should be retried.
2353 timeout (float): The timeout for this request.
2354 metadata (Sequence[Tuple[str, str]]): Strings which should be
2355 sent along with the request as metadata.
2356
2357 Returns:
2358 google.cloud.logging_v2.types.LogExclusion:
2359 Specifies a set of log entries that are filtered out by a sink. If
2360 your Google Cloud resource receives a large volume of
2361 log entries, you can use exclusions to reduce your
2362 chargeable logs. Note that exclusions on
2363 organization-level and folder-level sinks don't apply
2364 to child resources. Note also that you cannot modify
2365 the \_Required sink or exclude logs from it.
2366
2367 """
2368 # Create or coerce a protobuf request object.
2369 # Quick check: If we got a request object, we should *not* have
2370 # gotten any keyword arguments that map to the request.
2371 has_flattened_params = any([name, exclusion, update_mask])
2372 if request is not None and has_flattened_params:
2373 raise ValueError(
2374 "If the `request` argument is set, then none of "
2375 "the individual field arguments should be set."
2376 )
2377
2378 request = logging_config.UpdateExclusionRequest(request)
2379
2380 # If we have keyword arguments corresponding to fields on the
2381 # request, apply these.
2382 if name is not None:
2383 request.name = name
2384 if exclusion is not None:
2385 request.exclusion = exclusion
2386 if update_mask is not None:
2387 request.update_mask = update_mask
2388
2389 # Wrap the RPC method; this adds retry and timeout information,
2390 # and friendly error handling.
2391 rpc = gapic_v1.method_async.wrap_method(
2392 self._client._transport.update_exclusion,
2393 default_timeout=120.0,
2394 client_info=DEFAULT_CLIENT_INFO,
2395 )
2396
2397 # Certain fields should be provided within the metadata header;
2398 # add these here.
2399 metadata = tuple(metadata) + (
2400 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
2401 )
2402
2403 # Send the request.
2404 response = await rpc(
2405 request,
2406 retry=retry,
2407 timeout=timeout,
2408 metadata=metadata,
2409 )
2410
2411 # Done; return the response.
2412 return response
2413
2414 async def delete_exclusion(
2415 self,
2416 request: Optional[Union[logging_config.DeleteExclusionRequest, dict]] = None,
2417 *,
2418 name: Optional[str] = None,
2419 retry: OptionalRetry = gapic_v1.method.DEFAULT,
2420 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
2421 metadata: Sequence[Tuple[str, str]] = (),
2422 ) -> None:
2423 r"""Deletes an exclusion in the \_Default sink.
2424
2425 .. code-block:: python
2426
2427 # This snippet has been automatically generated and should be regarded as a
2428 # code template only.
2429 # It will require modifications to work:
2430 # - It may require correct/in-range values for request initialization.
2431 # - It may require specifying regional endpoints when creating the service
2432 # client as shown in:
2433 # https://googleapis.dev/python/google-api-core/latest/client_options.html
2434 from google.cloud import logging_v2
2435
2436 async def sample_delete_exclusion():
2437 # Create a client
2438 client = logging_v2.ConfigServiceV2AsyncClient()
2439
2440 # Initialize request argument(s)
2441 request = logging_v2.DeleteExclusionRequest(
2442 name="name_value",
2443 )
2444
2445 # Make the request
2446 await client.delete_exclusion(request=request)
2447
2448 Args:
2449 request (Optional[Union[google.cloud.logging_v2.types.DeleteExclusionRequest, dict]]):
2450 The request object. The parameters to `DeleteExclusion`.
2451 name (:class:`str`):
2452 Required. The resource name of an existing exclusion to
2453 delete:
2454
2455 ::
2456
2457 "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
2458 "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
2459 "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]"
2460 "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
2461
2462 For example:
2463
2464 ``"projects/my-project/exclusions/my-exclusion"``
2465
2466 This corresponds to the ``name`` field
2467 on the ``request`` instance; if ``request`` is provided, this
2468 should not be set.
2469 retry (google.api_core.retry.Retry): Designation of what errors, if any,
2470 should be retried.
2471 timeout (float): The timeout for this request.
2472 metadata (Sequence[Tuple[str, str]]): Strings which should be
2473 sent along with the request as metadata.
2474 """
2475 # Create or coerce a protobuf request object.
2476 # Quick check: If we got a request object, we should *not* have
2477 # gotten any keyword arguments that map to the request.
2478 has_flattened_params = any([name])
2479 if request is not None and has_flattened_params:
2480 raise ValueError(
2481 "If the `request` argument is set, then none of "
2482 "the individual field arguments should be set."
2483 )
2484
2485 request = logging_config.DeleteExclusionRequest(request)
2486
2487 # If we have keyword arguments corresponding to fields on the
2488 # request, apply these.
2489 if name is not None:
2490 request.name = name
2491
2492 # Wrap the RPC method; this adds retry and timeout information,
2493 # and friendly error handling.
2494 rpc = gapic_v1.method_async.wrap_method(
2495 self._client._transport.delete_exclusion,
2496 default_retry=retries.Retry(
2497 initial=0.1,
2498 maximum=60.0,
2499 multiplier=1.3,
2500 predicate=retries.if_exception_type(
2501 core_exceptions.DeadlineExceeded,
2502 core_exceptions.InternalServerError,
2503 core_exceptions.ServiceUnavailable,
2504 ),
2505 deadline=60.0,
2506 ),
2507 default_timeout=60.0,
2508 client_info=DEFAULT_CLIENT_INFO,
2509 )
2510
2511 # Certain fields should be provided within the metadata header;
2512 # add these here.
2513 metadata = tuple(metadata) + (
2514 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
2515 )
2516
2517 # Send the request.
2518 await rpc(
2519 request,
2520 retry=retry,
2521 timeout=timeout,
2522 metadata=metadata,
2523 )
2524
2525 async def get_cmek_settings(
2526 self,
2527 request: Optional[Union[logging_config.GetCmekSettingsRequest, dict]] = None,
2528 *,
2529 retry: OptionalRetry = gapic_v1.method.DEFAULT,
2530 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
2531 metadata: Sequence[Tuple[str, str]] = (),
2532 ) -> logging_config.CmekSettings:
2533 r"""Gets the Logging CMEK settings for the given resource.
2534
2535 Note: CMEK for the Log Router can be configured for Google Cloud
2536 projects, folders, organizations and billing accounts. Once
2537 configured for an organization, it applies to all projects and
2538 folders in the Google Cloud organization.
2539
2540 See `Enabling CMEK for Log
2541 Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__
2542 for more information.
2543
2544 .. code-block:: python
2545
2546 # This snippet has been automatically generated and should be regarded as a
2547 # code template only.
2548 # It will require modifications to work:
2549 # - It may require correct/in-range values for request initialization.
2550 # - It may require specifying regional endpoints when creating the service
2551 # client as shown in:
2552 # https://googleapis.dev/python/google-api-core/latest/client_options.html
2553 from google.cloud import logging_v2
2554
2555 async def sample_get_cmek_settings():
2556 # Create a client
2557 client = logging_v2.ConfigServiceV2AsyncClient()
2558
2559 # Initialize request argument(s)
2560 request = logging_v2.GetCmekSettingsRequest(
2561 name="name_value",
2562 )
2563
2564 # Make the request
2565 response = await client.get_cmek_settings(request=request)
2566
2567 # Handle the response
2568 print(response)
2569
2570 Args:
2571 request (Optional[Union[google.cloud.logging_v2.types.GetCmekSettingsRequest, dict]]):
2572 The request object. The parameters to
2573 [GetCmekSettings][google.logging.v2.ConfigServiceV2.GetCmekSettings].
2574 See [Enabling CMEK for Log
2575 Router](https://cloud.google.com/logging/docs/routing/managed-encryption)
2576 for more information.
2577 retry (google.api_core.retry.Retry): Designation of what errors, if any,
2578 should be retried.
2579 timeout (float): The timeout for this request.
2580 metadata (Sequence[Tuple[str, str]]): Strings which should be
2581 sent along with the request as metadata.
2582
2583 Returns:
2584 google.cloud.logging_v2.types.CmekSettings:
2585 Describes the customer-managed encryption key (CMEK) settings associated with
2586 a project, folder, organization, billing account, or
2587 flexible resource.
2588
2589 Note: CMEK for the Log Router can currently only be
2590 configured for Google Cloud organizations. Once
2591 configured, it applies to all projects and folders in
2592 the Google Cloud organization.
2593
2594 See [Enabling CMEK for Log
2595 Router](\ https://cloud.google.com/logging/docs/routing/managed-encryption)
2596 for more information.
2597
2598 """
2599 # Create or coerce a protobuf request object.
2600 request = logging_config.GetCmekSettingsRequest(request)
2601
2602 # Wrap the RPC method; this adds retry and timeout information,
2603 # and friendly error handling.
2604 rpc = gapic_v1.method_async.wrap_method(
2605 self._client._transport.get_cmek_settings,
2606 default_timeout=None,
2607 client_info=DEFAULT_CLIENT_INFO,
2608 )
2609
2610 # Certain fields should be provided within the metadata header;
2611 # add these here.
2612 metadata = tuple(metadata) + (
2613 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
2614 )
2615
2616 # Send the request.
2617 response = await rpc(
2618 request,
2619 retry=retry,
2620 timeout=timeout,
2621 metadata=metadata,
2622 )
2623
2624 # Done; return the response.
2625 return response
2626
2627 async def update_cmek_settings(
2628 self,
2629 request: Optional[Union[logging_config.UpdateCmekSettingsRequest, dict]] = None,
2630 *,
2631 retry: OptionalRetry = gapic_v1.method.DEFAULT,
2632 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
2633 metadata: Sequence[Tuple[str, str]] = (),
2634 ) -> logging_config.CmekSettings:
2635 r"""Updates the Log Router CMEK settings for the given resource.
2636
2637 Note: CMEK for the Log Router can currently only be configured
2638 for Google Cloud organizations. Once configured, it applies to
2639 all projects and folders in the Google Cloud organization.
2640
2641 [UpdateCmekSettings][google.logging.v2.ConfigServiceV2.UpdateCmekSettings]
2642 will fail if 1) ``kms_key_name`` is invalid, or 2) the
2643 associated service account does not have the required
2644 ``roles/cloudkms.cryptoKeyEncrypterDecrypter`` role assigned for
2645 the key, or 3) access to the key is disabled.
2646
2647 See `Enabling CMEK for Log
2648 Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__
2649 for more information.
2650
2651 .. code-block:: python
2652
2653 # This snippet has been automatically generated and should be regarded as a
2654 # code template only.
2655 # It will require modifications to work:
2656 # - It may require correct/in-range values for request initialization.
2657 # - It may require specifying regional endpoints when creating the service
2658 # client as shown in:
2659 # https://googleapis.dev/python/google-api-core/latest/client_options.html
2660 from google.cloud import logging_v2
2661
2662 async def sample_update_cmek_settings():
2663 # Create a client
2664 client = logging_v2.ConfigServiceV2AsyncClient()
2665
2666 # Initialize request argument(s)
2667 request = logging_v2.UpdateCmekSettingsRequest(
2668 name="name_value",
2669 )
2670
2671 # Make the request
2672 response = await client.update_cmek_settings(request=request)
2673
2674 # Handle the response
2675 print(response)
2676
2677 Args:
2678 request (Optional[Union[google.cloud.logging_v2.types.UpdateCmekSettingsRequest, dict]]):
2679 The request object. The parameters to
2680 [UpdateCmekSettings][google.logging.v2.ConfigServiceV2.UpdateCmekSettings].
2681 See [Enabling CMEK for Log
2682 Router](https://cloud.google.com/logging/docs/routing/managed-encryption)
2683 for more information.
2684 retry (google.api_core.retry.Retry): Designation of what errors, if any,
2685 should be retried.
2686 timeout (float): The timeout for this request.
2687 metadata (Sequence[Tuple[str, str]]): Strings which should be
2688 sent along with the request as metadata.
2689
2690 Returns:
2691 google.cloud.logging_v2.types.CmekSettings:
2692 Describes the customer-managed encryption key (CMEK) settings associated with
2693 a project, folder, organization, billing account, or
2694 flexible resource.
2695
2696 Note: CMEK for the Log Router can currently only be
2697 configured for Google Cloud organizations. Once
2698 configured, it applies to all projects and folders in
2699 the Google Cloud organization.
2700
2701 See [Enabling CMEK for Log
2702 Router](\ https://cloud.google.com/logging/docs/routing/managed-encryption)
2703 for more information.
2704
2705 """
2706 # Create or coerce a protobuf request object.
2707 request = logging_config.UpdateCmekSettingsRequest(request)
2708
2709 # Wrap the RPC method; this adds retry and timeout information,
2710 # and friendly error handling.
2711 rpc = gapic_v1.method_async.wrap_method(
2712 self._client._transport.update_cmek_settings,
2713 default_timeout=None,
2714 client_info=DEFAULT_CLIENT_INFO,
2715 )
2716
2717 # Certain fields should be provided within the metadata header;
2718 # add these here.
2719 metadata = tuple(metadata) + (
2720 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
2721 )
2722
2723 # Send the request.
2724 response = await rpc(
2725 request,
2726 retry=retry,
2727 timeout=timeout,
2728 metadata=metadata,
2729 )
2730
2731 # Done; return the response.
2732 return response
2733
2734 async def get_settings(
2735 self,
2736 request: Optional[Union[logging_config.GetSettingsRequest, dict]] = None,
2737 *,
2738 name: Optional[str] = None,
2739 retry: OptionalRetry = gapic_v1.method.DEFAULT,
2740 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
2741 metadata: Sequence[Tuple[str, str]] = (),
2742 ) -> logging_config.Settings:
2743 r"""Gets the Log Router settings for the given resource.
2744
2745 Note: Settings for the Log Router can be get for Google Cloud
2746 projects, folders, organizations and billing accounts. Currently
2747 it can only be configured for organizations. Once configured for
2748 an organization, it applies to all projects and folders in the
2749 Google Cloud organization.
2750
2751 See `Enabling CMEK for Log
2752 Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__
2753 for more information.
2754
2755 .. code-block:: python
2756
2757 # This snippet has been automatically generated and should be regarded as a
2758 # code template only.
2759 # It will require modifications to work:
2760 # - It may require correct/in-range values for request initialization.
2761 # - It may require specifying regional endpoints when creating the service
2762 # client as shown in:
2763 # https://googleapis.dev/python/google-api-core/latest/client_options.html
2764 from google.cloud import logging_v2
2765
2766 async def sample_get_settings():
2767 # Create a client
2768 client = logging_v2.ConfigServiceV2AsyncClient()
2769
2770 # Initialize request argument(s)
2771 request = logging_v2.GetSettingsRequest(
2772 name="name_value",
2773 )
2774
2775 # Make the request
2776 response = await client.get_settings(request=request)
2777
2778 # Handle the response
2779 print(response)
2780
2781 Args:
2782 request (Optional[Union[google.cloud.logging_v2.types.GetSettingsRequest, dict]]):
2783 The request object. The parameters to
2784 [GetSettings][google.logging.v2.ConfigServiceV2.GetSettings].
2785 See [Enabling CMEK for Log
2786 Router](https://cloud.google.com/logging/docs/routing/managed-encryption)
2787 for more information.
2788 name (:class:`str`):
2789 Required. The resource for which to retrieve settings.
2790
2791 ::
2792
2793 "projects/[PROJECT_ID]/settings"
2794 "organizations/[ORGANIZATION_ID]/settings"
2795 "billingAccounts/[BILLING_ACCOUNT_ID]/settings"
2796 "folders/[FOLDER_ID]/settings"
2797
2798 For example:
2799
2800 ``"organizations/12345/settings"``
2801
2802 Note: Settings for the Log Router can be get for Google
2803 Cloud projects, folders, organizations and billing
2804 accounts. Currently it can only be configured for
2805 organizations. Once configured for an organization, it
2806 applies to all projects and folders in the Google Cloud
2807 organization.
2808
2809 This corresponds to the ``name`` field
2810 on the ``request`` instance; if ``request`` is provided, this
2811 should not be set.
2812 retry (google.api_core.retry.Retry): Designation of what errors, if any,
2813 should be retried.
2814 timeout (float): The timeout for this request.
2815 metadata (Sequence[Tuple[str, str]]): Strings which should be
2816 sent along with the request as metadata.
2817
2818 Returns:
2819 google.cloud.logging_v2.types.Settings:
2820 Describes the settings associated
2821 with a project, folder, organization,
2822 billing account, or flexible resource.
2823
2824 """
2825 # Create or coerce a protobuf request object.
2826 # Quick check: If we got a request object, we should *not* have
2827 # gotten any keyword arguments that map to the request.
2828 has_flattened_params = any([name])
2829 if request is not None and has_flattened_params:
2830 raise ValueError(
2831 "If the `request` argument is set, then none of "
2832 "the individual field arguments should be set."
2833 )
2834
2835 request = logging_config.GetSettingsRequest(request)
2836
2837 # If we have keyword arguments corresponding to fields on the
2838 # request, apply these.
2839 if name is not None:
2840 request.name = name
2841
2842 # Wrap the RPC method; this adds retry and timeout information,
2843 # and friendly error handling.
2844 rpc = gapic_v1.method_async.wrap_method(
2845 self._client._transport.get_settings,
2846 default_timeout=None,
2847 client_info=DEFAULT_CLIENT_INFO,
2848 )
2849
2850 # Certain fields should be provided within the metadata header;
2851 # add these here.
2852 metadata = tuple(metadata) + (
2853 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
2854 )
2855
2856 # Send the request.
2857 response = await rpc(
2858 request,
2859 retry=retry,
2860 timeout=timeout,
2861 metadata=metadata,
2862 )
2863
2864 # Done; return the response.
2865 return response
2866
2867 async def update_settings(
2868 self,
2869 request: Optional[Union[logging_config.UpdateSettingsRequest, dict]] = None,
2870 *,
2871 settings: Optional[logging_config.Settings] = None,
2872 update_mask: Optional[field_mask_pb2.FieldMask] = None,
2873 retry: OptionalRetry = gapic_v1.method.DEFAULT,
2874 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
2875 metadata: Sequence[Tuple[str, str]] = (),
2876 ) -> logging_config.Settings:
2877 r"""Updates the Log Router settings for the given resource.
2878
2879 Note: Settings for the Log Router can currently only be
2880 configured for Google Cloud organizations. Once configured, it
2881 applies to all projects and folders in the Google Cloud
2882 organization.
2883
2884 [UpdateSettings][google.logging.v2.ConfigServiceV2.UpdateSettings]
2885 will fail if 1) ``kms_key_name`` is invalid, or 2) the
2886 associated service account does not have the required
2887 ``roles/cloudkms.cryptoKeyEncrypterDecrypter`` role assigned for
2888 the key, or 3) access to the key is disabled. 4) ``location_id``
2889 is not supported by Logging. 5) ``location_id`` violate
2890 OrgPolicy.
2891
2892 See `Enabling CMEK for Log
2893 Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__
2894 for more information.
2895
2896 .. code-block:: python
2897
2898 # This snippet has been automatically generated and should be regarded as a
2899 # code template only.
2900 # It will require modifications to work:
2901 # - It may require correct/in-range values for request initialization.
2902 # - It may require specifying regional endpoints when creating the service
2903 # client as shown in:
2904 # https://googleapis.dev/python/google-api-core/latest/client_options.html
2905 from google.cloud import logging_v2
2906
2907 async def sample_update_settings():
2908 # Create a client
2909 client = logging_v2.ConfigServiceV2AsyncClient()
2910
2911 # Initialize request argument(s)
2912 request = logging_v2.UpdateSettingsRequest(
2913 name="name_value",
2914 )
2915
2916 # Make the request
2917 response = await client.update_settings(request=request)
2918
2919 # Handle the response
2920 print(response)
2921
2922 Args:
2923 request (Optional[Union[google.cloud.logging_v2.types.UpdateSettingsRequest, dict]]):
2924 The request object. The parameters to
2925 [UpdateSettings][google.logging.v2.ConfigServiceV2.UpdateSettings].
2926 See [Enabling CMEK for Log
2927 Router](https://cloud.google.com/logging/docs/routing/managed-encryption)
2928 for more information.
2929 settings (:class:`google.cloud.logging_v2.types.Settings`):
2930 Required. The settings to update.
2931
2932 See `Enabling CMEK for Log
2933 Router <https://cloud.google.com/logging/docs/routing/managed-encryption>`__
2934 for more information.
2935
2936 This corresponds to the ``settings`` field
2937 on the ``request`` instance; if ``request`` is provided, this
2938 should not be set.
2939 update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`):
2940 Optional. Field mask identifying which fields from
2941 ``settings`` should be updated. A field will be
2942 overwritten if and only if it is in the update mask.
2943 Output only fields cannot be updated.
2944
2945 See [FieldMask][google.protobuf.FieldMask] for more
2946 information.
2947
2948 For example: ``"updateMask=kmsKeyName"``
2949
2950 This corresponds to the ``update_mask`` field
2951 on the ``request`` instance; if ``request`` is provided, this
2952 should not be set.
2953 retry (google.api_core.retry.Retry): Designation of what errors, if any,
2954 should be retried.
2955 timeout (float): The timeout for this request.
2956 metadata (Sequence[Tuple[str, str]]): Strings which should be
2957 sent along with the request as metadata.
2958
2959 Returns:
2960 google.cloud.logging_v2.types.Settings:
2961 Describes the settings associated
2962 with a project, folder, organization,
2963 billing account, or flexible resource.
2964
2965 """
2966 # Create or coerce a protobuf request object.
2967 # Quick check: If we got a request object, we should *not* have
2968 # gotten any keyword arguments that map to the request.
2969 has_flattened_params = any([settings, update_mask])
2970 if request is not None and has_flattened_params:
2971 raise ValueError(
2972 "If the `request` argument is set, then none of "
2973 "the individual field arguments should be set."
2974 )
2975
2976 request = logging_config.UpdateSettingsRequest(request)
2977
2978 # If we have keyword arguments corresponding to fields on the
2979 # request, apply these.
2980 if settings is not None:
2981 request.settings = settings
2982 if update_mask is not None:
2983 request.update_mask = update_mask
2984
2985 # Wrap the RPC method; this adds retry and timeout information,
2986 # and friendly error handling.
2987 rpc = gapic_v1.method_async.wrap_method(
2988 self._client._transport.update_settings,
2989 default_timeout=None,
2990 client_info=DEFAULT_CLIENT_INFO,
2991 )
2992
2993 # Certain fields should be provided within the metadata header;
2994 # add these here.
2995 metadata = tuple(metadata) + (
2996 gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
2997 )
2998
2999 # Send the request.
3000 response = await rpc(
3001 request,
3002 retry=retry,
3003 timeout=timeout,
3004 metadata=metadata,
3005 )
3006
3007 # Done; return the response.
3008 return response
3009
3010 async def copy_log_entries(
3011 self,
3012 request: Optional[Union[logging_config.CopyLogEntriesRequest, dict]] = None,
3013 *,
3014 retry: OptionalRetry = gapic_v1.method.DEFAULT,
3015 timeout: Union[float, object] = gapic_v1.method.DEFAULT,
3016 metadata: Sequence[Tuple[str, str]] = (),
3017 ) -> operation_async.AsyncOperation:
3018 r"""Copies a set of log entries from a log bucket to a
3019 Cloud Storage bucket.
3020
3021 .. code-block:: python
3022
3023 # This snippet has been automatically generated and should be regarded as a
3024 # code template only.
3025 # It will require modifications to work:
3026 # - It may require correct/in-range values for request initialization.
3027 # - It may require specifying regional endpoints when creating the service
3028 # client as shown in:
3029 # https://googleapis.dev/python/google-api-core/latest/client_options.html
3030 from google.cloud import logging_v2
3031
3032 async def sample_copy_log_entries():
3033 # Create a client
3034 client = logging_v2.ConfigServiceV2AsyncClient()
3035
3036 # Initialize request argument(s)
3037 request = logging_v2.CopyLogEntriesRequest(
3038 name="name_value",
3039 destination="destination_value",
3040 )
3041
3042 # Make the request
3043 operation = client.copy_log_entries(request=request)
3044
3045 print("Waiting for operation to complete...")
3046
3047 response = (await operation).result()
3048
3049 # Handle the response
3050 print(response)
3051
3052 Args:
3053 request (Optional[Union[google.cloud.logging_v2.types.CopyLogEntriesRequest, dict]]):
3054 The request object. The parameters to CopyLogEntries.
3055 retry (google.api_core.retry.Retry): Designation of what errors, if any,
3056 should be retried.
3057 timeout (float): The timeout for this request.
3058 metadata (Sequence[Tuple[str, str]]): Strings which should be
3059 sent along with the request as metadata.
3060
3061 Returns:
3062 google.api_core.operation_async.AsyncOperation:
3063 An object representing a long-running operation.
3064
3065 The result type for the operation will be
3066 :class:`google.cloud.logging_v2.types.CopyLogEntriesResponse`
3067 Response type for CopyLogEntries long running
3068 operations.
3069
3070 """
3071 # Create or coerce a protobuf request object.
3072 request = logging_config.CopyLogEntriesRequest(request)
3073
3074 # Wrap the RPC method; this adds retry and timeout information,
3075 # and friendly error handling.
3076 rpc = gapic_v1.method_async.wrap_method(
3077 self._client._transport.copy_log_entries,
3078 default_timeout=None,
3079 client_info=DEFAULT_CLIENT_INFO,
3080 )
3081
3082 # Send the request.
3083 response = await rpc(
3084 request,
3085 retry=retry,
3086 timeout=timeout,
3087 metadata=metadata,
3088 )
3089
3090 # Wrap the response in an operation future.
3091 response = operation_async.from_gapic(
3092 response,
3093 self._client._transport.operations_client,
3094 logging_config.CopyLogEntriesResponse,
3095 metadata_type=logging_config.CopyLogEntriesMetadata,
3096 )
3097
3098 # Done; return the response.
3099 return response
3100
3101 async def __aenter__(self):
3102 return self
3103
3104 async def __aexit__(self, exc_type, exc, tb):
3105 await self.transport.close()
3106
3107
3108DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
3109 gapic_version=package_version.__version__
3110)
3111
3112
3113__all__ = ("ConfigServiceV2AsyncClient",)