google-cloud-modelarmor 0.3.0__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. {google_cloud_modelarmor-0.3.0/google_cloud_modelarmor.egg-info → google_cloud_modelarmor-0.5.0}/PKG-INFO +6 -8
  2. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/README.rst +2 -2
  3. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor/gapic_version.py +1 -1
  4. google_cloud_modelarmor-0.5.0/google/cloud/modelarmor_v1/__init__.py +223 -0
  5. {google_cloud_modelarmor-0.3.0/google/cloud/modelarmor_v1beta → google_cloud_modelarmor-0.5.0/google/cloud/modelarmor_v1}/gapic_version.py +1 -1
  6. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/model_armor/async_client.py +31 -17
  7. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/model_armor/client.py +69 -42
  8. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/model_armor/pagers.py +2 -2
  9. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/model_armor/transports/base.py +16 -7
  10. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/model_armor/transports/grpc.py +12 -8
  11. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/model_armor/transports/grpc_asyncio.py +11 -7
  12. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/model_armor/transports/rest.py +11 -7
  13. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/model_armor/transports/rest_base.py +1 -1
  14. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/types/service.py +23 -8
  15. google_cloud_modelarmor-0.5.0/google/cloud/modelarmor_v1beta/__init__.py +223 -0
  16. {google_cloud_modelarmor-0.3.0/google/cloud/modelarmor_v1 → google_cloud_modelarmor-0.5.0/google/cloud/modelarmor_v1beta}/gapic_version.py +1 -1
  17. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/model_armor/async_client.py +31 -17
  18. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/model_armor/client.py +69 -42
  19. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/model_armor/pagers.py +2 -2
  20. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/model_armor/transports/base.py +16 -7
  21. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/model_armor/transports/grpc.py +12 -8
  22. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/model_armor/transports/grpc_asyncio.py +11 -7
  23. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/model_armor/transports/rest.py +11 -7
  24. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/model_armor/transports/rest_base.py +1 -1
  25. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/types/service.py +23 -8
  26. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0/google_cloud_modelarmor.egg-info}/PKG-INFO +6 -8
  27. google_cloud_modelarmor-0.5.0/google_cloud_modelarmor.egg-info/requires.txt +11 -0
  28. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/setup.py +3 -5
  29. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/tests/unit/gapic/modelarmor_v1/test_model_armor.py +504 -197
  30. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/tests/unit/gapic/modelarmor_v1beta/test_model_armor.py +504 -197
  31. google_cloud_modelarmor-0.3.0/google/cloud/modelarmor_v1/__init__.py +0 -118
  32. google_cloud_modelarmor-0.3.0/google/cloud/modelarmor_v1beta/__init__.py +0 -118
  33. google_cloud_modelarmor-0.3.0/google_cloud_modelarmor.egg-info/requires.txt +0 -11
  34. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/LICENSE +0 -0
  35. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/MANIFEST.in +0 -0
  36. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor/__init__.py +0 -0
  37. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor/py.typed +0 -0
  38. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/gapic_metadata.json +0 -0
  39. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/py.typed +0 -0
  40. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/__init__.py +0 -0
  41. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/model_armor/__init__.py +0 -0
  42. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/services/model_armor/transports/__init__.py +0 -0
  43. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1/types/__init__.py +0 -0
  44. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/gapic_metadata.json +0 -0
  45. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/py.typed +0 -0
  46. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/__init__.py +0 -0
  47. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/model_armor/__init__.py +0 -0
  48. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/services/model_armor/transports/__init__.py +0 -0
  49. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google/cloud/modelarmor_v1beta/types/__init__.py +0 -0
  50. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google_cloud_modelarmor.egg-info/SOURCES.txt +0 -0
  51. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google_cloud_modelarmor.egg-info/dependency_links.txt +0 -0
  52. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google_cloud_modelarmor.egg-info/not-zip-safe +0 -0
  53. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/google_cloud_modelarmor.egg-info/top_level.txt +0 -0
  54. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/setup.cfg +0 -0
  55. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/tests/__init__.py +0 -0
  56. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/tests/unit/__init__.py +0 -0
  57. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/tests/unit/gapic/__init__.py +0 -0
  58. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/tests/unit/gapic/modelarmor_v1/__init__.py +0 -0
  59. {google_cloud_modelarmor-0.3.0 → google_cloud_modelarmor-0.5.0}/tests/unit/gapic/modelarmor_v1beta/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-cloud-modelarmor
