('43499','21','','10527','Get instance alarms data','aws.ec2.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	getField: function (data, path, val) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || data === null || typeof data[step] === \'undefined\') {\r\n				if (typeof val === \'undefined\') {\r\n					throw \'Required field was not found: \' + path;\r\n				}\r\n				return val\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getRoleBaseCredentials: function () {\r\n		AWS.params[\'auth_type\'] = \'role_base\';\r\n		var request = new HttpRequest();\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n		var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n		if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n			throw \'Error getting IMDSv2 session token.\';\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n		var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n		if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n			throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n		}\r\n\r\n		credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n		if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n			throw \'Error getting security credentials from instance metadata.\';\r\n		}\r\n\r\n		try {\r\n			credentials = JSON.parse(credentials);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n		}\r\n\r\n		[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n			if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n				throw \'Required credentials are not set: "\' + field + \'".\';\r\n			};\r\n			AWS.params[field] = credentials[field];\r\n		});\r\n	},\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.getRoleBaseCredentials();\r\n				break;\r\n			case \'assume_role\':\r\n				if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n					throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n				}\r\n				if (params.metadata_auth === \'true\') {\r\n					AWS.getRoleBaseCredentials();\r\n					AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n					AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n					[\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				if (params.metadata_auth === \'false\') {\r\n					AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n					[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				const role_arn_regex = /role\\/(.+)$/;\r\n				const match = AWS.params.role_arn.match(role_arn_regex);\r\n				if (!match) {\r\n					throw \'Invalid role ARN format.\';\r\n				}\r\n\r\n				const payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': match[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\', \'instance_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_uri = \'/\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS EC2  ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ AWS EC2 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getVolumes: function () {\r\n		var payload = {\r\n			\'Action\': \'DescribeVolumes\',\r\n			\'Version\': \'2016-11-15\',\r\n			\'MaxResults\': 100,\r\n			\'Filter.1.Name\': \'attachment.instance-id\',\r\n			\'Filter.1.Value\': AWS.params.instance_id\r\n		},\r\n			value = [],\r\n			volumes = [],\r\n			volumes_list = [];\r\n\r\n		while (payload.NextToken !== \'\') {\r\n			var result = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'ec2\', AWS.prepareParams(payload)), \'DescribeVolumesResponse\');\r\n			payload.NextToken = result.nextToken || \'\';\r\n			volumes = AWS.getField(result, \'volumeSet.item\', value);\r\n			volumes_list.push(Array.isArray(volumes) ? volumes : [volumes])\r\n\r\n		}\r\n		var flattenedData = volumes_list.reduce(function (acc, val) {\r\n			return acc.concat(val);\r\n		}, []);\r\n		return flattenedData;\r\n	},\r\n\r\n	getAlarms: function () {\r\n		var payload = {\r\n			\'Action\': \'DescribeAlarms\',\r\n			\'Version\': \'2010-08-01\',\r\n			\'MaxRecords\': 100\r\n		},\r\n			result = [],\r\n			volumes = AWS.getVolumes()\r\n\r\n		while (payload.NextToken !== \'\') {\r\n			var alarms = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n			payload.NextToken = alarms.NextToken || \'\';\r\n			alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n\r\n			if (!Array.isArray(alarms_list))\r\n				alarms_list = [alarms_list];\r\n			alarms_list.forEach(function (alarm) {\r\n				var dimensions = alarm.Dimensions;\r\n\r\n				if (Array.isArray(alarm.Metrics)) {\r\n					alarm.Metrics.forEach(function (metric) {\r\n						if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n							&& typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n							&& Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n							dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n						}\r\n					});\r\n				}\r\n				for (var i in dimensions) {\r\n					if (dimensions[i].Name === \'InstanceId\' && dimensions[i].Value === AWS.params.instance_id) {\r\n						result.push(alarm);\r\n						break;\r\n					}\r\n					if (dimensions[i].Name === \'VolumeId\' && volumes.indexOf(dimensions[i].Value)) {\r\n						result.push(alarm);\r\n						break;\r\n					}\r\n				}\r\n			});\r\n		}\r\n\r\n		return result;\r\n	}\r\n}\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	return JSON.stringify(AWS.getAlarms());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS EC2 ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'DescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','4e0b2ed29500487092148b14245839d4','0','2','0'),
('43548','20','get[1.3.6.1.4.1.12325.1.200.1.11.1.0]','10528','Firewall rules count','opnsense.rules.count','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nThe number of labeled filter rules on this system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','289cece23b5d4f17ba50d0373db4ed33','0','2','0'),
('43549','15','','10528','States table utilization in %','opnsense.state.table.pused','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//opnsense.state.table.count) * 100 / last(//opnsense.state.table.limit)','','0','','','','','0',NULL,'Utilization of state table in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17a0f633e2a14e63b0282b785a66c62a','0','2','0'),
('43550','20','get[1.3.6.1.4.1.12325.1.200.1.5.1.0]','10528','States table limit','opnsense.state.table.limit','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nMaximum number of \'keep state\' rules in the ruleset.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3bd8ea1e2cb44b4cb0f7d16a9339b9e4','0','2','0'),
('43551','20','get[1.3.6.1.4.1.12325.1.200.1.3.1.0]','10528','States table current','opnsense.state.table.count','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nNumber of entries in the state table.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c399a2204bc44d4a9b1a4017840fd75','0','2','0'),
('43552','15','','10528','Source tracking table utilization in %','opnsense.source.tracking.table.pused','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//opnsense.source.tracking.table.count) * 100 / last(//opnsense.source.tracking.table.limit)','','0','','','','','0',NULL,'Utilization of source tracking table in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1452fc4e67564233b12dc892fde1959a','0','2','0'),
('43553','20','get[1.3.6.1.4.1.12325.1.200.1.5.2.0]','10528','Source tracking table limit','opnsense.source.tracking.table.limit','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nMaximum number of \'sticky-address\' or \'source-track\' rules in the ruleset.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a9b848d5c2254efdaf74ff48ce4003c4','0','2','0'),
('43554','20','get[1.3.6.1.4.1.12325.1.200.1.4.1.0]','10528','Source tracking table current','opnsense.source.tracking.table.count','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nNumber of entries in the source tracking table.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e40ddbf15a54b0e8ae2d1c52d5c2eba','0','2','0'),
('43555','20','get[1.3.6.1.4.1.12325.1.200.1.1.1.0]','10528','Packet filter running status','opnsense.pf.status','1m','31d','365d','0','3','','','','',NULL,'1019','','','0','','','','','0',NULL,'MIB: BEGEMOT-PF-MIB\r\nTrue if packet filter is currently enabled.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2b82b136ea943909a7b6317bf8b7785','0','2','0'),
('43564','5','','10528','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1020','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00f2e8aa55754a7b9063afc1d7749d85','0','2','0'),
('43592','21','','10529','Get metrics data','aws.rds.get_metrics','0s;m/5','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	request_period: 600,\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getRoleBaseCredentials: function () {\r\n		AWS.params[\'auth_type\'] = \'role_base\';\r\n		var request = new HttpRequest();\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n		var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n		if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n			throw \'Error getting IMDSv2 session token.\';\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n		var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n		if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n			throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n		}\r\n\r\n		credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n		if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n			throw \'Error getting security credentials from instance metadata.\';\r\n		}\r\n\r\n		try {\r\n			credentials = JSON.parse(credentials);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n		}\r\n\r\n		[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n			if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n				throw \'Required credentials are not set: "\' + field + \'".\';\r\n			};\r\n			AWS.params[field] = credentials[field];\r\n		});\r\n	},\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.getRoleBaseCredentials();\r\n				break;\r\n			case \'assume_role\':\r\n				if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n					throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n				}\r\n				if (params.metadata_auth === \'true\') {\r\n					AWS.getRoleBaseCredentials();\r\n					AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n					AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n					[\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				if (params.metadata_auth === \'false\') {\r\n					AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n					[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				const role_arn_regex = /role\\/(.+)$/;\r\n				const match = AWS.params.role_arn.match(role_arn_regex);\r\n				if (!match) {\r\n					throw \'Invalid role ARN format.\';\r\n				}\r\n\r\n				const payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': match[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'POST\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\', \'db_instance_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	renderMetricQuery: function (period, db_instance_id) {\r\n		var metrics_list = [\r\n			\'AbortedClients:Count\',\r\n			\'ActiveTransactions:Count/Second\',\r\n			\'AuroraBinlogReplicaLag:Seconds\',\r\n			\'AuroraReplicaLag:Milliseconds\',\r\n			\'AuroraReplicaLagMaximum:Milliseconds\',\r\n			\'AuroraReplicaLagMinimum:Milliseconds\',\r\n			\'BacktrackWindowActual:Count\',\r\n			\'BacktrackWindowAlert:Count\',\r\n			\'BinLogDiskUsage:Bytes\',\r\n			\'BlockedTransactions:Count/Second\',\r\n			\'BufferCacheHitRatio:Percent\',\r\n			\'CheckpointLag:Seconds\',\r\n			\'CommitLatency:Milliseconds\',\r\n			\'CommitThroughput:Count/Second\',\r\n			\'CPUCreditBalance:Count\',\r\n			\'CPUCreditUsage:Count\',\r\n			\'CPUUtilization:Percent\',\r\n			\'DatabaseConnections:Count\',\r\n			\'DDLLatency:Milliseconds\',\r\n			\'DDLThroughput:Count/Second\',\r\n			\'Deadlocks:Count/Second\',\r\n			\'DeleteLatency:Milliseconds\',\r\n			\'DeleteThroughput:Count/Second\',\r\n			\'DiskQueueDepth:Count\',\r\n			\'DMLLatency:Milliseconds\',\r\n			\'DMLThroughput:Count/Second\',\r\n			\'EBSByteBalance%:Percent\',\r\n			\'EBSIOBalance%:Percent\',\r\n			\'EngineUptime:Seconds\',\r\n			\'FailedSQLServerAgentJobsCount:Count/Second\',\r\n			\'FreeableMemory:Bytes\',\r\n			\'FreeLocalStorage:Bytes\',\r\n			\'InsertLatency:Milliseconds\',\r\n			\'InsertThroughput:Count/Second\',\r\n			\'LoginFailures:Count/Second\',\r\n			\'MaximumUsedTransactionIDs:Count\',\r\n			\'NetworkReceiveThroughput:Bytes/Second\',\r\n			\'NetworkThroughput:Bytes/Second\',\r\n			\'NetworkTransmitThroughput:Bytes/Second\',\r\n			\'NumBinaryLogFiles:Count\',\r\n			\'Queries:Count/Second\',\r\n			\'RDSToAuroraPostgreSQLReplicaLag:Seconds\',\r\n			\'ReadIOPS:Count/Second\',\r\n			\'ReadLatency:Seconds\',\r\n			\'ReadLatencyLocalStorage:Seconds\',\r\n			\'ReadThroughput:Bytes/Second\',\r\n			\'ReadThroughputLocalStorage:Bytes/Second\',\r\n			\'ReplicationSlotDiskUsage:Bytes\',\r\n			\'ResultSetCacheHitRatio:Percent\',\r\n			\'RollbackSegmentHistoryListLength:Count\',\r\n			\'RowLockTime:Milliseconds\',\r\n			\'SelectLatency:Milliseconds\',\r\n			\'SelectThroughput:Count/Second\',\r\n			\'StorageNetworkReceiveThroughput:Bytes/Second\',\r\n			\'StorageNetworkThroughput:Bytes/Second\',\r\n			\'StorageNetworkTransmitThroughput:Bytes/Second\',\r\n			\'SumBinaryLogSize:Bytes\',\r\n			\'SwapUsage:Bytes\',\r\n			\'TransactionLogsDiskUsage:Bytes\',\r\n			\'UpdateLatency:Milliseconds\',\r\n			\'UpdateThroughput:Count/Second\',\r\n			\'WriteIOPS:Count/Second\',\r\n			\'WriteLatency:Seconds\',\r\n			\'WriteThroughput:Bytes/Second\',\r\n			\'BurstBalance:Percent\',\r\n			\'FreeStorageSpace:Bytes\',\r\n			\'OldestReplicationSlotLag:Bytes\',\r\n			\'ReplicaLag:Seconds\',\r\n			\'TransactionLogsGeneration:Bytes/Second\'\r\n		];\r\n\r\n		var metric_payload = [];\r\n		metrics_list.forEach(function (metric) {\r\n			var parts = metric.split(\':\', 2);\r\n			var name = parts[0].replace(/[^a-zA-Z0-9]/g, \'\');\r\n			metric_payload.push({\r\n				\'Id\': name.charAt(0).toLowerCase() + name.slice(1),\r\n				\'MetricStat\': {\r\n					\'Metric\': {\r\n						\'MetricName\': parts[0],\r\n						\'Namespace\': \'AWS/RDS\',\r\n						\'Dimensions\': [\r\n							{\r\n								\'Name\': \'DBInstanceIdentifier\',\r\n								\'Value\': db_instance_id\r\n							}\r\n						]\r\n					},\r\n					\'Period\': period,\r\n					\'Stat\': \'Average\',\r\n					\'Unit\': parts[1]\r\n				}\r\n			});\r\n		});\r\n\r\n		return metric_payload;\r\n\r\n	},\r\n\r\n	request: function (method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n		else {\r\n			data = JSON.stringify(data);\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_uri = \'/\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'X-Amz-Target: GraniteServiceVersion20100801.GetMetricData\');\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS RDS ] Sending request: \' + url);\r\n		response = request.post(url, data);\r\n		Zabbix.log(4, \'[ AWS RDS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var payload = {},\r\n			end_time = Math.floor((new Date().getTime()) / 1000),\r\n			start_time = end_time - AWS.request_period;\r\n\r\n		payload[\'StartTime\'] = start_time;\r\n		payload[\'EndTime\'] = end_time;\r\n		payload[\'ScanBy\'] = \'TimestampDescending\';\r\n		payload[\'MetricDataQueries\'] = AWS.renderMetricQuery(AWS.request_period, AWS.params.db_instance_id);\r\n		result = AWS.request(\'POST\', AWS.params.region, \'monitoring\', \'\', payload);\r\n		if (typeof result !== \'object\' || typeof result.MetricDataResults !== \'object\') {\r\n			throw \'Cannot get metrics data from AWS CloudWatch API. Check debug log for more information.\';\r\n		}\r\n\r\n		return result.MetricDataResults;\r\n	}\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	return JSON.stringify(AWS.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS RDS ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get instance metrics.\r\nFull metrics list related to RDS: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html\r\nFull metrics list related to Amazon Aurora: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html#Aurora.AuroraMySQL.Monitoring.Metrics.instances','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','b22171fe7de44ac3952468ceb0c1a9b0','0','2','0'),
('43593','21','','10529','Get instance info','aws.rds.get_instance_info','5m','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	request_period: 600,\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getRoleBaseCredentials: function () {\r\n		AWS.params[\'auth_type\'] = \'role_base\';\r\n		var request = new HttpRequest();\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n		var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n		if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n			throw \'Error getting IMDSv2 session token.\';\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n		var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n		if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n			throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n		}\r\n\r\n		credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n		if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n			throw \'Error getting security credentials from instance metadata.\';\r\n		}\r\n\r\n		try {\r\n			credentials = JSON.parse(credentials);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n		}\r\n\r\n		[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n			if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n				throw \'Required credentials are not set: "\' + field + \'".\';\r\n			};\r\n			AWS.params[field] = credentials[field];\r\n		});\r\n	},\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.getRoleBaseCredentials();\r\n				break;\r\n			case \'assume_role\':\r\n				if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n					throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n				}\r\n				if (params.metadata_auth === \'true\') {\r\n					AWS.getRoleBaseCredentials();\r\n					AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n					AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n					[\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				if (params.metadata_auth === \'false\') {\r\n					AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n					[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				const role_arn_regex = /role\\/(.+)$/;\r\n				const match = AWS.params.role_arn.match(role_arn_regex);\r\n				if (!match) {\r\n					throw \'Invalid role ARN format.\';\r\n				}\r\n\r\n				const payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': match[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\', \'db_instance_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_uri = \'/\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS RDS ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ AWS RDS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS RDS API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getInstanceData: function () {\r\n		var payload = {};\r\n\r\n		payload[\'Action\'] = \'DescribeDBInstances\',\r\n			payload[\'Version\'] = \'2014-10-31\',\r\n			payload[\'DBInstanceIdentifier\'] = AWS.params.db_instance_id;\r\n\r\n		result = AWS.request(\'GET\', AWS.params.region, \'rds\', AWS.prepareParams(payload));\r\n		if (typeof result !== \'object\'\r\n			|| typeof result.DescribeDBInstancesResponse !== \'object\'\r\n			|| typeof result.DescribeDBInstancesResponse.DescribeDBInstancesResult !== \'object\'\r\n			|| typeof result.DescribeDBInstancesResponse.DescribeDBInstancesResult.DBInstances !== \'object\') {\r\n			throw \'Cannot get metrics data from AWS RDS API. Check debug log for more information.\';\r\n		}\r\n\r\n		return result.DescribeDBInstancesResponse.DescribeDBInstancesResult.DBInstances;\r\n	}\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	return JSON.stringify(AWS.getInstanceData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS RDS ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get instance info.\r\nDescribeDBInstances API method: https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','85ac4a5313994e0f94fe6480d3c85193','0','2','0'),
('43594','21','','10529','Get instance events data','aws.rds.get_events','0s;m/10','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getRoleBaseCredentials: function () {\r\n		AWS.params[\'auth_type\'] = \'role_base\';\r\n		var request = new HttpRequest();\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n		var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n		if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n			throw \'Error getting IMDSv2 session token.\';\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n		var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n		if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n			throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n		}\r\n\r\n		credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n		if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n			throw \'Error getting security credentials from instance metadata.\';\r\n		}\r\n\r\n		try {\r\n			credentials = JSON.parse(credentials);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n		}\r\n\r\n		[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n			if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n				throw \'Required credentials are not set: "\' + field + \'".\';\r\n			};\r\n			AWS.params[field] = credentials[field];\r\n		});\r\n	},\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.getRoleBaseCredentials();\r\n				break;\r\n			case \'assume_role\':\r\n				if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n					throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n				}\r\n				if (params.metadata_auth === \'true\') {\r\n					AWS.getRoleBaseCredentials();\r\n					AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n					AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n					[\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				if (params.metadata_auth === \'false\') {\r\n					AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n					[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				const role_arn_regex = /role\\/(.+)$/;\r\n				const match = AWS.params.role_arn.match(role_arn_regex);\r\n				if (!match) {\r\n					throw \'Invalid role ARN format.\';\r\n				}\r\n\r\n				const payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': match[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\', \'db_instance_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_uri = \'/\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS RDS ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ AWS RDS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS RDS API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getEvents: function () {\r\n		var payload = {\r\n			\'Action\': \'DescribeEvents\',\r\n			\'Version\': \'2014-09-01\',\r\n			\'MaxRecords\': 100,\r\n			\'Duration\': 30,\r\n			\'SourceType\': \'db-instance\',\r\n			\'SourceIdentifier\': AWS.params.db_instance_id\r\n		},\r\n			result = [];\r\n\r\n		while (payload.nextToken !== \'\') {\r\n			var events = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'rds\', AWS.prepareParams(payload)), \'DescribeEventsResponse.DescribeEventsResult\');\r\n			events_list = AWS.getField(events, \'Events\');\r\n\r\n			if (!Array.isArray(events_list))\r\n				events_list = [events_list];\r\n			events_list.forEach(function (event) {\r\n				event.EventCategories = event.EventCategories.toString();\r\n				result.push(event);\r\n			});\r\n			payload.nextToken = events.nextToken || \'\';\r\n\r\n\r\n		};\r\n\r\n		return result;\r\n	}\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	return JSON.stringify(AWS.getEvents());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS RDS ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'DescribeEvents API method: https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','f0d1041fa09d4ba38c9d0b39c4b76b0b','0','2','0'),
('43595','21','','10529','Get instance alarms data','aws.rds.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getRoleBaseCredentials: function () {\r\n		AWS.params[\'auth_type\'] = \'role_base\';\r\n		var request = new HttpRequest();\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n		var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n		if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n			throw \'Error getting IMDSv2 session token.\';\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n		var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n		if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n			throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n		}\r\n\r\n		credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n		if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n			throw \'Error getting security credentials from instance metadata.\';\r\n		}\r\n\r\n		try {\r\n			credentials = JSON.parse(credentials);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n		}\r\n\r\n		[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n			if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n				throw \'Required credentials are not set: "\' + field + \'".\';\r\n			};\r\n			AWS.params[field] = credentials[field];\r\n		});\r\n	},\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.getRoleBaseCredentials();\r\n				break;\r\n			case \'assume_role\':\r\n				if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n					throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n				}\r\n				if (params.metadata_auth === \'true\') {\r\n					AWS.getRoleBaseCredentials();\r\n					AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n					AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n					[\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				if (params.metadata_auth === \'false\') {\r\n					AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n					[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				const role_arn_regex = /role\\/(.+)$/;\r\n				const match = AWS.params.role_arn.match(role_arn_regex);\r\n				if (!match) {\r\n					throw \'Invalid role ARN format.\';\r\n				}\r\n\r\n				const payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': match[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\', \'db_instance_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_uri = \'/\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS RDS ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ AWS RDS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getAlarms: function () {\r\n		var payload = {\r\n			\'Action\': \'DescribeAlarms\',\r\n			\'Version\': \'2010-08-01\',\r\n			\'MaxRecords\': 100\r\n		},\r\n			result = [];\r\n\r\n		while (payload.NextToken !== \'\') {\r\n			var alarms = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n			payload.NextToken = alarms.NextToken || \'\';\r\n			alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n\r\n			if (!Array.isArray(alarms_list))\r\n				alarms_list = [alarms_list];\r\n			alarms_list.forEach(function (alarm) {\r\n				var dimensions = alarm.Dimensions;\r\n\r\n				if (Array.isArray(alarm.Metrics)) {\r\n					alarm.Metrics.forEach(function (metric) {\r\n						if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n							&& typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n							&& Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n							dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n						}\r\n					});\r\n				}\r\n				for (var i in dimensions) {\r\n					if (dimensions[i].Name === \'DBInstanceIdentifier\' && dimensions[i].Value === AWS.params.db_instance_id) {\r\n						result.push(alarm);\r\n						break;\r\n					}\r\n				}\r\n			});\r\n		}\r\n\r\n		return result;\r\n	}\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	return JSON.stringify(AWS.getAlarms());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS RDS ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'DescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','a2f85e777eae4fe789446de21136c510','0','2','0'),
('43684','21','','10530','Get metrics data','aws.s3.get_metrics','0s;h/8','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	request_period: 2 * 86400,\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n\r\n	getRoleBaseCredentials: function () {\r\n		AWS.params[\'auth_type\'] = \'role_base\';\r\n		var request = new HttpRequest();\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n		var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n		if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n			throw \'Error getting IMDSv2 session token.\';\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n		var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n		if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n			throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n		}\r\n\r\n		credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n		if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n			throw \'Error getting security credentials from instance metadata.\';\r\n		}\r\n\r\n		try {\r\n			credentials = JSON.parse(credentials);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n		}\r\n\r\n		[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n			if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n				throw \'Required credentials are not set: "\' + field + \'".\';\r\n			};\r\n			AWS.params[field] = credentials[field];\r\n		});\r\n	},\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.getRoleBaseCredentials();\r\n				break;\r\n			case \'assume_role\':\r\n				if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n					throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n				}\r\n				if (params.metadata_auth === \'true\') {\r\n					AWS.getRoleBaseCredentials();\r\n					AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n					AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n					[\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				if (params.metadata_auth === \'false\') {\r\n					AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n					[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				const role_arn_regex = /role\\/(.+)$/;\r\n				const match = AWS.params.role_arn.match(role_arn_regex);\r\n				if (!match) {\r\n					throw \'Invalid role ARN format.\';\r\n				}\r\n\r\n				const payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': match[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'credentials\', \'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload)), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'bucket_name\', \'request_region\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	renderMetricQuery: function (period, bucket_name) {\r\n		var metrics_list = [\r\n			\'BucketSizeBytes:Bytes:Average:StandardStorage\',\r\n			\'NumberOfObjects:Count:Average:AllStorageTypes\',\r\n		];\r\n\r\n		var metric_payload = [];\r\n		metrics_list.forEach(function (metric, index) {\r\n			var parts = metric.split(\':\', 4);\r\n			metric_payload.push({\r\n				\'Id\': \'m\' + index,\r\n				\'MetricStat\': {\r\n					\'Metric\': {\r\n						\'MetricName\': parts[0],\r\n						\'Namespace\': \'AWS/S3\',\r\n						\'Dimensions\': [\r\n							{\r\n								\'Name\': \'BucketName\',\r\n								\'Value\': bucket_name\r\n							},\r\n							{\r\n								\'Name\': \'StorageType\',\r\n								\'Value\': parts[3]\r\n							}\r\n						]\r\n					},\r\n					\'Period\': period,\r\n					\'Stat\': parts[2],\r\n					\'Unit\': parts[1]\r\n				}\r\n			});\r\n		});\r\n\r\n		return metric_payload;\r\n\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (get, method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n		else {\r\n			data = JSON.stringify(data)\r\n		}\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\');\r\n\r\n		if (get === \'metrics\' || get === \'credentials\') {\r\n			host = service + \'.\' + region + \'.amazonaws.com\';\r\n		} else {\r\n			host = AWS.params.bucket_name + \'.\' + service + \'.\' + region + \'.amazonaws.com\';\r\n		}\r\n		if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			token = AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken;\r\n			var canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\' + \'x-amz-security-token:\' + token + \'\\n\',\r\n				signed_headers = \'content-encoding;host;x-amz-date;x-amz-security-token\';\r\n		}\r\n		else {\r\n			var canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n				signed_headers = \'content-encoding;host;x-amz-date\';\r\n		}\r\n\r\n		var canonical_uri = \'/\';\r\n\r\n		switch (get) {\r\n			case \'location\':\r\n				canonical_uri = \'/\' + AWS.params.bucket_name;\r\n				canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data);\r\n				break;\r\n			case \'metrics\':\r\n				canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data);\r\n				break;\r\n			case \'filter_id\':\r\n			case \'credentials\':\r\n				canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data);\r\n				break;\r\n			default:\r\n				throw \'Error: Invalid option "get" for request function\';\r\n		}\r\n\r\n		var credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest();\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + token);\r\n		}\r\n\r\n		switch (get) {\r\n			case \'location\':\r\n			case \'filter_id\':\r\n			case \'credentials\':\r\n				url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n				Zabbix.log(4, \'[ AWS S3 ] Sending request: \' + url);\r\n				response = request.get(url);\r\n				Zabbix.log(4, \'[ AWS S3 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n				if (request.getStatus() !== 200) {\r\n					throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n				}\r\n				break;\r\n\r\n			case \'metrics\':\r\n				url = \'https://\' + host + \'/\';\r\n				Zabbix.log(4, \'[ AWS S3 ] Sending request: \' + url);\r\n				request.addHeader(\'X-Amz-Target: GraniteServiceVersion20100801.GetMetricData\');\r\n				response = request.post(url, data);\r\n				Zabbix.log(4, \'[ AWS S3 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n				if (request.getStatus() !== 200) {\r\n					throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n				}\r\n				break;\r\n\r\n			default:\r\n				throw \'Error: Invalid option "get" for request function\';\r\n		}\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getBucketLocation: function (bucket_name) {\r\n		var payload = {};\r\n		payload[\'location\'] = \'\';\r\n\r\n		result = AWS.request(\'location\', \'GET\', AWS.params.request_region, \'s3\', AWS.prepareParams(payload), \'\', bucket_name);\r\n\r\n		if (typeof result !== \'object\'\r\n			|| result.hasOwnProperty(\'LocationConstraint\') === false\r\n		) {\r\n			throw \'Cannot get buckets region location data from AWS S3 API. Check debug log for more information.\';\r\n		}\r\n\r\n		return result.LocationConstraint !== null ? result.LocationConstraint : \'us-east-1\';\r\n	},\r\n\r\n	getBucketFilterId: function (region) {\r\n		var payload = {};\r\n		payload[\'metrics\'] = \'\';\r\n\r\n		data = AWS.getField(AWS.request(\'filter_id\', \'GET\', region, \'s3\', AWS.prepareParams(payload), \'\'), \'ListMetricsConfigurationsResult\');\r\n\r\n		if (typeof data === \'object\' && data.hasOwnProperty(\'MetricsConfiguration\') === true) {\r\n			if (!Array.isArray(data.MetricsConfiguration))\r\n				data.MetricsConfiguration = [data.MetricsConfiguration]\r\n			data.MetricsConfiguration.forEach(function (item) {\r\n				item.region = region;\r\n			});\r\n		} else { data.MetricsConfiguration = [\'To view request metrics, create a filter\'] }\r\n		return data.MetricsConfiguration;\r\n\r\n	},\r\n\r\n	getMetricsData: function (region) {\r\n		var payload = {},\r\n			end_time = Math.floor((new Date().getTime()) / 1000),\r\n			start_time = end_time - AWS.request_period;\r\n		payload[\'StartTime\'] = start_time;\r\n		payload[\'EndTime\'] = end_time;\r\n		payload[\'ScanBy\'] = \'TimestampDescending\';\r\n		payload[\'MetricDataQueries\'] = AWS.renderMetricQuery(43200, AWS.params.bucket_name);\r\n\r\n		return AWS.getField(AWS.request(\'metrics\', \'POST\', region, \'monitoring\', \'\', payload), \'MetricDataResults\');\r\n	}\r\n\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n	var region = AWS.getBucketLocation(AWS.params.bucket_name),\r\n		metrics = AWS.getMetricsData(region),\r\n		filter_id = AWS.getBucketFilterId(region);\r\n	return JSON.stringify({ metrics, filter_id });\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS S3 ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get bucket metrics.\r\nFull metrics list related to S3: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metrics-dimensions.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','598e9dc563334ad6b1d72245a6f8679f','0','2','0'),
('43685','21','','10530','Get alarms data','aws.s3.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getRoleBaseCredentials: function () {\r\n		AWS.params[\'auth_type\'] = \'role_base\';\r\n		var request = new HttpRequest();\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n		var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n		if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n			throw \'Error getting IMDSv2 session token.\';\r\n		}\r\n		request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n		var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n		if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n			throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n		}\r\n\r\n		credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n		if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n			throw \'Error getting security credentials from instance metadata.\';\r\n		}\r\n\r\n		try {\r\n			credentials = JSON.parse(credentials);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n		}\r\n\r\n		[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n			if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n				throw \'Required credentials are not set: "\' + field + \'".\';\r\n			};\r\n			AWS.params[field] = credentials[field];\r\n		});\r\n	},\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.getRoleBaseCredentials();\r\n				break;\r\n			case \'assume_role\':\r\n				if (typeof params.metadata_auth === \'undefined\' || params.metadata_auth === \'\' || (params.metadata_auth !== \'true\' && params.metadata_auth !== \'false\')) {\r\n					throw \'Required param metadata_auth for assume_role is not set or has invalid value: "\' + params.metadata_auth + \'". Expected "true" or "false".\';\r\n				}\r\n				if (params.metadata_auth === \'true\') {\r\n					AWS.getRoleBaseCredentials();\r\n					AWS.params[\'SessionToken\'] = AWS.params[\'Token\'];\r\n					AWS.params[\'auth_type\'] = \'assume_role_metadata\';\r\n\r\n					[\'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				if (params.metadata_auth === \'false\') {\r\n					AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n					[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n						if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n							throw \'Required param is not set: "\' + field + \'".\';\r\n						}\r\n						AWS.params[field] = params[field];\r\n					});\r\n				}\r\n\r\n				const role_arn_regex = /role\\/(.+)$/;\r\n				const match = AWS.params.role_arn.match(role_arn_regex);\r\n				if (!match) {\r\n					throw \'Invalid role ARN format.\';\r\n				}\r\n\r\n				const payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': match[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'alarms\', \'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload)), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'bucket_name\', \'request_region\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (get, method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\');\r\n		if (get === \'alarms\') {\r\n			host = service + \'.\' + region + \'.amazonaws.com\';\r\n		} else {\r\n			host = AWS.params.bucket_name + \'.\' + service + \'.\' + region + \'.amazonaws.com\';\r\n		}\r\n		if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			token = AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken;\r\n			var canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\' + \'x-amz-security-token:\' + token + \'\\n\',\r\n				signed_headers = \'content-encoding;host;x-amz-date;x-amz-security-token\';\r\n		}\r\n		else {\r\n			var canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n				signed_headers = \'content-encoding;host;x-amz-date\';\r\n		}\r\n		if (get === \'location\') {\r\n			canonical_uri = \'/\' + AWS.params.bucket_name;\r\n		} else {\r\n			canonical_uri = \'/\';\r\n		}\r\n		var canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || AWS.params.auth_type === \'assume_role_metadata\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS S3 ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ AWS S3 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getBucketLocation: function () {\r\n		var payload = {};\r\n		payload[\'location\'] = \'\';\r\n\r\n		result = AWS.request(\'location\', \'GET\', AWS.params.request_region, \'s3\', AWS.prepareParams(payload));\r\n\r\n		if (typeof result !== \'object\'\r\n			|| result.hasOwnProperty(\'LocationConstraint\') === false\r\n		) {\r\n			throw \'Cannot get buckets region location data from AWS S3 API. Check debug log for more information.\';\r\n		}\r\n\r\n		return result.LocationConstraint !== null ? result.LocationConstraint : \'us-east-1\';\r\n	},\r\n\r\n	getAlarms: function (region) {\r\n		var payload = {\r\n			\'Action\': \'DescribeAlarms\',\r\n			\'Version\': \'2010-08-01\',\r\n			\'MaxRecords\': 100\r\n		},\r\n			result = [];\r\n\r\n		while (payload.NextToken !== \'\') {\r\n			var alarms = AWS.getField(AWS.request(\'alarms\', \'GET\', region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n			payload.NextToken = alarms.NextToken || \'\';\r\n			alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n\r\n			if (!Array.isArray(alarms_list))\r\n				alarms_list = [alarms_list];\r\n			alarms_list.forEach(function (alarm) {\r\n				var dimensions = alarm.Dimensions;\r\n\r\n				if (Array.isArray(alarm.Metrics)) {\r\n					alarm.Metrics.forEach(function (metric) {\r\n						if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n							&& typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n							&& Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n							dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n						}\r\n					});\r\n				}\r\n				for (var i in dimensions) {\r\n					if (dimensions[i].Name === \'BucketName\' && dimensions[i].Value === AWS.params.bucket_name) {\r\n						result.push(alarm);\r\n						break;\r\n					}\r\n				}\r\n			});\r\n		}\r\n\r\n		return result;\r\n	}\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n	var region = AWS.getBucketLocation();\r\n	return JSON.stringify(AWS.getAlarms(region));\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS S3 ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get alarms data.\r\nDescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','6da0ea7130e64a7fb8ae32ee02290cbf','0','2','0'),
('43714','21','','10531','Get resources','azure.get.resources','10m','0','0','0','4','','','','',NULL,NULL,'var Azure = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		Azure.params = params;\r\n	},\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n		var response, request = new HttpRequest();\r\n		if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n			request.setProxy(Azure.params.proxy);\r\n		}\r\n		if (Azure.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + Azure.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	nextlink: function (data) {\r\n		next_data = data;\r\n		while (\'nextLink\' in next_data) {\r\n			next_data = Azure.request(next_data.nextLink);\r\n			next_data.value.forEach(function (value) {\r\n				data.value.push(value);\r\n			});\r\n		}\r\n\r\n		return data;\r\n	}\r\n};\r\n\r\nvar result,\r\n	data = {},\r\n	types = [\r\n		{"method": "Microsoft.Compute/virtualMachines", "version": "2022-03-01"},\r\n		{"method": "Microsoft.DBforMySQL/flexibleServers", "version": "2021-05-01"},\r\n		{"method": "Microsoft.DBforMySQL/servers", "version": "2017-12-01"},\r\n		{"method": "Microsoft.DBforPostgreSQL/flexibleServers", "version": "2021-06-01"},\r\n		{"method": "Microsoft.DBforPostgreSQL/servers", "version": "2017-12-01"},\r\n		{"method": "Microsoft.Sql/servers", "version": "2022-05-01-preview"},\r\n		{"method": "Microsoft.DocumentDB/databaseAccounts", "version": "2022-11-15-preview"},\r\n		{"method": "Microsoft.Compute/virtualMachineScaleSets", "version": "2024-03-01"},\r\n		{"method": "Microsoft.Sql/managedInstances", "version": "2024-05-01-preview"},\r\n		{"method": "Microsoft.DataProtection/backupVaults", "version": "2025-01-01"},\r\n		{"method": "Microsoft.RecoveryServices/vaults", "version": "2025-02-28-preview"}\r\n	];\r\n	data[\'errors\'] = {},\r\n	data[\'resources\'] = {};\r\n	data.resources.value = [];\r\n\r\ntry {\r\n	Azure.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = Azure.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(Azure.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(Azure.params.app_id) + \'&client_secret=\' + encodeURIComponent(Azure.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			Azure.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			for (var i in types) {\r\n				if (types[i].method === "Microsoft.Sql/servers") {\r\n					mssql_servers = Azure.request(\'https://management.azure.com/subscriptions/\' + encodeURIComponent(Azure.params.subscription_id) + \'/providers/\' + types[i].method + \'?api-version=\' + types[i].version);\r\n\r\n					if (\'nextLink\' in mssql_servers) {\r\n						mssql_servers = Azure.nextlink(mssql_servers);\r\n					}\r\n\r\n					if (\'value\' in mssql_servers && mssql_servers.value.length > 0) {\r\n						for (j in mssql_servers.value) {\r\n							mssql_dbs = Azure.request(\'https://management.azure.com\' + mssql_servers.value[j].id + \'/databases?api-version=\' + types[i].version);\r\n\r\n							if (\'nextLink\' in mssql_dbs) {\r\n								mssql_dbs = Azure.nextlink(mssql_dbs);\r\n							}\r\n\r\n							mssql_dbs.value.forEach(function (value) {\r\n								raw_data.value.push(value);\r\n							});\r\n						}\r\n					}\r\n				}\r\n				else {\r\n					raw_data = Azure.request(\'https://management.azure.com/subscriptions/\' + encodeURIComponent(Azure.params.subscription_id) + \'/providers/\' + types[i].method + \'?api-version=\' + types[i].version);\r\n\r\n					if (\'nextLink\' in raw_data) {\r\n						raw_data = Azure.nextlink(raw_data);\r\n					}\r\n				}\r\n\r\n				raw_data.value.forEach(function (value) {\r\n					value.resourceGroup = value.id.split("/")[4];\r\n					data.resources.value.push(value);\r\n				});\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.resources = error.toString();\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','fb6abf3631b240b08357ea9ce9ba89a4','0','2','0'),
('43715','21','','10532','Get data','azure.vm.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var Azure = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		Azure.params = params;\r\n	},\r\n\r\n	login: function () {\r\n		var response, login = new HttpRequest();\r\n\r\n		if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n			login.setProxy(Azure.params.proxy);\r\n		}\r\n\r\n		login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n		response = login.post(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(Azure.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(Azure.params.app_id) + \'&client_secret=\' + encodeURIComponent(Azure.params.password)\r\n		);\r\n\r\n		if (login.getStatus() !== 200) {\r\n			throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse login session response.\';\r\n		}\r\n\r\n		if (!response.hasOwnProperty(\'access_token\')) {\r\n			throw \'Authentication response does not contain access token.\';\r\n		}\r\n\r\n		Azure.token = response[\'access_token\'];\r\n	},\r\n\r\n	request: function (url) {\r\n		var response, request = new HttpRequest();\r\n\r\n		if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n			request.setProxy(Azure.params.proxy);\r\n		}\r\n\r\n		if (!Azure.token) {\r\n			throw \'Request does not contain access token.\';\r\n		}\r\n\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Authorization: Bearer \' + Azure.token);\r\n		Zabbix.log(4, \'[ AzureVM ] request url: \' + url);\r\n\r\n		response = request.get(url);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var data = {},\r\n			metric_endpoints = {\r\n				\'main_and_premium_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'Percentage CPU,CPU Credits Remaining,CPU Credits Consumed,VmAvailabilityMetric,Available Memory Bytes,Network In Total,Network Out Total,Inbound Flows,Outbound Flows,Inbound Flows Maximum Creation Rate,Outbound Flows Maximum Creation Rate,Premium Data Disk Cache Read Hit,Premium Data Disk Cache Read Miss,Premium OS Disk Cache Read Hit,Premium OS Disk Cache Read Miss,VM Cached Bandwidth Consumed Percentage,VM Cached IOPS Consumed Percentage,VM Uncached Bandwidth Consumed Percentage,VM Uncached IOPS Consumed Percentage\') + \'&api-version=2024-02-01&timespan=PT1M\',\r\n				\'disks_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'Disk Read Bytes,Disk Write Bytes,Disk Read Operations/Sec,Disk Write Operations/Sec,Data Disk Latency,Data Disk Read Bytes/sec,Data Disk Write Bytes/sec,Data Disk Read Operations/Sec,Data Disk Write Operations/Sec,Data Disk Queue Depth,Data Disk Bandwidth Consumed Percentage,Data Disk IOPS Consumed Percentage,Data Disk Target Bandwidth,Data Disk Target IOPS,Data Disk Max Burst Bandwidth,Data Disk Max Burst IOPS,Data Disk Used Burst BPS Credits Percentage,Data Disk Used Burst IO Credits Percentage\') + \'&api-version=2024-02-01&timespan=PT1M\',\r\n				\'os_disk_metrics\': \'/providers/Microsoft.Insights/metrics?metricnames=\' + encodeURIComponent(\'OS Disk Latency,OS Disk Read Bytes/sec,OS Disk Write Bytes/sec,OS Disk Read Operations/Sec,OS Disk Write Operations/Sec,OS Disk Queue Depth,OS Disk Bandwidth Consumed Percentage,OS Disk IOPS Consumed Percentage,OS Disk Target Bandwidth,OS Disk Target IOPS,OS Disk Max Burst Bandwidth,OS Disk Max Burst IOPS,OS Disk Used Burst BPS Credits Percentage,OS Disk Used Burst IO Credits Percentage,Temp Disk Latency,Temp Disk Read Bytes/sec,Temp Disk Write Bytes/sec,Temp Disk Read Operations/Sec,Temp Disk Write Operations/Sec,Temp Disk Queue Depth\') + \'&api-version=2024-02-01&timespan=PT1M\'\r\n			};\r\n		data.metrics = {};\r\n\r\n		Object.keys(metric_endpoints).forEach(function (field) {\r\n			metrics = Azure.getField(Azure.request(\'https://management.azure.com\' + Azure.params.resource_id + metric_endpoints[field]), \'value\');\r\n			for (k in metrics) {\r\n				key = Azure.getField(metrics[k], \'name.value\').replace(/(\\s|\\/)+/g, \'\');\r\n				if (metrics[k].timeseries.length === 0) {\r\n					metrics[k].timeseries.push({ \'data\': [\'nodata\'] })\r\n				}\r\n				data.metrics[key] = Azure.getField(metrics[k], \'timeseries.0.data.0\');\r\n			}\r\n		});\r\n\r\n		data.health = Azure.getField(Azure.request(\'https://management.azure.com\' + Azure.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\'), \'value.0.properties\');\r\n\r\n		return data\r\n	}\r\n};\r\n\r\ntry {\r\n	Azure.setParams(JSON.parse(value));\r\n	Azure.login();\r\n	return JSON.stringify(Azure.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AzureVM ] ERROR: \' + error);\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','cff54514d795495da8bc1152e02631aa','0','2','0'),
('43770','20','get[1.3.6.1.2.1.25.1.1.0]','10207','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ea3106277c64428950b4a5b6c4aedd0','0','2','0'),
('43771','20','get[1.3.6.1.2.1.25.1.1.0]','10254','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5bf4c90019ae41688336f83bcbb481bb','0','2','0'),
('43772','20','get[1.3.6.1.2.1.25.1.1.0]','10208','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a988240abba8442da83fdbcb789d0138','0','2','0'),
('43773','20','get[1.3.6.1.2.1.25.1.1.0]','10210','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','78b57ca2787948cb8b92604f2a0fdccc','0','2','0'),
('43774','20','get[1.3.6.1.2.1.25.1.1.0]','10211','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09265047c03b4c7397d0b526d47e5a8e','0','2','0'),
('43775','20','get[1.3.6.1.2.1.25.1.1.0]','10390','Uptime (hardware)','system.hw.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64e59aaf9a4c4dd28e591c96075c183b','0','2','0'),
('43776','20','get[1.3.6.1.2.1.25.1.1.0]','10391','Uptime (hardware)','system.hw.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','24df0110b0d541118d6609c3f3922fe5','0','2','0'),
('43777','20','get[1.3.6.1.2.1.25.1.1.0]','10392','Uptime (hardware)','system.hw.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fd05b29760a4b10bf9b1125e8747cd1','0','2','0'),
('43778','20','get[1.3.6.1.2.1.25.1.1.0]','10393','Uptime (hardware)','system.hw.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b81c8fccadb94cd4bd7c798906d881ef','0','2','0'),
('43779','20','get[1.3.6.1.2.1.25.1.1.0]','10394','Uptime (hardware)','system.hw.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f00b81685e5d41f49561b62d710e247f','0','2','0'),
('43780','20','get[1.3.6.1.2.1.25.1.1.0]','10220','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','732ccfd809b44d7fa923c54e6577851d','0','2','0'),
('43781','20','get[1.3.6.1.2.1.25.1.1.0]','10218','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2173cd0262d4a60b5e134e00fed78e6','0','2','0'),
('43782','20','get[1.3.6.1.2.1.25.1.1.0]','10253','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','927d85dbb82f4b9a9edf4fb6194e7427','0','2','0'),
('43783','20','get[1.3.6.1.2.1.25.1.1.0]','10221','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5297253edb09463e8fdb6f1905e4f494','0','2','0'),
('43784','20','get[1.3.6.1.2.1.25.1.1.0]','10222','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','68631d04f4a94b83901bad116fe68198','0','2','0'),
('43785','20','get[1.3.6.1.2.1.25.1.1.0]','10223','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4706d07b0824ccb8f4ee7ccec10a388','0','2','0'),
('43786','20','get[1.3.6.1.2.1.25.1.1.0]','10224','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9e9db5d7fe5f4f4e8fc6581813699c1e','0','2','0'),
('43787','20','get[1.3.6.1.2.1.25.1.1.0]','10226','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76f954f8d7fd41109919ccbbb6151164','0','2','0'),
('43788','20','get[1.3.6.1.2.1.25.1.1.0]','10227','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b476c099f8f64aa89cd5f61fc8b47dfa','0','2','0'),
('43789','20','get[1.3.6.1.2.1.25.1.1.0]','10250','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a0659dadbef14fb1ac9be45d47388aa2','0','2','0'),
('43790','20','get[1.3.6.1.2.1.25.1.1.0]','10229','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','202c91a61d644285a0d74d88ae1b1a79','0','2','0'),
('43791','20','get[1.3.6.1.2.1.25.1.1.0]','10230','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f0fece305afd4ef9b7e9e6e9dd297e21','0','2','0'),
('43792','20','get[1.3.6.1.2.1.25.1.1.0]','10231','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','833dd7b3b4e94dc89b4e7098cec3fce2','0','2','0'),
('43793','20','get[1.3.6.1.2.1.25.1.1.0]','10251','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f867fb976e0b49a895129865e95096c2','0','2','0'),
('43794','20','get[1.3.6.1.2.1.25.1.1.0]','10449','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da2967c30d774681af4b7007bfbd01c5','0','2','0'),
('43795','20','get[1.3.6.1.2.1.25.1.1.0]','10450','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87ed039a5c7d4d5f8e6459ad8f5bfa0f','0','2','0'),
('43796','20','get[1.3.6.1.2.1.25.1.1.0]','10451','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','466b42bafcaf4a9a891a1d554cfd688c','0','2','0'),
('43797','20','get[1.3.6.1.2.1.25.1.1.0]','10452','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6625f426dcc949559a35ddfb3aed43d3','0','2','0'),
('43798','20','get[1.3.6.1.2.1.25.1.1.0]','10453','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','094dba661554421087ef6454e6e899f6','0','2','0'),
('43799','20','get[1.3.6.1.2.1.25.1.1.0]','10454','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7f1bc41c42fc410881b45972129ccf15','0','2','0'),
('43800','20','get[1.3.6.1.2.1.25.1.1.0]','10455','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8aeeb3ddfe6405ba5c02cbcf50681f4','0','2','0'),
('43801','20','get[1.3.6.1.2.1.25.1.1.0]','10456','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ba9b468dd2143a4a816c4bec1cee079','0','2','0'),
('43802','20','get[1.3.6.1.2.1.25.1.1.0]','10457','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','af308a3e3ff14620a683f09d935887a7','0','2','0'),
('43803','20','get[1.3.6.1.2.1.25.1.1.0]','10458','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c86226f9db8e4eda9216c0e5f96bf826','0','2','0'),
('43804','20','get[1.3.6.1.2.1.25.1.1.0]','10459','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b849a56812d4ceda43c4c3c96c09911','0','2','0'),
('43805','20','get[1.3.6.1.2.1.25.1.1.0]','10460','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b4d7b0ae4b874f41afc1d2bb18444f59','0','2','0'),
('43806','20','get[1.3.6.1.2.1.25.1.1.0]','10461','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb05d9fcd5f04045b38b2653aa3f054f','0','2','0'),
('43807','20','get[1.3.6.1.2.1.25.1.1.0]','10462','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d2825ec79526468bae315bcf4271c3bf','0','2','0'),
('43808','20','get[1.3.6.1.2.1.25.1.1.0]','10463','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','730caedb1aba4e2bb914a9ac5e45bee0','0','2','0'),
('43809','20','get[1.3.6.1.2.1.25.1.1.0]','10464','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41c7402ad2354e5e8e5395b3e86d291c','0','2','0'),
('43810','20','get[1.3.6.1.2.1.25.1.1.0]','10465','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d226673194c84ee7968632b06060d905','0','2','0'),
('43811','20','get[1.3.6.1.2.1.25.1.1.0]','10466','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76f9415c139b4c78bb5e77e094ced5e4','0','2','0'),
('43812','20','get[1.3.6.1.2.1.25.1.1.0]','10467','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','43da9de2e9b949ea9844ac7e8991aa51','0','2','0'),
('43813','20','get[1.3.6.1.2.1.25.1.1.0]','10468','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6e5f3a092d7f44f98f9f72ec7b65a412','0','2','0'),
('43814','20','get[1.3.6.1.2.1.25.1.1.0]','10469','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','59bd59afea7c430ab9b87036d6f68d80','0','2','0'),
('43815','20','get[1.3.6.1.2.1.25.1.1.0]','10470','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c36c9dba589944d4bc4253019663831e','0','2','0'),
('43816','20','get[1.3.6.1.2.1.25.1.1.0]','10471','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a3c0d8062f9470faeb350b3f025dc93','0','2','0'),
('43817','20','get[1.3.6.1.2.1.25.1.1.0]','10472','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bccedf8a6d434ee19ef03ae4b15db6e6','0','2','0'),
('43818','20','get[1.3.6.1.2.1.25.1.1.0]','10473','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7052c7bbeffe4dbbbbc08f70c8d2679f','0','2','0'),
('43819','20','get[1.3.6.1.2.1.25.1.1.0]','10474','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','093f8cdde4514b3cb81233a59eec8277','0','2','0'),
('43820','20','get[1.3.6.1.2.1.25.1.1.0]','10475','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2521a17fcdb048c3ac5b3e425eb48ad6','0','2','0'),
('43821','20','get[1.3.6.1.2.1.25.1.1.0]','10476','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b2fa99d8602342358690da734fc553a5','0','2','0'),
('43822','20','get[1.3.6.1.2.1.25.1.1.0]','10477','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b93e987a3e442e39e2f822a0c271678','0','2','0'),
('43823','20','get[1.3.6.1.2.1.25.1.1.0]','10478','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','90e82de3b7b043269947a13acaf0eae3','0','2','0'),
('43824','20','get[1.3.6.1.2.1.25.1.1.0]','10479','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96f11f9c23434a68b82d075f85af3c31','0','2','0'),
('43825','20','get[1.3.6.1.2.1.25.1.1.0]','10480','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1634bc47137b4de9942b33ca99eb4541','0','2','0'),
('43826','20','get[1.3.6.1.2.1.25.1.1.0]','10481','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e589fb99827e4e8197f6ecb8872b4f10','0','2','0'),
('43827','20','get[1.3.6.1.2.1.25.1.1.0]','10482','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','218903c6b9c04999ab58583dfc22d42d','0','2','0'),
('43828','20','get[1.3.6.1.2.1.25.1.1.0]','10483','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','424081b2ac3f453f84c7c0cf0d6270e5','0','2','0'),
('43829','20','get[1.3.6.1.2.1.25.1.1.0]','10484','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31874dc23f0046f98c978300e74ced72','0','2','0'),
('43830','20','get[1.3.6.1.2.1.25.1.1.0]','10485','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d88eae8b609e42d68219e2b6d68422d1','0','2','0'),
('43831','20','get[1.3.6.1.2.1.25.1.1.0]','10486','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c8f1e09b30a84047ac6a98bcc70b15a7','0','2','0'),
('43832','20','get[1.3.6.1.2.1.25.1.1.0]','10487','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96372468281d4b0e866a3aa4db1839be','0','2','0'),
('43833','20','get[1.3.6.1.2.1.25.1.1.0]','10488','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','68f23663d1da4e12b259bc6f2689de9b','0','2','0'),
('43834','20','get[1.3.6.1.2.1.25.1.1.0]','10489','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','806003915aa24c368a822a424f123d45','0','2','0'),
('43835','20','get[1.3.6.1.2.1.25.1.1.0]','10490','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4cb64b20e3c84697b744db08b605c5b0','0','2','0'),
('43836','20','get[1.3.6.1.2.1.25.1.1.0]','10491','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','012230315f3548d9948d1ad7ddc8d005','0','2','0'),
('43837','20','get[1.3.6.1.2.1.25.1.1.0]','10492','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','074b83202e714d7d9bf63bf331f4f284','0','2','0'),
('43838','20','get[1.3.6.1.2.1.25.1.1.0]','10493','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','437fe5b12b2d478fb69c1047b6421d96','0','2','0'),
('43839','20','get[1.3.6.1.2.1.25.1.1.0]','10494','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5f8ed93998a4b5799d1f6b2e1984006','0','2','0'),
('43840','20','get[1.3.6.1.2.1.25.1.1.0]','10495','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b2fb7a55ee1b4030b4f621e73a730749','0','2','0'),
('43841','20','get[1.3.6.1.2.1.25.1.1.0]','10496','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','971d14b46bad442499d7aea95c067dc7','0','2','0'),
('43842','20','get[1.3.6.1.2.1.25.1.1.0]','10497','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42eee310a68844deb422d5ff3a715efa','0','2','0'),
('43843','20','get[1.3.6.1.2.1.25.1.1.0]','10498','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','691b2eadbe314570841aafbe2ad2afb1','0','2','0'),
('43844','20','get[1.3.6.1.2.1.25.1.1.0]','10499','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','32d6b1147607490287da049b08140f0b','0','2','0'),
('43845','20','get[1.3.6.1.2.1.25.1.1.0]','10500','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c30a010e7f134bc88fc47708d02a0a31','0','2','0'),
('43846','20','get[1.3.6.1.2.1.25.1.1.0]','10501','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f0ff722acc544222bac0a51456515570','0','2','0'),
('43847','20','get[1.3.6.1.2.1.25.1.1.0]','10502','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','850f16c89c1a44c585852784dc32bb1b','0','2','0'),
('43848','20','get[1.3.6.1.2.1.25.1.1.0]','10233','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94f4af679dba4d3e9047ebcf8c1bc419','0','2','0'),
('43849','20','get[1.3.6.1.2.1.25.1.1.0]','10371','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','712a9b442bec4e89acf4ee5d5bf26fb8','0','2','0'),
('43850','20','get[1.3.6.1.2.1.25.1.1.0]','10372','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c9f864ac33b4c2d992459c6519d045a','0','2','0'),
('43851','20','get[1.3.6.1.2.1.25.1.1.0]','10373','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76a660b88bb74e90971bdaec703d3c17','0','2','0'),
('43852','20','get[1.3.6.1.2.1.25.1.1.0]','10374','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1e50f16fab54a8e97372b52cebae18d','0','2','0'),
('43853','20','get[1.3.6.1.2.1.25.1.1.0]','10375','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d61bd2d5717740518867bfbf734914c9','0','2','0'),
('43854','20','get[1.3.6.1.2.1.25.1.1.0]','10376','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5e2aebe0ce2044588636be62cde6b6a3','0','2','0'),
('43855','20','get[1.3.6.1.2.1.25.1.1.0]','10377','Status: Uptime (hardware)','status.hw.uptime','1m','31d','365d','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6903297e21e14aa8b5eed4eb0f7e1e01','0','2','0'),
('43856','20','get[1.3.6.1.2.1.25.1.1.0]','10234','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d0e66c64c0b2449a9c5ffbbdaf176963','0','2','0'),
('43857','20','get[1.3.6.1.2.1.25.1.1.0]','10235','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94671639676f476f8b7c37a884d32ed0','0','2','0'),
('43858','20','get[1.3.6.1.2.1.25.1.1.0]','10236','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','964e73aa4e534b50bd1d93e137ca41f1','0','2','0'),
('43859','20','get[1.3.6.1.2.1.25.1.1.0]','10237','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d47c914219e4da0a7d67631d8171244','0','2','0'),
('43860','20','get[1.3.6.1.2.1.25.1.1.0]','10420','Uptime (hardware)','zyxel.aam1212.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5197238bef51468c80e6a4180babee5b','0','2','0'),
('43861','20','get[1.3.6.1.2.1.25.1.1.0]','10421','Uptime (hardware)','zyxel.3500_8pd.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ef45d91672ea43c3aa24cbc21f37d391','0','2','0'),
('43862','20','get[1.3.6.1.2.1.25.1.1.0]','10422','Uptime (hardware)','zyxel.4012f.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1f979fc1f31c4766949cfc343d3c231a','0','2','0'),
('43863','20','get[1.3.6.1.2.1.25.1.1.0]','10423','Uptime (hardware)','zyxel.ies500x.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5fa56229a8854d62bb6c516da873d63b','0','2','0'),
('43864','20','get[1.3.6.1.2.1.25.1.1.0]','10424','Uptime (hardware)','zyxel.ies6000.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','006a65489cfc4231acad12cdb501a55c','0','2','0'),
('43865','20','get[1.3.6.1.2.1.25.1.1.0]','10425','Uptime (hardware)','zyxel.ies1248.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b55d1aaee3b441bab6edaaf738065e4','0','2','0'),
('43866','20','get[1.3.6.1.2.1.25.1.1.0]','10426','Uptime (hardware)','zyxel.3528.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9293989c2bd14bc4a12cdd40a9c7f229','0','2','0'),
('43867','20','get[1.3.6.1.2.1.25.1.1.0]','10427','Uptime (hardware)','zyxel.3500_10.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d0d33209ea1249e588f2e81807ae6403','0','2','0'),
('43868','20','get[1.3.6.1.2.1.25.1.1.0]','10428','Uptime (hardware)','zyxel.3500_24.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb480642cad3440a8637d871add07b8f','0','2','0'),
('43869','20','get[1.3.6.1.2.1.25.1.1.0]','10429','Uptime (hardware)','zyxel.3712.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','801ba0a2d20f440d822eb042146b8d16','0','2','0'),
('43870','20','get[1.3.6.1.2.1.25.1.1.0]','10430','Uptime (hardware)','zyxel.3712f.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29bc66a7a2c949549fc2e4c6fa841ab0','0','2','0'),
('43871','20','get[1.3.6.1.2.1.25.1.1.0]','10431','Uptime (hardware)','zyxel.3500_24s.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','feff31efc5b04b14bf19ec256a6660fb','0','2','0'),
('43872','20','get[1.3.6.1.2.1.25.1.1.0]','10432','Uptime (hardware)','zyxel.3520_28.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f050b29d1eb43e4a150383c9edd2467','0','2','0'),
('43873','20','get[1.3.6.1.2.1.25.1.1.0]','10433','Uptime (hardware)','zyxel.4728f.hw.uptime','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17bdc70663744ede94d7b94602eb881c','0','2','0'),
('43874','20','get[1.3.6.1.2.1.25.1.1.0]','10248','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1a9af129dbb4fed8e67efcca383aeae','0','2','0'),
('43875','20','get[1.3.6.1.2.1.25.1.1.0]','10249','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','422d9e4a985347959d5ef07278a6a12c','0','2','0'),
('43876','20','get[1.3.6.1.2.1.25.1.1.0]','10400','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b73fb48b4da84a53b7a4b7e81d6037aa','0','2','0'),
('43877','20','get[1.3.6.1.2.1.25.1.1.0]','10401','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4dbad4f0de7f47fd996fd4b8de048d46','0','2','0'),
('43878','20','get[1.3.6.1.2.1.25.1.1.0]','10402','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed6ad4e7036548c09b9a61d875aca9e1','0','2','0'),
('43879','20','get[1.3.6.1.2.1.25.1.1.0]','10403','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','60bef30ff568425eb5e4c5e6dc861e79','0','2','0'),
('43880','20','get[1.3.6.1.2.1.25.1.1.0]','10404','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4def354a520e42d78d67b2e8b1cd8eb4','0','2','0'),
('43881','20','get[1.3.6.1.2.1.25.1.1.0]','10412','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d1f4a038ee447639a07f3549ad68840','0','2','0'),
('43882','20','get[1.3.6.1.2.1.25.1.1.0]','10406','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4e8b6d6a5aa24159b048d1cf28e9418a','0','2','0'),
('43883','20','get[1.3.6.1.2.1.25.1.1.0]','10395','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3d5eea37f934efdac4885bcadc73b9b','0','2','0'),
('43884','20','get[1.3.6.1.2.1.25.1.1.0]','10407','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5a92d45430b4bd6bdef42870141d141','0','2','0'),
('43885','20','get[1.3.6.1.2.1.25.1.1.0]','10408','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3021bc8a0324d4d9683f676131bf136','0','2','0'),
('43886','20','get[1.3.6.1.2.1.25.1.1.0]','10409','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c7522be948bd4f97a47d59cf1e281c56','0','2','0'),
('43887','20','get[1.3.6.1.2.1.25.1.1.0]','10385','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f54aca2b926e4d4d980f980acb0aefac','0','2','0'),
('43888','20','get[1.3.6.1.2.1.25.1.1.0]','10378','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','76483f37faf8485b922640a6ef8bb672','0','2','0'),
('43889','20','get[1.3.6.1.2.1.25.1.1.0]','10434','Uptime (hardware)','cisco.ucs.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized.\r\nNote that this is different from sysUpTime in the SNMPv2-MIB\r\n[RFC1907] because sysUpTime is the uptime of the\r\nnetwork management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5af56ed99d09489aafc2d08d4bd4903a','0','2','0'),
('43890','20','get[1.3.6.1.2.1.25.1.1.0]','10304','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a6d61b21f9f044a6912759e02787cb3f','0','2','0'),
('43896','20','get[1.3.6.1.2.1.25.1.1.0]','10443','Uptime (hardware)','hp.server.hw.uptime[hrSystemUptime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22f0b65d03d44ae0be7133eb19ecc920','0','2','0'),
('43897','20','get[1.3.6.1.2.1.25.1.1.0]','10444','Uptime (hardware)','hp.server.hw.uptime[hrSystemUptime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5cd1e01b10f3482e9ec5907bd2e55c26','0','2','0'),
('43898','20','get[1.3.6.1.2.1.25.1.1.0]','10445','Uptime (hardware)','hp.server.hw.uptime[hrSystemUptime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8026a919077f4373adf774a18beb95eb','0','2','0'),
('43899','20','get[1.3.6.1.2.1.25.1.1.0]','10446','Uptime (hardware)','hp.server.hw.uptime[hrSystemUptime]','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','437a251079a44869ba9b11b2184d85e7','0','2','0'),
('43900','20','get[1.3.6.1.2.1.25.1.1.0]','10256','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02e21fa19e814d529ae24f89e3bbf947','0','2','0'),
('43901','21','','10534','Get data','hpe.synergy.get.data','1m','0','0','0','4','','','','',NULL,NULL,'var Synergy = {\r\n	params: {},\r\n	session_id: null,\r\n	api_version: null,\r\n\r\n	setParams: function (params) {\r\n		[\'username\', \'password\', \'base_url\', \'login_domain\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		Synergy.params = params;\r\n		if (typeof Synergy.params.base_url === \'string\' && !Synergy.params.base_url.endsWith(\'/\')) {\r\n			Synergy.params.base_url += \'/\';\r\n		}\r\n	},\r\n\r\n	checkVersion: function () {\r\n		if (Synergy.api_version !== null) {\r\n			return;\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		request.addHeader(\'Content-Type: application/json\');\r\n\r\n		response = request.get(Synergy.params.base_url + \'rest/version\');\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Get version request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		if (response !== null) {\r\n			try {\r\n				version_data = JSON.parse(response);\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse get version response received from device API.\';\r\n			}\r\n		}\r\n		else {\r\n			throw \'No data received by get version request.\';\r\n		}\r\n\r\n		if (\'currentVersion\' in version_data && \'minimumVersion\' in version_data) {\r\n			if (version_data[\'minimumVersion\'] <= 1200 && version_data[\'currentVersion\'] >= 1200) {\r\n				Synergy.api_version = 1200;\r\n			} else {\r\n				throw \'API version is not supported.\';\r\n			}\r\n		} else {\r\n			throw \'Get version response does not contain version.\';\r\n		}\r\n	},\r\n\r\n	login: function () {\r\n		if (Synergy.session_id !== null || Synergy.api_version === null) {\r\n			return;\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'X-API-Version: \' + Synergy.api_version);\r\n\r\n		response = request.post(Synergy.params.base_url + \'rest/login-sessions\', JSON.stringify({\r\n			\'userName\': Synergy.params.username,\r\n			\'password\': Synergy.params.password,\r\n			\'authLoginDomain\': Synergy.params.login_domain,\r\n			\'loginMsgAck\': \'true\'\r\n		}));\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Auth request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		if (response !== null) {\r\n			try {\r\n				auth_data = JSON.parse(response);\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse auth response received from device API.\';\r\n			}\r\n		}\r\n		else {\r\n			throw \'No data received by auth request.\';\r\n		}\r\n\r\n		if (\'sessionID\' in auth_data) {\r\n			Synergy.session_id = auth_data[\'sessionID\'];\r\n		} else {\r\n			throw \'Auth response does not contain session ID.\';\r\n		}\r\n	},\r\n\r\n	logout: function () {\r\n		if (Synergy.session_id !== null && Synergy.api_version !== null) {\r\n			var response, request = new HttpRequest();\r\n			request.addHeader(\'Content-Type: application/json\');\r\n			request.addHeader(\'X-API-Version: \' + Synergy.api_version);\r\n			request.addHeader(\'Auth: \' + Synergy.session_id);\r\n			response = request.delete(Synergy.params.base_url + \'rest/login-sessions\');\r\n		}\r\n	},\r\n\r\n	requestData: function (method) {\r\n		if (Synergy.session_id === null || Synergy.api_version === null) {\r\n			return;\r\n		}\r\n\r\n		request = new HttpRequest();\r\n		request.addHeader(\'Auth: \' + Synergy.session_id);\r\n		request.addHeader(\'X-API-Version: \' + Synergy.api_version);\r\n\r\n		raw_data = request.get(Synergy.params.base_url + \'rest/\' + method);\r\n\r\n		if (request.getStatus() < 200 || request.getStatus() >= 300) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + raw_data;\r\n		}\r\n\r\n		if (raw_data !== null) {\r\n			try {\r\n				return JSON.parse(raw_data);\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from device API.\';\r\n			}\r\n		}\r\n		else {\r\n			throw \'No data received by \' + method + \' request.\';\r\n		}\r\n	}\r\n};\r\n\r\nvar methods = [\'datacenters\', \'enclosures\', \'ethernet-networks\', \'fabrics\', \'fc-networks\', \'hypervisor-managers\', \'interconnects\', \'logical-enclosures\', \'racks\', \'server-hardware\', \'storage-pools\', \'storage-systems\', \'storage-volumes\', \'uplink-sets\'],\r\n	data = {};\r\n\r\ndata[\'errors\'] = {};\r\n\r\ntry {\r\n	Synergy.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		Synergy.checkVersion();\r\n	}\r\n	catch (error) {\r\n		data.errors.version = error.toString();\r\n	}\r\n\r\n	try {\r\n		Synergy.login();\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors) && !(\'version\' in data.errors)) {\r\n		for (var i in methods) {\r\n			try {\r\n				if (methods[i] === \'enclosures\') {\r\n					var bays = [\'applianceBays\', \'crossBars\', \'deviceBays\', \'fanBays\', \'partitions\', \'powerSupplyBays\', \'managerBays\'];\r\n\r\n					enclosures = Synergy.requestData(methods[i]);\r\n\r\n					enclosures.members.forEach(function (enclosure) {\r\n						enclosure_name = enclosure.name;\r\n\r\n						for (var j in bays) {\r\n							bay = enclosure[bays[j]];\r\n\r\n							bay.forEach(function (b) {\r\n								b.enclosureName = enclosure_name;\r\n								enclosures.members[bays[j[b]]] = b;\r\n							});\r\n						}\r\n					});\r\n\r\n					data[methods[i]] = enclosures;\r\n				}\r\n				else {\r\n					data[methods[i]] = Synergy.requestData(methods[i]);\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[methods[i]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\ntry {\r\n	Synergy.logout();\r\n}\r\ncatch (error) {\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The JSON with the result from requests to API.','0','30d','0','',NULL,'{$HPE.SYNERGY.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','2f9816e8a60149f4aafdf7ffb0632224','0','2','0'),
('43902','3','','10534','Service ping','net.tcp.service["{$HPE.SYNERGY.API.SCHEME}","{$HPE.SYNERGY.API.HOST}","{$HPE.SYNERGY.API.PORT}"]','1m','31d','365d','0','3','','','','',NULL,'1042','','','0','','','','','0',NULL,'Checks if the service is running and accepting the TCP connections.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','86da94cecaa1424e9a22479d556d7b12','0','2','0'),
('44050','20','get[1.3.6.1.2.1.25.1.1.0]','10258','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','81e5ed7d945d40f780eb9bd872ea1832','0','2','0'),
('44051','20','get[1.3.6.1.2.1.25.1.1.0]','10259','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b0320157a0144a0b2f1d7df7cbbe08a','0','2','0'),
('44055','5','','10047','Zabbix proxies stats','zabbix[proxy,discovery]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The master item of Zabbix proxies\' statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fb9d6a8d3f84c679e7af4b9ef437239','0','2','0'),
('44161','21','','10539','Get data','azure.db.mysql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'memory_percent\',\r\n	\'network_bytes_egress\',\r\n	\'network_bytes_ingress\',\r\n	\'active_connections\',\r\n	\'total_connections\',\r\n	\'aborted_connections\',\r\n	\'Queries\',\r\n	\'io_consumption_percent\',\r\n	\'storage_percent\',\r\n	\'storage_used\',\r\n	\'storage_limit\',\r\n	\'backup_storage_used\',\r\n	\'replication_lag\',\r\n	\'cpu_credits_remaining\',\r\n	\'cpu_credits_consumed\'\r\n],\r\n	prepared_metrics = [],\r\n	data = {};\r\n	data[\'errors\'] = {};\r\n	data[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','de712334db1440309fa68f9252d4f9bc','0','2','0'),
('44162','21','','10540','Get data','azure.db.mysql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'memory_percent\',\r\n	\'io_consumption_percent\',\r\n	\'storage_percent\',\r\n	\'storage_used\',\r\n	\'storage_limit\',\r\n	\'serverlog_storage_percent\',\r\n	\'serverlog_storage_usage\',\r\n	\'serverlog_storage_limit\',\r\n	\'active_connections\',\r\n	\'connections_failed\',\r\n	\'seconds_behind_master\',\r\n	\'backup_storage_used\',\r\n	\'network_bytes_egress\',\r\n	\'network_bytes_ingress\'\r\n],\r\n	prepared_metrics = [],\r\n	data = {};\r\ndata[\'errors\'] = {};\r\ndata[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','cd62d92ef0384ea9acf0cae71c88ebc6','0','2','0'),
('44248','21','','10543','Get data','azure.db.pgsql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'memory_percent\',\r\n	\'iops\',\r\n	\'disk_queue_depth\',\r\n	\'read_throughput\',\r\n	\'write_throughput\',\r\n	\'read_iops\',\r\n	\'write_iops\',\r\n	\'network_bytes_egress\',\r\n	\'network_bytes_ingress\',\r\n	\'active_connections\',\r\n	\'connections_failed\',\r\n	\'connections_succeeded\',\r\n	\'storage_percent\',\r\n	\'storage_used\',\r\n	\'storage_free\',\r\n	\'txlogs_storage_used\',\r\n	\'backup_storage_used\',\r\n	\'maximum_used_transactionIDs\',\r\n	\'cpu_credits_remaining\',\r\n	\'cpu_credits_consumed\'\r\n],\r\n	prepared_metrics = [],\r\n	data = {};\r\n	data[\'errors\'] = {};\r\n	data[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 600000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							if (metrics_data.value[k].name.value === \'disk_queue_depth\' ||\r\n								metrics_data.value[k].name.value === \'read_throughput\' ||\r\n								metrics_data.value[k].name.value === \'write_throughput\' ||\r\n								metrics_data.value[k].name.value === \'read_iops\' ||\r\n								metrics_data.value[k].name.value === \'write_iops\') {\r\n									data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 6];\r\n							} else {\r\n								data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n							}\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','1792c0566e8a438dad5e299d8f5b9094','0','2','0'),
('44249','21','','10544','Get data','azure.db.pgsql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'memory_percent\',\r\n	\'io_consumption_percent\',\r\n	\'storage_percent\',\r\n	\'storage_used\',\r\n	\'storage_limit\',\r\n	\'serverlog_storage_percent\',\r\n	\'serverlog_storage_usage\',\r\n	\'serverlog_storage_limit\',\r\n	\'active_connections\',\r\n	\'connections_failed\',\r\n	\'backup_storage_used\',\r\n	\'network_bytes_egress\',\r\n	\'network_bytes_ingress\',\r\n	\'pg_replica_log_delay_in_seconds\',\r\n	\'pg_replica_log_delay_in_bytes\'\r\n],\r\n	prepared_metrics = [],\r\n	data = {};\r\n	data[\'errors\'] = {};\r\n	data[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','e47d863822e64e6292bfa3e684bc2839','0','2','0'),
('44294','21','','10546','Get data','meraki.get.data','1h','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar r_match = \'{$MERAKI.ORGANIZATION.NAME.MATCHES}\';\r\nvar r_not_match = \'{$MERAKI.ORGANIZATION.NAME.NOT_MATCHES}\';\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.2 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	organizations = [],\r\n	devices = [];\r\n\r\nfunction getHttpData(url) {\r\n	var startTime = new Date().getTime();\r\n	var maxWait = 1 * 60 * 60 * 1000;\r\n	var waitFor = 1000;\r\n	\r\n	while (true) {\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n	\r\n		var status = request.getStatus();\r\n	\r\n		if (response !== null) {\r\n			try {\r\n				response = JSON.parse(response);\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n			}\r\n		}\r\n	\r\n		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&\r\n			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {\r\n			var now = new Date().getTime();\r\n			var headers = request.getHeaders(false);\r\n\r\n			if (\'Retry-After\' in headers) {\r\n				var retryAfter = headers[\'Retry-After\'];\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. Retrying after \' + retryAfter + \' seconds.\');				 \r\n				waitFor = parseInt(retryAfter) * 1000;\r\n			}\r\n			else {\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.\');\r\n			}\r\n			if (now - startTime + waitFor > maxWait) {\r\n				throw \'Failed to receive data: API rate limit exceeded and retry timeout reached.\';\r\n			}\r\n			Zabbix.sleep(waitFor);\r\n			continue;\r\n		}\r\n	\r\n		if (status !== 200) {\r\n			if (response.errors) {\r\n				throw response.errors.join(\', \');\r\n			}\r\n			else {\r\n				throw \'Failed to receive data: invalid response status code.\';\r\n			}\r\n		}\r\n	\r\n		if (typeof (response) !== \'object\' || response === null) {\r\n			throw \'Cannot process response data: received data is not an object.\';\r\n		}\r\n	\r\n		return response;\r\n	}\r\n};\r\n\r\ntry {\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	organizations = getHttpData(params.url + \'organizations\');\r\n\r\n	organizations = organizations.filter(function (x) {\r\n		return new RegExp(r_match).test(x.name) & !new RegExp(r_not_match).test(x.name);\r\n	});\r\n\r\n	if (Array.isArray(organizations) && organizations.length > 0) {\r\n		for (i in organizations) {\r\n			if (\'id\' in organizations[i] && \'name\' in organizations[i]) {\r\n				try {\r\n					organization_devices = getHttpData(params.url + \'organizations/\' + encodeURIComponent(organizations[i].id) + \'/devices/availabilities\');\r\n\r\n					if (Array.isArray(organization_devices) && organization_devices.length > 0) {\r\n						for (j in organization_devices) {\r\n							organization_devices[j].organizationId = organizations[i].id;\r\n							organization_devices[j].organizationName = organizations[i].name;\r\n							if (!organization_devices[j].name) {\r\n								organization_devices[j].name = organization_devices[j].serial;\r\n							}\r\n							devices.push(organization_devices[j]);\r\n						}\r\n					}\r\n				} catch (error) {\r\n					error_msg += organizations[i].name + " organization\'s devices retrieval error: " + error + \'\\n\';\r\n				}\r\n			} else {\r\n				error_msg += \'There is no ID or organization name in the API response.\';\r\n			}\r\n		}\r\n	}\r\n} catch (error) {\r\n	error_msg += \'Organizations data retrieval error: \' + error;\r\n}\r\n\r\nreturn JSON.stringify({\r\n	organizations: organizations,\r\n	devices: devices,\r\n	error: error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering all the organizations and devices from Meraki API.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','d1a5f3c79a604bae98c314d2aed64ff4','0','2','0'),
('44295','21','','10547','Get device data','meraki.get.device','{$MERAKI.UPLINK.LL.TIMESPAN}','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.2 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	device = [],\r\n	uplinksLL = [],\r\n	timespan;\r\n\r\nfunction isFloat(n) {\r\n	n = parseFloat(n);\r\n	return Number(n) === n && n % 1 !== 0;\r\n};\r\n\r\nfunction checkNumber(string) {\r\n	if (typeof string !== "string" || isNaN(string) || isFloat(string)) {\r\n		throw \'Incorrect "timespan" parameter given: \' + string + \' Must be an unsigned number\';\r\n	}\r\n	return string;\r\n};\r\n\r\nfunction getHttpData(url) {\r\n	var startTime = new Date().getTime();\r\n	var maxWait = (parseInt(timespan, 10) - 10) * 1000;\r\n	var waitFor = 1000;\r\n\r\n	while (true) {\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		var status = request.getStatus();\r\n\r\n		if (response !== null) {\r\n			try {\r\n				response = JSON.parse(response);\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&\r\n			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {\r\n			var now = new Date().getTime();\r\n			var headers = request.getHeaders(false);\r\n\r\n			if (\'Retry-After\' in headers) {\r\n				var retryAfter = headers[\'Retry-After\'];\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. Retrying after \' + retryAfter + \' seconds.\');				 \r\n				waitFor = parseInt(retryAfter) * 1000;\r\n			}\r\n			else {\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.\');\r\n			}\r\n			if (now - startTime + waitFor > maxWait) {\r\n				throw \'Failed to receive data: API rate limit exceeded and retry timeout reached.\';\r\n			}\r\n			Zabbix.sleep(waitFor);\r\n			continue;\r\n		}\r\n\r\n		if (status !== 200) {\r\n			if (response.errors) {\r\n				throw response.errors.join(\', \');\r\n			}\r\n			else {\r\n				throw \'Failed to receive data: invalid response status code.\';\r\n			}\r\n		}\r\n\r\n		if (typeof (response) !== \'object\' || response === null) {\r\n			throw \'Cannot process response data: received data is not an object.\';\r\n		}\r\n\r\n		return response;\r\n	}\r\n};\r\n\r\ntry {\r\n\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	timespan = checkNumber(\'{$MERAKI.UPLINK.LL.TIMESPAN}\');\r\n\r\n	if (timespan > 86400 || timespan < 1) {\r\n		throw \'Incorrect "timespan" parameter given: \' + timespan + \' Must be between 1 and 86400 seconds.\';\r\n	}\r\n\r\n	uplinksLL = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/devices/uplinksLossAndLatency?timespan=\' + timespan);\r\n\r\n	if (uplinksLL.length > 0) {\r\n		uplinksLL = uplinksLL.filter(function (device) {\r\n			return device.serial == params.serial;\r\n		});\r\n	}\r\n\r\n} catch (error) {\r\n	error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n	\'uplinksLL\': uplinksLL,\r\n	\'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering device data from Meraki API.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','e4963b68cdde453f91767ff9e3a31d16','0','2','0'),
('44296','21','','10548','Get list of adaptive policy aggregate statistics','meraki.get.adaptive.policy','20m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.2 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	result = [];\r\n\r\nfunction getHttpData(url) {\r\n	var startTime = new Date().getTime();\r\n	var maxWait = 10 * 60 * 1000;\r\n	\r\n	while (true) {\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n	\r\n		var status = request.getStatus();\r\n	\r\n		if (response !== null) {\r\n			try {\r\n				response = JSON.parse(response);\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n			}\r\n		}\r\n	\r\n		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&\r\n			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {\r\n			var now = new Date().getTime();\r\n			if (now - startTime + 1000 > maxWait) {\r\n				throw \'Failed to receive data: API rate limit exceeded and retry timeout reached.\';\r\n			}\r\n			Zabbix.sleep(1000);\r\n			continue;\r\n		}\r\n	\r\n		if (status !== 200) {\r\n			if (response.errors) {\r\n				throw response.errors.join(\', \');\r\n			} else {\r\n				throw \'Failed to receive data: invalid response status code.\';\r\n			}\r\n		}\r\n	\r\n		if (typeof (response) !== \'object\' || response === null) {\r\n			throw \'Cannot process response data: received data is not an object.\';\r\n		}\r\n	\r\n		return response;\r\n	}\r\n};\r\n\r\ntry {\r\n\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	result = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/adaptivePolicy/overview\');\r\n\r\n} catch (error) {\r\n	error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n	\'data\': result,\r\n	\'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering adaptive policy aggregate statistics for the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','25f8f61ddf964f39b39cc38b23b017b9','0','2','0'),
('44297','21','','10548','Get list of configuration changes','meraki.get.configuration.changes','{$MERAKI.CONFIG.CHANGE.TIMESPAN}','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.2 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	result = [],\r\n	timespan;\r\n\r\nfunction isFloat(n) {\r\n	n = parseFloat(n);\r\n	return Number(n) === n && n % 1 !== 0;\r\n};\r\n\r\nfunction checkNumber(string) {\r\n	if (typeof string !== "string" || isNaN(string) || isFloat(string)) {\r\n		throw \'Incorrect "timespan" parameter given: \' + string + \' Must be an unsigned number\';\r\n	}\r\n	return string;\r\n};\r\n\r\nfunction getHttpData(url) {\r\n	var startTime = new Date().getTime();\r\n	var maxWait = parseInt(timespan, 10) * 1000;\r\n	var waitFor = 1000;\r\n\r\n	while (true) {\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		var status = request.getStatus();\r\n\r\n		if (response !== null) {\r\n			try {\r\n				response = JSON.parse(response);\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&\r\n			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {\r\n			var now = new Date().getTime();\r\n			var headers = request.getHeaders(false);\r\n\r\n			if (\'Retry-After\' in headers) {\r\n				var retryAfter = headers[\'Retry-After\'];\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. Retrying after \' + retryAfter + \' seconds.\');				 \r\n				waitFor = parseInt(retryAfter) * 1000;\r\n			}\r\n			else {\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.\');\r\n			}\r\n			if (now - startTime + waitFor > maxWait) {\r\n				throw \'Failed to receive data: API rate limit exceeded and retry timeout reached.\';\r\n			}\r\n			Zabbix.sleep(waitFor);\r\n			continue;\r\n		}\r\n\r\n		if (status !== 200) {\r\n			if (response.errors) {\r\n				throw response.errors.join(\', \');\r\n			}\r\n			else {\r\n				throw \'Failed to receive data: invalid response status code.\';\r\n			}\r\n		}\r\n\r\n		if (typeof (response) !== \'object\' || response === null) {\r\n			throw \'Cannot process response data: received data is not an object.\';\r\n		}\r\n\r\n		return response;\r\n	}\r\n};\r\n\r\ntry {\r\n\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	timespan = checkNumber(\'{$MERAKI.CONFIG.CHANGE.TIMESPAN}\');\r\n\r\n	if (timespan > 86400 || timespan < 1) {\r\n		throw \'Incorrect "timespan" parameter given: \' + timespan + \' Must be between 1 and 86400 seconds.\';\r\n	}\r\n\r\n	result = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/configurationChanges?timespan=\' + timespan);\r\n\r\n} catch (error) {\r\n	error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n	\'data\': result,\r\n	\'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering all the configuration changes for the organization. Gathering once per 20m by default.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','f2a65bce3adf4511a3f37ed4caa66b3d','0','2','0'),
('44298','21','','10548','Get data','meraki.get.data','12h','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.2 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	licenseStates = [],\r\n	samlSSO = [],\r\n	samlRoles = [],\r\n	adminAccount = [],\r\n	loginSecurity = [];\r\n\r\nfunction getHttpData(url) {\r\n	var startTime = new Date().getTime();\r\n	var maxWait = 1 * 60 * 60 * 1000;\r\n	var waitFor = 1000;\r\n	\r\n	while (true) {\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n	\r\n		var status = request.getStatus();\r\n	\r\n		if (response !== null) {\r\n			try {\r\n				response = JSON.parse(response);\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n			}\r\n		}\r\n	\r\n		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&\r\n			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {\r\n			var now = new Date().getTime();\r\n			var headers = request.getHeaders(false);\r\n\r\n			if (\'Retry-After\' in headers) {\r\n				var retryAfter = headers[\'Retry-After\'];\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. Retrying after \' + retryAfter + \' seconds.\');				 \r\n				waitFor = parseInt(retryAfter) * 1000;\r\n			}\r\n			else {\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.\');\r\n			}\r\n			if (now - startTime + waitFor > maxWait) {\r\n				throw \'Failed to receive data: API rate limit exceeded and retry timeout reached.\';\r\n			}\r\n			Zabbix.sleep(waitFor);\r\n			continue;\r\n		}\r\n	\r\n		if (status !== 200) {\r\n			if (response.errors) {\r\n				throw response.errors.join(\', \');\r\n			}\r\n			else {\r\n				throw \'Failed to receive data: invalid response status code.\';\r\n			}\r\n		}\r\n	\r\n		if (typeof (response) !== \'object\' || response === null) {\r\n			throw \'Cannot process response data: received data is not an object.\';\r\n		}\r\n	\r\n		return response;\r\n	}\r\n};\r\n\r\ntry {\r\n\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	licenseStates = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/licenses/overview\');\r\n	samlSSO = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/saml\');\r\n	samlRoles = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/samlRoles\');\r\n	adminAccount = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/admins\');\r\n	loginSecurity = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/loginSecurity\');\r\n\r\n} catch (error) {\r\n	error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n	\'licenseStates\': licenseStates,\r\n	\'samlSSO\': samlSSO,\r\n	\'samlRoles\': samlRoles,\r\n	\'adminAccount\': adminAccount,\r\n	\'loginSecurity\': loginSecurity,\r\n	\'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering data for the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','3306da0ec0d749829db2f5f42e4e7876','0','2','0'),
('44299','21','','10548','Get list of the networks','meraki.get.networks','3m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.2 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	networks = [],\r\n	uplinks = [];\r\n\r\nfunction getHttpData(url) {\r\n	var startTime = new Date().getTime();\r\n	var maxWait = 1 * 60 * 1000;\r\n	var waitFor = 1000;\r\n		\r\n	while (true) {\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n		\r\n		var status = request.getStatus();\r\n		\r\n		if (response !== null) {\r\n			try {\r\n				response = JSON.parse(response);\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n			}\r\n		}\r\n		\r\n		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&\r\n			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {\r\n			var now = new Date().getTime();\r\n			var headers = request.getHeaders(false);\r\n\r\n			if (\'Retry-After\' in headers) {\r\n				var retryAfter = headers[\'Retry-After\'];\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. Retrying after \' + retryAfter + \' seconds.\');				 \r\n				waitFor = parseInt(retryAfter) * 1000;\r\n			}\r\n			else {\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.\');\r\n			}\r\n			if (now - startTime + waitFor > maxWait) {\r\n				throw \'Failed to receive data: API rate limit exceeded and retry timeout reached.\';\r\n			}\r\n			Zabbix.sleep(waitFor);\r\n			continue;\r\n		}\r\n		\r\n		if (status !== 200) {\r\n			if (response.errors) {\r\n				throw response.errors.join(\', \');\r\n			}\r\n			else {\r\n				throw \'Failed to receive data: invalid response status code.\';\r\n			}\r\n		}\r\n		\r\n		if (typeof (response) !== \'object\' || response === null) {\r\n			throw \'Cannot process response data: received data is not an object.\';\r\n		}\r\n		\r\n		return response;\r\n	}\r\n};\r\n\r\ntry {\r\n\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !==  \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	networks = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/networks\');\r\n\r\n	responseUplinks = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/appliance/uplink/statuses\');\r\n\r\n	if (typeof responseUplinks !== \'undefined\' && Array.isArray(responseUplinks)) {\r\n		for (var i in responseUplinks) {\r\n			if (\'networkId\' in responseUplinks[i] && typeof networks !== \'undefined\' && Array.isArray(networks)) {\r\n				network = networks.filter(function (x) { return x.id == responseUplinks[i].networkId; });\r\n			}\r\n\r\n			if (typeof responseUplinks[i].uplinks !== \'undefined\' && Array.isArray(responseUplinks[i].uplinks)) {\r\n				for (var p in responseUplinks[i].uplinks) {\r\n					if (typeof network[0].name !== \'undefined\') {\r\n						responseUplinks[i].uplinks[p].networkName = network[0].name;\r\n					}\r\n					if (typeof network[0].timeZone !== \'undefined\') {\r\n						responseUplinks[i].uplinks[p].timeZone = network[0].timeZone;\r\n					}\r\n					if (\'highAvailability\' in responseUplinks[i] && \'role\' in responseUplinks[i].highAvailability) {\r\n						responseUplinks[i].uplinks[p].role = responseUplinks[i].highAvailability.role;\r\n					}\r\n					if (\'serial\' in responseUplinks[i]) {\r\n						responseUplinks[i].uplinks[p].serial = responseUplinks[i].serial;\r\n					}\r\n\r\n					uplinks.push(responseUplinks[i].uplinks[p]);\r\n				}\r\n			}\r\n		}\r\n	}\r\n\r\n\r\n} catch (error) {\r\n	error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n	\'uplinks\': uplinks,\r\n	\'networks\': networks,\r\n	\'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering all the networks of organization from Meraki API.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','efe8853443d44eed8daeecee5ab9e481','0','2','0'),
('44300','21','','10548','Get list of the VPN stats','meraki.get.vpn.stats','{$MERAKI.VPN.STATS.TIMESPAN}','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.2 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	vpnStats = [],\r\n	vpnStatuses = [],\r\n	result = [];\r\n\r\nfunction isFloat(n) {\r\n	n = parseFloat(n);\r\n	return Number(n) === n && n % 1 !== 0;\r\n};\r\n\r\nfunction checkNumber(string) {\r\n	if (typeof string !== "string" || isNaN(string) || isFloat(string)) {\r\n		throw \'Incorrect "timespan" parameter given: \' + string + \' Must be an unsigned number\';\r\n	}\r\n	return string;\r\n};\r\n\r\nfunction getHttpData(url) {\r\n	var startTime = new Date().getTime();\r\n	var maxWait = parseInt(timespan, 10) * 1000;\r\n	var waitFor = 1000;\r\n\r\n	while (true) {\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		var status = request.getStatus();\r\n\r\n		if (response !== null) {\r\n			try {\r\n				response = JSON.parse(response);\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&\r\n			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {\r\n			var now = new Date().getTime();\r\n			var headers = request.getHeaders(false);\r\n\r\n			if (\'Retry-After\' in headers) {\r\n				var retryAfter = headers[\'Retry-After\'];\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. Retrying after \' + retryAfter + \' seconds.\');				 \r\n				waitFor = parseInt(retryAfter) * 1000;\r\n			}\r\n			else {\r\n				Zabbix.log(4, \'[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.\');\r\n			}\r\n			if (now - startTime + waitFor > maxWait) {\r\n				throw \'Failed to receive data: API rate limit exceeded and retry timeout reached.\';\r\n			}\r\n			Zabbix.sleep(waitFor);\r\n			continue;\r\n		}\r\n\r\n		if (status !== 200) {\r\n			if (response.errors) {\r\n				throw response.errors.join(\', \');\r\n			}\r\n			else {\r\n				throw \'Failed to receive data: invalid response status code.\';\r\n			}\r\n		}\r\n\r\n		if (typeof (response) !== \'object\' || response === null) {\r\n			throw \'Cannot process response data: received data is not an object.\';\r\n		}\r\n\r\n		return response;\r\n	}\r\n};\r\n\r\ntry {\r\n\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	timespan = checkNumber(\'{$MERAKI.VPN.STATS.TIMESPAN}\');\r\n\r\n	if (timespan > 86400 || timespan < 1) {\r\n		throw \'Incorrect "timespan" parameter given: \' + timespan + \' Must be between 1 and 86400 seconds.\';\r\n	}\r\n\r\n	vpnStats = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/appliance/vpn/stats?timespan=\' + timespan);\r\n\r\n	for (i in vpnStats) {\r\n		if (typeof vpnStats[i].merakiVpnPeers !== \'undefined\' && Array.isArray(vpnStats[i].merakiVpnPeers)) {\r\n			for (u in vpnStats[i].merakiVpnPeers) {\r\n				if (typeof vpnStats[i].merakiVpnPeers[u].latencySummaries !== \'undefined\' && Array.isArray(vpnStats[i].merakiVpnPeers[u].latencySummaries)) {\r\n					vpn_stats = vpnStats[i].merakiVpnPeers[u].latencySummaries.map(function (x) {\r\n\r\n						lps = vpnStats[i].merakiVpnPeers[u].lossPercentageSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });\r\n						js = vpnStats[i].merakiVpnPeers[u].jitterSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });\r\n						ms = vpnStats[i].merakiVpnPeers[u].mosSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });\r\n						Object.assign(x, lps[0], js[0], ms[0]);\r\n\r\n						if (\'networkId\' in vpnStats[i]) {\r\n							x.networkId = vpnStats[i].networkId;\r\n						}\r\n						if (\'networkName\' in vpnStats[i]) {\r\n							x.networkName = vpnStats[i].networkName;\r\n						}\r\n\r\n						if (\'networkId\' in vpnStats[i].merakiVpnPeers[u]) {\r\n							x.peerNetworkId = vpnStats[i].merakiVpnPeers[u].networkId;\r\n						}\r\n						if (\'networkName\' in vpnStats[i].merakiVpnPeers[u]) {\r\n							x.peerNetworkName = vpnStats[i].merakiVpnPeers[u].networkName;\r\n						}\r\n\r\n						return x;\r\n					});\r\n					result = result.concat(vpn_stats);\r\n				}\r\n			}\r\n		}\r\n	}\r\n\r\n	vpnStatuses = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/appliance/vpn/statuses\');\r\n\r\n} catch (error) {\r\n	error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n	\'vpnStats\': result,\r\n	\'vpnStatuses\': vpnStatuses,\r\n	\'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering all the VPN stats of the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','bb653e6dba3f489494a7143b74fe8f4f','0','2','0'),
('44335','0','','10264','Get processes summary','proc.get[{$APACHE.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','99b1a38ed45b4212974b0bea72b076d2','0','2','0'),
('44343','0','','10266','Get processes summary','proc.get[{$NGINX.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d43b4b99b6084076a4feb1fde51ecc40','0','2','0'),
('44351','0','','10330','Get processes summary','proc.get[{$PHP_FPM.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71ea0957d99a4d48b18e73a21494c849','0','2','0'),
('44359','0','','10301','Get processes summary','proc.get[{$RABBITMQ.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8201cc537b124d9292fcf692922ee0ad','0','2','0'),
('44381','3','','10551','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1066','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8eff7e6fc12c45f6b98a4fb89c44f03d','0','2','0'),
('44382','3','','10551','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb04f67d7ea04894a9f143a7d27db09a','0','2','0'),
('44383','3','','10551','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be862a0f8625484ebccb8a4e5255b683','0','2','0'),
('44384','17','','10551','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all the SNMP traps unmatched by the other snmptrap items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','027bb218006e46238392afbb12d96ec6','0','2','0'),
('44385','20','get[1.3.6.1.2.1.1.4.0]','10551','System contact details','system.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe textual identification of the contact person for the managed node (or: this node), together with the contact information of this person. If no contact information is known, the value is a zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','566c78f548bc4d1c9157b4a3f41f083b','0','2','0'),
('44386','20','get[1.3.6.1.2.1.1.1.0]','10551','System description','system.descr','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe textual description of the entity. This value should include the full name and version identification number of the system\'s hardware type, software operating-system, and the networking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc245084de0047aaa7bc62234970e827','0','2','0'),
('44387','20','get[1.3.6.1.2.1.47.1.1.1.1.13.149]','10551','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','34022f907faa4a3e8a02c5e5f5c8c43a','0','2','0'),
('44388','20','get[1.3.6.1.2.1.47.1.1.1.1.11.149]','10551','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d42a842c591489bb984faad26cd7e63','0','2','0'),
('44389','20','get[1.3.6.1.2.1.1.6.0]','10551','System location','system.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe physical location of this node (e.g., telephone closet, the third floor).\r\nIf the location is unknown, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f109dce62c942f794fecaf7038d691e','0','2','0'),
('44390','20','get[1.3.6.1.2.1.1.5.0]','10551','System name','system.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe administratively-assigned name for this node. By convention, this is the node\'s fully-qualified domain name. If the name is unknown, the value is a zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31ff1ef55d69461bbc5b4416c7a040be','0','2','0'),
('44391','20','get[1.3.6.1.2.1.1.2.0]','10551','System object ID','system.objectid','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe vendor\'s authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprise\'s subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining "what kind of box" is being managed.\r\nFor example, if the vendor "Flintstones, Inc." was assigned the subtree 1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its "Fred Router".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a60cce9cf0464d6292d6b7934e9cfcd6','0','2','0'),
('44392','20','get[1.3.6.1.4.1.9.9.25.1.1.1.2.5]','10551','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-IMAGE-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e02a0a8de70547e4895b395b616919dd','0','2','0'),
('44393','20','get[1.3.6.1.6.3.10.2.1.3.0]','10551','Uptime (snmp)','system.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMP-FRAMEWORK-MIB::snmpEngineTime.\r\nThe number of seconds since the value of the `snmpEngineBoots` object has had a last change.\r\nWhen incrementing this object\'s value would cause it to exceed its maximum, the `snmpEngineBoots` is incremented as if a re-initialization had occurred,\r\nand this object\'s value consequently reverts to zero.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','83405503b84d4af292e6846ccbd8a877','0','2','0'),
('44394','5','','10551','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1067','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','edb1d93d5fda47928dcb62223ada8b16','0','2','0'),
('44427','0','','10076','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','95e14453e9ee4b6ea036fab09bf2b194','0','2','0'),
('44430','0','','10075','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9695b40b38f74bb3bb5d127af1ba13ce','0','2','0'),
('44433','0','','10077','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05adecd1fb3e4c85b826dfdd601fa444','0','2','0'),
('44436','0','','10001','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','868440292732425c8f9df52882822c82','0','2','0'),
('44442','7','','10343','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6c1de983421846c9acef8f465ff2f196','0','2','0'),
('44445','0','','10079','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf99f88e47a64ecab98de4f3cfe6592f','0','2','0'),
('44447','0','','10074','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5de01cf628b48cb899a8ad2a02a3b62','0','2','0'),
('44450','0','','10078','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','897f991e6f8f433bbd52a958f4f54c08','0','2','0'),
('44453','0','','10081','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f59d6794a6b94e93aced78a688507677','0','2','0'),
('44455','7','','10351','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','60a17a94a9ad4e4192547d0a6a1e1d25','0','2','0'),
('44457','19','','10552','Get Control-M servers','controlm.servers','10m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets a list of servers.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/config/servers','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','7d9ed576aeb045798b78414c89f3e597','0','2','0'),
('44458','19','','10552','Get SLA services','controlm.services','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets all the SLA active services.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/run/services/sla','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','2bd2c27b8dc74656a00f6d2006399388','0','2','0'),
('44459','19','','10553','Get agents','controlm.agents','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets agents for the server.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/config/server/{$SERVER.NAME}/agents','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','94e45567531543119d6e36b4463684c7','0','2','0'),
('44460','19','','10553','Get jobs','controlm.jobs','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets the status of jobs.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/run/jobs/status','[{"ctm":"{$SERVER.NAME}"}]','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','1f60be3e3fe543d697047ffcad7b0a7f','0','2','0'),
('44461','19','','10553','Get Control-M server stats','controlm.server.stats','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets the statistics of the server.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/config/servers','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','67ca527f452b43aab2e3171e49f96194','0','2','0'),
('44494','21','','10555','Get metrics','veeam.get.metrics','5m','0','0','0','4','','','','',NULL,NULL,'var Veeam = {\r\n	params: {},\r\n	token: \'\',\r\n\r\n	setParams: function (params) {\r\n		[\'api_endpoint\', \'user\', \'password\', \'created_after\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		Veeam.params = params;\r\n		if (typeof Veeam.params.api_endpoint === \'string\' && !Veeam.params.api_endpoint.endsWith(\'/\')) {\r\n			Veeam.params.api_endpoint += \'/\';\r\n		}\r\n		if (Veeam.params.created_after >= 365 || Veeam.params.created_after <= 1) {\r\n			throw \'Incorrect "created_after" parameter given: \' + Veeam.params.created_after + \'\\nMust be between 1 and 365 days.\';\r\n		}\r\n	},\r\n\r\n	login: function () {\r\n\r\n		var resp, login = new HttpRequest();\r\n		if (typeof Veeam.params.http_proxy !== \'undefined\' && Veeam.params.http_proxy !== \'\') {\r\n			login.setProxy(Veeam.params.http_proxy);\r\n		}\r\n		login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n		login.addHeader(\'x-api-version: 1.0-rev2\');\r\n		resp = login.post(Veeam.params.api_endpoint + \'api/oauth2/token\',\r\n			\'grant_type=password&username=\' + encodeURIComponent(Veeam.params.user) + \'&password=\' + encodeURIComponent(Veeam.params.password));\r\n\r\n		if (login.getStatus() !== 200 || resp === null) {\r\n			throw \'Login failed with status code \' + login.getStatus() + \': \' + resp;\r\n		}\r\n\r\n		try {\r\n			resp = JSON.parse(resp);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse authentication token for the logon session.\';\r\n		}\r\n		if (!resp.hasOwnProperty(\'access_token\')) {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n		Veeam.token = resp[\'access_token\'];\r\n\r\n	},\r\n\r\n	request: function (url) {\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof Veeam.params.http_proxy !== \'undefined\' && Veeam.params.http_proxy !== \'\') {\r\n			request.setProxy(Veeam.params.http_proxy);\r\n		}\r\n		if (Veeam.token) {\r\n			request.addHeader(\'Authorization: Bearer \' + Veeam.token);\r\n			request.addHeader(\'x-api-version: 1.0-rev2\');\r\n			response = request.get(url);\r\n		}\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var data = {};\r\n		ms = 86400000;\r\n		start_date = new Date((new Date().getTime()) - ms * Veeam.params.created_after).toISOString().replace(/\\.\\d+/, \'\');\r\n		endpoints = {\r\n			\'proxies\': \'api/v1/backupInfrastructure/proxies\',\r\n			\'managedServers\': \'api/v1/backupInfrastructure/managedServers\',\r\n			\'repositories_states\': \'api/v1/backupInfrastructure/repositories/states\',\r\n			\'jobs_states\': \'api/v1/jobs/states\',\r\n			\'sessions\': \'api/v1/sessions?createdAfterFilter=\' + encodeURIComponent(start_date)\r\n		};\r\n\r\n		Object.keys(endpoints).forEach(function (key) {\r\n			data[key] = Veeam.request(Veeam.params.api_endpoint + endpoints[key]);\r\n		});\r\n\r\n		return data;\r\n	}\r\n};\r\n\r\ntry {\r\n	Veeam.setParams(JSON.parse(value));\r\n	Veeam.login();\r\n	return JSON.stringify(Veeam.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ VEEAM ] ERROR: \' + error);\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$VEEAM.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','f8ef587e6d204e7da6e27e56b1131ca4','0','2','0'),
('44516','21','','10556','Get metrics','veeam.manager.get.metrics','5m','0','0','0','4','','','','',NULL,NULL,'var Veeam = {\r\n	params: {},\r\n\r\n	setParams: function (params) {\r\n		[\'api_endpoint\', \'user\', \'password\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		Veeam.params = params;\r\n		if (typeof Veeam.params.api_endpoint === \'string\' && !Veeam.params.api_endpoint.endsWith(\'/\')) {\r\n			Veeam.params.api_endpoint += \'/\';\r\n		}\r\n	},\r\n\r\n	request: function (url) {\r\n		var response, request = new HttpRequest();\r\n		if (typeof Veeam.params.http_proxy !== \'undefined\' && Veeam.params.http_proxy !== \'\') {\r\n			request.setProxy(Veeam.params.http_proxy);\r\n		}\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Authorization: Basic \' + btoa(Veeam.params.user + \':\' + Veeam.params.password));\r\n		request.post(Veeam.params.api_endpoint + \'api/sessionMngr\');\r\n		response = request.get(url);\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	getMetricsData: function() {\r\n		var data = {};\r\n		endpoints = {\r\n			\'backupFiles\': \'api/backupFiles\',\r\n		};\r\n		reports_summary = Veeam.request(Veeam.params.api_endpoint + \'api/reports/summary\')\r\n		if (typeof reports_summary !== \'object\' || reports_summary.hasOwnProperty(\'Links\') === false)\r\n			throw \'Failed response parse. Check debug log for more information.\';\r\n		reports_summary.Links.forEach(function (field)  {\r\n				data[field.Name] = Veeam.request(field.Href)\r\n			})\r\n		Object.keys(endpoints).forEach(function (key) {\r\n			data[key] = Veeam.request(Veeam.params.api_endpoint + endpoints[key]);\r\n			if (typeof data[key] !== \'object\' || data[key].hasOwnProperty(\'Refs\') === false)\r\n				throw \'Failed response parse. Check debug log for more information.\';\r\n			data[key].Refs.forEach(function (field) {\r\n				data[field.Name] = Veeam.request(field.Href)\r\n			})		\r\n		})\r\n		return data;\r\n	}\r\n\r\n};\r\ntry {\r\n	Veeam.setParams(JSON.parse(value));\r\n	return JSON.stringify(Veeam.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ VEEAM MANAGER ] ERROR: \' + error);\r\n	return JSON.stringify({\'error\': error});\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$VEEAM.MANAGER.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','525a61ff4fb747efab6ac58d1ac8b7c4','0','2','0'),
('44530','21','','10557','Get data','azure.db.mssql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'physical_data_read_percent\',\r\n	\'log_write_percent\',\r\n	\'storage\',\r\n	\'connection_successful\',\r\n	\'connection_failed\',\r\n	\'blocked_by_firewall\',\r\n	\'deadlock\',\r\n	\'storage_percent\',\r\n	\'xtp_storage_percent\',\r\n	\'workers_percent\',\r\n	\'sessions_percent\',\r\n	\'sessions_count\',\r\n	\'cpu_limit\',\r\n	\'cpu_used\',\r\n	\'sqlserver_process_core_percent\',\r\n	\'sqlserver_process_memory_percent\',\r\n	\'tempdb_data_size\',\r\n	\'tempdb_log_size\',\r\n	\'tempdb_log_used_percent\',\r\n	\'allocated_data_storage\'\r\n],\r\n	day_metrics = \'full_backup_size_bytes,diff_backup_size_bytes,log_backup_size_bytes\',\r\n	prepared_metrics = [],\r\n	data = {};\r\n	data[\'errors\'] = {};\r\n	data[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n		start_date = new Date((new Date().getTime()) - 86400000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n		try {\r\n			metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + day_metrics + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n			if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n				for (l in metrics_data.value) {\r\n					if (\'name\' in metrics_data.value[l] && typeof metrics_data.value[l].name === \'object\' && \'value\' in metrics_data.value[l].name && typeof metrics_data.value[l].name.value === \'string\' && \'timeseries\' in metrics_data.value[l] && Array.isArray(metrics_data.value[l].timeseries) && metrics_data.value[l].timeseries.length > 0 && \'data\' in metrics_data.value[l].timeseries[0] && Array.isArray(metrics_data.value[l].timeseries[0].data) && metrics_data.value[l].timeseries[0].data.length > 0) {\r\n						data.metrics[metrics_data.value[l].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[l].timeseries[0].data[metrics_data.value[l].timeseries[0].data.length - 1];\r\n					}\r\n				}\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors[day_metrics] = error.toString();\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','741cc1ec6a824e429f06b3d12a8a7082','0','2','0'),
('44531','21','','10558','Get data','azure.db.mssql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'physical_data_read_percent\',\r\n	\'log_write_percent\',\r\n	\'storage\',\r\n	\'connection_successful\',\r\n	\'connection_failed\',\r\n	\'blocked_by_firewall\',\r\n	\'deadlock\',\r\n	\'storage_percent\',\r\n	\'xtp_storage_percent\',\r\n	\'workers_percent\',\r\n	\'sessions_percent\',\r\n	\'cpu_limit\',\r\n	\'cpu_used\',\r\n	\'sqlserver_process_core_percent\',\r\n	\'sqlserver_process_memory_percent\',\r\n	\'tempdb_data_size\',\r\n	\'tempdb_log_size\',\r\n	\'tempdb_log_used_percent\',\r\n	\'app_cpu_billed\',\r\n	\'app_cpu_percent\',\r\n	\'app_memory_percent\',\r\n	\'allocated_data_storage\'\r\n],\r\n	prepared_metrics = [],\r\n	data = {};\r\n	data[\'errors\'] = {};\r\n	data[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','e1c668773b974deeaf64c0d51d1cb02d','0','2','0'),
('44634','0','','10081','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c86dd0a8dbba468696cc09a9f9575769','0','2','0'),
('44635','7','','10351','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5159e7263d7a42e499380b70e9d6490a','0','2','0'),
('44642','0','','10560','Get process summary','proc.get[,,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The summary of data metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','803390429cf949d3b8439dd5dd71c706','0','2','0'),
('44653','0','','10561','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f46c6142cf434df1b6abe9334bf6c84c','0','2','0'),
('44654','0','','10561','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'1077','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37a952edc12f47d6ac6f3ca04eb41326','0','2','0'),
('44655','0','','10561','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a6af03a083b4366bd1d4c6ccf06ca88','0','2','0'),
('44656','5','','10561','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'1076','','','0','','','','','0',NULL,'Used for monitoring the availability status of the agent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','49708b126e3844b898d2625f77c0030c','0','2','0'),
('44657','7','','10562','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca27c17d8ca34643a7db8b99d2cc3025','0','2','0'),
('44658','7','','10562','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'1079','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f86ec6cde2249f7946c678f9fd2665a','0','2','0'),
('44659','7','','10562','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41fb0f76fa1d464f8ab67f744fc29e8b','0','2','0'),
('44660','5','','10562','Active agent availability','zabbix[host,active_agent,available]','1m','31d','365d','0','3','','','','',NULL,'1078','','','0','','','','','0',NULL,'Availability of active checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - unknown\r\n1 - available\r\n2 - not available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0fd83c56dce244738607cd6585a6acb3','0','2','0'),
('44661','3','','10563','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1080','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0db3c804c6174c018071e15cbc8c56ae','0','2','0'),
('44662','3','','10563','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d306c51188e496ba19b75b99e28cc7b','0','2','0'),
('44663','3','','10563','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ad39c8c6ede46e6953aa6f9466eaf69','0','2','0'),
('44664','17','','10563','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2cda26906f254e13985cecdbb7901d1a','0','2','0'),
('44665','20','get[1.3.6.1.2.1.1.4.0]','10563','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','62da59c7aae54df7976f327119fe7cc2','0','2','0'),
('44666','20','get[1.3.6.1.2.1.1.1.0]','10563','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29a3e5277de94386a5985fcf38a09364','0','2','0'),
('44667','20','get[1.3.6.1.2.1.25.1.1.0]','10563','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b12afb0277494024b1638ce620c4f2d4','0','2','0'),
('44668','20','get[1.3.6.1.2.1.1.6.0]','10563','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02b453f44c014f2bb1054e801058b381','0','2','0'),
('44669','20','get[1.3.6.1.2.1.1.5.0]','10563','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn administratively-assigned name for this managed node.By convention, this is the node\'s fully-qualified domain name. If the name is unknown, the value is the zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3996a3a8d927473aa07c47e63a09b865','0','2','0'),
('44670','20','get[1.3.6.1.2.1.1.3.0]','10563','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','000b97abddcd44bfb57e0eeb1b77f69e','0','2','0'),
('44671','20','get[1.3.6.1.2.1.1.2.0]','10563','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what kind of box\' is being managed. For example, if vendor`Flintstones, Inc.\' was assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9dbcc5a1cd7240c896e2ea718f9ccb35','0','2','0'),
('44672','5','','10563','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1081','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e8c2d440441416b9ccec7dd90e21503','0','2','0'),
('44673','3','','10564','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1082','','','0','','','','','0',NULL,'The host accessibility by ICMP ping.\r\n\r\n0 - ICMP ping fails;\r\n1 - ICMP ping successful.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','db5a94f6cea14deba957202b2f014469','0','2','0'),
('44674','3','','10564','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The percentage of lost packets.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04b21adaf422473a88df2c52786474ed','0','2','0'),
('44675','3','','10564','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'The ICMP ping response time (in seconds).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a79e33e5fd264725b934f603fa071555','0','2','0'),
('44785','5','','10047','Connector queue','zabbix[connector_queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The count of values enqueued in the connector queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a185ce77d4e4dd49be5b9ded51c1460','0','2','0'),
('44786','5','','10047','Utilization of connector manager internal processes, in %','zabbix[process,connector manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the connector manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fcfd911ae8647149bad91c883abf41d','0','2','0'),
('44787','5','','10047','Utilization of connector worker internal processes, in %','zabbix[process,connector worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the connector worker processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c8c3b3045384a39af8baa9e40f2b487','0','2','0'),
('44795','21','','10531','Get storage accounts','azure.get.storage.acc','10m','0','0','0','4','','','','',NULL,NULL,'var Azure = {\r\n	params: {},\r\n	token: \'\',\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		Azure.params = params;\r\n	},\r\n\r\n	login: function () {\r\n		var response, login = new HttpRequest();\r\n		if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n			login.setProxy(Azure.params.proxy);\r\n		}\r\n		login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n		response = login.post(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(Azure.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(Azure.params.app_id) + \'&client_secret=\' + encodeURIComponent(Azure.params.password)\r\n		);\r\n\r\n		if (login.getStatus() !== 200) {\r\n			throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			response = JSON.parse(response);\r\n			if (!response.hasOwnProperty(\'access_token\')) {\r\n				throw null;\r\n			}\r\n		}\r\n		catch (error) {\r\n			throw \'Authentication response does not contain access token.\';\r\n		}\r\n\r\n		Azure.token = response[\'access_token\'];\r\n	},\r\n\r\n	request: function (url) {\r\n		var response, request = new HttpRequest();\r\n		if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n			request.setProxy(Azure.params.proxy);\r\n		}\r\n		if (!Azure.token) {\r\n			throw \'Request does not contain access token.\';\r\n		}\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Authorization: Bearer \' + Azure.token);\r\n		response = request.get(url);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var metric = Azure.request(\'https://management.azure.com/subscriptions/\' + encodeURIComponent(Azure.params.subscription_id) + \'/providers/Microsoft.Storage/storageAccounts?api-version=2021-05-01\'),\r\n			data = [];\r\n\r\n		if (!metric.hasOwnProperty(\'value\')) {\r\n			throw \'Failed getting required field. Check debug log for more information.\';\r\n		}\r\n		for (k in metric.value) {\r\n			id = Azure.getField(metric.value[k], \'id\');\r\n			json = {};\r\n			input = id.split(\'/\');\r\n			for (var i = 1; i < input.length; i += 2) {\r\n				json[input[i]] = input[i + 1];\r\n			}\r\n			data.push({\r\n				\'name\': Azure.getField(metric.value[k], \'name\'),\r\n				\'id\': id,\r\n				\'resourceGroup\': Azure.getField(json, \'resourceGroups\'),\r\n				\'location\': Azure.getField(metric.value[k], \'location\'),\r\n				\'token\': Azure.token\r\n			});\r\n		}\r\n\r\n		return data;\r\n	}\r\n};\r\n\r\ntry {\r\n	Azure.setParams(JSON.parse(value));\r\n	Azure.login();\r\n	return JSON.stringify(Azure.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ Azure ] ERROR: \' + error);\r\n	return JSON.stringify({\'error\': error});\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','91b2290d65b949ad9ea801763c35cf40','0','2','0'),
('44796','21','','10568','Get data','azure.cosmosdb.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureCosmosDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureCosmosDB.params = params;\r\n	},\r\n\r\n	login: function () {\r\n		var response, login = new HttpRequest();\r\n		if (typeof AzureCosmosDB.params.proxy !== \'undefined\' && AzureCosmosDB.params.proxy !== \'\') {\r\n			login.setProxy(AzureCosmosDB.params.proxy);\r\n		}\r\n		login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n		response = login.post(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureCosmosDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureCosmosDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureCosmosDB.params.password)\r\n		);\r\n\r\n		if (login.getStatus() !== 200) {\r\n			throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse login session response.\';\r\n		}\r\n		if (!response.hasOwnProperty(\'access_token\')) {\r\n			throw \'Authentication response does not contain access token.\';\r\n		}\r\n		AzureCosmosDB.token = response[\'access_token\'];\r\n	},\r\n\r\n	request: function (url) {\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureCosmosDB.params.proxy !== \'undefined\' && AzureCosmosDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureCosmosDB.params.proxy);\r\n		}\r\n		if (!AzureCosmosDB.token) {\r\n			throw \'Request does not contain access token.\';\r\n		}\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Authorization: Bearer \' + AzureCosmosDB.token);\r\n		Zabbix.log(4, \'[ AzureCosmosDB ] request url: \' + url);\r\n		response = request.get(url);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var data = {};\r\n		start_date = new Date((new Date().getTime()) - 600000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date(new Date().getTime()).toISOString().replace(/\\.\\d+/, \'\');\r\n		endpoints = {\r\n			\'availability\': \'/providers/Microsoft.Insights/metrics?metricnames=ServiceAvailability&api-version=2021-05-01&interval=PT1H&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date),\r\n			\'requests\': \'/providers/Microsoft.Insights/metrics?metricnames=DataUsage,IndexUsage,DocumentQuota,AvailableStorage,DocumentCount,NormalizedRUConsumption,PhysicalPartitionThroughputInfo,PhysicalPartitionSizeInfo,AutoscaleMaxThroughput,ProvisionedThroughput,TotalRequests,TotalRequestUnits,MetadataRequests,MongoRequests,MongoRequestCharge,ServerSideLatency,ServerSideLatencyGateway,ServerSideLatencyDirect,ReplicationLatency&api-version=2021-05-01&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date),\r\n		};\r\n\r\n		Object.keys(endpoints).forEach(function (field) {\r\n			data[field] = {};\r\n			try {\r\n				metrics = AzureCosmosDB.request(\'https://management.azure.com\' + AzureCosmosDB.params.resource_id + endpoints[field]);\r\n				if (!metrics.hasOwnProperty(\'value\')) {\r\n					throw \'Failed getting required field. Check debug log for more information.\';\r\n				}\r\n\r\n				for (k in metrics.value) {\r\n					key = AzureCosmosDB.getField(metrics.value[k], \'name.value\')\r\n					if (metrics.value[k].timeseries.length === 0) {\r\n						metrics.value[k].timeseries.push({ \'data\': [\'nodata\'] })\r\n					}\r\n					data[field][key] = AzureCosmosDB.getField(metrics.value[k], \'timeseries.0.data.0\');\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.error = error.toString();\r\n			}\r\n		});\r\n		return data\r\n	}\r\n\r\n};\r\n\r\ntry {\r\n	AzureCosmosDB.setParams(JSON.parse(value));\r\n	AzureCosmosDB.login();\r\n	return JSON.stringify(AzureCosmosDB.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AzureCosmosDB ] ERROR: \' + error);\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','647faea1597c4da6a3cd78694be8e77e','0','2','0'),
('44866','21','','10570','Authorization','gcp.authorization','{$GCP.AUTH.FREQUENCY}','0','0','0','4','','','','',NULL,NULL,'var auth_url = \'https://oauth2.googleapis.com/token\',\r\n	issued = Math.floor(new Date().getTime() / 1000),\r\n	expires = issued + 3600,\r\n	endpoint = \'https://www.googleapis.com/auth/\',\r\n	scopes = [\'cloud-platform.read-only\', \'monitoring\', \'compute.readonly\', \'sqlservice.admin\'],\r\n	scope = scopes.map(function (path) { return endpoint + path; }).join(\' \');\r\n\r\nfunction base64url(source) {\r\n	encodedSource = btoa(source);\r\n	encodedSource = encodedSource.replace(/=+$/, \'\');\r\n	encodedSource = encodedSource.replace(/\\+/g, \'-\');\r\n	encodedSource = encodedSource.replace(/\\//g, \'_\');\r\n\r\n	return encodedSource;\r\n}\r\n\r\nfunction fromHex(hex) {\r\n	var utf8array = [];\r\n\r\n	if (hex.length % 2)\r\n		throw \'Invalid length of a hex string!\';\r\n	for (var i = 0; i < hex.length; i += 2) {\r\n		utf8array.push(parseInt(hex.substr(i, 2), 16));\r\n	}\r\n	return new Uint8Array(utf8array);\r\n}\r\n\r\nfunction encodeJWT(headers, payload, secret) {\r\n	unsignedToken = base64url(JSON.stringify(headers)) + \'.\' + base64url(JSON.stringify(payload));\r\n	jwt = unsignedToken + \'.\' + base64url(fromHex(sign(\'sha256\', secret, unsignedToken)));\r\n	return jwt;\r\n}\r\n\r\nfunction exchangeJwtForAccessToken(signed_jwt) {\r\n\r\n	var request = new HttpRequest(),\r\n		params = {\r\n			grant_type: \'urn:ietf:params:oauth:grant-type:jwt-bearer\',\r\n			assertion: signed_jwt\r\n		}\r\n	if (typeof script_params.proxy !== \'undefined\' && script_params.proxy !== \'\') {\r\n		request.setProxy(script_params.proxy);\r\n	};\r\n	var response = request.post(auth_url, JSON.stringify(params));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + auth_url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n\r\n	if (typeof response.access_token !== \'undefined\') {\r\n		return response.access_token;\r\n	}\r\n	else {\r\n		throw \'No access token in the JWT exchange request.\';\r\n	}\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'pkey_id\', \'private_key\', \'email\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	return params;\r\n}\r\n\r\nvar script_params = checkParams(JSON.parse(value)),\r\n	headers = {\r\n		alg: \'RS256\',\r\n		kid: script_params.pkey_id,\r\n		typ: \'JWT\'\r\n	},\r\n	payload = {\r\n		iss: script_params.email,\r\n		sub: script_params.email,\r\n		aud: auth_url,\r\n		iat: issued,\r\n		exp: expires,\r\n		scope: scope\r\n	};\r\n\r\ntry {\r\n	jwt = encodeJWT(headers, payload, script_params.private_key);\r\n	token = exchangeJwtForAccessToken(jwt);\r\n	return token;\r\n}\r\ncatch (err) {\r\n	return JSON.stringify({ error: err });\r\n}','','0','','','','','0',NULL,'Google Cloud Platform REST authorization with service account authentication parameters and temporary-generated RSA-based JWT-token usage.\r\nThe necessary scopes are pre-defined.\r\nReturns a signed authorization token with 1 hour lifetime; it is required only once, and is used for all the dependent script items.\r\nCheck the template documentation for the details.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','5cc3faa82f404b38b513958f323f3d7d','0','2','0'),
('44867','19','','10571','Instance state','gcp.cloudsql.mssql.inst.state','1m','31d','365d','0','3','','','','',NULL,'1087','','','0','','','','','0',NULL,'GCP Cloud SQL MSSQL Current instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/state | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','556c96cf1bf342f99c69dc47813f221e','0','2','0'),
('44868','21','','10571','Resources get','gcp.cloudsql.mssql.resources.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/transactions/\',\r\n	arr = [],\r\n	base_paths = [\r\n		\'deadlock_count\',\r\n		\'lock_wait_count\',\r\n		\'lock_wait_time\'\r\n	];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	time_series = getField(raw, \'timeSeriesData\');\r\n\r\nfor (t in time_series) {\r\n	data = {\r\n		resource: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n		metrics: {}\r\n	};\r\n\r\n	for (i in metrics) {\r\n		re = /(^t_\\d+\\.value(_|\\.))/g;\r\n		data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n	}\r\n	arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'MSSQL resources data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','7ee117702e1f40faadd901faa9d333ff','0','2','0'),
('44869','21','','10571','Metrics get','gcp.cloudsql.mssql.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/\',\r\n	mssql_path = \'cloudsql.googleapis.com/database/sqlserver/\',\r\n	obj = {},\r\n	base_paths = [\r\n		\'cpu/reserved_cores\',\r\n		\'cpu/usage_time\',\r\n		\'cpu/utilization\',\r\n		\'disk/read_ops_count\',\r\n		\'disk/write_ops_count\',\r\n		\'memory/quota\',\r\n		\'memory/total_usage\',\r\n		\'memory/usage\',\r\n		\'network/connections\',\r\n		\'network/received_bytes_count\',\r\n		\'network/sent_bytes_count | map ignore [destination]\'\r\n	].map(function (path) { return base_path + path; }),\r\n	mssql_paths = [\r\n		\'connections/connection_reset_count\',\r\n		\'connections/login_attempt_count\',\r\n		\'connections/logout_count\',\r\n		\'connections/processes_blocked\',\r\n		\'memory/buffer_cache_hit_ratio\',\r\n		\'memory/checkpoint_page_count\',\r\n		\'memory/lazy_write_count\',\r\n		\'memory/memory_grants_pending\',\r\n		\'memory/page_life_expectancy\',\r\n		\'memory/free_list_stall_count\',\r\n		\'transactions/batch_request_count\',\r\n		\'transactions/forwarded_record_count\',\r\n		\'transactions/full_scan_count\',\r\n		\'transactions/page_split_count\',\r\n		\'transactions/probe_scan_count\',\r\n		\'transactions/sql_compilation_count\',\r\n		\'transactions/sql_recompilation_count\'\r\n	].map(function (path) { return mssql_path + path; }).concat(\r\n		[\'disk/bytes_used\', \'disk/utilization\', \'disk/quota\'].map(function (path) { return base_path + path; })),\r\n	value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction getFieldBool(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			return false;\r\n		}\r\n		data = data[step];\r\n	}\r\n	return true;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\', \'audited\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	if (params.audited !== \'true\' && params.audited !== \'false\') {\r\n		throw \'Incorrect audit definition type. Valid definitions: true/false\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nfunction rawMap(raw, prefix) {\r\n	var keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n		values = getField(raw, \'timeSeriesData.0.pointData.0.values\'),\r\n		re = /(^t_\\d+\\.value\\.)/g;\r\n\r\n	for (i in keys) {\r\n		var key = getField(keys[i], \'key\').replace(re, \'\');\r\n\r\n		for (v in value_types) {\r\n			if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n				if (prefix) {\r\n					obj[prefix + key] = values[i][value_types[v]];\r\n				}\r\n				else {\r\n					obj[key] = values[i][value_types[v]];\r\n				}\r\n\r\n			}\r\n		}\r\n	}\r\n	return obj;\r\n}\r\n\r\nfunction singleMetrics(tsd) {\r\n	var result = {};\r\n\r\n	for (t in tsd) {\r\n		for (v in value_types) {\r\n			if (getFieldBool(tsd[t], \'pointData.0.values.0.\' + [value_types[v]])) {\r\n				result[\'mssql_\' + getField(tsd[t], \'labelValues.3.stringValue\').toLowerCase()] = tsd[t].pointData[0].values[0][value_types[v]];\r\n				break;\r\n			}\r\n		}\r\n	}\r\n	return result;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value));\r\n\r\nif (params.audited === \'true\') {\r\n	base_paths.push(mssql_path + \'audits_size\');\r\n};\r\n\r\nvar filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	queries = [\r\n		{ name: \'base_\', data: { query: \'{\' + base_paths.join(\';\') + \'}\' + j_filter } },\r\n		{ name: \'mssql_\', data: { query: \'{\' + mssql_paths.join(\';\') + \'}\' + j_filter } }\r\n	];\r\n\r\nfor (q in queries) {\r\n	raw = getHttpData(url, params.token, queries[q].data);\r\n	obj = Object.assign(obj, rawMap(raw, queries[q].name));\r\n}\r\n\r\nobj.base_ram_pused = Math.floor(getField(obj, \'base_usage\') / getField(obj, \'base_quota\') * 100);\r\n\r\nvar single_queries = [\r\n	{ query: mssql_path + \'memory/page_operation_count\' + filter }\r\n];\r\n\r\nif (params.audited === \'true\') {\r\n	single_queries.push({ query: mssql_path + \'audits_upload_count\' + filter });\r\n}\r\n\r\nfor (q in single_queries) {\r\n	raw = getHttpData(url, params.token, single_queries[q]);\r\n	Object.assign(obj, singleMetrics(getField(raw, \'timeSeriesData\')));\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MSSQL metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','6de08b07cecc47a88bde22de5d1b4e5a','0','2','0'),
('44870','21','','10571','Schedulers get','gcp.cloudsql.mssql.schedulers.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/schedulers/\',\r\n	arr = [],\r\n	base_paths = [\'active_workers\', \'current_tasks\', \'current_workers\', \'pending_disk_io\', \'runnable_tasks\', \'work_queue\'];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	time_series = getField(raw, \'timeSeriesData\');\r\n\r\nfor (t in time_series) {\r\n	data = {\r\n		scheduler: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n		metrics: {}\r\n	};\r\n\r\n	for (i in metrics) {\r\n		re = /(^t_\\d+\\.value(_|\\.))/g;\r\n		data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n	}\r\n	arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'MSSQL schedulers data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','3c14882329b94b8e88ca5d85e21bb7c8','0','2','0'),
('44871','21','','10571','Databases get','gcp.cloudsql.mssql.db.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/transactions/\',\r\n	arr = [],\r\n	base_paths = [\r\n		\'log_bytes_flushed_count\',\r\n		\'transaction_count\'\r\n	];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	time_series = getField(raw, \'timeSeriesData\');\r\n\r\nfor (t in time_series) {\r\n	data = {\r\n		database: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n		metrics: {}\r\n	};\r\n\r\n	for (i in metrics) {\r\n		re = /(^t_\\d+\\.value(_|\\.))/g;\r\n		data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n	}\r\n	arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'MSSQL databases data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','ecdd1774ef744bcb93e8e4094e29772f','0','2','0'),
('44872','19','','10571','DB engine state','gcp.cloudsql.mssql.db.state','1m','31d','365d','0','3','','','','',NULL,'1086','','','0','','','','','0',NULL,'GCP Cloud SQL MSSQL DB Engine State.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/up | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','9806c645a10a4e1d8fbb39eb1d3ac993','0','2','0'),
('44873','21','','10572','Replica metrics get','gcp.cloudsql.mssql.repl.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/replication/\',\r\n	obj = {},\r\n	base_paths = [\r\n		\'bytes_sent_to_replica_count | map ignore [replica_name]\',\r\n		\'resent_message_count | map ignore [replica_name]\',\r\n		\'log_apply_pending_queue\',\r\n		\'log_bytes_received_count\',\r\n		\'recovery_queue\',\r\n		\'redone_bytes_count\'\r\n	];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	base_raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	keys = getField(base_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	values = getField(base_raw, \'timeSeriesData.0.pointData.0.values\'),\r\n	re = /(^t_\\d+\\.value\\.)/g;\r\n\r\nfor (i in keys) {\r\n	var value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n	for (v in value_types) {\r\n		if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n			obj[getField(keys[i], \'key\').replace(re, \'\')] = values[i][value_types[v]];\r\n		}\r\n	}\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MSSQL replica metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','f0d4c711863f4ca9ad76b0099a66a86d','0','2','0'),
('44874','19','','10573','Instance state','gcp.cloudsql.mysql.inst.state','1m','31d','365d','0','3','','','','',NULL,'1089','','','0','','','','','0',NULL,'GCP Cloud SQL MySQL Current instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/state | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','71559008ad444772b0b1212f715980ed','0','2','0'),
('44875','19','','10573','DB engine state','gcp.cloudsql.mysql.db.state','1m','31d','365d','0','3','','','','',NULL,'1088','','','0','','','','','0',NULL,'GCP Cloud SQL MySQL DB Engine State.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/up | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','948dac37023c4efcaf5f830ba5d4fafe','0','2','0'),
('44876','21','','10573','Metrics get','gcp.cloudsql.mysql.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/\',\r\n	mysql_path = \'cloudsql.googleapis.com/database/mysql/\',\r\n	obj = {},\r\n	base_paths = [\r\n		\'cpu/reserved_cores\',\r\n		\'cpu/usage_time\',\r\n		\'cpu/utilization\',\r\n		\'disk/read_ops_count\',\r\n		\'disk/write_ops_count\',\r\n		\'memory/quota\',\r\n		\'memory/total_usage\',\r\n		\'memory/usage\',\r\n		\'network/connections\',\r\n		\'network/received_bytes_count\',\r\n		\'network/sent_bytes_count  | map ignore [destination]\'\r\n	].map(function (path) { return base_path + path; }),\r\n	mysql_paths = [\r\n		\'innodb_buffer_pool_pages_dirty\',\r\n		\'innodb_buffer_pool_pages_free\',\r\n		\'innodb_buffer_pool_pages_total\',\r\n		\'innodb_data_fsyncs\',\r\n		\'innodb_os_log_fsyncs\',\r\n		\'innodb_pages_read\',\r\n		\'innodb_pages_written\',\r\n		\'queries\',\r\n		\'questions\',\r\n		\'received_bytes_count\',\r\n		\'sent_bytes_count\',\r\n		\'open_tables\',\r\n		\'open_table_definitions\'\r\n	].map(function (path) { return mysql_path + path; }).concat(\r\n		[\'disk/bytes_used\', \'disk/utilization\', \'disk/quota\'].map(function (path) { return base_path + path; }));\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nfunction rawMap(raw, prefix) {\r\n	var keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n		values = getField(raw, \'timeSeriesData.0.pointData.0.values\'),\r\n		re = /(^t_\\d+\\.value\\.)/g;\r\n\r\n	for (i in keys) {\r\n		var key = getField(keys[i], \'key\').replace(re, \'\'),\r\n			value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n		for (v in value_types) {\r\n			if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n				if (prefix) {\r\n					obj[prefix + key] = values[i][value_types[v]];\r\n				}\r\n				else {\r\n					obj[key] = values[i][value_types[v]];\r\n				}\r\n\r\n			}\r\n		}\r\n	}\r\n	return obj;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	queries = [\r\n		{ name: \'base_\', data: { query: \'{\' + base_paths.join(\';\') + \'}\' + j_filter } },\r\n		{ name: \'mysql_\', data: { query: \'{\' + mysql_paths.join(\';\') + \'}\' + j_filter } }\r\n	];\r\n\r\nfor (q in queries) {\r\n	raw = getHttpData(url, params.token, queries[q].data);\r\n	obj = Object.assign(obj, rawMap(raw, queries[q].name));\r\n}\r\n\r\nobj.base_ram_pused = Math.floor(getField(obj, \'base_usage\') / getField(obj, \'base_quota\') * 100);\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MySQL metrics in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','682484eaf1db4a239c69566a5cd492e2','0','2','0'),
('44877','21','','10574','Replica metrics get','gcp.cloudsql.mysql.repl.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/replication/\',\r\n	mysql_path = \'cloudsql.googleapis.com/database/mysql/replication/\',\r\n	raw_metrics,\r\n	obj = {},\r\n	base_paths = [\'network_lag\', \'replica_lag\'].map(function (path) { return base_path + path; }),\r\n	mysql_paths = [\r\n		\'last_io_errno\',\r\n		\'last_sql_errno\',\r\n		\'slave_io_running\',\r\n		\'slave_sql_running\'].map(function (path) { return mysql_path + path; }).concat(\r\n			[\'network_lag\', \'replica_lag\'].map(function (path) { return base_path + path; }));\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	metric_raw = getHttpData(url, params.token, { query: \'{\' + mysql_paths.join(\';\') + \'}\' + j_filter }),\r\n	metric_keys = getField(metric_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	metric_values = getField(metric_raw, \'timeSeriesData.0.pointData.0.values\'),\r\n	re = /(^t_\\d+\\.value\\.)/g;\r\n\r\nfor (i in metric_keys) {\r\n	var value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n	for (v in value_types) {\r\n		if (typeof metric_values[i][value_types[v]] !== \'undefined\') {\r\n			obj[getField(metric_keys[i], \'key\').replace(re, "")] = metric_values[i][value_types[v]];\r\n		}\r\n	}\r\n}\r\n\r\nvar state_raw = getHttpData(url, params.token, { query: base_path + \'state\' + filter }),\r\n	state_keys = getField(state_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	state_tsd = getField(state_raw, \'timeSeriesData\');\r\n\r\nfor (i in state_keys) {\r\n	var state_key = getField(state_keys[i], \'key\').replace(/value\\./g, \'\');\r\n\r\n	obj[state_key] = \'undefined\';\r\n	for (t in state_tsd) {\r\n		if (getField(state_tsd[t], \'pointData.0.values.\' + i + \'.boolValue\') == true) {\r\n			obj[state_key] = getField(state_tsd[t], \'labelValues.3.stringValue\');\r\n			break;\r\n		}\r\n	}\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MySQL replication metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','470200d2cca348bb8a670a2be3a270e3','0','2','0'),
('44878','21','','10575','Metrics get','gcp.cloudsql.pgsql.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/\',\r\n	pgsql_path = \'cloudsql.googleapis.com/database/postgresql/\',\r\n	obj = {},\r\n	value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nfunction rawMap(raw, prefix) {\r\n	var keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n		values = getField(raw, \'timeSeriesData.0.pointData.0.values\'),\r\n		re = /(^t_\\d+\\.value(_|\\.)|_sum$)/g;\r\n\r\n	for (i in keys) {\r\n		var key = getField(keys[i], \'key\').replace(re, \'\');\r\n\r\n		for (v in value_types) {\r\n			if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n				if (prefix) {\r\n					obj[prefix + key] = values[i][value_types[v]];\r\n				} else {\r\n					obj[key] = values[i][value_types[v]];\r\n				}\r\n\r\n			}\r\n		}\r\n	}\r\n	return obj;\r\n}\r\n\r\nfunction singleMetrics(tsd) {\r\n	result = {};\r\n	for (t in tsd) {\r\n		for (v in value_types) {\r\n			if (typeof tsd[t].pointData[0].values[0][value_types[v]] !== \'undefined\') {\r\n				result[\'pgsql_\' + getField(tsd[t], \'labelValues.3.stringValue\').toLowerCase()] = tsd[t].pointData[0].values[0][value_types[v]];\r\n			}\r\n		}\r\n	}\r\n	return result;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	base_paths = [\r\n		\'cpu/reserved_cores\',\r\n		\'cpu/usage_time\',\r\n		\'cpu/utilization\',\r\n		\'disk/read_ops_count\',\r\n		\'disk/write_ops_count\',\r\n		\'memory/quota\',\r\n		\'memory/total_usage\',\r\n		\'memory/usage\',\r\n		\'network/received_bytes_count\',\r\n		\'network/sent_bytes_count | map ignore [destination]\'\r\n	].map(function (path) { return base_path + path; }),\r\n	pgsql_paths = [\r\n		\'transaction_id_utilization \' + filter,\r\n		\'temp_bytes_written_count\' + filter + \' | sum\',\r\n		\'temp_files_written_count\' + filter + \' | sum\',\r\n		\'num_backends\' + filter + \' | sum\'\r\n	].map(function (path) { return pgsql_path + path; }).concat(\r\n		[\'disk/bytes_used\', \'disk/utilization\', \'disk/quota\'].map(function (path) { return base_path + path; })),\r\n	queries = [\r\n		{ name: \'base_\', data: { query: \'{\' + base_paths.join(\';\') + \'}\' + j_filter } },\r\n		{ name: \'pgsql_\', data: { query: \'{\' + pgsql_paths.join(\';\') + \'}\' + \'| within \' + params.time_window + \'| join\' } }\r\n	];\r\n\r\nfor (q in queries) {\r\n	raw = getHttpData(url, params.token, queries[q].data);\r\n	obj = Object.assign(obj, rawMap(raw, queries[q].name));\r\n}\r\n\r\nobj.base_ram_pused = Math.floor((getField(obj, \'base_usage\') / getField(obj, \'base_quota\')) * 100);\r\n\r\nvar single_paths = [\'transaction_id_count\', \'vacuum/oldest_transaction_age\'],\r\n	single_queries = single_paths.map(function (path) { return { query: pgsql_path + path + filter }; });\r\n\r\nfor (q in single_queries) {\r\n	raw = getHttpData(url, params.token, single_queries[q]);\r\n	Object.assign(obj, singleMetrics(getField(raw, \'timeSeriesData\')));\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'PostgreSQL metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','9bf09a42ddd64f7eabf6bbc011eda689','0','2','0'),
('44879','19','','10575','DB engine state','gcp.cloudsql.pgsql.db.state','1m','31d','365d','0','3','','','','',NULL,'1092','','','0','','','','','0',NULL,'GCP Cloud SQL PostgreSQL DB Engine State.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/up | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','27ad9640bf734dd49548c19241cc4838','0','2','0'),
('44880','19','','10575','Instance state','gcp.cloudsql.pgsql.inst.state','1m','31d','365d','0','3','','','','',NULL,'1093','','','0','','','','','0',NULL,'GCP Cloud SQL PostgreSQL Current instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/state | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','88fd41960538460ebfd2ed9194677cd1','0','2','0'),
('44881','21','','10576','Replica metrics get','gcp.cloudsql.pgsql.repl.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/replication/\',\r\n	pgsql_path = \'cloudsql.googleapis.com/database/postgresql/replication/\',\r\n	obj = {},\r\n	base_paths = [\'network_lag\', \'replica_lag\', \'log_archive_failure_count\', \'log_archive_success_count\'];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	metric_raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	metric_keys = getField(metric_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	metric_values = getField(metric_raw, \'timeSeriesData.0.pointData.0.values\'),\r\n	re = /(^t_\\d+\\.value\\.)/g;\r\n\r\nfor (i in metric_keys) {\r\n	var value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n	for (v in value_types) {\r\n		if (typeof metric_values[i][value_types[v]] !== \'undefined\') {\r\n			obj[getField(metric_keys[i], \'key\').replace(re, \'\')] = metric_values[i][value_types[v]];\r\n		}\r\n	}\r\n}\r\n\r\nvar state_raw = getHttpData(url, params.token, { query: base_path + \'state\' + filter }),\r\n	state_keys = getField(state_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	state_tsd = getField(state_raw, \'timeSeriesData\');\r\n\r\nfor (i in state_keys) {\r\n	var state_key = getField(state_keys[i], \'key\').replace(/value\\./g, \'\');\r\n\r\n	obj[state_key] = \'undefined\';\r\n	for (t in state_tsd) {\r\n		if (getField(state_tsd[t], \'pointData.0.values.\' + i + \'.boolValue\') == true) {\r\n			obj[state_key] = getField(state_tsd[t], \'labelValues.3.stringValue\');\r\n			break;\r\n		}\r\n	}\r\n}\r\n\r\nvar lag_raw = getHttpData(url, params.token, { query: pgsql_path + \'replica_byte_lag\' + \'| within \' + params.time_window + " | filter replica_name = \'" + params.database_id + "\'" }),\r\n	lag_tsd = getField(lag_raw, \'timeSeriesData\');\r\n\r\nfor (t in lag_tsd) {\r\n	obj[getField(lag_tsd[t], \'labelValues.3.stringValue\')] = getField(lag_tsd[t], \'pointData.0.values.0.int64Value\');\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'PostgreSQL replica metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','cb9c5aff913e4deeb29dfa1a20b5ff04','0','2','0'),
('44882','21','','10577','Metrics get','gcp.gce.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'compute.googleapis.com/\',\r\n	value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'],\r\n	re = /(^t_\\d+\\.value\\.)/g,\r\n	obj = {},\r\n	base_paths = [\r\n		\'instance/uptime_total\',\r\n		\'firewall/dropped_packets_count\',\r\n		\'firewall/dropped_bytes_count\',\r\n		\'instance/cpu/guest_visible_vcpus\',\r\n		\'instance/cpu/reserved_cores\',\r\n		\'instance/cpu/usage_time\',\r\n		\'instance/cpu/utilization\',\r\n		\'mirroring/mirrored_bytes_count\',\r\n		\'mirroring/mirrored_packets_count\'\r\n	],\r\n	e2_paths = [\r\n		\'instance/cpu/scheduler_wait_time\',\r\n		\'instance/memory/balloon/ram_size\',\r\n		\'instance/memory/balloon/ram_used\',\r\n		\'instance/memory/balloon/swap_in_bytes_count\',\r\n		\'instance/memory/balloon/swap_out_bytes_count\',\r\n	],\r\n	net_paths = [\r\n		\'instance/network/received_packets_count\',\r\n		\'instance/network/received_bytes_count\',\r\n		\'instance/network/sent_bytes_count\',\r\n		\'instance/network/sent_packets_count\'\r\n	],\r\n	integrity_paths = [\r\n		\'instance/integrity/late_boot_validation_status\',\r\n		\'instance/integrity/early_boot_validation_status\'\r\n	];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction getFieldBool(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			return false;\r\n		}\r\n		data = data[step];\r\n	}\r\n	return true;\r\n}\r\n\r\nfunction queryMap(array, path, filter) {\r\n	var query_params = \'{\' + array.map(function (element) { return path + element; }).join(\';\') + \'}\';\r\n	return { query: query_params + filter }\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'instance_id\', \'token\', \'machine_type\', \'integrity\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\' || params[field].match(/^\\{\\$.*\\}$/)) {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	if (params.integrity !== \'true\' && params.integrity !== \'false\') {\r\n		throw \'Incorrect integrity state definition type. Valid definitions: true/false\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nfunction nestedMap(raw) {\r\n	var ids = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n		ltsd = getField(raw, \'timeSeriesData\'),\r\n		result = {};\r\n\r\n	for (i in ids) {\r\n		var id = getField(ids[i], \'key\').replace(re, \'\');\r\n		result[id] = {};\r\n		for (t in ltsd) {\r\n			for (v in value_types) {\r\n				if (getFieldBool(ltsd[t], \'pointData.0.values.\' + [i] + \'.\' + [value_types[v]])) {\r\n					[\'stringValue\', \'boolValue\'].forEach(function (type) {\r\n						if (getFieldBool(ltsd[t], \'labelValues.4.\' + [type])) {\r\n							result[id][ltsd[t].labelValues[4][type]] = ltsd[t].pointData[0].values[i][value_types[v]];\r\n						}\r\n					});\r\n\r\n				}\r\n			}\r\n		}\r\n	}\r\n	return result;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value));\r\n\r\nif (params.machine_type.match(/e2.*/)) {\r\n	base_paths = base_paths.concat(e2_paths);\r\n}\r\n\r\nvar filter = \' | within \' + params.time_window + " | filter instance_id = \'" + params.instance_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	raw = getHttpData(url, params.token, queryMap(base_paths, base_path, j_filter)),\r\n	keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	values = getField(raw, \'timeSeriesData.0.pointData.0.values\');\r\n\r\nfor (i in keys) {\r\n	for (v in value_types) {\r\n		if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n			obj[getField(keys[i], \'key\').replace(re, \'\')] = values[i][value_types[v]];\r\n		}\r\n	}\r\n}\r\n\r\nif (params.machine_type.match(/e2.*/)) {\r\n	obj.ram_pused = Math.floor((getField(obj, \'ram_used\') / getField(obj, \'ram_size\')) * 100);\r\n}\r\n\r\nvar mirr_raw = getHttpData(url, params.token, { query: base_path + \'mirroring/dropped_packets_count\' + filter }),\r\n	tsd = getField(mirr_raw, \'timeSeriesData\');\r\n\r\nfor (t in tsd) {\r\n	for (v in value_types) {\r\n		if (getFieldBool(tsd[t], \'pointData.0.values.0.\' + [value_types[v]])) {\r\n			obj[getField(tsd[t], \'labelValues.3.stringValue\')] = getField(tsd[t], \'pointData.0.values.0.\' + [value_types[v]]);\r\n		}\r\n	}\r\n}\r\n\r\nvar net_metrics = getHttpData(url, params.token, queryMap(net_paths, base_path, j_filter));\r\n\r\nObject.assign(obj, nestedMap(net_metrics));\r\n\r\nif (params.integrity === \'true\') {\r\n	integrity_metrics = getHttpData(url, params.token, queryMap(integrity_paths, base_path, j_filter));\r\n\r\n	var keys = getField(integrity_metrics, \'timeSeriesDescriptor.pointDescriptors\'),\r\n		tsd = getField(integrity_metrics, \'timeSeriesData\');\r\n\r\n	for (i in keys) {\r\n		var key = getField(keys[i], \'key\').replace(re, \'\');\r\n\r\n		obj[key] = \'undefined\';\r\n		for (t in tsd) {\r\n			if (getField(tsd[t], \'pointData.0.values.\' + i + \'.int64Value\') == 1) {\r\n				obj[key] = getField(tsd[t], \'labelValues.4.stringValue\');\r\n				break;\r\n			}\r\n		}\r\n	}\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'GCP Compute Engine metrics get in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','723fbff060ab41a39322bc0d6d8b1f84','0','2','0'),
('44883','21','','10577','Disks get','gcp.gce.disks.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'compute.googleapis.com/instance/disk/\',\r\n	base_paths = [\'read_ops_count\', \'read_bytes_count\', \'write_bytes_count\', \'write_ops_count\'];\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'instance_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	j_filter = \' | within \' + params.time_window + " | filter instance_id = \'" + params.instance_id + "\'" + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	time_series = getField(raw, \'timeSeriesData\'),\r\n	arr = [];\r\n\r\nfor (t in time_series) {\r\n	data = {\r\n		disk_name: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n		device_type: getField(time_series[t], \'labelValues.4.stringValue\'),\r\n		storage_type: getField(time_series[t], \'labelValues.6.stringValue\'),\r\n		metrics: {}\r\n	};\r\n\r\n	for (i in metrics) {\r\n		re = /(^t_\\d+\\.value(_|\\.))/g;\r\n		data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n	}\r\n	arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'Disk entities and metrics related to a particular instance.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','4bdd3662247749a69bb59e6643ba7b9a','0','2','0'),
('44884','19','','10577','Instance state','gcp.gce.instance.state','1m','31d','365d','0','3','','','','',NULL,'1095','','','0','','','','','0',NULL,'GCP Compute Engine instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://compute.googleapis.com/compute/v1/projects/{$GCP.PROJECT.ID}/zones/{$GCE.INSTANCE.ZONE}/instances/{HOST.NAME}','','','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','0','0','0','0','0','0','3f82955d43694b25b1e96c9b8f4f6ffb','0','2','0'),
('45080','19','','10323','Get databases info','clickhouse.databases','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get information about databases.','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"select database, sum(bytes) as bytes, count(distinct table) as tables, sum(rows) as rows from system.parts where active = 1 group by database format JSON"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','b2341064c7624848bfcac198d3b5ffa9','0','2','0'),
('45128','20','walk[1.3.6.1.4.1.9.9.48.1.1.1.2,1.3.6.1.4.1.9.9.48.1.1.1.5,1.3.6.1.4.1.9.9.48.1.1.1.6]','10218','Cisco IOS: SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-MEMORY-POOL-MIB\r\nDiscovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.\r\nhttp://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed5f0ebd013644adbad71e8b93d481de','0','2','0'),
('45129','20','walk[1.3.6.1.2.1.47.1.1.1.1.5,1.3.6.1.2.1.47.1.1.1.1.7,1.3.6.1.2.1.47.1.1.1.1.11]','10218','Cisco IOS: SNMP walk entity serial numbers','system.hw.serialnumber.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nEntity Serial Numbers Discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c8c82e3502c46d9b7603812d02ce27b','0','2','0'),
('45130','20','walk[1.3.6.1.4.1.9.9.109.1.1.1.1.5,1.3.6.1.4.1.9.9.109.1.1.1.1.8]','10218','Cisco IOS: SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable,\r\nindexed with cpmCPUTotalIndex.\r\nThis table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router,\r\nlike different CPU chips, group of CPUs, or CPUs in different modules/cards.\r\nIn case of a single CPU, cpmCPUTotalTable has only one entry.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3208aa4fb7c14623bc5129018172e3b9','0','2','0'),
('45131','20','walk[1.3.6.1.4.1.9.9.13.1.3.1.2,1.3.6.1.4.1.9.9.13.1.3.1.3,1.3.6.1.4.1.9.9.13.1.3.1.6]','10218','Cisco IOS: SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status maintained by the environmental monitor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e64d32fe956f481eb6a3899f8c1e09d9','0','2','0'),
('45132','20','walk[1.3.6.1.4.1.9.9.13.1.5.1.2,1.3.6.1.4.1.9.9.13.1.5.1.3]','10218','Cisco IOS: SNMP walk PSUs','sensor.psu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The table of power supply status maintained by the environmental monitor card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a44183c252e4160837cfd960f755097','0','2','0'),
('45133','20','walk[1.3.6.1.4.1.9.9.13.1.4.1.2,1.3.6.1.4.1.9.9.13.1.4.1.3]','10218','Cisco IOS: SNMP walk fans','sensor.fans.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering system fans.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7eb9bdaf14274e1a99c0ff2ac17f0723','0','2','0'),
('45134','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10218','Cisco IOS: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58168a9cd5464229a9cbb3fb0c978e85','0','2','0'),
('45135','20','walk[1.3.6.1.2.1.10.7.2.1.19,1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2]','10218','Cisco IOS: SNMP walk EtherLike-MIB interfaces','net.if.duplex.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with `up(1)` Operational Status are discovered.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8734672a10d41c2ba7c1f00171bb93e','0','2','0'),
('45136','20','walk[1.3.6.1.4.1.9.9.48.1.1.1.2,1.3.6.1.4.1.9.9.48.1.1.1.5,1.3.6.1.4.1.9.9.48.1.1.1.6]','10220','Cisco IOS: SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-MEMORY-POOL-MIB\r\nDiscovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.\r\nhttp://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','011212452fb0421aa913ceee4f59d17b','0','2','0'),
('45137','20','walk[1.3.6.1.2.1.47.1.1.1.1.5,1.3.6.1.2.1.47.1.1.1.1.7,1.3.6.1.2.1.47.1.1.1.1.11]','10220','Cisco IOS: SNMP walk entity serial numbers','system.hw.serialnumber.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nEntity Serial Numbers Discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b92777596e2442991618e5feb47567c','0','2','0'),
('45138','20','walk[1.3.6.1.4.1.9.9.13.1.3.1.2,1.3.6.1.4.1.9.9.13.1.3.1.3,1.3.6.1.4.1.9.9.13.1.3.1.6]','10220','Cisco IOS: SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status maintained by the environmental monitor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9620c1de761246e1806fda680ede7bba','0','2','0'),
('45139','20','walk[1.3.6.1.4.1.9.9.13.1.5.1.2,1.3.6.1.4.1.9.9.13.1.5.1.3]','10220','Cisco IOS: SNMP walk PSUs','sensor.psu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The table of power supply status maintained by the environmental monitor card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cdb1b03725624ea18071a197b7e7f21e','0','2','0'),
('45140','20','walk[1.3.6.1.4.1.9.9.13.1.4.1.2,1.3.6.1.4.1.9.9.13.1.4.1.3]','10220','Cisco IOS: SNMP walk fans','sensor.fans.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering system fans.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5cabdb91f004235b481de453db637c6','0','2','0'),
('45141','20','walk[1.3.6.1.4.1.9.9.48.1.1.1.2,1.3.6.1.4.1.9.9.48.1.1.1.5,1.3.6.1.4.1.9.9.48.1.1.1.6]','10253','Cisco IOS: SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-MEMORY-POOL-MIB\r\nDiscovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.\r\nhttp://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe26641865204720a592be13d4793c99','0','2','0'),
('45142','20','walk[1.3.6.1.2.1.47.1.1.1.1.5,1.3.6.1.2.1.47.1.1.1.1.7,1.3.6.1.2.1.47.1.1.1.1.11]','10253','Cisco IOS: SNMP walk entity serial numbers','system.hw.serialnumber.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nEntity Serial Numbers Discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','79968a2e878c45c290f79902e9e1cf37','0','2','0'),
('45143','20','walk[1.3.6.1.4.1.9.9.109.1.1.1.1.5]','10253','Cisco IOS: SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable,\r\nindexed with cpmCPUTotalIndex.\r\nThis table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router,\r\nlike different CPU chips, group of CPUs, or CPUs in different modules/cards.\r\nIn case of a single CPU, cpmCPUTotalTable has only one entry.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d188b4d086734f438c3752bb3d9b1971','0','2','0'),
('45144','20','walk[1.3.6.1.4.1.9.9.13.1.3.1.2,1.3.6.1.4.1.9.9.13.1.3.1.3,1.3.6.1.4.1.9.9.13.1.3.1.6]','10253','Cisco IOS: SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status maintained by the environmental monitor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7568839f76854edca01234fb707e1558','0','2','0'),
('45145','20','walk[1.3.6.1.4.1.9.9.13.1.5.1.2,1.3.6.1.4.1.9.9.13.1.5.1.3]','10253','Cisco IOS: SNMP walk PSUs','sensor.psu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The table of power supply status maintained by the environmental monitor card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c7987c8fb2748978fd9f3f84b5c96d5','0','2','0'),
('45146','20','walk[1.3.6.1.4.1.9.9.13.1.4.1.2,1.3.6.1.4.1.9.9.13.1.4.1.3]','10253','Cisco IOS: SNMP walk fans','sensor.fans.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering system fans.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa5166db7ce14744817cf098c4be46f7','0','2','0'),
('45147','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10253','Cisco IOS: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb44245cd4224bbdaa8c5546ad483848','0','2','0'),
('45148','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10449','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f40d0ccfccd748128775c7bb3f4d9177','0','2','0'),
('45149','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10449','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe052ca02fe84ec99dfe01443be4ddf0','0','2','0'),
('45152','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10449','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a3790b7f9524491ea12c8fae01ec0121','0','2','0'),
('45153','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10449','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f553b00ae11b448cb29889e1efc171f0','0','2','0'),
('45154','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10450','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b1edf5ca04f4a409ac64670e9cc47d5','0','2','0'),
('45155','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10450','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9499128c1774463bab250708d911a318','0','2','0'),
('45158','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10450','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0609a92c671e4d23a17cda1c2f61999d','0','2','0'),
('45159','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10450','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','026dd9264a97421f91194ddc2cea5d6c','0','2','0'),
('45160','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10451','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','263db67af47d40bc9d63639383284fff','0','2','0'),
('45161','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10451','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ea40037cf5048cbbbd791ebf754c473','0','2','0'),
('45164','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10451','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8450323925164aa8a98411b526de8178','0','2','0'),
('45165','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10451','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a5e69b0ccb2a498ba287245bf8914985','0','2','0'),
('45166','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10452','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89c237c439e146af9ff1e84f70330b6c','0','2','0'),
('45167','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10452','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00bc8fe0f076428bb92c8c5cbe2de8b1','0','2','0'),
('45170','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10452','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3da4c495d5d0420abeb9612840241097','0','2','0'),
('45171','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10452','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d00e09c5cf7145b59c0c3ee462b5ec10','0','2','0'),
('45172','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10453','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f3db6fc2fa544ee8b7603024016784f3','0','2','0'),
('45173','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10453','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','601c6b5e9f224b8f861bf05a3e2ac0dd','0','2','0'),
('45176','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10453','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba6810f58e114c5abcb0ff9c1e105d53','0','2','0'),
('45177','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10453','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9c2738cd8cde4634bf406c3fd3da5181','0','2','0'),
('45178','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10454','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae6075aa924446c8a73be7af098aed96','0','2','0'),
('45179','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10454','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0371d3a8d3ba4977b118a1d2c8a37c71','0','2','0'),
('45182','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10454','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f7af549a539443eb2ea18383157e818','0','2','0'),
('45183','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10454','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','940603fe2a43458584566823954d7106','0','2','0'),
('45184','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10455','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','757ab436c2aa4500a6800ec367cdd109','0','2','0'),
('45185','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10455','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9dff6be2d3694e84aacf544f3e859790','0','2','0'),
('45188','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10455','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','409c178fb90841ffb1f2825c4eb01140','0','2','0'),
('45189','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10455','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2848d2045f9c4a76ac49bee199f622d7','0','2','0'),
('45190','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10456','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1fcdd40fa482412bbd5045c0b453c662','0','2','0'),
('45191','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10456','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53bc8450cca74b67bde3405684dd26a9','0','2','0'),
('45194','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10456','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a2e6607f1e83434bb1ae4d14727613f1','0','2','0'),
('45195','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10456','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9838b7f90f4242c9abf16e39b7a7da81','0','2','0'),
('45196','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10457','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be26aef4d3d54c5289ecbddd5cf65d49','0','2','0'),
('45197','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10457','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cd91800dd174e29a159df144a897586','0','2','0'),
('45200','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10457','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3cda334d0ed432781c81d0330f6c449','0','2','0'),
('45201','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10457','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','462a235c5c604d689f2d50bf880d5dee','0','2','0'),
('45202','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10458','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d35b717a39b44521b4cf3c9f66d090cc','0','2','0'),
('45203','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10458','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84ba58953f8e4ee7ad5c8a3278253136','0','2','0'),
('45206','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10458','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d2521940a8b421496c046de602748ad','0','2','0'),
('45207','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10458','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4642df48e6e46ae878f8bbee74bfe1d','0','2','0'),
('45208','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10459','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d427efe6eda4905a4ea8838807a3aec','0','2','0'),
('45209','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10459','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a83fbe37f80430f986267edf2a52d4f','0','2','0'),
('45212','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10459','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d11712ab5740403f8ce5172310ce6f46','0','2','0'),
('45213','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10459','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c94d1e5e789f4521bca649ff8106b4ab','0','2','0'),
('45214','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10460','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','040616eaf53849ecbc02a4c7dea5ebd1','0','2','0'),
('45215','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10460','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bfb0d94318e1416ba02a6d691a72e5a9','0','2','0'),
('45218','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10460','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6704e6cb375f4c1fa6ba5dd0d7cc48b7','0','2','0'),
('45219','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10460','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7eea07e69bb74773b4741a220560dc21','0','2','0'),
('45220','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10461','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa0703e764af4de88dd966d296da4cea','0','2','0'),
('45221','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10461','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2572809e413471fa91f33189f575dc4','0','2','0'),
('45224','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10461','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20bfa7ce2793454a9c6215dc31c1c3a2','0','2','0'),
('45225','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10461','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bdb027dba5ee41ad9213b392a20b42f2','0','2','0'),
('45226','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10462','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ae38813c9984ddd8aae451c727200b3','0','2','0'),
('45227','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10462','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8edfe1c42b048e69048164c04f24c99','0','2','0'),
('45230','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10462','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6cf5e50c19624d41bf53759f0dc10b4b','0','2','0'),
('45231','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10462','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d99f44d8cd946c080edf97cdd666c4e','0','2','0'),
('45232','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10463','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d10f1085341451cba47f63b06a4a06f','0','2','0'),
('45233','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10463','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d012ab84c8d6422cb087607c6d840358','0','2','0'),
('45236','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10463','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b78240b0045d4816a6df23d650063d5e','0','2','0'),
('45237','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10463','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a119a4a9a8c4da0972b5ce82723d645','0','2','0'),
('45238','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10464','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e70529cb6c5745a688ab44cf3bf4fd79','0','2','0'),
('45239','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10464','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d449d74135b2411bada1c4f861fc471c','0','2','0'),
('45242','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10464','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4776694f7d35412e9269dcda24a9a884','0','2','0'),
('45243','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10464','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6eea8e195ed24eefa9cb2c11df07683b','0','2','0'),
('45244','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10465','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4aa12d55f344d8e8a2f78ebb2242db8','0','2','0'),
('45245','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10465','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b448f8cfabf640ae9f61470baf2dbab1','0','2','0'),
('45248','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10465','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0063fa878ba4844b1a81eec31be3a8e','0','2','0'),
('45249','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10465','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5ec4870e9f7c43c3878cf05e1f4dbf09','0','2','0'),
('45250','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10466','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37778f9029cd486fbeedd2db776d7d8f','0','2','0'),
('45251','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10466','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd348b7d795641c8ba04fa4eab0f312d','0','2','0'),
('45254','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10466','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','633c28cb77e345edb42366280afe8b03','0','2','0'),
('45255','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10466','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','beda6c376a0e46ee8558a0084690eeb4','0','2','0'),
('45256','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10467','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ad2255031b94fd8a344a9436f2154af','0','2','0'),
('45257','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10467','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b555f355a97e4a1998ebb08df62c380e','0','2','0'),
('45260','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10467','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8c82a88fd1e84ebc8b364e25cd454b43','0','2','0'),
('45261','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10467','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5e5336f6421402b8c5b2ea6df651c21','0','2','0'),
('45262','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10468','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf66ea54f8874cc89bb11a4a3c325d1f','0','2','0'),
('45263','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10468','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be3ad72bd2164a5cba49bc9423c97595','0','2','0'),
('45266','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10468','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5776492fa6f4d71a1897a7cfa6b6917','0','2','0'),
('45267','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10468','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','150711267ef340699fe081bb23e7331f','0','2','0'),
('45268','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10469','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b74f8ee93c742649c4b0b663338befa','0','2','0'),
('45269','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10469','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3a059306c60489dbf7a7417f3a1e072','0','2','0'),
('45272','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10469','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f509a71c40348ba9502fd6eeb795589','0','2','0'),
('45273','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10469','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b6cbc7e31c0454c901e424757751474','0','2','0'),
('45274','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10470','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27b2bb60cd234327bd82b0016d723e32','0','2','0'),
('45275','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10470','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c56b7dd474b64fb59d5088340e0de6c0','0','2','0'),
('45278','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10470','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4110ec0e7474808a9d0111fe64a9bc8','0','2','0'),
('45279','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10470','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b36357da06d4185815f5cd6f62bac4a','0','2','0'),
('45280','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10471','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2529412985f84e19a5516eff963a8498','0','2','0'),
('45281','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10471','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3760283279a4405fa74cd33f352731e6','0','2','0'),
('45284','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10471','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3fb9a05330114b8bacbe7f172a782063','0','2','0'),
('45285','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10471','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fddaf4522c1f4d18af49e3bccbc63ee3','0','2','0'),
('45286','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10472','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ec72049975a4c9d8597414e898055ab','0','2','0'),
('45287','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10472','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b4fcab963ff43adb954043ac7e310a0','0','2','0'),
('45290','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10472','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a352e9a765d441a1ab10e6966fb27dfd','0','2','0'),
('45291','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10472','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','124fa909031144c5b26c91c2f5cb71a1','0','2','0'),
('45292','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10473','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31743a0c3cb14763a68b81cc715f6658','0','2','0'),
('45293','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10473','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d26a15dbe3bf4358adbc8c423c4387fc','0','2','0'),
('45296','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10473','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac29915d449346a48c951d4b784e3c5f','0','2','0'),
('45297','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10473','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27e581ee8e544c2598c03060bb77c087','0','2','0'),
('45298','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10474','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','93c10a76cad8418b874104acf355874c','0','2','0'),
('45299','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10474','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a818c4ca96d4de5ae22a08f05005619','0','2','0'),
('45302','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10474','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0701e676a22f4ef894e4180f4ef3e2e4','0','2','0'),
('45303','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10474','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','352106c95d3f42b39c90b3eb69832ec0','0','2','0'),
('45304','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10475','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d9dad10e76a949bd8447e97f6b566ba8','0','2','0'),
('45305','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10475','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e69894166ce430f8a7bf30e51948684','0','2','0'),
('45308','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10475','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e02843c30d241f8bcf0dd63715fda44','0','2','0'),
('45309','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10475','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c6d299419b845b99644d879daa6b0e1','0','2','0'),
('45310','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10476','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','85468f79d320417ea0f0e28087c75565','0','2','0'),
('45311','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10476','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','778d3453ddb84b53ac3598bf8ae78286','0','2','0'),
('45314','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10476','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0ca8eb8ed89a4e1eb5f4b40050a3fa7a','0','2','0'),
('45315','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10476','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ef56761ca344a9a8774ad109bc00834','0','2','0'),
('45316','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10477','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e1fc1f83c9754629ba9c77af9edcaabe','0','2','0'),
('45317','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10477','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eae8e0a3cf144efc8decc672413bf511','0','2','0'),
('45320','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10477','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5ff7db372af4f2b92dfe19d45ee1b9d','0','2','0'),
('45321','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10477','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9aa7461f98fa4a5db662b35466b0b102','0','2','0'),
('45322','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10478','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a7e39d9bd554b578f41eb1c03b14523','0','2','0'),
('45323','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10478','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56d7791a6ba84e47b5042a035cf9a1ee','0','2','0'),
('45326','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10478','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b5526a8b35c4733bbb79606d7818749','0','2','0'),
('45327','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10478','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','afec8f57e23f42b2837fb036952f649c','0','2','0'),
('45328','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10479','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c1e35414044f415fae94d45754fb5c8f','0','2','0'),
('45329','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10479','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42b758a3d32b46499e2242fb083896f5','0','2','0'),
('45332','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10479','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d09dfb0d4a7141d797d8f48b97564953','0','2','0'),
('45333','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10479','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65e7c0f418a94507a124ae74e9ba302b','0','2','0'),
('45334','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10480','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0efa7e7c390457b860529cd06839d09','0','2','0'),
('45335','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10480','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eace29d74902498794e0b471d478e42b','0','2','0'),
('45338','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10480','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c2f6f54f1b7498fa4c038a6cd8e1f26','0','2','0'),
('45339','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10480','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc31d87a9f76429d9063aa89c1e99229','0','2','0'),
('45340','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10481','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','32ee0bad03f64031b06626fd4ad22991','0','2','0'),
('45341','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10481','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf0b87d2fca34aa0b99d58251f438c27','0','2','0'),
('45344','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10481','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f44c6ec36f442b490cac1231bbad884','0','2','0'),
('45345','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10481','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3416ecf2fd304658b724b3c0f5de202e','0','2','0'),
('45346','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10482','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d86496cfc8444af2aabc000e6a80b689','0','2','0'),
('45347','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10482','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cd88ad46ac74b3cb6da7702f7eade1b','0','2','0'),
('45350','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10482','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0ae9aa61be043309a13e2675ba8fc3d','0','2','0'),
('45351','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10482','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','315cf9b2115041108a9c509650b4934d','0','2','0'),
('45352','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10483','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0b8af43957d41bd8b69e6512f6b6a6a','0','2','0'),
('45353','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10483','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f7865bcd7ec419bbf6598b2e8e41c39','0','2','0'),
('45356','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10483','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0402d2260bea47fba074bd90e441dd88','0','2','0'),
('45357','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10483','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','63022c75670f4965bf5f9ffe2ae5ce98','0','2','0'),
('45358','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10484','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37a9d23461a8465a848d0adebbb5e5e1','0','2','0'),
('45359','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10484','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09408704f52d4a8abd39fc674319a385','0','2','0'),
('45362','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10484','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fabcdd6078443f1b27add9103ac8e73','0','2','0'),
('45363','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10484','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','392f67c076ea43bd8fb2e356e0b11ebb','0','2','0'),
('45364','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10485','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c92b96aea704a1f9d2140e1a69a6e52','0','2','0'),
('45365','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10485','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff529ff6cb624b9092ab5d06ddfeb6a9','0','2','0'),
('45368','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10485','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22988243945244b0a8170aa3e50f904e','0','2','0'),
('45369','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10485','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee7ed053257048ffa7edae3b2b0a100f','0','2','0'),
('45370','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10486','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ff6648e94ea41198a454e9fe2c95c83','0','2','0'),
('45371','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10486','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29d5c318ee4b4a76bed39f0caa1a4ed1','0','2','0'),
('45374','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10486','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05b58973c1d446fb9093253f30c3478e','0','2','0'),
('45375','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10486','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e4c6db52cf54c12afcc627a746c56c1','0','2','0'),
('45376','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10487','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d170f05138c34010b66e2bf13a40685d','0','2','0'),
('45377','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10487','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f7e1d9451304f0788a95297eca8c5a5','0','2','0'),
('45380','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10487','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f06a59ecc054d609afee34922983993','0','2','0'),
('45381','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10487','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','90beada4eaac4ebe87cceb3b07e4ef54','0','2','0'),
('45382','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10488','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f55f9ec7c2c1456295be98b7e47b3b02','0','2','0'),
('45383','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10488','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','150579efc2dd48c28f7cbc1d2186fa8b','0','2','0'),
('45386','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10488','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','77f78108b48c4d81a922bd23f233466f','0','2','0'),
('45387','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10488','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','77509cb42fce4c169c6057f146a8b79a','0','2','0'),
('45388','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10489','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c654378ae0234392b1526df325125b0a','0','2','0'),
('45389','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10489','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd634cc1e804449b90693bf1925dc3d4','0','2','0'),
('45392','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10489','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d2748be91c24dc69202b9fed8ecd8b8','0','2','0'),
('45393','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10489','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aec4de5980224cb8b4f7e573866ea86d','0','2','0'),
('45394','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10490','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad95f1d123f54de3a2b06dfa32e25eed','0','2','0'),
('45395','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10490','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed241d40ab044cb3ade0c7b4b504cade','0','2','0'),
('45398','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10490','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','44d98891c0a04a8680fe30331f0e44ac','0','2','0'),
('45399','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10490','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2999403c64bb45cfb237d11fa8392562','0','2','0'),
('45400','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10491','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','376db50b5a4e41cc9e6a2d6e0034639c','0','2','0'),
('45401','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10491','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50b5f8dc5e3042cdac11d97d7cce14bd','0','2','0'),
('45404','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10491','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','debb90a64e164da098f27fe0a44fd18e','0','2','0'),
('45405','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10491','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f59fcb385c5452f93b3d893522a9917','0','2','0'),
('45406','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10492','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d3a2f07ab8643668864e90203bdaaa1','0','2','0'),
