
    }                         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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dlmZ dddZ e
j&                  e
j(                  j*                         G d de
j,                               Zee_        y)z,Bare Metal Solution instance update command.    )absolute_import)division)unicode_literals)	MpsClient)waiter)base)flags)
exceptions)log)
properties)	resourcesa  
          Update a Marketplace Solution instance.

          This call returns immediately, but the update operation may take
          several minutes to complete. To check if the operation is complete,
          use the `describe` command for the instance.
        a  
          To update an instance called ``my-instance'' in region ``us-central1'',
          to 3 memoryGib and 0.5 virtualCpuCores, run:

          $ {command} my-instance update --region=us-central1 --memory_gib=3
          --virtual_cpu_cores=0.5
        )DESCRIPTIONEXAMPLESc                   &    e Zd ZdZed        Zd Zy)Updatez'Update a Marketplace Solution instance.c                     t        j                  | d       t        j                  | d       t        j                  | d       y)z Register flags for this command.T)
positionalFrequiredN)r	   AddInstanceArgToParserAddInstanceMemoryGibArgToParse$AddInstanceVirtualCpuCoresArgToParse)parsers    #lib/surface/mps/instances/update.pyArgszUpdate.Args6   s4     
  D9	((%@	..vF    c                     t               }|j                  j                  j                         }t        j
                  j                  j                  j                  d      }t        |dd       }t        |dd       }||t        j                  d      |j                  ||||      }|j                  r't        j                  |j!                         d       |S t"        j$                  j'                  |j(                  d	d
      }t+        j,                  |j.                        }	t+        j0                  |	|dj3                  |j(                              }
t        j                  |j!                         d       |
S )NTr   
memory_gibvirtual_cpu_coreszBAt least one of `--memory-gib` or`--virtual-cpu-cores` is required)productinstance_resourcer   r   Instance)kindz2marketplacesolutions.projects.locations.operationsv1alpha1)
collectionapi_versionz&Waiting for operation [{}] to completeinstance)r   CONCEPTSr'   Parser   VALUESmpsr    Getgetattrr
   ErrorUpdateInstancedoner   UpdatedResourceNamer   REGISTRYParseRelativeNamenamer   CloudOperationPollerNoResourcesoperation_serviceWaitForformat)selfargsclientr'   r    r   r   op_refop_resourcepollerress              r   Runz
Update.Run=   sQ   [F}}%%++-H##++///>G|T2J&94@/7 + , , """z+ # -F
 {{	(--/
;m$$66G 7  K 33F4L4LMF
..077DFC j9Jr   N)__name__
__module____qualname____doc__staticmethodr   rA    r   r   r   r   2   s    /G Gr   r   N)rE   
__future__r   r   r   %googlecloudsdk.api_lib.mps.mps_clientr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   googlecloudsdk.command_lib.mpsr	   googlecloudsdk.corer
   r   r   r   DETAILED_HELPReleaseTracksReleaseTrackALPHAUpdateCommandr   detailed_helprG   r   r   <module>rT      s    3 &  ' ; . ( 0 * # * )		( D%%++,(T ( -(T % r   