
    @	                         d Z ddlZddlmZmZmZ  G d deej                        Z G d de      Z	 G d d	e      Z
 G d
 de      Z G d de      Zy)z4Enums for the conversion workspace related commands.    N)AnyListSetc                   H    e Zd ZdZededededee   def
d       Z	defdZ
y	)
StrEnumz+Base class for enums that are also strings.namestartcountlast_valuesreturnc                     | S N )r   r	   r
   r   s       Plib/googlecloudsdk/command_lib/database_migration/conversion_workspaces/enums.py_generate_next_value_zStrEnum._generate_next_value_   s	     K    c                     | j                   S r   )valueselfs    r   __str__zStrEnum.__str__!   s    ::r   N)__name__
__module____qualname____doc__staticmethodstrintr   r   r   r   r   r   r   r   r      sU    3  9	
  s r   r   c                       e Zd ZdZ ej
                         Z ej
                         Z ej
                         Z ej
                         Z	 ej
                         Z
y)SourceDatabaseProviderzSource database provider.N)r   r   r   r   enumauto
AMAZON_RDSAZURE_MANAGED_INSTANCEAZURE_SQL_DATABASECLOUDSQLUNSPECIFIEDr   r   r   r    r    %   sH    !tyy{*$499; tyy{TYY[(		+r   r    c                   T    e Zd ZdZ ej
                         Z ej
                         Zy)DestinationDatabaseProviderzDestination database provider.N)r   r   r   r   r!   r"   ALLOYDBr&   r   r   r   r)   r)   /   s    &DIIK'TYY[(r   r)   c                   p    e Zd ZdZ ej
                         Z ej
                         Zede	e
   fd       Zy)SourceDatabaseEnginezSource database engine type.r   c                    | | j                   k(  rt        j                  hS | | j                  k(  rMt        j                  t        j
                  t        j                  t        j                  t        j                  hS t               S r   )	ORACLEr    r'   
SQL_SERVERr#   r$   r%   r&   setr   s    r   supported_providersz(SourceDatabaseEngine.supported_providers<   so    t{{
 
,
,  t
 
+
+
 
7
7
 
3
3
 
)
)
 
,
,  5Lr   N)r   r   r   r   r!   r"   r.   r/   propertyr   r    r1   r   r   r   r,   r,   6   s>    $499;&tyy{*3'=#>  r   r,   c                   N    e Zd ZdZ ej
                         Zedee	   fd       Z
y)DestinationDatabaseEnginez!Destination database engine type.r   c                 t    | | j                   k(  r t        j                  t        j                  hS t	               S r   )
POSTGRESQLr)   r*   r&   r0   r   s    r   r1   z-DestinationDatabaseEngine.supported_providersT   s3    t
%
-
-
%
.
. 
 5Lr   N)r   r   r   r   r!   r"   r6   r2   r   r)   r1   r   r   r   r4   r4   O   s1    )tyy{*3'B#C  r   r4   )r   r!   typingr   r   r   r   Enumr   r    r)   r,   r4   r   r   r   <module>r9      sU    ;  ! !c499  W ' 7 2 r   