
                         ~   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 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 Zd ZddZd Z e	j4                  e	j6                  j8                  e	j6                  j:                  e	j6                  j<                         G d de	j>                               Z y)zExport Url maps command.    )absolute_import)division)unicode_literalsN)base_classes)base)flags)scope)url_maps_utils)util)filesc                      ddddS )NExport a URL map.z          Exports a URL map's configuration to a file.
          This configuration can be imported at a later time.
          zu          A URL map can be exported by running:

            $ {command} NAME --destination=<path-to-file>
          )briefDESCRIPTIONEXAMPLES r       &lib/surface/compute/url_maps/export.py_DetailedHelpr       s     

 r   c                 |    | t         j                  j                  k(  ry| t         j                  j                  k(  ryy)z3Returns the API version based on the release track.alphabetav1)r   ReleaseTrackALPHABETA)release_tracks    r   _GetApiVersionr   2   s3    d''---))...	r   c                 F    t        j                  dt        |       d|      S )z!Returns the resource schema path.computeUrlMapfor_help)export_utilGetSchemaPathr   )r   r#   s     r   _GetSchemaPathr&   ;   s%    		"	".8
M Mr   c                    |j                   }|j                  | |j                  t        j                  j
                  t        j                  |            }t        j                  ||      }| j                  rJt        j                  | j                        5 }t        j                  ||t        |             ddd       yt        j                  |t         j"                  t        |             y# 1 sw Y   yxY w)z-Issues requests necessary to export URL maps.)default_scopescope_lister)messagestreamschema_pathN)clientResolveAsResource	resourcescompute_scope	ScopeEnumGLOBALcompute_flagsGetDefaultScopeListerr
   SendGetRequestdestinationr   
FileWriterr$   Exportr&   sysstdout)argsholderurl_map_argr   r-   url_map_refurl_mapr+   s           r   _Runr@   A   s    ==&--
!++22 66v>	 . @+ ))&+>'				$**	+v$]35 
,	+ zz"=13 
,	+s   "C33C<c                   8    e Zd ZdZ e       ZdZed        Zd Z	y)r8   r   Nc                     t        j                         | _        | j                  j                  |d       t	        j
                  |t        | j                         d             y )Nexport)operation_typeTr"   )r   UrlMapArgumentURL_MAP_ARGAddArgumentr$   AddExportFlagsr&   r   )clsparsers     r   ArgszExport.Argsb   sM    **,COOOx@s//1DACr   c                     t        j                  | j                               }t        ||| j                  | j                               S )N)r   ComputeApiHolderr   r@   rF   )selfr;   r<   s      r   Runz
Export.Runi   s;    **4+<+<+>?Ffd..0A0A0CDDr   )
__name__
__module____qualname____doc__r   detailed_helprF   classmethodrK   rO   r   r   r   r8   r8   Z   s-     /-+C CEr   r8   )F)!rS   
__future__r   r   r   r9   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r3   r	   r0   +googlecloudsdk.command_lib.compute.url_mapsr
   !googlecloudsdk.command_lib.exportr   r$   googlecloudsdk.core.utilr   r   r   r&   r@   ReleaseTracksr   GAr   r   Commandr8   r   r   r   <module>r`      s     &  ' 
 7 ( E E = F A *$M32 D%%(($*;*;*@*@%%++-ET\\ E-Er   