diff --git a/ce/docs/AvailableEntityKeys.md b/ce/docs/AvailableEntityKeys.md index 6c387e8c..2dea2266 100644 --- a/ce/docs/AvailableEntityKeys.md +++ b/ce/docs/AvailableEntityKeys.md @@ -10,8 +10,8 @@ Contains unique time series and attribute key names discovered from entities mat | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| | **entity_types** | [**List[EntityType]**](EntityType.md) | Set of entity types found among the matched entities. | | -| **timeseries** | **List[str]** | | | -| **attribute** | **List[str]** | | | +| **timeseries** | **List[str]** | List of unique time series key names available on the matched entities. | | +| **attribute** | **List[str]** | List of unique attribute key names available on the matched entities. | | diff --git a/ce/docs/AvailableEntityKeysV2.md b/ce/docs/AvailableEntityKeysV2.md index 63ebe0c3..c07b047f 100644 --- a/ce/docs/AvailableEntityKeysV2.md +++ b/ce/docs/AvailableEntityKeysV2.md @@ -10,7 +10,7 @@ Contains unique time series and attribute key names discovered from entities mat | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| | **entity_types** | [**List[EntityType]**](EntityType.md) | Set of entity types found among the matched entities. | | -| **timeseries** | [**List[KeyInfo]**](KeyInfo.md) | | [optional] | +| **timeseries** | [**List[KeyInfo]**](KeyInfo.md) | List of unique time series keys available on the matched entities, sorted alphabetically. Omitted when timeseries keys were not requested. | [optional] | | **attributes** | **Dict[str, List[KeyInfo]]** | Map of attribute scope to the list of unique attribute keys available on the matched entities. Only scopes supported by the matched entity types are included. Omitted when attribute keys were not requested or when none of the requested scopes apply to the matched entity types. | [optional] | diff --git a/ce/docs/EntityDataDiff.md b/ce/docs/EntityDataDiff.md index 327ac36d..97bbb7e5 100644 --- a/ce/docs/EntityDataDiff.md +++ b/ce/docs/EntityDataDiff.md @@ -74,7 +74,7 @@ #### WidgetsBundleExportData *(extends EntityExportData, entity_type=`WIDGETS_BUNDLE`)* | Name | Type | Description | Notes | |------|------|-------------|-------| -| widgets | List[object] | | [optional] | +| widgets | List[object] | List of widgets in the bundle | [optional] | | fqns | List[str] | | [optional] | #### WidgetTypeExportData *(extends EntityExportData, entity_type=`WIDGET_TYPE`)* diff --git a/ce/docs/EntityExportData.md b/ce/docs/EntityExportData.md index 55cbb155..20bed946 100644 --- a/ce/docs/EntityExportData.md +++ b/ce/docs/EntityExportData.md @@ -68,7 +68,7 @@ Base export container for ThingsBoard entities #### WidgetsBundleExportData *(entity_type=`WIDGETS_BUNDLE`)* | Name | Type | Description | Notes | |------|------|-------------|-------| -| widgets | List[object] | | [optional] | +| widgets | List[object] | List of widgets in the bundle | [optional] | | fqns | List[str] | | [optional] | #### WidgetTypeExportData *(entity_type=`WIDGET_TYPE`)* diff --git a/ce/docs/TbChatRequest.md b/ce/docs/TbChatRequest.md index 572ba6ae..e010ce61 100644 --- a/ce/docs/TbChatRequest.md +++ b/ce/docs/TbChatRequest.md @@ -18,7 +18,7 @@ #### TbUserMessage | Name | Type | Description | Notes | |------|------|-------------|-------| -| contents | List[TbContent] | | | +| contents | List[TbContent] | A list of content parts that make up the complete user prompt | | #### AiModelConfig | Name | Type | Description | Notes | diff --git a/ce/docs/TbUserMessage.md b/ce/docs/TbUserMessage.md index de41d5ab..026e84dc 100644 --- a/ce/docs/TbUserMessage.md +++ b/ce/docs/TbUserMessage.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -| **contents** | [**List[TbContent]**](TbContent.md) | | | +| **contents** | [**List[TbContent]**](TbContent.md) | A list of content parts that make up the complete user prompt | | diff --git a/ce/docs/WidgetsBundleExportData.md b/ce/docs/WidgetsBundleExportData.md index 052a66cc..678c07a7 100644 --- a/ce/docs/WidgetsBundleExportData.md +++ b/ce/docs/WidgetsBundleExportData.md @@ -9,7 +9,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -| **widgets** | **List[object]** | | [optional] | +| **widgets** | **List[object]** | List of widgets in the bundle | [optional] | | **fqns** | **List[str]** | | [optional] | diff --git a/ce/spec/openapi.json b/ce/spec/openapi.json index 58423655..7e50f194 100644 --- a/ce/spec/openapi.json +++ b/ce/spec/openapi.json @@ -84999,6 +84999,7 @@ }, "timeseries": { "type": "array", + "description": "List of unique time series key names available on the matched entities.", "items": { "type": "string", "example": "temperature", @@ -85008,6 +85009,7 @@ }, "attribute": { "type": "array", + "description": "List of unique attribute key names available on the matched entities.", "items": { "type": "string", "example": "serialNumber", @@ -85040,6 +85042,7 @@ }, "timeseries": { "type": "array", + "description": "List of unique time series keys available on the matched entities, sorted alphabetically.\nOmitted when timeseries keys were not requested.", "items": { "$ref": "#/components/schemas/KeyInfo" } @@ -99552,6 +99555,7 @@ "properties": { "contents": { "type": "array", + "description": "A list of content parts that make up the complete user prompt", "items": { "$ref": "#/components/schemas/TbContent" }, @@ -101714,6 +101718,7 @@ "properties": { "widgets": { "type": "array", + "description": "List of widgets in the bundle", "items": { "$ref": "#/components/schemas/JsonNode" } diff --git a/ce/tb_ce_client/models/available_entity_keys.py b/ce/tb_ce_client/models/available_entity_keys.py index 561ebcc3..09ba2a5c 100644 --- a/ce/tb_ce_client/models/available_entity_keys.py +++ b/ce/tb_ce_client/models/available_entity_keys.py @@ -33,8 +33,8 @@ class AvailableEntityKeys(BaseModel): Contains unique time series and attribute key names discovered from entities matching a query. Used primarily for UI hints such as autocomplete suggestions. """ # noqa: E501 entity_types: List[EntityType] = Field(description="Set of entity types found among the matched entities.", serialization_alias="entityTypes") - timeseries: List[Annotated[str, Field(strict=True)]] - attribute: List[Annotated[str, Field(strict=True)]] + timeseries: List[Annotated[str, Field(strict=True)]] = Field(description="List of unique time series key names available on the matched entities.") + attribute: List[Annotated[str, Field(strict=True)]] = Field(description="List of unique attribute key names available on the matched entities.") __properties: ClassVar[List[str]] = ["entityTypes", "timeseries", "attribute"] model_config = ConfigDict( diff --git a/ce/tb_ce_client/models/available_entity_keys_v2.py b/ce/tb_ce_client/models/available_entity_keys_v2.py index 5db8f600..5f865746 100644 --- a/ce/tb_ce_client/models/available_entity_keys_v2.py +++ b/ce/tb_ce_client/models/available_entity_keys_v2.py @@ -33,7 +33,7 @@ class AvailableEntityKeysV2(BaseModel): Contains unique time series and attribute key names discovered from entities matching a query, optionally including a sample value for each key. """ # noqa: E501 entity_types: List[EntityType] = Field(description="Set of entity types found among the matched entities.", serialization_alias="entityTypes") - timeseries: Optional[List[KeyInfo]] = None + timeseries: Optional[List[KeyInfo]] = Field(default=None, description="List of unique time series keys available on the matched entities, sorted alphabetically. Omitted when timeseries keys were not requested.") attributes: Optional[Dict[str, List[KeyInfo]]] = Field(default=None, description="Map of attribute scope to the list of unique attribute keys available on the matched entities. Only scopes supported by the matched entity types are included. Omitted when attribute keys were not requested or when none of the requested scopes apply to the matched entity types.") __properties: ClassVar[List[str]] = ["entityTypes", "timeseries", "attributes"] diff --git a/ce/tb_ce_client/models/tb_user_message.py b/ce/tb_ce_client/models/tb_user_message.py index 8073aaca..dd68ee88 100644 --- a/ce/tb_ce_client/models/tb_user_message.py +++ b/ce/tb_ce_client/models/tb_user_message.py @@ -32,7 +32,7 @@ class TbUserMessage(BaseModel): """ TbUserMessage """ # noqa: E501 - contents: Annotated[List[TbContent], Field(min_length=1)] + contents: Annotated[List[TbContent], Field(min_length=1)] = Field(description="A list of content parts that make up the complete user prompt") __properties: ClassVar[List[str]] = ["contents"] model_config = ConfigDict( diff --git a/ce/tb_ce_client/models/widgets_bundle_export_data.py b/ce/tb_ce_client/models/widgets_bundle_export_data.py index b1062a03..ce515371 100644 --- a/ce/tb_ce_client/models/widgets_bundle_export_data.py +++ b/ce/tb_ce_client/models/widgets_bundle_export_data.py @@ -36,7 +36,7 @@ class WidgetsBundleExportData(EntityExportData): WidgetsBundleExportData """ # noqa: E501 entity_type: EntityType = Field(default=EntityType.WIDGETS_BUNDLE, serialization_alias="entityType") # post_process: discriminator default - widgets: Optional[List[Any]] = None + widgets: Optional[List[Any]] = Field(default=None, description="List of widgets in the bundle") fqns: Optional[List[StrictStr]] = None __properties: ClassVar[List[str]] = ["entity", "relations", "attributes", "calculatedFields", "entityType", "widgets", "fqns"] diff --git a/paas/docs/AiChatControllerApi.md b/paas/docs/AiChatControllerApi.md index a1bbb19b..4c84d0cf 100644 --- a/paas/docs/AiChatControllerApi.md +++ b/paas/docs/AiChatControllerApi.md @@ -7,7 +7,7 @@ object client.create_chat(body: object) # createChat None client.delete_chat(chat_id: UUID) # deleteChat object client.get_chat_messages(chat_id: UUID) # getChatMessages object client.list_chats(chat_type: ChatType) # listChats -List[object] client.send_chat_message(chat_id: UUID, x_authorization: str, body: str) # sendChatMessage +List[object] client.send_chat_message(chat_id: UUID, x_authorization: str, body: str, accept_language: Optional[str] = None) # sendChatMessage None client.update_chat(chat_id: UUID, body: object) # updateChat ``` @@ -103,7 +103,7 @@ listChats ## send_chat_message ```python -List[object] client.send_chat_message(chat_id: UUID, x_authorization: str, body: str) +List[object] client.send_chat_message(chat_id: UUID, x_authorization: str, body: str, accept_language: Optional[str] = None) ``` **POST** `/api/ai/chats/{chatId}/messages` @@ -118,6 +118,7 @@ sendChatMessage | **chat_id** | **UUID** | | | | **x_authorization** | **str** | | | | **body** | **str** | | | +| **accept_language** | **str** | | [optional] | ### Return type diff --git a/paas/docs/AiDeviceDashboardControllerApi.md b/paas/docs/AiDeviceDashboardControllerApi.md new file mode 100644 index 00000000..b9112caa --- /dev/null +++ b/paas/docs/AiDeviceDashboardControllerApi.md @@ -0,0 +1,32 @@ +# AiDeviceDashboardControllerApi + +`ThingsboardClient` methods: + +```python +object client.generate_dashboard(device_id: UUID, x_authorization: str, body: object) # generateDashboard +``` + + +## generate_dashboard + +```python +object client.generate_dashboard(device_id: UUID, x_authorization: str, body: object) +``` + +**POST** `/api/ai/devices/{deviceId}/dashboard` + +generateDashboard + + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **device_id** | **UUID** | | | +| **x_authorization** | **str** | | | +| **body** | **object** | | | + +### Return type + +**object** + diff --git a/paas/docs/AvailableEntityKeys.md b/paas/docs/AvailableEntityKeys.md index fb976f2a..246c804c 100644 --- a/paas/docs/AvailableEntityKeys.md +++ b/paas/docs/AvailableEntityKeys.md @@ -10,8 +10,8 @@ Contains unique time series and attribute key names discovered from entities mat | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| | **entity_types** | [**List[EntityType]**](EntityType.md) | Set of entity types found among the matched entities. | | -| **timeseries** | **List[str]** | | | -| **attribute** | **List[str]** | | | +| **timeseries** | **List[str]** | List of unique time series key names available on the matched entities. | | +| **attribute** | **List[str]** | List of unique attribute key names available on the matched entities. | | diff --git a/paas/docs/AvailableEntityKeysV2.md b/paas/docs/AvailableEntityKeysV2.md index 88bfe6d5..15b21509 100644 --- a/paas/docs/AvailableEntityKeysV2.md +++ b/paas/docs/AvailableEntityKeysV2.md @@ -11,7 +11,7 @@ Contains unique time series and attribute key names discovered from entities mat |------------ | ------------- | ------------- | -------------| | **total_entities** | **int** | Total number of entities that matched the query filter. | | | **entity_types** | [**List[EntityType]**](EntityType.md) | Set of entity types found among the matched entities. | | -| **timeseries** | [**List[KeyInfo]**](KeyInfo.md) | | [optional] | +| **timeseries** | [**List[KeyInfo]**](KeyInfo.md) | List of unique time series keys available on the matched entities, sorted alphabetically. Omitted when timeseries keys were not requested. | [optional] | | **attributes** | **Dict[str, List[KeyInfo]]** | Map of attribute scope to the list of unique attribute keys available on the matched entities. Only scopes supported by the matched entity types are included. Omitted when attribute keys were not requested or when none of the requested scopes apply to the matched entity types. | [optional] | diff --git a/paas/docs/EntityDataDiff.md b/paas/docs/EntityDataDiff.md index e0d2e2a2..f387b532 100644 --- a/paas/docs/EntityDataDiff.md +++ b/paas/docs/EntityDataDiff.md @@ -54,9 +54,10 @@ #### EntityGroupExportData *(extends EntityExportData, entity_type=`ENTITY_GROUP`)* | Name | Type | Description | Notes | |------|------|-------------|-------| -| permissions | List[GroupPermission] | | [optional] | -| group_ota_packages | List[DeviceGroupOtaPackage] | | [optional] | -| group_entities | bool | | [optional] | +| permissions | List[GroupPermission] | Group permissions to apply to this group on import. Meaningful only for USER groups; ignored for groups of any other type. Each entry's userGroupId, roleId, and entityGroupId may use the external IDs of other entities in this payload or the IDs of entities that already exist on the target tenant; the importer resolves them against the target tenant. System-tenant roles are not allowed and will be rejected. Leave null to skip permission management for this group. | [optional] | +| group_ota_packages | List[DeviceGroupOtaPackage] | OTA package assignments to apply to this group on import. Meaningful only for DEVICE groups; ignored for groups of any other type. Each entry's otaPackageId and groupId may reference external IDs of entities in this payload or IDs of entities that already exist on the target tenant. Leave null to skip OTA assignment management for this group. | [optional] | +| group_entities | bool | Marker indicating that the group's member entities are intended to be transported alongside this payload. Used by flows that convey members through a side channel (notably the version control flow, which stores members in a separate git index). The solution import API does not consume this flag and does not require it to be set. Safe to leave false (default). | [optional] | +| member_ids | List[UUID] | External IDs of the entities that should be members of this group after import. Each ID is resolved against the target tenant — by other entity in this payload, by external ID, or by existing internal ID — and the matching entities are added to the group. The import fails if any listed member cannot be resolved. Must be null for the special 'All' group (whose membership is implicit and managed by the platform). Leave null to skip membership wiring; existing membership on the target tenant is left untouched. | [optional] | #### EntityViewExportData *(extends EntityExportData, entity_type=`ENTITY_VIEW`)* *See EntityExportData for properties.* @@ -93,10 +94,13 @@ #### TbResourceExportData *(extends EntityExportData, entity_type=`TB_RESOURCE`)* *See EntityExportData for properties.* +#### UserExportData *(extends EntityExportData, entity_type=`USER`)* +*See EntityExportData for properties.* + #### WidgetsBundleExportData *(extends EntityExportData, entity_type=`WIDGETS_BUNDLE`)* | Name | Type | Description | Notes | |------|------|-------------|-------| -| widgets | List[object] | | [optional] | +| widgets | List[object] | List of widgets in the bundle | [optional] | | fqns | List[str] | | [optional] | #### WidgetTypeExportData *(extends EntityExportData, entity_type=`WIDGET_TYPE`)* diff --git a/paas/docs/EntityExportData.md b/paas/docs/EntityExportData.md index db931012..81e63367 100644 --- a/paas/docs/EntityExportData.md +++ b/paas/docs/EntityExportData.md @@ -48,9 +48,10 @@ Base export container for ThingsBoard entities #### EntityGroupExportData *(entity_type=`ENTITY_GROUP`)* | Name | Type | Description | Notes | |------|------|-------------|-------| -| permissions | List[GroupPermission] | | [optional] | -| group_ota_packages | List[DeviceGroupOtaPackage] | | [optional] | -| group_entities | bool | | [optional] | +| permissions | List[GroupPermission] | Group permissions to apply to this group on import. Meaningful only for USER groups; ignored for groups of any other type. Each entry's userGroupId, roleId, and entityGroupId may use the external IDs of other entities in this payload or the IDs of entities that already exist on the target tenant; the importer resolves them against the target tenant. System-tenant roles are not allowed and will be rejected. Leave null to skip permission management for this group. | [optional] | +| group_ota_packages | List[DeviceGroupOtaPackage] | OTA package assignments to apply to this group on import. Meaningful only for DEVICE groups; ignored for groups of any other type. Each entry's otaPackageId and groupId may reference external IDs of entities in this payload or IDs of entities that already exist on the target tenant. Leave null to skip OTA assignment management for this group. | [optional] | +| group_entities | bool | Marker indicating that the group's member entities are intended to be transported alongside this payload. Used by flows that convey members through a side channel (notably the version control flow, which stores members in a separate git index). The solution import API does not consume this flag and does not require it to be set. Safe to leave false (default). | [optional] | +| member_ids | List[UUID] | External IDs of the entities that should be members of this group after import. Each ID is resolved against the target tenant — by other entity in this payload, by external ID, or by existing internal ID — and the matching entities are added to the group. The import fails if any listed member cannot be resolved. Must be null for the special 'All' group (whose membership is implicit and managed by the platform). Leave null to skip membership wiring; existing membership on the target tenant is left untouched. | [optional] | #### EntityViewExportData *(entity_type=`ENTITY_VIEW`)* *(no additional properties)* @@ -87,10 +88,13 @@ Base export container for ThingsBoard entities #### TbResourceExportData *(entity_type=`TB_RESOURCE`)* *(no additional properties)* +#### UserExportData *(entity_type=`USER`)* +*(no additional properties)* + #### WidgetsBundleExportData *(entity_type=`WIDGETS_BUNDLE`)* | Name | Type | Description | Notes | |------|------|-------------|-------| -| widgets | List[object] | | [optional] | +| widgets | List[object] | List of widgets in the bundle | [optional] | | fqns | List[str] | | [optional] | #### WidgetTypeExportData *(entity_type=`WIDGET_TYPE`)* diff --git a/paas/docs/EntityExportSettings.md b/paas/docs/EntityExportSettings.md index 39e3ff99..c4f4f826 100644 --- a/paas/docs/EntityExportSettings.md +++ b/paas/docs/EntityExportSettings.md @@ -13,6 +13,7 @@ | **export_calculated_fields** | **bool** | | [optional] | | **export_permissions** | **bool** | | [optional] | | **export_group_entities** | **bool** | | [optional] | +| **embed_group_members** | **bool** | | [optional] | diff --git a/paas/docs/EntityGroup.md b/paas/docs/EntityGroup.md index d920376e..3f2f610b 100644 --- a/paas/docs/EntityGroup.md +++ b/paas/docs/EntityGroup.md @@ -13,7 +13,7 @@ A JSON value representing the entity group. | **created_time** | **int** | Timestamp of the entity group creation, in milliseconds | [optional] [readonly] | | **type** | **TypeEnum** | | | | **name** | **str** | Name of the entity group | | -| **owner_id** | [**EntityId**](EntityId.md) | JSON object with the owner of the group - Tenant or Customer Id. | [optional] | +| **owner_id** | [**EntityId**](EntityId.md) | JSON object with the owner of the group - Tenant or Customer Id. When omitted or null on creation, defaults to the current user's owner (Tenant for tenant admins, Customer for customer users). | [optional] | | **additional_info** | **object** | Additional parameters of the entity group. May include: 'description' (string), 'isPublic' (boolean, whether this group is shared publicly), 'publicCustomerId' (string, UUID of the public customer associated with this group). | [optional] | | **configuration** | **object** | JSON with the configuration for UI components: list of columns, settings, actions, etc | [optional] | | **version** | **int** | | [optional] | diff --git a/paas/docs/EntityGroupExportData.md b/paas/docs/EntityGroupExportData.md index f3135664..08d3d9bb 100644 --- a/paas/docs/EntityGroupExportData.md +++ b/paas/docs/EntityGroupExportData.md @@ -9,9 +9,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -| **permissions** | [**List[GroupPermission]**](GroupPermission.md) | | [optional] | -| **group_ota_packages** | [**List[DeviceGroupOtaPackage]**](DeviceGroupOtaPackage.md) | | [optional] | -| **group_entities** | **bool** | | [optional] | +| **permissions** | [**List[GroupPermission]**](GroupPermission.md) | Group permissions to apply to this group on import. Meaningful only for USER groups; ignored for groups of any other type. Each entry's userGroupId, roleId, and entityGroupId may use the external IDs of other entities in this payload or the IDs of entities that already exist on the target tenant; the importer resolves them against the target tenant. System-tenant roles are not allowed and will be rejected. Leave null to skip permission management for this group. | [optional] | +| **group_ota_packages** | [**List[DeviceGroupOtaPackage]**](DeviceGroupOtaPackage.md) | OTA package assignments to apply to this group on import. Meaningful only for DEVICE groups; ignored for groups of any other type. Each entry's otaPackageId and groupId may reference external IDs of entities in this payload or IDs of entities that already exist on the target tenant. Leave null to skip OTA assignment management for this group. | [optional] | +| **group_entities** | **bool** | Marker indicating that the group's member entities are intended to be transported alongside this payload. Used by flows that convey members through a side channel (notably the version control flow, which stores members in a separate git index). The solution import API does not consume this flag and does not require it to be set. Safe to leave false (default). | [optional] | +| **member_ids** | **List[UUID]** | External IDs of the entities that should be members of this group after import. Each ID is resolved against the target tenant — by other entity in this payload, by external ID, or by existing internal ID — and the matching entities are added to the group. The import fails if any listed member cannot be resolved. Must be null for the special 'All' group (whose membership is implicit and managed by the platform). Leave null to skip membership wiring; existing membership on the target tenant is left untouched. | [optional] | diff --git a/paas/docs/EntityGroupInfo.md b/paas/docs/EntityGroupInfo.md index b58242f5..5e77c4fa 100644 --- a/paas/docs/EntityGroupInfo.md +++ b/paas/docs/EntityGroupInfo.md @@ -11,11 +11,11 @@ | **created_time** | **int** | Timestamp of the entity group creation, in milliseconds | [optional] [readonly] | | **type** | **TypeEnum** | | | | **name** | **str** | Name of the entity group | | -| **owner_id** | [**EntityId**](EntityId.md) | JSON object with the owner of the group - Tenant or Customer Id. | [optional] | +| **owner_id** | [**EntityId**](EntityId.md) | JSON object with the owner of the group - Tenant or Customer Id. When omitted or null on creation, defaults to the current user's owner (Tenant for tenant admins, Customer for customer users). | [optional] | | **additional_info** | **object** | Additional parameters of the entity group. May include: 'description' (string), 'isPublic' (boolean, whether this group is shared publicly), 'publicCustomerId' (string, UUID of the public customer associated with this group). | [optional] | | **configuration** | **object** | JSON with the configuration for UI components: list of columns, settings, actions, etc | [optional] | | **version** | **int** | | [optional] | -| **owner_ids** | [**List[EntityId]**](EntityId.md) | | [optional] | +| **owner_ids** | [**List[EntityId]**](EntityId.md) | List of the entity group owners. | | | **edge_group_all** | **bool** | Indicates special edge group 'All' that contains all entities and can't be deleted. | [optional] [readonly] | | **group_all** | **bool** | Indicates special group 'All' that contains all entities and can't be deleted. | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | | [optional] | diff --git a/paas/docs/GroupPermissionInfo.md b/paas/docs/GroupPermissionInfo.md index e230103d..71bb38e6 100644 --- a/paas/docs/GroupPermissionInfo.md +++ b/paas/docs/GroupPermissionInfo.md @@ -44,8 +44,8 @@ | customer_id | CustomerId | JSON object with Customer Id. | [optional] [readonly] | | name | str | Role Name | | | type | RoleType | Type of the role: generic or group | | -| permissions | object | JSON object with the set of permissions. Structure is specific for role type | | -| excluded_permissions | object | JSON object with the set of excluded permissions. Only applicable for generic roles. Structure is the same as permissions | [optional] | +| permissions | object | Set of permissions granted by this role. The JSON shape depends on the role 'type': * GENERIC — JSON object mapping `Resource` enum names to arrays of `Operation` enum names allowed on that resource. The wildcard entry `{\"ALL\":[\"ALL\"]}` grants every operation on every resource. * GROUP — JSON array of `Operation` enum names that apply to the entity group this role is bound to via `GroupPermission.entityGroupId`. Only operations with `allowedForGroupRole=true` may appear (see `Operation` enum). The wildcard entry `[\"ALL\"]` grants every supported operation on the bound entity group. | | +| excluded_permissions | object | Operations to subtract from those granted by `permissions`. Only applicable to GENERIC roles — setting this on a GROUP role is rejected by validation. Same shape as the GENERIC variant of `permissions`: a JSON object mapping `Resource` enum names to non-empty arrays of `Operation` enum names. At evaluation time, for each resource the listed operations are removed from the resolved permission set (e.g. `permissions={\"ALL\":[\"ALL\"]}` combined with `excludedPermissions={\"DEVICE\":[\"DELETE\"]}` grants everything except deleting devices). May be null or an empty object when no exclusions apply. | [optional] | | version | int | | [optional] | | owner_id | EntityId | JSON object with Customer or Tenant Id | [optional] [readonly] | diff --git a/paas/docs/PageDataEntityGroupInfo.md b/paas/docs/PageDataEntityGroupInfo.md index 3a0ee6d4..352e40e6 100644 --- a/paas/docs/PageDataEntityGroupInfo.md +++ b/paas/docs/PageDataEntityGroupInfo.md @@ -25,11 +25,11 @@ | created_time | int | Timestamp of the entity group creation, in milliseconds | [optional] [readonly] | | type | TypeEnum | | | | name | str | Name of the entity group | | -| owner_id | EntityId | JSON object with the owner of the group - Tenant or Customer Id. | [optional] | +| owner_id | EntityId | JSON object with the owner of the group - Tenant or Customer Id. When omitted or null on creation, defaults to the current user's owner (Tenant for tenant admins, Customer for customer users). | [optional] | | additional_info | object | Additional parameters of the entity group. May include: 'description' (string), 'isPublic' (boolean, whether this group is shared publicly), 'publicCustomerId' (string, UUID of the public customer associated with this group). | [optional] | | configuration | object | JSON with the configuration for UI components: list of columns, settings, actions, etc | [optional] | | version | int | | [optional] | -| owner_ids | List[EntityId] | | [optional] | +| owner_ids | List[EntityId] | List of the entity group owners. | | | edge_group_all | bool | Indicates special edge group 'All' that contains all entities and can't be deleted. | [optional] [readonly] | | group_all | bool | Indicates special group 'All' that contains all entities and can't be deleted. | [optional] | | tenant_id | TenantId | | [optional] | diff --git a/paas/docs/PageDataRole.md b/paas/docs/PageDataRole.md index 286f26c4..3ea26dff 100644 --- a/paas/docs/PageDataRole.md +++ b/paas/docs/PageDataRole.md @@ -28,8 +28,8 @@ | customer_id | CustomerId | JSON object with Customer Id. | [optional] [readonly] | | name | str | Role Name | | | type | RoleType | Type of the role: generic or group | | -| permissions | object | JSON object with the set of permissions. Structure is specific for role type | | -| excluded_permissions | object | JSON object with the set of excluded permissions. Only applicable for generic roles. Structure is the same as permissions | [optional] | +| permissions | object | Set of permissions granted by this role. The JSON shape depends on the role 'type': * GENERIC — JSON object mapping `Resource` enum names to arrays of `Operation` enum names allowed on that resource. The wildcard entry `{\"ALL\":[\"ALL\"]}` grants every operation on every resource. * GROUP — JSON array of `Operation` enum names that apply to the entity group this role is bound to via `GroupPermission.entityGroupId`. Only operations with `allowedForGroupRole=true` may appear (see `Operation` enum). The wildcard entry `[\"ALL\"]` grants every supported operation on the bound entity group. | | +| excluded_permissions | object | Operations to subtract from those granted by `permissions`. Only applicable to GENERIC roles — setting this on a GROUP role is rejected by validation. Same shape as the GENERIC variant of `permissions`: a JSON object mapping `Resource` enum names to non-empty arrays of `Operation` enum names. At evaluation time, for each resource the listed operations are removed from the resolved permission set (e.g. `permissions={\"ALL\":[\"ALL\"]}` combined with `excludedPermissions={\"DEVICE\":[\"DELETE\"]}` grants everything except deleting devices). May be null or an empty object when no exclusions apply. | [optional] | | version | int | | [optional] | | owner_id | EntityId | JSON object with Customer or Tenant Id | [optional] [readonly] | diff --git a/paas/docs/Role.md b/paas/docs/Role.md index f9e0e570..358005ac 100644 --- a/paas/docs/Role.md +++ b/paas/docs/Role.md @@ -16,8 +16,8 @@ A JSON value representing the role. | **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. | [optional] [readonly] | | **name** | **str** | Role Name | | | **type** | [**RoleType**](RoleType.md) | Type of the role: generic or group | | -| **permissions** | **object** | JSON object with the set of permissions. Structure is specific for role type | | -| **excluded_permissions** | **object** | JSON object with the set of excluded permissions. Only applicable for generic roles. Structure is the same as permissions | [optional] | +| **permissions** | **object** | Set of permissions granted by this role. The JSON shape depends on the role 'type': * GENERIC — JSON object mapping `Resource` enum names to arrays of `Operation` enum names allowed on that resource. The wildcard entry `{\"ALL\":[\"ALL\"]}` grants every operation on every resource. * GROUP — JSON array of `Operation` enum names that apply to the entity group this role is bound to via `GroupPermission.entityGroupId`. Only operations with `allowedForGroupRole=true` may appear (see `Operation` enum). The wildcard entry `[\"ALL\"]` grants every supported operation on the bound entity group. | | +| **excluded_permissions** | **object** | Operations to subtract from those granted by `permissions`. Only applicable to GENERIC roles — setting this on a GROUP role is rejected by validation. Same shape as the GENERIC variant of `permissions`: a JSON object mapping `Resource` enum names to non-empty arrays of `Operation` enum names. At evaluation time, for each resource the listed operations are removed from the resolved permission set (e.g. `permissions={\"ALL\":[\"ALL\"]}` combined with `excludedPermissions={\"DEVICE\":[\"DELETE\"]}` grants everything except deleting devices). May be null or an empty object when no exclusions apply. | [optional] | | **version** | **int** | | [optional] | | **owner_id** | [**EntityId**](EntityId.md) | JSON object with Customer or Tenant Id | [optional] [readonly] | diff --git a/paas/docs/SolutionExportImportControllerApi.md b/paas/docs/SolutionExportImportControllerApi.md index 03c09191..14951127 100644 --- a/paas/docs/SolutionExportImportControllerApi.md +++ b/paas/docs/SolutionExportImportControllerApi.md @@ -19,14 +19,14 @@ SolutionExportResponse client.export_solution(solution_export_request: SolutionE Export Solution (exportSolution) -Exports a set of entities as a portable solution package. The request specifies entity IDs to include and optional export settings (relations, attributes, credentials). All specified entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. +Exports a set of entities as a portable solution package. The request specifies entities to include via 'internalIds' (server-internal UUIDs) and/or 'externalIds' (looked up by the entity's stored externalId within the current tenant); at least one of the two collections must be non-empty, and entities reached via both sides are deduplicated. Optional export settings control inclusion of relations, attributes, and credentials. All resolved entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. ### Parameters | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **solution_export_request** | **SolutionExportRequest** | Export request with entity IDs and optional settings. | | +| **solution_export_request** | **SolutionExportRequest** | Export request with internal and/or external entity IDs and optional settings. | | ### Return type @@ -67,7 +67,7 @@ SolutionValidationResult client.validate_solution(solution_data: SolutionData) Validate Solution (validateSolution) -Performs a dry-run validation of a solution without modifying any data. Detects duplicate entities within the solution, identifies name conflicts with existing entities in the current tenant, and reports missing dependency references (e.g. a device profile referencing an absent rule chain). The result indicates whether the solution is safe to import (valid=true) and lists any conflicts or warnings. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL READ permission. +Performs a dry-run validation of a solution without modifying any data. Detects duplicate entities within the solution, identifies name conflicts with existing entities in the current tenant, and reports missing dependency references (e.g. a device profile referencing an absent rule chain). The result indicates whether the solution is safe to import (valid=true) and lists any conflicts or warnings. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. ### Parameters diff --git a/paas/docs/SolutionExportRequest.md b/paas/docs/SolutionExportRequest.md index ead78e27..bde73d6e 100644 --- a/paas/docs/SolutionExportRequest.md +++ b/paas/docs/SolutionExportRequest.md @@ -9,7 +9,8 @@ Solution export request specifying which entities to include and export settings | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -| **entity_ids** | [**List[EntityId]**](EntityId.md) | | [optional] | +| **internal_ids** | [**List[EntityId]**](EntityId.md) | Set of internal entity IDs to export. The 'id' of each EntityId is the server-internal UUID. All listed entities must belong to the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty. | [optional] | +| **external_ids** | [**List[EntityId]**](EntityId.md) | Set of external entity IDs to export. The 'id' of each EntityId is the external UUID (as stored in the 'externalId' field on the entity in the current tenant). The server looks up each entity by 'externalId' and 'entityType' within the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty. | [optional] | | **settings** | [**EntityExportSettings**](EntityExportSettings.md) | Optional export settings controlling what additional data is included (relations, attributes, credentials, etc.). If not specified, default settings will be used that include all available data. | [optional] | @@ -27,6 +28,7 @@ Solution export request specifying which entities to include and export settings | export_calculated_fields | bool | | [optional] | | export_permissions | bool | | [optional] | | export_group_entities | bool | | [optional] | +| embed_group_members | bool | | [optional] | #### EntityType (enum) `TENANT` | `CUSTOMER` | `USER` | `DASHBOARD` | `ASSET` | `DEVICE` | `ALARM` | `ENTITY_GROUP` | `CONVERTER` | `INTEGRATION` | … (52 values total) @@ -36,7 +38,7 @@ Solution export request specifying which entities to include and export settings ### Conventions - **Package:** `tb_paas_client.models` -- **Attribute access:** `obj.entity_ids`, `obj.name`, etc. +- **Attribute access:** `obj.internal_ids`, `obj.name`, etc. - **Serialize:** `obj.model_dump()` or `obj.model_dump(by_alias=True)` for camelCase JSON - **Deserialize:** `SolutionExportRequest.model_validate(data)` or `SolutionExportRequest.model_validate_json(json_str)` - **None fields:** Optional attributes default to `None`; accessing them never raises exceptions diff --git a/paas/docs/SolutionImportResult.md b/paas/docs/SolutionImportResult.md index 1783c5f1..30a6a985 100644 --- a/paas/docs/SolutionImportResult.md +++ b/paas/docs/SolutionImportResult.md @@ -10,7 +10,7 @@ Result of a solution import operation. | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| | **success** | **bool** | 'true' if all entities were imported successfully. | [optional] | -| **created** | **Dict[str, int]** | Number of newly created entities per entity type. Entity types with zero created entities are omitted. | [optional] | +| **created** | **Dict[str, int]** | Number of newly created entities per entity type. Entity types with zero created entities are omitted. Entity groups are reported under the ENTITY_GROUP key regardless of their inner type (e.g. a user group and a device group both contribute to ENTITY_GROUP). | [optional] | | **id_mapping** | **Dict[str, UUID]** | Mapping from external entity IDs (as they appear in the solution file) to the internal entity IDs assigned during import. | [optional] | diff --git a/paas/docs/TbChatRequest.md b/paas/docs/TbChatRequest.md index 35e7b95b..647670aa 100644 --- a/paas/docs/TbChatRequest.md +++ b/paas/docs/TbChatRequest.md @@ -18,7 +18,7 @@ #### TbUserMessage | Name | Type | Description | Notes | |------|------|-------------|-------| -| contents | List[TbContent] | | | +| contents | List[TbContent] | A list of content parts that make up the complete user prompt | | #### AiModelConfig | Name | Type | Description | Notes | diff --git a/paas/docs/TbUserMessage.md b/paas/docs/TbUserMessage.md index 8c424d93..3e80ead4 100644 --- a/paas/docs/TbUserMessage.md +++ b/paas/docs/TbUserMessage.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -| **contents** | [**List[TbContent]**](TbContent.md) | | | +| **contents** | [**List[TbContent]**](TbContent.md) | A list of content parts that make up the complete user prompt | | diff --git a/paas/docs/UserExportData.md b/paas/docs/UserExportData.md new file mode 100644 index 00000000..766be996 --- /dev/null +++ b/paas/docs/UserExportData.md @@ -0,0 +1,529 @@ + +# UserExportData + +`tb_paas_client.models.UserExportData` + +**Extends:** **EntityExportData** + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| + + + +## Referenced Types + +> **EntityId types** (`AdminSettingsId`, `AiModelId`, `AlarmId`, `ApiKeyId`, `ApiUsageStateId`, `AssetId`, `AssetProfileId`, `BillingCustomerId`, `BlobEntityId`, `CalculatedFieldId`, `ConverterId`, `CouponId`, `CustomerId`, `DashboardId`, `DeviceId`, `DeviceProfileId`, `DomainId`, `EdgeId`, `EntityGroupId`, `EntityViewId`, `GroupPermissionId`, `IntegrationId`, `JobId`, `MobileAppBundleId`, `MobileAppId`, `NotificationId`, `NotificationRequestId`, `NotificationRuleId`, `NotificationTargetId`, `NotificationTemplateId`, `OAuth2ClientId`, `OtaPackageId`, `ProductId`, `QueueId`, `QueueStatsId`, `ReportId`, `ReportTemplateId`, `RoleId`, `RpcId`, `RuleChainId`, `RuleNodeId`, `SchedulerEventId`, `SecretId`, `SubscriptionAddonId`, `SubscriptionId`, `SubscriptionPlanId`, `TbResourceId`, `TenantId`, `TenantProfileId`, `UserId`, `WidgetTypeId`, `WidgetsBundleId`, etc.): `{entity_type: EntityType, id: UUID}` — all EntityId subtypes share this structure. + +#### EntityExportData +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| entity | ExportableEntity | | [optional] | +| relations | List[EntityRelation] | | [optional] | +| attributes | Dict[str, List[AttributeExportData]] | Map of attributes where key is the scope of attributes and value is the list of attributes for that scope | [optional] | +| calculated_fields | List[CalculatedField] | | [optional] | +| entity_type | EntityType | | | + +#### ExportableEntity +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| created_time | int | | [optional] | +| id | EntityId | | [optional] | +| name | str | | [optional] | +| tenant_id | TenantId | | [optional] | + +#### EntityRelation +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| var_from | EntityId | JSON object with [from] Entity Id. | | +| to | EntityId | JSON object with [to] Entity Id. | | +| type | str | String value of relation type. | | +| type_group | RelationTypeGroup | Represents the type group of the relation. | | +| version | int | | [optional] | +| additional_info | object | Additional parameters of the relation. | [optional] | + +#### CalculatedField +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| id | CalculatedFieldId | JSON object with the Calculated Field Id. Referencing non-existing Calculated Field Id will cause error. | [optional] | +| created_time | int | Timestamp of the calculated field creation, in milliseconds | [optional] [readonly] | +| tenant_id | TenantId | | [optional] | +| entity_id | EntityId | | [optional] | +| type | CalculatedFieldType | | [optional] | +| name | str | User defined name of the calculated field. | [optional] | +| debug_settings | DebugSettings | Debug settings object. | [optional] | +| configuration_version | int | Version of calculated field configuration. | [optional] | +| configuration | CalculatedFieldConfiguration | | | +| version | int | | [optional] | +| additional_info | object | Additional parameters of the calculated field | [optional] | +| debug_mode | bool | | [optional] | + +#### EntityType (enum) +`TENANT` | `CUSTOMER` | `USER` | `DASHBOARD` | `ASSET` | `DEVICE` | `ALARM` | `ENTITY_GROUP` | `CONVERTER` | `INTEGRATION` | … (52 values total) + +#### RelationTypeGroup (enum) +`COMMON` | `DASHBOARD` | `FROM_ENTITY_GROUP` | `RULE_CHAIN` | `RULE_NODE` | `EDGE` | `EDGE_AUTO_ASSIGN_RULE_CHAIN` + +#### CalculatedFieldType (enum) +`SIMPLE` | `SCRIPT` | `GEOFENCING` | `ALARM` | `PROPAGATION` | `RELATED_ENTITIES_AGGREGATION` | `ENTITY_AGGREGATION` + +#### DebugSettings +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| failures_enabled | bool | Debug failures. | [optional] | +| all_enabled | bool | Debug All. Used as a trigger for updating debugAllUntil. | [optional] | +| all_enabled_until | int | Timestamp of the end time for the processing debug events. | [optional] | + +#### CalculatedFieldConfiguration +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| output | Output | | [optional] | +| type | str | | | + +#### AlarmCalculatedFieldConfiguration *(extends CalculatedFieldConfiguration, type=`ALARM`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| arguments | Dict[str, Argument] | | | +| create_rules | Dict[str, AlarmRule] | | | +| clear_rule | AlarmRule | | [optional] | +| propagate | bool | | [optional] | +| propagate_to_owner | bool | | [optional] | +| propagate_to_owner_hierarchy | bool | | [optional] | +| propagate_to_tenant | bool | | [optional] | +| propagate_relation_types | List[str] | | [optional] | + +#### EntityAggregationCalculatedFieldConfiguration *(extends CalculatedFieldConfiguration, type=`ENTITY_AGGREGATION`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| arguments | Dict[str, Argument] | | | +| metrics | Dict[str, AggMetric] | | | +| interval | AggInterval | | | +| watermark | Watermark | | [optional] | +| produce_intermediate_result | bool | | [optional] | + +#### GeofencingCalculatedFieldConfiguration *(extends CalculatedFieldConfiguration, type=`GEOFENCING`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| entity_coordinates | EntityCoordinates | | | +| zone_groups | Dict[str, ZoneGroupConfiguration] | | | +| scheduled_update_enabled | bool | | [optional] | +| scheduled_update_interval | int | | [optional] | + +#### PropagationCalculatedFieldConfiguration *(extends CalculatedFieldConfiguration, type=`PROPAGATION`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| arguments | Dict[str, Argument] | | | +| expression | str | | [optional] | +| relation | RelationPathLevel | | | +| apply_expression_to_resolved_arguments | bool | | [optional] | + +#### RelatedEntitiesAggregationCalculatedFieldConfiguration *(extends CalculatedFieldConfiguration, type=`RELATED_ENTITIES_AGGREGATION`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| relation | RelationPathLevel | | | +| arguments | Dict[str, Argument] | | | +| deduplication_interval_in_sec | int | | [optional] | +| metrics | Dict[str, AggMetric] | | | +| use_latest_ts | bool | | [optional] | +| scheduled_update_interval | int | | [optional] | +| scheduled_update_enabled | bool | | [optional] | + +#### ScriptCalculatedFieldConfiguration *(extends CalculatedFieldConfiguration, type=`SCRIPT`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| arguments | Dict[str, Argument] | | | +| expression | str | | [optional] | + +#### SimpleCalculatedFieldConfiguration *(extends CalculatedFieldConfiguration, type=`SIMPLE`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| arguments | Dict[str, Argument] | | | +| expression | str | | [optional] | +| use_latest_ts | bool | | [optional] | + +#### Output +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| decimals_by_default | int | | [optional] | +| name | str | | [optional] | +| scope | AttributeScope | | [optional] | +| strategy | object | | [optional] | +| type | str | | | + +#### AttributesOutput *(extends Output, type=`ATTRIBUTES`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| strategy | AttributesOutputStrategy | | [optional] | + +#### TimeSeriesOutput *(extends Output, type=`TIME_SERIES`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| strategy | TimeSeriesOutputStrategy | | [optional] | + +#### AttributeScope (enum) +`CLIENT_SCOPE` | `SERVER_SCOPE` | `SHARED_SCOPE` + +#### Argument +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| ref_entity_id | EntityId | | [optional] | +| ref_dynamic_source_configuration | CfArgumentDynamicSourceConfiguration | | [optional] | +| ref_entity_key | ReferencedEntityKey | | [optional] | +| default_value | str | | [optional] | +| limit | int | | [optional] | +| time_window | int | | [optional] | + +#### EntityCoordinates +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| latitude_key_name | str | | | +| longitude_key_name | str | | | + +#### ZoneGroupConfiguration +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| ref_entity_id | EntityId | | [optional] | +| ref_dynamic_source_configuration | CfArgumentDynamicSourceConfiguration | | [optional] | +| perimeter_key_name | str | | | +| report_strategy | GeofencingReportStrategy | | | +| create_relations_with_matched_zones | bool | | [optional] | +| relation_type | str | | [optional] | +| direction | EntitySearchDirection | | [optional] | + +#### AlarmRule +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| condition | AlarmCondition | | | +| alarm_details | str | | [optional] | +| dashboard_id | DashboardId | | [optional] | + +#### RelationPathLevel +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| direction | EntitySearchDirection | | | +| relation_type | str | | | + +#### AggMetric +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| function | AggFunction | | [optional] | +| filter | str | | [optional] | +| input | AggInput | | [optional] | +| default_value | float | | [optional] | + +#### AggInterval +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| type | str | | | + +#### CustomInterval *(extends AggInterval, type=`CUSTOM`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| tz | str | | | +| offset_sec | int | | [optional] | +| duration_sec | int | | | + +#### DayInterval *(extends AggInterval, type=`DAY`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| tz | str | | | +| offset_sec | int | | [optional] | + +#### HourInterval *(extends AggInterval, type=`HOUR`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| tz | str | | | +| offset_sec | int | | [optional] | + +#### MonthInterval *(extends AggInterval, type=`MONTH`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| tz | str | | | +| offset_sec | int | | [optional] | + +#### QuarterInterval *(extends AggInterval, type=`QUARTER`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| tz | str | | | +| offset_sec | int | | [optional] | + +#### WeekInterval *(extends AggInterval, type=`WEEK`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| tz | str | | | +| offset_sec | int | | [optional] | + +#### WeekSunSatInterval *(extends AggInterval, type=`WEEK_SUN_SAT`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| tz | str | | | +| offset_sec | int | | [optional] | + +#### YearInterval *(extends AggInterval, type=`YEAR`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| tz | str | | | +| offset_sec | int | | [optional] | + +#### Watermark +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| duration | int | | [optional] | + +#### TimeSeriesOutputStrategy +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| type | str | | | + +#### TimeSeriesImmediateOutputStrategy *(extends TimeSeriesOutputStrategy, type=`IMMEDIATE`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| ttl | int | | [optional] | +| save_time_series | bool | | [optional] | +| save_latest | bool | | [optional] | +| send_ws_update | bool | | [optional] | +| process_cfs | bool | | [optional] | + +#### TimeSeriesRuleChainOutputStrategy *(extends TimeSeriesOutputStrategy, type=`RULE_CHAIN`)* +*See TimeSeriesOutputStrategy for properties.* + +#### AttributesOutputStrategy +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| type | str | | | + +#### AttributesImmediateOutputStrategy *(extends AttributesOutputStrategy, type=`IMMEDIATE`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| send_attributes_updated_notification | bool | | [optional] | +| update_attributes_only_on_value_change | bool | | [optional] | +| save_attribute | bool | | [optional] | +| send_ws_update | bool | | [optional] | +| process_cfs | bool | | [optional] | + +#### AttributesRuleChainOutputStrategy *(extends AttributesOutputStrategy, type=`RULE_CHAIN`)* +*See AttributesOutputStrategy for properties.* + +#### CfArgumentDynamicSourceConfiguration +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| type | str | | | + +#### CurrentOwnerDynamicSourceConfiguration *(extends CfArgumentDynamicSourceConfiguration, type=`CURRENT_OWNER`)* +*See CfArgumentDynamicSourceConfiguration for properties.* + +#### RelationPathQueryDynamicSourceConfiguration *(extends CfArgumentDynamicSourceConfiguration, type=`RELATION_PATH_QUERY`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| levels | List[RelationPathLevel] | | [optional] | + +#### ReferencedEntityKey +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| key | str | | [optional] | +| type | ArgumentType | | [optional] | +| scope | AttributeScope | | [optional] | + +#### GeofencingReportStrategy (enum) +`REPORT_TRANSITION_EVENTS_ONLY` | `REPORT_PRESENCE_STATUS_ONLY` | `REPORT_TRANSITION_EVENTS_AND_PRESENCE_STATUS` + +#### EntitySearchDirection (enum) +`FROM` | `TO` + +#### AlarmCondition +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| expression | AlarmConditionExpression | | | +| schedule | AlarmConditionValueAlarmSchedule | | [optional] | +| type | str | | | + +#### DurationAlarmCondition *(extends AlarmCondition, type=`DURATION`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| unit | TimeUnit | | | +| value | AlarmConditionValueLong | | | + +#### RepeatingAlarmCondition *(extends AlarmCondition, type=`REPEATING`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| count | AlarmConditionValueInteger | | | + +#### SimpleAlarmCondition *(extends AlarmCondition, type=`SIMPLE`)* +*See AlarmCondition for properties.* + +#### AggFunction (enum) +`MIN` | `MAX` | `SUM` | `AVG` | `COUNT` | `COUNT_UNIQUE` + +#### AggInput +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| type | str | | | + +#### AggFunctionInput *(extends AggInput, type=`function`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| function | str | | [optional] | + +#### AggKeyInput *(extends AggInput, type=`key`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| key | str | | [optional] | + +#### ArgumentType (enum) +`TS_LATEST` | `ATTRIBUTE` | `TS_ROLLING` + +#### AlarmConditionExpression +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| type | str | | | + +#### SimpleAlarmConditionExpression *(extends AlarmConditionExpression, type=`SIMPLE`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| filters | List[AlarmConditionFilter] | | | +| operation | AlarmRuleComplexOperation | | [optional] | + +#### TbelAlarmConditionExpression *(extends AlarmConditionExpression, type=`TBEL`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| expression | str | | | + +#### AlarmConditionValueAlarmSchedule +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| static_value | AlarmSchedule | | [optional] | +| dynamic_value_argument | str | | [optional] | + +#### AlarmSchedule +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| type | str | | | + +#### AnyTimeSchedule *(extends AlarmSchedule, type=`ANY_TIME`)* +*See AlarmSchedule for properties.* + +#### CustomTimeSchedule *(extends AlarmSchedule, type=`CUSTOM`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| timezone | str | | [optional] | +| items | List[CustomTimeScheduleItem] | | [optional] | + +#### SpecificTimeSchedule *(extends AlarmSchedule, type=`SPECIFIC_TIME`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| timezone | str | | [optional] | +| days_of_week | List[int] | | [optional] | +| starts_on | int | | [optional] | +| ends_on | int | | [optional] | + +#### TimeUnit (enum) +`NANOSECONDS` | `MICROSECONDS` | `MILLISECONDS` | `SECONDS` | `MINUTES` | `HOURS` | `DAYS` + +#### AlarmConditionValueLong +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| static_value | int | | [optional] | +| dynamic_value_argument | str | | [optional] | + +#### AlarmConditionValueInteger +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| static_value | int | | [optional] | +| dynamic_value_argument | str | | [optional] | + +#### AlarmConditionFilter +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| argument | str | | | +| value_type | EntityKeyValueType | | | +| operation | AlarmRuleComplexOperation | | [optional] | +| predicates | List[AlarmRuleKeyFilterPredicate] | | | + +#### AlarmRuleComplexOperation (enum) +`AND` | `OR` + +#### EntityKeyValueType (enum) +`STRING` | `NUMERIC` | `BOOLEAN` | `DATE_TIME` + +#### AlarmRuleKeyFilterPredicate +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| type | str | | | + +#### AlarmRuleBooleanFilterPredicate *(extends AlarmRuleKeyFilterPredicate, type=`BOOLEAN`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| operation | AlarmRuleBooleanOperation | | | +| value | AlarmConditionValueBoolean | | | + +#### AlarmRuleComplexFilterPredicate *(extends AlarmRuleKeyFilterPredicate, type=`COMPLEX`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| operation | AlarmRuleComplexOperation | | [optional] | +| predicates | List[AlarmRuleKeyFilterPredicate] | | [optional] | + +#### NoDataFilterPredicate *(extends AlarmRuleKeyFilterPredicate, type=`NO_DATA`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| unit | TimeUnit | | | +| duration | AlarmConditionValueLong | | | + +#### AlarmRuleNumericFilterPredicate *(extends AlarmRuleKeyFilterPredicate, type=`NUMERIC`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| operation | AlarmRuleNumericOperation | | | +| value | AlarmConditionValueDouble | | | + +#### AlarmRuleStringFilterPredicate *(extends AlarmRuleKeyFilterPredicate, type=`STRING`)* +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| operation | AlarmRuleStringOperation | | | +| value | AlarmConditionValueString | | | +| ignore_case | bool | | [optional] | + +#### CustomTimeScheduleItem +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| enabled | bool | | [optional] | +| day_of_week | int | | [optional] | +| starts_on | int | | [optional] | +| ends_on | int | | [optional] | + +#### AlarmRuleStringOperation (enum) +`EQUAL` | `NOT_EQUAL` | `STARTS_WITH` | `ENDS_WITH` | `CONTAINS` | `NOT_CONTAINS` | `IN` | `NOT_IN` + +#### AlarmConditionValueString +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| static_value | str | | [optional] | +| dynamic_value_argument | str | | [optional] | + +#### AlarmRuleNumericOperation (enum) +`EQUAL` | `NOT_EQUAL` | `GREATER` | `LESS` | `GREATER_OR_EQUAL` | `LESS_OR_EQUAL` + +#### AlarmConditionValueDouble +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| static_value | float | | [optional] | +| dynamic_value_argument | str | | [optional] | + +#### AlarmRuleBooleanOperation (enum) +`EQUAL` | `NOT_EQUAL` + +#### AlarmConditionValueBoolean +| Name | Type | Description | Notes | +|------|------|-------------|-------| +| static_value | bool | | [optional] | +| dynamic_value_argument | str | | [optional] | + +--- + +### Conventions + +- **Package:** `tb_paas_client.models` +- **Attribute access:** `obj.`, `obj.name`, etc. +- **Serialize:** `obj.model_dump()` or `obj.model_dump(by_alias=True)` for camelCase JSON +- **Deserialize:** `UserExportData.model_validate(data)` or `UserExportData.model_validate_json(json_str)` +- **None fields:** Optional attributes default to `None`; accessing them never raises exceptions + diff --git a/paas/docs/WidgetsBundleExportData.md b/paas/docs/WidgetsBundleExportData.md index e35c5444..2ae3926f 100644 --- a/paas/docs/WidgetsBundleExportData.md +++ b/paas/docs/WidgetsBundleExportData.md @@ -9,7 +9,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -| **widgets** | **List[object]** | | [optional] | +| **widgets** | **List[object]** | List of widgets in the bundle | [optional] | | **fqns** | **List[str]** | | [optional] | diff --git a/paas/spec/openapi.json b/paas/spec/openapi.json index b3ee2061..63336d43 100644 --- a/paas/spec/openapi.json +++ b/paas/spec/openapi.json @@ -12,7 +12,7 @@ "name": "Apache License Version 2.0", "url": "https://github.com/thingsboard/thingsboard/blob/master/LICENSE" }, - "version": "4.3.1.2PAAS" + "version": "4.3.1.2.0PAAS" }, "servers": [ { @@ -29,6 +29,10 @@ "name": "ai-chat-controller", "description": "Ai Chat Controller" }, + { + "name": "ai-device-dashboard-controller", + "description": "Ai Device Dashboard Controller" + }, { "name": "ai-model-controller", "description": "Ai Model Controller" @@ -4844,6 +4848,14 @@ "schema": { "type": "string" } + }, + { + "name": "Accept-Language", + "in": "header", + "required": false, + "schema": { + "type": "string" + } } ], "requestBody": { @@ -5160,6 +5172,184 @@ ] } }, + "/api/ai/devices/{deviceId}/dashboard": { + "post": { + "tags": [ + "ai-device-dashboard-controller" + ], + "summary": "generateDashboard", + "operationId": "generateDashboard", + "parameters": [ + { + "name": "deviceId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "X-Authorization", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonNode" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JsonNode" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThingsboardErrorResponse" + }, + "examples": { + "error-code-400": { + "summary": "Bad Request", + "value": { + "message": "Invalid request body", + "errorCode": 31, + "status": 400, + "subscriptionErrorCode": null, + "subscriptionEntry": null, + "subscriptionValue": null, + "timestamp": 1609459200000 + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThingsboardErrorResponse" + }, + "examples": { + "error-code-401": { + "summary": "Unauthorized", + "value": { + "message": "Authentication failed", + "errorCode": 10, + "status": 401, + "subscriptionErrorCode": null, + "subscriptionEntry": null, + "subscriptionValue": null, + "timestamp": 1609459200000 + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThingsboardErrorResponse" + }, + "examples": { + "error-code-403": { + "summary": "Forbidden", + "value": { + "message": "You don't have permission to perform this operation!", + "errorCode": 20, + "status": 403, + "subscriptionErrorCode": null, + "subscriptionEntry": null, + "subscriptionValue": null, + "timestamp": 1609459200000 + } + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThingsboardErrorResponse" + }, + "examples": { + "error-code-404": { + "summary": "Not Found", + "value": { + "message": "Requested item wasn't found!", + "errorCode": 32, + "status": 404, + "subscriptionErrorCode": null, + "subscriptionEntry": null, + "subscriptionValue": null, + "timestamp": 1609459200000 + } + } + } + } + } + }, + "429": { + "description": "Too Many Requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThingsboardErrorResponse" + }, + "examples": { + "error-code-429": { + "summary": "Too Many Requests", + "value": { + "message": "Too many requests for current tenant!", + "errorCode": 33, + "status": 429, + "subscriptionErrorCode": null, + "subscriptionEntry": null, + "subscriptionValue": null, + "timestamp": 1609459200000 + } + } + } + } + } + } + }, + "security": [ + { + "HttpLoginForm": [] + }, + { + "ApiKeyForm": [] + } + ] + } + }, "/api/ai/model": { "get": { "tags": [ @@ -107194,10 +107384,10 @@ "solution-export-import-controller" ], "summary": "Export Solution (exportSolution)", - "description": "Exports a set of entities as a portable solution package. The request specifies entity IDs to include and optional export settings (relations, attributes, credentials). All specified entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint.\n\nAvailable for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission.", + "description": "Exports a set of entities as a portable solution package. The request specifies entities to include via 'internalIds' (server-internal UUIDs) and/or 'externalIds' (looked up by the entity's stored externalId within the current tenant); at least one of the two collections must be non-empty, and entities reached via both sides are deduplicated. Optional export settings control inclusion of relations, attributes, and credentials. All resolved entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint.\n\nAvailable for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission.", "operationId": "exportSolution", "requestBody": { - "description": "Export request with entity IDs and optional settings.", + "description": "Export request with internal and/or external entity IDs and optional settings.", "content": { "application/json": { "schema": { @@ -107516,7 +107706,7 @@ "solution-export-import-controller" ], "summary": "Validate Solution (validateSolution)", - "description": "Performs a dry-run validation of a solution without modifying any data. Detects duplicate entities within the solution, identifies name conflicts with existing entities in the current tenant, and reports missing dependency references (e.g. a device profile referencing an absent rule chain). The result indicates whether the solution is safe to import (valid=true) and lists any conflicts or warnings.\n\nAvailable for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL READ permission.", + "description": "Performs a dry-run validation of a solution without modifying any data. Detects duplicate entities within the solution, identifies name conflicts with existing entities in the current tenant, and reports missing dependency references (e.g. a device profile referencing an absent rule chain). The result indicates whether the solution is safe to import (valid=true) and lists any conflicts or warnings.\n\nAvailable for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission.", "operationId": "validateSolution", "requestBody": { "description": "Solution data to validate.", @@ -137625,6 +137815,7 @@ }, "timeseries": { "type": "array", + "description": "List of unique time series key names available on the matched entities.", "items": { "type": "string", "example": "temperature", @@ -137634,6 +137825,7 @@ }, "attribute": { "type": "array", + "description": "List of unique attribute key names available on the matched entities.", "items": { "type": "string", "example": "serialNumber", @@ -137672,6 +137864,7 @@ }, "timeseries": { "type": "array", + "description": "List of unique time series keys available on the matched entities, sorted alphabetically.\nOmitted when timeseries keys were not requested.", "items": { "$ref": "#/components/schemas/KeyInfo" } @@ -144286,7 +144479,8 @@ "CONVERTER": "#/components/schemas/ConverterExportData", "INTEGRATION": "#/components/schemas/IntegrationExportData", "ROLE": "#/components/schemas/RoleExportData", - "REPORT_TEMPLATE": "#/components/schemas/ReportTemplateExportData" + "REPORT_TEMPLATE": "#/components/schemas/ReportTemplateExportData", + "USER": "#/components/schemas/UserExportData" } }, "example": { @@ -144373,6 +144567,9 @@ }, "exportGroupEntities": { "type": "boolean" + }, + "embedGroupMembers": { + "type": "boolean" } } }, @@ -144455,7 +144652,7 @@ }, "ownerId": { "$ref": "#/components/schemas/EntityId", - "description": "JSON object with the owner of the group - Tenant or Customer Id." + "description": "JSON object with the owner of the group - Tenant or Customer Id. When omitted or null on creation, defaults to the current user's owner (Tenant for tenant admins, Customer for customer users)." }, "additionalInfo": { "$ref": "#/components/schemas/JsonNode", @@ -144499,18 +144696,29 @@ "properties": { "permissions": { "type": "array", + "description": "Group permissions to apply to this group on import. Meaningful only for USER groups; ignored for groups of any other type. Each entry's userGroupId, roleId, and entityGroupId may use the external IDs of other entities in this payload or the IDs of entities that already exist on the target tenant; the importer resolves them against the target tenant. System-tenant roles are not allowed and will be rejected. Leave null to skip permission management for this group.", "items": { "$ref": "#/components/schemas/GroupPermission" } }, "groupOtaPackages": { "type": "array", + "description": "OTA package assignments to apply to this group on import. Meaningful only for DEVICE groups; ignored for groups of any other type. Each entry's otaPackageId and groupId may reference external IDs of entities in this payload or IDs of entities that already exist on the target tenant. Leave null to skip OTA assignment management for this group.", "items": { "$ref": "#/components/schemas/DeviceGroupOtaPackage" } }, "groupEntities": { - "type": "boolean" + "type": "boolean", + "description": "Marker indicating that the group's member entities are intended to be transported alongside this payload. Used by flows that convey members through a side channel (notably the version control flow, which stores members in a separate git index). The solution import API does not consume this flag and does not require it to be set. Safe to leave false (default)." + }, + "memberIds": { + "type": "array", + "description": "External IDs of the entities that should be members of this group after import. Each ID is resolved against the target tenant — by other entity in this payload, by external ID, or by existing internal ID — and the matching entities are added to the group. The import fails if any listed member cannot be resolved. Must be null for the special 'All' group (whose membership is implicit and managed by the platform). Leave null to skip membership wiring; existing membership on the target tenant is left untouched.", + "items": { + "type": "string", + "format": "uuid" + } } } }, @@ -144522,6 +144730,7 @@ "permissions": null, "groupOtaPackages": null, "groupEntities": null, + "memberIds": null, "entity": { "createdTime": null, "id": { @@ -144623,7 +144832,7 @@ }, "ownerId": { "$ref": "#/components/schemas/EntityId", - "description": "JSON object with the owner of the group - Tenant or Customer Id." + "description": "JSON object with the owner of the group - Tenant or Customer Id. When omitted or null on creation, defaults to the current user's owner (Tenant for tenant admins, Customer for customer users)." }, "additionalInfo": { "$ref": "#/components/schemas/JsonNode", @@ -144643,6 +144852,7 @@ }, "ownerIds": { "type": "array", + "description": "List of the entity group owners.", "items": { "$ref": "#/components/schemas/EntityId" }, @@ -144664,6 +144874,7 @@ }, "required": [ "name", + "ownerIds", "type" ] }, @@ -156450,11 +156661,26 @@ }, "permissions": { "$ref": "#/components/schemas/JsonNode", - "description": "JSON object with the set of permissions. Structure is specific for role type" + "description": "Set of permissions granted by this role. The JSON shape depends on the role 'type':\n\n* GENERIC — JSON object mapping `Resource` enum names to arrays of `Operation` enum names allowed on that resource. The wildcard entry `{\"ALL\":[\"ALL\"]}` grants every operation on every resource.\n\n* GROUP — JSON array of `Operation` enum names that apply to the entity group this role is bound to via `GroupPermission.entityGroupId`. Only operations with `allowedForGroupRole=true` may appear (see `Operation` enum). The wildcard entry `[\"ALL\"]` grants every supported operation on the bound entity group.", + "example": { + "DEVICE": [ + "READ", + "WRITE", + "READ_TELEMETRY" + ], + "DASHBOARD": [ + "READ" + ] + } }, "excludedPermissions": { "$ref": "#/components/schemas/JsonNode", - "description": "JSON object with the set of excluded permissions. Only applicable for generic roles. Structure is the same as permissions" + "description": "Operations to subtract from those granted by `permissions`. Only applicable to GENERIC roles — setting this on a GROUP role is rejected by validation. Same shape as the GENERIC variant of `permissions`: a JSON object mapping `Resource` enum names to non-empty arrays of `Operation` enum names. At evaluation time, for each resource the listed operations are removed from the resolved permission set (e.g. `permissions={\"ALL\":[\"ALL\"]}` combined with `excludedPermissions={\"DEVICE\":[\"DELETE\"]}` grants everything except deleting devices). May be null or an empty object when no exclusions apply.", + "example": { + "DEVICE": [ + "DELETE" + ] + } }, "version": { "type": "integer", @@ -158865,8 +159091,17 @@ "type": "object", "description": "Solution export request specifying which entities to include and export settings.", "properties": { - "entityIds": { + "internalIds": { "type": "array", + "description": "Set of internal entity IDs to export. The 'id' of each EntityId is the server-internal UUID. All listed entities must belong to the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty.", + "items": { + "$ref": "#/components/schemas/EntityId" + }, + "uniqueItems": true + }, + "externalIds": { + "type": "array", + "description": "Set of external entity IDs to export. The 'id' of each EntityId is the external UUID (as stored in the 'externalId' field on the entity in the current tenant). The server looks up each entity by 'externalId' and 'entityType' within the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty.", "items": { "$ref": "#/components/schemas/EntityId" }, @@ -158913,11 +159148,12 @@ "type": "integer", "format": "int32" }, - "description": "Number of newly created entities per entity type. Entity types with zero created entities are omitted.", + "description": "Number of newly created entities per entity type. Entity types with zero created entities are omitted. Entity groups are reported under the ENTITY_GROUP key regardless of their inner type (e.g. a user group and a device group both contribute to ENTITY_GROUP).", "example": { "RULE_CHAIN": 2, "DEVICE_PROFILE": 1, - "DEVICE": 3 + "DEVICE": 3, + "ENTITY_GROUP": 1 } }, "idMapping": { @@ -160252,6 +160488,7 @@ "properties": { "contents": { "type": "array", + "description": "A list of content parts that make up the complete user prompt", "items": { "$ref": "#/components/schemas/TbContent" }, @@ -162960,6 +163197,31 @@ } } }, + "UserExportData": { + "allOf": [ + { + "$ref": "#/components/schemas/EntityExportData" + } + ], + "example": { + "entity": { + "createdTime": null, + "id": { + "entityType": "DEVICE", + "id": "784f394c-42b6-435a-983c-b7beff2784f9" + }, + "name": null, + "tenantId": { + "entityType": "TENANT", + "id": "784f394c-42b6-435a-983c-b7beff2784f9" + } + }, + "relations": null, + "attributes": null, + "calculatedFields": null, + "entityType": "USER" + } + }, "UserGroupListFilter": { "allOf": [ { @@ -164191,6 +164453,7 @@ "properties": { "widgets": { "type": "array", + "description": "List of widgets in the bundle", "items": { "$ref": "#/components/schemas/JsonNode" } diff --git a/paas/tb_paas_client/__init__.py b/paas/tb_paas_client/__init__.py index 7a9fca3d..a1aba50d 100644 --- a/paas/tb_paas_client/__init__.py +++ b/paas/tb_paas_client/__init__.py @@ -38,6 +38,7 @@ if TYPE_CHECKING: from tb_paas_client.api.admin_controller_api import AdminControllerApi from tb_paas_client.api.ai_chat_controller_api import AiChatControllerApi + from tb_paas_client.api.ai_device_dashboard_controller_api import AiDeviceDashboardControllerApi from tb_paas_client.api.ai_model_controller_api import AiModelControllerApi from tb_paas_client.api.ai_solution_controller_api import AiSolutionControllerApi from tb_paas_client.api.ai_tool_controller_api import AiToolControllerApi @@ -1045,6 +1046,7 @@ from tb_paas_client.models.user_activation_link import UserActivationLink from tb_paas_client.models.user_dashboards_info import UserDashboardsInfo from tb_paas_client.models.user_email_info import UserEmailInfo + from tb_paas_client.models.user_export_data import UserExportData from tb_paas_client.models.user_group_list_filter import UserGroupListFilter from tb_paas_client.models.user_id import UserId from tb_paas_client.models.user_info import UserInfo @@ -1094,6 +1096,7 @@ _LAZY_CLASSES = { "AdminControllerApi": "tb_paas_client.api.admin_controller_api", "AiChatControllerApi": "tb_paas_client.api.ai_chat_controller_api", + "AiDeviceDashboardControllerApi": "tb_paas_client.api.ai_device_dashboard_controller_api", "AiModelControllerApi": "tb_paas_client.api.ai_model_controller_api", "AiSolutionControllerApi": "tb_paas_client.api.ai_solution_controller_api", "AiToolControllerApi": "tb_paas_client.api.ai_tool_controller_api", @@ -2101,6 +2104,7 @@ "UserActivationLink": "tb_paas_client.models.user_activation_link", "UserDashboardsInfo": "tb_paas_client.models.user_dashboards_info", "UserEmailInfo": "tb_paas_client.models.user_email_info", + "UserExportData": "tb_paas_client.models.user_export_data", "UserGroupListFilter": "tb_paas_client.models.user_group_list_filter", "UserId": "tb_paas_client.models.user_id", "UserInfo": "tb_paas_client.models.user_info", diff --git a/paas/tb_paas_client/_controller_map.py b/paas/tb_paas_client/_controller_map.py index 021b1900..078367c2 100644 --- a/paas/tb_paas_client/_controller_map.py +++ b/paas/tb_paas_client/_controller_map.py @@ -502,6 +502,9 @@ "find_users_by_query": ("tb_paas_client.api.user_controller_api", "UserControllerApi"), "find_users_by_query_with_http_info": ("tb_paas_client.api.user_controller_api", "UserControllerApi"), "find_users_by_query_without_preload_content": ("tb_paas_client.api.user_controller_api", "UserControllerApi"), + "generate_dashboard": ("tb_paas_client.api.ai_device_dashboard_controller_api", "AiDeviceDashboardControllerApi"), + "generate_dashboard_with_http_info": ("tb_paas_client.api.ai_device_dashboard_controller_api", "AiDeviceDashboardControllerApi"), + "generate_dashboard_without_preload_content": ("tb_paas_client.api.ai_device_dashboard_controller_api", "AiDeviceDashboardControllerApi"), "generate_two_fa_account_config": ("tb_paas_client.api.two_factor_auth_config_controller_api", "TwoFactorAuthConfigControllerApi"), "generate_two_fa_account_config_with_http_info": ("tb_paas_client.api.two_factor_auth_config_controller_api", "TwoFactorAuthConfigControllerApi"), "generate_two_fa_account_config_without_preload_content": ("tb_paas_client.api.two_factor_auth_config_controller_api", "TwoFactorAuthConfigControllerApi"), @@ -2322,6 +2325,7 @@ _CONTROLLER_ATTR_MAP = { "admin_controller": ("tb_paas_client.api.admin_controller_api", "AdminControllerApi"), "ai_chat_controller": ("tb_paas_client.api.ai_chat_controller_api", "AiChatControllerApi"), + "ai_device_dashboard_controller": ("tb_paas_client.api.ai_device_dashboard_controller_api", "AiDeviceDashboardControllerApi"), "ai_model_controller": ("tb_paas_client.api.ai_model_controller_api", "AiModelControllerApi"), "ai_solution_controller": ("tb_paas_client.api.ai_solution_controller_api", "AiSolutionControllerApi"), "ai_tool_controller": ("tb_paas_client.api.ai_tool_controller_api", "AiToolControllerApi"), diff --git a/paas/tb_paas_client/api/__init__.py b/paas/tb_paas_client/api/__init__.py index 7316e836..703c0fd7 100644 --- a/paas/tb_paas_client/api/__init__.py +++ b/paas/tb_paas_client/api/__init__.py @@ -19,6 +19,7 @@ __all__ = [ "AdminControllerApi", "AiChatControllerApi", + "AiDeviceDashboardControllerApi", "AiModelControllerApi", "AiSolutionControllerApi", "AiToolControllerApi", @@ -110,6 +111,7 @@ if TYPE_CHECKING: from tb_paas_client.api.admin_controller_api import AdminControllerApi from tb_paas_client.api.ai_chat_controller_api import AiChatControllerApi + from tb_paas_client.api.ai_device_dashboard_controller_api import AiDeviceDashboardControllerApi from tb_paas_client.api.ai_model_controller_api import AiModelControllerApi from tb_paas_client.api.ai_solution_controller_api import AiSolutionControllerApi from tb_paas_client.api.ai_tool_controller_api import AiToolControllerApi @@ -200,6 +202,7 @@ _API_CLASSES = { "AdminControllerApi": "tb_paas_client.api.admin_controller_api", "AiChatControllerApi": "tb_paas_client.api.ai_chat_controller_api", + "AiDeviceDashboardControllerApi": "tb_paas_client.api.ai_device_dashboard_controller_api", "AiModelControllerApi": "tb_paas_client.api.ai_model_controller_api", "AiSolutionControllerApi": "tb_paas_client.api.ai_solution_controller_api", "AiToolControllerApi": "tb_paas_client.api.ai_tool_controller_api", diff --git a/paas/tb_paas_client/api/admin_controller_api.py b/paas/tb_paas_client/api/admin_controller_api.py index c4525420..4a3a4ba9 100644 --- a/paas/tb_paas_client/api/admin_controller_api.py +++ b/paas/tb_paas_client/api/admin_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/ai_chat_controller_api.py b/paas/tb_paas_client/api/ai_chat_controller_api.py index b955cb1f..004c12ee 100644 --- a/paas/tb_paas_client/api/ai_chat_controller_api.py +++ b/paas/tb_paas_client/api/ai_chat_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -1169,6 +1169,7 @@ def send_chat_message( chat_id: UUID, x_authorization: StrictStr, body: StrictStr, + accept_language: Optional[StrictStr] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1191,6 +1192,8 @@ def send_chat_message( :type x_authorization: str :param body: (required) :type body: str + :param accept_language: + :type accept_language: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1217,6 +1220,7 @@ def send_chat_message( chat_id=chat_id, x_authorization=x_authorization, body=body, + accept_language=accept_language, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1248,6 +1252,7 @@ def send_chat_message_with_http_info( chat_id: UUID, x_authorization: StrictStr, body: StrictStr, + accept_language: Optional[StrictStr] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1270,6 +1275,8 @@ def send_chat_message_with_http_info( :type x_authorization: str :param body: (required) :type body: str + :param accept_language: + :type accept_language: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1296,6 +1303,7 @@ def send_chat_message_with_http_info( chat_id=chat_id, x_authorization=x_authorization, body=body, + accept_language=accept_language, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1327,6 +1335,7 @@ def send_chat_message_without_preload_content( chat_id: UUID, x_authorization: StrictStr, body: StrictStr, + accept_language: Optional[StrictStr] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1349,6 +1358,8 @@ def send_chat_message_without_preload_content( :type x_authorization: str :param body: (required) :type body: str + :param accept_language: + :type accept_language: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1375,6 +1386,7 @@ def send_chat_message_without_preload_content( chat_id=chat_id, x_authorization=x_authorization, body=body, + accept_language=accept_language, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1401,6 +1413,7 @@ def _send_chat_message_serialize( chat_id, x_authorization, body, + accept_language, _request_auth, _content_type, _headers, @@ -1428,6 +1441,8 @@ def _send_chat_message_serialize( # process the header parameters if x_authorization is not None: _header_params['X-Authorization'] = x_authorization + if accept_language is not None: + _header_params['Accept-Language'] = accept_language # process the form parameters # process the body parameter if body is not None: diff --git a/paas/tb_paas_client/api/ai_device_dashboard_controller_api.py b/paas/tb_paas_client/api/ai_device_dashboard_controller_api.py new file mode 100644 index 00000000..bd21004b --- /dev/null +++ b/paas/tb_paas_client/api/ai_device_dashboard_controller_api.py @@ -0,0 +1,370 @@ +# +# Copyright © 2026-2026 ThingsBoard, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +""" + ThingsBoard REST API + + ThingsBoard Professional Edition IoT platform REST API documentation. + + The version of the OpenAPI document: 4.3.1.2.0PAAS + Contact: info@thingsboard.io + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import StrictStr +from typing import Any, Optional +from uuid import UUID + +from tb_paas_client.api_client import ApiClient, RequestSerialized +from tb_paas_client.api_response import ApiResponse +from tb_paas_client.rest import RESTResponseType + + +class AiDeviceDashboardControllerApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def generate_dashboard( + self, + device_id: UUID, + x_authorization: StrictStr, + body: Optional[Any], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """generateDashboard + + + :param device_id: (required) + :type device_id: UUID + :param x_authorization: (required) + :type x_authorization: str + :param body: (required) + :type body: object + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._generate_dashboard_serialize( + device_id=device_id, + x_authorization=x_authorization, + body=body, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': "ThingsboardErrorResponse", + '401': "ThingsboardErrorResponse", + '403': "ThingsboardErrorResponse", + '404': "ThingsboardErrorResponse", + '429': "ThingsboardErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def generate_dashboard_with_http_info( + self, + device_id: UUID, + x_authorization: StrictStr, + body: Optional[Any], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """generateDashboard + + + :param device_id: (required) + :type device_id: UUID + :param x_authorization: (required) + :type x_authorization: str + :param body: (required) + :type body: object + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._generate_dashboard_serialize( + device_id=device_id, + x_authorization=x_authorization, + body=body, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': "ThingsboardErrorResponse", + '401': "ThingsboardErrorResponse", + '403': "ThingsboardErrorResponse", + '404': "ThingsboardErrorResponse", + '429': "ThingsboardErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def generate_dashboard_without_preload_content( + self, + device_id: UUID, + x_authorization: StrictStr, + body: Optional[Any], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """generateDashboard + + + :param device_id: (required) + :type device_id: UUID + :param x_authorization: (required) + :type x_authorization: str + :param body: (required) + :type body: object + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._generate_dashboard_serialize( + device_id=device_id, + x_authorization=x_authorization, + body=body, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': "ThingsboardErrorResponse", + '401': "ThingsboardErrorResponse", + '403': "ThingsboardErrorResponse", + '404': "ThingsboardErrorResponse", + '429': "ThingsboardErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _generate_dashboard_serialize( + self, + device_id, + x_authorization, + body, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if device_id is not None: + _path_params['deviceId'] = device_id + # process the query parameters + # process the header parameters + if x_authorization is not None: + _header_params['X-Authorization'] = x_authorization + # process the form parameters + # process the body parameter + if body is not None: + _body_params = body + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyForm', + 'HttpLoginForm' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/ai/devices/{deviceId}/dashboard', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/paas/tb_paas_client/api/ai_model_controller_api.py b/paas/tb_paas_client/api/ai_model_controller_api.py index c5cb0686..124f1477 100644 --- a/paas/tb_paas_client/api/ai_model_controller_api.py +++ b/paas/tb_paas_client/api/ai_model_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/ai_solution_controller_api.py b/paas/tb_paas_client/api/ai_solution_controller_api.py index 3904912e..6ea947f9 100644 --- a/paas/tb_paas_client/api/ai_solution_controller_api.py +++ b/paas/tb_paas_client/api/ai_solution_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/ai_tool_controller_api.py b/paas/tb_paas_client/api/ai_tool_controller_api.py index b8694a9b..f9f6427f 100644 --- a/paas/tb_paas_client/api/ai_tool_controller_api.py +++ b/paas/tb_paas_client/api/ai_tool_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/alarm_comment_controller_api.py b/paas/tb_paas_client/api/alarm_comment_controller_api.py index 0b657a93..a050ae3d 100644 --- a/paas/tb_paas_client/api/alarm_comment_controller_api.py +++ b/paas/tb_paas_client/api/alarm_comment_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/alarm_controller_api.py b/paas/tb_paas_client/api/alarm_controller_api.py index d6b6d0f7..b87bbb32 100644 --- a/paas/tb_paas_client/api/alarm_controller_api.py +++ b/paas/tb_paas_client/api/alarm_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/alarm_rule_controller_api.py b/paas/tb_paas_client/api/alarm_rule_controller_api.py index 7d812603..f6fec3f8 100644 --- a/paas/tb_paas_client/api/alarm_rule_controller_api.py +++ b/paas/tb_paas_client/api/alarm_rule_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/api_key_controller_api.py b/paas/tb_paas_client/api/api_key_controller_api.py index d6ee0a75..0b295d97 100644 --- a/paas/tb_paas_client/api/api_key_controller_api.py +++ b/paas/tb_paas_client/api/api_key_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/asset_controller_api.py b/paas/tb_paas_client/api/asset_controller_api.py index 69b230eb..e05b7ddf 100644 --- a/paas/tb_paas_client/api/asset_controller_api.py +++ b/paas/tb_paas_client/api/asset_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/asset_profile_controller_api.py b/paas/tb_paas_client/api/asset_profile_controller_api.py index c1c51fa2..5b40c22a 100644 --- a/paas/tb_paas_client/api/asset_profile_controller_api.py +++ b/paas/tb_paas_client/api/asset_profile_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/audit_log_controller_api.py b/paas/tb_paas_client/api/audit_log_controller_api.py index 86b66a7d..0446ca14 100644 --- a/paas/tb_paas_client/api/audit_log_controller_api.py +++ b/paas/tb_paas_client/api/audit_log_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/auth_controller_api.py b/paas/tb_paas_client/api/auth_controller_api.py index efe480e2..b260c432 100644 --- a/paas/tb_paas_client/api/auth_controller_api.py +++ b/paas/tb_paas_client/api/auth_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/billing_endpoint_controller_api.py b/paas/tb_paas_client/api/billing_endpoint_controller_api.py index b2659a92..39a40c87 100644 --- a/paas/tb_paas_client/api/billing_endpoint_controller_api.py +++ b/paas/tb_paas_client/api/billing_endpoint_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/blob_entity_controller_api.py b/paas/tb_paas_client/api/blob_entity_controller_api.py index 6f69fe13..7731351b 100644 --- a/paas/tb_paas_client/api/blob_entity_controller_api.py +++ b/paas/tb_paas_client/api/blob_entity_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/calculated_field_controller_api.py b/paas/tb_paas_client/api/calculated_field_controller_api.py index 4cfc4741..0e6d813d 100644 --- a/paas/tb_paas_client/api/calculated_field_controller_api.py +++ b/paas/tb_paas_client/api/calculated_field_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/cloud_endpoint_controller_api.py b/paas/tb_paas_client/api/cloud_endpoint_controller_api.py index 0774c7eb..60e2f3d6 100644 --- a/paas/tb_paas_client/api/cloud_endpoint_controller_api.py +++ b/paas/tb_paas_client/api/cloud_endpoint_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/component_descriptor_controller_api.py b/paas/tb_paas_client/api/component_descriptor_controller_api.py index 021a5d4c..61598544 100644 --- a/paas/tb_paas_client/api/component_descriptor_controller_api.py +++ b/paas/tb_paas_client/api/component_descriptor_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/converter_controller_api.py b/paas/tb_paas_client/api/converter_controller_api.py index d86a1146..458e1e93 100644 --- a/paas/tb_paas_client/api/converter_controller_api.py +++ b/paas/tb_paas_client/api/converter_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/converter_library_controller_api.py b/paas/tb_paas_client/api/converter_library_controller_api.py index cb6cb141..5f62dd03 100644 --- a/paas/tb_paas_client/api/converter_library_controller_api.py +++ b/paas/tb_paas_client/api/converter_library_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/custom_menu_controller_api.py b/paas/tb_paas_client/api/custom_menu_controller_api.py index 5b3d07f1..2523b8a4 100644 --- a/paas/tb_paas_client/api/custom_menu_controller_api.py +++ b/paas/tb_paas_client/api/custom_menu_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/custom_translation_controller_api.py b/paas/tb_paas_client/api/custom_translation_controller_api.py index 7f411893..e30077de 100644 --- a/paas/tb_paas_client/api/custom_translation_controller_api.py +++ b/paas/tb_paas_client/api/custom_translation_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/customer_controller_api.py b/paas/tb_paas_client/api/customer_controller_api.py index efabb43c..5d30fbb0 100644 --- a/paas/tb_paas_client/api/customer_controller_api.py +++ b/paas/tb_paas_client/api/customer_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/dashboard_controller_api.py b/paas/tb_paas_client/api/dashboard_controller_api.py index 0ff3e81d..4edd2ae1 100644 --- a/paas/tb_paas_client/api/dashboard_controller_api.py +++ b/paas/tb_paas_client/api/dashboard_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/dashboard_report_controller_api.py b/paas/tb_paas_client/api/dashboard_report_controller_api.py index 4fedbe09..d0ba29a8 100644 --- a/paas/tb_paas_client/api/dashboard_report_controller_api.py +++ b/paas/tb_paas_client/api/dashboard_report_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/device_connectivity_controller_api.py b/paas/tb_paas_client/api/device_connectivity_controller_api.py index 538ecbf2..9ff1b992 100644 --- a/paas/tb_paas_client/api/device_connectivity_controller_api.py +++ b/paas/tb_paas_client/api/device_connectivity_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/device_controller_api.py b/paas/tb_paas_client/api/device_controller_api.py index 5167afa2..d53ed48c 100644 --- a/paas/tb_paas_client/api/device_controller_api.py +++ b/paas/tb_paas_client/api/device_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/device_group_ota_package_controller_api.py b/paas/tb_paas_client/api/device_group_ota_package_controller_api.py index 70307290..621e412e 100644 --- a/paas/tb_paas_client/api/device_group_ota_package_controller_api.py +++ b/paas/tb_paas_client/api/device_group_ota_package_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/device_profile_controller_api.py b/paas/tb_paas_client/api/device_profile_controller_api.py index 152894bd..65740b7b 100644 --- a/paas/tb_paas_client/api/device_profile_controller_api.py +++ b/paas/tb_paas_client/api/device_profile_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/domain_controller_api.py b/paas/tb_paas_client/api/domain_controller_api.py index 0b147c09..89b12e6b 100644 --- a/paas/tb_paas_client/api/domain_controller_api.py +++ b/paas/tb_paas_client/api/domain_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/edge_controller_api.py b/paas/tb_paas_client/api/edge_controller_api.py index 756b6ea3..b725409b 100644 --- a/paas/tb_paas_client/api/edge_controller_api.py +++ b/paas/tb_paas_client/api/edge_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/edge_event_controller_api.py b/paas/tb_paas_client/api/edge_event_controller_api.py index d509c386..50c88a84 100644 --- a/paas/tb_paas_client/api/edge_event_controller_api.py +++ b/paas/tb_paas_client/api/edge_event_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/entities_version_control_controller_api.py b/paas/tb_paas_client/api/entities_version_control_controller_api.py index 04036885..8384fb97 100644 --- a/paas/tb_paas_client/api/entities_version_control_controller_api.py +++ b/paas/tb_paas_client/api/entities_version_control_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/entity_group_controller_api.py b/paas/tb_paas_client/api/entity_group_controller_api.py index 6211aa6b..7ff8be75 100644 --- a/paas/tb_paas_client/api/entity_group_controller_api.py +++ b/paas/tb_paas_client/api/entity_group_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/entity_query_controller_api.py b/paas/tb_paas_client/api/entity_query_controller_api.py index 4ffb386c..282508e9 100644 --- a/paas/tb_paas_client/api/entity_query_controller_api.py +++ b/paas/tb_paas_client/api/entity_query_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/entity_relation_controller_api.py b/paas/tb_paas_client/api/entity_relation_controller_api.py index 106260fe..d6481dcd 100644 --- a/paas/tb_paas_client/api/entity_relation_controller_api.py +++ b/paas/tb_paas_client/api/entity_relation_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/entity_view_controller_api.py b/paas/tb_paas_client/api/entity_view_controller_api.py index 987e65a9..cc78fe85 100644 --- a/paas/tb_paas_client/api/entity_view_controller_api.py +++ b/paas/tb_paas_client/api/entity_view_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/event_controller_api.py b/paas/tb_paas_client/api/event_controller_api.py index 0804dc86..de20bb18 100644 --- a/paas/tb_paas_client/api/event_controller_api.py +++ b/paas/tb_paas_client/api/event_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/group_permission_controller_api.py b/paas/tb_paas_client/api/group_permission_controller_api.py index 9aacd2a4..b1fa74aa 100644 --- a/paas/tb_paas_client/api/group_permission_controller_api.py +++ b/paas/tb_paas_client/api/group_permission_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/image_controller_api.py b/paas/tb_paas_client/api/image_controller_api.py index d1a2bf55..f0f4a9f8 100644 --- a/paas/tb_paas_client/api/image_controller_api.py +++ b/paas/tb_paas_client/api/image_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/integration_controller_api.py b/paas/tb_paas_client/api/integration_controller_api.py index eedfba2f..8826dc81 100644 --- a/paas/tb_paas_client/api/integration_controller_api.py +++ b/paas/tb_paas_client/api/integration_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/job_controller_api.py b/paas/tb_paas_client/api/job_controller_api.py index 41cbb5e8..2b0d2e12 100644 --- a/paas/tb_paas_client/api/job_controller_api.py +++ b/paas/tb_paas_client/api/job_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/login_endpoint_api.py b/paas/tb_paas_client/api/login_endpoint_api.py index 15e0492c..533daab4 100644 --- a/paas/tb_paas_client/api/login_endpoint_api.py +++ b/paas/tb_paas_client/api/login_endpoint_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/lwm2m_controller_api.py b/paas/tb_paas_client/api/lwm2m_controller_api.py index 410610a7..cce493c8 100644 --- a/paas/tb_paas_client/api/lwm2m_controller_api.py +++ b/paas/tb_paas_client/api/lwm2m_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/mail_config_template_controller_api.py b/paas/tb_paas_client/api/mail_config_template_controller_api.py index bebf1f3f..e44c676f 100644 --- a/paas/tb_paas_client/api/mail_config_template_controller_api.py +++ b/paas/tb_paas_client/api/mail_config_template_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/mobile_app_bundle_controller_api.py b/paas/tb_paas_client/api/mobile_app_bundle_controller_api.py index 28640105..227e2100 100644 --- a/paas/tb_paas_client/api/mobile_app_bundle_controller_api.py +++ b/paas/tb_paas_client/api/mobile_app_bundle_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/mobile_app_controller_api.py b/paas/tb_paas_client/api/mobile_app_controller_api.py index 603b1a8f..8b154c18 100644 --- a/paas/tb_paas_client/api/mobile_app_controller_api.py +++ b/paas/tb_paas_client/api/mobile_app_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/notification_controller_api.py b/paas/tb_paas_client/api/notification_controller_api.py index a71eb902..7dffcb30 100644 --- a/paas/tb_paas_client/api/notification_controller_api.py +++ b/paas/tb_paas_client/api/notification_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/notification_rule_controller_api.py b/paas/tb_paas_client/api/notification_rule_controller_api.py index 5ac5ff73..ec2dbf2e 100644 --- a/paas/tb_paas_client/api/notification_rule_controller_api.py +++ b/paas/tb_paas_client/api/notification_rule_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/notification_target_controller_api.py b/paas/tb_paas_client/api/notification_target_controller_api.py index cfd7ad6f..f59e58a8 100644 --- a/paas/tb_paas_client/api/notification_target_controller_api.py +++ b/paas/tb_paas_client/api/notification_target_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/notification_template_controller_api.py b/paas/tb_paas_client/api/notification_template_controller_api.py index 79226357..7bf557ec 100644 --- a/paas/tb_paas_client/api/notification_template_controller_api.py +++ b/paas/tb_paas_client/api/notification_template_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/o_auth2_config_template_controller_api.py b/paas/tb_paas_client/api/o_auth2_config_template_controller_api.py index 3b50b8ce..fc88955d 100644 --- a/paas/tb_paas_client/api/o_auth2_config_template_controller_api.py +++ b/paas/tb_paas_client/api/o_auth2_config_template_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/o_auth2_controller_api.py b/paas/tb_paas_client/api/o_auth2_controller_api.py index 3613a3e6..3602b8fb 100644 --- a/paas/tb_paas_client/api/o_auth2_controller_api.py +++ b/paas/tb_paas_client/api/o_auth2_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/ota_package_controller_api.py b/paas/tb_paas_client/api/ota_package_controller_api.py index e535d150..501fba66 100644 --- a/paas/tb_paas_client/api/ota_package_controller_api.py +++ b/paas/tb_paas_client/api/ota_package_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/owner_controller_api.py b/paas/tb_paas_client/api/owner_controller_api.py index ef0efcbd..41f67a50 100644 --- a/paas/tb_paas_client/api/owner_controller_api.py +++ b/paas/tb_paas_client/api/owner_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/qr_code_settings_controller_api.py b/paas/tb_paas_client/api/qr_code_settings_controller_api.py index 61cbc37c..d464f96e 100644 --- a/paas/tb_paas_client/api/qr_code_settings_controller_api.py +++ b/paas/tb_paas_client/api/qr_code_settings_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/queue_controller_api.py b/paas/tb_paas_client/api/queue_controller_api.py index de5c5bc6..d1322426 100644 --- a/paas/tb_paas_client/api/queue_controller_api.py +++ b/paas/tb_paas_client/api/queue_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/queue_stats_controller_api.py b/paas/tb_paas_client/api/queue_stats_controller_api.py index 672c3472..fbc2bf19 100644 --- a/paas/tb_paas_client/api/queue_stats_controller_api.py +++ b/paas/tb_paas_client/api/queue_stats_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/report_controller_api.py b/paas/tb_paas_client/api/report_controller_api.py index 2765a299..ff2b8ff4 100644 --- a/paas/tb_paas_client/api/report_controller_api.py +++ b/paas/tb_paas_client/api/report_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/report_template_controller_api.py b/paas/tb_paas_client/api/report_template_controller_api.py index 99e3efdc..29975b8d 100644 --- a/paas/tb_paas_client/api/report_template_controller_api.py +++ b/paas/tb_paas_client/api/report_template_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/role_controller_api.py b/paas/tb_paas_client/api/role_controller_api.py index 091093db..95c0fbc9 100644 --- a/paas/tb_paas_client/api/role_controller_api.py +++ b/paas/tb_paas_client/api/role_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/rpc_v1_controller_api.py b/paas/tb_paas_client/api/rpc_v1_controller_api.py index ac657385..7200ce07 100644 --- a/paas/tb_paas_client/api/rpc_v1_controller_api.py +++ b/paas/tb_paas_client/api/rpc_v1_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/rpc_v2_controller_api.py b/paas/tb_paas_client/api/rpc_v2_controller_api.py index 366c5bcc..76f2a1b7 100644 --- a/paas/tb_paas_client/api/rpc_v2_controller_api.py +++ b/paas/tb_paas_client/api/rpc_v2_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/rule_chain_controller_api.py b/paas/tb_paas_client/api/rule_chain_controller_api.py index 745de3f4..8a28716f 100644 --- a/paas/tb_paas_client/api/rule_chain_controller_api.py +++ b/paas/tb_paas_client/api/rule_chain_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/rule_engine_controller_api.py b/paas/tb_paas_client/api/rule_engine_controller_api.py index 59a7774d..ffdee21f 100644 --- a/paas/tb_paas_client/api/rule_engine_controller_api.py +++ b/paas/tb_paas_client/api/rule_engine_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/scheduler_event_controller_api.py b/paas/tb_paas_client/api/scheduler_event_controller_api.py index 5ad48bc6..5fbcabf6 100644 --- a/paas/tb_paas_client/api/scheduler_event_controller_api.py +++ b/paas/tb_paas_client/api/scheduler_event_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/secret_controller_api.py b/paas/tb_paas_client/api/secret_controller_api.py index f4d31443..d694b077 100644 --- a/paas/tb_paas_client/api/secret_controller_api.py +++ b/paas/tb_paas_client/api/secret_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/self_registration_controller_api.py b/paas/tb_paas_client/api/self_registration_controller_api.py index a11fd4a5..220a60e5 100644 --- a/paas/tb_paas_client/api/self_registration_controller_api.py +++ b/paas/tb_paas_client/api/self_registration_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/sign_up_controller_api.py b/paas/tb_paas_client/api/sign_up_controller_api.py index f3ba3592..26f5d572 100644 --- a/paas/tb_paas_client/api/sign_up_controller_api.py +++ b/paas/tb_paas_client/api/sign_up_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/solution_controller_api.py b/paas/tb_paas_client/api/solution_controller_api.py index 8b03af7a..26e129df 100644 --- a/paas/tb_paas_client/api/solution_controller_api.py +++ b/paas/tb_paas_client/api/solution_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/solution_export_import_controller_api.py b/paas/tb_paas_client/api/solution_export_import_controller_api.py index 063e7eee..014bcdb3 100644 --- a/paas/tb_paas_client/api/solution_export_import_controller_api.py +++ b/paas/tb_paas_client/api/solution_export_import_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -60,7 +60,7 @@ def __init__(self, api_client=None) -> None: @validate_call def export_solution( self, - solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], + solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -76,9 +76,9 @@ def export_solution( ) -> SolutionExportResponse: """Export Solution (exportSolution) - Exports a set of entities as a portable solution package. The request specifies entity IDs to include and optional export settings (relations, attributes, credentials). All specified entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. + Exports a set of entities as a portable solution package. The request specifies entities to include via 'internalIds' (server-internal UUIDs) and/or 'externalIds' (looked up by the entity's stored externalId within the current tenant); at least one of the two collections must be non-empty, and entities reached via both sides are deduplicated. Optional export settings control inclusion of relations, attributes, and credentials. All resolved entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. - :param solution_export_request: Export request with entity IDs and optional settings. (required) + :param solution_export_request: Export request with internal and/or external entity IDs and optional settings. (required) :type solution_export_request: SolutionExportRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -132,7 +132,7 @@ def export_solution( @validate_call def export_solution_with_http_info( self, - solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], + solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -148,9 +148,9 @@ def export_solution_with_http_info( ) -> ApiResponse[SolutionExportResponse]: """Export Solution (exportSolution) - Exports a set of entities as a portable solution package. The request specifies entity IDs to include and optional export settings (relations, attributes, credentials). All specified entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. + Exports a set of entities as a portable solution package. The request specifies entities to include via 'internalIds' (server-internal UUIDs) and/or 'externalIds' (looked up by the entity's stored externalId within the current tenant); at least one of the two collections must be non-empty, and entities reached via both sides are deduplicated. Optional export settings control inclusion of relations, attributes, and credentials. All resolved entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. - :param solution_export_request: Export request with entity IDs and optional settings. (required) + :param solution_export_request: Export request with internal and/or external entity IDs and optional settings. (required) :type solution_export_request: SolutionExportRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -204,7 +204,7 @@ def export_solution_with_http_info( @validate_call def export_solution_without_preload_content( self, - solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], + solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -220,9 +220,9 @@ def export_solution_without_preload_content( ) -> RESTResponseType: """Export Solution (exportSolution) - Exports a set of entities as a portable solution package. The request specifies entity IDs to include and optional export settings (relations, attributes, credentials). All specified entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. + Exports a set of entities as a portable solution package. The request specifies entities to include via 'internalIds' (server-internal UUIDs) and/or 'externalIds' (looked up by the entity's stored externalId within the current tenant); at least one of the two collections must be non-empty, and entities reached via both sides are deduplicated. Optional export settings control inclusion of relations, attributes, and credentials. All resolved entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. - :param solution_export_request: Export request with entity IDs and optional settings. (required) + :param solution_export_request: Export request with internal and/or external entity IDs and optional settings. (required) :type solution_export_request: SolutionExportRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -656,7 +656,7 @@ def validate_solution( ) -> SolutionValidationResult: """Validate Solution (validateSolution) - Performs a dry-run validation of a solution without modifying any data. Detects duplicate entities within the solution, identifies name conflicts with existing entities in the current tenant, and reports missing dependency references (e.g. a device profile referencing an absent rule chain). The result indicates whether the solution is safe to import (valid=true) and lists any conflicts or warnings. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL READ permission. + Performs a dry-run validation of a solution without modifying any data. Detects duplicate entities within the solution, identifies name conflicts with existing entities in the current tenant, and reports missing dependency references (e.g. a device profile referencing an absent rule chain). The result indicates whether the solution is safe to import (valid=true) and lists any conflicts or warnings. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. :param solution_data: Solution data to validate. (required) :type solution_data: SolutionData @@ -728,7 +728,7 @@ def validate_solution_with_http_info( ) -> ApiResponse[SolutionValidationResult]: """Validate Solution (validateSolution) - Performs a dry-run validation of a solution without modifying any data. Detects duplicate entities within the solution, identifies name conflicts with existing entities in the current tenant, and reports missing dependency references (e.g. a device profile referencing an absent rule chain). The result indicates whether the solution is safe to import (valid=true) and lists any conflicts or warnings. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL READ permission. + Performs a dry-run validation of a solution without modifying any data. Detects duplicate entities within the solution, identifies name conflicts with existing entities in the current tenant, and reports missing dependency references (e.g. a device profile referencing an absent rule chain). The result indicates whether the solution is safe to import (valid=true) and lists any conflicts or warnings. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. :param solution_data: Solution data to validate. (required) :type solution_data: SolutionData @@ -800,7 +800,7 @@ def validate_solution_without_preload_content( ) -> RESTResponseType: """Validate Solution (validateSolution) - Performs a dry-run validation of a solution without modifying any data. Detects duplicate entities within the solution, identifies name conflicts with existing entities in the current tenant, and reports missing dependency references (e.g. a device profile referencing an absent rule chain). The result indicates whether the solution is safe to import (valid=true) and lists any conflicts or warnings. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL READ permission. + Performs a dry-run validation of a solution without modifying any data. Detects duplicate entities within the solution, identifies name conflicts with existing entities in the current tenant, and reports missing dependency references (e.g. a device profile referencing an absent rule chain). The result indicates whether the solution is safe to import (valid=true) and lists any conflicts or warnings. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. :param solution_data: Solution data to validate. (required) :type solution_data: SolutionData diff --git a/paas/tb_paas_client/api/subscription_controller_api.py b/paas/tb_paas_client/api/subscription_controller_api.py index 35995891..9e5e28d4 100644 --- a/paas/tb_paas_client/api/subscription_controller_api.py +++ b/paas/tb_paas_client/api/subscription_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/tb_resource_controller_api.py b/paas/tb_paas_client/api/tb_resource_controller_api.py index 5621eecb..050d0479 100644 --- a/paas/tb_paas_client/api/tb_resource_controller_api.py +++ b/paas/tb_paas_client/api/tb_resource_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/telemetry_controller_api.py b/paas/tb_paas_client/api/telemetry_controller_api.py index 7082e207..4d49a096 100644 --- a/paas/tb_paas_client/api/telemetry_controller_api.py +++ b/paas/tb_paas_client/api/telemetry_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/tenant_controller_api.py b/paas/tb_paas_client/api/tenant_controller_api.py index 2b7b074c..93518f5f 100644 --- a/paas/tb_paas_client/api/tenant_controller_api.py +++ b/paas/tb_paas_client/api/tenant_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/tenant_profile_controller_api.py b/paas/tb_paas_client/api/tenant_profile_controller_api.py index 10045439..922d65a7 100644 --- a/paas/tb_paas_client/api/tenant_profile_controller_api.py +++ b/paas/tb_paas_client/api/tenant_profile_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/translation_controller_api.py b/paas/tb_paas_client/api/translation_controller_api.py index 03edf4db..b3812ace 100644 --- a/paas/tb_paas_client/api/translation_controller_api.py +++ b/paas/tb_paas_client/api/translation_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/trendz_api_controller_api.py b/paas/tb_paas_client/api/trendz_api_controller_api.py index 48cc07eb..a235a848 100644 --- a/paas/tb_paas_client/api/trendz_api_controller_api.py +++ b/paas/tb_paas_client/api/trendz_api_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/trendz_controller_api.py b/paas/tb_paas_client/api/trendz_controller_api.py index f2f586d4..28c8dafc 100644 --- a/paas/tb_paas_client/api/trendz_controller_api.py +++ b/paas/tb_paas_client/api/trendz_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/two_factor_auth_config_controller_api.py b/paas/tb_paas_client/api/two_factor_auth_config_controller_api.py index 42a7a7cd..b75581b1 100644 --- a/paas/tb_paas_client/api/two_factor_auth_config_controller_api.py +++ b/paas/tb_paas_client/api/two_factor_auth_config_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/two_factor_auth_controller_api.py b/paas/tb_paas_client/api/two_factor_auth_controller_api.py index 1a6ab21f..cf15d83c 100644 --- a/paas/tb_paas_client/api/two_factor_auth_controller_api.py +++ b/paas/tb_paas_client/api/two_factor_auth_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/ui_settings_controller_api.py b/paas/tb_paas_client/api/ui_settings_controller_api.py index cacafc32..9a96de44 100644 --- a/paas/tb_paas_client/api/ui_settings_controller_api.py +++ b/paas/tb_paas_client/api/ui_settings_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/usage_info_controller_api.py b/paas/tb_paas_client/api/usage_info_controller_api.py index 6128aef3..ea240d84 100644 --- a/paas/tb_paas_client/api/usage_info_controller_api.py +++ b/paas/tb_paas_client/api/usage_info_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/user_controller_api.py b/paas/tb_paas_client/api/user_controller_api.py index 6d90a388..46205056 100644 --- a/paas/tb_paas_client/api/user_controller_api.py +++ b/paas/tb_paas_client/api/user_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/user_permissions_controller_api.py b/paas/tb_paas_client/api/user_permissions_controller_api.py index a25963bc..13839cac 100644 --- a/paas/tb_paas_client/api/user_permissions_controller_api.py +++ b/paas/tb_paas_client/api/user_permissions_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/white_labeling_controller_api.py b/paas/tb_paas_client/api/white_labeling_controller_api.py index 117e7d0d..917c8e5a 100644 --- a/paas/tb_paas_client/api/white_labeling_controller_api.py +++ b/paas/tb_paas_client/api/white_labeling_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/widget_type_controller_api.py b/paas/tb_paas_client/api/widget_type_controller_api.py index 8189dc00..e3fbcb1a 100644 --- a/paas/tb_paas_client/api/widget_type_controller_api.py +++ b/paas/tb_paas_client/api/widget_type_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api/widgets_bundle_controller_api.py b/paas/tb_paas_client/api/widgets_bundle_controller_api.py index 2c1cce64..98c7a5a2 100644 --- a/paas/tb_paas_client/api/widgets_bundle_controller_api.py +++ b/paas/tb_paas_client/api/widgets_bundle_controller_api.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/api_client.py b/paas/tb_paas_client/api_client.py index ca1cae57..dfd59dce 100644 --- a/paas/tb_paas_client/api_client.py +++ b/paas/tb_paas_client/api_client.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/client.pyi b/paas/tb_paas_client/client.pyi index f3bd085f..5d3dbfc7 100644 --- a/paas/tb_paas_client/client.pyi +++ b/paas/tb_paas_client/client.pyi @@ -23,6 +23,7 @@ from tb_paas_client.api_client import ApiClient # Controller class imports from tb_paas_client.api.admin_controller_api import AdminControllerApi from tb_paas_client.api.ai_chat_controller_api import AiChatControllerApi +from tb_paas_client.api.ai_device_dashboard_controller_api import AiDeviceDashboardControllerApi from tb_paas_client.api.ai_model_controller_api import AiModelControllerApi from tb_paas_client.api.ai_solution_controller_api import AiSolutionControllerApi from tb_paas_client.api.ai_tool_controller_api import AiToolControllerApi @@ -260,15 +261,23 @@ class ThingsboardClient: def list_chats_with_http_info(self, chat_type: ChatType, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[object]: ... def list_chats_without_preload_content(self, chat_type: ChatType, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> RESTResponseType: ... def _list_chats_serialize(self, chat_type, _request_auth, _content_type, _headers, _host_index) -> RequestSerialized: ... - def send_chat_message(self, chat_id: UUID, x_authorization: StrictStr, body: StrictStr, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> List[object]: ... - def send_chat_message_with_http_info(self, chat_id: UUID, x_authorization: StrictStr, body: StrictStr, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[List[object]]: ... - def send_chat_message_without_preload_content(self, chat_id: UUID, x_authorization: StrictStr, body: StrictStr, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> RESTResponseType: ... - def _send_chat_message_serialize(self, chat_id, x_authorization, body, _request_auth, _content_type, _headers, _host_index) -> RequestSerialized: ... + def send_chat_message(self, chat_id: UUID, x_authorization: StrictStr, body: StrictStr, accept_language: Optional[StrictStr] = ..., _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> List[object]: ... + def send_chat_message_with_http_info(self, chat_id: UUID, x_authorization: StrictStr, body: StrictStr, accept_language: Optional[StrictStr] = ..., _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[List[object]]: ... + def send_chat_message_without_preload_content(self, chat_id: UUID, x_authorization: StrictStr, body: StrictStr, accept_language: Optional[StrictStr] = ..., _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> RESTResponseType: ... + def _send_chat_message_serialize(self, chat_id, x_authorization, body, accept_language, _request_auth, _content_type, _headers, _host_index) -> RequestSerialized: ... def update_chat(self, chat_id: UUID, body: Optional[Any], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> None: ... def update_chat_with_http_info(self, chat_id: UUID, body: Optional[Any], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[None]: ... def update_chat_without_preload_content(self, chat_id: UUID, body: Optional[Any], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> RESTResponseType: ... def _update_chat_serialize(self, chat_id, body, _request_auth, _content_type, _headers, _host_index) -> RequestSerialized: ... + # --- AiDeviceDashboardControllerApi --- + @property + def ai_device_dashboard_controller(self) -> AiDeviceDashboardControllerApi: ... + def generate_dashboard(self, device_id: UUID, x_authorization: StrictStr, body: Optional[Any], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> object: ... + def generate_dashboard_with_http_info(self, device_id: UUID, x_authorization: StrictStr, body: Optional[Any], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[object]: ... + def generate_dashboard_without_preload_content(self, device_id: UUID, x_authorization: StrictStr, body: Optional[Any], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> RESTResponseType: ... + def _generate_dashboard_serialize(self, device_id, x_authorization, body, _request_auth, _content_type, _headers, _host_index) -> RequestSerialized: ... + # --- AiModelControllerApi --- @property def ai_model_controller(self) -> AiModelControllerApi: ... @@ -2860,9 +2869,9 @@ class ThingsboardClient: # --- SolutionExportImportControllerApi --- @property def solution_export_import_controller(self) -> SolutionExportImportControllerApi: ... - def export_solution(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> SolutionExportResponse: ... - def export_solution_with_http_info(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[SolutionExportResponse]: ... - def export_solution_without_preload_content(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> RESTResponseType: ... + def export_solution(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> SolutionExportResponse: ... + def export_solution_with_http_info(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[SolutionExportResponse]: ... + def export_solution_without_preload_content(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> RESTResponseType: ... def _export_solution_serialize(self, solution_export_request, _request_auth, _content_type, _headers, _host_index) -> RequestSerialized: ... def import_solution(self, solution_data: Annotated[SolutionData, Field(description="Solution data exported via the export endpoint.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> SolutionImportResult: ... def import_solution_with_http_info(self, solution_data: Annotated[SolutionData, Field(description="Solution data exported via the export endpoint.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[SolutionImportResult]: ... diff --git a/paas/tb_paas_client/configuration.py b/paas/tb_paas_client/configuration.py index b87cf526..17a4c62e 100644 --- a/paas/tb_paas_client/configuration.py +++ b/paas/tb_paas_client/configuration.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -549,7 +549,7 @@ def to_debug_report(self) -> str: return "Python SDK Debug Report:\n"\ "OS: {env}\n"\ "Python Version: {pyversion}\n"\ - "Version of the API: 4.3.1.2PAAS\n"\ + "Version of the API: 4.3.1.2.0PAAS\n"\ "SDK Package Version: 1.0.0".\ format(env=sys.platform, pyversion=sys.version) diff --git a/paas/tb_paas_client/exceptions.py b/paas/tb_paas_client/exceptions.py index fe5f0704..6a2dc84d 100644 --- a/paas/tb_paas_client/exceptions.py +++ b/paas/tb_paas_client/exceptions.py @@ -18,7 +18,7 @@ ThingsBoard Professional Edition IoT platform REST API documentation. - The version of the OpenAPI document: 4.3.1.2PAAS + The version of the OpenAPI document: 4.3.1.2.0PAAS Contact: info@thingsboard.io Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/paas/tb_paas_client/models/__init__.py b/paas/tb_paas_client/models/__init__.py index 598a45b0..8f0656bc 100644 --- a/paas/tb_paas_client/models/__init__.py +++ b/paas/tb_paas_client/models/__init__.py @@ -938,6 +938,7 @@ "UserActivationLink", "UserDashboardsInfo", "UserEmailInfo", + "UserExportData", "UserGroupListFilter", "UserId", "UserInfo", @@ -1907,6 +1908,7 @@ from tb_paas_client.models.user_activation_link import UserActivationLink from tb_paas_client.models.user_dashboards_info import UserDashboardsInfo from tb_paas_client.models.user_email_info import UserEmailInfo + from tb_paas_client.models.user_export_data import UserExportData from tb_paas_client.models.user_group_list_filter import UserGroupListFilter from tb_paas_client.models.user_id import UserId from tb_paas_client.models.user_info import UserInfo @@ -2875,6 +2877,7 @@ "UserActivationLink": "tb_paas_client.models.user_activation_link", "UserDashboardsInfo": "tb_paas_client.models.user_dashboards_info", "UserEmailInfo": "tb_paas_client.models.user_email_info", + "UserExportData": "tb_paas_client.models.user_export_data", "UserGroupListFilter": "tb_paas_client.models.user_group_list_filter", "UserId": "tb_paas_client.models.user_id", "UserInfo": "tb_paas_client.models.user_info", diff --git a/paas/tb_paas_client/models/available_entity_keys.py b/paas/tb_paas_client/models/available_entity_keys.py index 0cbf58dd..f402c66b 100644 --- a/paas/tb_paas_client/models/available_entity_keys.py +++ b/paas/tb_paas_client/models/available_entity_keys.py @@ -33,8 +33,8 @@ class AvailableEntityKeys(BaseModel): Contains unique time series and attribute key names discovered from entities matching a query. Used primarily for UI hints such as autocomplete suggestions. """ # noqa: E501 entity_types: List[EntityType] = Field(description="Set of entity types found among the matched entities.", serialization_alias="entityTypes") - timeseries: List[Annotated[str, Field(strict=True)]] - attribute: List[Annotated[str, Field(strict=True)]] + timeseries: List[Annotated[str, Field(strict=True)]] = Field(description="List of unique time series key names available on the matched entities.") + attribute: List[Annotated[str, Field(strict=True)]] = Field(description="List of unique attribute key names available on the matched entities.") __properties: ClassVar[List[str]] = ["entityTypes", "timeseries", "attribute"] model_config = ConfigDict( diff --git a/paas/tb_paas_client/models/available_entity_keys_v2.py b/paas/tb_paas_client/models/available_entity_keys_v2.py index 13f23705..42382fe3 100644 --- a/paas/tb_paas_client/models/available_entity_keys_v2.py +++ b/paas/tb_paas_client/models/available_entity_keys_v2.py @@ -34,7 +34,7 @@ class AvailableEntityKeysV2(BaseModel): """ # noqa: E501 total_entities: StrictInt = Field(description="Total number of entities that matched the query filter.", serialization_alias="totalEntities") entity_types: List[EntityType] = Field(description="Set of entity types found among the matched entities.", serialization_alias="entityTypes") - timeseries: Optional[List[KeyInfo]] = None + timeseries: Optional[List[KeyInfo]] = Field(default=None, description="List of unique time series keys available on the matched entities, sorted alphabetically. Omitted when timeseries keys were not requested.") attributes: Optional[Dict[str, List[KeyInfo]]] = Field(default=None, description="Map of attribute scope to the list of unique attribute keys available on the matched entities. Only scopes supported by the matched entity types are included. Omitted when attribute keys were not requested or when none of the requested scopes apply to the matched entity types.") __properties: ClassVar[List[str]] = ["totalEntities", "entityTypes", "timeseries", "attributes"] diff --git a/paas/tb_paas_client/models/entity_export_data.py b/paas/tb_paas_client/models/entity_export_data.py index 806eda0d..2efcb81f 100644 --- a/paas/tb_paas_client/models/entity_export_data.py +++ b/paas/tb_paas_client/models/entity_export_data.py @@ -54,6 +54,7 @@ from tb_paas_client.models.rule_chain_export_data import RuleChainExportData from tb_paas_client.models.scheduler_event_export_data import SchedulerEventExportData from tb_paas_client.models.tb_resource_export_data import TbResourceExportData + from tb_paas_client.models.user_export_data import UserExportData from tb_paas_client.models.widgets_bundle_export_data import WidgetsBundleExportData from tb_paas_client.models.widget_type_export_data import WidgetTypeExportData @@ -80,7 +81,7 @@ class EntityExportData(BaseModel): # discriminator mappings __discriminator_value_class_map: ClassVar[Dict[str, str]] = { - 'AI_MODEL': 'AiModelExportData','ASSET': 'AssetExportData','ASSET_PROFILE': 'AssetProfileExportData','CONVERTER': 'ConverterExportData','CUSTOMER': 'CustomerExportData','DASHBOARD': 'DashboardExportData','DEVICE': 'DeviceExportData','DEVICE_PROFILE': 'DeviceProfileExportData','ENTITY_GROUP': 'EntityGroupExportData','ENTITY_VIEW': 'EntityViewExportData','INTEGRATION': 'IntegrationExportData','NOTIFICATION_RULE': 'NotificationRuleExportData','NOTIFICATION_TARGET': 'NotificationTargetExportData','NOTIFICATION_TEMPLATE': 'NotificationTemplateExportData','OTA_PACKAGE': 'OtaPackageExportData','REPORT_TEMPLATE': 'ReportTemplateExportData','ROLE': 'RoleExportData','RULE_CHAIN': 'RuleChainExportData','SCHEDULER_EVENT': 'SchedulerEventExportData','TB_RESOURCE': 'TbResourceExportData','WIDGETS_BUNDLE': 'WidgetsBundleExportData','WIDGET_TYPE': 'WidgetTypeExportData' + 'AI_MODEL': 'AiModelExportData','ASSET': 'AssetExportData','ASSET_PROFILE': 'AssetProfileExportData','CONVERTER': 'ConverterExportData','CUSTOMER': 'CustomerExportData','DASHBOARD': 'DashboardExportData','DEVICE': 'DeviceExportData','DEVICE_PROFILE': 'DeviceProfileExportData','ENTITY_GROUP': 'EntityGroupExportData','ENTITY_VIEW': 'EntityViewExportData','INTEGRATION': 'IntegrationExportData','NOTIFICATION_RULE': 'NotificationRuleExportData','NOTIFICATION_TARGET': 'NotificationTargetExportData','NOTIFICATION_TEMPLATE': 'NotificationTemplateExportData','OTA_PACKAGE': 'OtaPackageExportData','REPORT_TEMPLATE': 'ReportTemplateExportData','ROLE': 'RoleExportData','RULE_CHAIN': 'RuleChainExportData','SCHEDULER_EVENT': 'SchedulerEventExportData','TB_RESOURCE': 'TbResourceExportData','USER': 'UserExportData','WIDGETS_BUNDLE': 'WidgetsBundleExportData','WIDGET_TYPE': 'WidgetTypeExportData' } @classmethod @@ -107,7 +108,7 @@ def to_json(self) -> str: return self.model_dump_json(by_alias=True, exclude_unset=True) @classmethod - def from_json(cls, json_str: str) -> Optional[Union[AiModelExportData, AssetExportData, AssetProfileExportData, ConverterExportData, CustomerExportData, DashboardExportData, DeviceExportData, DeviceProfileExportData, EntityGroupExportData, EntityViewExportData, IntegrationExportData, NotificationRuleExportData, NotificationTargetExportData, NotificationTemplateExportData, OtaPackageExportData, ReportTemplateExportData, RoleExportData, RuleChainExportData, SchedulerEventExportData, TbResourceExportData, WidgetsBundleExportData, WidgetTypeExportData]]: + def from_json(cls, json_str: str) -> Optional[Union[AiModelExportData, AssetExportData, AssetProfileExportData, ConverterExportData, CustomerExportData, DashboardExportData, DeviceExportData, DeviceProfileExportData, EntityGroupExportData, EntityViewExportData, IntegrationExportData, NotificationRuleExportData, NotificationTargetExportData, NotificationTemplateExportData, OtaPackageExportData, ReportTemplateExportData, RoleExportData, RuleChainExportData, SchedulerEventExportData, TbResourceExportData, UserExportData, WidgetsBundleExportData, WidgetTypeExportData]]: """Create an instance of EntityExportData from a JSON string""" return cls.from_dict(json.loads(json_str)) @@ -158,7 +159,7 @@ def to_dict(self) -> Dict[str, Any]: return _dict @classmethod - def from_dict(cls, obj: Dict[str, Any]) -> Optional[Union[AiModelExportData, AssetExportData, AssetProfileExportData, ConverterExportData, CustomerExportData, DashboardExportData, DeviceExportData, DeviceProfileExportData, EntityGroupExportData, EntityViewExportData, IntegrationExportData, NotificationRuleExportData, NotificationTargetExportData, NotificationTemplateExportData, OtaPackageExportData, ReportTemplateExportData, RoleExportData, RuleChainExportData, SchedulerEventExportData, TbResourceExportData, WidgetsBundleExportData, WidgetTypeExportData]]: + def from_dict(cls, obj: Dict[str, Any]) -> Optional[Union[AiModelExportData, AssetExportData, AssetProfileExportData, ConverterExportData, CustomerExportData, DashboardExportData, DeviceExportData, DeviceProfileExportData, EntityGroupExportData, EntityViewExportData, IntegrationExportData, NotificationRuleExportData, NotificationTargetExportData, NotificationTemplateExportData, OtaPackageExportData, ReportTemplateExportData, RoleExportData, RuleChainExportData, SchedulerEventExportData, TbResourceExportData, UserExportData, WidgetsBundleExportData, WidgetTypeExportData]]: """Create an instance of EntityExportData from a dict""" # look up the object type based on discriminator mapping object_type = cls.get_discriminator_value(obj) @@ -202,6 +203,8 @@ def from_dict(cls, obj: Dict[str, Any]) -> Optional[Union[AiModelExportData, Ass return import_module("tb_paas_client.models.scheduler_event_export_data").SchedulerEventExportData.from_dict(obj) if object_type == 'TbResourceExportData': return import_module("tb_paas_client.models.tb_resource_export_data").TbResourceExportData.from_dict(obj) + if object_type == 'UserExportData': + return import_module("tb_paas_client.models.user_export_data").UserExportData.from_dict(obj) if object_type == 'WidgetsBundleExportData': return import_module("tb_paas_client.models.widgets_bundle_export_data").WidgetsBundleExportData.from_dict(obj) if object_type == 'WidgetTypeExportData': diff --git a/paas/tb_paas_client/models/entity_export_settings.py b/paas/tb_paas_client/models/entity_export_settings.py index 857a2b45..4f29e630 100644 --- a/paas/tb_paas_client/models/entity_export_settings.py +++ b/paas/tb_paas_client/models/entity_export_settings.py @@ -36,7 +36,8 @@ class EntityExportSettings(BaseModel): export_calculated_fields: Optional[StrictBool] = Field(default=None, serialization_alias="exportCalculatedFields") export_permissions: Optional[StrictBool] = Field(default=None, serialization_alias="exportPermissions") export_group_entities: Optional[StrictBool] = Field(default=None, serialization_alias="exportGroupEntities") - __properties: ClassVar[List[str]] = ["exportRelations", "exportAttributes", "exportCredentials", "exportCalculatedFields", "exportPermissions", "exportGroupEntities"] + embed_group_members: Optional[StrictBool] = Field(default=None, serialization_alias="embedGroupMembers") + __properties: ClassVar[List[str]] = ["exportRelations", "exportAttributes", "exportCredentials", "exportCalculatedFields", "exportPermissions", "exportGroupEntities", "embedGroupMembers"] model_config = ConfigDict( populate_by_name=True, @@ -99,7 +100,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "export_credentials": obj.get("exportCredentials"), "export_calculated_fields": obj.get("exportCalculatedFields"), "export_permissions": obj.get("exportPermissions"), - "export_group_entities": obj.get("exportGroupEntities") + "export_group_entities": obj.get("exportGroupEntities"), + "embed_group_members": obj.get("embedGroupMembers") }) return _obj diff --git a/paas/tb_paas_client/models/entity_group.py b/paas/tb_paas_client/models/entity_group.py index c8bf12ca..e687fed8 100644 --- a/paas/tb_paas_client/models/entity_group.py +++ b/paas/tb_paas_client/models/entity_group.py @@ -38,7 +38,7 @@ class EntityGroup(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the entity group creation, in milliseconds", serialization_alias="createdTime") type: EntityType name: StrictStr = Field(description="Name of the entity group") - owner_id: Optional[EntityId] = Field(default=None, description="JSON object with the owner of the group - Tenant or Customer Id.", serialization_alias="ownerId") + owner_id: Optional[EntityId] = Field(default=None, description="JSON object with the owner of the group - Tenant or Customer Id. When omitted or null on creation, defaults to the current user's owner (Tenant for tenant admins, Customer for customer users).", serialization_alias="ownerId") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the entity group. May include: 'description' (string), 'isPublic' (boolean, whether this group is shared publicly), 'publicCustomerId' (string, UUID of the public customer associated with this group).", serialization_alias="additionalInfo") configuration: Optional[Any] = Field(default=None, description="JSON with the configuration for UI components: list of columns, settings, actions, etc ") version: Optional[StrictInt] = None diff --git a/paas/tb_paas_client/models/entity_group_export_data.py b/paas/tb_paas_client/models/entity_group_export_data.py index 8bd9b2a8..46303ebb 100644 --- a/paas/tb_paas_client/models/entity_group_export_data.py +++ b/paas/tb_paas_client/models/entity_group_export_data.py @@ -23,6 +23,7 @@ from pydantic import ConfigDict, Field, StrictBool from typing import Any, ClassVar, Dict, List, Optional +from uuid import UUID from tb_paas_client.models.calculated_field import CalculatedField from tb_paas_client.models.device_group_ota_package import DeviceGroupOtaPackage from tb_paas_client.models.entity_export_data import EntityExportData @@ -38,10 +39,11 @@ class EntityGroupExportData(EntityExportData): EntityGroupExportData """ # noqa: E501 entity_type: EntityType = Field(default=EntityType.ENTITY_GROUP, serialization_alias="entityType") # post_process: discriminator default - permissions: Optional[List[GroupPermission]] = None - group_ota_packages: Optional[List[DeviceGroupOtaPackage]] = Field(default=None, serialization_alias="groupOtaPackages") - group_entities: Optional[StrictBool] = Field(default=None, serialization_alias="groupEntities") - __properties: ClassVar[List[str]] = ["entity", "relations", "attributes", "calculatedFields", "entityType", "permissions", "groupOtaPackages", "groupEntities"] + permissions: Optional[List[GroupPermission]] = Field(default=None, description="Group permissions to apply to this group on import. Meaningful only for USER groups; ignored for groups of any other type. Each entry's userGroupId, roleId, and entityGroupId may use the external IDs of other entities in this payload or the IDs of entities that already exist on the target tenant; the importer resolves them against the target tenant. System-tenant roles are not allowed and will be rejected. Leave null to skip permission management for this group.") + group_ota_packages: Optional[List[DeviceGroupOtaPackage]] = Field(default=None, description="OTA package assignments to apply to this group on import. Meaningful only for DEVICE groups; ignored for groups of any other type. Each entry's otaPackageId and groupId may reference external IDs of entities in this payload or IDs of entities that already exist on the target tenant. Leave null to skip OTA assignment management for this group.", serialization_alias="groupOtaPackages") + group_entities: Optional[StrictBool] = Field(default=None, description="Marker indicating that the group's member entities are intended to be transported alongside this payload. Used by flows that convey members through a side channel (notably the version control flow, which stores members in a separate git index). The solution import API does not consume this flag and does not require it to be set. Safe to leave false (default).", serialization_alias="groupEntities") + member_ids: Optional[List[UUID]] = Field(default=None, description="External IDs of the entities that should be members of this group after import. Each ID is resolved against the target tenant — by other entity in this payload, by external ID, or by existing internal ID — and the matching entities are added to the group. The import fails if any listed member cannot be resolved. Must be null for the special 'All' group (whose membership is implicit and managed by the platform). Leave null to skip membership wiring; existing membership on the target tenant is left untouched.", serialization_alias="memberIds") + __properties: ClassVar[List[str]] = ["entity", "relations", "attributes", "calculatedFields", "entityType", "permissions", "groupOtaPackages", "groupEntities", "memberIds"] model_config = ConfigDict( populate_by_name=True, @@ -153,7 +155,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "entityType": obj.get("entityType"), "permissions": [GroupPermission.from_dict(_item) for _item in obj["permissions"]] if obj.get("permissions") is not None else None, "groupOtaPackages": [DeviceGroupOtaPackage.from_dict(_item) for _item in obj["groupOtaPackages"]] if obj.get("groupOtaPackages") is not None else None, - "groupEntities": obj.get("groupEntities") + "groupEntities": obj.get("groupEntities"), + "memberIds": obj.get("memberIds") }) return _obj diff --git a/paas/tb_paas_client/models/entity_group_info.py b/paas/tb_paas_client/models/entity_group_info.py index 059245f3..f85bb86c 100644 --- a/paas/tb_paas_client/models/entity_group_info.py +++ b/paas/tb_paas_client/models/entity_group_info.py @@ -38,11 +38,11 @@ class EntityGroupInfo(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the entity group creation, in milliseconds", serialization_alias="createdTime") type: EntityType name: StrictStr = Field(description="Name of the entity group") - owner_id: Optional[EntityId] = Field(default=None, description="JSON object with the owner of the group - Tenant or Customer Id.", serialization_alias="ownerId") + owner_id: Optional[EntityId] = Field(default=None, description="JSON object with the owner of the group - Tenant or Customer Id. When omitted or null on creation, defaults to the current user's owner (Tenant for tenant admins, Customer for customer users).", serialization_alias="ownerId") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the entity group. May include: 'description' (string), 'isPublic' (boolean, whether this group is shared publicly), 'publicCustomerId' (string, UUID of the public customer associated with this group).", serialization_alias="additionalInfo") configuration: Optional[Any] = Field(default=None, description="JSON with the configuration for UI components: list of columns, settings, actions, etc ") version: Optional[StrictInt] = None - owner_ids: Optional[List[EntityId]] = Field(default=None, serialization_alias="ownerIds") + owner_ids: List[EntityId] = Field(description="List of the entity group owners.", serialization_alias="ownerIds") edge_group_all: Optional[StrictBool] = Field(default=None, description="Indicates special edge group 'All' that contains all entities and can't be deleted.", serialization_alias="edgeGroupAll") group_all: Optional[StrictBool] = Field(default=None, description="Indicates special group 'All' that contains all entities and can't be deleted.", serialization_alias="groupAll") tenant_id: Optional[TenantId] = Field(default=None, serialization_alias="tenantId") diff --git a/paas/tb_paas_client/models/role.py b/paas/tb_paas_client/models/role.py index 90cd3493..7ffaf217 100644 --- a/paas/tb_paas_client/models/role.py +++ b/paas/tb_paas_client/models/role.py @@ -42,8 +42,8 @@ class Role(BaseModel): customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. ", serialization_alias="customerId") name: StrictStr = Field(description="Role Name") type: RoleType = Field(description="Type of the role: generic or group") - permissions: Optional[Any] = Field(default=None, description="JSON object with the set of permissions. Structure is specific for role type") - excluded_permissions: Optional[Any] = Field(default=None, description="JSON object with the set of excluded permissions. Only applicable for generic roles. Structure is the same as permissions", serialization_alias="excludedPermissions") + permissions: Optional[Any] = Field(default=None, description="Set of permissions granted by this role. The JSON shape depends on the role 'type': * GENERIC — JSON object mapping `Resource` enum names to arrays of `Operation` enum names allowed on that resource. The wildcard entry `{\"ALL\":[\"ALL\"]}` grants every operation on every resource. * GROUP — JSON array of `Operation` enum names that apply to the entity group this role is bound to via `GroupPermission.entityGroupId`. Only operations with `allowedForGroupRole=true` may appear (see `Operation` enum). The wildcard entry `[\"ALL\"]` grants every supported operation on the bound entity group.") + excluded_permissions: Optional[Any] = Field(default=None, description="Operations to subtract from those granted by `permissions`. Only applicable to GENERIC roles — setting this on a GROUP role is rejected by validation. Same shape as the GENERIC variant of `permissions`: a JSON object mapping `Resource` enum names to non-empty arrays of `Operation` enum names. At evaluation time, for each resource the listed operations are removed from the resolved permission set (e.g. `permissions={\"ALL\":[\"ALL\"]}` combined with `excludedPermissions={\"DEVICE\":[\"DELETE\"]}` grants everything except deleting devices). May be null or an empty object when no exclusions apply.", serialization_alias="excludedPermissions") version: Optional[StrictInt] = None owner_id: Optional[EntityId] = Field(default=None, description="JSON object with Customer or Tenant Id", serialization_alias="ownerId") __properties: ClassVar[List[str]] = ["id", "createdTime", "additionalInfo", "tenantId", "customerId", "name", "type", "permissions", "excludedPermissions", "version", "ownerId"] diff --git a/paas/tb_paas_client/models/solution_export_request.py b/paas/tb_paas_client/models/solution_export_request.py index 52bdc8a9..694d479f 100644 --- a/paas/tb_paas_client/models/solution_export_request.py +++ b/paas/tb_paas_client/models/solution_export_request.py @@ -32,9 +32,10 @@ class SolutionExportRequest(BaseModel): """ Solution export request specifying which entities to include and export settings. """ # noqa: E501 - entity_ids: Optional[List[EntityId]] = Field(default=None, serialization_alias="entityIds") + internal_ids: Optional[List[EntityId]] = Field(default=None, description="Set of internal entity IDs to export. The 'id' of each EntityId is the server-internal UUID. All listed entities must belong to the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty.", serialization_alias="internalIds") + external_ids: Optional[List[EntityId]] = Field(default=None, description="Set of external entity IDs to export. The 'id' of each EntityId is the external UUID (as stored in the 'externalId' field on the entity in the current tenant). The server looks up each entity by 'externalId' and 'entityType' within the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty.", serialization_alias="externalIds") settings: Optional[EntityExportSettings] = Field(default=None, description="Optional export settings controlling what additional data is included (relations, attributes, credentials, etc.). If not specified, default settings will be used that include all available data.") - __properties: ClassVar[List[str]] = ["entityIds", "settings"] + __properties: ClassVar[List[str]] = ["internalIds", "externalIds", "settings"] model_config = ConfigDict( populate_by_name=True, @@ -80,13 +81,20 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) - # override the default output from pydantic by calling `to_dict()` of each item in entity_ids (list) + # override the default output from pydantic by calling `to_dict()` of each item in internal_ids (list) _items = [] - if self.entity_ids: - for _item_entity_ids in self.entity_ids: - if _item_entity_ids: - _items.append(_item_entity_ids.to_dict()) - _dict['entityIds'] = _items + if self.internal_ids: + for _item_internal_ids in self.internal_ids: + if _item_internal_ids: + _items.append(_item_internal_ids.to_dict()) + _dict['internalIds'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in external_ids (list) + _items = [] + if self.external_ids: + for _item_external_ids in self.external_ids: + if _item_external_ids: + _items.append(_item_external_ids.to_dict()) + _dict['externalIds'] = _items # override the default output from pydantic by calling `to_dict()` of settings if self.settings: _dict['settings'] = self.settings.to_dict() @@ -102,7 +110,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "entity_ids": [EntityId.from_dict(_item) for _item in obj["entityIds"]] if obj.get("entityIds") is not None else None, + "internal_ids": [EntityId.from_dict(_item) for _item in obj["internalIds"]] if obj.get("internalIds") is not None else None, + "external_ids": [EntityId.from_dict(_item) for _item in obj["externalIds"]] if obj.get("externalIds") is not None else None, "settings": EntityExportSettings.from_dict(obj["settings"]) if obj.get("settings") is not None else None }) return _obj diff --git a/paas/tb_paas_client/models/solution_import_result.py b/paas/tb_paas_client/models/solution_import_result.py index 45010929..666daa4a 100644 --- a/paas/tb_paas_client/models/solution_import_result.py +++ b/paas/tb_paas_client/models/solution_import_result.py @@ -32,7 +32,7 @@ class SolutionImportResult(BaseModel): Result of a solution import operation. """ # noqa: E501 success: Optional[StrictBool] = Field(default=None, description="'true' if all entities were imported successfully.") - created: Optional[Dict[str, StrictInt]] = Field(default=None, description="Number of newly created entities per entity type. Entity types with zero created entities are omitted.") + created: Optional[Dict[str, StrictInt]] = Field(default=None, description="Number of newly created entities per entity type. Entity types with zero created entities are omitted. Entity groups are reported under the ENTITY_GROUP key regardless of their inner type (e.g. a user group and a device group both contribute to ENTITY_GROUP).") id_mapping: Optional[Dict[str, UUID]] = Field(default=None, description="Mapping from external entity IDs (as they appear in the solution file) to the internal entity IDs assigned during import.", serialization_alias="idMapping") __properties: ClassVar[List[str]] = ["success", "created", "idMapping"] diff --git a/paas/tb_paas_client/models/tb_user_message.py b/paas/tb_paas_client/models/tb_user_message.py index 2c13e591..c4995feb 100644 --- a/paas/tb_paas_client/models/tb_user_message.py +++ b/paas/tb_paas_client/models/tb_user_message.py @@ -32,7 +32,7 @@ class TbUserMessage(BaseModel): """ TbUserMessage """ # noqa: E501 - contents: Annotated[List[TbContent], Field(min_length=1)] + contents: Annotated[List[TbContent], Field(min_length=1)] = Field(description="A list of content parts that make up the complete user prompt") __properties: ClassVar[List[str]] = ["contents"] model_config = ConfigDict( diff --git a/paas/tb_paas_client/models/user_export_data.py b/paas/tb_paas_client/models/user_export_data.py new file mode 100644 index 00000000..71175d1e --- /dev/null +++ b/paas/tb_paas_client/models/user_export_data.py @@ -0,0 +1,138 @@ +# +# Copyright © 2026-2026 ThingsBoard, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import ConfigDict, Field +from typing import Any, ClassVar, Dict, List +from tb_paas_client.models.calculated_field import CalculatedField +from tb_paas_client.models.entity_export_data import EntityExportData +from tb_paas_client.models.entity_relation import EntityRelation +from tb_paas_client.models.entity_type import EntityType +from tb_paas_client.models.exportable_entity import ExportableEntity +from typing import Optional, Set +from typing_extensions import Self + +class UserExportData(EntityExportData): + """ + UserExportData + """ # noqa: E501 + entity_type: EntityType = Field(default=EntityType.USER, serialization_alias="entityType") # post_process: discriminator default + __properties: ClassVar[List[str]] = ["entity", "relations", "attributes", "calculatedFields", "entityType"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model""" + return pprint.pformat(self.model_dump(by_alias=False, mode='json')) + + def __str__(self) -> str: + return self.to_str() + + def __repr__(self) -> str: + return self.to_str() + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + return self.model_dump_json(by_alias=True, exclude_unset=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UserExportData from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of entity + if self.entity: + _dict['entity'] = self.entity.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in relations (list) + _items = [] + if self.relations: + for _item_relations in self.relations: + if _item_relations: + _items.append(_item_relations.to_dict()) + _dict['relations'] = _items + # override the default output from pydantic by calling `to_dict()` of each value in attributes (dict of array) + _field_dict_of_array = {} + if self.attributes: + for _key_attributes in self.attributes: + if self.attributes[_key_attributes] is not None: + _field_dict_of_array[_key_attributes] = [ + _item.to_dict() for _item in self.attributes[_key_attributes] + ] + _dict['attributes'] = _field_dict_of_array + # override the default output from pydantic by calling `to_dict()` of each item in calculated_fields (list) + _items = [] + if self.calculated_fields: + for _item_calculated_fields in self.calculated_fields: + if _item_calculated_fields: + _items.append(_item_calculated_fields.to_dict()) + _dict['calculatedFields'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UserExportData from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "entity": ExportableEntity.from_dict(obj["entity"]) if obj.get("entity") is not None else None, + "relations": [EntityRelation.from_dict(_item) for _item in obj["relations"]] if obj.get("relations") is not None else None, + "attributes": dict( + (_k, + [AttributeExportData.from_dict(_item) for _item in _v] + if _v is not None + else None + ) + for _k, _v in obj.get("attributes", {}).items() + ), + "calculatedFields": [CalculatedField.from_dict(_item) for _item in obj["calculatedFields"]] if obj.get("calculatedFields") is not None else None, + "entityType": obj.get("entityType") + }) + return _obj + + diff --git a/paas/tb_paas_client/models/widgets_bundle_export_data.py b/paas/tb_paas_client/models/widgets_bundle_export_data.py index 6fd30fc1..58e982bf 100644 --- a/paas/tb_paas_client/models/widgets_bundle_export_data.py +++ b/paas/tb_paas_client/models/widgets_bundle_export_data.py @@ -36,7 +36,7 @@ class WidgetsBundleExportData(EntityExportData): WidgetsBundleExportData """ # noqa: E501 entity_type: EntityType = Field(default=EntityType.WIDGETS_BUNDLE, serialization_alias="entityType") # post_process: discriminator default - widgets: Optional[List[Any]] = None + widgets: Optional[List[Any]] = Field(default=None, description="List of widgets in the bundle") fqns: Optional[List[StrictStr]] = None __properties: ClassVar[List[str]] = ["entity", "relations", "attributes", "calculatedFields", "entityType", "widgets", "fqns"] diff --git a/pe/docs/Alarm.md b/pe/docs/Alarm.md index 2128a883..8e654566 100644 --- a/pe/docs/Alarm.md +++ b/pe/docs/Alarm.md @@ -10,7 +10,7 @@ | **id** | [**AlarmId**](AlarmId.md) | JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm. | [optional] | | **created_time** | **int** | Timestamp of the alarm creation, in milliseconds | [optional] [readonly] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected. | [optional] [readonly] | | **type** | **str** | representing type of the Alarm | | | **originator** | [**EntityId**](EntityId.md) | JSON object with alarm originator id | | | **severity** | [**AlarmSeverity**](AlarmSeverity.md) | Alarm severity | | diff --git a/pe/docs/AlarmData.md b/pe/docs/AlarmData.md index 958ada10..3d533d89 100644 --- a/pe/docs/AlarmData.md +++ b/pe/docs/AlarmData.md @@ -10,7 +10,7 @@ | **id** | [**AlarmId**](AlarmId.md) | JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm. | [optional] | | **created_time** | **int** | Timestamp of the alarm creation, in milliseconds | [optional] [readonly] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected. | [optional] [readonly] | | **type** | **str** | representing type of the Alarm | | | **originator** | [**EntityId**](EntityId.md) | JSON object with alarm originator id | | | **severity** | [**AlarmSeverity**](AlarmSeverity.md) | Alarm severity | | diff --git a/pe/docs/AlarmInfo.md b/pe/docs/AlarmInfo.md index 79b5a3d0..4575d592 100644 --- a/pe/docs/AlarmInfo.md +++ b/pe/docs/AlarmInfo.md @@ -10,7 +10,7 @@ | **id** | [**AlarmId**](AlarmId.md) | JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm. | [optional] | | **created_time** | **int** | Timestamp of the alarm creation, in milliseconds | [optional] [readonly] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected. | [optional] [readonly] | | **type** | **str** | representing type of the Alarm | | | **originator** | [**EntityId**](EntityId.md) | JSON object with alarm originator id | | | **severity** | [**AlarmSeverity**](AlarmSeverity.md) | Alarm severity | | diff --git a/pe/docs/Asset.md b/pe/docs/Asset.md index 65224434..160b1c0b 100644 --- a/pe/docs/Asset.md +++ b/pe/docs/Asset.md @@ -11,7 +11,7 @@ | **created_time** | **int** | Timestamp of the asset creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the asset. May include: 'description' (string). | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id. | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Asset. | [optional] | | **name** | **str** | Unique Asset Name in scope of Tenant | | | **type** | **str** | Asset type | [optional] | | **label** | **str** | Label that may be used in widgets | [optional] | diff --git a/pe/docs/AssetInfo.md b/pe/docs/AssetInfo.md index e4cf545d..55f325dd 100644 --- a/pe/docs/AssetInfo.md +++ b/pe/docs/AssetInfo.md @@ -11,7 +11,7 @@ | **created_time** | **int** | Timestamp of the asset creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the asset. May include: 'description' (string). | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id. | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Asset. | [optional] | | **name** | **str** | Unique Asset Name in scope of Tenant | | | **type** | **str** | Asset type | [optional] | | **label** | **str** | Label that may be used in widgets | [optional] | diff --git a/pe/docs/AvailableEntityKeys.md b/pe/docs/AvailableEntityKeys.md index a30f7735..f8c6c452 100644 --- a/pe/docs/AvailableEntityKeys.md +++ b/pe/docs/AvailableEntityKeys.md @@ -10,8 +10,8 @@ Contains unique time series and attribute key names discovered from entities mat | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| | **entity_types** | [**List[EntityType]**](EntityType.md) | Set of entity types found among the matched entities. | | -| **timeseries** | **List[str]** | | | -| **attribute** | **List[str]** | | | +| **timeseries** | **List[str]** | List of unique time series key names available on the matched entities. | | +| **attribute** | **List[str]** | List of unique attribute key names available on the matched entities. | | diff --git a/pe/docs/AvailableEntityKeysV2.md b/pe/docs/AvailableEntityKeysV2.md index f4e3ee91..7102b844 100644 --- a/pe/docs/AvailableEntityKeysV2.md +++ b/pe/docs/AvailableEntityKeysV2.md @@ -11,7 +11,7 @@ Contains unique time series and attribute key names discovered from entities mat |------------ | ------------- | ------------- | -------------| | **total_entities** | **int** | Total number of entities that matched the query filter. | | | **entity_types** | [**List[EntityType]**](EntityType.md) | Set of entity types found among the matched entities. | | -| **timeseries** | [**List[KeyInfo]**](KeyInfo.md) | | [optional] | +| **timeseries** | [**List[KeyInfo]**](KeyInfo.md) | List of unique time series keys available on the matched entities, sorted alphabetically. Omitted when timeseries keys were not requested. | [optional] | | **attributes** | **Dict[str, List[KeyInfo]]** | Map of attribute scope to the list of unique attribute keys available on the matched entities. Only scopes supported by the matched entity types are included. Omitted when attribute keys were not requested or when none of the requested scopes apply to the matched entity types. | [optional] | diff --git a/pe/docs/Device.md b/pe/docs/Device.md index 708d97d6..3c79e6f3 100644 --- a/pe/docs/Device.md +++ b/pe/docs/Device.md @@ -11,7 +11,7 @@ | **created_time** | **int** | Timestamp of the device creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the device. May include: 'gateway' (boolean, whether the device is a gateway), 'description' (string), 'lastConnectedGateway' (string, UUID of the last gateway that connected this device). | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id. | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Device. | [optional] | | **name** | **str** | Unique Device Name in scope of Tenant | [optional] | | **type** | **str** | Device Profile Name | [optional] | | **label** | **str** | Label that may be used in widgets | [optional] | diff --git a/pe/docs/DeviceInfo.md b/pe/docs/DeviceInfo.md index 060f5522..789c8944 100644 --- a/pe/docs/DeviceInfo.md +++ b/pe/docs/DeviceInfo.md @@ -11,7 +11,7 @@ | **created_time** | **int** | Timestamp of the device creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the device. May include: 'gateway' (boolean, whether the device is a gateway), 'description' (string), 'lastConnectedGateway' (string, UUID of the last gateway that connected this device). | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id. | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Device. | [optional] | | **name** | **str** | Unique Device Name in scope of Tenant | [optional] | | **type** | **str** | Device Profile Name | [optional] | | **label** | **str** | Label that may be used in widgets | [optional] | diff --git a/pe/docs/Edge.md b/pe/docs/Edge.md index fafffca1..98483100 100644 --- a/pe/docs/Edge.md +++ b/pe/docs/Edge.md @@ -12,8 +12,8 @@ A JSON value representing the edge. | **id** | [**EdgeId**](EdgeId.md) | JSON object with the Edge Id. Specify this field to update the Edge. Referencing non-existing Edge Id will cause error. Omit this field to create new Edge. | [optional] | | **created_time** | **int** | Timestamp of the edge creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the edge. May include: 'description' (string). | [optional] | -| **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Use 'assignEdgeToCustomer' to change the Customer Id. | [optional] [readonly] | +| **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. Always set to the tenant of the current user on save; cannot be changed after creation. | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. | [optional] | | **root_rule_chain_id** | [**RuleChainId**](RuleChainId.md) | JSON object with Root Rule Chain Id. Use 'setEdgeRootRuleChain' to change the Root Rule Chain Id. | [optional] [readonly] | | **name** | **str** | Unique Edge Name in scope of Tenant | | | **type** | **str** | Edge type | | diff --git a/pe/docs/EdgeInfo.md b/pe/docs/EdgeInfo.md index e0516300..c7a33558 100644 --- a/pe/docs/EdgeInfo.md +++ b/pe/docs/EdgeInfo.md @@ -10,8 +10,8 @@ | **id** | [**EdgeId**](EdgeId.md) | JSON object with the Edge Id. Specify this field to update the Edge. Referencing non-existing Edge Id will cause error. Omit this field to create new Edge. | [optional] | | **created_time** | **int** | Timestamp of the edge creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the edge. May include: 'description' (string). | [optional] | -| **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Use 'assignEdgeToCustomer' to change the Customer Id. | [optional] [readonly] | +| **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. Always set to the tenant of the current user on save; cannot be changed after creation. | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. | [optional] | | **root_rule_chain_id** | [**RuleChainId**](RuleChainId.md) | JSON object with Root Rule Chain Id. Use 'setEdgeRootRuleChain' to change the Root Rule Chain Id. | [optional] [readonly] | | **name** | **str** | Unique Edge Name in scope of Tenant | | | **type** | **str** | Edge type | | diff --git a/pe/docs/EntityDataDiff.md b/pe/docs/EntityDataDiff.md index 92ceca6d..80674f22 100644 --- a/pe/docs/EntityDataDiff.md +++ b/pe/docs/EntityDataDiff.md @@ -100,7 +100,7 @@ #### WidgetsBundleExportData *(extends EntityExportData, entity_type=`WIDGETS_BUNDLE`)* | Name | Type | Description | Notes | |------|------|-------------|-------| -| widgets | List[object] | | [optional] | +| widgets | List[object] | List of widgets in the bundle | [optional] | | fqns | List[str] | | [optional] | #### WidgetTypeExportData *(extends EntityExportData, entity_type=`WIDGET_TYPE`)* diff --git a/pe/docs/EntityExportData.md b/pe/docs/EntityExportData.md index b6357888..ba8095e4 100644 --- a/pe/docs/EntityExportData.md +++ b/pe/docs/EntityExportData.md @@ -94,7 +94,7 @@ Base export container for ThingsBoard entities #### WidgetsBundleExportData *(entity_type=`WIDGETS_BUNDLE`)* | Name | Type | Description | Notes | |------|------|-------------|-------| -| widgets | List[object] | | [optional] | +| widgets | List[object] | List of widgets in the bundle | [optional] | | fqns | List[str] | | [optional] | #### WidgetTypeExportData *(entity_type=`WIDGET_TYPE`)* diff --git a/pe/docs/EntityGroupInfo.md b/pe/docs/EntityGroupInfo.md index 8322986d..54989055 100644 --- a/pe/docs/EntityGroupInfo.md +++ b/pe/docs/EntityGroupInfo.md @@ -15,7 +15,7 @@ | **additional_info** | **object** | Additional parameters of the entity group. May include: 'description' (string), 'isPublic' (boolean, whether this group is shared publicly), 'publicCustomerId' (string, UUID of the public customer associated with this group). | [optional] | | **configuration** | **object** | JSON with the configuration for UI components: list of columns, settings, actions, etc | [optional] | | **version** | **int** | | [optional] | -| **owner_ids** | [**List[EntityId]**](EntityId.md) | | [optional] | +| **owner_ids** | [**List[EntityId]**](EntityId.md) | List of the entity group owners. | | | **edge_group_all** | **bool** | Indicates special edge group 'All' that contains all entities and can't be deleted. | [optional] [readonly] | | **group_all** | **bool** | Indicates special group 'All' that contains all entities and can't be deleted. | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | | [optional] | diff --git a/pe/docs/EntityView.md b/pe/docs/EntityView.md index 80aec334..b9f4ec14 100644 --- a/pe/docs/EntityView.md +++ b/pe/docs/EntityView.md @@ -14,7 +14,7 @@ A JSON object representing the entity view. | **additional_info** | **object** | Additional parameters of the entity view. May include: 'description' (string). | [optional] | | **entity_id** | [**EntityId**](EntityId.md) | JSON object with the referenced Entity Id (Device or Asset). | | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id. | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Entity View. | [optional] | | **name** | **str** | Entity View name | | | **type** | **str** | Device Profile Name | | | **keys** | [**TelemetryEntityView**](TelemetryEntityView.md) | Set of telemetry and attribute keys to expose via Entity View. | [optional] | diff --git a/pe/docs/EntityViewInfo.md b/pe/docs/EntityViewInfo.md index 53bd22e5..2a5f637f 100644 --- a/pe/docs/EntityViewInfo.md +++ b/pe/docs/EntityViewInfo.md @@ -12,7 +12,7 @@ | **additional_info** | **object** | Additional parameters of the entity view. May include: 'description' (string). | [optional] | | **entity_id** | [**EntityId**](EntityId.md) | JSON object with the referenced Entity Id (Device or Asset). | | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id. | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Entity View. | [optional] | | **name** | **str** | Entity View name | | | **type** | **str** | Device Profile Name | | | **keys** | [**TelemetryEntityView**](TelemetryEntityView.md) | Set of telemetry and attribute keys to expose via Entity View. | [optional] | diff --git a/pe/docs/GroupPermissionInfo.md b/pe/docs/GroupPermissionInfo.md index abae3404..7e89b555 100644 --- a/pe/docs/GroupPermissionInfo.md +++ b/pe/docs/GroupPermissionInfo.md @@ -41,7 +41,7 @@ | created_time | int | Timestamp of the role creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the role. May include: 'description' (string). | [optional] | | tenant_id | TenantId | JSON object with Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional: when omitted the Role is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | name | str | Role Name | | | type | RoleType | Type of the role: generic or group | | | permissions | object | Set of permissions granted by this role. The JSON shape depends on the role 'type': * GENERIC — JSON object mapping `Resource` enum names to arrays of `Operation` enum names allowed on that resource. The wildcard entry `{\"ALL\":[\"ALL\"]}` grants every operation on every resource. * GROUP — JSON array of `Operation` enum names that apply to the entity group this role is bound to via `GroupPermission.entityGroupId`. Only operations with `allowedForGroupRole=true` may appear (see `Operation` enum). The wildcard entry `[\"ALL\"]` grants every supported operation on the bound entity group. | | diff --git a/pe/docs/PageDataAlarmData.md b/pe/docs/PageDataAlarmData.md index f018ee10..471d133a 100644 --- a/pe/docs/PageDataAlarmData.md +++ b/pe/docs/PageDataAlarmData.md @@ -24,7 +24,7 @@ | id | AlarmId | JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm. | [optional] | | created_time | int | Timestamp of the alarm creation, in milliseconds | [optional] [readonly] | | tenant_id | TenantId | JSON object with Tenant Id | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected. | [optional] [readonly] | | type | str | representing type of the Alarm | | | originator | EntityId | JSON object with alarm originator id | | | severity | AlarmSeverity | Alarm severity | | diff --git a/pe/docs/PageDataAlarmInfo.md b/pe/docs/PageDataAlarmInfo.md index 1e84a7e2..338dcaf6 100644 --- a/pe/docs/PageDataAlarmInfo.md +++ b/pe/docs/PageDataAlarmInfo.md @@ -24,7 +24,7 @@ | id | AlarmId | JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm. | [optional] | | created_time | int | Timestamp of the alarm creation, in milliseconds | [optional] [readonly] | | tenant_id | TenantId | JSON object with Tenant Id | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected. | [optional] [readonly] | | type | str | representing type of the Alarm | | | originator | EntityId | JSON object with alarm originator id | | | severity | AlarmSeverity | Alarm severity | | diff --git a/pe/docs/PageDataAsset.md b/pe/docs/PageDataAsset.md index 5ba50444..9e89f436 100644 --- a/pe/docs/PageDataAsset.md +++ b/pe/docs/PageDataAsset.md @@ -25,7 +25,7 @@ | created_time | int | Timestamp of the asset creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the asset. May include: 'description' (string). | [optional] | | tenant_id | TenantId | JSON object with Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Asset. | [optional] | | name | str | Unique Asset Name in scope of Tenant | | | type | str | Asset type | [optional] | | label | str | Label that may be used in widgets | [optional] | diff --git a/pe/docs/PageDataAssetInfo.md b/pe/docs/PageDataAssetInfo.md index 8bb1bc4e..46ffdf5b 100644 --- a/pe/docs/PageDataAssetInfo.md +++ b/pe/docs/PageDataAssetInfo.md @@ -25,7 +25,7 @@ | created_time | int | Timestamp of the asset creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the asset. May include: 'description' (string). | [optional] | | tenant_id | TenantId | JSON object with Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Asset. | [optional] | | name | str | Unique Asset Name in scope of Tenant | | | type | str | Asset type | [optional] | | label | str | Label that may be used in widgets | [optional] | diff --git a/pe/docs/PageDataDevice.md b/pe/docs/PageDataDevice.md index 715a4672..bec13563 100644 --- a/pe/docs/PageDataDevice.md +++ b/pe/docs/PageDataDevice.md @@ -25,7 +25,7 @@ | created_time | int | Timestamp of the device creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the device. May include: 'gateway' (boolean, whether the device is a gateway), 'description' (string), 'lastConnectedGateway' (string, UUID of the last gateway that connected this device). | [optional] | | tenant_id | TenantId | JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Device. | [optional] | | name | str | Unique Device Name in scope of Tenant | [optional] | | type | str | Device Profile Name | [optional] | | label | str | Label that may be used in widgets | [optional] | diff --git a/pe/docs/PageDataDeviceInfo.md b/pe/docs/PageDataDeviceInfo.md index bcb7840b..112a30f5 100644 --- a/pe/docs/PageDataDeviceInfo.md +++ b/pe/docs/PageDataDeviceInfo.md @@ -25,7 +25,7 @@ | created_time | int | Timestamp of the device creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the device. May include: 'gateway' (boolean, whether the device is a gateway), 'description' (string), 'lastConnectedGateway' (string, UUID of the last gateway that connected this device). | [optional] | | tenant_id | TenantId | JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Device. | [optional] | | name | str | Unique Device Name in scope of Tenant | [optional] | | type | str | Device Profile Name | [optional] | | label | str | Label that may be used in widgets | [optional] | diff --git a/pe/docs/PageDataEdge.md b/pe/docs/PageDataEdge.md index ac7585fd..4087c1d3 100644 --- a/pe/docs/PageDataEdge.md +++ b/pe/docs/PageDataEdge.md @@ -24,8 +24,8 @@ | id | EdgeId | JSON object with the Edge Id. Specify this field to update the Edge. Referencing non-existing Edge Id will cause error. Omit this field to create new Edge. | [optional] | | created_time | int | Timestamp of the edge creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the edge. May include: 'description' (string). | [optional] | -| tenant_id | TenantId | JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. Use 'assignEdgeToCustomer' to change the Customer Id. | [optional] [readonly] | +| tenant_id | TenantId | JSON object with Tenant Id. Always set to the tenant of the current user on save; cannot be changed after creation. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. | [optional] | | root_rule_chain_id | RuleChainId | JSON object with Root Rule Chain Id. Use 'setEdgeRootRuleChain' to change the Root Rule Chain Id. | [optional] [readonly] | | name | str | Unique Edge Name in scope of Tenant | | | type | str | Edge type | | diff --git a/pe/docs/PageDataEdgeInfo.md b/pe/docs/PageDataEdgeInfo.md index 8face905..3b20cdaa 100644 --- a/pe/docs/PageDataEdgeInfo.md +++ b/pe/docs/PageDataEdgeInfo.md @@ -24,8 +24,8 @@ | id | EdgeId | JSON object with the Edge Id. Specify this field to update the Edge. Referencing non-existing Edge Id will cause error. Omit this field to create new Edge. | [optional] | | created_time | int | Timestamp of the edge creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the edge. May include: 'description' (string). | [optional] | -| tenant_id | TenantId | JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. Use 'assignEdgeToCustomer' to change the Customer Id. | [optional] [readonly] | +| tenant_id | TenantId | JSON object with Tenant Id. Always set to the tenant of the current user on save; cannot be changed after creation. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. | [optional] | | root_rule_chain_id | RuleChainId | JSON object with Root Rule Chain Id. Use 'setEdgeRootRuleChain' to change the Root Rule Chain Id. | [optional] [readonly] | | name | str | Unique Edge Name in scope of Tenant | | | type | str | Edge type | | diff --git a/pe/docs/PageDataEntityGroupInfo.md b/pe/docs/PageDataEntityGroupInfo.md index b228b016..de69ad62 100644 --- a/pe/docs/PageDataEntityGroupInfo.md +++ b/pe/docs/PageDataEntityGroupInfo.md @@ -29,7 +29,7 @@ | additional_info | object | Additional parameters of the entity group. May include: 'description' (string), 'isPublic' (boolean, whether this group is shared publicly), 'publicCustomerId' (string, UUID of the public customer associated with this group). | [optional] | | configuration | object | JSON with the configuration for UI components: list of columns, settings, actions, etc | [optional] | | version | int | | [optional] | -| owner_ids | List[EntityId] | | [optional] | +| owner_ids | List[EntityId] | List of the entity group owners. | | | edge_group_all | bool | Indicates special edge group 'All' that contains all entities and can't be deleted. | [optional] [readonly] | | group_all | bool | Indicates special group 'All' that contains all entities and can't be deleted. | [optional] | | tenant_id | TenantId | | [optional] | diff --git a/pe/docs/PageDataEntityView.md b/pe/docs/PageDataEntityView.md index b76921b2..a83563c1 100644 --- a/pe/docs/PageDataEntityView.md +++ b/pe/docs/PageDataEntityView.md @@ -26,7 +26,7 @@ | additional_info | object | Additional parameters of the entity view. May include: 'description' (string). | [optional] | | entity_id | EntityId | JSON object with the referenced Entity Id (Device or Asset). | | | tenant_id | TenantId | JSON object with Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Entity View. | [optional] | | name | str | Entity View name | | | type | str | Device Profile Name | | | keys | TelemetryEntityView | Set of telemetry and attribute keys to expose via Entity View. | [optional] | diff --git a/pe/docs/PageDataEntityViewInfo.md b/pe/docs/PageDataEntityViewInfo.md index 3cf0e40c..7fc387db 100644 --- a/pe/docs/PageDataEntityViewInfo.md +++ b/pe/docs/PageDataEntityViewInfo.md @@ -26,7 +26,7 @@ | additional_info | object | Additional parameters of the entity view. May include: 'description' (string). | [optional] | | entity_id | EntityId | JSON object with the referenced Entity Id (Device or Asset). | | | tenant_id | TenantId | JSON object with Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Entity View. | [optional] | | name | str | Entity View name | | | type | str | Device Profile Name | | | keys | TelemetryEntityView | Set of telemetry and attribute keys to expose via Entity View. | [optional] | diff --git a/pe/docs/PageDataReportTemplateInfo.md b/pe/docs/PageDataReportTemplateInfo.md index e1374bac..397af605 100644 --- a/pe/docs/PageDataReportTemplateInfo.md +++ b/pe/docs/PageDataReportTemplateInfo.md @@ -24,7 +24,7 @@ | id | ReportTemplateId | JSON object with the report template Id. Specify this field to update the report. Referencing non-existing report template Id will cause error. Omit this field to create new report template | [optional] | | created_time | int | Timestamp of the report template creation, in milliseconds | [optional] [readonly] | | tenant_id | TenantId | JSON object with Tenant Id. Tenant Id of the report template can't be changed. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional: when omitted the Report Template is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | name | str | Report name | | | format | TbReportFormat | Report format | | | type | ReportTemplateType | Report template type | | diff --git a/pe/docs/PageDataRole.md b/pe/docs/PageDataRole.md index 121c89d6..0860d1f8 100644 --- a/pe/docs/PageDataRole.md +++ b/pe/docs/PageDataRole.md @@ -25,7 +25,7 @@ | created_time | int | Timestamp of the role creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the role. May include: 'description' (string). | [optional] | | tenant_id | TenantId | JSON object with Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional: when omitted the Role is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | name | str | Role Name | | | type | RoleType | Type of the role: generic or group | | | permissions | object | Set of permissions granted by this role. The JSON shape depends on the role 'type': * GENERIC — JSON object mapping `Resource` enum names to arrays of `Operation` enum names allowed on that resource. The wildcard entry `{\"ALL\":[\"ALL\"]}` grants every operation on every resource. * GROUP — JSON array of `Operation` enum names that apply to the entity group this role is bound to via `GroupPermission.entityGroupId`. Only operations with `allowedForGroupRole=true` may appear (see `Operation` enum). The wildcard entry `[\"ALL\"]` grants every supported operation on the bound entity group. | | diff --git a/pe/docs/PageDataScheduledReportInfo.md b/pe/docs/PageDataScheduledReportInfo.md index 6d755946..3b80dd8a 100644 --- a/pe/docs/PageDataScheduledReportInfo.md +++ b/pe/docs/PageDataScheduledReportInfo.md @@ -25,7 +25,7 @@ | created_time | int | Timestamp of the scheduler event creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the scheduler event | [optional] | | tenant_id | TenantId | JSON object with Tenant Id | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | originator_id | EntityId | JSON object with Originator Id | [optional] [readonly] | | name | str | scheduler event name | [optional] | | type | str | scheduler event type | [optional] | diff --git a/pe/docs/PageDataSchedulerEventInfo.md b/pe/docs/PageDataSchedulerEventInfo.md index 9371030e..e260e5bb 100644 --- a/pe/docs/PageDataSchedulerEventInfo.md +++ b/pe/docs/PageDataSchedulerEventInfo.md @@ -25,7 +25,7 @@ | created_time | int | Timestamp of the scheduler event creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the scheduler event | [optional] | | tenant_id | TenantId | JSON object with Tenant Id | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | originator_id | EntityId | JSON object with Originator Id | [optional] [readonly] | | name | str | scheduler event name | [optional] | | type | str | scheduler event type | [optional] | diff --git a/pe/docs/PageDataSchedulerEventWithCustomerInfo.md b/pe/docs/PageDataSchedulerEventWithCustomerInfo.md index 1fc1a68d..15747a98 100644 --- a/pe/docs/PageDataSchedulerEventWithCustomerInfo.md +++ b/pe/docs/PageDataSchedulerEventWithCustomerInfo.md @@ -25,7 +25,7 @@ | created_time | int | Timestamp of the scheduler event creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the scheduler event | [optional] | | tenant_id | TenantId | JSON object with Tenant Id | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | originator_id | EntityId | JSON object with Originator Id | [optional] [readonly] | | name | str | scheduler event name | [optional] | | type | str | scheduler event type | [optional] | diff --git a/pe/docs/ReportTemplate.md b/pe/docs/ReportTemplate.md index 1bb40a80..9ed9c74d 100644 --- a/pe/docs/ReportTemplate.md +++ b/pe/docs/ReportTemplate.md @@ -12,7 +12,7 @@ A JSON value representing the Report Template. | **id** | [**ReportTemplateId**](ReportTemplateId.md) | JSON object with the report template Id. Specify this field to update the report. Referencing non-existing report template Id will cause error. Omit this field to create new report template | [optional] | | **created_time** | **int** | Timestamp of the report template creation, in milliseconds | [optional] [readonly] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. Tenant Id of the report template can't be changed. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional: when omitted the Report Template is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | **name** | **str** | Report name | | | **format** | [**TbReportFormat**](TbReportFormat.md) | Report format | | | **type** | [**ReportTemplateType**](ReportTemplateType.md) | Report template type | | diff --git a/pe/docs/ReportTemplateInfo.md b/pe/docs/ReportTemplateInfo.md index 403e4a74..8931ffda 100644 --- a/pe/docs/ReportTemplateInfo.md +++ b/pe/docs/ReportTemplateInfo.md @@ -10,7 +10,7 @@ | **id** | [**ReportTemplateId**](ReportTemplateId.md) | JSON object with the report template Id. Specify this field to update the report. Referencing non-existing report template Id will cause error. Omit this field to create new report template | [optional] | | **created_time** | **int** | Timestamp of the report template creation, in milliseconds | [optional] [readonly] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. Tenant Id of the report template can't be changed. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional: when omitted the Report Template is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | **name** | **str** | Report name | | | **format** | [**TbReportFormat**](TbReportFormat.md) | Report format | | | **type** | [**ReportTemplateType**](ReportTemplateType.md) | Report template type | | diff --git a/pe/docs/Role.md b/pe/docs/Role.md index 9b19ba96..d050100f 100644 --- a/pe/docs/Role.md +++ b/pe/docs/Role.md @@ -13,7 +13,7 @@ A JSON value representing the role. | **created_time** | **int** | Timestamp of the role creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the role. May include: 'description' (string). | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id. | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional: when omitted the Role is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | **name** | **str** | Role Name | | | **type** | [**RoleType**](RoleType.md) | Type of the role: generic or group | | | **permissions** | **object** | Set of permissions granted by this role. The JSON shape depends on the role 'type': * GENERIC — JSON object mapping `Resource` enum names to arrays of `Operation` enum names allowed on that resource. The wildcard entry `{\"ALL\":[\"ALL\"]}` grants every operation on every resource. * GROUP — JSON array of `Operation` enum names that apply to the entity group this role is bound to via `GroupPermission.entityGroupId`. Only operations with `allowedForGroupRole=true` may appear (see `Operation` enum). The wildcard entry `[\"ALL\"]` grants every supported operation on the bound entity group. | | diff --git a/pe/docs/SaveDeviceWithCredentialsRequest.md b/pe/docs/SaveDeviceWithCredentialsRequest.md index bc10cebf..041fe066 100644 --- a/pe/docs/SaveDeviceWithCredentialsRequest.md +++ b/pe/docs/SaveDeviceWithCredentialsRequest.md @@ -25,7 +25,7 @@ The JSON object with device and credentials. See method description above for ex | created_time | int | Timestamp of the device creation, in milliseconds | [optional] [readonly] | | additional_info | object | Additional parameters of the device. May include: 'gateway' (boolean, whether the device is a gateway), 'description' (string), 'lastConnectedGateway' (string, UUID of the last gateway that connected this device). | [optional] | | tenant_id | TenantId | JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id. | [optional] [readonly] | -| customer_id | CustomerId | JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id. | [optional] [readonly] | +| customer_id | CustomerId | JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Device. | [optional] | | name | str | Unique Device Name in scope of Tenant | [optional] | | type | str | Device Profile Name | [optional] | | label | str | Label that may be used in widgets | [optional] | diff --git a/pe/docs/ScheduledReportInfo.md b/pe/docs/ScheduledReportInfo.md index 63cdf438..acfc7296 100644 --- a/pe/docs/ScheduledReportInfo.md +++ b/pe/docs/ScheduledReportInfo.md @@ -11,7 +11,7 @@ | **created_time** | **int** | Timestamp of the scheduler event creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the scheduler event | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | **originator_id** | [**EntityId**](EntityId.md) | JSON object with Originator Id | [optional] [readonly] | | **name** | **str** | scheduler event name | [optional] | | **type** | **str** | scheduler event type | [optional] | diff --git a/pe/docs/SchedulerEvent.md b/pe/docs/SchedulerEvent.md index 7ae1e582..3baee151 100644 --- a/pe/docs/SchedulerEvent.md +++ b/pe/docs/SchedulerEvent.md @@ -13,7 +13,7 @@ A JSON value representing the Scheduler Event. | **created_time** | **int** | Timestamp of the scheduler event creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the scheduler event | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | **originator_id** | [**EntityId**](EntityId.md) | JSON object with Originator Id | [optional] [readonly] | | **name** | **str** | scheduler event name | [optional] | | **type** | **str** | scheduler event type | [optional] | diff --git a/pe/docs/SchedulerEventInfo.md b/pe/docs/SchedulerEventInfo.md index 23f1c3ef..43af6218 100644 --- a/pe/docs/SchedulerEventInfo.md +++ b/pe/docs/SchedulerEventInfo.md @@ -11,7 +11,7 @@ | **created_time** | **int** | Timestamp of the scheduler event creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the scheduler event | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | **originator_id** | [**EntityId**](EntityId.md) | JSON object with Originator Id | [optional] [readonly] | | **name** | **str** | scheduler event name | [optional] | | **type** | **str** | scheduler event type | [optional] | diff --git a/pe/docs/SchedulerEventWithCustomerInfo.md b/pe/docs/SchedulerEventWithCustomerInfo.md index 3b846999..128027d5 100644 --- a/pe/docs/SchedulerEventWithCustomerInfo.md +++ b/pe/docs/SchedulerEventWithCustomerInfo.md @@ -11,7 +11,7 @@ | **created_time** | **int** | Timestamp of the scheduler event creation, in milliseconds | [optional] [readonly] | | **additional_info** | **object** | Additional parameters of the scheduler event | [optional] | | **tenant_id** | [**TenantId**](TenantId.md) | JSON object with Tenant Id | [optional] [readonly] | -| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id | [optional] [readonly] | +| **customer_id** | [**CustomerId**](CustomerId.md) | JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id. | [optional] | | **originator_id** | [**EntityId**](EntityId.md) | JSON object with Originator Id | [optional] [readonly] | | **name** | **str** | scheduler event name | [optional] | | **type** | **str** | scheduler event type | [optional] | diff --git a/pe/docs/SolutionExportImportControllerApi.md b/pe/docs/SolutionExportImportControllerApi.md index 7a03a24f..14951127 100644 --- a/pe/docs/SolutionExportImportControllerApi.md +++ b/pe/docs/SolutionExportImportControllerApi.md @@ -19,14 +19,14 @@ SolutionExportResponse client.export_solution(solution_export_request: SolutionE Export Solution (exportSolution) -Exports a set of entities as a portable solution package. The request specifies entity IDs to include and optional export settings (relations, attributes, credentials). All specified entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. +Exports a set of entities as a portable solution package. The request specifies entities to include via 'internalIds' (server-internal UUIDs) and/or 'externalIds' (looked up by the entity's stored externalId within the current tenant); at least one of the two collections must be non-empty, and entities reached via both sides are deduplicated. Optional export settings control inclusion of relations, attributes, and credentials. All resolved entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. ### Parameters | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **solution_export_request** | **SolutionExportRequest** | Export request with entity IDs and optional settings. | | +| **solution_export_request** | **SolutionExportRequest** | Export request with internal and/or external entity IDs and optional settings. | | ### Return type diff --git a/pe/docs/SolutionExportRequest.md b/pe/docs/SolutionExportRequest.md index 1e1c53d4..aae87f38 100644 --- a/pe/docs/SolutionExportRequest.md +++ b/pe/docs/SolutionExportRequest.md @@ -9,8 +9,8 @@ Solution export request specifying which entities to include and export settings | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -| **internal_ids** | [**List[EntityId]**](EntityId.md) | Set of internal entity IDs to export. All listed entities must belong to the current tenant. The export will include the entity data, and optionally relations, attributes, and credentials based on the settings. | [optional] | -| **external_ids** | [**List[EntityId]**](EntityId.md) | | [optional] | +| **internal_ids** | [**List[EntityId]**](EntityId.md) | Set of internal entity IDs to export. The 'id' of each EntityId is the server-internal UUID. All listed entities must belong to the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty. | [optional] | +| **external_ids** | [**List[EntityId]**](EntityId.md) | Set of external entity IDs to export. The 'id' of each EntityId is the external UUID (as stored in the 'externalId' field on the entity in the current tenant). The server looks up each entity by 'externalId' and 'entityType' within the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty. | [optional] | | **settings** | [**EntityExportSettings**](EntityExportSettings.md) | Optional export settings controlling what additional data is included (relations, attributes, credentials, etc.). If not specified, default settings will be used that include all available data. | [optional] | diff --git a/pe/docs/TbChatRequest.md b/pe/docs/TbChatRequest.md index e7794751..2eecb42e 100644 --- a/pe/docs/TbChatRequest.md +++ b/pe/docs/TbChatRequest.md @@ -18,7 +18,7 @@ #### TbUserMessage | Name | Type | Description | Notes | |------|------|-------------|-------| -| contents | List[TbContent] | | | +| contents | List[TbContent] | A list of content parts that make up the complete user prompt | | #### AiModelConfig | Name | Type | Description | Notes | diff --git a/pe/docs/TbUserMessage.md b/pe/docs/TbUserMessage.md index d0d0c219..03024f37 100644 --- a/pe/docs/TbUserMessage.md +++ b/pe/docs/TbUserMessage.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -| **contents** | [**List[TbContent]**](TbContent.md) | | | +| **contents** | [**List[TbContent]**](TbContent.md) | A list of content parts that make up the complete user prompt | | diff --git a/pe/docs/WidgetsBundleExportData.md b/pe/docs/WidgetsBundleExportData.md index 3428b9a1..446dcd3d 100644 --- a/pe/docs/WidgetsBundleExportData.md +++ b/pe/docs/WidgetsBundleExportData.md @@ -9,7 +9,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -| **widgets** | **List[object]** | | [optional] | +| **widgets** | **List[object]** | List of widgets in the bundle | [optional] | | **fqns** | **List[str]** | | [optional] | diff --git a/pe/spec/openapi.json b/pe/spec/openapi.json index 304ac0fe..b6c513de 100644 --- a/pe/spec/openapi.json +++ b/pe/spec/openapi.json @@ -94327,10 +94327,10 @@ "solution-export-import-controller" ], "summary": "Export Solution (exportSolution)", - "description": "Exports a set of entities as a portable solution package. The request specifies entity IDs to include and optional export settings (relations, attributes, credentials). All specified entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint.\n\nAvailable for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission.", + "description": "Exports a set of entities as a portable solution package. The request specifies entities to include via 'internalIds' (server-internal UUIDs) and/or 'externalIds' (looked up by the entity's stored externalId within the current tenant); at least one of the two collections must be non-empty, and entities reached via both sides are deduplicated. Optional export settings control inclusion of relations, attributes, and credentials. All resolved entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint.\n\nAvailable for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission.", "operationId": "exportSolution", "requestBody": { - "description": "Export request with entity IDs and optional settings.", + "description": "Export request with internal and/or external entity IDs and optional settings.", "content": { "application/json": { "schema": { @@ -118593,7 +118593,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id", + "description": "JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected.", "readOnly": true }, "type": { @@ -119319,7 +119319,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id", + "description": "JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected.", "readOnly": true }, "type": { @@ -119624,7 +119624,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id", + "description": "JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected.", "readOnly": true }, "type": { @@ -120876,8 +120876,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id.", - "readOnly": true + "description": "JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Asset." }, "name": { "type": "string", @@ -120980,8 +120979,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id.", - "readOnly": true + "description": "JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Asset." }, "name": { "type": "string", @@ -121623,6 +121621,7 @@ }, "timeseries": { "type": "array", + "description": "List of unique time series key names available on the matched entities.", "items": { "type": "string", "example": "temperature", @@ -121632,6 +121631,7 @@ }, "attribute": { "type": "array", + "description": "List of unique attribute key names available on the matched entities.", "items": { "type": "string", "example": "serialNumber", @@ -121670,6 +121670,7 @@ }, "timeseries": { "type": "array", + "description": "List of unique time series keys available on the matched entities, sorted alphabetically.\nOmitted when timeseries keys were not requested.", "items": { "$ref": "#/components/schemas/KeyInfo" } @@ -125641,8 +125642,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id.", - "readOnly": true + "description": "JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Device." }, "name": { "type": "string", @@ -125986,8 +125986,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id.", - "readOnly": true + "description": "JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Device." }, "name": { "type": "string", @@ -126903,13 +126902,12 @@ }, "tenantId": { "$ref": "#/components/schemas/TenantId", - "description": "JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.", + "description": "JSON object with Tenant Id. Always set to the tenant of the current user on save; cannot be changed after creation.", "readOnly": true }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id. Use 'assignEdgeToCustomer' to change the Customer Id.", - "readOnly": true + "description": "JSON object with Customer Id." }, "rootRuleChainId": { "$ref": "#/components/schemas/RuleChainId", @@ -127262,13 +127260,12 @@ }, "tenantId": { "$ref": "#/components/schemas/TenantId", - "description": "JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.", + "description": "JSON object with Tenant Id. Always set to the tenant of the current user on save; cannot be changed after creation.", "readOnly": true }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id. Use 'assignEdgeToCustomer' to change the Customer Id.", - "readOnly": true + "description": "JSON object with Customer Id." }, "rootRuleChainId": { "$ref": "#/components/schemas/RuleChainId", @@ -128443,6 +128440,7 @@ }, "ownerIds": { "type": "array", + "description": "List of the entity group owners.", "items": { "$ref": "#/components/schemas/EntityId" }, @@ -128464,6 +128462,7 @@ }, "required": [ "name", + "ownerIds", "type" ] }, @@ -129168,8 +129167,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id.", - "readOnly": true + "description": "JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Entity View." }, "name": { "type": "string", @@ -129283,8 +129281,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id.", - "readOnly": true + "description": "JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Entity View." }, "name": { "type": "string", @@ -139515,8 +139512,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id", - "readOnly": true + "description": "JSON object with Customer Id. Optional: when omitted the Report Template is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id." }, "name": { "type": "string", @@ -139693,8 +139689,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id", - "readOnly": true + "description": "JSON object with Customer Id. Optional: when omitted the Report Template is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id." }, "name": { "type": "string", @@ -140201,8 +140196,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id. ", - "readOnly": true + "description": "JSON object with Customer Id. Optional: when omitted the Role is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id." }, "name": { "type": "string", @@ -141109,8 +141103,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id", - "readOnly": true + "description": "JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id." }, "originatorId": { "$ref": "#/components/schemas/EntityId", @@ -141188,8 +141181,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id", - "readOnly": true + "description": "JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id." }, "originatorId": { "$ref": "#/components/schemas/EntityId", @@ -141333,8 +141325,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id", - "readOnly": true + "description": "JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id." }, "originatorId": { "$ref": "#/components/schemas/EntityId", @@ -141396,8 +141387,7 @@ }, "customerId": { "$ref": "#/components/schemas/CustomerId", - "description": "JSON object with Customer Id", - "readOnly": true + "description": "JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id." }, "originatorId": { "$ref": "#/components/schemas/EntityId", @@ -142648,7 +142638,7 @@ "properties": { "internalIds": { "type": "array", - "description": "Set of internal entity IDs to export. All listed entities must belong to the current tenant. The export will include the entity data, and optionally relations, attributes, and credentials based on the settings.", + "description": "Set of internal entity IDs to export. The 'id' of each EntityId is the server-internal UUID. All listed entities must belong to the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty.", "items": { "$ref": "#/components/schemas/EntityId" }, @@ -142656,6 +142646,7 @@ }, "externalIds": { "type": "array", + "description": "Set of external entity IDs to export. The 'id' of each EntityId is the external UUID (as stored in the 'externalId' field on the entity in the current tenant). The server looks up each entity by 'externalId' and 'entityType' within the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty.", "items": { "$ref": "#/components/schemas/EntityId" }, @@ -143722,6 +143713,7 @@ "properties": { "contents": { "type": "array", + "description": "A list of content parts that make up the complete user prompt", "items": { "$ref": "#/components/schemas/TbContent" }, @@ -147535,6 +147527,7 @@ "properties": { "widgets": { "type": "array", + "description": "List of widgets in the bundle", "items": { "$ref": "#/components/schemas/JsonNode" } diff --git a/pe/tb_pe_client/api/solution_export_import_controller_api.py b/pe/tb_pe_client/api/solution_export_import_controller_api.py index 25f9e47c..e756f98c 100644 --- a/pe/tb_pe_client/api/solution_export_import_controller_api.py +++ b/pe/tb_pe_client/api/solution_export_import_controller_api.py @@ -60,7 +60,7 @@ def __init__(self, api_client=None) -> None: @validate_call def export_solution( self, - solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], + solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -76,9 +76,9 @@ def export_solution( ) -> SolutionExportResponse: """Export Solution (exportSolution) - Exports a set of entities as a portable solution package. The request specifies entity IDs to include and optional export settings (relations, attributes, credentials). All specified entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. + Exports a set of entities as a portable solution package. The request specifies entities to include via 'internalIds' (server-internal UUIDs) and/or 'externalIds' (looked up by the entity's stored externalId within the current tenant); at least one of the two collections must be non-empty, and entities reached via both sides are deduplicated. Optional export settings control inclusion of relations, attributes, and credentials. All resolved entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. - :param solution_export_request: Export request with entity IDs and optional settings. (required) + :param solution_export_request: Export request with internal and/or external entity IDs and optional settings. (required) :type solution_export_request: SolutionExportRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -132,7 +132,7 @@ def export_solution( @validate_call def export_solution_with_http_info( self, - solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], + solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -148,9 +148,9 @@ def export_solution_with_http_info( ) -> ApiResponse[SolutionExportResponse]: """Export Solution (exportSolution) - Exports a set of entities as a portable solution package. The request specifies entity IDs to include and optional export settings (relations, attributes, credentials). All specified entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. + Exports a set of entities as a portable solution package. The request specifies entities to include via 'internalIds' (server-internal UUIDs) and/or 'externalIds' (looked up by the entity's stored externalId within the current tenant); at least one of the two collections must be non-empty, and entities reached via both sides are deduplicated. Optional export settings control inclusion of relations, attributes, and credentials. All resolved entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. - :param solution_export_request: Export request with entity IDs and optional settings. (required) + :param solution_export_request: Export request with internal and/or external entity IDs and optional settings. (required) :type solution_export_request: SolutionExportRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -204,7 +204,7 @@ def export_solution_with_http_info( @validate_call def export_solution_without_preload_content( self, - solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], + solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -220,9 +220,9 @@ def export_solution_without_preload_content( ) -> RESTResponseType: """Export Solution (exportSolution) - Exports a set of entities as a portable solution package. The request specifies entity IDs to include and optional export settings (relations, attributes, credentials). All specified entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. + Exports a set of entities as a portable solution package. The request specifies entities to include via 'internalIds' (server-internal UUIDs) and/or 'externalIds' (looked up by the entity's stored externalId within the current tenant); at least one of the two collections must be non-empty, and entities reached via both sides are deduplicated. Optional export settings control inclusion of relations, attributes, and credentials. All resolved entities must belong to the current tenant. The response contains the solution data (entities grouped by type) and any dependency warnings (e.g. when an exported device profile references a rule chain that was not included in the export). The solution data can later be imported into the same or a different tenant via the import endpoint. Available for users with 'TENANT_ADMIN' authority. Requires VERSION_CONTROL WRITE permission. - :param solution_export_request: Export request with entity IDs and optional settings. (required) + :param solution_export_request: Export request with internal and/or external entity IDs and optional settings. (required) :type solution_export_request: SolutionExportRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request diff --git a/pe/tb_pe_client/client.pyi b/pe/tb_pe_client/client.pyi index 59b5626a..74a5b27d 100644 --- a/pe/tb_pe_client/client.pyi +++ b/pe/tb_pe_client/client.pyi @@ -2746,9 +2746,9 @@ class ThingsboardClient: # --- SolutionExportImportControllerApi --- @property def solution_export_import_controller(self) -> SolutionExportImportControllerApi: ... - def export_solution(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> SolutionExportResponse: ... - def export_solution_with_http_info(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[SolutionExportResponse]: ... - def export_solution_without_preload_content(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> RESTResponseType: ... + def export_solution(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> SolutionExportResponse: ... + def export_solution_with_http_info(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[SolutionExportResponse]: ... + def export_solution_without_preload_content(self, solution_export_request: Annotated[SolutionExportRequest, Field(description="Export request with internal and/or external entity IDs and optional settings.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> RESTResponseType: ... def _export_solution_serialize(self, solution_export_request, _request_auth, _content_type, _headers, _host_index) -> RequestSerialized: ... def import_solution(self, solution_data: Annotated[SolutionData, Field(description="Solution data exported via the export endpoint.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> SolutionImportResult: ... def import_solution_with_http_info(self, solution_data: Annotated[SolutionData, Field(description="Solution data exported via the export endpoint.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], Tuple[ Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)] ] ] = ..., _request_auth: Optional[Dict[StrictStr, Any]] = ..., _content_type: Optional[StrictStr] = ..., _headers: Optional[Dict[StrictStr, Any]] = ..., _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = ...) -> ApiResponse[SolutionImportResult]: ... diff --git a/pe/tb_pe_client/models/alarm.py b/pe/tb_pe_client/models/alarm.py index 69d4a766..b5302019 100644 --- a/pe/tb_pe_client/models/alarm.py +++ b/pe/tb_pe_client/models/alarm.py @@ -40,7 +40,7 @@ class Alarm(BaseModel): id: Optional[AlarmId] = Field(default=None, description="JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm.") created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the alarm creation, in milliseconds", serialization_alias="createdTime") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected.", serialization_alias="customerId") type: StrictStr = Field(description="representing type of the Alarm") originator: EntityId = Field(description="JSON object with alarm originator id") severity: AlarmSeverity = Field(description="Alarm severity") diff --git a/pe/tb_pe_client/models/alarm_data.py b/pe/tb_pe_client/models/alarm_data.py index 45bf78c9..4f4bb334 100644 --- a/pe/tb_pe_client/models/alarm_data.py +++ b/pe/tb_pe_client/models/alarm_data.py @@ -42,7 +42,7 @@ class AlarmData(BaseModel): id: Optional[AlarmId] = Field(default=None, description="JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm.") created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the alarm creation, in milliseconds", serialization_alias="createdTime") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected.", serialization_alias="customerId") type: StrictStr = Field(description="representing type of the Alarm") originator: EntityId = Field(description="JSON object with alarm originator id") severity: AlarmSeverity = Field(description="Alarm severity") diff --git a/pe/tb_pe_client/models/alarm_info.py b/pe/tb_pe_client/models/alarm_info.py index 6946f253..ff5dfd9a 100644 --- a/pe/tb_pe_client/models/alarm_info.py +++ b/pe/tb_pe_client/models/alarm_info.py @@ -41,7 +41,7 @@ class AlarmInfo(BaseModel): id: Optional[AlarmId] = Field(default=None, description="JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm.") created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the alarm creation, in milliseconds", serialization_alias="createdTime") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Derived from the originator entity owner and cannot be set independently; any value supplied in the request body must match the originator's customer or the request is rejected.", serialization_alias="customerId") type: StrictStr = Field(description="representing type of the Alarm") originator: EntityId = Field(description="JSON object with alarm originator id") severity: AlarmSeverity = Field(description="Alarm severity") diff --git a/pe/tb_pe_client/models/asset.py b/pe/tb_pe_client/models/asset.py index ebd54c0f..ed0ecf64 100644 --- a/pe/tb_pe_client/models/asset.py +++ b/pe/tb_pe_client/models/asset.py @@ -39,7 +39,7 @@ class Asset(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the asset creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the asset. May include: 'description' (string).", serialization_alias="additionalInfo") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id.", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Asset.", serialization_alias="customerId") name: StrictStr = Field(description="Unique Asset Name in scope of Tenant") type: Optional[StrictStr] = Field(default=None, description="Asset type") label: Optional[StrictStr] = Field(default=None, description="Label that may be used in widgets") @@ -86,12 +86,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "owner_id", ]) diff --git a/pe/tb_pe_client/models/asset_info.py b/pe/tb_pe_client/models/asset_info.py index 6d2b7b4b..e19e2f74 100644 --- a/pe/tb_pe_client/models/asset_info.py +++ b/pe/tb_pe_client/models/asset_info.py @@ -40,7 +40,7 @@ class AssetInfo(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the asset creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the asset. May include: 'description' (string).", serialization_alias="additionalInfo") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id.", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Asset.", serialization_alias="customerId") name: StrictStr = Field(description="Unique Asset Name in scope of Tenant") type: Optional[StrictStr] = Field(default=None, description="Asset type") label: Optional[StrictStr] = Field(default=None, description="Label that may be used in widgets") @@ -90,12 +90,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "owner_name", "owner_id", ]) diff --git a/pe/tb_pe_client/models/available_entity_keys.py b/pe/tb_pe_client/models/available_entity_keys.py index e6f42071..5cf25394 100644 --- a/pe/tb_pe_client/models/available_entity_keys.py +++ b/pe/tb_pe_client/models/available_entity_keys.py @@ -33,8 +33,8 @@ class AvailableEntityKeys(BaseModel): Contains unique time series and attribute key names discovered from entities matching a query. Used primarily for UI hints such as autocomplete suggestions. """ # noqa: E501 entity_types: List[EntityType] = Field(description="Set of entity types found among the matched entities.", serialization_alias="entityTypes") - timeseries: List[Annotated[str, Field(strict=True)]] - attribute: List[Annotated[str, Field(strict=True)]] + timeseries: List[Annotated[str, Field(strict=True)]] = Field(description="List of unique time series key names available on the matched entities.") + attribute: List[Annotated[str, Field(strict=True)]] = Field(description="List of unique attribute key names available on the matched entities.") __properties: ClassVar[List[str]] = ["entityTypes", "timeseries", "attribute"] model_config = ConfigDict( diff --git a/pe/tb_pe_client/models/available_entity_keys_v2.py b/pe/tb_pe_client/models/available_entity_keys_v2.py index edc98ab6..93bb92a4 100644 --- a/pe/tb_pe_client/models/available_entity_keys_v2.py +++ b/pe/tb_pe_client/models/available_entity_keys_v2.py @@ -34,7 +34,7 @@ class AvailableEntityKeysV2(BaseModel): """ # noqa: E501 total_entities: StrictInt = Field(description="Total number of entities that matched the query filter.", serialization_alias="totalEntities") entity_types: List[EntityType] = Field(description="Set of entity types found among the matched entities.", serialization_alias="entityTypes") - timeseries: Optional[List[KeyInfo]] = None + timeseries: Optional[List[KeyInfo]] = Field(default=None, description="List of unique time series keys available on the matched entities, sorted alphabetically. Omitted when timeseries keys were not requested.") attributes: Optional[Dict[str, List[KeyInfo]]] = Field(default=None, description="Map of attribute scope to the list of unique attribute keys available on the matched entities. Only scopes supported by the matched entity types are included. Omitted when attribute keys were not requested or when none of the requested scopes apply to the matched entity types.") __properties: ClassVar[List[str]] = ["totalEntities", "entityTypes", "timeseries", "attributes"] diff --git a/pe/tb_pe_client/models/device.py b/pe/tb_pe_client/models/device.py index 004f5d90..6e1d14b0 100644 --- a/pe/tb_pe_client/models/device.py +++ b/pe/tb_pe_client/models/device.py @@ -41,7 +41,7 @@ class Device(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the device creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the device. May include: 'gateway' (boolean, whether the device is a gateway), 'description' (string), 'lastConnectedGateway' (string, UUID of the last gateway that connected this device).", serialization_alias="additionalInfo") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id.", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Device.", serialization_alias="customerId") name: Optional[StrictStr] = Field(default=None, description="Unique Device Name in scope of Tenant") type: Optional[StrictStr] = Field(default=None, description="Device Profile Name") label: Optional[StrictStr] = Field(default=None, description="Label that may be used in widgets") @@ -91,12 +91,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "owner_id", ]) diff --git a/pe/tb_pe_client/models/device_info.py b/pe/tb_pe_client/models/device_info.py index 3c8b0508..1d297303 100644 --- a/pe/tb_pe_client/models/device_info.py +++ b/pe/tb_pe_client/models/device_info.py @@ -42,7 +42,7 @@ class DeviceInfo(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the device creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the device. May include: 'gateway' (boolean, whether the device is a gateway), 'description' (string), 'lastConnectedGateway' (string, UUID of the last gateway that connected this device).", serialization_alias="additionalInfo") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id.", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Device.", serialization_alias="customerId") name: Optional[StrictStr] = Field(default=None, description="Unique Device Name in scope of Tenant") type: Optional[StrictStr] = Field(default=None, description="Device Profile Name") label: Optional[StrictStr] = Field(default=None, description="Label that may be used in widgets") @@ -97,12 +97,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "owner_name", "active", "owner_id", diff --git a/pe/tb_pe_client/models/edge.py b/pe/tb_pe_client/models/edge.py index c48b4238..a1f95da6 100644 --- a/pe/tb_pe_client/models/edge.py +++ b/pe/tb_pe_client/models/edge.py @@ -38,8 +38,8 @@ class Edge(BaseModel): id: Optional[EdgeId] = Field(default=None, description="JSON object with the Edge Id. Specify this field to update the Edge. Referencing non-existing Edge Id will cause error. Omit this field to create new Edge.") created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the edge creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the edge. May include: 'description' (string).", serialization_alias="additionalInfo") - tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Use 'assignEdgeToCustomer' to change the Customer Id.", serialization_alias="customerId") + tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id. Always set to the tenant of the current user on save; cannot be changed after creation.", serialization_alias="tenantId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id.", serialization_alias="customerId") root_rule_chain_id: Optional[RuleChainId] = Field(default=None, description="JSON object with Root Rule Chain Id. Use 'setEdgeRootRuleChain' to change the Root Rule Chain Id.", serialization_alias="rootRuleChainId") name: StrictStr = Field(description="Unique Edge Name in scope of Tenant") type: StrictStr = Field(description="Edge type") @@ -91,12 +91,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "root_rule_chain_id", "owner_id", ]) diff --git a/pe/tb_pe_client/models/edge_info.py b/pe/tb_pe_client/models/edge_info.py index e8d98996..72af4847 100644 --- a/pe/tb_pe_client/models/edge_info.py +++ b/pe/tb_pe_client/models/edge_info.py @@ -39,8 +39,8 @@ class EdgeInfo(BaseModel): id: Optional[EdgeId] = Field(default=None, description="JSON object with the Edge Id. Specify this field to update the Edge. Referencing non-existing Edge Id will cause error. Omit this field to create new Edge.") created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the edge creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the edge. May include: 'description' (string).", serialization_alias="additionalInfo") - tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Use 'assignEdgeToCustomer' to change the Customer Id.", serialization_alias="customerId") + tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id. Always set to the tenant of the current user on save; cannot be changed after creation.", serialization_alias="tenantId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id.", serialization_alias="customerId") root_rule_chain_id: Optional[RuleChainId] = Field(default=None, description="JSON object with Root Rule Chain Id. Use 'setEdgeRootRuleChain' to change the Root Rule Chain Id.", serialization_alias="rootRuleChainId") name: StrictStr = Field(description="Unique Edge Name in scope of Tenant") type: StrictStr = Field(description="Edge type") @@ -95,12 +95,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "root_rule_chain_id", "owner_name", "owner_id", diff --git a/pe/tb_pe_client/models/entity_group_info.py b/pe/tb_pe_client/models/entity_group_info.py index 8609de26..7b9d85b7 100644 --- a/pe/tb_pe_client/models/entity_group_info.py +++ b/pe/tb_pe_client/models/entity_group_info.py @@ -42,7 +42,7 @@ class EntityGroupInfo(BaseModel): additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the entity group. May include: 'description' (string), 'isPublic' (boolean, whether this group is shared publicly), 'publicCustomerId' (string, UUID of the public customer associated with this group).", serialization_alias="additionalInfo") configuration: Optional[Any] = Field(default=None, description="JSON with the configuration for UI components: list of columns, settings, actions, etc ") version: Optional[StrictInt] = None - owner_ids: Optional[List[EntityId]] = Field(default=None, serialization_alias="ownerIds") + owner_ids: List[EntityId] = Field(description="List of the entity group owners.", serialization_alias="ownerIds") edge_group_all: Optional[StrictBool] = Field(default=None, description="Indicates special edge group 'All' that contains all entities and can't be deleted.", serialization_alias="edgeGroupAll") group_all: Optional[StrictBool] = Field(default=None, description="Indicates special group 'All' that contains all entities and can't be deleted.", serialization_alias="groupAll") tenant_id: Optional[TenantId] = Field(default=None, serialization_alias="tenantId") diff --git a/pe/tb_pe_client/models/entity_view.py b/pe/tb_pe_client/models/entity_view.py index 00c9cc1c..3714bb2c 100644 --- a/pe/tb_pe_client/models/entity_view.py +++ b/pe/tb_pe_client/models/entity_view.py @@ -40,7 +40,7 @@ class EntityView(BaseModel): additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the entity view. May include: 'description' (string).", serialization_alias="additionalInfo") entity_id: EntityId = Field(description="JSON object with the referenced Entity Id (Device or Asset).", serialization_alias="entityId") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id.", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Entity View.", serialization_alias="customerId") name: StrictStr = Field(description="Entity View name") type: StrictStr = Field(description="Device Profile Name") keys: Optional[TelemetryEntityView] = Field(default=None, description="Set of telemetry and attribute keys to expose via Entity View.") @@ -88,12 +88,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "owner_id", ]) diff --git a/pe/tb_pe_client/models/entity_view_info.py b/pe/tb_pe_client/models/entity_view_info.py index c2c701a2..84dd5d34 100644 --- a/pe/tb_pe_client/models/entity_view_info.py +++ b/pe/tb_pe_client/models/entity_view_info.py @@ -41,7 +41,7 @@ class EntityViewInfo(BaseModel): additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the entity view. May include: 'description' (string).", serialization_alias="additionalInfo") entity_id: EntityId = Field(description="JSON object with the referenced Entity Id (Device or Asset).", serialization_alias="entityId") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id.", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional on create: when omitted, defaults to the owner of the target Entity Group or to the current Customer user. Cannot be changed on update via this endpoint; use the Owner API (changeOwnerToCustomer) to re-assign an existing Entity View.", serialization_alias="customerId") name: StrictStr = Field(description="Entity View name") type: StrictStr = Field(description="Device Profile Name") keys: Optional[TelemetryEntityView] = Field(default=None, description="Set of telemetry and attribute keys to expose via Entity View.") @@ -92,12 +92,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "owner_name", "owner_id", ]) diff --git a/pe/tb_pe_client/models/report_template.py b/pe/tb_pe_client/models/report_template.py index 3b770280..50a8169d 100644 --- a/pe/tb_pe_client/models/report_template.py +++ b/pe/tb_pe_client/models/report_template.py @@ -40,7 +40,7 @@ class ReportTemplate(BaseModel): id: Optional[ReportTemplateId] = Field(default=None, description="JSON object with the report template Id. Specify this field to update the report. Referencing non-existing report template Id will cause error. Omit this field to create new report template") created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the report template creation, in milliseconds", serialization_alias="createdTime") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id. Tenant Id of the report template can't be changed.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional: when omitted the Report Template is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id.", serialization_alias="customerId") name: StrictStr = Field(description="Report name") format: TbReportFormat = Field(description="Report format") type: ReportTemplateType = Field(description="Report template type") @@ -88,12 +88,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "owner_id", ]) diff --git a/pe/tb_pe_client/models/report_template_info.py b/pe/tb_pe_client/models/report_template_info.py index 4cf742eb..cb8db6ec 100644 --- a/pe/tb_pe_client/models/report_template_info.py +++ b/pe/tb_pe_client/models/report_template_info.py @@ -39,7 +39,7 @@ class ReportTemplateInfo(BaseModel): id: Optional[ReportTemplateId] = Field(default=None, description="JSON object with the report template Id. Specify this field to update the report. Referencing non-existing report template Id will cause error. Omit this field to create new report template") created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the report template creation, in milliseconds", serialization_alias="createdTime") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id. Tenant Id of the report template can't be changed.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional: when omitted the Report Template is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id.", serialization_alias="customerId") name: StrictStr = Field(description="Report name") format: TbReportFormat = Field(description="Report format") type: ReportTemplateType = Field(description="Report template type") @@ -88,12 +88,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "owner_name", "owner_id", ]) diff --git a/pe/tb_pe_client/models/role.py b/pe/tb_pe_client/models/role.py index cc1f7623..6a6602b1 100644 --- a/pe/tb_pe_client/models/role.py +++ b/pe/tb_pe_client/models/role.py @@ -39,7 +39,7 @@ class Role(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the role creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the role. May include: 'description' (string).", serialization_alias="additionalInfo") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id.", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. ", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional: when omitted the Role is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id.", serialization_alias="customerId") name: StrictStr = Field(description="Role Name") type: RoleType = Field(description="Type of the role: generic or group") permissions: Optional[Any] = Field(default=None, description="Set of permissions granted by this role. The JSON shape depends on the role 'type': * GENERIC — JSON object mapping `Resource` enum names to arrays of `Operation` enum names allowed on that resource. The wildcard entry `{\"ALL\":[\"ALL\"]}` grants every operation on every resource. * GROUP — JSON array of `Operation` enum names that apply to the entity group this role is bound to via `GroupPermission.entityGroupId`. Only operations with `allowedForGroupRole=true` may appear (see `Operation` enum). The wildcard entry `[\"ALL\"]` grants every supported operation on the bound entity group.") @@ -86,12 +86,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "owner_id", ]) diff --git a/pe/tb_pe_client/models/scheduled_report_info.py b/pe/tb_pe_client/models/scheduled_report_info.py index a5e07f21..767bd71d 100644 --- a/pe/tb_pe_client/models/scheduled_report_info.py +++ b/pe/tb_pe_client/models/scheduled_report_info.py @@ -39,7 +39,7 @@ class ScheduledReportInfo(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the scheduler event creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the scheduler event", serialization_alias="additionalInfo") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id.", serialization_alias="customerId") originator_id: Optional[EntityId] = Field(default=None, description="JSON object with Originator Id", serialization_alias="originatorId") name: Optional[StrictStr] = Field(default=None, description="scheduler event name") type: Optional[StrictStr] = Field(default=None, description="scheduler event type") @@ -94,12 +94,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "originator_id", "template_info", "customer_title", diff --git a/pe/tb_pe_client/models/scheduler_event.py b/pe/tb_pe_client/models/scheduler_event.py index 448e26b5..e9ad5f9c 100644 --- a/pe/tb_pe_client/models/scheduler_event.py +++ b/pe/tb_pe_client/models/scheduler_event.py @@ -38,7 +38,7 @@ class SchedulerEvent(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the scheduler event creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the scheduler event", serialization_alias="additionalInfo") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id.", serialization_alias="customerId") originator_id: Optional[EntityId] = Field(default=None, description="JSON object with Originator Id", serialization_alias="originatorId") name: Optional[StrictStr] = Field(default=None, description="scheduler event name") type: Optional[StrictStr] = Field(default=None, description="scheduler event type") @@ -88,12 +88,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "originator_id", "owner_id", ]) diff --git a/pe/tb_pe_client/models/scheduler_event_info.py b/pe/tb_pe_client/models/scheduler_event_info.py index c513682b..042d96e0 100644 --- a/pe/tb_pe_client/models/scheduler_event_info.py +++ b/pe/tb_pe_client/models/scheduler_event_info.py @@ -38,7 +38,7 @@ class SchedulerEventInfo(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the scheduler event creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the scheduler event", serialization_alias="additionalInfo") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id.", serialization_alias="customerId") originator_id: Optional[EntityId] = Field(default=None, description="JSON object with Originator Id", serialization_alias="originatorId") name: Optional[StrictStr] = Field(default=None, description="scheduler event name") type: Optional[StrictStr] = Field(default=None, description="scheduler event type") @@ -87,12 +87,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "originator_id", "owner_id", ]) diff --git a/pe/tb_pe_client/models/scheduler_event_with_customer_info.py b/pe/tb_pe_client/models/scheduler_event_with_customer_info.py index e0d81b39..d03a044e 100644 --- a/pe/tb_pe_client/models/scheduler_event_with_customer_info.py +++ b/pe/tb_pe_client/models/scheduler_event_with_customer_info.py @@ -38,7 +38,7 @@ class SchedulerEventWithCustomerInfo(BaseModel): created_time: Optional[StrictInt] = Field(default=None, description="Timestamp of the scheduler event creation, in milliseconds", serialization_alias="createdTime") additional_info: Optional[Any] = Field(default=None, description="Additional parameters of the scheduler event", serialization_alias="additionalInfo") tenant_id: Optional[TenantId] = Field(default=None, description="JSON object with Tenant Id", serialization_alias="tenantId") - customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id", serialization_alias="customerId") + customer_id: Optional[CustomerId] = Field(default=None, description="JSON object with Customer Id. Optional: when omitted the Scheduler Event is owned by the tenant. When the request is made by a Customer user, the value is forced to the user's own Customer Id.", serialization_alias="customerId") originator_id: Optional[EntityId] = Field(default=None, description="JSON object with Originator Id", serialization_alias="originatorId") name: Optional[StrictStr] = Field(default=None, description="scheduler event name") type: Optional[StrictStr] = Field(default=None, description="scheduler event type") @@ -91,12 +91,10 @@ def to_dict(self) -> Dict[str, Any]: * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ "created_time", "tenant_id", - "customer_id", "originator_id", "customer_is_public", "owner_id", diff --git a/pe/tb_pe_client/models/solution_export_request.py b/pe/tb_pe_client/models/solution_export_request.py index 24411d51..aa048bb2 100644 --- a/pe/tb_pe_client/models/solution_export_request.py +++ b/pe/tb_pe_client/models/solution_export_request.py @@ -32,8 +32,8 @@ class SolutionExportRequest(BaseModel): """ Solution export request specifying which entities to include and export settings. """ # noqa: E501 - internal_ids: Optional[List[EntityId]] = Field(default=None, description="Set of internal entity IDs to export. All listed entities must belong to the current tenant. The export will include the entity data, and optionally relations, attributes, and credentials based on the settings.", serialization_alias="internalIds") - external_ids: Optional[List[EntityId]] = Field(default=None, serialization_alias="externalIds") + internal_ids: Optional[List[EntityId]] = Field(default=None, description="Set of internal entity IDs to export. The 'id' of each EntityId is the server-internal UUID. All listed entities must belong to the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty.", serialization_alias="internalIds") + external_ids: Optional[List[EntityId]] = Field(default=None, description="Set of external entity IDs to export. The 'id' of each EntityId is the external UUID (as stored in the 'externalId' field on the entity in the current tenant). The server looks up each entity by 'externalId' and 'entityType' within the current tenant. Optional, but at least one of 'internalIds' or 'externalIds' must be non-empty.", serialization_alias="externalIds") settings: Optional[EntityExportSettings] = Field(default=None, description="Optional export settings controlling what additional data is included (relations, attributes, credentials, etc.). If not specified, default settings will be used that include all available data.") __properties: ClassVar[List[str]] = ["internalIds", "externalIds", "settings"] diff --git a/pe/tb_pe_client/models/tb_user_message.py b/pe/tb_pe_client/models/tb_user_message.py index 0f79da6e..cca81a36 100644 --- a/pe/tb_pe_client/models/tb_user_message.py +++ b/pe/tb_pe_client/models/tb_user_message.py @@ -32,7 +32,7 @@ class TbUserMessage(BaseModel): """ TbUserMessage """ # noqa: E501 - contents: Annotated[List[TbContent], Field(min_length=1)] + contents: Annotated[List[TbContent], Field(min_length=1)] = Field(description="A list of content parts that make up the complete user prompt") __properties: ClassVar[List[str]] = ["contents"] model_config = ConfigDict( diff --git a/pe/tb_pe_client/models/widgets_bundle_export_data.py b/pe/tb_pe_client/models/widgets_bundle_export_data.py index 79c1c9b0..e02f71c7 100644 --- a/pe/tb_pe_client/models/widgets_bundle_export_data.py +++ b/pe/tb_pe_client/models/widgets_bundle_export_data.py @@ -36,7 +36,7 @@ class WidgetsBundleExportData(EntityExportData): WidgetsBundleExportData """ # noqa: E501 entity_type: EntityType = Field(default=EntityType.WIDGETS_BUNDLE, serialization_alias="entityType") # post_process: discriminator default - widgets: Optional[List[Any]] = None + widgets: Optional[List[Any]] = Field(default=None, description="List of widgets in the bundle") fqns: Optional[List[StrictStr]] = None __properties: ClassVar[List[str]] = ["entity", "relations", "attributes", "calculatedFields", "entityType", "widgets", "fqns"]