def add_device(self, **kwargs):
        """Add a new device to catalog.

        .. code-block:: python

            device = {
                "mechanism": "connector",
                "certificate_fingerprint": "<certificate>",
                "name": "New device name",
                "certificate_issuer_id": "<id>"
            }
            resp = api.add_device(**device)
            print(resp.created_at)

        :param str certificate_fingerprint: Fingerprint of the device certificate
        :param str certificate_issuer_id: ID of the issuer of the certificate
        :param str name: The name of the device
        :param str account_id: The owning Identity and Access Managment (IAM) account ID
        :param obj custom_attributes: Up to 5 custom JSON attributes
        :param str description: The description of the device
        :param str device_class: Class of the device
        :param str id: The ID of the device
        :param str manifest_url: URL for the current device manifest
        :param str mechanism: The ID of the channel used to communicate with the device
        :param str mechanism_url: The address of the connector to use
        :param str serial_number: The serial number of the device
        :param str state: The current state of the device
        :param int trust_class: The device trust class
        :param str vendor_id: The device vendor ID
        :param str alias: The alias of the device
        :parama str device_type: The endpoint type of the device - e.g. if the device is a gateway
        :param str host_gateway: The endpoint_name of the host gateway, if appropriate
        :param datetime bootstrap_certificate_expiration:
        :param datetime connector_certificate_expiration: Expiration date of the certificate
            used to connect to connector server
        :param int device_execution_mode: The device class
        :param str firmware_checksum: The SHA256 checksum of the current firmware image
        :param datetime manifest_timestamp: The timestamp of the current manifest version
        :return: the newly created device object.
        :rtype: Device
        """
        api = self._get_api(device_directory.DefaultApi)
        device = Device._create_request_map(kwargs)
        device = DeviceData(**device)
        return Device(api.device_create(device))
Add a new device to catalog.

        .. code-block:: python

            device = {
                "mechanism": "connector",
                "certificate_fingerprint": "<certificate>",
                "name": "New device name",
                "certificate_issuer_id": "<id>"
            }
            resp = api.add_device(**device)
            print(resp.created_at)

        :param str certificate_fingerprint: Fingerprint of the device certificate
        :param str certificate_issuer_id: ID of the issuer of the certificate
        :param str name: The name of the device
        :param str account_id: The owning Identity and Access Managment (IAM) account ID
        :param obj custom_attributes: Up to 5 custom JSON attributes
        :param str description: The description of the device
        :param str device_class: Class of the device
        :param str id: The ID of the device
        :param str manifest_url: URL for the current device manifest
        :param str mechanism: The ID of the channel used to communicate with the device
        :param str mechanism_url: The address of the connector to use
        :param str serial_number: The serial number of the device
        :param str state: The current state of the device
        :param int trust_class: The device trust class
        :param str vendor_id: The device vendor ID
        :param str alias: The alias of the device
        :parama str device_type: The endpoint type of the device - e.g. if the device is a gateway
        :param str host_gateway: The endpoint_name of the host gateway, if appropriate
        :param datetime bootstrap_certificate_expiration:
        :param datetime connector_certificate_expiration: Expiration date of the certificate
            used to connect to connector server
        :param int device_execution_mode: The device class
        :param str firmware_checksum: The SHA256 checksum of the current firmware image
        :param datetime manifest_timestamp: The timestamp of the current manifest version
        :return: the newly created device object.
        :rtype: Device