
    $                     Z    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  G d de	      Z
y	)
z3Database Migration Service connection profiles API.    )absolute_import)division)unicode_literals)
list_pager)api_utilc                   (    e Zd ZdZd Zd Zd Zd Zy)ObjectsClientz4Client for migration job objects service in the API.c                    t        j                  |      | _        t        j                  |      | _        t        j
                  |      | _        | j                  j                  | _        t        j                  |      | _
        || _        y )N)r   GetApiVersion_api_versionGetClientInstanceclientGetMessagesModulemessages(projects_locations_migrationJobs_objects_serviceGetResourceParserresource_parser_release_track)selfrelease_tracks     8lib/googlecloudsdk/api_lib/database_migration/objects.py__init__zObjectsClient.__init__   se     ..}=D,,];DK..}=DMKKHHDM#55mDD'D    c                     | j                   j                  } ||j                               }t        j                  | j
                  ||j                  |j                  dd      S )zGet the list of objects in a migration job.

    Args:
      migration_job_ref: The migration job for which to list objects.
      args: parsed command line arguments

    Returns:
      An iterator over all the matching migration job objects.
    )parentmigrationJobObjectspageSize)servicerequestlimit
batch_sizefieldbatch_size_attribute)r   =DatamigrationProjectsLocationsMigrationJobsObjectsListRequestRelativeNamer   YieldFromListr   r!   	page_size)r   migration_job_refargslist_req_typelist_reqs        r   ListzObjectsClient.List$   s]     	SS  $5$B$B$DEH##jj>>#' r   c                 `   | j                   j                  |j                  |j                  |j                  | j                  |            }| j                   j                  } || j                   j                  |      |j                               }| j                  j                  |      S )a"  Lookup a migration job object.

    Args:
      migration_job_ref: The migration job name to which the object belongs.
      args: argparse.Namespace, The arguments that this command was invoked
        with.

    Returns:
      MigrationJobObject: the looked up  migration job object.
    )databaseschematabletype)sourceObjectIdentifier)lookupMigrationJobObjectRequestr   )r   SourceObjectIdentifierr/   r0   r1   GetType?DatamigrationProjectsLocationsMigrationJobsObjectsLookupRequestLookupMigrationJobObjectRequestr&   r   Lookup)r   r)   r*   source_object_identifierlookup_req_type
lookup_reqs         r   r9   zObjectsClient.Lookup<   s      $}}CC{{jj\\$	  D   	UU  !(,(U(U#; )V )
 !--/	J ==
++r   c                     |j                  d      r9| j                  j                  j                  j	                  |j
                        S | j                  j                  j                  j	                  d      S )Nr2   DATABASE)IsKnownAndSpecifiedr   r5   TypeValueValuesEnumlookup_by_namer2   )r   r*   s     r   r6   zObjectsClient.GetTypeY   s^      (]]11EETT
))  MM00DD^J')r   N)__name__
__module____qualname____doc__r   r-   r9   r6    r   r   r	   r	      s    <(0,:)r   r	   N)rE   
__future__r   r   r   apitools.base.pyr   )googlecloudsdk.api_lib.database_migrationr   objectr	   rF   r   r   <module>rK      s'    : &  ' ' >F)F F)r   