:doc:`IoTFleetWise <../../iotfleetwise>` / Client / batch_create_vehicle

********************
batch_create_vehicle
********************



.. py:method:: IoTFleetWise.Client.batch_create_vehicle(**kwargs)

  

  Creates a group, or batch, of vehicles.

   

  .. note::

    

    You must specify a decoder manifest and a vehicle model (model manifest) for each vehicle.

    

   

  For more information, see `Create multiple vehicles (AWS CLI) <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/create-vehicles-cli.html>`__ in the *Amazon Web Services IoT FleetWise Developer Guide*.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/iotfleetwise-2021-06-17/BatchCreateVehicle>`_  


  **Request Syntax**
  ::

    response = client.batch_create_vehicle(
        vehicles=[
            {
                'vehicleName': 'string',
                'modelManifestArn': 'string',
                'decoderManifestArn': 'string',
                'attributes': {
                    'string': 'string'
                },
                'associationBehavior': 'CreateIotThing'|'ValidateIotThingExists',
                'tags': [
                    {
                        'Key': 'string',
                        'Value': 'string'
                    },
                ],
                'stateTemplates': [
                    {
                        'identifier': 'string',
                        'stateTemplateUpdateStrategy': {
                            'periodic': {
                                'stateTemplateUpdateRate': {
                                    'unit': 'MILLISECOND'|'SECOND'|'MINUTE'|'HOUR',
                                    'value': 123
                                }
                            },
                            'onChange': {}
                            
                        }
                    },
                ]
            },
        ]
    )
    
  :type vehicles: list
  :param vehicles: **[REQUIRED]** 

    A list of information about each vehicle to create. For more information, see the API data type.

    

  
    - *(dict) --* 

      Information about the vehicle to create.

      

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

        The unique ID of the vehicle to create.

        

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

        The ARN of the vehicle model (model manifest) to create the vehicle from.

        

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

        The Amazon Resource Name (ARN) of a decoder manifest associated with the vehicle to create.

        

      
      - **attributes** *(dict) --* 

        Static information about a vehicle in a key-value pair. For example: ``"engine Type"`` : ``"v6"``

        

      
        - *(string) --* 

        
          - *(string) --* 

          
    
  
      - **associationBehavior** *(string) --* 

        An option to create a new Amazon Web Services IoT thing when creating a vehicle, or to validate an existing thing as a vehicle.

        

      
      - **tags** *(list) --* 

        Metadata which can be used to manage the vehicle.

        

      
        - *(dict) --* 

          A set of key/value pairs that are used to manage the resource.

          

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

            The tag's key.

            

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

            The tag's value.

            

          
        
    
      - **stateTemplates** *(list) --* 

        Associate state templates to track the state of the vehicle. State templates determine which signal updates the vehicle sends to the cloud.

        

      
        - *(dict) --* 

          The state template associated with a vehicle. State templates contain state properties, which are signals that belong to a signal catalog that is synchronized between the Amazon Web Services IoT FleetWise Edge and the Amazon Web Services Cloud.

           

          .. warning::

             

            Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see `Amazon Web Services Region and feature availability <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html>`__ in the *Amazon Web Services IoT FleetWise Developer Guide*.

            

          

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

            The unique ID of the state template.

            

          
          - **stateTemplateUpdateStrategy** *(dict) --* **[REQUIRED]** 

            The update strategy for the state template. Vehicles associated with the state template can stream telemetry data with either an ``onChange`` or ``periodic`` update strategy.

             

            .. warning::

               

              Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see `Amazon Web Services Region and feature availability <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html>`__ in the *Amazon Web Services IoT FleetWise Developer Guide*.

              

            .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``periodic``, ``onChange``. 

          
            - **periodic** *(dict) --* 

              Vehicles associated with the state template will stream telemetry data during a specified time period.

              

            
              - **stateTemplateUpdateRate** *(dict) --* **[REQUIRED]** 

                The length of time between state template updates.

                

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

                  A unit of time.

                  

                
                - **value** *(integer) --* **[REQUIRED]** 

                  A number of time units.

                  

                
              
            
            - **onChange** *(dict) --* 

              Vehicles associated with the state template will stream telemetry data when there is a change.

              

            
            
          
        
    
    

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

    
    ::

      {
          'vehicles': [
              {
                  'vehicleName': 'string',
                  'arn': 'string',
                  'thingArn': 'string'
              },
          ],
          'errors': [
              {
                  'vehicleName': 'string',
                  'code': 'string',
                  'message': 'string'
              },
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **vehicles** *(list) --* 

        A list of information about a batch of created vehicles. For more information, see the API data type.

        
        

        - *(dict) --* 

          Information about a created vehicle.

          
          

          - **vehicleName** *(string) --* 

            The unique ID of the vehicle to create.

            
          

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

            The ARN of the created vehicle.

            
          

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

            The ARN of a created or validated Amazon Web Services IoT thing.

            
      
    
      

      - **errors** *(list) --* 

        A list of information about creation errors, or an empty list if there aren't any errors.

        
        

        - *(dict) --* 

          An HTTP error resulting from creating a vehicle.

          
          

          - **vehicleName** *(string) --* 

            The ID of the vehicle with the error.

            
          

          - **code** *(string) --* 

            An HTTP error code.

            
          

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

            A description of the HTTP error.

            
      
    
  
  **Exceptions**
  
  *   :py:class:`IoTFleetWise.Client.exceptions.InternalServerException`

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

  
  *   :py:class:`IoTFleetWise.Client.exceptions.ThrottlingException`

  
  *   :py:class:`IoTFleetWise.Client.exceptions.ValidationException`

  
  *   :py:class:`IoTFleetWise.Client.exceptions.AccessDeniedException`

  