Skip to content

Commit ff62c3b

Browse files
Add policy-based challenge fields to RecaptchaEnterprise Key (#17336) (#12131)
[upstream:4154e26ff36ac7b0b467384c65388f54a213e008] Signed-off-by: Modular Magician <[email protected]>
1 parent cf994d6 commit ff62c3b

7 files changed

Lines changed: 941 additions & 3 deletions

File tree

.changelog/17336.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
recaptchaenterprise: added `POLICY_BASED_CHALLENGE` `intergration_type` and `challenge_settings` to `google_recaptcha_enterprise_key`
3+
```

google-beta/services/recaptchaenterprise/key.go

Lines changed: 123 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func (v KeyWebSettingsIntegrationTypeEnum) Validate() error {
5959
// Empty enum is okay.
6060
return nil
6161
}
62-
for _, s := range []string{"SCORE", "CHECKBOX", "INVISIBLE"} {
62+
for _, s := range []string{"SCORE", "CHECKBOX", "INVISIBLE", "POLICY_BASED_CHALLENGE"} {
6363
if string(v) == s {
6464
return nil
6565
}
@@ -186,6 +186,7 @@ type KeyWebSettings struct {
186186
AllowAmpTraffic *bool `json:"allowAmpTraffic"`
187187
IntegrationType *KeyWebSettingsIntegrationTypeEnum `json:"integrationType"`
188188
ChallengeSecurityPreference *KeyWebSettingsChallengeSecurityPreferenceEnum `json:"challengeSecurityPreference"`
189+
ChallengeSettings *KeyWebSettingsChallengeSettings `json:"challengeSettings"`
189190
}
190191

191192
type jsonKeyWebSettings KeyWebSettings
@@ -213,6 +214,8 @@ func (r *KeyWebSettings) UnmarshalJSON(data []byte) error {
213214

214215
r.ChallengeSecurityPreference = res.ChallengeSecurityPreference
215216

217+
r.ChallengeSettings = res.ChallengeSettings
218+
216219
}
217220
return nil
218221
}
@@ -237,6 +240,125 @@ func (r *KeyWebSettings) HashCode() string {
237240
return fmt.Sprintf("%x", hash)
238241
}
239242

243+
type KeyWebSettingsChallengeSettings struct {
244+
empty bool `json:"-"`
245+
DefaultSettings *KeyWebSettingsChallengeSettingsDefaultSettings `json:"defaultSettings"`
246+
ActionSettings map[string]KeyWebSettingsChallengeSettingsActionSettings `json:"actionSettings"`
247+
}
248+
249+
type jsonKeyWebSettingsChallengeSettings KeyWebSettingsChallengeSettings
250+
251+
func (r *KeyWebSettingsChallengeSettings) UnmarshalJSON(data []byte) error {
252+
var res jsonKeyWebSettingsChallengeSettings
253+
if err := json.Unmarshal(data, &res); err != nil {
254+
return err
255+
}
256+
257+
var m map[string]interface{}
258+
json.Unmarshal(data, &m)
259+
260+
if len(m) == 0 {
261+
*r = *EmptyKeyWebSettingsChallengeSettings
262+
} else {
263+
r.DefaultSettings = res.DefaultSettings
264+
r.ActionSettings = res.ActionSettings
265+
}
266+
return nil
267+
}
268+
269+
var EmptyKeyWebSettingsChallengeSettings *KeyWebSettingsChallengeSettings = &KeyWebSettingsChallengeSettings{empty: true}
270+
271+
func (r *KeyWebSettingsChallengeSettings) Empty() bool {
272+
return r.empty
273+
}
274+
275+
func (r *KeyWebSettingsChallengeSettings) String() string {
276+
return dcl.SprintResource(r)
277+
}
278+
279+
func (r *KeyWebSettingsChallengeSettings) HashCode() string {
280+
hash := sha256.Sum256([]byte(r.String()))
281+
return fmt.Sprintf("%x", hash)
282+
}
283+
284+
type KeyWebSettingsChallengeSettingsDefaultSettings struct {
285+
empty bool `json:"-"`
286+
ScoreThreshold *float64 `json:"scoreThreshold"`
287+
}
288+
289+
type jsonKeyWebSettingsChallengeSettingsDefaultSettings KeyWebSettingsChallengeSettingsDefaultSettings
290+
291+
func (r *KeyWebSettingsChallengeSettingsDefaultSettings) UnmarshalJSON(data []byte) error {
292+
var res jsonKeyWebSettingsChallengeSettingsDefaultSettings
293+
if err := json.Unmarshal(data, &res); err != nil {
294+
return err
295+
}
296+
297+
var m map[string]interface{}
298+
json.Unmarshal(data, &m)
299+
300+
if len(m) == 0 {
301+
*r = *EmptyKeyWebSettingsChallengeSettingsDefaultSettings
302+
} else {
303+
r.ScoreThreshold = res.ScoreThreshold
304+
}
305+
return nil
306+
}
307+
308+
var EmptyKeyWebSettingsChallengeSettingsDefaultSettings *KeyWebSettingsChallengeSettingsDefaultSettings = &KeyWebSettingsChallengeSettingsDefaultSettings{empty: true}
309+
310+
func (r *KeyWebSettingsChallengeSettingsDefaultSettings) Empty() bool {
311+
return r.empty
312+
}
313+
314+
func (r *KeyWebSettingsChallengeSettingsDefaultSettings) String() string {
315+
return dcl.SprintResource(r)
316+
}
317+
318+
func (r *KeyWebSettingsChallengeSettingsDefaultSettings) HashCode() string {
319+
hash := sha256.Sum256([]byte(r.String()))
320+
return fmt.Sprintf("%x", hash)
321+
}
322+
323+
type KeyWebSettingsChallengeSettingsActionSettings struct {
324+
empty bool `json:"-"`
325+
ScoreThreshold *float64 `json:"scoreThreshold"`
326+
}
327+
328+
type jsonKeyWebSettingsChallengeSettingsActionSettings KeyWebSettingsChallengeSettingsActionSettings
329+
330+
func (r *KeyWebSettingsChallengeSettingsActionSettings) UnmarshalJSON(data []byte) error {
331+
var res jsonKeyWebSettingsChallengeSettingsActionSettings
332+
if err := json.Unmarshal(data, &res); err != nil {
333+
return err
334+
}
335+
336+
var m map[string]interface{}
337+
json.Unmarshal(data, &m)
338+
339+
if len(m) == 0 {
340+
*r = *EmptyKeyWebSettingsChallengeSettingsActionSettings
341+
} else {
342+
r.ScoreThreshold = res.ScoreThreshold
343+
}
344+
return nil
345+
}
346+
347+
var EmptyKeyWebSettingsChallengeSettingsActionSettings *KeyWebSettingsChallengeSettingsActionSettings = &KeyWebSettingsChallengeSettingsActionSettings{empty: true}
348+
349+
func (r *KeyWebSettingsChallengeSettingsActionSettings) Empty() bool {
350+
return r.empty
351+
}
352+
353+
func (r *KeyWebSettingsChallengeSettingsActionSettings) String() string {
354+
return dcl.SprintResource(r)
355+
}
356+
357+
func (r *KeyWebSettingsChallengeSettingsActionSettings) HashCode() string {
358+
hash := sha256.Sum256([]byte(r.String()))
359+
return fmt.Sprintf("%x", hash)
360+
}
361+
240362
type KeyAndroidSettings struct {
241363
empty bool `json:"-"`
242364
AllowAllPackageNames *bool `json:"allowAllPackageNames"`

0 commit comments

Comments
 (0)