Skip to content

Commit 1d5cd24

Browse files
Abhi7410melinath
andauthored
feat(modelarmorglobal): Add google_mcp_server_floor_setting to FloorSetting (#15663)
Co-authored-by: Stephen Lewis (Burrows) <[email protected]>
1 parent 0ed2a76 commit 1d5cd24

File tree

2 files changed

+101
-7
lines changed

2 files changed

+101
-7
lines changed

mmv1/products/modelarmorglobal/Floorsetting.yaml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,10 +208,10 @@ properties:
208208
description: |-
209209
Possible values:
210210
AI_PLATFORM
211+
GOOGLE_MCP_SERVER
211212
- name: aiPlatformFloorSetting
212213
type: NestedObject
213214
description: AI Platform floor setting.
214-
allow_empty_object: true
215215
properties:
216216
- name: inspectOnly
217217
type: Boolean
@@ -232,6 +232,29 @@ properties:
232232
- name: enableCloudLogging
233233
type: Boolean
234234
description: If true, log Model Armor filter results to Cloud Logging.
235+
- name: googleMcpServerFloorSetting
236+
type: NestedObject
237+
description: Google MCP Server floor setting.
238+
properties:
239+
- name: inspectOnly
240+
type: Boolean
241+
description: |-
242+
If true, Model Armor filters will be run in inspect only mode. No action
243+
will be taken on the request.
244+
exactly_one_of:
245+
- google_mcp_server_floor_setting.0.inspect_only
246+
- google_mcp_server_floor_setting.0.inspect_and_block
247+
- name: inspectAndBlock
248+
type: Boolean
249+
description: |-
250+
If true, Model Armor filters will be run in inspect and block mode.
251+
Requests that trip Model Armor filters will be blocked.
252+
exactly_one_of:
253+
- google_mcp_server_floor_setting.0.inspect_only
254+
- google_mcp_server_floor_setting.0.inspect_and_block
255+
- name: enableCloudLogging
256+
type: Boolean
257+
description: If true, log Model Armor filter results to Cloud Logging.
235258
- name: floorSettingMetadata
236259
type: NestedObject
237260
description: Metadata to enable multi language detection via floor setting.

mmv1/third_party/terraform/services/modelarmorglobal/resource_model_armor_floorsetting_test.go

Lines changed: 77 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import (
55

66
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
77

8+
"github.com/hashicorp/terraform-plugin-testing/plancheck"
9+
810
"github.com/hashicorp/terraform-provider-google/google/acctest"
911

1012
"github.com/hashicorp/terraform-provider-google/google/envvar"
@@ -30,8 +32,28 @@ func TestAccModelArmorGlobalFloorsetting_update(t *testing.T) {
3032
ImportStateVerify: true,
3133
ImportStateVerifyIgnore: []string{"location", "parent"},
3234
},
35+
{
36+
// Update from inspect_only to inspect_and_block = true for both ai_platform and google_mcp_server
37+
Config: testAccModelArmorGlobalFloorsetting_enableInspectAndBlock(context),
38+
ConfigPlanChecks: resource.ConfigPlanChecks{
39+
PreApply: []plancheck.PlanCheck{
40+
plancheck.ExpectResourceAction("google_model_armor_floorsetting.test-resource", plancheck.ResourceActionUpdate),
41+
},
42+
},
43+
},
44+
{
45+
ResourceName: "google_model_armor_floorsetting.test-resource",
46+
ImportState: true,
47+
ImportStateVerify: true,
48+
ImportStateVerifyIgnore: []string{"location", "parent"},
49+
},
3350
{
3451
Config: testAccModelArmorGlobalFloorsetting_updated(context),
52+
ConfigPlanChecks: resource.ConfigPlanChecks{
53+
PreApply: []plancheck.PlanCheck{
54+
plancheck.ExpectResourceAction("google_model_armor_floorsetting.test-resource", plancheck.ResourceActionUpdate),
55+
},
56+
},
3557
},
3658
{
3759
ResourceName: "google_model_armor_floorsetting.test-resource",
@@ -72,12 +94,17 @@ resource "google_model_armor_floorsetting" "test-resource" {
7294
7395
enable_floor_setting_enforcement = true
7496
75-
integrated_services = [ "AI_PLATFORM" ]
97+
integrated_services = [ "AI_PLATFORM", "GOOGLE_MCP_SERVER" ]
7698
7799
ai_platform_floor_setting {
78100
inspect_only = true
79101
enable_cloud_logging = true
80102
}
103+
104+
google_mcp_server_floor_setting {
105+
inspect_only = true
106+
enable_cloud_logging = true
107+
}
81108
82109
floor_setting_metadata {
83110
multi_language_detection {
@@ -88,6 +115,55 @@ resource "google_model_armor_floorsetting" "test-resource" {
88115
`, context)
89116
}
90117

118+
func testAccModelArmorGlobalFloorsetting_enableInspectAndBlock(context map[string]interface{}) string {
119+
return acctest.Nprintf(`
120+
resource "google_model_armor_floorsetting" "test-resource" {
121+
location = "global"
122+
parent = "projects/%{project_id}"
123+
124+
filter_config {
125+
rai_settings {
126+
rai_filters {
127+
filter_type = "DANGEROUS"
128+
confidence_level = "LOW_AND_ABOVE"
129+
}
130+
}
131+
sdp_settings {
132+
basic_config {
133+
filter_enforcement = "ENABLED"
134+
}
135+
}
136+
pi_and_jailbreak_filter_settings {
137+
filter_enforcement = "ENABLED"
138+
confidence_level = "MEDIUM_AND_ABOVE"
139+
}
140+
malicious_uri_filter_settings {
141+
filter_enforcement = "ENABLED"
142+
}
143+
}
144+
145+
enable_floor_setting_enforcement = true
146+
integrated_services = [ "AI_PLATFORM", "GOOGLE_MCP_SERVER" ]
147+
148+
ai_platform_floor_setting {
149+
inspect_and_block = true
150+
enable_cloud_logging = true
151+
}
152+
153+
google_mcp_server_floor_setting {
154+
inspect_and_block = true
155+
enable_cloud_logging = true
156+
}
157+
158+
floor_setting_metadata {
159+
multi_language_detection {
160+
enable_multi_language_detection = true
161+
}
162+
}
163+
}
164+
`, context)
165+
}
166+
91167
func testAccModelArmorGlobalFloorsetting_updated(context map[string]interface{}) string {
92168
return acctest.Nprintf(`
93169
resource "google_model_armor_floorsetting" "test-resource" {
@@ -115,11 +191,6 @@ resource "google_model_armor_floorsetting" "test-resource" {
115191
filter_enforcement = "ENABLED"
116192
}
117193
}
118-
119-
ai_platform_floor_setting {
120-
inspect_and_block = false
121-
enable_cloud_logging = false
122-
}
123194
124195
floor_setting_metadata {
125196
multi_language_detection {

0 commit comments

Comments
 (0)