
    
                     V    d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ  G d de      Z	y)	z9Utility classes for interacting with the Cloud Build API.    )absolute_import)division)unicode_literalsN)buildc                       e Zd ZdZ G d dej
                        ZddZd Zd Z	d Z
ed	        Zed
        Zed        Zed        Zed        Zy)BuildArtifactzRepresents a build of a flex container, either in-progress or completed.

  A build artifact is either a build_id for an in-progress build, the image
  name for a completed container build, or options for the build to be created
  elsewhere.
  c                       e Zd ZdZdZdZy)BuildArtifact.BuildType         N)__name__
__module____qualname__IMAGEBUILD_IDBUILD_OPTIONS     'lib/googlecloudsdk/api_lib/app/build.py	BuildTyper
   !   s    EHMr   r   Nc                 .    || _         || _        || _        y N)
build_type
identifierbuild_op)selfr   r   r   s       r   __init__zBuildArtifact.__init__&   s     DO DODMr   c                 H    | j                   | j                  j                  k(  S r   )r   r   r   r   s    r   IsImagezBuildArtifact.IsImage+   s    ??dnn2222r   c                 H    | j                   | j                  j                  k(  S r   )r   r   r   r    s    r   	IsBuildIdzBuildArtifact.IsBuildId.   s    ??dnn5555r   c                 H    | j                   | j                  j                  k(  S r   )r   r   r   r    s    r   IsBuildOptionszBuildArtifact.IsBuildOptions1   s    ??dnn::::r   c                 <     | | j                   j                  |      S r   )r   r   )clsbuild_ids     r   MakeBuildIdArtifactz!BuildArtifact.MakeBuildIdArtifact4   s    s}}%%x00r   c                 <     | | j                   j                  |      S r   )r   r   )r'   
image_names     r   MakeImageArtifactzBuildArtifact.MakeImageArtifact8   s    s}}""J//r   c                 <     | | j                   j                  |      S r   )r   r   )r'   build_optionss     r   MakeBuildOptionsArtifactz&BuildArtifact.MakeBuildOptionsArtifact<   s    s}}**M::r   c                 n    t        j                  |dd      } | | j                  j                  ||      S )NidT)required)r   GetBuildPropr   r   )r'   r   r(   s      r   MakeBuildIdArtifactFromOpz'BuildArtifact.MakeBuildIdArtifactFromOp@   s/    !!(D4@Hs}}%%x::r   c                    t        j                  |d      }|j                  j                  D ]]  }|j                  dk(  s|j
                  j                  j                  D ](  }|j                  dk(  s|j
                  j                  }* _ t        j                  d       | | j                  j                  ||      S )z0Create Image BuildArtifact from build operation.sourcestorageSourceobjectzCould not determine image name)
r   r3   object_value
propertieskeyvaluestring_valueBuildFailedErrorr   r   )r'   r   r6   propstorage_propr+   s         r   MakeImageArtifactFromOpz%BuildArtifact.MakeImageArtifactFromOpE   s     (3F##..	_	$ JJ33>>L)%++88J ? / ""#CDDs}}""J99r   r   )r   r   r   __doc__enumEnumr   r   r!   r#   r%   classmethodr)   r,   r/   r4   rA   r   r   r   r   r      s    $)) 

36; 1 1 0 0 ; ; ; ; : :r   r   )
rB   
__future__r   r   r   rC   !googlecloudsdk.api_lib.cloudbuildr   r8   r   r   r   r   <module>rH      s&    @ &  '  39:F 9:r   