From 747dc6d9c22c7d36bebd03d113b6f8b8a92f27aa Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 25 Nov 2022 11:19:36 -0500 Subject: [PATCH] chore: Update gapic-generator-python to v1.6.1 (#246) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: update to gapic-generator-python 1.5.0 feat: add support for `google.cloud..__version__` PiperOrigin-RevId: 484665853 Source-Link: https://github.com/googleapis/googleapis/commit/8eb249a19db926c2fbc4ecf1dc09c0e521a88b22 Source-Link: https://github.com/googleapis/googleapis-gen/commit/c8aa327b5f478865fc3fd91e3c2768e54e26ad44 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYzhhYTMyN2I1ZjQ3ODg2NWZjM2ZkOTFlM2MyNzY4ZTU0ZTI2YWQ0NCJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * update version in gapic_version.py * add .release-please-manifest.json with correct version * add owlbot.py to exclude generated gapic_version.py * set manifest to true in .github/release-please.yml * add release-please-config.json * chore: Update to gapic-generator-python 1.6.0 feat(python): Add typing to proto.Message based class attributes feat(python): Snippetgen handling of repeated enum field PiperOrigin-RevId: 487326846 Source-Link: https://github.com/googleapis/googleapis/commit/da380c77bb87ba0f752baf07605dd1db30e1f7e1 Source-Link: https://github.com/googleapis/googleapis-gen/commit/61ef5762ee6731a0cbbfea22fd0eecee51ab1c8e Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNjFlZjU3NjJlZTY3MzFhMGNiYmZlYTIyZmQwZWVjZWU1MWFiMWM4ZSJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * feat: new APIs added to reflect updates to the filestore service - Add ENTERPRISE Tier - Add snapshot APIs: RevertInstance, ListSnapshots, CreateSnapshot, DeleteSnapshot, UpdateSnapshot - Add multi-share APIs: ListShares, GetShare, CreateShare, DeleteShare, UpdateShare - Add ConnectMode to NetworkConfig (for Private Service Access support) - New status codes (SUSPENDED/SUSPENDING, REVERTING/RESUMING) - Add SuspensionReason (for KMS related suspension) - Add new fields to Instance information: max_capacity_gb, capacity_step_size_gb, max_share_count, capacity_gb, multi_share_enabled PiperOrigin-RevId: 487492758 Source-Link: https://github.com/googleapis/googleapis/commit/5be5981f50322cf0c7388595e0f31ac5d0693469 Source-Link: https://github.com/googleapis/googleapis-gen/commit/ab0e217f560cc2c1afc11441c2eab6b6950efd2b Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYWIwZTIxN2Y1NjBjYzJjMWFmYzExNDQxYzJlYWI2YjY5NTBlZmQyYiJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * update path to snippet metadata json * chore: Update gapic-generator-python to v1.6.1 PiperOrigin-RevId: 488036204 Source-Link: https://github.com/googleapis/googleapis/commit/08f275f5c1c0d99056e1cb68376323414459ee19 Source-Link: https://github.com/googleapis/googleapis-gen/commit/555c0945e60649e38739ae64bc45719cdf72178f Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNTU1YzA5NDVlNjA2NDllMzg3MzlhZTY0YmM0NTcxOWNkZjcyMTc4ZiJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot Co-authored-by: Anthonios Partheniou --- .../.github/release-please.yml | 1 + .../.release-please-manifest.json | 3 + .../docs/recommender_v1/types.rst | 1 - .../docs/recommender_v1beta1/types.rst | 1 - .../google/cloud/recommender/__init__.py | 4 + .../google/cloud/recommender/gapic_version.py | 16 ++ .../google/cloud/recommender_v1/__init__.py | 4 + .../services/recommender/async_client.py | 162 ++++++++++-------- .../services/recommender/client.py | 144 +++++++++------- .../services/recommender/transports/base.py | 2 +- .../services/recommender/transports/grpc.py | 20 +-- .../recommender/transports/grpc_asyncio.py | 16 +- .../cloud/recommender_v1/types/insight.py | 40 +++-- .../types/insight_type_config.py | 20 ++- .../recommender_v1/types/recommendation.py | 86 +++++----- .../types/recommender_config.py | 20 ++- .../types/recommender_service.py | 84 ++++----- .../cloud/recommender_v1beta1/__init__.py | 4 + .../services/recommender/async_client.py | 162 ++++++++++-------- .../services/recommender/client.py | 144 +++++++++------- .../services/recommender/transports/base.py | 2 +- .../services/recommender/transports/grpc.py | 20 +-- .../recommender/transports/grpc_asyncio.py | 16 +- .../recommender_v1beta1/types/insight.py | 40 +++-- .../types/insight_type_config.py | 20 ++- .../types/recommendation.py | 92 +++++----- .../types/recommender_config.py | 20 ++- .../types/recommender_service.py | 84 ++++----- packages/google-cloud-recommender/owlbot.py | 56 ++++++ .../release-please-config.json | 28 +++ ...metadata_google.cloud.recommender.v1.json} | 19 +- ...ata_google.cloud.recommender.v1beta1.json} | 19 +- packages/google-cloud-recommender/setup.py | 44 +++-- .../testing/constraints-3.10.txt | 6 + .../testing/constraints-3.11.txt | 6 + .../testing/constraints-3.7.txt | 2 +- .../testing/constraints-3.8.txt | 8 +- .../testing/constraints-3.9.txt | 8 +- 38 files changed, 848 insertions(+), 576 deletions(-) create mode 100644 packages/google-cloud-recommender/.release-please-manifest.json create mode 100644 packages/google-cloud-recommender/google/cloud/recommender/gapic_version.py create mode 100644 packages/google-cloud-recommender/owlbot.py create mode 100644 packages/google-cloud-recommender/release-please-config.json rename packages/google-cloud-recommender/samples/generated_samples/{snippet_metadata_recommender_v1.json => snippet_metadata_google.cloud.recommender.v1.json} (99%) rename packages/google-cloud-recommender/samples/generated_samples/{snippet_metadata_recommender_v1beta1.json => snippet_metadata_google.cloud.recommender.v1beta1.json} (99%) diff --git a/packages/google-cloud-recommender/.github/release-please.yml b/packages/google-cloud-recommender/.github/release-please.yml index 29601ad4692c..fe749ff6b15d 100644 --- a/packages/google-cloud-recommender/.github/release-please.yml +++ b/packages/google-cloud-recommender/.github/release-please.yml @@ -1,5 +1,6 @@ releaseType: python handleGHRelease: true +manifest: true # NOTE: this section is generated by synthtool.languages.python # See https://github.com/googleapis/synthtool/blob/master/synthtool/languages/python.py branches: diff --git a/packages/google-cloud-recommender/.release-please-manifest.json b/packages/google-cloud-recommender/.release-please-manifest.json new file mode 100644 index 000000000000..5ff7b32d1513 --- /dev/null +++ b/packages/google-cloud-recommender/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "2.8.3" +} diff --git a/packages/google-cloud-recommender/docs/recommender_v1/types.rst b/packages/google-cloud-recommender/docs/recommender_v1/types.rst index dd13661c28c4..99c254ca5826 100644 --- a/packages/google-cloud-recommender/docs/recommender_v1/types.rst +++ b/packages/google-cloud-recommender/docs/recommender_v1/types.rst @@ -3,5 +3,4 @@ Types for Google Cloud Recommender v1 API .. automodule:: google.cloud.recommender_v1.types :members: - :undoc-members: :show-inheritance: diff --git a/packages/google-cloud-recommender/docs/recommender_v1beta1/types.rst b/packages/google-cloud-recommender/docs/recommender_v1beta1/types.rst index 16ab2a8d4b00..c16ac115bcc0 100644 --- a/packages/google-cloud-recommender/docs/recommender_v1beta1/types.rst +++ b/packages/google-cloud-recommender/docs/recommender_v1beta1/types.rst @@ -3,5 +3,4 @@ Types for Google Cloud Recommender v1beta1 API .. automodule:: google.cloud.recommender_v1beta1.types :members: - :undoc-members: :show-inheritance: diff --git a/packages/google-cloud-recommender/google/cloud/recommender/__init__.py b/packages/google-cloud-recommender/google/cloud/recommender/__init__.py index a16013353fae..9bb5d9ee2b26 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender/__init__.py +++ b/packages/google-cloud-recommender/google/cloud/recommender/__init__.py @@ -13,6 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from google.cloud.recommender import gapic_version as package_version + +__version__ = package_version.__version__ + from google.cloud.recommender_v1.services.recommender.async_client import ( RecommenderAsyncClient, diff --git a/packages/google-cloud-recommender/google/cloud/recommender/gapic_version.py b/packages/google-cloud-recommender/google/cloud/recommender/gapic_version.py new file mode 100644 index 000000000000..bb984214fc46 --- /dev/null +++ b/packages/google-cloud-recommender/google/cloud/recommender/gapic_version.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright 2022 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. +# +__version__ = "2.8.3" # {x-release-please-version} diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/__init__.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/__init__.py index aef19cf31909..9947ee81c757 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/__init__.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/__init__.py @@ -13,6 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from google.cloud.recommender import gapic_version as package_version + +__version__ = package_version.__version__ + from .services.recommender import RecommenderAsyncClient, RecommenderClient from .types.insight import Insight, InsightStateInfo diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/async_client.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/async_client.py index 330ddcfe20d3..be69d795675c 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/async_client.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/async_client.py @@ -16,7 +16,17 @@ from collections import OrderedDict import functools import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union +from typing import ( + Dict, + Mapping, + MutableMapping, + MutableSequence, + Optional, + Sequence, + Tuple, + Type, + Union, +) from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 @@ -191,9 +201,9 @@ def transport(self) -> RecommenderTransport: def __init__( self, *, - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, transport: Union[str, RecommenderTransport] = "grpc_asyncio", - client_options: ClientOptions = None, + client_options: Optional[ClientOptions] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: """Instantiates the recommender client. @@ -237,11 +247,11 @@ def __init__( async def list_insights( self, - request: Union[recommender_service.ListInsightsRequest, dict] = None, + request: Optional[Union[recommender_service.ListInsightsRequest, dict]] = None, *, - parent: str = None, + parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListInsightsAsyncPager: r"""Lists insights for the specified Cloud Resource. Requires the @@ -276,7 +286,7 @@ async def sample_list_insights(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.ListInsightsRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.ListInsightsRequest, dict]]): The request object. Request for the `ListInsights` method. parent (:class:`str`): @@ -378,11 +388,11 @@ async def sample_list_insights(): async def get_insight( self, - request: Union[recommender_service.GetInsightRequest, dict] = None, + request: Optional[Union[recommender_service.GetInsightRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight.Insight: r"""Gets the requested insight. Requires the recommender.*.get IAM @@ -415,7 +425,7 @@ async def sample_get_insight(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.GetInsightRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.GetInsightRequest, dict]]): The request object. Request to the `GetInsight` method. name (:class:`str`): Required. Name of the insight. @@ -490,13 +500,15 @@ async def sample_get_insight(): async def mark_insight_accepted( self, - request: Union[recommender_service.MarkInsightAcceptedRequest, dict] = None, + request: Optional[ + Union[recommender_service.MarkInsightAcceptedRequest, dict] + ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight.Insight: r"""Marks the Insight State as Accepted. Users can use this method @@ -536,7 +548,7 @@ async def sample_mark_insight_accepted(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.MarkInsightAcceptedRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.MarkInsightAcceptedRequest, dict]]): The request object. Request for the `MarkInsightAccepted` method. name (:class:`str`): @@ -544,7 +556,7 @@ async def sample_mark_insight_accepted(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (:class:`Mapping[str, str]`): + state_metadata (:class:`MutableMapping[str, str]`): Optional. State properties user wish to include with this state. Full replace of the current state_metadata. @@ -621,12 +633,14 @@ async def sample_mark_insight_accepted(): async def list_recommendations( self, - request: Union[recommender_service.ListRecommendationsRequest, dict] = None, + request: Optional[ + Union[recommender_service.ListRecommendationsRequest, dict] + ] = None, *, - parent: str = None, - filter: str = None, + parent: Optional[str] = None, + filter: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListRecommendationsAsyncPager: r"""Lists recommendations for the specified Cloud Resource. Requires @@ -661,7 +675,7 @@ async def sample_list_recommendations(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.ListRecommendationsRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.ListRecommendationsRequest, dict]]): The request object. Request for the `ListRecommendations` method. parent (:class:`str`): @@ -791,11 +805,13 @@ async def sample_list_recommendations(): async def get_recommendation( self, - request: Union[recommender_service.GetRecommendationRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetRecommendationRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Gets the requested recommendation. Requires the @@ -828,7 +844,7 @@ async def sample_get_recommendation(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.GetRecommendationRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.GetRecommendationRequest, dict]]): The request object. Request to the `GetRecommendation` method. name (:class:`str`): @@ -904,15 +920,15 @@ async def sample_get_recommendation(): async def mark_recommendation_claimed( self, - request: Union[ - recommender_service.MarkRecommendationClaimedRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationClaimedRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Claimed. Users can use this @@ -955,7 +971,7 @@ async def sample_mark_recommendation_claimed(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.MarkRecommendationClaimedRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.MarkRecommendationClaimedRequest, dict]]): The request object. Request for the `MarkRecommendationClaimed` Method. name (:class:`str`): @@ -963,7 +979,7 @@ async def sample_mark_recommendation_claimed(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (:class:`Mapping[str, str]`): + state_metadata (:class:`MutableMapping[str, str]`): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1043,15 +1059,15 @@ async def sample_mark_recommendation_claimed(): async def mark_recommendation_succeeded( self, - request: Union[ - recommender_service.MarkRecommendationSucceededRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationSucceededRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Succeeded. Users can use this @@ -1094,7 +1110,7 @@ async def sample_mark_recommendation_succeeded(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.MarkRecommendationSucceededRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.MarkRecommendationSucceededRequest, dict]]): The request object. Request for the `MarkRecommendationSucceeded` Method. name (:class:`str`): @@ -1102,7 +1118,7 @@ async def sample_mark_recommendation_succeeded(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (:class:`Mapping[str, str]`): + state_metadata (:class:`MutableMapping[str, str]`): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1182,15 +1198,15 @@ async def sample_mark_recommendation_succeeded(): async def mark_recommendation_failed( self, - request: Union[ - recommender_service.MarkRecommendationFailedRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationFailedRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Failed. Users can use this @@ -1233,7 +1249,7 @@ async def sample_mark_recommendation_failed(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.MarkRecommendationFailedRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.MarkRecommendationFailedRequest, dict]]): The request object. Request for the `MarkRecommendationFailed` Method. name (:class:`str`): @@ -1241,7 +1257,7 @@ async def sample_mark_recommendation_failed(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (:class:`Mapping[str, str]`): + state_metadata (:class:`MutableMapping[str, str]`): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1321,11 +1337,13 @@ async def sample_mark_recommendation_failed(): async def get_recommender_config( self, - request: Union[recommender_service.GetRecommenderConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetRecommenderConfigRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommender_config.RecommenderConfig: r"""Gets the requested Recommender Config. There is only @@ -1358,7 +1376,7 @@ async def sample_get_recommender_config(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.GetRecommenderConfigRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.GetRecommenderConfigRequest, dict]]): The request object. Request for the GetRecommenderConfig` method. name (:class:`str`): @@ -1429,12 +1447,14 @@ async def sample_get_recommender_config(): async def update_recommender_config( self, - request: Union[recommender_service.UpdateRecommenderConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.UpdateRecommenderConfigRequest, dict] + ] = None, *, - recommender_config: gcr_recommender_config.RecommenderConfig = None, - update_mask: field_mask_pb2.FieldMask = None, + recommender_config: Optional[gcr_recommender_config.RecommenderConfig] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> gcr_recommender_config.RecommenderConfig: r"""Updates a Recommender Config. This will create a new @@ -1466,7 +1486,7 @@ async def sample_update_recommender_config(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.UpdateRecommenderConfigRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.UpdateRecommenderConfigRequest, dict]]): The request object. Request for the `UpdateRecommenderConfig` method. recommender_config (:class:`google.cloud.recommender_v1.types.RecommenderConfig`): @@ -1539,11 +1559,13 @@ async def sample_update_recommender_config(): async def get_insight_type_config( self, - request: Union[recommender_service.GetInsightTypeConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetInsightTypeConfigRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight_type_config.InsightTypeConfig: r"""Gets the requested InsightTypeConfig. There is only @@ -1576,7 +1598,7 @@ async def sample_get_insight_type_config(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.GetInsightTypeConfigRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.GetInsightTypeConfigRequest, dict]]): The request object. Request for the GetInsightTypeConfig` method. name (:class:`str`): @@ -1647,12 +1669,14 @@ async def sample_get_insight_type_config(): async def update_insight_type_config( self, - request: Union[recommender_service.UpdateInsightTypeConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.UpdateInsightTypeConfigRequest, dict] + ] = None, *, - insight_type_config: gcr_insight_type_config.InsightTypeConfig = None, - update_mask: field_mask_pb2.FieldMask = None, + insight_type_config: Optional[gcr_insight_type_config.InsightTypeConfig] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> gcr_insight_type_config.InsightTypeConfig: r"""Updates an InsightTypeConfig change. This will create @@ -1684,7 +1708,7 @@ async def sample_update_insight_type_config(): print(response) Args: - request (Union[google.cloud.recommender_v1.types.UpdateInsightTypeConfigRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1.types.UpdateInsightTypeConfigRequest, dict]]): The request object. Request for the `UpdateInsightTypeConfig` method. insight_type_config (:class:`google.cloud.recommender_v1.types.InsightTypeConfig`): diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/client.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/client.py index cf9e29fac850..9d216df05e2a 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/client.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/client.py @@ -16,7 +16,18 @@ from collections import OrderedDict import os import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union +from typing import ( + Dict, + Mapping, + MutableMapping, + MutableSequence, + Optional, + Sequence, + Tuple, + Type, + Union, + cast, +) from google.api_core import client_options as client_options_lib from google.api_core import exceptions as core_exceptions @@ -71,7 +82,7 @@ class RecommenderClientMeta(type): def get_transport_class( cls, - label: str = None, + label: Optional[str] = None, ) -> Type[RecommenderTransport]: """Returns an appropriate transport class. @@ -467,8 +478,8 @@ def __init__( self, *, credentials: Optional[ga_credentials.Credentials] = None, - transport: Union[str, RecommenderTransport, None] = None, - client_options: Optional[client_options_lib.ClientOptions] = None, + transport: Optional[Union[str, RecommenderTransport]] = None, + client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: """Instantiates the recommender client. @@ -482,7 +493,7 @@ def __init__( transport (Union[str, RecommenderTransport]): The transport to use. If set to None, a transport is chosen automatically. - client_options (google.api_core.client_options.ClientOptions): Custom options for the + client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the client. It won't take effect if a ``transport`` instance is provided. (1) The ``api_endpoint`` property can be used to override the default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT @@ -512,6 +523,7 @@ def __init__( client_options = client_options_lib.from_dict(client_options) if client_options is None: client_options = client_options_lib.ClientOptions() + client_options = cast(client_options_lib.ClientOptions, client_options) api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source( client_options @@ -564,11 +576,11 @@ def __init__( def list_insights( self, - request: Union[recommender_service.ListInsightsRequest, dict] = None, + request: Optional[Union[recommender_service.ListInsightsRequest, dict]] = None, *, - parent: str = None, + parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListInsightsPager: r"""Lists insights for the specified Cloud Resource. Requires the @@ -695,11 +707,11 @@ def sample_list_insights(): def get_insight( self, - request: Union[recommender_service.GetInsightRequest, dict] = None, + request: Optional[Union[recommender_service.GetInsightRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight.Insight: r"""Gets the requested insight. Requires the recommender.*.get IAM @@ -797,13 +809,15 @@ def sample_get_insight(): def mark_insight_accepted( self, - request: Union[recommender_service.MarkInsightAcceptedRequest, dict] = None, + request: Optional[ + Union[recommender_service.MarkInsightAcceptedRequest, dict] + ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight.Insight: r"""Marks the Insight State as Accepted. Users can use this method @@ -851,7 +865,7 @@ def sample_mark_insight_accepted(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): Optional. State properties user wish to include with this state. Full replace of the current state_metadata. @@ -927,12 +941,14 @@ def sample_mark_insight_accepted(): def list_recommendations( self, - request: Union[recommender_service.ListRecommendationsRequest, dict] = None, + request: Optional[ + Union[recommender_service.ListRecommendationsRequest, dict] + ] = None, *, - parent: str = None, - filter: str = None, + parent: Optional[str] = None, + filter: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListRecommendationsPager: r"""Lists recommendations for the specified Cloud Resource. Requires @@ -1087,11 +1103,13 @@ def sample_list_recommendations(): def get_recommendation( self, - request: Union[recommender_service.GetRecommendationRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetRecommendationRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Gets the requested recommendation. Requires the @@ -1190,15 +1208,15 @@ def sample_get_recommendation(): def mark_recommendation_claimed( self, - request: Union[ - recommender_service.MarkRecommendationClaimedRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationClaimedRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Claimed. Users can use this @@ -1249,7 +1267,7 @@ def sample_mark_recommendation_claimed(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1332,15 +1350,15 @@ def sample_mark_recommendation_claimed(): def mark_recommendation_succeeded( self, - request: Union[ - recommender_service.MarkRecommendationSucceededRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationSucceededRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Succeeded. Users can use this @@ -1391,7 +1409,7 @@ def sample_mark_recommendation_succeeded(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1474,15 +1492,15 @@ def sample_mark_recommendation_succeeded(): def mark_recommendation_failed( self, - request: Union[ - recommender_service.MarkRecommendationFailedRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationFailedRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Failed. Users can use this @@ -1533,7 +1551,7 @@ def sample_mark_recommendation_failed(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1614,11 +1632,13 @@ def sample_mark_recommendation_failed(): def get_recommender_config( self, - request: Union[recommender_service.GetRecommenderConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetRecommenderConfigRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommender_config.RecommenderConfig: r"""Gets the requested Recommender Config. There is only @@ -1722,12 +1742,14 @@ def sample_get_recommender_config(): def update_recommender_config( self, - request: Union[recommender_service.UpdateRecommenderConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.UpdateRecommenderConfigRequest, dict] + ] = None, *, - recommender_config: gcr_recommender_config.RecommenderConfig = None, - update_mask: field_mask_pb2.FieldMask = None, + recommender_config: Optional[gcr_recommender_config.RecommenderConfig] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> gcr_recommender_config.RecommenderConfig: r"""Updates a Recommender Config. This will create a new @@ -1834,11 +1856,13 @@ def sample_update_recommender_config(): def get_insight_type_config( self, - request: Union[recommender_service.GetInsightTypeConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetInsightTypeConfigRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight_type_config.InsightTypeConfig: r"""Gets the requested InsightTypeConfig. There is only @@ -1942,12 +1966,14 @@ def sample_get_insight_type_config(): def update_insight_type_config( self, - request: Union[recommender_service.UpdateInsightTypeConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.UpdateInsightTypeConfigRequest, dict] + ] = None, *, - insight_type_config: gcr_insight_type_config.InsightTypeConfig = None, - update_mask: field_mask_pb2.FieldMask = None, + insight_type_config: Optional[gcr_insight_type_config.InsightTypeConfig] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> gcr_insight_type_config.InsightTypeConfig: r"""Updates an InsightTypeConfig change. This will create diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/base.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/base.py index e59bc6add7c3..93c306c61020 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/base.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/base.py @@ -58,7 +58,7 @@ def __init__( self, *, host: str = DEFAULT_HOST, - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/grpc.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/grpc.py index df53da674ca8..5ea57c886a66 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/grpc.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/grpc.py @@ -60,14 +60,14 @@ def __init__( self, *, host: str = "recommender.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, - scopes: Sequence[str] = None, - channel: grpc.Channel = None, - api_mtls_endpoint: str = None, - client_cert_source: Callable[[], Tuple[bytes, bytes]] = None, - ssl_channel_credentials: grpc.ChannelCredentials = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[grpc.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, @@ -194,8 +194,8 @@ def __init__( def create_channel( cls, host: str = "recommender.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, **kwargs, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/grpc_asyncio.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/grpc_asyncio.py index 48288cc3114a..69f7be05ef52 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/grpc_asyncio.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/services/recommender/transports/grpc_asyncio.py @@ -62,7 +62,7 @@ class RecommenderGrpcAsyncIOTransport(RecommenderTransport): def create_channel( cls, host: str = "recommender.googleapis.com", - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, @@ -105,15 +105,15 @@ def __init__( self, *, host: str = "recommender.googleapis.com", - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, - channel: aio.Channel = None, - api_mtls_endpoint: str = None, - client_cert_source: Callable[[], Tuple[bytes, bytes]] = None, - ssl_channel_credentials: grpc.ChannelCredentials = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, - quota_project_id=None, + channel: Optional[aio.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, api_audience: Optional[str] = None, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/types/insight.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/types/insight.py index 66ff20af7cb8..4a9a2dd1585d 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/types/insight.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/types/insight.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import duration_pb2 # type: ignore from google.protobuf import struct_pb2 # type: ignore from google.protobuf import timestamp_pb2 # type: ignore @@ -37,7 +39,7 @@ class Insight(proto.Message): description (str): Free-form human readable summary in English. The maximum length is 500 characters. - target_resources (Sequence[str]): + target_resources (MutableSequence[str]): Fully qualified resource names that this insight is targeting. insight_subtype (str): @@ -63,7 +65,7 @@ class Insight(proto.Message): etag (str): Fingerprint of the Insight. Provides optimistic locking when updating states. - associated_recommendations (Sequence[google.cloud.recommender_v1.types.Insight.RecommendationReference]): + associated_recommendations (MutableSequence[google.cloud.recommender_v1.types.Insight.RecommendationReference]): Recommendations derived from this insight. """ @@ -92,62 +94,64 @@ class RecommendationReference(proto.Message): projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID] """ - recommendation = proto.Field( + recommendation: str = proto.Field( proto.STRING, number=1, ) - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - description = proto.Field( + description: str = proto.Field( proto.STRING, number=2, ) - target_resources = proto.RepeatedField( + target_resources: MutableSequence[str] = proto.RepeatedField( proto.STRING, number=9, ) - insight_subtype = proto.Field( + insight_subtype: str = proto.Field( proto.STRING, number=10, ) - content = proto.Field( + content: struct_pb2.Struct = proto.Field( proto.MESSAGE, number=3, message=struct_pb2.Struct, ) - last_refresh_time = proto.Field( + last_refresh_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, ) - observation_period = proto.Field( + observation_period: duration_pb2.Duration = proto.Field( proto.MESSAGE, number=5, message=duration_pb2.Duration, ) - state_info = proto.Field( + state_info: "InsightStateInfo" = proto.Field( proto.MESSAGE, number=6, message="InsightStateInfo", ) - category = proto.Field( + category: Category = proto.Field( proto.ENUM, number=7, enum=Category, ) - severity = proto.Field( + severity: Severity = proto.Field( proto.ENUM, number=15, enum=Severity, ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=11, ) - associated_recommendations = proto.RepeatedField( + associated_recommendations: MutableSequence[ + RecommendationReference + ] = proto.RepeatedField( proto.MESSAGE, number=8, message=RecommendationReference, @@ -160,7 +164,7 @@ class InsightStateInfo(proto.Message): Attributes: state (google.cloud.recommender_v1.types.InsightStateInfo.State): Insight state. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): A map of metadata for the state, provided by user or automations systems. """ @@ -172,12 +176,12 @@ class State(proto.Enum): ACCEPTED = 2 DISMISSED = 3 - state = proto.Field( + state: State = proto.Field( proto.ENUM, number=1, enum=State, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/types/insight_type_config.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/types/insight_type_config.py index a58614ef74e0..d1a40f60bf42 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/types/insight_type_config.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/types/insight_type_config.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import struct_pb2 # type: ignore from google.protobuf import timestamp_pb2 # type: ignore import proto # type: ignore @@ -47,7 +49,7 @@ class InsightTypeConfig(proto.Message): the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string. - annotations (Mapping[str, str]): + annotations (MutableMapping[str, str]): Allows clients to store small amounts of arbitrary data. Annotations must follow the Kubernetes syntax. The total size of all keys and values combined is limited to 256k. Key @@ -62,34 +64,34 @@ class InsightTypeConfig(proto.Message): interfaces. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - insight_type_generation_config = proto.Field( + insight_type_generation_config: "InsightTypeGenerationConfig" = proto.Field( proto.MESSAGE, number=2, message="InsightTypeGenerationConfig", ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) - update_time = proto.Field( + update_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, ) - revision_id = proto.Field( + revision_id: str = proto.Field( proto.STRING, number=5, ) - annotations = proto.MapField( + annotations: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=6, ) - display_name = proto.Field( + display_name: str = proto.Field( proto.STRING, number=7, ) @@ -107,7 +109,7 @@ class InsightTypeGenerationConfig(proto.Message): be used by or are applied to all subtypes. """ - params = proto.Field( + params: struct_pb2.Struct = proto.Field( proto.MESSAGE, number=1, message=struct_pb2.Struct, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommendation.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommendation.py index 05525874f66b..e16466d94d6d 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommendation.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommendation.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import duration_pb2 # type: ignore from google.protobuf import struct_pb2 # type: ignore from google.protobuf import timestamp_pb2 # type: ignore @@ -66,7 +68,7 @@ class Recommendation(proto.Message): The primary impact that this recommendation can have while trying to optimize for one category. - additional_impact (Sequence[google.cloud.recommender_v1.types.Impact]): + additional_impact (MutableSequence[google.cloud.recommender_v1.types.Impact]): Optional set of additional impact that this recommendation may have when trying to optimize for the primary category. These may be positive @@ -82,7 +84,7 @@ class Recommendation(proto.Message): etag (str): Fingerprint of the Recommendation. Provides optimistic locking when updating states. - associated_insights (Sequence[google.cloud.recommender_v1.types.Recommendation.InsightReference]): + associated_insights (MutableSequence[google.cloud.recommender_v1.types.Recommendation.InsightReference]): Insights that led to this recommendation. xor_group_id (str): Corresponds to a mutually exclusive group ID @@ -110,63 +112,63 @@ class InsightReference(proto.Message): projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID] """ - insight = proto.Field( + insight: str = proto.Field( proto.STRING, number=1, ) - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - description = proto.Field( + description: str = proto.Field( proto.STRING, number=2, ) - recommender_subtype = proto.Field( + recommender_subtype: str = proto.Field( proto.STRING, number=12, ) - last_refresh_time = proto.Field( + last_refresh_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, ) - primary_impact = proto.Field( + primary_impact: "Impact" = proto.Field( proto.MESSAGE, number=5, message="Impact", ) - additional_impact = proto.RepeatedField( + additional_impact: MutableSequence["Impact"] = proto.RepeatedField( proto.MESSAGE, number=6, message="Impact", ) - priority = proto.Field( + priority: Priority = proto.Field( proto.ENUM, number=17, enum=Priority, ) - content = proto.Field( + content: "RecommendationContent" = proto.Field( proto.MESSAGE, number=7, message="RecommendationContent", ) - state_info = proto.Field( + state_info: "RecommendationStateInfo" = proto.Field( proto.MESSAGE, number=10, message="RecommendationStateInfo", ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=11, ) - associated_insights = proto.RepeatedField( + associated_insights: MutableSequence[InsightReference] = proto.RepeatedField( proto.MESSAGE, number=14, message=InsightReference, ) - xor_group_id = proto.Field( + xor_group_id: str = proto.Field( proto.STRING, number=18, ) @@ -177,7 +179,7 @@ class RecommendationContent(proto.Message): changing. Attributes: - operation_groups (Sequence[google.cloud.recommender_v1.types.OperationGroup]): + operation_groups (MutableSequence[google.cloud.recommender_v1.types.OperationGroup]): Operations to one or more Google Cloud resources grouped in such a way that, all operations within one group are expected to be @@ -187,12 +189,12 @@ class RecommendationContent(proto.Message): recommendation. """ - operation_groups = proto.RepeatedField( + operation_groups: MutableSequence["OperationGroup"] = proto.RepeatedField( proto.MESSAGE, number=2, message="OperationGroup", ) - overview = proto.Field( + overview: struct_pb2.Struct = proto.Field( proto.MESSAGE, number=3, message=struct_pb2.Struct, @@ -203,14 +205,14 @@ class OperationGroup(proto.Message): r"""Group of operations that need to be performed atomically. Attributes: - operations (Sequence[google.cloud.recommender_v1.types.Operation]): + operations (MutableSequence[google.cloud.recommender_v1.types.Operation]): List of operations across one or more resources that belong to this group. Loosely based on RFC6902 and should be performed in the order they appear. """ - operations = proto.RepeatedField( + operations: MutableSequence["Operation"] = proto.RepeatedField( proto.MESSAGE, number=1, message="Operation", @@ -279,7 +281,7 @@ class Operation(proto.Message): for 'test' operation. This field is a member of `oneof`_ ``path_value``. - path_filters (Mapping[str, google.protobuf.struct_pb2.Value]): + path_filters (MutableMapping[str, google.protobuf.struct_pb2.Value]): Set of filters to apply if ``path`` refers to array elements or nested array elements in order to narrow down to a single unique element that is being tested/modified. This is @@ -315,7 +317,7 @@ class Operation(proto.Message): When both path_filters and path_value_matchers are set, an implicit AND must be performed. - path_value_matchers (Mapping[str, google.cloud.recommender_v1.types.ValueMatcher]): + path_value_matchers (MutableMapping[str, google.cloud.recommender_v1.types.ValueMatcher]): Similar to path_filters, this contains set of filters to apply if ``path`` field refers to array elements. This is meant to support value matching beyond exact match. To @@ -324,49 +326,49 @@ class Operation(proto.Message): AND must be performed. """ - action = proto.Field( + action: str = proto.Field( proto.STRING, number=1, ) - resource_type = proto.Field( + resource_type: str = proto.Field( proto.STRING, number=2, ) - resource = proto.Field( + resource: str = proto.Field( proto.STRING, number=3, ) - path = proto.Field( + path: str = proto.Field( proto.STRING, number=4, ) - source_resource = proto.Field( + source_resource: str = proto.Field( proto.STRING, number=5, ) - source_path = proto.Field( + source_path: str = proto.Field( proto.STRING, number=6, ) - value = proto.Field( + value: struct_pb2.Value = proto.Field( proto.MESSAGE, number=7, oneof="path_value", message=struct_pb2.Value, ) - value_matcher = proto.Field( + value_matcher: "ValueMatcher" = proto.Field( proto.MESSAGE, number=10, oneof="path_value", message="ValueMatcher", ) - path_filters = proto.MapField( + path_filters: MutableMapping[str, struct_pb2.Value] = proto.MapField( proto.STRING, proto.MESSAGE, number=8, message=struct_pb2.Value, ) - path_value_matchers = proto.MapField( + path_value_matchers: MutableMapping[str, "ValueMatcher"] = proto.MapField( proto.STRING, proto.MESSAGE, number=11, @@ -392,7 +394,7 @@ class ValueMatcher(proto.Message): This field is a member of `oneof`_ ``match_variant``. """ - matches_pattern = proto.Field( + matches_pattern: str = proto.Field( proto.STRING, number=1, oneof="match_variant", @@ -417,12 +419,12 @@ class CostProjection(proto.Message): Duration for which this cost applies. """ - cost = proto.Field( + cost: money_pb2.Money = proto.Field( proto.MESSAGE, number=1, message=money_pb2.Money, ) - duration = proto.Field( + duration: duration_pb2.Duration = proto.Field( proto.MESSAGE, number=2, message=duration_pb2.Duration, @@ -438,7 +440,7 @@ class SecurityProjection(proto.Message): provided by the recommender. """ - details = proto.Field( + details: struct_pb2.Struct = proto.Field( proto.MESSAGE, number=2, message=struct_pb2.Struct, @@ -477,18 +479,18 @@ class Category(proto.Enum): PERFORMANCE = 3 MANAGEABILITY = 4 - category = proto.Field( + category: Category = proto.Field( proto.ENUM, number=1, enum=Category, ) - cost_projection = proto.Field( + cost_projection: "CostProjection" = proto.Field( proto.MESSAGE, number=100, oneof="projection", message="CostProjection", ) - security_projection = proto.Field( + security_projection: "SecurityProjection" = proto.Field( proto.MESSAGE, number=101, oneof="projection", @@ -503,7 +505,7 @@ class RecommendationStateInfo(proto.Message): state (google.cloud.recommender_v1.types.RecommendationStateInfo.State): The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): A map of metadata for the state, provided by user or automations systems. """ @@ -517,12 +519,12 @@ class State(proto.Enum): FAILED = 4 DISMISSED = 5 - state = proto.Field( + state: State = proto.Field( proto.ENUM, number=1, enum=State, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommender_config.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommender_config.py index 7290d079e382..1191d69bee8d 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommender_config.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommender_config.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import struct_pb2 # type: ignore from google.protobuf import timestamp_pb2 # type: ignore import proto # type: ignore @@ -47,7 +49,7 @@ class RecommenderConfig(proto.Message): the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string. - annotations (Mapping[str, str]): + annotations (MutableMapping[str, str]): Allows clients to store small amounts of arbitrary data. Annotations must follow the Kubernetes syntax. The total size of all keys and values combined is limited to 256k. Key @@ -62,34 +64,34 @@ class RecommenderConfig(proto.Message): interfaces. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - recommender_generation_config = proto.Field( + recommender_generation_config: "RecommenderGenerationConfig" = proto.Field( proto.MESSAGE, number=2, message="RecommenderGenerationConfig", ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) - update_time = proto.Field( + update_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, ) - revision_id = proto.Field( + revision_id: str = proto.Field( proto.STRING, number=5, ) - annotations = proto.MapField( + annotations: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=6, ) - display_name = proto.Field( + display_name: str = proto.Field( proto.STRING, number=7, ) @@ -107,7 +109,7 @@ class RecommenderGenerationConfig(proto.Message): be used by or are applied to all subtypes. """ - params = proto.Field( + params: struct_pb2.Struct = proto.Field( proto.MESSAGE, number=1, message=struct_pb2.Struct, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommender_service.py b/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommender_service.py index 70cb4e58fed7..64ffedc4a1b6 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommender_service.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1/types/recommender_service.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import field_mask_pb2 # type: ignore import proto # type: ignore @@ -103,19 +105,19 @@ class ListInsightsRequest(proto.Message): described at https://google.aip.dev/160) """ - parent = proto.Field( + parent: str = proto.Field( proto.STRING, number=1, ) - page_size = proto.Field( + page_size: int = proto.Field( proto.INT32, number=2, ) - page_token = proto.Field( + page_token: str = proto.Field( proto.STRING, number=3, ) - filter = proto.Field( + filter: str = proto.Field( proto.STRING, number=4, ) @@ -125,7 +127,7 @@ class ListInsightsResponse(proto.Message): r"""Response to the ``ListInsights`` method. Attributes: - insights (Sequence[google.cloud.recommender_v1.types.Insight]): + insights (MutableSequence[google.cloud.recommender_v1.types.Insight]): The set of insights for the ``parent`` resource. next_page_token (str): A token that can be used to request the next @@ -137,12 +139,12 @@ class ListInsightsResponse(proto.Message): def raw_page(self): return self - insights = proto.RepeatedField( + insights: MutableSequence[insight.Insight] = proto.RepeatedField( proto.MESSAGE, number=1, message=insight.Insight, ) - next_page_token = proto.Field( + next_page_token: str = proto.Field( proto.STRING, number=2, ) @@ -156,7 +158,7 @@ class GetInsightRequest(proto.Message): Required. Name of the insight. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -168,7 +170,7 @@ class MarkInsightAcceptedRequest(proto.Message): Attributes: name (str): Required. Name of the insight. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): Optional. State properties user wish to include with this state. Full replace of the current state_metadata. etag (str): @@ -176,16 +178,16 @@ class MarkInsightAcceptedRequest(proto.Message): Provides optimistic locking. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) @@ -248,19 +250,19 @@ class ListRecommendationsRequest(proto.Message): described at https://google.aip.dev/160) """ - parent = proto.Field( + parent: str = proto.Field( proto.STRING, number=1, ) - page_size = proto.Field( + page_size: int = proto.Field( proto.INT32, number=2, ) - page_token = proto.Field( + page_token: str = proto.Field( proto.STRING, number=3, ) - filter = proto.Field( + filter: str = proto.Field( proto.STRING, number=5, ) @@ -270,7 +272,7 @@ class ListRecommendationsResponse(proto.Message): r"""Response to the ``ListRecommendations`` method. Attributes: - recommendations (Sequence[google.cloud.recommender_v1.types.Recommendation]): + recommendations (MutableSequence[google.cloud.recommender_v1.types.Recommendation]): The set of recommendations for the ``parent`` resource. next_page_token (str): A token that can be used to request the next @@ -282,12 +284,14 @@ class ListRecommendationsResponse(proto.Message): def raw_page(self): return self - recommendations = proto.RepeatedField( + recommendations: MutableSequence[ + recommendation.Recommendation + ] = proto.RepeatedField( proto.MESSAGE, number=1, message=recommendation.Recommendation, ) - next_page_token = proto.Field( + next_page_token: str = proto.Field( proto.STRING, number=2, ) @@ -301,7 +305,7 @@ class GetRecommendationRequest(proto.Message): Required. Name of the recommendation. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -313,7 +317,7 @@ class MarkRecommendationClaimedRequest(proto.Message): Attributes: name (str): Required. Name of the recommendation. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must match the @@ -323,16 +327,16 @@ class MarkRecommendationClaimedRequest(proto.Message): Provides optimistic locking. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) @@ -344,7 +348,7 @@ class MarkRecommendationSucceededRequest(proto.Message): Attributes: name (str): Required. Name of the recommendation. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must match the @@ -354,16 +358,16 @@ class MarkRecommendationSucceededRequest(proto.Message): Provides optimistic locking. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) @@ -375,7 +379,7 @@ class MarkRecommendationFailedRequest(proto.Message): Attributes: name (str): Required. Name of the recommendation. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must match the @@ -385,16 +389,16 @@ class MarkRecommendationFailedRequest(proto.Message): Provides optimistic locking. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) @@ -416,7 +420,7 @@ class GetRecommenderConfigRequest(proto.Message): - ``organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`` """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -435,17 +439,17 @@ class UpdateRecommenderConfigRequest(proto.Message): change, but do not actually update it. """ - recommender_config = proto.Field( + recommender_config: gcr_recommender_config.RecommenderConfig = proto.Field( proto.MESSAGE, number=1, message=gcr_recommender_config.RecommenderConfig, ) - update_mask = proto.Field( + update_mask: field_mask_pb2.FieldMask = proto.Field( proto.MESSAGE, number=2, message=field_mask_pb2.FieldMask, ) - validate_only = proto.Field( + validate_only: bool = proto.Field( proto.BOOL, number=3, ) @@ -467,7 +471,7 @@ class GetInsightTypeConfigRequest(proto.Message): - ``organizations/[ORGANIZATION_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`` """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -486,17 +490,17 @@ class UpdateInsightTypeConfigRequest(proto.Message): change, but do not actually update it. """ - insight_type_config = proto.Field( + insight_type_config: gcr_insight_type_config.InsightTypeConfig = proto.Field( proto.MESSAGE, number=1, message=gcr_insight_type_config.InsightTypeConfig, ) - update_mask = proto.Field( + update_mask: field_mask_pb2.FieldMask = proto.Field( proto.MESSAGE, number=2, message=field_mask_pb2.FieldMask, ) - validate_only = proto.Field( + validate_only: bool = proto.Field( proto.BOOL, number=3, ) diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/__init__.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/__init__.py index 45cdde7fe536..0e58404bda01 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/__init__.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/__init__.py @@ -13,6 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from google.cloud.recommender import gapic_version as package_version + +__version__ = package_version.__version__ + from .services.recommender import RecommenderAsyncClient, RecommenderClient from .types.insight import Insight, InsightStateInfo diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/async_client.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/async_client.py index 6d02e0252ac6..c1e5dc4be01b 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/async_client.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/async_client.py @@ -16,7 +16,17 @@ from collections import OrderedDict import functools import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union +from typing import ( + Dict, + Mapping, + MutableMapping, + MutableSequence, + Optional, + Sequence, + Tuple, + Type, + Union, +) from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 @@ -191,9 +201,9 @@ def transport(self) -> RecommenderTransport: def __init__( self, *, - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, transport: Union[str, RecommenderTransport] = "grpc_asyncio", - client_options: ClientOptions = None, + client_options: Optional[ClientOptions] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: """Instantiates the recommender client. @@ -237,11 +247,11 @@ def __init__( async def list_insights( self, - request: Union[recommender_service.ListInsightsRequest, dict] = None, + request: Optional[Union[recommender_service.ListInsightsRequest, dict]] = None, *, - parent: str = None, + parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListInsightsAsyncPager: r"""Lists insights for the specified Cloud Resource. Requires the @@ -276,7 +286,7 @@ async def sample_list_insights(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.ListInsightsRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.ListInsightsRequest, dict]]): The request object. Request for the `ListInsights` method. parent (:class:`str`): @@ -378,11 +388,11 @@ async def sample_list_insights(): async def get_insight( self, - request: Union[recommender_service.GetInsightRequest, dict] = None, + request: Optional[Union[recommender_service.GetInsightRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight.Insight: r"""Gets the requested insight. Requires the recommender.*.get IAM @@ -415,7 +425,7 @@ async def sample_get_insight(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.GetInsightRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.GetInsightRequest, dict]]): The request object. Request to the `GetInsight` method. name (:class:`str`): Required. Name of the insight. @@ -490,13 +500,15 @@ async def sample_get_insight(): async def mark_insight_accepted( self, - request: Union[recommender_service.MarkInsightAcceptedRequest, dict] = None, + request: Optional[ + Union[recommender_service.MarkInsightAcceptedRequest, dict] + ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight.Insight: r"""Marks the Insight State as Accepted. Users can use this method @@ -536,7 +548,7 @@ async def sample_mark_insight_accepted(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.MarkInsightAcceptedRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.MarkInsightAcceptedRequest, dict]]): The request object. Request for the `MarkInsightAccepted` method. name (:class:`str`): @@ -544,7 +556,7 @@ async def sample_mark_insight_accepted(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (:class:`Mapping[str, str]`): + state_metadata (:class:`MutableMapping[str, str]`): Optional. State properties user wish to include with this state. Full replace of the current state_metadata. @@ -621,12 +633,14 @@ async def sample_mark_insight_accepted(): async def list_recommendations( self, - request: Union[recommender_service.ListRecommendationsRequest, dict] = None, + request: Optional[ + Union[recommender_service.ListRecommendationsRequest, dict] + ] = None, *, - parent: str = None, - filter: str = None, + parent: Optional[str] = None, + filter: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListRecommendationsAsyncPager: r"""Lists recommendations for the specified Cloud Resource. Requires @@ -661,7 +675,7 @@ async def sample_list_recommendations(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.ListRecommendationsRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.ListRecommendationsRequest, dict]]): The request object. Request for the `ListRecommendations` method. parent (:class:`str`): @@ -791,11 +805,13 @@ async def sample_list_recommendations(): async def get_recommendation( self, - request: Union[recommender_service.GetRecommendationRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetRecommendationRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Gets the requested recommendation. Requires the @@ -828,7 +844,7 @@ async def sample_get_recommendation(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.GetRecommendationRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.GetRecommendationRequest, dict]]): The request object. Request to the `GetRecommendation` method. name (:class:`str`): @@ -904,15 +920,15 @@ async def sample_get_recommendation(): async def mark_recommendation_claimed( self, - request: Union[ - recommender_service.MarkRecommendationClaimedRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationClaimedRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Claimed. Users can use this @@ -955,7 +971,7 @@ async def sample_mark_recommendation_claimed(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.MarkRecommendationClaimedRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.MarkRecommendationClaimedRequest, dict]]): The request object. Request for the `MarkRecommendationClaimed` Method. name (:class:`str`): @@ -963,7 +979,7 @@ async def sample_mark_recommendation_claimed(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (:class:`Mapping[str, str]`): + state_metadata (:class:`MutableMapping[str, str]`): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1043,15 +1059,15 @@ async def sample_mark_recommendation_claimed(): async def mark_recommendation_succeeded( self, - request: Union[ - recommender_service.MarkRecommendationSucceededRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationSucceededRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Succeeded. Users can use this @@ -1094,7 +1110,7 @@ async def sample_mark_recommendation_succeeded(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.MarkRecommendationSucceededRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.MarkRecommendationSucceededRequest, dict]]): The request object. Request for the `MarkRecommendationSucceeded` Method. name (:class:`str`): @@ -1102,7 +1118,7 @@ async def sample_mark_recommendation_succeeded(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (:class:`Mapping[str, str]`): + state_metadata (:class:`MutableMapping[str, str]`): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1182,15 +1198,15 @@ async def sample_mark_recommendation_succeeded(): async def mark_recommendation_failed( self, - request: Union[ - recommender_service.MarkRecommendationFailedRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationFailedRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Failed. Users can use this @@ -1233,7 +1249,7 @@ async def sample_mark_recommendation_failed(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.MarkRecommendationFailedRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.MarkRecommendationFailedRequest, dict]]): The request object. Request for the `MarkRecommendationFailed` Method. name (:class:`str`): @@ -1241,7 +1257,7 @@ async def sample_mark_recommendation_failed(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (:class:`Mapping[str, str]`): + state_metadata (:class:`MutableMapping[str, str]`): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1321,11 +1337,13 @@ async def sample_mark_recommendation_failed(): async def get_recommender_config( self, - request: Union[recommender_service.GetRecommenderConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetRecommenderConfigRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommender_config.RecommenderConfig: r"""Gets the requested Recommender Config. There is only @@ -1358,7 +1376,7 @@ async def sample_get_recommender_config(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.GetRecommenderConfigRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.GetRecommenderConfigRequest, dict]]): The request object. Request for the GetRecommenderConfig` method. name (:class:`str`): @@ -1429,12 +1447,14 @@ async def sample_get_recommender_config(): async def update_recommender_config( self, - request: Union[recommender_service.UpdateRecommenderConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.UpdateRecommenderConfigRequest, dict] + ] = None, *, - recommender_config: gcr_recommender_config.RecommenderConfig = None, - update_mask: field_mask_pb2.FieldMask = None, + recommender_config: Optional[gcr_recommender_config.RecommenderConfig] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> gcr_recommender_config.RecommenderConfig: r"""Updates a Recommender Config. This will create a new @@ -1466,7 +1486,7 @@ async def sample_update_recommender_config(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.UpdateRecommenderConfigRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.UpdateRecommenderConfigRequest, dict]]): The request object. Request for the `UpdateRecommenderConfig` method. recommender_config (:class:`google.cloud.recommender_v1beta1.types.RecommenderConfig`): @@ -1539,11 +1559,13 @@ async def sample_update_recommender_config(): async def get_insight_type_config( self, - request: Union[recommender_service.GetInsightTypeConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetInsightTypeConfigRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight_type_config.InsightTypeConfig: r"""Gets the requested InsightTypeConfig. There is only @@ -1576,7 +1598,7 @@ async def sample_get_insight_type_config(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.GetInsightTypeConfigRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.GetInsightTypeConfigRequest, dict]]): The request object. Request for the GetInsightTypeConfig` method. name (:class:`str`): @@ -1647,12 +1669,14 @@ async def sample_get_insight_type_config(): async def update_insight_type_config( self, - request: Union[recommender_service.UpdateInsightTypeConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.UpdateInsightTypeConfigRequest, dict] + ] = None, *, - insight_type_config: gcr_insight_type_config.InsightTypeConfig = None, - update_mask: field_mask_pb2.FieldMask = None, + insight_type_config: Optional[gcr_insight_type_config.InsightTypeConfig] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> gcr_insight_type_config.InsightTypeConfig: r"""Updates an InsightTypeConfig change. This will create @@ -1684,7 +1708,7 @@ async def sample_update_insight_type_config(): print(response) Args: - request (Union[google.cloud.recommender_v1beta1.types.UpdateInsightTypeConfigRequest, dict]): + request (Optional[Union[google.cloud.recommender_v1beta1.types.UpdateInsightTypeConfigRequest, dict]]): The request object. Request for the `UpdateInsightTypeConfig` method. insight_type_config (:class:`google.cloud.recommender_v1beta1.types.InsightTypeConfig`): diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/client.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/client.py index 793d5027e90a..32a86fb45f59 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/client.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/client.py @@ -16,7 +16,18 @@ from collections import OrderedDict import os import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union +from typing import ( + Dict, + Mapping, + MutableMapping, + MutableSequence, + Optional, + Sequence, + Tuple, + Type, + Union, + cast, +) from google.api_core import client_options as client_options_lib from google.api_core import exceptions as core_exceptions @@ -71,7 +82,7 @@ class RecommenderClientMeta(type): def get_transport_class( cls, - label: str = None, + label: Optional[str] = None, ) -> Type[RecommenderTransport]: """Returns an appropriate transport class. @@ -467,8 +478,8 @@ def __init__( self, *, credentials: Optional[ga_credentials.Credentials] = None, - transport: Union[str, RecommenderTransport, None] = None, - client_options: Optional[client_options_lib.ClientOptions] = None, + transport: Optional[Union[str, RecommenderTransport]] = None, + client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: """Instantiates the recommender client. @@ -482,7 +493,7 @@ def __init__( transport (Union[str, RecommenderTransport]): The transport to use. If set to None, a transport is chosen automatically. - client_options (google.api_core.client_options.ClientOptions): Custom options for the + client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the client. It won't take effect if a ``transport`` instance is provided. (1) The ``api_endpoint`` property can be used to override the default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT @@ -512,6 +523,7 @@ def __init__( client_options = client_options_lib.from_dict(client_options) if client_options is None: client_options = client_options_lib.ClientOptions() + client_options = cast(client_options_lib.ClientOptions, client_options) api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source( client_options @@ -564,11 +576,11 @@ def __init__( def list_insights( self, - request: Union[recommender_service.ListInsightsRequest, dict] = None, + request: Optional[Union[recommender_service.ListInsightsRequest, dict]] = None, *, - parent: str = None, + parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListInsightsPager: r"""Lists insights for the specified Cloud Resource. Requires the @@ -695,11 +707,11 @@ def sample_list_insights(): def get_insight( self, - request: Union[recommender_service.GetInsightRequest, dict] = None, + request: Optional[Union[recommender_service.GetInsightRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight.Insight: r"""Gets the requested insight. Requires the recommender.*.get IAM @@ -797,13 +809,15 @@ def sample_get_insight(): def mark_insight_accepted( self, - request: Union[recommender_service.MarkInsightAcceptedRequest, dict] = None, + request: Optional[ + Union[recommender_service.MarkInsightAcceptedRequest, dict] + ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight.Insight: r"""Marks the Insight State as Accepted. Users can use this method @@ -851,7 +865,7 @@ def sample_mark_insight_accepted(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): Optional. State properties user wish to include with this state. Full replace of the current state_metadata. @@ -927,12 +941,14 @@ def sample_mark_insight_accepted(): def list_recommendations( self, - request: Union[recommender_service.ListRecommendationsRequest, dict] = None, + request: Optional[ + Union[recommender_service.ListRecommendationsRequest, dict] + ] = None, *, - parent: str = None, - filter: str = None, + parent: Optional[str] = None, + filter: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListRecommendationsPager: r"""Lists recommendations for the specified Cloud Resource. Requires @@ -1087,11 +1103,13 @@ def sample_list_recommendations(): def get_recommendation( self, - request: Union[recommender_service.GetRecommendationRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetRecommendationRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Gets the requested recommendation. Requires the @@ -1190,15 +1208,15 @@ def sample_get_recommendation(): def mark_recommendation_claimed( self, - request: Union[ - recommender_service.MarkRecommendationClaimedRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationClaimedRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Claimed. Users can use this @@ -1249,7 +1267,7 @@ def sample_mark_recommendation_claimed(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1332,15 +1350,15 @@ def sample_mark_recommendation_claimed(): def mark_recommendation_succeeded( self, - request: Union[ - recommender_service.MarkRecommendationSucceededRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationSucceededRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Succeeded. Users can use this @@ -1391,7 +1409,7 @@ def sample_mark_recommendation_succeeded(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1474,15 +1492,15 @@ def sample_mark_recommendation_succeeded(): def mark_recommendation_failed( self, - request: Union[ - recommender_service.MarkRecommendationFailedRequest, dict + request: Optional[ + Union[recommender_service.MarkRecommendationFailedRequest, dict] ] = None, *, - name: str = None, - state_metadata: Mapping[str, str] = None, - etag: str = None, + name: Optional[str] = None, + state_metadata: Optional[MutableMapping[str, str]] = None, + etag: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommendation.Recommendation: r"""Marks the Recommendation State as Failed. Users can use this @@ -1533,7 +1551,7 @@ def sample_mark_recommendation_failed(): This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must @@ -1614,11 +1632,13 @@ def sample_mark_recommendation_failed(): def get_recommender_config( self, - request: Union[recommender_service.GetRecommenderConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetRecommenderConfigRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> recommender_config.RecommenderConfig: r"""Gets the requested Recommender Config. There is only @@ -1722,12 +1742,14 @@ def sample_get_recommender_config(): def update_recommender_config( self, - request: Union[recommender_service.UpdateRecommenderConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.UpdateRecommenderConfigRequest, dict] + ] = None, *, - recommender_config: gcr_recommender_config.RecommenderConfig = None, - update_mask: field_mask_pb2.FieldMask = None, + recommender_config: Optional[gcr_recommender_config.RecommenderConfig] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> gcr_recommender_config.RecommenderConfig: r"""Updates a Recommender Config. This will create a new @@ -1834,11 +1856,13 @@ def sample_update_recommender_config(): def get_insight_type_config( self, - request: Union[recommender_service.GetInsightTypeConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.GetInsightTypeConfigRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> insight_type_config.InsightTypeConfig: r"""Gets the requested InsightTypeConfig. There is only @@ -1942,12 +1966,14 @@ def sample_get_insight_type_config(): def update_insight_type_config( self, - request: Union[recommender_service.UpdateInsightTypeConfigRequest, dict] = None, + request: Optional[ + Union[recommender_service.UpdateInsightTypeConfigRequest, dict] + ] = None, *, - insight_type_config: gcr_insight_type_config.InsightTypeConfig = None, - update_mask: field_mask_pb2.FieldMask = None, + insight_type_config: Optional[gcr_insight_type_config.InsightTypeConfig] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> gcr_insight_type_config.InsightTypeConfig: r"""Updates an InsightTypeConfig change. This will create diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/base.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/base.py index 22e5fd124e33..ab23f7a63577 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/base.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/base.py @@ -58,7 +58,7 @@ def __init__( self, *, host: str = DEFAULT_HOST, - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/grpc.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/grpc.py index 08c9f68ab4fd..50174e571d3b 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/grpc.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/grpc.py @@ -60,14 +60,14 @@ def __init__( self, *, host: str = "recommender.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, - scopes: Sequence[str] = None, - channel: grpc.Channel = None, - api_mtls_endpoint: str = None, - client_cert_source: Callable[[], Tuple[bytes, bytes]] = None, - ssl_channel_credentials: grpc.ChannelCredentials = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[grpc.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, @@ -194,8 +194,8 @@ def __init__( def create_channel( cls, host: str = "recommender.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, **kwargs, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/grpc_asyncio.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/grpc_asyncio.py index b3ddc957851a..1e100c856741 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/grpc_asyncio.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/services/recommender/transports/grpc_asyncio.py @@ -62,7 +62,7 @@ class RecommenderGrpcAsyncIOTransport(RecommenderTransport): def create_channel( cls, host: str = "recommender.googleapis.com", - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, @@ -105,15 +105,15 @@ def __init__( self, *, host: str = "recommender.googleapis.com", - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, - channel: aio.Channel = None, - api_mtls_endpoint: str = None, - client_cert_source: Callable[[], Tuple[bytes, bytes]] = None, - ssl_channel_credentials: grpc.ChannelCredentials = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, - quota_project_id=None, + channel: Optional[aio.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, api_audience: Optional[str] = None, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/insight.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/insight.py index 210a279ca86f..54f21ecff59e 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/insight.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/insight.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import duration_pb2 # type: ignore from google.protobuf import struct_pb2 # type: ignore from google.protobuf import timestamp_pb2 # type: ignore @@ -37,7 +39,7 @@ class Insight(proto.Message): description (str): Free-form human readable summary in English. The maximum length is 500 characters. - target_resources (Sequence[str]): + target_resources (MutableSequence[str]): Fully qualified resource names that this insight is targeting. insight_subtype (str): @@ -63,7 +65,7 @@ class Insight(proto.Message): etag (str): Fingerprint of the Insight. Provides optimistic locking when updating states. - associated_recommendations (Sequence[google.cloud.recommender_v1beta1.types.Insight.RecommendationReference]): + associated_recommendations (MutableSequence[google.cloud.recommender_v1beta1.types.Insight.RecommendationReference]): Recommendations derived from this insight. """ @@ -92,62 +94,64 @@ class RecommendationReference(proto.Message): projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID] """ - recommendation = proto.Field( + recommendation: str = proto.Field( proto.STRING, number=1, ) - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - description = proto.Field( + description: str = proto.Field( proto.STRING, number=2, ) - target_resources = proto.RepeatedField( + target_resources: MutableSequence[str] = proto.RepeatedField( proto.STRING, number=9, ) - insight_subtype = proto.Field( + insight_subtype: str = proto.Field( proto.STRING, number=10, ) - content = proto.Field( + content: struct_pb2.Struct = proto.Field( proto.MESSAGE, number=3, message=struct_pb2.Struct, ) - last_refresh_time = proto.Field( + last_refresh_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, ) - observation_period = proto.Field( + observation_period: duration_pb2.Duration = proto.Field( proto.MESSAGE, number=5, message=duration_pb2.Duration, ) - state_info = proto.Field( + state_info: "InsightStateInfo" = proto.Field( proto.MESSAGE, number=6, message="InsightStateInfo", ) - category = proto.Field( + category: Category = proto.Field( proto.ENUM, number=7, enum=Category, ) - severity = proto.Field( + severity: Severity = proto.Field( proto.ENUM, number=15, enum=Severity, ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=11, ) - associated_recommendations = proto.RepeatedField( + associated_recommendations: MutableSequence[ + RecommendationReference + ] = proto.RepeatedField( proto.MESSAGE, number=8, message=RecommendationReference, @@ -160,7 +164,7 @@ class InsightStateInfo(proto.Message): Attributes: state (google.cloud.recommender_v1beta1.types.InsightStateInfo.State): Insight state. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): A map of metadata for the state, provided by user or automations systems. """ @@ -172,12 +176,12 @@ class State(proto.Enum): ACCEPTED = 2 DISMISSED = 3 - state = proto.Field( + state: State = proto.Field( proto.ENUM, number=1, enum=State, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/insight_type_config.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/insight_type_config.py index db244fabe570..941f5be24909 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/insight_type_config.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/insight_type_config.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import struct_pb2 # type: ignore from google.protobuf import timestamp_pb2 # type: ignore import proto # type: ignore @@ -47,7 +49,7 @@ class InsightTypeConfig(proto.Message): the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string. - annotations (Mapping[str, str]): + annotations (MutableMapping[str, str]): Allows clients to store small amounts of arbitrary data. Annotations must follow the Kubernetes syntax. The total size of all keys and values combined is limited to 256k. Key @@ -62,34 +64,34 @@ class InsightTypeConfig(proto.Message): interfaces. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - insight_type_generation_config = proto.Field( + insight_type_generation_config: "InsightTypeGenerationConfig" = proto.Field( proto.MESSAGE, number=2, message="InsightTypeGenerationConfig", ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) - update_time = proto.Field( + update_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, ) - revision_id = proto.Field( + revision_id: str = proto.Field( proto.STRING, number=5, ) - annotations = proto.MapField( + annotations: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=6, ) - display_name = proto.Field( + display_name: str = proto.Field( proto.STRING, number=7, ) @@ -107,7 +109,7 @@ class InsightTypeGenerationConfig(proto.Message): be used by or are applied to all subtypes. """ - params = proto.Field( + params: struct_pb2.Struct = proto.Field( proto.MESSAGE, number=1, message=struct_pb2.Struct, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommendation.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommendation.py index da229a076b6c..db7dd77d8081 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommendation.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommendation.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import duration_pb2 # type: ignore from google.protobuf import struct_pb2 # type: ignore from google.protobuf import timestamp_pb2 # type: ignore @@ -67,7 +69,7 @@ class Recommendation(proto.Message): The primary impact that this recommendation can have while trying to optimize for one category. - additional_impact (Sequence[google.cloud.recommender_v1beta1.types.Impact]): + additional_impact (MutableSequence[google.cloud.recommender_v1beta1.types.Impact]): Optional set of additional impact that this recommendation may have when trying to optimize for the primary category. These may be positive @@ -83,7 +85,7 @@ class Recommendation(proto.Message): etag (str): Fingerprint of the Recommendation. Provides optimistic locking when updating states. - associated_insights (Sequence[google.cloud.recommender_v1beta1.types.Recommendation.InsightReference]): + associated_insights (MutableSequence[google.cloud.recommender_v1beta1.types.Recommendation.InsightReference]): Insights that led to this recommendation. xor_group_id (str): Corresponds to a mutually exclusive group ID @@ -111,63 +113,63 @@ class InsightReference(proto.Message): projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID] """ - insight = proto.Field( + insight: str = proto.Field( proto.STRING, number=1, ) - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - description = proto.Field( + description: str = proto.Field( proto.STRING, number=2, ) - recommender_subtype = proto.Field( + recommender_subtype: str = proto.Field( proto.STRING, number=12, ) - last_refresh_time = proto.Field( + last_refresh_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, ) - primary_impact = proto.Field( + primary_impact: "Impact" = proto.Field( proto.MESSAGE, number=5, message="Impact", ) - additional_impact = proto.RepeatedField( + additional_impact: MutableSequence["Impact"] = proto.RepeatedField( proto.MESSAGE, number=6, message="Impact", ) - priority = proto.Field( + priority: Priority = proto.Field( proto.ENUM, number=17, enum=Priority, ) - content = proto.Field( + content: "RecommendationContent" = proto.Field( proto.MESSAGE, number=7, message="RecommendationContent", ) - state_info = proto.Field( + state_info: "RecommendationStateInfo" = proto.Field( proto.MESSAGE, number=10, message="RecommendationStateInfo", ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=11, ) - associated_insights = proto.RepeatedField( + associated_insights: MutableSequence[InsightReference] = proto.RepeatedField( proto.MESSAGE, number=14, message=InsightReference, ) - xor_group_id = proto.Field( + xor_group_id: str = proto.Field( proto.STRING, number=18, ) @@ -178,7 +180,7 @@ class RecommendationContent(proto.Message): changing. Attributes: - operation_groups (Sequence[google.cloud.recommender_v1beta1.types.OperationGroup]): + operation_groups (MutableSequence[google.cloud.recommender_v1beta1.types.OperationGroup]): Operations to one or more Google Cloud resources grouped in such a way that, all operations within one group are expected to be @@ -188,12 +190,12 @@ class RecommendationContent(proto.Message): recommendation. """ - operation_groups = proto.RepeatedField( + operation_groups: MutableSequence["OperationGroup"] = proto.RepeatedField( proto.MESSAGE, number=2, message="OperationGroup", ) - overview = proto.Field( + overview: struct_pb2.Struct = proto.Field( proto.MESSAGE, number=3, message=struct_pb2.Struct, @@ -204,14 +206,14 @@ class OperationGroup(proto.Message): r"""Group of operations that need to be performed atomically. Attributes: - operations (Sequence[google.cloud.recommender_v1beta1.types.Operation]): + operations (MutableSequence[google.cloud.recommender_v1beta1.types.Operation]): List of operations across one or more resources that belong to this group. Loosely based on RFC6902 and should be performed in the order they appear. """ - operations = proto.RepeatedField( + operations: MutableSequence["Operation"] = proto.RepeatedField( proto.MESSAGE, number=1, message="Operation", @@ -280,7 +282,7 @@ class Operation(proto.Message): for 'test' operation. This field is a member of `oneof`_ ``path_value``. - path_filters (Mapping[str, google.protobuf.struct_pb2.Value]): + path_filters (MutableMapping[str, google.protobuf.struct_pb2.Value]): Set of filters to apply if ``path`` refers to array elements or nested array elements in order to narrow down to a single unique element that is being tested/modified. This is @@ -316,7 +318,7 @@ class Operation(proto.Message): When both path_filters and path_value_matchers are set, an implicit AND must be performed. - path_value_matchers (Mapping[str, google.cloud.recommender_v1beta1.types.ValueMatcher]): + path_value_matchers (MutableMapping[str, google.cloud.recommender_v1beta1.types.ValueMatcher]): Similar to path_filters, this contains set of filters to apply if ``path`` field refers to array elements. This is meant to support value matching beyond exact match. To @@ -325,49 +327,49 @@ class Operation(proto.Message): AND must be performed. """ - action = proto.Field( + action: str = proto.Field( proto.STRING, number=1, ) - resource_type = proto.Field( + resource_type: str = proto.Field( proto.STRING, number=2, ) - resource = proto.Field( + resource: str = proto.Field( proto.STRING, number=3, ) - path = proto.Field( + path: str = proto.Field( proto.STRING, number=4, ) - source_resource = proto.Field( + source_resource: str = proto.Field( proto.STRING, number=5, ) - source_path = proto.Field( + source_path: str = proto.Field( proto.STRING, number=6, ) - value = proto.Field( + value: struct_pb2.Value = proto.Field( proto.MESSAGE, number=7, oneof="path_value", message=struct_pb2.Value, ) - value_matcher = proto.Field( + value_matcher: "ValueMatcher" = proto.Field( proto.MESSAGE, number=10, oneof="path_value", message="ValueMatcher", ) - path_filters = proto.MapField( + path_filters: MutableMapping[str, struct_pb2.Value] = proto.MapField( proto.STRING, proto.MESSAGE, number=8, message=struct_pb2.Value, ) - path_value_matchers = proto.MapField( + path_value_matchers: MutableMapping[str, "ValueMatcher"] = proto.MapField( proto.STRING, proto.MESSAGE, number=11, @@ -393,7 +395,7 @@ class ValueMatcher(proto.Message): This field is a member of `oneof`_ ``match_variant``. """ - matches_pattern = proto.Field( + matches_pattern: str = proto.Field( proto.STRING, number=1, oneof="match_variant", @@ -418,12 +420,12 @@ class CostProjection(proto.Message): Duration for which this cost applies. """ - cost = proto.Field( + cost: money_pb2.Money = proto.Field( proto.MESSAGE, number=1, message=money_pb2.Money, ) - duration = proto.Field( + duration: duration_pb2.Duration = proto.Field( proto.MESSAGE, number=2, message=duration_pb2.Duration, @@ -439,7 +441,7 @@ class SecurityProjection(proto.Message): define details specific to security impact. """ - details = proto.Field( + details: struct_pb2.Struct = proto.Field( proto.MESSAGE, number=2, message=struct_pb2.Struct, @@ -460,11 +462,11 @@ class SustainabilityProjection(proto.Message): applies. """ - kg_c_o2e = proto.Field( + kg_c_o2e: float = proto.Field( proto.DOUBLE, number=1, ) - duration = proto.Field( + duration: duration_pb2.Duration = proto.Field( proto.MESSAGE, number=2, message=duration_pb2.Duration, @@ -508,24 +510,24 @@ class Category(proto.Enum): MANAGEABILITY = 4 SUSTAINABILITY = 5 - category = proto.Field( + category: Category = proto.Field( proto.ENUM, number=1, enum=Category, ) - cost_projection = proto.Field( + cost_projection: "CostProjection" = proto.Field( proto.MESSAGE, number=100, oneof="projection", message="CostProjection", ) - security_projection = proto.Field( + security_projection: "SecurityProjection" = proto.Field( proto.MESSAGE, number=101, oneof="projection", message="SecurityProjection", ) - sustainability_projection = proto.Field( + sustainability_projection: "SustainabilityProjection" = proto.Field( proto.MESSAGE, number=102, oneof="projection", @@ -540,7 +542,7 @@ class RecommendationStateInfo(proto.Message): state (google.cloud.recommender_v1beta1.types.RecommendationStateInfo.State): The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): A map of metadata for the state, provided by user or automations systems. """ @@ -554,12 +556,12 @@ class State(proto.Enum): FAILED = 4 DISMISSED = 5 - state = proto.Field( + state: State = proto.Field( proto.ENUM, number=1, enum=State, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommender_config.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommender_config.py index dd358c57e238..a7777e2c7f67 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommender_config.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommender_config.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import struct_pb2 # type: ignore from google.protobuf import timestamp_pb2 # type: ignore import proto # type: ignore @@ -47,7 +49,7 @@ class RecommenderConfig(proto.Message): the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string. - annotations (Mapping[str, str]): + annotations (MutableMapping[str, str]): Allows clients to store small amounts of arbitrary data. Annotations must follow the Kubernetes syntax. The total size of all keys and values combined is limited to 256k. Key @@ -62,34 +64,34 @@ class RecommenderConfig(proto.Message): interfaces. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - recommender_generation_config = proto.Field( + recommender_generation_config: "RecommenderGenerationConfig" = proto.Field( proto.MESSAGE, number=2, message="RecommenderGenerationConfig", ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) - update_time = proto.Field( + update_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, ) - revision_id = proto.Field( + revision_id: str = proto.Field( proto.STRING, number=5, ) - annotations = proto.MapField( + annotations: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=6, ) - display_name = proto.Field( + display_name: str = proto.Field( proto.STRING, number=7, ) @@ -107,7 +109,7 @@ class RecommenderGenerationConfig(proto.Message): be used by or are applied to all subtypes. """ - params = proto.Field( + params: struct_pb2.Struct = proto.Field( proto.MESSAGE, number=1, message=struct_pb2.Struct, diff --git a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommender_service.py b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommender_service.py index 7d189bbf77af..4120550e68d4 100644 --- a/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommender_service.py +++ b/packages/google-cloud-recommender/google/cloud/recommender_v1beta1/types/recommender_service.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import field_mask_pb2 # type: ignore import proto # type: ignore @@ -103,19 +105,19 @@ class ListInsightsRequest(proto.Message): described at https://google.aip.dev/160) """ - parent = proto.Field( + parent: str = proto.Field( proto.STRING, number=1, ) - page_size = proto.Field( + page_size: int = proto.Field( proto.INT32, number=2, ) - page_token = proto.Field( + page_token: str = proto.Field( proto.STRING, number=3, ) - filter = proto.Field( + filter: str = proto.Field( proto.STRING, number=4, ) @@ -125,7 +127,7 @@ class ListInsightsResponse(proto.Message): r"""Response to the ``ListInsights`` method. Attributes: - insights (Sequence[google.cloud.recommender_v1beta1.types.Insight]): + insights (MutableSequence[google.cloud.recommender_v1beta1.types.Insight]): The set of insights for the ``parent`` resource. next_page_token (str): A token that can be used to request the next @@ -137,12 +139,12 @@ class ListInsightsResponse(proto.Message): def raw_page(self): return self - insights = proto.RepeatedField( + insights: MutableSequence[insight.Insight] = proto.RepeatedField( proto.MESSAGE, number=1, message=insight.Insight, ) - next_page_token = proto.Field( + next_page_token: str = proto.Field( proto.STRING, number=2, ) @@ -156,7 +158,7 @@ class GetInsightRequest(proto.Message): Required. Name of the insight. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -168,7 +170,7 @@ class MarkInsightAcceptedRequest(proto.Message): Attributes: name (str): Required. Name of the insight. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): Optional. State properties user wish to include with this state. Full replace of the current state_metadata. etag (str): @@ -176,16 +178,16 @@ class MarkInsightAcceptedRequest(proto.Message): Provides optimistic locking. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) @@ -248,19 +250,19 @@ class ListRecommendationsRequest(proto.Message): described at https://google.aip.dev/160) """ - parent = proto.Field( + parent: str = proto.Field( proto.STRING, number=1, ) - page_size = proto.Field( + page_size: int = proto.Field( proto.INT32, number=2, ) - page_token = proto.Field( + page_token: str = proto.Field( proto.STRING, number=3, ) - filter = proto.Field( + filter: str = proto.Field( proto.STRING, number=5, ) @@ -270,7 +272,7 @@ class ListRecommendationsResponse(proto.Message): r"""Response to the ``ListRecommendations`` method. Attributes: - recommendations (Sequence[google.cloud.recommender_v1beta1.types.Recommendation]): + recommendations (MutableSequence[google.cloud.recommender_v1beta1.types.Recommendation]): The set of recommendations for the ``parent`` resource. next_page_token (str): A token that can be used to request the next @@ -282,12 +284,14 @@ class ListRecommendationsResponse(proto.Message): def raw_page(self): return self - recommendations = proto.RepeatedField( + recommendations: MutableSequence[ + recommendation.Recommendation + ] = proto.RepeatedField( proto.MESSAGE, number=1, message=recommendation.Recommendation, ) - next_page_token = proto.Field( + next_page_token: str = proto.Field( proto.STRING, number=2, ) @@ -301,7 +305,7 @@ class GetRecommendationRequest(proto.Message): Required. Name of the recommendation. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -313,7 +317,7 @@ class MarkRecommendationClaimedRequest(proto.Message): Attributes: name (str): Required. Name of the recommendation. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must match the @@ -323,16 +327,16 @@ class MarkRecommendationClaimedRequest(proto.Message): Provides optimistic locking. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) @@ -344,7 +348,7 @@ class MarkRecommendationSucceededRequest(proto.Message): Attributes: name (str): Required. Name of the recommendation. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must match the @@ -354,16 +358,16 @@ class MarkRecommendationSucceededRequest(proto.Message): Provides optimistic locking. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) @@ -375,7 +379,7 @@ class MarkRecommendationFailedRequest(proto.Message): Attributes: name (str): Required. Name of the recommendation. - state_metadata (Mapping[str, str]): + state_metadata (MutableMapping[str, str]): State properties to include with this state. Overwrites any existing ``state_metadata``. Keys must match the regex ``/^[a-z0-9][a-z0-9_.-]{0,62}$/``. Values must match the @@ -385,16 +389,16 @@ class MarkRecommendationFailedRequest(proto.Message): Provides optimistic locking. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - state_metadata = proto.MapField( + state_metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=2, ) - etag = proto.Field( + etag: str = proto.Field( proto.STRING, number=3, ) @@ -416,7 +420,7 @@ class GetRecommenderConfigRequest(proto.Message): - ``organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`` """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -435,17 +439,17 @@ class UpdateRecommenderConfigRequest(proto.Message): change, but do not actually update it. """ - recommender_config = proto.Field( + recommender_config: gcr_recommender_config.RecommenderConfig = proto.Field( proto.MESSAGE, number=1, message=gcr_recommender_config.RecommenderConfig, ) - update_mask = proto.Field( + update_mask: field_mask_pb2.FieldMask = proto.Field( proto.MESSAGE, number=2, message=field_mask_pb2.FieldMask, ) - validate_only = proto.Field( + validate_only: bool = proto.Field( proto.BOOL, number=3, ) @@ -467,7 +471,7 @@ class GetInsightTypeConfigRequest(proto.Message): - ``organizations/[ORGANIZATION_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`` """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -486,17 +490,17 @@ class UpdateInsightTypeConfigRequest(proto.Message): change, but do not actually update it. """ - insight_type_config = proto.Field( + insight_type_config: gcr_insight_type_config.InsightTypeConfig = proto.Field( proto.MESSAGE, number=1, message=gcr_insight_type_config.InsightTypeConfig, ) - update_mask = proto.Field( + update_mask: field_mask_pb2.FieldMask = proto.Field( proto.MESSAGE, number=2, message=field_mask_pb2.FieldMask, ) - validate_only = proto.Field( + validate_only: bool = proto.Field( proto.BOOL, number=3, ) diff --git a/packages/google-cloud-recommender/owlbot.py b/packages/google-cloud-recommender/owlbot.py new file mode 100644 index 000000000000..ce738f01d012 --- /dev/null +++ b/packages/google-cloud-recommender/owlbot.py @@ -0,0 +1,56 @@ +# Copyright 2022 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. + +import json +from pathlib import Path +import shutil + +import synthtool as s +import synthtool.gcp as gcp +from synthtool.languages import python + +# ---------------------------------------------------------------------------- +# Copy the generated client from the owl-bot staging directory +# ---------------------------------------------------------------------------- + +clean_up_generated_samples = True + +# Load the default version defined in .repo-metadata.json. +default_version = json.load(open(".repo-metadata.json", "rt")).get( + "default_version" +) + +for library in s.get_staging_dirs(default_version): + if clean_up_generated_samples: + shutil.rmtree("samples/generated_samples", ignore_errors=True) + clean_up_generated_samples = False + s.move([library], excludes=["**/gapic_version.py"]) +s.remove_staging_dirs() + +# ---------------------------------------------------------------------------- +# Add templated files +# ---------------------------------------------------------------------------- + +templated_files = gcp.CommonTemplates().py_library( + cov_level=100, + microgenerator=True, + versions=gcp.common.detect_versions(path="./google", default_first=True), +) +s.move(templated_files, excludes=[".coveragerc", ".github/release-please.yml"]) + +python.py_samples(skip_readmes=True) + +# run format session for all directories which have a noxfile +for noxfile in Path(".").glob("**/noxfile.py"): + s.shell.run(["nox", "-s", "format"], cwd=noxfile.parent, hide_output=False) diff --git a/packages/google-cloud-recommender/release-please-config.json b/packages/google-cloud-recommender/release-please-config.json new file mode 100644 index 000000000000..b1183edc46b1 --- /dev/null +++ b/packages/google-cloud-recommender/release-please-config.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "packages": { + ".": { + "release-type": "python", + "extra-files": [ + "google/cloud/recommender/gapic_version.py", + { + "type": "json", + "path": "samples/generated_samples/snippet_metadata_google.cloud.recommender.v1.json", + "jsonpath": "$.clientLibrary.version" + }, + { + "type": "json", + "path": "samples/generated_samples/snippet_metadata_google.cloud.recommender.v1beta1.json", + "jsonpath": "$.clientLibrary.version" + } + ] + } + }, + "release-type": "python", + "plugins": [ + { + "type": "sentence-case" + } + ], + "initial-version": "0.1.0" +} diff --git a/packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_recommender_v1.json b/packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_google.cloud.recommender.v1.json similarity index 99% rename from packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_recommender_v1.json rename to packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_google.cloud.recommender.v1.json index fe4284c81378..175556945536 100644 --- a/packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_recommender_v1.json +++ b/packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_google.cloud.recommender.v1.json @@ -7,7 +7,8 @@ } ], "language": "PYTHON", - "name": "google-cloud-recommender" + "name": "google-cloud-recommender", + "version": "0.1.0" }, "snippets": [ { @@ -1012,7 +1013,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1100,7 +1101,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1189,7 +1190,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1277,7 +1278,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1366,7 +1367,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1454,7 +1455,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1543,7 +1544,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1631,7 +1632,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", diff --git a/packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_recommender_v1beta1.json b/packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_google.cloud.recommender.v1beta1.json similarity index 99% rename from packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_recommender_v1beta1.json rename to packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_google.cloud.recommender.v1beta1.json index f20914786d5b..fd53d49a9486 100644 --- a/packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_recommender_v1beta1.json +++ b/packages/google-cloud-recommender/samples/generated_samples/snippet_metadata_google.cloud.recommender.v1beta1.json @@ -7,7 +7,8 @@ } ], "language": "PYTHON", - "name": "google-cloud-recommender" + "name": "google-cloud-recommender", + "version": "0.1.0" }, "snippets": [ { @@ -1012,7 +1013,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1100,7 +1101,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1189,7 +1190,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1277,7 +1278,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1366,7 +1367,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1454,7 +1455,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1543,7 +1544,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", @@ -1631,7 +1632,7 @@ }, { "name": "state_metadata", - "type": "Mapping[str, str]" + "type": "MutableMapping[str, str]" }, { "name": "etag", diff --git a/packages/google-cloud-recommender/setup.py b/packages/google-cloud-recommender/setup.py index a4c983d3a987..2331916602ca 100644 --- a/packages/google-cloud-recommender/setup.py +++ b/packages/google-cloud-recommender/setup.py @@ -1,38 +1,48 @@ # -*- coding: utf-8 -*- -# -# Copyright 2018 Google LLC +# Copyright 2022 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 # -# https://www.apache.org/licenses/LICENSE-2.0 +# 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. - +# import io import os -import setuptools +import setuptools # type: ignore + +package_root = os.path.abspath(os.path.dirname(__file__)) name = "google-cloud-recommender" -description = "Cloud Recommender API client library" -version = "2.8.3" -release_status = "Development Status :: 5 - Production/Stable" + + +description = "Google Cloud Recommender API client library" + +version = {} +with open( + os.path.join(package_root, "google/cloud/recommender/gapic_version.py") +) as fp: + exec(fp.read(), version) +version = version["__version__"] + +if version[0] == "0": + release_status = "Development Status :: 4 - Beta" +else: + release_status = "Development Status :: 5 - Production/Stable" + dependencies = [ - "google-api-core[grpc] >= 1.32.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*", + "google-api-core[grpc] >= 1.33.2, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*", "proto-plus >= 1.22.0, <2.0.0dev", "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", ] -extras = {"libcst": "libcst >= 0.2.5"} -scripts = [ - "scripts/fixup_recommender_v1_keywords.py", - "scripts/fixup_recommender_v1beta1_keywords.py", -] +url = "https://github.com/googleapis/python-recommender" package_root = os.path.abspath(os.path.dirname(__file__)) @@ -58,7 +68,7 @@ author="Google LLC", author_email="googleapis-packages@google.com", license="Apache 2.0", - url="https://github.com/googleapis/python-recommender", + url=url, classifiers=[ release_status, "Intended Audience :: Developers", @@ -74,11 +84,9 @@ ], platforms="Posix; MacOS X; Windows", packages=packages, + python_requires=">=3.7", namespace_packages=namespaces, install_requires=dependencies, - extras_require=extras, - python_requires=">=3.7", - scripts=scripts, include_package_data=True, zip_safe=False, ) diff --git a/packages/google-cloud-recommender/testing/constraints-3.10.txt b/packages/google-cloud-recommender/testing/constraints-3.10.txt index e69de29bb2d1..ed7f9aed2559 100644 --- a/packages/google-cloud-recommender/testing/constraints-3.10.txt +++ b/packages/google-cloud-recommender/testing/constraints-3.10.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/packages/google-cloud-recommender/testing/constraints-3.11.txt b/packages/google-cloud-recommender/testing/constraints-3.11.txt index e69de29bb2d1..ed7f9aed2559 100644 --- a/packages/google-cloud-recommender/testing/constraints-3.11.txt +++ b/packages/google-cloud-recommender/testing/constraints-3.11.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/packages/google-cloud-recommender/testing/constraints-3.7.txt b/packages/google-cloud-recommender/testing/constraints-3.7.txt index 4005dc5bf25e..6f3158cc2034 100644 --- a/packages/google-cloud-recommender/testing/constraints-3.7.txt +++ b/packages/google-cloud-recommender/testing/constraints-3.7.txt @@ -4,6 +4,6 @@ # Pin the version to the lower bound. # e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", # Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.32.0 +google-api-core==1.33.2 proto-plus==1.22.0 protobuf==3.19.5 diff --git a/packages/google-cloud-recommender/testing/constraints-3.8.txt b/packages/google-cloud-recommender/testing/constraints-3.8.txt index da93009be5fe..ed7f9aed2559 100644 --- a/packages/google-cloud-recommender/testing/constraints-3.8.txt +++ b/packages/google-cloud-recommender/testing/constraints-3.8.txt @@ -1,2 +1,6 @@ -# This constraints file is left inentionally empty -# so the latest version of dependencies is installed \ No newline at end of file +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/packages/google-cloud-recommender/testing/constraints-3.9.txt b/packages/google-cloud-recommender/testing/constraints-3.9.txt index da93009be5fe..ed7f9aed2559 100644 --- a/packages/google-cloud-recommender/testing/constraints-3.9.txt +++ b/packages/google-cloud-recommender/testing/constraints-3.9.txt @@ -1,2 +1,6 @@ -# This constraints file is left inentionally empty -# so the latest version of dependencies is installed \ No newline at end of file +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf