From 09eefb3339ac1955135e40476806034374ae1fe8 Mon Sep 17 00:00:00 2001 From: skysharma Date: Wed, 11 Oct 2023 13:51:58 -0500 Subject: [PATCH 1/9] setup.py; chng author_email to info@clearblade.com --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index f1454a73..98f3f949 100644 --- a/setup.py +++ b/setup.py @@ -58,7 +58,7 @@ description=description, long_description=readme, author="Clearblade", - author_email="googleapis-packages@oogle.com", + author_email="info@clearblade.com", license="Apache 2.0", url="https://github.com/clearblade/python-iot", classifiers=[ From b99540e14c67eb489ee366ca134541b076a54a40 Mon Sep 17 00:00:00 2001 From: jslavin-clearblade <116581763+jslavin-clearblade@users.noreply.github.com> Date: Mon, 12 Feb 2024 13:00:40 -0500 Subject: [PATCH 2/9] Update README.rst --- README.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 8adb4569..4a069bde 100644 --- a/README.rst +++ b/README.rst @@ -8,9 +8,11 @@ To use this library, you first need to go through the following steps: 1. Install pip package - ```pip install clearblade-cloud-iot``` -2. Set an environment variable **CLEARBLADE_CONFIGURATION**, pointing to your ClearBlade service account JSON file. +2. Set an environment variable **CLEARBLADE_CONFIGURATION**, pointing to your ClearBlade service account JSON file. Look `here`_ for how to create a service account and download a credentials JSON file. -3. Optionally set an environment variable **BINARYDATA_AND_TIME_GOOGLE_FORMAT** to True. Look at **Note about types of times and binaryData** below for details. +3. Optionally set an environment variable **BINARYDATA_AND_TIME_GOOGLE_FORMAT** to True. Look at **Note about types of times and binaryData** below for details. + +.. _`here`: https://clearblade.atlassian.net/wiki/spaces/IC/pages/2240675843/Add+service+accounts+to+a+project Installation ~~~~~~~~~~~~ From 39d064aa74959e07800bcbfe47b6059d9b083bd1 Mon Sep 17 00:00:00 2001 From: jslavin-clearblade <116581763+jslavin-clearblade@users.noreply.github.com> Date: Mon, 20 May 2024 12:56:54 -0400 Subject: [PATCH 3/9] Update README.rst --- README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/README.rst b/README.rst index 4a069bde..0fb1937f 100644 --- a/README.rst +++ b/README.rst @@ -3,6 +3,7 @@ Python Client for ClearBlade IoT Core API Quick start ----------- +**Note: This SDK is for use with ClearBlade IoT Core and NOT ClearBlade IoT Enterprise. The Python SDK for ClearBlade IoT Core can be found here: https://github.com/ClearBlade/python-iot.** To use this library, you first need to go through the following steps: From 9456e8c931dc10caf39a4729267669749c35616b Mon Sep 17 00:00:00 2001 From: jslavin-clearblade <116581763+jslavin-clearblade@users.noreply.github.com> Date: Mon, 20 May 2024 12:57:59 -0400 Subject: [PATCH 4/9] Update README.rst --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 0fb1937f..a7753b18 100644 --- a/README.rst +++ b/README.rst @@ -3,7 +3,7 @@ Python Client for ClearBlade IoT Core API Quick start ----------- -**Note: This SDK is for use with ClearBlade IoT Core and NOT ClearBlade IoT Enterprise. The Python SDK for ClearBlade IoT Core can be found here: https://github.com/ClearBlade/python-iot.** +**Note: This SDK is for use with ClearBlade IoT Core and NOT ClearBlade IoT Enterprise. The Python SDK for ClearBlade IoT Enterprise can be found here: https://github.com/ClearBlade/ClearBlade-Python-SDK/.** To use this library, you first need to go through the following steps: From 30a0caf9276be85024bc45e6fa8a7ac1c7824de1 Mon Sep 17 00:00:00 2001 From: ronak-ingress <114172748+ronak-ingress@users.noreply.github.com> Date: Mon, 21 Jul 2025 19:36:17 +0530 Subject: [PATCH 5/9] Update device_manager.py (#42) removed Maximum IDs: 10,000. --- google/cloud/iot_v1/types/device_manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google/cloud/iot_v1/types/device_manager.py b/google/cloud/iot_v1/types/device_manager.py index 93d6622d..8b8b19f5 100644 --- a/google/cloud/iot_v1/types/device_manager.py +++ b/google/cloud/iot_v1/types/device_manager.py @@ -318,11 +318,11 @@ class ListDevicesRequest(proto.Message): ``projects/my-project/locations/us-central1/registries/my-registry``. device_num_ids (Sequence[int]): A list of device numeric IDs. If empty, this - field is ignored. Maximum IDs: 10,000. + field is ignored. device_ids (Sequence[str]): A list of device string IDs. For example, ``['device0', 'device12']``. If empty, this field is - ignored. Maximum IDs: 10,000 + ignored. field_mask (google.protobuf.field_mask_pb2.FieldMask): The fields of the ``Device`` resource to be returned in the response. The fields ``id`` and ``num_id`` are always From 4f93c02f4eaff3b389c14d2207e3b3edf06fa23c Mon Sep 17 00:00:00 2001 From: sky-sharma Date: Mon, 21 Jul 2025 08:01:33 -0700 Subject: [PATCH 6/9] Implementing, using new FieldMask class (#39) (#43) --- clearblade/cloud/iot_v1/device_types.py | 4 ++-- clearblade/cloud/iot_v1/resources.py | 20 +++++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/clearblade/cloud/iot_v1/device_types.py b/clearblade/cloud/iot_v1/device_types.py index f686ffcd..0b7d6cdd 100644 --- a/clearblade/cloud/iot_v1/device_types.py +++ b/clearblade/cloud/iot_v1/device_types.py @@ -43,7 +43,7 @@ """ from typing import List -from .resources import GatewayType, LogLevel, PublicKeyFormat, PublicKeyCredential, DeviceCredential +from .resources import GatewayType, LogLevel, PublicKeyFormat, PublicKeyCredential, DeviceCredential, FieldMask from .utils import get_value import os from proto.datetime_helpers import DatetimeWithNanoseconds @@ -591,7 +591,7 @@ def _prepare_params_for_list(self): if self.device_ids: params['deviceIds'] = self.device_ids if self.field_mask: - params['fieldMask'] = self.field_mask + params['fieldMask'] = FieldMask.convert_fieldmask_for_list(self.field_mask) if self.gateway_list_options : if 'associationsDeviceId' in self.gateway_list_options: params['gatewayListOptions.associationsDeviceId'] = self.gateway_list_options['associationsDeviceId'] diff --git a/clearblade/cloud/iot_v1/resources.py b/clearblade/cloud/iot_v1/resources.py index b933a701..0d37e590 100644 --- a/clearblade/cloud/iot_v1/resources.py +++ b/clearblade/cloud/iot_v1/resources.py @@ -168,4 +168,22 @@ def convert_credentials_for_create_update(cls, credentials): if updateDeviceCredential: credentials[index] = credential - return credentials \ No newline at end of file + return credentials + +class FieldMask(): + def __init__(self, paths: [str]): + self.paths = paths + + def __getitem__(self, arg): + return getattr(self, arg) + + def get(self, arg): + return getattr(self, arg) + + @classmethod + def convert_fieldmask_for_list(cls, field_mask): + if (isinstance(field_mask, FieldMask)): + field_mask = field_mask.__dict__ + if 'paths' in field_mask: + field_mask = field_mask['paths'] + return field_mask From d0e17e9137e7e452d4f4709851afb9c7b44b577c Mon Sep 17 00:00:00 2001 From: sky-sharma Date: Mon, 21 Jul 2025 16:20:51 -0700 Subject: [PATCH 7/9] setup.py; 2.0.5 -> 2.0.6 (#44) --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 97e73031..e31e60ff 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,7 @@ name = "clearblade-cloud-iot" description = "Cloud IoT API client library" -version = "2.0.5" +version = "2.0.6" release_status = "Development Status :: 5 - Production/Stable" dependencies = ["httpx", "proto-plus"] From a431572d7ac49dced1ca03b758b780a24201c1cb Mon Sep 17 00:00:00 2001 From: sky-sharma Date: Tue, 23 Sep 2025 15:52:04 -0700 Subject: [PATCH 8/9] Correct broken docs links and improve README (#45) * Tried to clarify differences between IoT Core and IoT Enterprise; corrected docs links * Formatting * Formatting * Formatting * Formatting * Formatting * Formatting * Formatting * Formatting * Formatting * Added link to explain IoT Core Standard vs Enterprise * Improved link explaining differences between IoT Core Standard & Enterprise * setup.py; ver 2.0.6 -> 2.0.7 --------- Co-authored-by: sky-sharma --- README.rst | 25 +++++++++++++++++++++---- setup.py | 2 +- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/README.rst b/README.rst index a7753b18..3e95a9cd 100644 --- a/README.rst +++ b/README.rst @@ -3,17 +3,34 @@ Python Client for ClearBlade IoT Core API Quick start ----------- -**Note: This SDK is for use with ClearBlade IoT Core and NOT ClearBlade IoT Enterprise. The Python SDK for ClearBlade IoT Enterprise can be found here: https://github.com/ClearBlade/ClearBlade-Python-SDK/.** +**Notes** -To use this library, you first need to go through the following steps: +1. This SDK is for use with ClearBlade IoT Core Standard and ClearBlade IoT Core Enterprise. + +2. ClearBlade IoT **Core** Enterprise is DIFFERENT from ClearBlade IoT Enterprise!!! + +3. If you are using ClearBlade but not using ClearBlade IoT Core (Standard or Enterprise), then you need a different SDK that can be found `here `_. + +4. To understand how IoT Core Enterprise differs from Standard, look `here `_. + + + +To use this SDK, you first need to go through the following steps: 1. Install pip package - ```pip install clearblade-cloud-iot``` -2. Set an environment variable **CLEARBLADE_CONFIGURATION**, pointing to your ClearBlade service account JSON file. Look `here`_ for how to create a service account and download a credentials JSON file. +2. Set an environment variable **CLEARBLADE_CONFIGURATION**, pointing to your ClearBlade service account JSON file (see below). 3. Optionally set an environment variable **BINARYDATA_AND_TIME_GOOGLE_FORMAT** to True. Look at **Note about types of times and binaryData** below for details. -.. _`here`: https://clearblade.atlassian.net/wiki/spaces/IC/pages/2240675843/Add+service+accounts+to+a+project + +To create a service account and download a credentials JSON file look at the appropriate link below: + +`ClearBlade IoT Core Standard `_ + +`ClearBlade IoT Core Enterprise `_ + + Installation ~~~~~~~~~~~~ diff --git a/setup.py b/setup.py index e31e60ff..56ba1951 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,7 @@ name = "clearblade-cloud-iot" description = "Cloud IoT API client library" -version = "2.0.6" +version = "2.0.7" release_status = "Development Status :: 5 - Production/Stable" dependencies = ["httpx", "proto-plus"] From c64c1dc60326a07099e12f721dd2ffc364ddb870 Mon Sep 17 00:00:00 2001 From: sky-sharma Date: Wed, 24 Sep 2025 05:05:56 -0700 Subject: [PATCH 9/9] README different link format (#46) Co-authored-by: sky-sharma --- README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 3e95a9cd..372f5a91 100644 --- a/README.rst +++ b/README.rst @@ -9,9 +9,9 @@ Quick start 2. ClearBlade IoT **Core** Enterprise is DIFFERENT from ClearBlade IoT Enterprise!!! -3. If you are using ClearBlade but not using ClearBlade IoT Core (Standard or Enterprise), then you need a different SDK that can be found `here `_. +3. If you are using ClearBlade but not using ClearBlade IoT Core (Standard or Enterprise), then you need this different SDK: ``_. -4. To understand how IoT Core Enterprise differs from Standard, look `here `_. +4. To understand how IoT Core Enterprise differs from Standard, look here: ``_.