
    g                     b    d 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 d Z	d Z
d	 Zd
 Zd Zy)z:Utilities for `gcloud memcache instances update` commands.    )absolute_import)division)unicode_literals)encoding)memcachec                 (    |j                  d      ryy)N
parametersupdateParameterspatch)IsSpecified)
unused_refargss     @lib/googlecloudsdk/command_lib/memcache/instances_update_util.pyChooseUpdateMethodr      s    	l#	    c                 0    || vr| j                  |       y y N)append)update_maskfields     r   AddFieldToUpdateMaskr      s    
+u r   c                 P   t        |d      xr. t        |j                  d      xr |j                  j                  }|j                  d      s|rUdt	        t        fd|j                  j                  d                  }t        |       dj                  |      |_        |S )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                     | xr | vS r    )mpolicys    r   <lambda>z'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   |j                  d      rt        j                  | j                         j                        }t        j                  |j                  |j                  j                        }|j                  |      }|j                  d|      }||_        |S )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   ModifyParamsr9   B   s     
l#  !6!6!8!D!DEH##DOO$,$?$?$K$KMF,,F,;J00
 1 4I"+C	*r   c                     t        | d      r| j                         S t        | d      r| j                         S t        d      )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   sB    ^JKEEGG~GH@@BBNOOr   N)__doc__
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_libr   r   r   r+   r9   r?   r   r   r   <module>rD      s4    A &  ' % +
<,Pr   