Parsing an alarm source path with API function?

I presume that there’s an API call we can use to parse alarm source paths properly to pull out the provider, tagpath, and alarm name, without resorting to using split(':')s and fixed indices which just feels dodgy.
E.g. parsing this

almSource = prov:{}:/tag:{}:/alm:{}
almSourceList = almSource.split(':')

prov = almSourceList[1]
tag = almSourceList[3]
alm = almSourceList[5]