google-cloud-modelarmor 0.2.5__tar.gz → 0.2.7__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 (56) hide show
  1. {google_cloud_modelarmor-0.2.5/google_cloud_modelarmor.egg-info → google_cloud_modelarmor-0.2.7}/PKG-INFO +13 -2
  2. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor/__init__.py +4 -0
  3. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor/gapic_version.py +1 -1
  4. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/__init__.py +4 -0
  5. {google_cloud_modelarmor-0.2.5/google/cloud/modelarmor_v1beta → google_cloud_modelarmor-0.2.7/google/cloud/modelarmor_v1}/gapic_version.py +1 -1
  6. {google_cloud_modelarmor-0.2.5/google/cloud/modelarmor_v1beta → google_cloud_modelarmor-0.2.7/google/cloud/modelarmor_v1}/types/__init__.py +2 -0
  7. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/types/service.py +183 -0
  8. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/__init__.py +2 -0
  9. {google_cloud_modelarmor-0.2.5/google/cloud/modelarmor_v1 → google_cloud_modelarmor-0.2.7/google/cloud/modelarmor_v1beta}/gapic_version.py +1 -1
  10. {google_cloud_modelarmor-0.2.5/google/cloud/modelarmor_v1 → google_cloud_modelarmor-0.2.7/google/cloud/modelarmor_v1beta}/types/__init__.py +4 -0
  11. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/types/service.py +167 -2
  12. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7/google_cloud_modelarmor.egg-info}/PKG-INFO +13 -2
  13. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/tests/unit/gapic/modelarmor_v1/test_model_armor.py +45 -0
  14. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/tests/unit/gapic/modelarmor_v1beta/test_model_armor.py +45 -0
  15. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/LICENSE +0 -0
  16. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/MANIFEST.in +0 -0
  17. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/README.rst +0 -0
  18. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor/py.typed +0 -0
  19. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/gapic_metadata.json +0 -0
  20. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/py.typed +0 -0
  21. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/__init__.py +0 -0
  22. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/model_armor/__init__.py +0 -0
  23. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/model_armor/async_client.py +0 -0
  24. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/model_armor/client.py +0 -0
  25. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/model_armor/pagers.py +0 -0
  26. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/model_armor/transports/__init__.py +0 -0
  27. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/model_armor/transports/base.py +0 -0
  28. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/model_armor/transports/grpc.py +0 -0
  29. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/model_armor/transports/grpc_asyncio.py +0 -0
  30. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/model_armor/transports/rest.py +0 -0
  31. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1/services/model_armor/transports/rest_base.py +0 -0
  32. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/gapic_metadata.json +0 -0
  33. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/py.typed +0 -0
  34. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/__init__.py +0 -0
  35. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/model_armor/__init__.py +0 -0
  36. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/model_armor/async_client.py +0 -0
  37. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/model_armor/client.py +0 -0
  38. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/model_armor/pagers.py +0 -0
  39. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/model_armor/transports/__init__.py +0 -0
  40. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/model_armor/transports/base.py +0 -0
  41. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/model_armor/transports/grpc.py +0 -0
  42. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/model_armor/transports/grpc_asyncio.py +0 -0
  43. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/model_armor/transports/rest.py +0 -0
  44. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google/cloud/modelarmor_v1beta/services/model_armor/transports/rest_base.py +0 -0
  45. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google_cloud_modelarmor.egg-info/SOURCES.txt +0 -0
  46. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google_cloud_modelarmor.egg-info/dependency_links.txt +0 -0
  47. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google_cloud_modelarmor.egg-info/not-zip-safe +0 -0
  48. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google_cloud_modelarmor.egg-info/requires.txt +0 -0
  49. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/google_cloud_modelarmor.egg-info/top_level.txt +0 -0
  50. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/setup.cfg +0 -0
  51. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/setup.py +0 -0
  52. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/tests/__init__.py +0 -0
  53. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/tests/unit/__init__.py +0 -0
  54. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/tests/unit/gapic/__init__.py +0 -0
  55. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/tests/unit/gapic/modelarmor_v1/__init__.py +0 -0
  56. {google_cloud_modelarmor-0.2.5 → google_cloud_modelarmor-0.2.7}/tests/unit/gapic/modelarmor_v1beta/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: google-cloud-modelarmor
3
- Version: 0.2.5
3
+ Version: 0.2.7
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
@@ -28,6 +28,17 @@ Requires-Dist: google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
28
28
  Requires-Dist: proto-plus<2.0.0,>=1.22.3
29
29
  Requires-Dist: proto-plus<2.0.0,>=1.25.0; python_version >= "3.13"
30
30
  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
+ Dynamic: author
32
+ Dynamic: author-email
33
+ Dynamic: classifier
34
+ Dynamic: description
35
+ Dynamic: home-page
36
+ Dynamic: license
37
+ Dynamic: license-file
38
+ Dynamic: platform
39
+ Dynamic: requires-dist
40
+ Dynamic: requires-python
41
+ Dynamic: summary
31
42
 
32
43
  Python Client for Model Armor API
33
44
  =================================
@@ -23,6 +23,7 @@ from google.cloud.modelarmor_v1.services.model_armor.async_client import (
23
23
  )
24
24
  from google.cloud.modelarmor_v1.services.model_armor.client import ModelArmorClient
