:doc:`DeviceFarm <../../devicefarm>` / Client / list_unique_problems

********************
list_unique_problems
********************



.. py:method:: DeviceFarm.Client.list_unique_problems(**kwargs)

  

  Gets information about unique problems, such as exceptions or crashes.

   

  Unique problems are defined as a single instance of an error across a run, job, or suite. For example, if a call in your application consistently raises an exception ( ``OutOfBoundsException in MyActivity.java:386``), ``ListUniqueProblems`` returns a single entry instead of many individual entries for that exception.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUniqueProblems>`_  


  **Request Syntax**
  ::

    response = client.list_unique_problems(
        arn='string',
        nextToken='string'
    )
    
  :type arn: string
  :param arn: **[REQUIRED]** 

    The unique problems' ARNs.

    

  
  :type nextToken: string
  :param nextToken: 

    An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

    

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

    
    ::

      {
          'uniqueProblems': {
              'string': [
                  {
                      'message': 'string',
                      'problems': [
                          {
                              'run': {
                                  'arn': 'string',
                                  'name': 'string'
                              },
                              'job': {
                                  'arn': 'string',
                                  'name': 'string'
                              },
                              'suite': {
                                  'arn': 'string',
                                  'name': 'string'
                              },
                              'test': {
                                  'arn': 'string',
                                  'name': 'string'
                              },
                              'device': {
                                  'arn': 'string',
                                  'name': 'string',
                                  'manufacturer': 'string',
                                  'model': 'string',
                                  'modelId': 'string',
                                  'formFactor': 'PHONE'|'TABLET',
                                  'platform': 'ANDROID'|'IOS',
                                  'os': 'string',
                                  'cpu': {
                                      'frequency': 'string',
                                      'architecture': 'string',
                                      'clock': 123.0
                                  },
                                  'resolution': {
                                      'width': 123,
                                      'height': 123
                                  },
                                  'heapSize': 123,
                                  'memory': 123,
                                  'image': 'string',
                                  'carrier': 'string',
                                  'radio': 'string',
                                  'remoteAccessEnabled': True|False,
                                  'remoteDebugEnabled': True|False,
                                  'fleetType': 'string',
                                  'fleetName': 'string',
                                  'instances': [
                                      {
                                          'arn': 'string',
                                          'deviceArn': 'string',
                                          'labels': [
                                              'string',
                                          ],
                                          'status': 'IN_USE'|'PREPARING'|'AVAILABLE'|'NOT_AVAILABLE',
                                          'udid': 'string',
                                          'instanceProfile': {
                                              'arn': 'string',
                                              'packageCleanup': True|False,
                                              'excludeAppPackagesFromCleanup': [
                                                  'string',
                                              ],
                                              'rebootAfterUse': True|False,
                                              'name': 'string',
                                              'description': 'string'
                                          }
                                      },
                                  ],
                                  'availability': 'TEMPORARY_NOT_AVAILABLE'|'BUSY'|'AVAILABLE'|'HIGHLY_AVAILABLE'
                              },
                              'result': 'PENDING'|'PASSED'|'WARNED'|'FAILED'|'SKIPPED'|'ERRORED'|'STOPPED',
                              'message': 'string'
                          },
                      ]
                  },
              ]
          },
          'nextToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 

      Represents the result of a list unique problems request.

      
      

      - **uniqueProblems** *(dict) --* 

        Information about the unique problems.

         

        Allowed values include:

         

        
        * PENDING
         
        * PASSED
         
        * WARNED
         
        * FAILED
         
        * SKIPPED
         
        * ERRORED
         
        * STOPPED
        

        
        

        - *(string) --* 
          

          - *(list) --* 
            

            - *(dict) --* 

              A collection of one or more problems, grouped by their result.

              
              

              - **message** *(string) --* 

                A message about the unique problems' result.

                
              

              - **problems** *(list) --* 

                Information about the problems.

                
                

                - *(dict) --* 

                  Represents a specific warning or failure.

                  
                  

                  - **run** *(dict) --* 

                    Information about the associated run.

                    
                    

                    - **arn** *(string) --* 

                      The problem detail's ARN.

                      
                    

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

                      The problem detail's name.

                      
                
                  

                  - **job** *(dict) --* 

                    Information about the associated job.

                    
                    

                    - **arn** *(string) --* 

                      The problem detail's ARN.

                      
                    

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

                      The problem detail's name.

                      
                
                  

                  - **suite** *(dict) --* 

                    Information about the associated suite.

                    
                    

                    - **arn** *(string) --* 

                      The problem detail's ARN.

                      
                    

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

                      The problem detail's name.

                      
                
                  

                  - **test** *(dict) --* 

                    Information about the associated test.

                    
                    

                    - **arn** *(string) --* 

                      The problem detail's ARN.

                      
                    

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

                      The problem detail's name.

                      
                
                  

                  - **device** *(dict) --* 

                    Information about the associated device.

                    
                    

                    - **arn** *(string) --* 

                      The device's ARN.

                      
                    

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

                      The device's display name.

                      
                    

                    - **manufacturer** *(string) --* 

                      The device's manufacturer name.

                      
                    

                    - **model** *(string) --* 

                      The device's model name.

                      
                    

                    - **modelId** *(string) --* 

                      The device's model ID.

                      
                    

                    - **formFactor** *(string) --* 

                      The device's form factor.

                       

                      Allowed values include:

                       

                      
                      * PHONE
                       
                      * TABLET
                      

                      
                    

                    - **platform** *(string) --* 

                      The device's platform.

                       

                      Allowed values include:

                       

                      
                      * ANDROID
                       
                      * IOS
                      

                      
                    

                    - **os** *(string) --* 

                      The device's operating system type.

                      
                    

                    - **cpu** *(dict) --* 

                      Information about the device's CPU.

                      
                      

                      - **frequency** *(string) --* 

                        The CPU's frequency.

                        
                      

                      - **architecture** *(string) --* 

                        The CPU's architecture (for example, x86 or ARM).

                        
                      

                      - **clock** *(float) --* 

                        The clock speed of the device's CPU, expressed in hertz (Hz). For example, a 1.2 GHz CPU is expressed as 1200000000.

                        
                  
                    

                    - **resolution** *(dict) --* 

                      The resolution of the device.

                      
                      

                      - **width** *(integer) --* 

                        The screen resolution's width, expressed in pixels.

                        
                      

                      - **height** *(integer) --* 

                        The screen resolution's height, expressed in pixels.

                        
                  
                    

                    - **heapSize** *(integer) --* 

                      The device's heap size, expressed in bytes.

                      
                    

                    - **memory** *(integer) --* 

                      The device's total memory size, expressed in bytes.

                      
                    

                    - **image** *(string) --* 

                      The device's image name.

                      
                    

                    - **carrier** *(string) --* 

                      The device's carrier.

                      
                    

                    - **radio** *(string) --* 

                      The device's radio.

                      
                    

                    - **remoteAccessEnabled** *(boolean) --* 

                      Specifies whether remote access has been enabled for the specified device.

                      
                    

                    - **remoteDebugEnabled** *(boolean) --* 

                      This flag is set to ``true`` if remote debugging is enabled for the device.

                       

                      Remote debugging is `no longer supported <https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html>`__.

                      
                    

                    - **fleetType** *(string) --* 

                      The type of fleet to which this device belongs. Possible values are PRIVATE and PUBLIC.

                      
                    

                    - **fleetName** *(string) --* 

                      The name of the fleet to which this device belongs.

                      
                    

                    - **instances** *(list) --* 

                      The instances that belong to this device.

                      
                      

                      - *(dict) --* 

                        Represents the device instance.

                        
                        

                        - **arn** *(string) --* 

                          The Amazon Resource Name (ARN) of the device instance.

                          
                        

                        - **deviceArn** *(string) --* 

                          The ARN of the device.

                          
                        

                        - **labels** *(list) --* 

                          An array of strings that describe the device instance.

                          
                          

                          - *(string) --* 
                      
                        

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

                          The status of the device instance. Valid values are listed here.

                          
                        

                        - **udid** *(string) --* 

                          Unique device identifier for the device instance.

                          
                        

                        - **instanceProfile** *(dict) --* 

                          A object that contains information about the instance profile.

                          
                          

                          - **arn** *(string) --* 

                            The Amazon Resource Name (ARN) of the instance profile.

                            
                          

                          - **packageCleanup** *(boolean) --* 

                            When set to ``true``, Device Farm removes app packages after a test run. The default value is ``false`` for private devices.

                            
                          

                          - **excludeAppPackagesFromCleanup** *(list) --* 

                            An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes.

                             

                            The list of packages is considered only if you set ``packageCleanup`` to ``true``.

                            
                            

                            - *(string) --* 
                        
                          

                          - **rebootAfterUse** *(boolean) --* 

                            When set to ``true``, Device Farm reboots the instance after a test run. The default value is ``true``.

                            
                          

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

                            The name of the instance profile.

                            
                          

                          - **description** *(string) --* 

                            The description of the instance profile.

                            
                      
                    
                  
                    

                    - **availability** *(string) --* 

                      Indicates how likely a device is available for a test run. Currently available in the  ListDevices and GetDevice API methods.

                      
                
                  

                  - **result** *(string) --* 

                    The problem's result.

                     

                    Allowed values include:

                     

                    
                    * PENDING
                     
                    * PASSED
                     
                    * WARNED
                     
                    * FAILED
                     
                    * SKIPPED
                     
                    * ERRORED
                     
                    * STOPPED
                    

                    
                  

                  - **message** *(string) --* 

                    A message about the problem's result.

                    
              
            
          
        
    
  
      

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

        If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.

        
  
  **Exceptions**
  
  *   :py:class:`DeviceFarm.Client.exceptions.ArgumentException`

  
  *   :py:class:`DeviceFarm.Client.exceptions.NotFoundException`

  
  *   :py:class:`DeviceFarm.Client.exceptions.LimitExceededException`

  
  *   :py:class:`DeviceFarm.Client.exceptions.ServiceAccountException`

  

  **Examples**

  The following example returns information about unique problems, given a specific Device Farm project.
  ::

    response = client.list_unique_problems(
        # You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
        arn='arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456',
        # A dynamically generated value, used for paginating results.
        nextToken='RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'uniqueProblems': {
        },
        'ResponseMetadata': {
            '...': '...',
        },
    }

  