
                         
   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	lmZ d
ZdZej$                   ej&                  ej(                  j*                         G d dej,                                      Zy)z3Command to lookup a stream object for a datastream.    )absolute_import)division)unicode_literals)stream_objects)base)resource_args)flags)
propertieszJLookup a stream object by its source object identifier (e.g. schema.table)a0      To lookup an existing Mysql stream object:

        $ {command} --stream=my-stream --location=us-central1 --mysql-database=my-db --mysql-table=my-table

    To lookup an existing Oracle stream object:

        $ {command} --stream=my-stream --location=us-central1 --oracle-schema=my-schema --oracle-table=my-table

    To lookup an existing PostgreSQL stream object:

        $ {command} --stream=my-stream --location=us-central1 --postgresql-schema=my-schema --postgresql-table=my-table

    To lookup an existing SQL Server stream object:

       $ {command} --stream=my-stream --location=us-central1 --sqlserver-schema=my-schema --sqlserver-table=my-table

    To lookup an existing Salesforce stream object:

       $ {command} --stream=my-stream --location=us-central1 --salesforce-object-name=my-object
   c                   0    e Zd ZdZeedZed        Zd Z	y)Lookupz"Lookup a Datastream stream object.)DESCRIPTIONEXAMPLESc                 &   t        j                  |        | j                  dd      }t        j                  |       t        j
                  |       t        j                  |       t        j                  |       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. Positional arguments are allowed.
    T)requiredmutexN)	r   AddStreamObjectResourceArg	add_groupso_flagsAddOracleObjectIdentifierAddMysqlObjectIdentifierAddPostgresqlObjectIdentifierAddSqlServerObjectIdentifierAddSalesforceObjectIdentifier)parserobject_identifier_parsers     (lib/surface/datastream/objects/lookup.pyArgszLookup.Args;   ss     ,,V4%//T/J&&'?@%%&>?**+CD))*BC**+CD    c                    t         j                  j                  j                  j	                  d      }|j
                  j                  j                         j                  }t        j                         }|j                  |||      S )zLookup a Datastream stream object.

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

    Returns:
      A dict object representing the looked up stream object if the lookup was
      successful.
    T)r   )r
   VALUEScoreprojectGetCONCEPTSstreamParse	streamsIdr   StreamObjectsClientr   )selfargs
project_id	stream_id	so_clients        r   Runz
Lookup.RunL   sj     ""''//33T3BJ$$**,66I224IJ	488r   N)
__name__
__module____qualname____doc__r   r   detailed_helpstaticmethodr   r.    r   r   r   r   5   s*     +"-8D-E E 9r   r   N)r2   
__future__r   r   r   !googlecloudsdk.api_lib.datastreamr   googlecloudsdk.callioper   %googlecloudsdk.command_lib.datastreamr   -googlecloudsdk.command_lib.datastream.objectsr	   r   googlecloudsdk.corer
   r   r   DefaultUniverseOnlyReleaseTracksReleaseTrackGACommandr   r5   r   r   <module>rA      sz    : &  ' < ( ? K * Q . D%%(()#9T\\ #9 * #9r   