
                         4   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
iZ e	j                  e	j                  j                  e	j                  j                   e	j                  j"                         G d de	j$                               Zy)z-recommender API recommendations list command.    )absolute_import)division)unicode_literals)recommendation)arg_parsers)base)flagsEXAMPLESz
        To mark a recommendation as FAILED:

          $ {command} abcd-1234 --project=project-id --location=global --recommender=google.compute.instance.MachineTypeRecommender --etag=abc123 --state-metadata=key1=value1,key2=value2
        c                   *    e Zd ZdZeZed        Zd Zy)
MarkFailedzMark a recommendation's state as FAILED.

      Mark a recommendation's state as FAILED. Can be applied to recommendations
      in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state.
  c                 N   t        j                  |        | j                  dt        d       | j                  dddd       | j                  d	d
dd       | j                  dddd       | j                  dt	        j
                  d      i ddt        j                         y)zArgs is called by calliope to gather arguments for this command.

    Args:
      parser: An argparse parser that you can use to add arguments that go on
        the command line after this command.
    RECOMMENDATIONz1Recommendation id which will be marked as FAILED.)typehelpz
--locationLOCATIONTz	Location.)metavarrequiredr   z--recommenderRECOMMENDERzRecommender of recommendation.z--etagETAGzEtag of a recommendation.z--state-metadata   )
min_lengthzXState metadata for recommendation, in format of --state-metadata=key1=value1,key2=value2z	KEY=VALUE)r   defaultr   r   actionN)r	   AddParentFlagsToParseradd_argumentstrr   ArgDictStoreOnceAction)parsers    6lib/surface/recommender/recommendations/mark_failed.pyArgszMarkFailed.Args.   s     
  (
@  B j4k  K
-	  /
 (	  *
   A.g**  ,    c                     t        j                  | j                               }t        j                  |      }|j                  ||j                  |j                        S )zRun 'gcloud recommender recommendations mark-failed'.

    Args:
      args: argparse.Namespace, The arguments that this command was invoked
        with.

    Returns:
      The recommendations after being marked as failed.
    )r   CreateClientReleaseTrackr	   GetRecommendationNamer   state_metadataetag)selfargsclientnames       r    RunzMarkFailed.RunO   sL     (():):)<=F&&t,DT4#6#6		BBr"   N)	__name__
__module____qualname____doc__DETAILED_HELPdetailed_helpstaticmethodr!   r-    r"   r    r   r   $   s'    
  -, ,@Cr"   r   N)r1   
__future__r   r   r   "googlecloudsdk.api_lib.recommenderr   googlecloudsdk.callioper   r   &googlecloudsdk.command_lib.recommenderr	   r2   ReleaseTracksr%   ALPHABETAGACommandr   r5   r"   r    <module>r?      s    4 &  ' = / ( 8 	 D%%++T->->-C-C%%((*5C 5C*5Cr"   