
                            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  ej.                  ej0                  j2                         G d dej4                               Zy)zExport ssl policies command.    )absolute_import)division)unicode_literalsN)base_classes)ssl_policies_utils)base)flags)scope)util)filesc                   L    e Zd ZdZdZed        Zedd       Zed        Zd Z	y)ExportzExport an SSL policy.

  Exports an SSL policy's configuration to a file.
  This configuration can be imported at a later time.
  Nc                     | j                         t        j                   j                  k(  ry| j                         t        j                   j                  k(  ryy)z3Returns the API version based on the release track.alphabetav1)ReleaseTrackr   ALPHABETA)clss    *lib/surface/compute/ssl_policies/export.pyGetApiVersionzExport.GetApiVersion)   sG     T..444				t0055	5    c                 P    t        j                  d| j                         d|      S )z!Returns the resource schema path.compute	SslPolicyfor_help)export_utilGetSchemaPathr   )r   r   s     r   r    zExport.GetSchemaPath2   s+     $$3$$&hH Hr   c                     t        j                         | _        | j                  j                  |d       t	        j
                  || j                  d             y )Nexport)operation_typeTr   )r	   GetSslPolicyMultiScopeArgumentSSL_POLICY_ARGAddArgumentr   AddExportFlagsr    )r   parsers     r   ArgszExport.Args8   sJ    ==?C""6("Cvs'8'8$'8'GHr   c                    t        j                  | j                               }t        j                  |      }|j
                  }| j                  j                  ||j                  t        j                  |      t        j                  j                        }|j                  |      }|j                  rOt!        j"                  |j                        5 }t%        j&                  ||| j)                                d d d        y t%        j&                  |t*        j,                  | j)                                y # 1 sw Y   y xY w)N)scope_listerdefault_scope)messagestreamschema_path)r   ComputeApiHolderr   r   SslPolicyHelperclientr%   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListercompute_scope	ScopeEnumGLOBALDescribedestinationr   
FileWriterr   r   r    sysstdout)selfargsholderhelperr2   ssl_policy_ref
ssl_policyr.   s           r   Runz
Export.Run>   s    **4+<+<+>?F//7F]]F((::"88@#--44	 ; 6N 0JD,,-v4;M;M;O	Q .- ((*,	 .-s   'D::E)F)
__name__
__module____qualname____doc__r%   classmethodr   r    r)   rE    r   r   r   r      sQ     .  H H
 I I
,r   r   )rI   
__future__r   r   r   r=   googlecloudsdk.api_lib.computer   +googlecloudsdk.api_lib.compute.ssl_policiesr   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r5   r
   r7   /googlecloudsdk.command_lib.compute.ssl_policies!googlecloudsdk.command_lib.exportr   r   googlecloudsdk.core.utilr   ReleaseTracksr   r   Commandr   rK   r   r   <module>rV      sf    # &  ' 
 7 J ( E E A A * D%%++,3,T\\ 3, -3,r   