def create_asset_model_property()

in src/modules/sitewise/lib/util/SiteWiseTelemetryUtils.py [0:0]


    def create_asset_model_property(self, assetModel, propertyName, propertyDataType):
        if propertyDataType == 'VARCHAR':
            propertyDataType = 'STRING'

        self.log(f'Create property {propertyName} with type {propertyDataType} for asset model {assetModel["assetModelName"]}')
        
        properties = assetModel['assetModelProperties']
        for property in properties:
            if property['name'] == propertyName:
                return property
        
        properties.append({
            'name': propertyName,
            'dataType': propertyDataType,
            'type': {
                'measurement': {}
            }
        })

        updateResponse = self.iotsitewise.update_asset_model(
            assetModelId = assetModel['assetModelId'],
            assetModelName = assetModel['assetModelName'],
            assetModelProperties = properties
        )

        assetModelStatus = updateResponse['assetModelStatus']['state']
        
        while assetModelStatus != 'ACTIVE':
            time.sleep(1)
            assetModel = self.iotsitewise.describe_asset_model(assetModelId = assetModel['assetModelId'] )
            assetModelStatus = assetModel['assetModelStatus']['state']

        properties = assetModel['assetModelProperties']
        for property in properties:
            if property['name'] == propertyName:
                return property
            
        return None