3
- Version: 0.3.0
3
+ Version: 0.5.0
4
4
  Summary: Google Cloud Modelarmor API client library
5
5
  Home-page: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-modelarmor
6
6
  Author: Google LLC
@@ -12,8 +12,6 @@ Classifier: Intended Audience :: Developers
12
12
  Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Programming Language :: Python
14
14
  Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.7
16
- Classifier: Programming Language :: Python :: 3.8
17
15
  Classifier: Programming Language :: Python :: 3.9
18
16
  Classifier: Programming Language :: Python :: 3.10
19
17
  Classifier: Programming Language :: Python :: 3.11
@@ -22,15 +20,15 @@ Classifier: Programming Language :: Python :: 3.13
22
20
  Classifier: Programming Language :: Python :: 3.14
23
21
  Classifier: Operating System :: OS Independent
24
22
  Classifier: Topic :: Internet
25
- Requires-Python: >=3.7
23
+ Requires-Python: >=3.9
26
24
  License-File: LICENSE
27
- Requires-Dist: google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0,>=1.34.1
25
+ Requires-Dist: google-api-core[grpc]<3.0.0,>=2.11.0
28
26
  Requires-Dist: google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
29
27
  Requires-Dist: grpcio<2.0.0,>=1.33.2
30
28
  Requires-Dist: grpcio<2.0.0,>=1.75.1; python_version >= "3.14"
31
29
  Requires-Dist: proto-plus<2.0.0,>=1.22.3
32
30
  Requires-Dist: proto-plus<2.0.0,>=1.25.0; python_version >= "3.13"
33
- Requires-Dist: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0,>=3.20.2
31
+ Requires-Dist: protobuf<8.0.0,>=4.25.8
34
32
  Dynamic: author
35
33
  Dynamic: author-email
36
34
  Dynamic: classifier
@@ -106,14 +104,14 @@ Supported Python Versions
106
104
  Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of
107
105
  Python.
108
106
 
109
- Python >= 3.7, including 3.14
107
+ Python >= 3.9, including 3.14
110
108
 
111
109
  .. _active: https://devguide.python.org/devcycle/#in-development-main-branch
112
110
  .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches
113
111
 
114
112
  Unsupported Python Versions
115
113
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
116
- Python <= 3.6
114
+ Python <= 3.8
117
115
 
118
116
  If you are using an `end-of-life`_
119
117
  version of Python, we recommend that you update as soon as possible to an actively supported version.
@@ -61,14 +61,14 @@ Supported Python Versions
61
61
  Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of
62
62
  Python.
63
63
 
64
- Python >= 3.7, including 3.14
64
+ Python >= 3.9, including 3.14
65
65
 
66
66
  .. _active: https://devguide.python.org/devcycle/#in-development-main-branch
67
67
  .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches
68
68
 
69
69
  Unsupported Python Versions
70
70
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
71
- Python <= 3.6
71
+ Python <= 3.8
72
72
 
73
73
  If you are using an `end-of-life`_
