
                         
   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  G d	 d
      Zej                   ej                  ej                   j"                         G d dej$                                      Zy)z2Implementation of connection profile list command.    )absolute_import)division)unicode_literals)stream_objects)base)resource_args)
propertiesc                       e Zd ZdZd Zy)_StreamObjectInfoz7Container for stream object data using in list display.c                    |j                   | _        |j                  | _        || _        |j                  |j                  j
                  nd | _        |j                  |j                  j                  nd | _        |j                  |j                  j                  nd | _
        |j                  |j                  j                  | _        y d | _        y )N)displayNamedisplay_namenamesource_objectbackfillJobstatebackfill_job_statetriggerbackfill_job_triggerlastStartTimelast_backfill_job_start_timelastEndTimelast_backfill_job_end_time)selfmessager   s      &lib/surface/datastream/objects/list.py__init__z_StreamObjectInfo.__init__   s    ++DDI&D%,%8%8%D!!$ 	 (/':':'F##D 	
 * 	)) 	% * 	'' 	#  	#    N)__name__
__module____qualname____doc__r    r   r   r   r      s
    ?r   r   c                   ,    e Zd ZdZed        Zd Zd Zy)Listas  List a Datastream stream objects.

  List stream objects.

  ## API REFERENCE
    This command uses the datastream/v1 API. The full documentation
    for this API can be found at: https://cloud.google.com/datastream/

  ## EXAMPLES
    To list all objects in a stream and location 'us-central1',
    run:

        $ {command} --stream=my-stream --location=us-central1

  c                 d    t        j                  |       |j                  j                  d       y)z Register flags for this command.a  
            table(
              display_name,
              name.basename():label=NAME,
              source_object,
              backfill_job_state:label=BACKFILL_JOB_STATE,
              backfill_job_trigger:label=BACKFILL_JOB_TRIGGER,
              last_backfill_job_start_time:label=LAST_BACKFILL_JOB_START_TIME,
              last_backfill_job_end_time:label=LAST_BACKFILL_JOB_END_TIME
            )
          N)r   AddStreamObjectResourceArgdisplay_info	AddFormat)clsparsers     r   Argsz	List.ArgsG   s+     ,,V4
!! 
# 
r   c           	      p   t        j                         }t        j                  j                  j
                  j                  d      }|j                  j                  j                         }|j                  ||j                  |      }|D cg c]  }t        || j                  |             c}S c c}w )zRuns the command.

    Args:
      args: All the arguments that were provided to this command invocation.

    Returns:
      An iterator over objects containing stream objects data.
    T)required)r   StreamObjectsClientr	   VALUEScoreprojectGetCONCEPTSstreamParser%   	streamsIdr   _GetSourceObject)r   args	so_client
project_id
stream_refobjectsos          r   RunzList.RunW   s     224I""''//33T3BJ%%++-JnnZ)=)=tDGDKLGqa!6!6q!9:GLLLs   "B3c                    |j                   j                  r1|j                   j                  }|j                  d|j                  S |j                   j                  r1|j                   j                  }|j
                  d|j                  S |j                   j                  r1|j                   j                  }|j
                  d|j                  S |j                   j                  r1|j                   j                  }|j
                  d|j                  S |j                   j                  r"|j                   j                  }|j                  S y )N.)
sourceObjectmysqlIdentifierdatabasetableoracleIdentifierschemapostgresqlIdentifiersqlServerIdentifiersalesforceIdentifier
objectName)r   stream_object
identifiers      r   r8   zList._GetSourceObjectg   s   !!11 --==j"++Z-=-=>>		#	#	4	4 -->>j")):+;+;<<		#	#	8	8 --BBj")):+;+;<<		#	#	7	7 --AAj")):+;+;<<		#	#	8	8 --BBj"""r   N)r   r    r!   r"   classmethodr,   r?   r8   r#   r   r   r%   r%   4   s&       M r   r%   N)r"   
__future__r   r   r   !googlecloudsdk.api_lib.datastreamr   googlecloudsdk.callioper   %googlecloudsdk.command_lib.datastreamr   googlecloudsdk.corer	   r   DefaultUniverseOnlyReleaseTracksReleaseTrackGAListCommandr%   r#   r   r   <module>rY      st    9 &  ' < ( ? * 2 D%%(()B4 B * Br   