
    C                     :   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z
 ddlmZ ej                   ej                  ej                  j                   ej                  j"                  ej                  j$                         G d d	ej&                                      Zy)
z Fetch the FloorSetting resource.    N)api)base)
exceptions)args)utilc                   B    e Zd ZdZdZed        Zd Zd Zd Z	d Z
d Zy	)
Updatez_Update the FloorSetting resource.

  Updates the floor setting resource with the given name.
  z5There are no changes to the floor setting for update.c                    t        j                  | ddd       t        j                  | ddd       t        j                  |        t        j                  |        t        j
                  |        t        j                  |        y )NFTzFull uri of the floor setting)
positionalrequired	help_textz/Enable or disable the floor setting enforcement)model_armor_args
AddFullUriAddFloorSettingEnforcement(AddMaliciousUriFilterSettingsEnforcementAddPIJBFilterSettingsGroupAddSDPFilterBasicConfigGroupAddRaiFilterSettingsGroup)parsers    /lib/surface/model_armor/floorsettings/update.pyArgszUpdate.Args&   sr    1	 //C	 ==fE//711&9..v6    c                 B    |j                         j                  dd      S )N-_)upperreplace)selfvalues     r   _GetEnumValuezUpdate._GetEnumValue9   s    ;;=  c**r   c                 .   |D cg c]  }t        j                  |       c}D ]j  }|d   }|d   }t        j                  ||j                  j
                  |d|        t        j                  ||j                  j                  |d|        l y c c}w )NconfidenceLevel
filterTypeInvalid choice : )jsonloadsmodel_armor_utilValidateEnum	RaiFilterFilterTypeValueValuesEnumConfidenceLevelValueValuesEnum)r   messagesfiltersargument_namefitemconfidence_levelfilter_types           r   _validateRaiFilterSettingsz!Update._validateRaiFilterSettings<   s    (/01A0/0&k##




6
6
k]
+	 ##




;
;
./
0	 10s   Bc                    |j                   rCt        j                  |j                   |j                  j                  dd|j                           |j
                  rCt        j                  |j
                  |j                  j                  dd|j
                          |j                  rCt        j                  |j                  |j                  j                  dd|j                          |j                  rCt        j                  |j                  |j                  j                  dd|j                          |j                  r| j                  ||j                  d       |j                  r| j                  ||j                  d       |j                  r| j                  ||j                  d       |j!                  d	      r9|j!                  d
      s|j!                  d      rt#        j$                  d	d      yy)zValidate the arguments.z1pi-and-jailbreak-filter-settings-confidence-levelr$   z,pi-and-jailbreak-filter-settings-enforcementz)malicious-uri-filter-settings-enforcementzbasic-config-filter-enforcementzrai-settings-filterszadd-rai-settings-filterszremove-rai-settings-filtersbasic_config_filter_enforcement advanced_config_inspect_template#advanced_config_deidentify_templatezsdp_advanced_config_*_templateN)1pi_and_jailbreak_filter_settings_confidence_levelr'   r(   PiAndJailbreakFilterResultr+   ,pi_and_jailbreak_filter_settings_enforcementPiAndJailbreakFilterSettings FilterEnforcementValueValuesEnum)malicious_uri_filter_settings_enforcementMaliciousUriFilterSettingsr5   SdpBasicConfigrai_settings_filtersr3   add_rai_settings_filtersremove_rai_settings_filtersIsSpecifiedr   ConflictingArgumentsException)r   r,   r   s      r   _validateArgszUpdate._validateArgsM   s   ==##

@
@

-
-
L
L
=DDEG	 88##

;
;

/
/
P
P
8??@B	 55##

8
8

-
-
N
N
5dLLM
N	 ++##

.
.

!
!
B
B
+dBBC
D	   
%%
D--/E $$
%%
D113M ''
%%


*
*
'
 9:;<AB44