74
74
  version of Python, we recommend that you update as soon as possible to an actively supported version.
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- __version__ = "0.3.0" # {x-release-please-version}
16
+ __version__ = "0.5.0" # {x-release-please-version}
@@ -0,0 +1,223 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright 2025 Google LLC
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ import sys
17
+
18
+ import google.api_core as api_core
19
+
20
+ from google.cloud.modelarmor_v1 import gapic_version as package_version
21
+
22
+ __version__ = package_version.__version__
23
+
24
+ if sys.version_info >= (3, 8): # pragma: NO COVER
25
+ from importlib import metadata
26
+ else: # pragma: NO COVER
27
+ # TODO(https://github.com/googleapis/python-api-core/issues/835): Remove
28
+ # this code path once we drop support for Python 3.7
29
+ import importlib_metadata as metadata
30
+
31
+
32
+ from .services.model_armor import ModelArmorAsyncClient, ModelArmorClient
33
+ from .types.service import (
34
+ AiPlatformFloorSetting,
35
+ ByteDataItem,
36
+ CreateTemplateRequest,
37
+ CsamFilterResult,
38
+ DataItem,
39
+ DeleteTemplateRequest,
40
+ DetectionConfidenceLevel,
41
+ FilterConfig,
42
+ FilterExecutionState,
43
+ FilterMatchState,
44
+ FilterResult,
45
+ FloorSetting,
46
+ GetFloorSettingRequest,
47
+ GetTemplateRequest,
48
+ InvocationResult,
49
+ ListTemplatesRequest,
50
+ ListTemplatesResponse,
51
+ MaliciousUriFilterResult,
52
+ MaliciousUriFilterSettings,
53
+ MessageItem,
54
+ MultiLanguageDetectionMetadata,
55
+ PiAndJailbreakFilterResult,
56
+ PiAndJailbreakFilterSettings,
57
+ RaiFilterResult,
58
+ RaiFilterSettings,
59
+ RaiFilterType,
60
+ RangeInfo,
61
+ SanitizationResult,
62
+ SanitizeModelResponseRequest,
63
+ SanitizeModelResponseResponse,
64
+ SanitizeUserPromptRequest,
65
+ SanitizeUserPromptResponse,
66
+ SdpAdvancedConfig,
67
+ SdpBasicConfig,
68
+ SdpDeidentifyResult,
69
+ SdpFilterResult,
70
+ SdpFilterSettings,
71
+ SdpFinding,
72
+ SdpFindingLikelihood,
73
+ SdpInspectResult,
74
+ Template,
75
+ UpdateFloorSettingRequest,
76
+ UpdateTemplateRequest,
77
+ VirusDetail,
78
+ VirusScanFilterResult,
79
+ )
80
+
81
+ if hasattr(api_core, "check_python_version") and hasattr(
82
+ api_core, "check_dependency_versions"
83
+ ): # pragma: NO COVER
84
+ api_core.check_python_version("google.cloud.modelarmor_v1") # type: ignore
85
+ api_core.check_dependency_versions("google.cloud.modelarmor_v1") # type: ignore
86
+ else: # pragma: NO COVER
87
+ # An older version of api_core is installed which does not define the
88
+ # functions above. We do equivalent checks manually.
89
+ try:
90
+ import sys
91
+ import warnings
92
+
93
+ _py_version_str = sys.version.split()[0]
94
+ _package_label = "google.cloud.modelarmor_v1"
95
+ if sys.version_info < (3, 9):
96
+ warnings.warn(
97
+ "You are using a non-supported Python version "
98
+ + f"({_py_version_str}). Google will not post any further "
99
+ + f"updates to {_package_label} supporting this Python version. "
100
+ + "Please upgrade to the latest Python version, or at "
101
+ + f"least to Python 3.9, and then update {_package_label}.",
102
+ FutureWarning,
103
+ )
104
+ if sys.version_info[:2] == (3, 9):
105
+ warnings.warn(
106
+ f"You are using a Python version ({_py_version_str}) "
107
+ + f"which Google will stop supporting in {_package_label} in "
108
+ + "January 2026. Please "
109
+ + "upgrade to the latest Python version, or at "
110
+ + "least to Python 3.10, before then, and "
111
+ + f"then update {_package_label}.",
112
+ FutureWarning,
113
+ )
114
+
115
+ def parse_version_to_tuple(version_string: str):
116
+ """Safely converts a semantic version string to a comparable tuple of integers.
117
+ Example: "4.25.8" -> (4, 25, 8)
118
+ Ignores non-numeric parts and handles common version formats.
119
+ Args:
120
+ version_string: Version string in the format "x.y.z" or "x.y.z<suffix>"
121
+ Returns:
122
+ Tuple of integers for the parsed version string.
123
+ """
124
+ parts = []
125
+ for part in version_string.split("."):
126
+ try:
127
+ parts.append(int(part))
128
+ except ValueError:
129
+ # If it's a non-numeric part (e.g., '1.0.0b1' -> 'b1'), stop here.
130
+ # This is a simplification compared to 'packaging.parse_version', but sufficient
131
+ # for comparing strictly numeric semantic versions.
132
+ break
133
+ return tuple(parts)
134
+
135
+ def _get_version(dependency_name):
136
+ try:
137
+ version_string: str = metadata.version(dependency_name)
138
+ parsed_version = parse_version_to_tuple(version_string)
139
+ return (parsed_version, version_string)
140
+ except Exception:
141
+ # Catch exceptions from metadata.version() (e.g., PackageNotFoundError)
142
+ # or errors during parse_version_to_tuple
143
+ return (None, "--")
144
+
145
+ _dependency_package = "google.protobuf"
146
+ _next_supported_version = "4.25.8"
147
+ _next_supported_version_tuple = (4, 25, 8)
148
+ _recommendation = " (we recommend 6.x)"
149
+ (_version_used, _version_used_string) = _get_version(_dependency_package)
150
+ if _version_used and _version_used < _next_supported_version_tuple:
151
+ warnings.warn(
152
+ f"Package {_package_label} depends on "
153
+ + f"{_dependency_package}, currently installed at version "
154
+ + f"{_version_used_string}. Future updates to "
155
+ + f"{_package_label} will require {_dependency_package} at "
156
+ + f"version {_next_supported_version} or higher{_recommendation}."
157
+ + " Please ensure "
158
+ + "that either (a) your Python environment doesn't pin the "
159
+ + f"version of {_dependency_package}, so that updates to "
160
+ + f"{_package_label} can require the higher version, or "
161
+ + "(b) you manually update your Python environment to use at "
162
+ + f"least version {_next_supported_version} of "
163
+ + f"{_dependency_package}.",
164
+ FutureWarning,
165
+ )
166
+ except Exception:
167
+ warnings.warn(
168
+ "Could not determine the version of Python "
169
+ + "currently being used. To continue receiving "
170
+ + "updates for {_package_label}, ensure you are "
171
+ + "using a supported version of Python; see "
172
+ + "https://devguide.python.org/versions/"
173
+ )
174
+
175
+ __all__ = (
176
+ "ModelArmorAsyncClient",
177
+ "AiPlatformFloorSetting",
178
+ "ByteDataItem",
179
+ "CreateTemplateRequest",
180
+ "CsamFilterResult",
181
+ "DataItem",
182
+ "DeleteTemplateRequest",
183
+ "DetectionConfidenceLevel",
184
+ "FilterConfig",
185
+ "FilterExecutionState",
186
+ "FilterMatchState",
187
+ "FilterResult",
188
+ "FloorSetting",
189
+ "GetFloorSettingRequest",
190
+ "GetTemplateRequest",
191
+ "InvocationResult",
192
+ "ListTemplatesRequest",
193
+ "ListTemplatesResponse",
194
+ "MaliciousUriFilterResult",
195
+ "MaliciousUriFilterSettings",
196
+ "MessageItem",
197
+ "ModelArmorClient",
198
+ "MultiLanguageDetectionMetadata",
199
+ "PiAndJailbreakFilterResult",
200
+ "PiAndJailbreakFilterSettings",
201
+ "RaiFilterResult",
202
+ "RaiFilterSettings",
203
+ "RaiFilterType",
204
+ "RangeInfo",
205
+ "SanitizationResult",
206
+ "SanitizeModelResponseRequest",
207
+ "SanitizeModelResponseResponse",
208
+ "SanitizeUserPromptRequest",
209
+ "SanitizeUserPromptResponse",
210
+ "SdpAdvancedConfig",
211
+ "SdpBasicConfig",
212
+ "SdpDeidentifyResult",
213
+ "SdpFilterResult",
214
+ "SdpFilterSettings",
215
+ "SdpFinding",
216
+ "SdpFindingLikelihood",
217
+ "SdpInspectResult",
218
+ "Template",
219
+ "UpdateFloorSettingRequest",
220
+ "UpdateTemplateRequest",
221
+ "VirusDetail",
222
+ "VirusScanFilterResult",
223
+ )
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- __version__ = "0.3.0" # {x-release-please-version}
16
+ __version__ = "0.5.0" # {x-release-please-version}
@@ -13,9 +13,9 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- from collections import OrderedDict
17
16
  import logging as std_logging
