
    "                     b    S r SSKJr  SS jrSS jrS rS rS rS	 rS
 r	S r
SS jrS rS rg)z$Shared resource arguments and flags.    )arg_parsersNc                 B    U R                   " [        SU5      4SU0UD6  g)z$Add full uri argument to the parser.zfull-urihelpNadd_argument
_ArgOrFlag)parser
positional	help_textkwargss       2lib/googlecloudsdk/command_lib/model_armor/args.py
AddFullUrir      s,     	Z(09>D    c                 B    U R                   " [        SU5      4SS0UD6  g)z0Enable or disable the floor setting enforcement.z enable-floor-setting-enforcementr   zEnable or disable the floor setting enforcement. Set the value to "TRUE" to enable the floor setting enforcement, "FALSE" to disable it.Nr   )r	   r
   r   s      r   AddFloorSettingEnforcementr      s1     	3Z@ 	r   c                 Z    U R                  SSS9nUR                  [        SS5      SSS9  g	)
zEAdd malicious uri filter settings enforcement argument to the parser.TzMalicious uri filter settings.mutexr   z)malicious-uri-filter-settings-enforcementF)MALICIOUS_URI_FILTER_SETTINGS_ENFORCEMENTzMalicious URI filter settings.metavarr   N	add_groupr   r   r	   groups     r   (AddMaliciousUriFilterSettingsEnforcementr   +   s<    


,L

M%<eD9+  r   c                     U R                  SSS9nUR                  [        SS5      SSS9  UR                  [        SS5      S	S
S9  g)z:Add flags for specifying pi and jailbreak filter settings.Fz!PI and jailbreak filter settings.r   z,pi-and-jailbreak-filter-settings-enforcement,PI_AND_JAILBREAK_FILTER_SETTINGS_ENFORCEMENTz`The pi and jailbreak filter settings enforcement. The value can be either "enable" or "disable".r   z1pi-and-jailbreak-filter-settings-confidence-level1PI_AND_JAILBREAK_FILTER_SETTINGS_CONFIDENCE_LEVELz|The pi and jailbreak filter settings confidence level. The value can be either "high", "medium-and-above" or "low-and-above"Nr   r   s     r   AddPIJBFilterSettingsGroupr    5   sn    


;  % ?G<+	   DeLAE	  r   c                     U R                  SSS9nUR                  [        SS5      SSS9  UR                  [        SS5      S	S
S9  UR                  [        SS5      SSS9  g)z-Add flags for specifying sdp filter settings.FzSDP filter settings.r   zbasic-config-filter-enforcementBASIC_CONFIG_FILTER_ENFORCEMENTzUThe sdp filter settings enforcement. The value can be either `ENABLED` or `DISABLED`.r   z advanced-config-inspect-template ADVANCED_CONFIG_INSPECT_TEMPLATEzThe sdp filter settings enforcement. The value has to be a valid template name. e.g. `projects/{project}/locations/{location}/inspectTemplates/{inspect_template}`z#advanced-config-deidentify-template#ADVANCED_CONFIG_DEIDENTIFY_TEMPLATEzThe sdp filter settings enforcement. The value has to be a valid template name. e.g. `projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}`Nr   r   s     r   AddSDPFilterBasicConfigGroupr%   L   s    


-C

D%2E:/&	   3U;0[	   6>3a	  r   c                    U R                  SSS9nUR                  [        SS5      S[        R                  " SS9[        R
                  " 5       SS	9  UR                  [        S
S5      S[        R                  " SS9[        R
                  " 5       SS	9  UR                  [        SS5      S[        R                  " SS9[        R
                  " 5       SS	9  UR                  [        SS5      SSS9  g)z-Add flags for specifying rai filter settings.TzRAI filter settings.r   zrai-settings-filtersFz8confidenceLevel=CONFIDENCELEVEL],[filterType=FILTERTYPE])repeatedz_Set rai_settings_filters to new value. List of Responsible AI filters enabled for floor setting)r   typeactionr   zadd-rai-settings-filterszAdd rai filter settings.zremove-rai-settings-filterszRemove rai filter settings.zclear-rai-settings-filters
store_truezClear all rai filter settings.r)   r   N)r   r   r   r   	ArgObjectFlattenActionr   s     r   AddRaiFilterSettingsGroupr.   k   s    


,B

C%'/H  $/&&(/  	 +U3H  $/&&(%   .6H  $/&&((   -u5+  r   c                    U R                  SSS9nUR                  [        SS5      S[        R                  " 5       SS9  UR                  [        S	S5      S[        R                  " 5       S
S9  UR                  [        SS5      SSS9  g)z-Add flags for specifying integrated services.TzManage integrated services to apply Model Armor floor settings. Integrated services will have Model Armor sanitization enabled project-wide.r   zadd-integrated-servicesFINTEGRATED_SERVICEzSet the list of integrated services for the floor setting. This can be used to enable project-wide Model Armor sanitization for the respective services.)r   r(   r   zremove-integrated-serviceszARemove specified service(s) from the list of integrated services.zclear-integrated-servicesr*   z5Clear all integrated services from the floor setting.r+   N)r   r   r   r   ArgListr   s     r   AddIntegratedServicesr2      s    


  % *E2" "  	 -u5" N	   ,e4B  r   c                     U R                  SSS9nUR                  SSS[        R                  S9  UR                  [	        SS5      S	S
S9  g)z1Add flags for specifying vertex ai floor setting.Fz#Options for Vertex AI sanitization.r   z --enable-vertex-ai-cloud-loggingenable_vertex_ai_cloud_loggingzXEnable Cloud Logging for Vertex AI sanitization to log Model Armor sanitization results.destr   r)   zvertex-ai-enforcement-typevertex_ai_enforcement_typezSpecifies the enforcement mode for Vertex AI sanitization, such as "INSPECT_ONLY" or "INSPECT_AND_BLOCK". Default is "INSPECT_ONLY".r6   r   Nr   r   r   StoreTrueFalseActionr   r   s     r   AddVertexAiFloorSettingr;      sp    


=  % (+) --   -u5'(	  r   c                     U R                  SSS9nUR                  SSS[        R                  S9  UR                  [	        SS5      S	S
S9  g)z9Add flags for specifying Google MCP server floor setting.Fz+Options for Google MCP server sanitization.r   z(--enable-google-mcp-server-cloud-logging&enable_google_mcp_server_cloud_loggingz`Enable Cloud Logging for Google MCP server sanitization to log Model Armor sanitization results.r5   z"google-mcp-server-enforcement-type"google_mcp_server_enforcement_typezSpecifies the enforcement mode for Google MCP server sanitization, such as "INSPECT_ONLY" or "INSPECT_AND_BLOCK". Default is "INSPECT_ONLY".r8   Nr9   r   s     r   AddGoogleMcpServerFloorSettingr?      sp    


E  % 03/ --   5u=/	  r   c                 d    U R                  SSS9nUR                  SSS[        R                  S9  g)	z2Add flags for specifying multi language detection.Fz$Multi language detection enablement.r   z!--enable-multi-language-detectionenable_multi_language_detectionzqEnable multi-language detection for floor setting, allowing Model Armor to process content in multiple languages.r5   N)r   r   r   r:   r   s     r   AddMultiLanguageDetectionrB      sH    


>  % ),= --  r   c                 r    U(       a   U R                  5       R                  SS5      $ SR                  U 5      $ )zReturns the argument name in resource argument format or flag format.

Args:
    name (str): name of the argument
    positional (bool): whether the argument is positional

Returns:
    arg (str): the argument or flag
-_z--{})upperreplaceformat)namer
   s     r   r   r      s/     ::<S))	t	r   )FN)F)returnN)__doc__googlecloudsdk.callioper   r   r   r   r    r%   r.   r2   r;   r?   rB   r    r   r   <module>rN      sH    + 0.>DB22 r   