-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix!: [google-cloud-kms] Pagination feature is introduced for method …
…`ListKeyHandles` in service `Autokey` (#13093) BEGIN_COMMIT_OVERRIDE fix!: Pagination feature is introduced for method ListKeyHandles in service Autokey feat: Adding a state field for AutokeyConfig docs: Field service_resolvers in message .google.cloud.kms.v1.EkmConnection is Explicitly is marked as to have field behavior of Optional docs: A comment for field destroy_scheduled_duration in message .google.cloud.kms.v1.CryptoKey is updated for the default duration END_COMMIT_OVERRIDE - [ ] Regenerate this pull request now. feat: Adding a state field for AutokeyConfig docs: Field service_resolvers in message .google.cloud.kms.v1.EkmConnection is Explicitly is marked as to have field behavior of Optional docs: A comment for field `destroy_scheduled_duration` in message `.google.cloud.kms.v1.CryptoKey` is updated for the default duration PiperOrigin-RevId: 676068244 Source-Link: googleapis/googleapis@42492c9 Source-Link: googleapis/googleapis-gen@4743218 Copy-Tag: eyJwIjoicGFja2FnZXMvZ29vZ2xlLWNsb3VkLWttcy8uT3dsQm90LnlhbWwiLCJoIjoiNDc0MzIxODBiZGZiYTg3OWZjN2Y4MmM0YzQ1MTE4MTcwMmYyNTAwOSJ9 --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: ohmayr <omairnaveed@ymail.com>
- Loading branch information
1 parent
e727cc0
commit b4c9770
Showing
22 changed files
with
648 additions
and
49 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
193 changes: 193 additions & 0 deletions
193
packages/google-cloud-kms/google/cloud/kms_v1/services/autokey/pagers.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,193 @@ | ||
# -*- coding: utf-8 -*- | ||
# Copyright 2024 Google LLC | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
from typing import ( | ||
Any, | ||
AsyncIterator, | ||
Awaitable, | ||
Callable, | ||
Iterator, | ||
Optional, | ||
Sequence, | ||
Tuple, | ||
Union, | ||
) | ||
|
||
from google.api_core import gapic_v1 | ||
from google.api_core import retry as retries | ||
from google.api_core import retry_async as retries_async | ||
|
||
try: | ||
OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault, None] | ||
OptionalAsyncRetry = Union[ | ||
retries_async.AsyncRetry, gapic_v1.method._MethodDefault, None | ||
] | ||
except AttributeError: # pragma: NO COVER | ||
OptionalRetry = Union[retries.Retry, object, None] # type: ignore | ||
OptionalAsyncRetry = Union[retries_async.AsyncRetry, object, None] # type: ignore | ||
|
||
from google.cloud.kms_v1.types import autokey | ||
|
||
|
||
class ListKeyHandlesPager: | ||
"""A pager for iterating through ``list_key_handles`` requests. | ||
This class thinly wraps an initial | ||
:class:`google.cloud.kms_v1.types.ListKeyHandlesResponse` object, and | ||
provides an ``__iter__`` method to iterate through its | ||
``key_handles`` field. | ||
If there are more pages, the ``__iter__`` method will make additional | ||
``ListKeyHandles`` requests and continue to iterate | ||
through the ``key_handles`` field on the | ||
corresponding responses. | ||
All the usual :class:`google.cloud.kms_v1.types.ListKeyHandlesResponse` | ||
attributes are available on the pager. If multiple requests are made, only | ||
the most recent response is retained, and thus used for attribute lookup. | ||
""" | ||
|
||
def __init__( | ||
self, | ||
method: Callable[..., autokey.ListKeyHandlesResponse], | ||
request: autokey.ListKeyHandlesRequest, | ||
response: autokey.ListKeyHandlesResponse, | ||
*, | ||
retry: OptionalRetry = gapic_v1.method.DEFAULT, | ||
timeout: Union[float, object] = gapic_v1.method.DEFAULT, | ||
metadata: Sequence[Tuple[str, str]] = () | ||
): | ||
"""Instantiate the pager. | ||
Args: | ||
method (Callable): The method that was originally called, and | ||
which instantiated this pager. | ||
request (google.cloud.kms_v1.types.ListKeyHandlesRequest): | ||
The initial request object. | ||
response (google.cloud.kms_v1.types.ListKeyHandlesResponse): | ||
The initial response object. | ||
retry (google.api_core.retry.Retry): Designation of what errors, | ||
if any, should be retried. | ||
timeout (float): The timeout for this request. | ||
metadata (Sequence[Tuple[str, str]]): Strings which should be | ||
sent along with the request as metadata. | ||
""" | ||
self._method = method | ||
self._request = autokey.ListKeyHandlesRequest(request) | ||
self._response = response | ||
self._retry = retry | ||
self._timeout = timeout | ||
self._metadata = metadata | ||
|
||
def __getattr__(self, name: str) -> Any: | ||
return getattr(self._response, name) | ||
|
||
@property | ||
def pages(self) -> Iterator[autokey.ListKeyHandlesResponse]: | ||
yield self._response | ||
while self._response.next_page_token: | ||
self._request.page_token = self._response.next_page_token | ||
self._response = self._method( | ||
self._request, | ||
retry=self._retry, | ||
timeout=self._timeout, | ||
metadata=self._metadata, | ||
) | ||
yield self._response | ||
|
||
def __iter__(self) -> Iterator[autokey.KeyHandle]: | ||
for page in self.pages: | ||
yield from page.key_handles | ||
|
||
def __repr__(self) -> str: | ||
return "{0}<{1!r}>".format(self.__class__.__name__, self._response) | ||
|
||
|
||
class ListKeyHandlesAsyncPager: | ||
"""A pager for iterating through ``list_key_handles`` requests. | ||
This class thinly wraps an initial | ||
:class:`google.cloud.kms_v1.types.ListKeyHandlesResponse` object, and | ||
provides an ``__aiter__`` method to iterate through its | ||
``key_handles`` field. | ||
If there are more pages, the ``__aiter__`` method will make additional | ||
``ListKeyHandles`` requests and continue to iterate | ||
through the ``key_handles`` field on the | ||
corresponding responses. | ||
All the usual :class:`google.cloud.kms_v1.types.ListKeyHandlesResponse` | ||
attributes are available on the pager. If multiple requests are made, only | ||
the most recent response is retained, and thus used for attribute lookup. | ||
""" | ||
|
||
def __init__( | ||
self, | ||
method: Callable[..., Awaitable[autokey.ListKeyHandlesResponse]], | ||
request: autokey.ListKeyHandlesRequest, | ||
response: autokey.ListKeyHandlesResponse, | ||
*, | ||
retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT, | ||
timeout: Union[float, object] = gapic_v1.method.DEFAULT, | ||
metadata: Sequence[Tuple[str, str]] = () | ||
): | ||
"""Instantiates the pager. | ||
Args: | ||
method (Callable): The method that was originally called, and | ||
which instantiated this pager. | ||
request (google.cloud.kms_v1.types.ListKeyHandlesRequest): | ||
The initial request object. | ||
response (google.cloud.kms_v1.types.ListKeyHandlesResponse): | ||
The initial response object. | ||
retry (google.api_core.retry.AsyncRetry): Designation of what errors, | ||
if any, should be retried. | ||
timeout (float): The timeout for this request. | ||
metadata (Sequence[Tuple[str, str]]): Strings which should be | ||
sent along with the request as metadata. | ||
""" | ||
self._method = method | ||
self._request = autokey.ListKeyHandlesRequest(request) | ||
self._response = response | ||
self._retry = retry | ||
self._timeout = timeout | ||
self._metadata = metadata | ||
|
||
def __getattr__(self, name: str) -> Any: | ||
return getattr(self._response, name) | ||
|
||
@property | ||
async def pages(self) -> AsyncIterator[autokey.ListKeyHandlesResponse]: | ||
yield self._response | ||
while self._response.next_page_token: | ||
self._request.page_token = self._response.next_page_token | ||
self._response = await self._method( | ||
self._request, | ||
retry=self._retry, | ||
timeout=self._timeout, | ||
metadata=self._metadata, | ||
) | ||
yield self._response | ||
|
||
def __aiter__(self) -> AsyncIterator[autokey.KeyHandle]: | ||
async def async_generator(): | ||
async for page in self.pages: | ||
for response in page.key_handles: | ||
yield response | ||
|
||
return async_generator() | ||
|
||
def __repr__(self) -> str: | ||
return "{0}<{1!r}>".format(self.__class__.__name__, self._response) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.