:doc:`IoTDeviceAdvisor <../../iotdeviceadvisor>` / Client / update_suite_definition

***********************
update_suite_definition
***********************



.. py:method:: IoTDeviceAdvisor.Client.update_suite_definition(**kwargs)

  

  Updates a Device Advisor test suite.

   

  Requires permission to access the `UpdateSuiteDefinition <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions>`__ action.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/iotdeviceadvisor-2020-09-18/UpdateSuiteDefinition>`_  


  **Request Syntax**
  ::

    response = client.update_suite_definition(
        suiteDefinitionId='string',
        suiteDefinitionConfiguration={
            'suiteDefinitionName': 'string',
            'devices': [
                {
                    'thingArn': 'string',
                    'certificateArn': 'string',
                    'deviceRoleArn': 'string'
                },
            ],
            'intendedForQualification': True|False,
            'isLongDurationTest': True|False,
            'rootGroup': 'string',
            'devicePermissionRoleArn': 'string',
            'protocol': 'MqttV3_1_1'|'MqttV5'|'MqttV3_1_1_OverWebSocket'|'MqttV5_OverWebSocket'
        }
    )
    
  :type suiteDefinitionId: string
  :param suiteDefinitionId: **[REQUIRED]** 

    Suite definition ID of the test suite to be updated.

    

  
  :type suiteDefinitionConfiguration: dict
  :param suiteDefinitionConfiguration: **[REQUIRED]** 

    Updates a Device Advisor test suite with suite definition configuration.

    

  
    - **suiteDefinitionName** *(string) --* **[REQUIRED]** 

      Gets the suite definition name. This is a required parameter.

      

    
    - **devices** *(list) --* 

      Gets the devices configured.

      

    
      - *(dict) --* 

        Information of a test device. A thing ARN, certificate ARN or device role ARN is required.

        

      
        - **thingArn** *(string) --* 

          Lists device's thing ARN.

          

        
        - **certificateArn** *(string) --* 

          Lists device's certificate ARN.

          

        
        - **deviceRoleArn** *(string) --* 

          Lists device's role ARN.

          

        
      
  
    - **intendedForQualification** *(boolean) --* 

      Gets the tests intended for qualification in a suite.

      

    
    - **isLongDurationTest** *(boolean) --* 

      Verifies if the test suite is a long duration test.

      

    
    - **rootGroup** *(string) --* **[REQUIRED]** 

      Gets the test suite root group. This is a required parameter. For updating or creating the latest qualification suite, if ``intendedForQualification`` is set to true, ``rootGroup`` can be an empty string. If ``intendedForQualification`` is false, ``rootGroup`` cannot be an empty string. If ``rootGroup`` is empty, and ``intendedForQualification`` is set to true, all the qualification tests are included, and the configuration is default.

       

      For a qualification suite, the minimum length is 0, and the maximum is 2048. For a non-qualification suite, the minimum length is 1, and the maximum is 2048.

      

    
    - **devicePermissionRoleArn** *(string) --* **[REQUIRED]** 

      Gets the device permission ARN. This is a required parameter.

      

    
    - **protocol** *(string) --* 

      Sets the MQTT protocol that is configured in the suite definition.

      

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

    
    ::

      {
          'suiteDefinitionId': 'string',
          'suiteDefinitionArn': 'string',
          'suiteDefinitionName': 'string',
          'suiteDefinitionVersion': 'string',
          'createdAt': datetime(2015, 1, 1),
          'lastUpdatedAt': datetime(2015, 1, 1)
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **suiteDefinitionId** *(string) --* 

        Suite definition ID of the updated test suite.

        
      

      - **suiteDefinitionArn** *(string) --* 

        Amazon Resource Name (ARN) of the updated test suite.

        
      

      - **suiteDefinitionName** *(string) --* 

        Updates the suite definition name. This is a required parameter.

        
      

      - **suiteDefinitionVersion** *(string) --* 

        Suite definition version of the updated test suite.

        
      

      - **createdAt** *(datetime) --* 

        Timestamp of when the test suite was created.

        
      

      - **lastUpdatedAt** *(datetime) --* 

        Timestamp of when the test suite was updated.

        
  
  **Exceptions**
  
  *   :py:class:`IoTDeviceAdvisor.Client.exceptions.ValidationException`

  
  *   :py:class:`IoTDeviceAdvisor.Client.exceptions.InternalServerException`

  