+-M  C ;r   c           	         t        j                  | j                               }t        j                  |      }|j	                         }| j                  ||       |}|j                  |j                         |_        g }|j                  d      s|j                  d      r|j                  d       |j                  d      r|j                  d       |j                  d      s"|j                  d      s|j                  d	      r|j                  d
       |j                  d      s3|j                  d      s"|j                  d      s|j                  d      r|j                  d       |j                  d      r|j                  d       |s<t        j                  g d| j                  j                  |j                              d|v rg }|j                  j                   |j                  j                  j                   }|j                  d      rg }|j"                  D 	cg c]  }	t%        j&                  |	       c}	D ]  }
|j(                  j+                  | j-                  |
d               }|j(                  j/                  | j-                  |
d               }|j                  |j)                  ||             |j1                  |      |j                  _         |j                  d      r,|j2                  D 	cg c]  }	t%        j&                  |	       c}	D ]  }
d}|j(                  j+                  | j-                  |
d               }|j(                  j/                  | j-                  |
d               }t5        |      D ]K  \  }}||j6                  k(  sd}|j9                  |       |j                  |j)                  ||              n |s"|j                  |j)                  ||             |j1                  |      |j                  _         |j                  d      rt%        j&                  |j:                        D ]  }
|j(                  j+                  | j-                  |
d               }|j(                  j/                  | j-                  |
d               }t5        |      D ]i  \  }}|j(                  j+                  |      |j6                  k(  s/|j(                  j/                  |      |j<                  k(  sX|j9                  |          |j                  d      rd |j                  _        d|v rd|j                  d      r| j-                  |j>                        }|j                  j@                  	 ;|jC                  |jB                  jE                  |            |j                  _         n4|jB                  jE                  |      |j                  j@                  _#        |j                  d      r| j-                  |jH                        }|j                  j@                  	 ;|jC                  |jB                  j/                  |            |j                  _         n4|jB                  j/                  |      |j                  j@                  _        d|v r|j                  d      r|j                  jJ                  	 T|jM                  |jL                  jE                  | j-                  |jN                                    |j                  _%        nM|jL                  jE                  | j-                  |jN                              |j                  jJ                  _#        d
|v r|j                  d      r|j                  jP                  d|jS                  |jU                  |jT                  jE                  | j-                  |jV                                          |j                  _(        nxd |j                  jP                  _,        |jU                  |jT                  jE                  | j-                  |jV                                    |j                  jP                  _-        |j                  d      r|j                  jP                  <|jS                  |j]                  |j^                              |j                  _(        nd |j                  jP                  _-        |j                  jP                  jX                  	 6|j]                  |j^                        |j                  jP                  _,        n/|j^                  |j                  jP                  jX                  _0        |j                  d	      r|j                  jP                  <|jS                  |j]                  |jb                              |j                  _(        nd |j                  jP                  _-        |j                  jP                  jX                  	 6|j]                  |jb                        |j                  jP                  _,        n/|jb                  |j                  jP                  jX                  _2        d|v r3|j                  d      r"|jf                  ji                         dk(  |_5        |jm                  |j                  ||       S c c}	w c c}	w )!Napi_versionr:   r8   z.filter_config.pi_and_jailbreak_filter_settingsr=   z+filter_config.malicious_uri_filter_settingsr5   r6   r7   zfilter_config.sdp_settingsrA   rB   clear_rai_settings_filtersr@   zfilter_config.rai_settings enable_floor_setting_enforcement)z.--pi-and-jailbreak-filter-settings-enforcementz3--pi-and-jailbreak-filter-settings-confidence-levelz+--malicious-uri-filter-settings-enforcementz!--basic-config-filter-enforcementz"--advanced-config-inspect-templatez%--advanced-config-deidentify-templatez--rai-settings-filtersz--add-rai-settings-filtersz--remove-rai-settings-filtersz--clear-rai-settings-filtersz"--enable-floor-setting-enforcement)floor_settingr#   r"   )r#   r"   )
raiFiltersFT)filterEnforcement)r"   )basicConfig)inspectTemplate)advancedConfig)deidentifyTemplatetrue)namerK   update_mask)7model_armor_apiGetApiFromTrackReleaseTrackFloorSettingsGetMessagesrE   filterConfigFilterConfigrC   appendr   MinimumArgumentExceptionNO_CHANGES_MESSAGEformatfull_uriraiSettingsrL   r@   r%   r&   r)   r*   r    r+   RaiFilterSettingsrA   	enumerater#   removerB   r"   r:   piAndJailbreakFilterSettingsr;   r<   rM   r8   maliciousUriFilterSettingsr>   r=   sdpSettingsSdpFilterSettingsr?   r5   rP   rN   SdpAdvancedConfigr6   rO   r7   rQ   rJ   lowerenableFloorSettingEnforcementr	   )r   originalr   rH   
api_clientr,   floor_setting_updatedrT   rai_filtersr/   r0   arg_filter_typearg_confidence_levelalready_existsr   
rai_filterr:   r8   s                     r   
_RunUpdatezUpdate._RunUpdate   s
   !11$2C2C2EFK ..;GJ%%'Hx&$))1+3+@+@+B( K6			M	NIJCDFG:;>?AB56349:892356:;;<// 
