
    3                     z    d Z ddlmZ ddlmZ ddlmZ d Z G d de      Z G d d	e      Z G d
 de      Z	d Z
y)zEAPI library for managing the autoscalers of a managed instance group.    )absolute_import)division)unicode_literalsc                 (    | j                         dk(  S )z/Checks if reference to instance group is zonal.zcompute.instanceGroupManagers)
Collection)refs    Ilib/googlecloudsdk/api_lib/compute/instance_groups/managed/autoscalers.py_IsZonalGroupr
      s    		<	<<    c                   V    e Zd ZdZddZed        Zd Zed        Zd Z	d Z
d	 Zd
 Zy)Clientz%API client class for MIG Autoscalers.Nc                     || _         y N)_client)selfclients     r	   __init__zClient.__init__   s	    DLr   c                     t         r   NotImplementedErrorr   s    r	   _servicezClient._service"   s    
r   c                     t         r   r   r   requestigm_refs      r	   _ScopeRequestzClient._ScopeRequest&   s    
r   c                 B    | j                   j                  j                  S r   )r   messages
Autoscalerr   s    r	   message_typezClient.message_type)   s    <<  +++r   c                      | j                   j                  d      |j                  |j                  |      }| j	                  ||       | j
                  j                  | j                   d|fg      S )NUpdateproject
autoscalerautoscalerResourcer   GetRequestTyper%   namer   r   MakeRequestsr   r   autoscaler_resourcer   s       r	   r#   zClient.Update-   se    4dmm**84&++.0G 	w(<<$$t}}h&H%IJJr   c                      | j                   j                  d      |j                  |j                  |      }| j	                  ||       | j
                  j                  | j                   d|fg      S )NPatchr$   r(   r,   s       r	   r/   zClient.Patch5   se    3dmm**73&++.0G 	w(<<$$t}}gw&G%HIIr   c                      | j                   j                  d      |j                  |      }| j                  ||       | j                  j                  | j                   d|fg      S )NInsertr%   r&   r   r)   r%   r   r   r+   r,   s       r	   r1   zClient.Insert=   s\    4dmm**84&G 	w(<<$$t}}h&H%IJJr   c                      | j                   j                  d      |j                  |      }| j                  ||       | j                  j                  | j                   d|fg      S )NDeleter2   r3   )r   r   autoscaler_namer   s       r	   r5   zClient.DeleteE   s\    4dmm**84"$G 	w(<<$$t}}h&H%IJJr   r   )__name__
__module____qualname____doc__r   propertyr   r   r!   r#   r/   r1   r5    r   r	   r   r      sO    -   , ,KJKKr   r   c                   "    e Zd Zed        Zd Zy)RegionalClientc                 B    | j                   j                  j                  S r   )r   apitools_clientregionAutoscalersr   s    r	   r   zRegionalClient._serviceO   s    <<''999r   c                 &    |j                   |_         y r   )regionr   s      r	   r   zRegionalClient._ScopeRequestS   s    ^^GNr   Nr7   r8   r9   r;   r   r   r<   r   r	   r>   r>   M   s    : :$r   r>   c                   "    e Zd Zed        Zd Zy)ZonalClientc                 B    | j                   j                  j                  S r   )r   r@   autoscalersr   s    r	   r   zZonalClient._serviceY   s    <<''333r   c                 &    |j                   |_         y r   )zoner   s      r	   r   zZonalClient._ScopeRequest]   s    <<GLr   NrD   r<   r   r	   rF   rF   W   s    4 4 r   rF   c                 D    t        |      rt        |       S t        |       S r   )r
   rF   r>   )r   r   s     r	   	GetClientrL   a   s     7v&!!r   N)r:   
__future__r   r   r   r
   objectr   r>   rF   rL   r<   r   r	   <module>rO      sG    L '  '=
.KV .Kb$V $ &  "r   