:doc:`Batch <../../batch>` / Client / list_jobs

*********
list_jobs
*********



.. py:method:: Batch.Client.list_jobs(**kwargs)

  

  Returns a list of Batch jobs.

   

  You must specify only one of the following items:

   

  
  * A job queue ID to return a list of jobs in that job queue
   
  * A multi-node parallel job ID to return a list of nodes for that job
   
  * An array job ID to return a list of the children for that job
  

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ListJobs>`_  


  **Request Syntax**
  ::

    response = client.list_jobs(
        jobQueue='string',
        arrayJobId='string',
        multiNodeJobId='string',
        jobStatus='SUBMITTED'|'PENDING'|'RUNNABLE'|'STARTING'|'RUNNING'|'SUCCEEDED'|'FAILED',
        maxResults=123,
        nextToken='string',
        filters=[
            {
                'name': 'string',
                'values': [
                    'string',
                ]
            },
        ]
    )
    
  :type jobQueue: string
  :param jobQueue: 

    The name or full Amazon Resource Name (ARN) of the job queue used to list jobs.

    

  
  :type arrayJobId: string
  :param arrayJobId: 

    The job ID for an array job. Specifying an array job ID with this parameter lists all child jobs from within the specified array.

    

  
  :type multiNodeJobId: string
  :param multiNodeJobId: 

    The job ID for a multi-node parallel job. Specifying a multi-node parallel job ID with this parameter lists all nodes that are associated with the specified job.

    

  
  :type jobStatus: string
  :param jobStatus: 

    The job status used to filter jobs in the specified queue. If the ``filters`` parameter is specified, the ``jobStatus`` parameter is ignored and jobs with any status are returned. The exception is the ``SHARE_IDENTIFIER`` filter and ``jobStatus`` can be used together. If you don't specify a status, only ``RUNNING`` jobs are returned.

     

    .. note::

      

      Array job parents are updated to ``PENDING`` when any child job is updated to ``RUNNABLE`` and remain in ``PENDING`` status while child jobs are running. To view these jobs, filter by ``PENDING`` status until all child jobs reach a terminal state.

      

    

  
  :type maxResults: integer
  :param maxResults: 

    The maximum number of results returned by ``ListJobs`` in a paginated output. When this parameter is used, ``ListJobs`` returns up to ``maxResults`` results in a single page and a ``nextToken`` response element, if applicable. The remaining results of the initial request can be seen by sending another ``ListJobs`` request with the returned ``nextToken`` value.

     

    The following outlines key parameters and limitations:

     

    
    * The minimum value is 1.
     
    * When ``--job-status`` is used, Batch returns up to 1000 values.
     
    * When ``--filters`` is used, Batch returns up to 100 values.
     
    * If neither parameter is used, then ``ListJobs`` returns up to 1000 results (jobs that are in the ``RUNNING`` status) and a ``nextToken`` value, if applicable.
    

    

  
  :type nextToken: string
  :param nextToken: 

    The ``nextToken`` value returned from a previous paginated ``ListJobs`` request where ``maxResults`` was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the ``nextToken`` value. This value is ``null`` when there are no more results to return.

     

    .. note::

      

      Treat this token as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

      

    

  
  :type filters: list
  :param filters: 

    The filter to apply to the query. Only one filter can be used at a time. When the filter is used, ``jobStatus`` is ignored with the exception that ``SHARE_IDENTIFIER`` and ``jobStatus`` can be used together. The filter doesn't apply to child jobs in an array or multi-node parallel (MNP) jobs. The results are sorted by the ``createdAt`` field, with the most recent jobs being first.

     

    .. note::

      

      The ``SHARE_IDENTIFIER`` filter and the ``jobStatus`` field can be used together to filter results.

      

      JOB_NAME  

    The value of the filter is a case-insensitive match for the job name. If the value ends with an asterisk (*), the filter matches any job name that begins with the string before the '*'. This corresponds to the ``jobName`` value. For example, ``test1`` matches both ``Test1`` and ``test1``, and ``test1*`` matches both ``test1`` and ``Test10``. When the ``JOB_NAME`` filter is used, the results are grouped by the job name and version.

      JOB_DEFINITION  

    The value for the filter is the name or Amazon Resource Name (ARN) of the job definition. This corresponds to the ``jobDefinition`` value. The value is case sensitive. When the value for the filter is the job definition name, the results include all the jobs that used any revision of that job definition name. If the value ends with an asterisk (*), the filter matches any job definition name that begins with the string before the '*'. For example, ``jd1`` matches only ``jd1``, and ``jd1*`` matches both ``jd1`` and ``jd1A``. The version of the job definition that's used doesn't affect the sort order. When the ``JOB_DEFINITION`` filter is used and the ARN is used (which is in the form ``arn:${Partition}:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}``), the results include jobs that used the specified revision of the job definition. Asterisk (*) isn't supported when the ARN is used.

      BEFORE_CREATED_AT  

    The value for the filter is the time that's before the job was created. This corresponds to the ``createdAt`` value. The value is a string representation of the number of milliseconds since 00:00:00 UTC (midnight) on January 1, 1970.

      AFTER_CREATED_AT  

    The value for the filter is the time that's after the job was created. This corresponds to the ``createdAt`` value. The value is a string representation of the number of milliseconds since 00:00:00 UTC (midnight) on January 1, 1970.

      SHARE_IDENTIFIER  

    The value for the filter is the fairshare scheduling share identifier.

    

  
    - *(dict) --* 

      A filter name and value pair that's used to return a more specific list of results from a ``ListJobs`` or ``ListJobsByConsumableResource`` API operation.

      

    
      - **name** *(string) --* 

        The name of the filter. Filter names are case sensitive.

        

      
      - **values** *(list) --* 

        The filter values.

        

      
        - *(string) --* 

        
    
    

  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'jobSummaryList': [
              {
                  'jobArn': 'string',
                  'jobId': 'string',
                  'jobName': 'string',
                  'capacityUsage': [
                      {
                          'capacityUnit': 'string',
                          'quantity': 123.0
                      },
                  ],
                  'createdAt': 123,
                  'scheduledAt': 123,
                  'shareIdentifier': 'string',
                  'status': 'SUBMITTED'|'PENDING'|'RUNNABLE'|'STARTING'|'RUNNING'|'SUCCEEDED'|'FAILED',
                  'statusReason': 'string',
                  'startedAt': 123,
                  'stoppedAt': 123,
                  'container': {
                      'exitCode': 123,
                      'reason': 'string'
                  },
                  'arrayProperties': {
                      'size': 123,
                      'index': 123,
                      'statusSummary': {
                          'string': 123
                      },
                      'statusSummaryLastUpdatedAt': 123
                  },
                  'nodeProperties': {
                      'isMainNode': True|False,
                      'numNodes': 123,
                      'nodeIndex': 123
                  },
                  'jobDefinition': 'string'
              },
          ],
          'nextToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **jobSummaryList** *(list) --* 

        A list of job summaries that match the request.

        
        

        - *(dict) --* 

          An object that represents summary details of a job.

          
          

          - **jobArn** *(string) --* 

            The Amazon Resource Name (ARN) of the job.

            
          

          - **jobId** *(string) --* 

            The job ID.

            
          

          - **jobName** *(string) --* 

            The job name.

            
          

          - **capacityUsage** *(list) --* 

            The configured capacity usage information for this job, including the unit of measure and quantity of resources.

            
            

            - *(dict) --* 

              The capacity usage for a job, including the unit of measure and quantity of resources being used.

              
              

              - **capacityUnit** *(string) --* 

                The unit of measure for the capacity usage. This is ``VCPU`` for Amazon EC2 and ``cpu`` for Amazon EKS.

                
              

              - **quantity** *(float) --* 

                The quantity of capacity being used by the job, measured in the units specified by ``capacityUnit``.

                
          
        
          

          - **createdAt** *(integer) --* 

            The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the ``SUBMITTED`` state (at the time `SubmitJob <https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html>`__ was called). For array child jobs, this is when the child job was spawned by its parent and entered the ``PENDING`` state.

            
          

          - **scheduledAt** *(integer) --* 

            The Unix timestamp (in milliseconds) for when the job was scheduled for execution. For more information on job statues, see `Service job status <https://docs.aws.amazon.com/batch/latest/userguide/service-job-status.html>`__ in the *Batch User Guide*.

            
          

          - **shareIdentifier** *(string) --* 

            The share identifier for the fairshare scheduling queue that this job is associated with.

            
          

          - **status** *(string) --* 

            The current status for the job.

            
          

          - **statusReason** *(string) --* 

            A short, human-readable string to provide more details for the current status of the job.

            
          

          - **startedAt** *(integer) --* 

            The Unix timestamp for when the job was started. More specifically, it's when the job transitioned from the ``STARTING`` state to the ``RUNNING`` state.

            
          

          - **stoppedAt** *(integer) --* 

            The Unix timestamp for when the job was stopped. More specifically, it's when the job transitioned from the ``RUNNING`` state to a terminal state, such as ``SUCCEEDED`` or ``FAILED``.

            
          

          - **container** *(dict) --* 

            An object that represents the details of the container that's associated with the job.

            
            

            - **exitCode** *(integer) --* 

              The exit code to return upon completion.

              
            

            - **reason** *(string) --* 

              A short (255 max characters) human-readable string to provide additional details for a running or stopped container.

              
        
          

          - **arrayProperties** *(dict) --* 

            The array properties of the job, if it's an array job.

            
            

            - **size** *(integer) --* 

              The size of the array job. This parameter is returned for parent array jobs.

              
            

            - **index** *(integer) --* 

              The job index within the array that's associated with this job. This parameter is returned for children of array jobs.

              
            

            - **statusSummary** *(dict) --* 

              A summary of the number of array job children in each available job status. This parameter is returned for parent array jobs.

              
              

              - *(string) --* 
                

                - *(integer) --* 
          
        
            

            - **statusSummaryLastUpdatedAt** *(integer) --* 

              The Unix timestamp (in milliseconds) for when the ``statusSummary`` was last updated.

              
        
          

          - **nodeProperties** *(dict) --* 

            The node properties for a single node in a job summary list.

             

            .. note::

              

              This isn't applicable to jobs that are running on Fargate resources.

              

            
            

            - **isMainNode** *(boolean) --* 

              Specifies whether the current node is the main node for a multi-node parallel job.

              
            

            - **numNodes** *(integer) --* 

              The number of nodes that are associated with a multi-node parallel job.

              
            

            - **nodeIndex** *(integer) --* 

              The node index for the node. Node index numbering begins at zero. This index is also available on the node with the ``AWS_BATCH_JOB_NODE_INDEX`` environment variable.

              
        
          

          - **jobDefinition** *(string) --* 

            The Amazon Resource Name (ARN) of the job definition.

            
      
    
      

      - **nextToken** *(string) --* 

        The ``nextToken`` value to include in a future ``ListJobs`` request. When the results of a ``ListJobs`` request exceed ``maxResults``, this value can be used to retrieve the next page of results. This value is ``null`` when there are no more results to return.

        
  
  **Exceptions**
  
  *   :py:class:`Batch.Client.exceptions.ClientException`

  
  *   :py:class:`Batch.Client.exceptions.ServerException`

  

  **Examples**

  This example lists the running jobs in the HighPriority job queue.
  ::

    response = client.list_jobs(
        jobQueue='HighPriority',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'jobSummaryList': [
            {
                'jobId': 'e66ff5fd-a1ff-4640-b1a2-0b0a142f49bb',
                'jobName': 'example',
            },
        ],
        'ResponseMetadata': {
            '...': '...',
        },
    }

  

  This example lists jobs in the HighPriority job queue that are in the SUBMITTED job status.
  ::

    response = client.list_jobs(
        jobQueue='HighPriority',
        jobStatus='SUBMITTED',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'jobSummaryList': [
            {
                'jobId': '68f0c163-fbd4-44e6-9fd1-25b14a434786',
                'jobName': 'example',
            },
        ],
        'ResponseMetadata': {
            '...': '...',
        },
    }

  