18
17
  import re
18
+ from collections import OrderedDict
19
19
  from typing import (
20
20
  Callable,
21
21
  Dict,
@@ -29,13 +29,13 @@ from typing import (
29
29
  Union,
30
30
  )
31
31
 
32
+ import google.protobuf
32
33
  from google.api_core import exceptions as core_exceptions
33
34
  from google.api_core import gapic_v1
34
35
  from google.api_core import retry_async as retries
35
36
  from google.api_core.client_options import ClientOptions
36
37
  from google.auth import credentials as ga_credentials # type: ignore
37
38
  from google.oauth2 import service_account # type: ignore
38
- import google.protobuf
39
39
 
40
40
  from google.cloud.modelarmor_v1 import gapic_version as package_version
41
41
 
@@ -44,9 +44,9 @@ try:
44
44
  except AttributeError: # pragma: NO COVER
45
45
  OptionalRetry = Union[retries.AsyncRetry, object, None] # type: ignore
46
46
 
47
+ import google.protobuf.field_mask_pb2 as field_mask_pb2 # type: ignore
48
+ import google.protobuf.timestamp_pb2 as timestamp_pb2 # type: ignore
47
49
  from google.cloud.location import locations_pb2 # type: ignore
48
- from google.protobuf import field_mask_pb2 # type: ignore
49
- from google.protobuf import timestamp_pb2 # type: ignore
50
50
 
51
51
  from google.cloud.modelarmor_v1.services.model_armor import pagers
52
52
  from google.cloud.modelarmor_v1.types import service
@@ -113,7 +113,10 @@ class ModelArmorAsyncClient:
113
113
  Returns:
114
114
  ModelArmorAsyncClient: The constructed client.
115
115
  """
116
- return ModelArmorClient.from_service_account_info.__func__(ModelArmorAsyncClient, info, *args, **kwargs) # type: ignore
116
+ sa_info_func = (
117
+ ModelArmorClient.from_service_account_info.__func__ # type: ignore
118
+ )
119
+ return sa_info_func(ModelArmorAsyncClient, info, *args, **kwargs)
117
120
 
118
121
  @classmethod
119
122
  def from_service_account_file(cls, filename: str, *args, **kwargs):
@@ -129,7 +132,10 @@ class ModelArmorAsyncClient:
129
132
  Returns:
130
133
  ModelArmorAsyncClient: The constructed client.
131
134
  """
132
- return ModelArmorClient.from_service_account_file.__func__(ModelArmorAsyncClient, filename, *args, **kwargs) # type: ignore
135
+ sa_file_func = (
136
+ ModelArmorClient.from_service_account_file.__func__ # type: ignore
137
+ )
138
+ return sa_file_func(ModelArmorAsyncClient, filename, *args, **kwargs)
133
139
 
134
140
  from_service_account_json = from_service_account_file
135
141
 
@@ -179,7 +185,7 @@ class ModelArmorAsyncClient:
179
185
  return self._client.transport
180
186
 
181
187
  @property
182
- def api_endpoint(self):
188
+ def api_endpoint(self) -> str:
183
189
  """Return the API endpoint used by the client instance.
184
190
 
185
191
  Returns:
@@ -1276,7 +1282,7 @@ class ModelArmorAsyncClient:
1276
1282
 
1277
1283
  async def get_location(
1278
1284
  self,
1279
- request: Optional[locations_pb2.GetLocationRequest] = None,
1285
+ request: Optional[Union[locations_pb2.GetLocationRequest, dict]] = None,
1280
1286
  *,
1281
1287
  retry: OptionalRetry = gapic_v1.method.DEFAULT,
1282
1288
  timeout: Union[float, object] = gapic_v1.method.DEFAULT,
@@ -1302,8 +1308,12 @@ class ModelArmorAsyncClient:
1302
1308
  # Create or coerce a protobuf request object.
1303
1309
  # The request isn't a proto-plus wrapped type,
1304
1310
  # so it must be constructed via keyword expansion.
1305
- if isinstance(request, dict):
1306
- request = locations_pb2.GetLocationRequest(**request)
1311
+ if request is None:
1312
+ request_pb = locations_pb2.GetLocationRequest()
1313
+ elif isinstance(request, dict):
1314
+ request_pb = locations_pb2.GetLocationRequest(**request)
1315
+ else:
1316
+ request_pb = request
1307
1317
 
1308
1318
  # Wrap the RPC method; this adds retry and timeout information,
1309
1319
  # and friendly error handling.
@@ -1312,7 +1322,7 @@ class ModelArmorAsyncClient:
1312
1322
  # Certain fields should be provided within the metadata header;
1313
1323
  # add these here.
1314
1324
  metadata = tuple(metadata) + (
1315
- gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
1325
+ gapic_v1.routing_header.to_grpc_metadata((("name", request_pb.name),)),
1316
1326
  )
1317
1327
 
1318
1328
  # Validate the universe domain.
@@ -1320,7 +1330,7 @@ class ModelArmorAsyncClient:
1320
1330
 
1321
1331
  # Send the request.
1322
1332
  response = await rpc(
1323
- request,
1333
+ request_pb,
1324
1334
  retry=retry,
1325
1335
  timeout=timeout,
1326
1336
  metadata=metadata,
@@ -1331,7 +1341,7 @@ class ModelArmorAsyncClient:
1331
1341
 
1332
1342
  async def list_locations(
1333
1343
  self,
1334
- request: Optional[locations_pb2.ListLocationsRequest] = None,
1344
+ request: Optional[Union[locations_pb2.ListLocationsRequest, dict]] = None,
1335
1345
  *,
1336
1346
  retry: OptionalRetry = gapic_v1.method.DEFAULT,
1337
1347
  timeout: Union[float, object] = gapic_v1.method.DEFAULT,
@@ -1357,8 +1367,12 @@ class ModelArmorAsyncClient:
1357
1367
  # Create or coerce a protobuf request object.
1358
1368
  # The request isn't a proto-plus wrapped type,
1359
1369
  # so it must be constructed via keyword expansion.
1360
- if isinstance(request, dict):
1361
- request = locations_pb2.ListLocationsRequest(**request)
1370
+ if request is None:
1371
+ request_pb = locations_pb2.ListLocationsRequest()
1372
+ elif isinstance(request, dict):
1373
+ request_pb = locations_pb2.ListLocationsRequest(**request)
1374
+ else:
1375
+ request_pb = request
1362
1376
 
1363
1377
  # Wrap the RPC method; this adds retry and timeout information,
1364
1378
  # and friendly error handling.
@@ -1367,7 +1381,7 @@ class ModelArmorAsyncClient:
1367
1381
  # Certain fields should be provided within the metadata header;
1368
1382
  # add these here.
1369
1383
  metadata = tuple(metadata) + (
1370
- gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
1384
+ gapic_v1.routing_header.to_grpc_metadata((("name", request_pb.name),)),
1371
1385
  )
1372
1386
 
1373
1387
  # Validate the universe domain.
@@ -1375,7 +1389,7 @@ class ModelArmorAsyncClient:
1375
1389
 
1376
1390
  # Send the request.
1377
1391
  response = await rpc(
1378
- request,
1392
+ request_pb,
1379
1393
  retry=retry,
1380
1394
  timeout=timeout,
1381
1395
  metadata=metadata,