!
!
(
(t}}
(
E " ${2k		+	+	7	7	C+88DDOO			0	1,0,E,EF,EqTZZ],EFD$..HH  l!34/   ??$$T*;%<= 
 

  ,"6 !  ((K(@  
,
,
8 G$ 
		4	5,0,I,IJ,IqTZZ],IJD .$..HH  l!34/   ??$$T*;%<= 
  )5ma*"7"77#n  ,  $$!0&: %    6  "".$8 #  ((K(@  
,
,
89 K@ 
		7	8JJt??@D$..HH  l!34/   ??$$T*;%<= 
  )5ma""<<_M(()&&EE( --.
   ,  6 A( 
		6	79=**67;F			H	I7;7I7I==8
4 "..KK MULqLq ( E E f f>! Mr M

,
,
I _g  _D  _D  _e  _e:_

,
,
I
I
[ 
		M	N<@<N<NBB=
9 "..KK MULqLq&CCbbC Mr M

,
,
I ]e  ]B  ]B  ]a  ]a?]

,
,
I
I
Y 5C			E	F!..II KSJmJm ( C C d d$$DD! Kn K

,
,
G ]e\\  ]a  ]a  !O!OP]

,
,
G
G
Y ${2			;	< --99A;C;U;U"11--NN,,"BB 2  <V 
<

,
,
8 KO

,
,
8
8
GGOG^G^ ( 7 7 X X$$T%I%IJ! H_ H

,
,
8
8
D
 
		<	= --99A((!)!;!;&*&K&K "< " )   
,
,
8 HL

,
,
8
8
D#00<<KK **$($I$I +  "..::I 55 "..::IIY 
		?	@ --99A((!)!;!;)-)Q)Q "< " )   
,
,
8 HL

,
,
8
8
D#00<<KK **'+'O'O +  "..::I 88 "..::II\ *[8			<	=11779VC 	; ]]+   Y G& Ks   -k/k4c                     t        j                  | j                               }|j                  }t        j                  |      j                  |      }| j                  ||      S )NrG   )rU   rV   rW   r`   rX   Getrt   )r   r   rH   r`   rl   s        r   Runz
Update.Run  sU    !11$2C2C2EFK}}H,,EIIH ??8T**r   N)__name__
__module____qualname____doc__r^   staticmethodr   r    r3   rE   rt   rw    r   r   r	   r	      s>    

 O7 7$+"4lKZ+r   r	   )r{   r%   "googlecloudsdk.api_lib.model_armorr   rU   googlecloudsdk.callioper   r   &googlecloudsdk.command_lib.model_armorr   r   r   r'   DefaultUniverseOnlyReleaseTracksrW   ALPHABETAGACommandr	   r}   r   r   <module>r      s    '  E ( . K K T..33T5F5F5I5Ix+T\\ x+ x+r   