:doc:`IoTWireless <../../iotwireless>` / Client / create_wireless_device

**********************
create_wireless_device
**********************



.. py:method:: IoTWireless.Client.create_wireless_device(**kwargs)

  

  Provisions a wireless device.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/iotwireless-2020-11-22/CreateWirelessDevice>`_  


  **Request Syntax**
  ::

    response = client.create_wireless_device(
        Type='Sidewalk'|'LoRaWAN',
        Name='string',
        Description='string',
        DestinationName='string',
        ClientRequestToken='string',
        LoRaWAN={
            'DevEui': 'string',
            'DeviceProfileId': 'string',
            'ServiceProfileId': 'string',
            'OtaaV1_1': {
                'AppKey': 'string',
                'NwkKey': 'string',
                'JoinEui': 'string'
            },
            'OtaaV1_0_x': {
                'AppKey': 'string',
                'AppEui': 'string',
                'JoinEui': 'string',
                'GenAppKey': 'string'
            },
            'AbpV1_1': {
                'DevAddr': 'string',
                'SessionKeys': {
                    'FNwkSIntKey': 'string',
                    'SNwkSIntKey': 'string',
                    'NwkSEncKey': 'string',
                    'AppSKey': 'string'
                },
                'FCntStart': 123
            },
            'AbpV1_0_x': {
                'DevAddr': 'string',
                'SessionKeys': {
                    'NwkSKey': 'string',
                    'AppSKey': 'string'
                },
                'FCntStart': 123
            },
            'FPorts': {
                'Fuota': 123,
                'Multicast': 123,
                'ClockSync': 123,
                'Positioning': {
                    'ClockSync': 123,
                    'Stream': 123,
                    'Gnss': 123
                },
                'Applications': [
                    {
                        'FPort': 123,
                        'Type': 'SemtechGeolocation',
                        'DestinationName': 'string'
                    },
                ]
            }
        },
        Tags=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        Positioning='Enabled'|'Disabled',
        Sidewalk={
            'DeviceProfileId': 'string',
            'Positioning': {
                'DestinationName': 'string'
            },
            'SidewalkManufacturingSn': 'string'
        }
    )
    
  :type Type: string
  :param Type: **[REQUIRED]** 

    The wireless device type.

    

  
  :type Name: string
  :param Name: 

    The name of the new resource.

     

    .. note::

      

      The following special characters aren't accepted: ``<>^#~$``

      

    

  
  :type Description: string
  :param Description: 

    The description of the new resource.

    

  
  :type DestinationName: string
  :param DestinationName: **[REQUIRED]** 

    The name of the destination to assign to the new wireless device.

    

  
  :type ClientRequestToken: string
  :param ClientRequestToken: 

    Each resource must have a unique client request token. The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will complete successfully. However, if you try to create a new resource using the same token but different parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. For more information about idempotency, see `Ensuring idempotency in Amazon EC2 API requests <https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html>`__.

    This field is autopopulated if not provided.

  
  :type LoRaWAN: dict
  :param LoRaWAN: 

    The device configuration information to use to create the wireless device.

    

  
    - **DevEui** *(string) --* 

      The DevEUI value.

      

    
    - **DeviceProfileId** *(string) --* 

      The ID of the device profile for the new wireless device.

      

    
    - **ServiceProfileId** *(string) --* 

      The ID of the service profile.

      

    
    - **OtaaV1_1** *(dict) --* 

      OTAA device object for v1.1 for create APIs

      

    
      - **AppKey** *(string) --* 

        The AppKey value.

        

      
      - **NwkKey** *(string) --* 

        The NwkKey value.

        

      
      - **JoinEui** *(string) --* 

        The JoinEUI value.

        

      
    
    - **OtaaV1_0_x** *(dict) --* 

      OTAA device object for create APIs for v1.0.x

      

    
      - **AppKey** *(string) --* 

        The AppKey value.

        

      
      - **AppEui** *(string) --* 

        The AppEUI value. You specify this value when using LoRaWAN versions v1.0.2 or v1.0.3.

        

      
      - **JoinEui** *(string) --* 

        The JoinEUI value. You specify this value instead of the AppEUI when using LoRaWAN version v1.0.4.

        

      
      - **GenAppKey** *(string) --* 

        The GenAppKey value.

        

      
    
    - **AbpV1_1** *(dict) --* 

      ABP device object for create APIs for v1.1

      

    
      - **DevAddr** *(string) --* 

        The DevAddr value.

        

      
      - **SessionKeys** *(dict) --* 

        Session keys for ABP v1.1

        

      
        - **FNwkSIntKey** *(string) --* 

          The FNwkSIntKey value.

          

        
        - **SNwkSIntKey** *(string) --* 

          The SNwkSIntKey value.

          

        
        - **NwkSEncKey** *(string) --* 

          The NwkSEncKey value.

          

        
        - **AppSKey** *(string) --* 

          The AppSKey value.

          

        
      
      - **FCntStart** *(integer) --* 

        The FCnt init value.

        

      
    
    - **AbpV1_0_x** *(dict) --* 

      LoRaWAN object for create APIs

      

    
      - **DevAddr** *(string) --* 

        The DevAddr value.

        

      
      - **SessionKeys** *(dict) --* 

        Session keys for ABP v1.0.x

        

      
        - **NwkSKey** *(string) --* 

          The NwkSKey value.

          

        
        - **AppSKey** *(string) --* 

          The AppSKey value.

          

        
      
      - **FCntStart** *(integer) --* 

        The FCnt init value.

        

      
    
    - **FPorts** *(dict) --* 

      List of FPort assigned for different LoRaWAN application packages to use

      

    
      - **Fuota** *(integer) --* 

        The Fport value.

        

      
      - **Multicast** *(integer) --* 

        The Fport value.

        

      
      - **ClockSync** *(integer) --* 

        The Fport value.

        

      
      - **Positioning** *(dict) --* 

        FPort values for the GNSS, stream, and ClockSync functions of the positioning information.

        

      
        - **ClockSync** *(integer) --* 

          The Fport value.

          

        
        - **Stream** *(integer) --* 

          The Fport value.

          

        
        - **Gnss** *(integer) --* 

          The Fport value.

          

        
      
      - **Applications** *(list) --* 

        Optional LoRaWAN application information, which can be used for geolocation.

        

      
        - *(dict) --* 

          LoRaWAN application configuration, which can be used to perform geolocation.

          

        
          - **FPort** *(integer) --* 

            The Fport value.

            

          
          - **Type** *(string) --* 

            Application type, which can be specified to obtain real-time position information of your LoRaWAN device.

            

          
          - **DestinationName** *(string) --* 

            The name of the position data destination that describes the AWS IoT rule that processes the device's position data for use by AWS IoT Core for LoRaWAN.

            

          
        
    
    
  
  :type Tags: list
  :param Tags: 

    The tags to attach to the new wireless device. Tags are metadata that you can use to manage a resource.

    

  
    - *(dict) --* 

      A simple label consisting of a customer-defined key-value pair

      

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

        The tag's key value.

        

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

        The tag's value.

        

      
    

  :type Positioning: string
  :param Positioning: 

    The integration status of the Device Location feature for LoRaWAN and Sidewalk devices.

    

  
  :type Sidewalk: dict
  :param Sidewalk: 

    The device configuration information to use to create the Sidewalk device.

    

  
    - **DeviceProfileId** *(string) --* 

      The ID of the Sidewalk device profile.

      

    
    - **Positioning** *(dict) --* 

      The Positioning object of the Sidewalk device.

      

    
      - **DestinationName** *(string) --* 

        The location destination name of the Sidewalk device.

        

      
    
    - **SidewalkManufacturingSn** *(string) --* 

      The Sidewalk manufacturing serial number.

      

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

    
    ::

      {
          'Arn': 'string',
          'Id': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **Arn** *(string) --* 

        The Amazon Resource Name of the new resource.

        
      

      - **Id** *(string) --* 

        The ID of the new wireless device.

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

  
  *   :py:class:`IoTWireless.Client.exceptions.ResourceNotFoundException`

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

  
  *   :py:class:`IoTWireless.Client.exceptions.ConflictException`

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

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

  