25
25
  from google.cloud.modelarmor_v1.types.service import (
26
+ AiPlatformFloorSetting,
26
27
  ByteDataItem,
27
28
  CreateTemplateRequest,
28
29
  CsamFilterResult,
@@ -42,6 +43,7 @@ from google.cloud.modelarmor_v1.types.service import (
42
43
  MaliciousUriFilterResult,
43
44
  MaliciousUriFilterSettings,
44
45
  MessageItem,
46
+ MultiLanguageDetectionMetadata,
45
47
  PiAndJailbreakFilterResult,
46
48
  PiAndJailbreakFilterSettings,
47
49
  RaiFilterResult,
@@ -71,6 +73,7 @@ from google.cloud.modelarmor_v1.types.service import (
71
73
  __all__ = (
72
74
  "ModelArmorClient",
73
75
  "ModelArmorAsyncClient",
76
+ "AiPlatformFloorSetting",
74
77
  "ByteDataItem",
75
78
  "CreateTemplateRequest",
76
79
  "CsamFilterResult",
@@ -86,6 +89,7 @@ __all__ = (
86
89
  "MaliciousUriFilterResult",
87
90
  "MaliciousUriFilterSettings",
88
91
  "MessageItem",
92
+ "MultiLanguageDetectionMetadata",
89
93
  "PiAndJailbreakFilterResult",
90
94
  "PiAndJailbreakFilterSettings",
91
95
  "RaiFilterResult",
@@ -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.2.5" # {x-release-please-version}
16
+ __version__ = "0.2.7" # {x-release-please-version}
@@ -20,6 +20,7 @@ __version__ = package_version.__version__
20
20
 
21
21
  from .services.model_armor import ModelArmorAsyncClient, ModelArmorClient
22
22
  from .types.service import (
23
+ AiPlatformFloorSetting,
23
24
  ByteDataItem,
24
25
  CreateTemplateRequest,
25
26
  CsamFilterResult,
@@ -39,6 +40,7 @@ from .types.service import (
39
40
  MaliciousUriFilterResult,
40
41
  MaliciousUriFilterSettings,
41
42
  MessageItem,
43
+ MultiLanguageDetectionMetadata,
42
44
  PiAndJailbreakFilterResult,
43
45
  PiAndJailbreakFilterSettings,
44
46
  RaiFilterResult,
@@ -67,6 +69,7 @@ from .types.service import (
67
69
 
68
70
  __all__ = (
69
71
  "ModelArmorAsyncClient",
72
+ "AiPlatformFloorSetting",
70
73
  "ByteDataItem",
71
74
  "CreateTemplateRequest",
72
75
  "CsamFilterResult",
@@ -87,6 +90,7 @@ __all__ = (
87
90
  "MaliciousUriFilterSettings",
88
91
  "MessageItem",
89
92
  "ModelArmorClient",
93
+ "MultiLanguageDetectionMetadata",
90
94
  "PiAndJailbreakFilterResult",
91
95
  "PiAndJailbreakFilterSettings",
92
96
  "RaiFilterResult",
@@ -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.0.0" # {x-release-please-version}
16
+ __version__ = "0.2.7" # {x-release-please-version}
@@ -14,6 +14,7 @@
14
14
  # limitations under the License.
15
15
  #
16
16
  from .service import (
17
+ AiPlatformFloorSetting,
17
18
  ByteDataItem,
18
19
  CreateTemplateRequest,
19
20
  CsamFilterResult,
@@ -61,6 +62,7 @@ from .service import (
61
62
  )
62
63
 
63
64
  __all__ = (
65
+ "AiPlatformFloorSetting",
64
66
  "ByteDataItem",
65
67
  "CreateTemplateRequest",
66
68
  "CsamFilterResult",
@@ -32,6 +32,7 @@ __protobuf__ = proto.module(
32
32
  "InvocationResult",
33
33
  "Template",
34
34
  "FloorSetting",
35
+ "AiPlatformFloorSetting",
35
36
  "ListTemplatesRequest",
36
37
  "ListTemplatesResponse",
37
38
  "GetTemplateRequest",
@@ -52,6 +53,7 @@ __protobuf__ = proto.module(
52
53
  "SanitizeUserPromptResponse",
53
54
  "SanitizeModelResponseResponse",
54
55
  "SanitizationResult",
56
+ "MultiLanguageDetectionMetadata",
55
57
  "FilterResult",
56
58
  "RaiFilterResult",
57
59
  "SdpFilterResult",
@@ -245,8 +247,46 @@ class Template(proto.Message):
245
247
  operations.
246
248
  log_sanitize_operations (bool):
247
249
  Optional. If true, log sanitize operations.
250
+ enforcement_type (google.cloud.modelarmor_v1.types.Template.TemplateMetadata.EnforcementType):
251
+ Optional. Enforcement type for Model Armor
252
+ filters.
253
+ multi_language_detection (google.cloud.modelarmor_v1.types.Template.TemplateMetadata.MultiLanguageDetection):
254
+ Optional. Metadata for multi language
255
+ detection.
248
256
  """
249
257
 
258
+ class EnforcementType(proto.Enum):
259
+ r"""Enforcement type for Model Armor filters.
260
+
261
+ Values:
262
+ ENFORCEMENT_TYPE_UNSPECIFIED (0):
263
+ Default value. Same as INSPECT_AND_BLOCK.
264
+ INSPECT_ONLY (1):
265
+ Model Armor filters will run in inspect only
266
+ mode. No action will be taken on the request.
267
+ INSPECT_AND_BLOCK (2):
268
+ Model Armor filters will run in inspect and
269
+ block mode. Requests that trip Model Armor
270
+ filters will be blocked.
271
+ """
272
+ ENFORCEMENT_TYPE_UNSPECIFIED = 0
273
+ INSPECT_ONLY = 1
274
+ INSPECT_AND_BLOCK = 2
275
+
276
+ class MultiLanguageDetection(proto.Message):
277
+ r"""Metadata to enable multi language detection via template.
278
+
279
+ Attributes:
280
+ enable_multi_language_detection (bool):
281
+ Required. If true, multi language detection
282
+ will be enabled.
283
+ """
284
+
285
+ enable_multi_language_detection: bool = proto.Field(
286
+ proto.BOOL,
287
+ number=1,
288
+ )
289
+
250
290
  ignore_partial_invocation_failures: bool = proto.Field(
251
291
  proto.BOOL,
252
292
  number=1,
@@ -275,6 +315,18 @@ class Template(proto.Message):
275
315
  proto.BOOL,
276
316
  number=7,
277
317
  )
318
+ enforcement_type: "Template.TemplateMetadata.EnforcementType" = proto.Field(
319
+ proto.ENUM,
320
+ number=8,
321
+ enum="Template.TemplateMetadata.EnforcementType",
322
+ )
323
+ multi_language_detection: "Template.TemplateMetadata.MultiLanguageDetection" = (
324
+ proto.Field(
325
+ proto.MESSAGE,
326
+ number=9,
327
+ message="Template.TemplateMetadata.MultiLanguageDetection",
328
+ )
329
+ )
278
330
 
279
331
  name: str = proto.Field(
280
332
  proto.STRING,
@@ -325,8 +377,32 @@ class FloorSetting(proto.Message):
325
377
  Optional. Floor Settings enforcement status.
326
378
 
327
379
  This field is a member of `oneof`_ ``_enable_floor_setting_enforcement``.
380
+ integrated_services (MutableSequence[google.cloud.modelarmor_v1.types.FloorSetting.IntegratedService]):
381
+ Optional. List of integrated services for
382
+ which the floor setting is applicable.
383
+ ai_platform_floor_setting (google.cloud.modelarmor_v1.types.AiPlatformFloorSetting):
384
+ Optional. AI Platform floor setting.
385
+
386
+ This field is a member of `oneof`_ ``_ai_platform_floor_setting``.
387
+ floor_setting_metadata (google.cloud.modelarmor_v1.types.FloorSetting.FloorSettingMetadata):
388
+ Optional. Metadata for FloorSetting
328
389
  """
329
390
 
391
+ class IntegratedService(proto.Enum):
392
+ r"""Integrated service for which the floor setting is applicable.
393
+
394
+ Values:
395
+ INTEGRATED_SERVICE_UNSPECIFIED (0):
396
+ Unspecified integrated service.
397
+ AI_PLATFORM (1):
398
+ AI Platform.
399
+ """
400
+ INTEGRATED_SERVICE_UNSPECIFIED = 0
401
+ AI_PLATFORM = 1
402
+
403
+ class FloorSettingMetadata(proto.Message):
404
+ r"""message describing FloorSetting Metadata"""
405
+
330
406
  name: str = proto.Field(
331
407
  proto.STRING,
332
408
  number=1,
@@ -351,6 +427,66 @@ class FloorSetting(proto.Message):
351
427
  number=5,
352
428
  optional=True,
353
429
  )
430
+ integrated_services: MutableSequence[IntegratedService] = proto.RepeatedField(
431
+ proto.ENUM,
432
+ number=6,
433
+ enum=IntegratedService,
434
+ )
435
+ ai_platform_floor_setting: "AiPlatformFloorSetting" = proto.Field(
436
+ proto.MESSAGE,
437
+ number=7,
438
+ optional=True,
439
+ message="AiPlatformFloorSetting",
440
+ )
441
+ floor_setting_metadata: FloorSettingMetadata = proto.Field(
442
+ proto.MESSAGE,
443
+ number=8,
444
+ message=FloorSettingMetadata,
445
+ )
446
+
447
+
448
+ class AiPlatformFloorSetting(proto.Message):
449
+ r"""message describing AiPlatformFloorSetting
450
+
451
+ This message has `oneof`_ fields (mutually exclusive fields).
452
+ For each oneof, at most one member field can be set at the same time.
453
+ Setting any member of the oneof automatically clears all other
454
+ members.
455
+
456
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
457
+
458
+ Attributes:
459
+ inspect_only (bool):
460
+ Optional. If true, Model Armor filters will
461
+ be run in inspect only mode. No action will be
462
+ taken on the request.
463
+
464
+ This field is a member of `oneof`_ ``enforcement_type``.
465
+ inspect_and_block (bool):
466
+ Optional. If true, Model Armor filters will
467
+ be run in inspect and block mode. Requests that
468
+ trip Model Armor filters will be blocked.
469
+
470
+ This field is a member of `oneof`_ ``enforcement_type``.
471
+ enable_cloud_logging (bool):
472
+ Optional. If true, log Model Armor filter
473
+ results to Cloud Logging.
474
+ """
475
+
476
+ inspect_only: bool = proto.Field(
477
+ proto.BOOL,
478
+ number=1,
479
+ oneof="enforcement_type",
480
+ )
481
+ inspect_and_block: bool = proto.Field(
482
+ proto.BOOL,
483
+ number=2,
484
+ oneof="enforcement_type",
485
+ )
486
+ enable_cloud_logging: bool = proto.Field(
487
+ proto.BOOL,
488
+ number=3,
489
+ )
354
490
 
355
491
 
356
492
  class ListTemplatesRequest(proto.Message):
@@ -909,6 +1045,9 @@ class SanitizeUserPromptRequest(proto.Message):
909
1045
  name=projects/sample-project/locations/us-central1/templates/templ01
910
1046
  user_prompt_data (google.cloud.modelarmor_v1.types.DataItem):
911
1047
  Required. User prompt data to sanitize.
1048
+ multi_language_detection_metadata (google.cloud.modelarmor_v1.types.MultiLanguageDetectionMetadata):
1049
+ Optional. Metadata related to Multi Language
1050
+ Detection.
912
1051
  """
913
1052
 
914
1053
  name: str = proto.Field(
@@ -920,6 +1059,11 @@ class SanitizeUserPromptRequest(proto.Message):
920
1059
  number=2,
921
1060
  message="DataItem",
922
1061
  )
1062
+ multi_language_detection_metadata: "MultiLanguageDetectionMetadata" = proto.Field(
1063
+ proto.MESSAGE,
1064
+ number=6,
1065
+ message="MultiLanguageDetectionMetadata",
1066
+ )
923
1067
 
924
1068
 
925
1069
  class SanitizeModelResponseRequest(proto.Message):
@@ -935,6 +1079,9 @@ class SanitizeModelResponseRequest(proto.Message):
935
1079
  user_prompt (str):
936
1080
  Optional. User Prompt associated with Model
937
1081
  response.
1082
+ multi_language_detection_metadata (google.cloud.modelarmor_v1.types.MultiLanguageDetectionMetadata):
1083
+ Optional. Metadata related for multi language
1084
+ detection.
938
1085
  """
939
1086
 
940
1087
  name: str = proto.Field(
@@ -950,6 +1097,11 @@ class SanitizeModelResponseRequest(proto.Message):
950
1097
  proto.STRING,
951
1098
  number=4,
952
1099
  )
1100
+ multi_language_detection_metadata: "MultiLanguageDetectionMetadata" = proto.Field(
1101
+ proto.MESSAGE,
1102
+ number=7,
1103
+ message="MultiLanguageDetectionMetadata",
1104
+ )
953
1105
 
954
1106
 
955
1107
  class SanitizeUserPromptResponse(proto.Message):
@@ -1065,6 +1217,31 @@ class SanitizationResult(proto.Message):
1065
1217
  )
1066
1218
 
1067
1219
 
1220
+ class MultiLanguageDetectionMetadata(proto.Message):
1221
+ r"""Message for Enabling Multi Language Detection.
1222
+
1223
+ Attributes:
1224
+ source_language (str):
1225
+ Optional. Optional Source language of the
1226
+ user prompt.
1227
+ If multi-language detection is enabled but
1228
+ language is not set in that case we would
1229
+ automatically detect the source language.
1230
+ enable_multi_language_detection (bool):
1231
+ Optional. Enable detection of multi-language
1232
+ prompts and responses.
1233
+ """
1234
+
1235
+ source_language: str = proto.Field(
1236
+ proto.STRING,
1237
+ number=1,
1238
+ )
1239
+ enable_multi_language_detection: bool = proto.Field(
1240
+ proto.BOOL,
1241
+ number=2,
1242
+ )
1243
+
1244
+
1068
1245
  class FilterResult(proto.Message):
1069
1246
  r"""Filter Result obtained after Sanitization operations.
1070
1247
 
@@ -1371,6 +1548,10 @@ class ByteDataItem(proto.Message):
1371
1548
  XLSX, XLSM, XLTX, XLYM
1372
1549
  POWERPOINT_DOCUMENT (5):
1373
1550
  PPTX, PPTM, POTX, POTM, POT
1551
+ TXT (6):
1552
+ TXT
1553
+ CSV (7):
1554
+ CSV
1374
1555
  """
1375
1556
  BYTE_ITEM_TYPE_UNSPECIFIED = 0
1376
1557
  PLAINTEXT_UTF8 = 1
@@ -1378,6 +1559,8 @@ class ByteDataItem(proto.Message):
1378
1559
  WORD_DOCUMENT = 3
1379
1560
  EXCEL_DOCUMENT = 4
1380
1561
  POWERPOINT_DOCUMENT = 5
1562
+ TXT = 6
1563
+ CSV = 7
1381
1564
 
1382
1565
  byte_data_type: ByteItemType = proto.Field(
1383
1566
  proto.ENUM,
@@ -20,6 +20,7 @@ __version__ = package_version.__version__
20
20
 
21
21
  from .services.model_armor import ModelArmorAsyncClient, ModelArmorClient
22
22
  from .types.service import (
23
+ AiPlatformFloorSetting,
23
24
  ByteDataItem,
24
25
  CreateTemplateRequest,
25
26
  CsamFilterResult,
@@ -68,6 +69,7 @@ from .types.service import (
68
69
 
69
70
  __all__ = (
70
71
  "ModelArmorAsyncClient",
72
+ "AiPlatformFloorSetting",
71
73
  "ByteDataItem",
72
74
  "CreateTemplateRequest",
73
75
  "CsamFilterResult",
@@ -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.2.5" # {x-release-please-version}
16
+ __version__ = "0.2.7" # {x-release-please-version}
@@ -14,6 +14,7 @@
14
14
  # limitations under the License.
15
15
  #
16
16
  from .service import (
17
+ AiPlatformFloorSetting,
17
18
  ByteDataItem,
18
19
  CreateTemplateRequest,
19
20
  CsamFilterResult,
@@ -33,6 +34,7 @@ from .service import (
33
34
  MaliciousUriFilterResult,
34
35
  MaliciousUriFilterSettings,
35
36
  MessageItem,
37
+ MultiLanguageDetectionMetadata,
36
38
  PiAndJailbreakFilterResult,
37
39
  PiAndJailbreakFilterSettings,
38
40
  RaiFilterResult,
@@ -60,6 +62,7 @@ from .service import (
60
62
  )
61
63
 
62
64
  __all__ = (
65
+ "AiPlatformFloorSetting",
63
66
  "ByteDataItem",
64
67
  "CreateTemplateRequest",
65
68
  "CsamFilterResult",
@@ -75,6 +78,7 @@ __all__ = (
75
78
  "MaliciousUriFilterResult",
76
79
  "MaliciousUriFilterSettings",
77
80
  "MessageItem",
81
+ "MultiLanguageDetectionMetadata",
78
82
  "PiAndJailbreakFilterResult",
79
83
  "PiAndJailbreakFilterSettings",
80
84
  "RaiFilterResult",
@@ -32,6 +32,7 @@ __protobuf__ = proto.module(
32
32
  "InvocationResult",
33
33
  "Template",
34
34
  "FloorSetting",
35
+ "AiPlatformFloorSetting",
35
36
  "ListTemplatesRequest",
36
37
  "ListTemplatesResponse",
37
38
  "GetTemplateRequest",
@@ -246,8 +247,46 @@ class Template(proto.Message):
246
247
  operations.
247
248
  log_sanitize_operations (bool):
248
249
  Optional. If true, log sanitize operations.
250
+ enforcement_type (google.cloud.modelarmor_v1beta.types.Template.TemplateMetadata.EnforcementType):
251
+ Optional. Enforcement type for Model Armor
252
+ filters.
253
+ multi_language_detection (google.cloud.modelarmor_v1beta.types.Template.TemplateMetadata.MultiLanguageDetection):
254
+ Optional. Metadata for multi language
255
+ detection.
249
256
  """
250
257
 
258
+ class EnforcementType(proto.Enum):
259
+ r"""Enforcement type for Model Armor filters.
260
+
261
+ Values:
262
+ ENFORCEMENT_TYPE_UNSPECIFIED (0):
263
+ Default value. Same as INSPECT_AND_BLOCK.
264
+ INSPECT_ONLY (1):
265
+ Model Armor filters will run in inspect only
266
+ mode. No action will be taken on the request.
267
+ INSPECT_AND_BLOCK (2):
268
+ Model Armor filters will run in inspect and
269
+ block mode. Requests that trip Model Armor
270
+ filters will be blocked.
271
+ """
272
+ ENFORCEMENT_TYPE_UNSPECIFIED = 0
273
+ INSPECT_ONLY = 1
274
+ INSPECT_AND_BLOCK = 2
275
+
276
+ class MultiLanguageDetection(proto.Message):
277
+ r"""Metadata to enable multi language detection via template.
278
+
279
+ Attributes:
280
+ enable_multi_language_detection (bool):
281
+ Required. If true, multi language detection
282
+ will be enabled.
283
+ """
284
+
285
+ enable_multi_language_detection: bool = proto.Field(
286
+ proto.BOOL,
287
+ number=1,
288
+ )
289
+
251
290
  ignore_partial_invocation_failures: bool = proto.Field(
252
291
  proto.BOOL,
253
292
  number=1,
@@ -276,6 +315,18 @@ class Template(proto.Message):
276
315
  proto.BOOL,
277
316
  number=7,
278
317
  )
318
+ enforcement_type: "Template.TemplateMetadata.EnforcementType" = proto.Field(
319
+ proto.ENUM,
320
+ number=8,
321
+ enum="Template.TemplateMetadata.EnforcementType",
322
+ )
323
+ multi_language_detection: "Template.TemplateMetadata.MultiLanguageDetection" = (
324
+ proto.Field(
325
+ proto.MESSAGE,
326
+ number=9,
327
+ message="Template.TemplateMetadata.MultiLanguageDetection",
328
+ )
329
+ )
279
330
 
280
331
  name: str = proto.Field(
281
332
  proto.STRING,
@@ -326,8 +377,32 @@ class FloorSetting(proto.Message):
326
377
  Optional. Floor Settings enforcement status.
327
378
 
328
379
  This field is a member of `oneof`_ ``_enable_floor_setting_enforcement``.
380
+ integrated_services (MutableSequence[google.cloud.modelarmor_v1beta.types.FloorSetting.IntegratedService]):
381
+ Optional. List of integrated services for
382
+ which the floor setting is applicable.
383
+ ai_platform_floor_setting (google.cloud.modelarmor_v1beta.types.AiPlatformFloorSetting):
384
+ Optional. AI Platform floor setting.
385
+
386
+ This field is a member of `oneof`_ ``_ai_platform_floor_setting``.
387
+ floor_setting_metadata (google.cloud.modelarmor_v1beta.types.FloorSetting.FloorSettingMetadata):
388
+ Optional. Metadata for FloorSetting
329
389
  """
330
390
 
391
+ class IntegratedService(proto.Enum):
392
+ r"""Integrated service for which the floor setting is applicable.
393
+
394
+ Values:
395
+ INTEGRATED_SERVICE_UNSPECIFIED (0):
396
+ Unspecified integrated service.
397
+ AI_PLATFORM (1):
398
+ AI Platform.
399
+ """
400
+ INTEGRATED_SERVICE_UNSPECIFIED = 0
401
+ AI_PLATFORM = 1
402
+
403
+ class FloorSettingMetadata(proto.Message):
404
+ r"""message describing FloorSetting Metadata"""
405
+
331
406
  name: str = proto.Field(
332
407
  proto.STRING,
333
408
  number=1,
@@ -352,6 +427,66 @@ class FloorSetting(proto.Message):
352
427
  number=5,
353
428
  optional=True,
354
429
  )
430
+ integrated_services: MutableSequence[IntegratedService] = proto.RepeatedField(
431
+ proto.ENUM,
432
+ number=6,
433
+ enum=IntegratedService,
434
+ )
435
+ ai_platform_floor_setting: "AiPlatformFloorSetting" = proto.Field(
436
+ proto.MESSAGE,
437
+ number=7,
438
+ optional=True,
439
+ message="AiPlatformFloorSetting",
440
+ )
441
+ floor_setting_metadata: FloorSettingMetadata = proto.Field(
442
+ proto.MESSAGE,
443
+ number=8,
444
+ message=FloorSettingMetadata,
445
+ )
446
+
447
+
448
+ class AiPlatformFloorSetting(proto.Message):
449
+ r"""message describing AiPlatformFloorSetting
450
+
451
+ This message has `oneof`_ fields (mutually exclusive fields).
452
+ For each oneof, at most one member field can be set at the same time.
453
+ Setting any member of the oneof automatically clears all other
454
+ members.
455
+
456
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
457
+
458
+ Attributes:
459
+ inspect_only (bool):
460
+ Optional. If true, Model Armor filters will
461
+ be run in inspect only mode. No action will be
462
+ taken on the request.
463
+
464
+ This field is a member of `oneof`_ ``enforcement_type``.
465
+ inspect_and_block (bool):
466
+ Optional. If true, Model Armor filters will
467
+ be run in inspect and block mode. Requests that
468
+ trip Model Armor filters will be blocked.
469
+
470
+ This field is a member of `oneof`_ ``enforcement_type``.
471
+ enable_cloud_logging (bool):
472
+ Optional. If true, log Model Armor filter
473
+ results to Cloud Logging.
474
+ """
475
+
476
+ inspect_only: bool = proto.Field(
477
+ proto.BOOL,
478
+ number=1,
479
+ oneof="enforcement_type",
480
+ )
481
+ inspect_and_block: bool = proto.Field(
482
+ proto.BOOL,
483
+ number=2,
484
+ oneof="enforcement_type",
485
+ )
486
+ enable_cloud_logging: bool = proto.Field(
487
+ proto.BOOL,
488
+ number=3,
489
+ )
355
490
 
356
491
 
357
492
  class ListTemplatesRequest(proto.Message):
@@ -910,6 +1045,9 @@ class SanitizeUserPromptRequest(proto.Message):
910
1045
  name=projects/sample-project/locations/us-central1/templates/templ01
911
1046
  user_prompt_data (google.cloud.modelarmor_v1beta.types.DataItem):
912
1047
  Required. User prompt data to sanitize.
1048
+ multi_language_detection_metadata (google.cloud.modelarmor_v1beta.types.MultiLanguageDetectionMetadata):
1049
+ Optional. Metadata related to Multi Language
1050
+ Detection.
913
1051
  """
914
1052
 
915
1053
  name: str = proto.Field(
@@ -921,6 +1059,11 @@ class SanitizeUserPromptRequest(proto.Message):
921
1059
  number=2,
922
1060
  message="DataItem",
923
1061
  )
1062
+ multi_language_detection_metadata: "MultiLanguageDetectionMetadata" = proto.Field(
1063
+ proto.MESSAGE,
1064
+ number=6,
1065
+ message="MultiLanguageDetectionMetadata",
1066
+ )
924
1067
 
925
1068
 
926
1069
  class SanitizeModelResponseRequest(proto.Message):
@@ -937,7 +1080,8 @@ class SanitizeModelResponseRequest(proto.Message):
937
1080
  Optional. User Prompt associated with Model
938
1081
  response.
939
1082
  multi_language_detection_metadata (google.cloud.modelarmor_v1beta.types.MultiLanguageDetectionMetadata):
940
- Optional. Metadata related for Translations.
1083
+ Optional. Metadata related for multi language
1084
+ detection.
941
1085
  """
942
1086
 
943
1087
  name: str = proto.Field(
@@ -1074,7 +1218,28 @@ class SanitizationResult(proto.Message):
1074
1218
 
1075
1219
 
1076
1220
  class MultiLanguageDetectionMetadata(proto.Message):
1077
- r"""Message for Translation Support."""
1221
+ r"""Message for Enabling Multi Language Detection.
1222
+
1223
+ Attributes:
1224
+ source_language (str):
1225
+ Optional. Optional Source language of the
1226
+ user prompt.
1227
+ If multi-language detection is enabled but
1228
+ language is not set in that case we would
1229
+ automatically detect the source language.
1230
+ enable_multi_language_detection (bool):
1231
+ Optional. Enable detection of multi-language
1232
+ prompts and responses.
1233
+ """
1234
+
1235
+ source_language: str = proto.Field(
1236
+ proto.STRING,
1237
+ number=1,
1238
+ )
1239
+ enable_multi_language_detection: bool = proto.Field(
1240
+ proto.BOOL,
1241
+ number=2,
1242
+ )
1078
1243
 
1079
1244
 
1080
1245
  class FilterResult(proto.Message):
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: google-cloud-modelarmor
3
- Version: 0.2.5
3
+ Version: 0.2.7
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
@@ -28,6 +28,17 @@ Requires-Dist: google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
28
28
  Requires-Dist: proto-plus<2.0.0,>=1.22.3
29
29
  Requires-Dist: proto-plus<2.0.0,>=1.25.0; python_version >= "3.13"
30
30
  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
+ Dynamic: author
32
+ Dynamic: author-email
33
+ Dynamic: classifier
34
+ Dynamic: description
35
+ Dynamic: home-page
36
+ Dynamic: license
37
+ Dynamic: license-file
38
+ Dynamic: platform
39
+ Dynamic: requires-dist
40
+ Dynamic: requires-python
41
+ Dynamic: summary
31
42
 
32
43
  Python Client for Model Armor API
33
44
  =================================
@@ -2920,6 +2920,7 @@ def test_get_floor_setting(request_type, transport: str = "grpc"):
2920
2920
  call.return_value = service.FloorSetting(
2921
2921
  name="name_value",
2922
2922
  enable_floor_setting_enforcement=True,
2923
+ integrated_services=[service.FloorSetting.IntegratedService.AI_PLATFORM],
2923
2924
  )
2924
2925
  response = client.get_floor_setting(request)
2925
2926
 
@@ -2933,6 +2934,9 @@ def test_get_floor_setting(request_type, transport: str = "grpc"):
2933
2934
  assert isinstance(response, service.FloorSetting)
2934
2935
  assert response.name == "name_value"
2935
2936
  assert response.enable_floor_setting_enforcement is True
2937
+ assert response.integrated_services == [
2938
+ service.FloorSetting.IntegratedService.AI_PLATFORM
2939
+ ]
2936
2940
 
2937
2941
 
2938
2942
  def test_get_floor_setting_non_empty_request_with_auto_populated_field():
@@ -3066,6 +3070,9 @@ async def test_get_floor_setting_async(
3066
3070
  service.FloorSetting(
3067
3071
  name="name_value",
3068
3072
  enable_floor_setting_enforcement=True,
3073
+ integrated_services=[
3074
+ service.FloorSetting.IntegratedService.AI_PLATFORM
3075
+ ],
3069
3076
  )
3070
3077
  )
3071
3078
  response = await client.get_floor_setting(request)
@@ -3080,6 +3087,9 @@ async def test_get_floor_setting_async(
3080
3087
  assert isinstance(response, service.FloorSetting)
3081
3088
  assert response.name == "name_value"
3082
3089
  assert response.enable_floor_setting_enforcement is True
3090
+ assert response.integrated_services == [
3091
+ service.FloorSetting.IntegratedService.AI_PLATFORM
3092
+ ]
3083
3093
 
3084
3094
 
3085
3095
  @pytest.mark.asyncio
@@ -3263,6 +3273,7 @@ def test_update_floor_setting(request_type, transport: str = "grpc"):
3263
3273
  call.return_value = service.FloorSetting(
3264
3274
  name="name_value",
3265
3275
  enable_floor_setting_enforcement=True,
3276
+ integrated_services=[service.FloorSetting.IntegratedService.AI_PLATFORM],
3266
3277
  )
3267
3278
  response = client.update_floor_setting(request)
3268
3279
 
@@ -3276,6 +3287,9 @@ def test_update_floor_setting(request_type, transport: str = "grpc"):
3276
3287
  assert isinstance(response, service.FloorSetting)
3277
3288
  assert response.name == "name_value"
3278
3289
  assert response.enable_floor_setting_enforcement is True
3290
+ assert response.integrated_services == [
3291
+ service.FloorSetting.IntegratedService.AI_PLATFORM
3292
+ ]
3279
3293
 
3280
3294
 
3281
3295
  def test_update_floor_setting_non_empty_request_with_auto_populated_field():
@@ -3407,6 +3421,9 @@ async def test_update_floor_setting_async(
3407
3421
  service.FloorSetting(
3408
3422
  name="name_value",
3409
3423
  enable_floor_setting_enforcement=True,
3424
+ integrated_services=[
3425
+ service.FloorSetting.IntegratedService.AI_PLATFORM
3426
+ ],
3410
3427
  )
3411
3428
  )
3412
3429
  response = await client.update_floor_setting(request)
@@ -3421,6 +3438,9 @@ async def test_update_floor_setting_async(
3421
3438
  assert isinstance(response, service.FloorSetting)
3422
3439
  assert response.name == "name_value"
3423
3440
  assert response.enable_floor_setting_enforcement is True
3441
+ assert response.integrated_services == [
3442
+ service.FloorSetting.IntegratedService.AI_PLATFORM
3443
+ ]
3424
3444
 
3425
3445
 
3426
3446
  @pytest.mark.asyncio
@@ -6209,6 +6229,9 @@ async def test_get_floor_setting_empty_call_grpc_asyncio():
6209
6229
  service.FloorSetting(
6210
6230
  name="name_value",
6211
6231
  enable_floor_setting_enforcement=True,
6232
+ integrated_services=[
6233
+ service.FloorSetting.IntegratedService.AI_PLATFORM
6234
+ ],
6212
6235
  )
6213
6236
  )
6214
6237
  await client.get_floor_setting(request=None)
@@ -6239,6 +6262,9 @@ async def test_update_floor_setting_empty_call_grpc_asyncio():
6239
6262
  service.FloorSetting(
6240
6263
  name="name_value",
6241
6264
  enable_floor_setting_enforcement=True,
6265
+ integrated_services=[
6266
+ service.FloorSetting.IntegratedService.AI_PLATFORM
6267
+ ],
6242
6268
  )
6243
6269
  )
6244
6270
  await client.update_floor_setting(request=None)
@@ -6629,6 +6655,8 @@ def test_create_template_rest_call_success(request_type):
6629
6655
  "custom_llm_response_safety_error_message": "custom_llm_response_safety_error_message_value",
6630
6656
  "log_template_operations": True,
6631
6657
  "log_sanitize_operations": True,
6658
+ "enforcement_type": 1,
6659
+ "multi_language_detection": {"enable_multi_language_detection": True},
6632
6660
  },
6633
6661
  }
6634
6662
  # The version of a generated dependency at test runtime may differ from the version used during generation.
@@ -6855,6 +6883,8 @@ def test_update_template_rest_call_success(request_type):
6855
6883
  "custom_llm_response_safety_error_message": "custom_llm_response_safety_error_message_value",
6856
6884
  "log_template_operations": True,
6857
6885
  "log_sanitize_operations": True,
6886
+ "enforcement_type": 1,
6887
+ "multi_language_detection": {"enable_multi_language_detection": True},
6858
6888
  },
6859
6889
  }
6860
6890
  # The version of a generated dependency at test runtime may differ from the version used during generation.
@@ -7162,6 +7192,7 @@ def test_get_floor_setting_rest_call_success(request_type):
7162
7192
  return_value = service.FloorSetting(
7163
7193
  name="name_value",
7164
7194
  enable_floor_setting_enforcement=True,
7195
+ integrated_services=[service.FloorSetting.IntegratedService.AI_PLATFORM],
7165
7196
  )
7166
7197
 
7167
7198
  # Wrap the value into a proper Response obj
@@ -7180,6 +7211,9 @@ def test_get_floor_setting_rest_call_success(request_type):
7180
7211
  assert isinstance(response, service.FloorSetting)
7181
7212
  assert response.name == "name_value"
7182
7213
  assert response.enable_floor_setting_enforcement is True
7214
+ assert response.integrated_services == [
7215
+ service.FloorSetting.IntegratedService.AI_PLATFORM
7216
+ ]
7183
7217
 
7184
7218
 
7185
7219
  @pytest.mark.parametrize("null_interceptor", [True, False])
@@ -7307,6 +7341,13 @@ def test_update_floor_setting_rest_call_success(request_type):
7307
7341
  "malicious_uri_filter_settings": {"filter_enforcement": 1},
7308
7342
  },
7309
7343
  "enable_floor_setting_enforcement": True,
7344
+ "integrated_services": [1],
7345
+ "ai_platform_floor_setting": {
7346
+ "inspect_only": True,
7347
+ "inspect_and_block": True,
7348
+ "enable_cloud_logging": True,
7349
+ },
7350
+ "floor_setting_metadata": {},
7310
7351
  }
7311
7352
  # The version of a generated dependency at test runtime may differ from the version used during generation.
7312
7353
  # Delete any fields which are not present in the current runtime dependency
@@ -7383,6 +7424,7 @@ def test_update_floor_setting_rest_call_success(request_type):
7383
7424
  return_value = service.FloorSetting(
7384
7425
  name="name_value",
7385
7426
  enable_floor_setting_enforcement=True,
7427
+ integrated_services=[service.FloorSetting.IntegratedService.AI_PLATFORM],
7386
7428
  )
7387
7429
 
7388
7430
  # Wrap the value into a proper Response obj
@@ -7401,6 +7443,9 @@ def test_update_floor_setting_rest_call_success(request_type):
7401
7443
  assert isinstance(response, service.FloorSetting)
7402
7444
  assert response.name == "name_value"
7403
7445
  assert response.enable_floor_setting_enforcement is True
7446
+ assert response.integrated_services == [
7447
+ service.FloorSetting.IntegratedService.AI_PLATFORM
7448
+ ]
7404
7449
 
7405
7450
 
7406
7451
  @pytest.mark.parametrize("null_interceptor", [True, False])
@@ -2920,6 +2920,7 @@ def test_get_floor_setting(request_type, transport: str = "grpc"):
2920
2920
  call.return_value = service.FloorSetting(
2921
2921
  name="name_value",
2922
2922
  enable_floor_setting_enforcement=True,
2923
+ integrated_services=[service.FloorSetting.IntegratedService.AI_PLATFORM],
2923
2924
  )
2924
2925
  response = client.get_floor_setting(request)
2925
2926
 
@@ -2933,6 +2934,9 @@ def test_get_floor_setting(request_type, transport: str = "grpc"):
2933
2934
  assert isinstance(response, service.FloorSetting)
2934
2935
  assert response.name == "name_value"
2935
2936
  assert response.enable_floor_setting_enforcement is True
2937
+ assert response.integrated_services == [
2938
+ service.FloorSetting.IntegratedService.AI_PLATFORM
2939
+ ]
2936
2940
 
2937
2941
 
2938
2942
  def test_get_floor_setting_non_empty_request_with_auto_populated_field():
@@ -3066,6 +3070,9 @@ async def test_get_floor_setting_async(
3066
3070
  service.FloorSetting(
3067
3071
  name="name_value",
3068
3072
  enable_floor_setting_enforcement=True,
3073
+ integrated_services=[
3074
+ service.FloorSetting.IntegratedService.AI_PLATFORM
3075
+ ],
3069
3076
  )
3070
3077
  )
3071
3078
  response = await client.get_floor_setting(request)
@@ -3080,6 +3087,9 @@ async def test_get_floor_setting_async(
3080
3087
  assert isinstance(response, service.FloorSetting)
3081
3088
  assert response.name == "name_value"
3082
3089
  assert response.enable_floor_setting_enforcement is True
3090
+ assert response.integrated_services == [
3091
+ service.FloorSetting.IntegratedService.AI_PLATFORM
3092
+ ]
3083
3093
 
3084
3094
 
3085
3095
  @pytest.mark.asyncio
@@ -3263,6 +3273,7 @@ def test_update_floor_setting(request_type, transport: str = "grpc"):
3263
3273
  call.return_value = service.FloorSetting(
3264
3274
  name="name_value",
3265
3275
  enable_floor_setting_enforcement=True,
3276
+ integrated_services=[service.FloorSetting.IntegratedService.AI_PLATFORM],
3266
3277
  )
3267
3278
  response = client.update_floor_setting(request)
3268
3279
 
@@ -3276,6 +3287,9 @@ def test_update_floor_setting(request_type, transport: str = "grpc"):
3276
3287
  assert isinstance(response, service.FloorSetting)
3277
3288
  assert response.name == "name_value"
3278
3289
  assert response.enable_floor_setting_enforcement is True
3290
+ assert response.integrated_services == [
3291
+ service.FloorSetting.IntegratedService.AI_PLATFORM
3292
+ ]
3279
3293
 
3280
3294
 
3281
3295
  def test_update_floor_setting_non_empty_request_with_auto_populated_field():
@@ -3407,6 +3421,9 @@ async def test_update_floor_setting_async(
3407
3421
  service.FloorSetting(
3408
3422
  name="name_value",
3409
3423
  enable_floor_setting_enforcement=True,
3424
+ integrated_services=[
3425
+ service.FloorSetting.IntegratedService.AI_PLATFORM
3426
+ ],
3410
3427
  )
3411
3428
  )
3412
3429
  response = await client.update_floor_setting(request)
@@ -3421,6 +3438,9 @@ async def test_update_floor_setting_async(
3421
3438
  assert isinstance(response, service.FloorSetting)
3422
3439
  assert response.name == "name_value"
3423
3440
  assert response.enable_floor_setting_enforcement is True
3441
+ assert response.integrated_services == [
3442
+ service.FloorSetting.IntegratedService.AI_PLATFORM
3443
+ ]
3424
3444
 
3425
3445
 
3426
3446
  @pytest.mark.asyncio
@@ -6214,6 +6234,9 @@ async def test_get_floor_setting_empty_call_grpc_asyncio():
6214
6234
  service.FloorSetting(
6215
6235
  name="name_value",
6216
6236
  enable_floor_setting_enforcement=True,
6237
+ integrated_services=[
6238
+ service.FloorSetting.IntegratedService.AI_PLATFORM
6239
+ ],
6217
6240
  )
6218
6241
  )
6219
6242
  await client.get_floor_setting(request=None)
@@ -6244,6 +6267,9 @@ async def test_update_floor_setting_empty_call_grpc_asyncio():
6244
6267
  service.FloorSetting(
6245
6268
  name="name_value",
6246
6269
  enable_floor_setting_enforcement=True,
6270
+ integrated_services=[
6271
+ service.FloorSetting.IntegratedService.AI_PLATFORM
6272
+ ],
6247
6273
  )
6248
6274
  )
6249
6275
  await client.update_floor_setting(request=None)
@@ -6634,6 +6660,8 @@ def test_create_template_rest_call_success(request_type):
6634
6660
  "custom_llm_response_safety_error_message": "custom_llm_response_safety_error_message_value",
6635
6661
  "log_template_operations": True,
6636
6662
  "log_sanitize_operations": True,
6663
+ "enforcement_type": 1,
6664
+ "multi_language_detection": {"enable_multi_language_detection": True},
6637
6665
  },
6638
6666
  }
6639
6667
  # The version of a generated dependency at test runtime may differ from the version used during generation.
@@ -6860,6 +6888,8 @@ def test_update_template_rest_call_success(request_type):
6860
6888
  "custom_llm_response_safety_error_message": "custom_llm_response_safety_error_message_value",
6861
6889
  "log_template_operations": True,
6862
6890
  "log_sanitize_operations": True,
6891
+ "enforcement_type": 1,
6892
+ "multi_language_detection": {"enable_multi_language_detection": True},
6863
6893
  },
6864
6894
  }
6865
6895
  # The version of a generated dependency at test runtime may differ from the version used during generation.
@@ -7167,6 +7197,7 @@ def test_get_floor_setting_rest_call_success(request_type):
7167
7197
  return_value = service.FloorSetting(
7168
7198
  name="name_value",
7169
7199
  enable_floor_setting_enforcement=True,
7200
+ integrated_services=[service.FloorSetting.IntegratedService.AI_PLATFORM],
7170
7201
  )
7171
7202
 
7172
7203
  # Wrap the value into a proper Response obj
@@ -7185,6 +7216,9 @@ def test_get_floor_setting_rest_call_success(request_type):
7185
7216
  assert isinstance(response, service.FloorSetting)
7186
7217
  assert response.name == "name_value"
7187
7218
  assert response.enable_floor_setting_enforcement is True
7219
+ assert response.integrated_services == [
7220
+ service.FloorSetting.IntegratedService.AI_PLATFORM
7221
+ ]
7188
7222
 
7189
7223
 
7190
7224
  @pytest.mark.parametrize("null_interceptor", [True, False])
@@ -7312,6 +7346,13 @@ def test_update_floor_setting_rest_call_success(request_type):
7312
7346
  "malicious_uri_filter_settings": {"filter_enforcement": 1},
7313
7347
  },
7314
7348
  "enable_floor_setting_enforcement": True,
7349
+ "integrated_services": [1],
7350
+ "ai_platform_floor_setting": {
7351
+ "inspect_only": True,
7352
+ "inspect_and_block": True,
7353
+ "enable_cloud_logging": True,
7354
+ },
7355
+ "floor_setting_metadata": {},
7315
7356
  }
7316
7357
  # The version of a generated dependency at test runtime may differ from the version used during generation.
7317
7358
  # Delete any fields which are not present in the current runtime dependency
@@ -7388,6 +7429,7 @@ def test_update_floor_setting_rest_call_success(request_type):
7388
7429
  return_value = service.FloorSetting(
7389
7430
  name="name_value",
7390
7431
  enable_floor_setting_enforcement=True,
7432
+ integrated_services=[service.FloorSetting.IntegratedService.AI_PLATFORM],
7391
7433
  )
7392
7434
 
7393
7435
  # Wrap the value into a proper Response obj
@@ -7406,6 +7448,9 @@ def test_update_floor_setting_rest_call_success(request_type):
7406
7448
  assert isinstance(response, service.FloorSetting)
7407
7449
  assert response.name == "name_value"
7408
7450
  assert response.enable_floor_setting_enforcement is True
7451
+ assert response.integrated_services == [
7452
+ service.FloorSetting.IntegratedService.AI_PLATFORM
7453
+ ]
7409
7454
 
7410
7455
 
7411
7456
  @pytest.mark.parametrize("null_interceptor", [True, False])