
    g                     b    S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  S r	S r
S	 rS
 rS rg)z:Utilities for `gcloud memcache instances update` commands.    )absolute_import)division)unicode_literals)encoding)memcachec                 2    UR                  S5      (       a  gg)N
parametersupdateParameterspatch)IsSpecified)
unused_refargss     @lib/googlecloudsdk/command_lib/memcache/instances_update_util.pyChooseUpdateMethodr      s    	l##	    c                 2    X;  a  U R                  U5        g g N)append)update_maskfields     r   AddFieldToUpdateMaskr      s    
u r   c                 z  ^ [        US5      =(       a3    [        UR                  S5      =(       a    UR                  R                  nUR                  S5      (       d  U(       aV  Sm[	        [        U4S jUR                  R                  S5      5      5      n[        UT5        SR                  U5      Ul        U$ )zUpdate patch mask for maintenancePolicy.

Args:
  unused_ref: The field resource reference.
  args: The parsed arg namespace.
  req: The auto-generated patch request.
Returns:
  FirestoreProjectsDatabasesCollectionGroupsFieldsPatchRequest
instancemaintenancePolicymaintenance_window_anyc                     > U =(       a    TU ;  $ r    )mpolicys    r   <lambda>'ModifyMaintenanceMask.<locals>.<lambda>8   s    !'a'r   ,)
hasattrr   r   r   listfilter
updateMasksplitr   join)r   r   reqpolicy_is_updatedmaskr   s        @r   ModifyMaintenanceMaskr,   $   s     c: %cll/0%	ll$$  
.//3D F')=)=c)BD EDv&XXd^CN	*r   c                 B   UR                  S5      (       a  [        R                  " U R                  5       R                  5      n[
        R                  " UR                  UR                  R                  5      nUR                  US9nUR                  SUS9nXbl        U$ )zUpdate patch request to include parameters.

Args:
  ref: The field resource reference.
  args: The parsed arg namespace.
  req: The auto-generated patch request.
Returns:
  FirestoreProjectsDatabasesCollectionGroupsFieldsPatchRequest
r	   )paramsr.   )r&   r	   )r   r   MessagesGetCollectionInfoapi_versionr   DictToMessager	   MemcacheParametersParamsValueUpdateParametersRequestupdateParametersRequest)refr   r)   messagesr.   r	   	param_reqs          r   ModifyParamsr:   B   s     
l##  !6!6!8!D!DEH##DOO$,$?$?$K$KMF,,F,;J00
 1 4I"+	*r   c                     [        U S5      (       a  U R                  5       $ [        U S5      (       a  U R                  5       $ [        S5      e)z8Returns a maintenance policy of the appropriate version.+GoogleCloudMemcacheV1beta2MaintenancePolicy&GoogleCloudMemcacheV1MaintenancePolicyz5No MaintenancePolicy found for version V1 or V1beta2.)r#   r<   r=   AttributeError)message_modules    r   _GetMaintenancePolicyr@   X   sH    ^JKKEEGG~GHH@@BBNOOr   N)__doc__
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_libr   r   r   r,   r:   r@   r   r   r   <module>rE      s4    A &  ' % +
<,Pr   