/* - Ċ Ġ* Ġ#% L Ċ Ġ* ĠCloud Spec ĠCore ĠLibrary Ċ Ġ* Ġ%% Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠE ze qu iel ĠF on cub iert a Ċ Ġ* Ġ%% Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* ĠĊ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* ĠĊ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ġ# L % Ċ Ġ*/ Ċ package Ġcloud spec . model Ċ Ċ import Ġarrow . core . Option Ċ import Ġarrow . core . none Ċ import Ġarrow . core . to Option Ċ Ċ /** Ċ Ġ* ĠDefine Ġthe Ġreference Ġof Ġa Ġresource Ġdefinition . Ċ Ġ*/ Ċ data Ġclass ĠResource Def Ref ( ĊĠĠĠĠĠĠĠ Ġval Ġprovider Name : ĠString , ĊĠĠĠĠĠĠĠ Ġval ĠgroupName : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġresource Name : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"$ provider Name :$ groupName :$ resourceName " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBuild Ġa Ġresource Ġdefinition Ġreference Ġobject Ġfrom Ġstring . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġref String ĠResource Ġdefinition Ġreference Ġas Ġstring . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠOptional Ġresource Ġdefinition Ġreference . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom String ( ref String : ĠString ): ĠOption < Resource Def Ref > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġmanage Ġnull Ġor Ġmalformed Ġstrings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparts Ġ= Ġref String . split (" :" . to Regex ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( parts . size Ġ!= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnone () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource Def Ref ( parts [ 0 ], Ġparts [ 1 ], Ġparts [ 2 ]). to Option () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