{"version":3,"file":"09368246cc.js","mappings":"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AiB,iBAANA,EACT,OAAO,EAIT,IACGA,EAAE5B,eAAe,iBACjB4B,EAAE5B,eAAe,WACjB4B,EAAE5B,eAAe,SAElB,OAAO,EAGT,MAAM,YAAClb,EAAW,MAAE2Y,EAAK,MAAEC,GAASkE,EAEpC,SAAK9c,GAAsC,iBAAhBA,IAItB2Y,IAAUC,IAIVmuC,EAAcpuC,KAAWouC,EAAcnuC,GAIjC,IAGPyuC,EAA2B,CAAC,EAYlC,OAVAD,EAAiBrsD,SACd6kB,IACC,MAAM,YAAC5f,EAAW,MAAE2Y,EAAK,MAAEC,GAASgH,EAE9B/H,GAAY,OAAqB,CAACc,QAAOC,UAC3Cf,IACFwvC,EAAarnD,GAAe6X,E,IAI3BwvC,CAAY,EA0BVC,CAA2B7uC,GACP,iBAAXA,EACTwuC,EAAqBxuC,GAErB,CAAC,EAIC8uC,EAAuB9uC,GAC3BwuC,EAAqBxuC,GC8fjB+uC,EAAY,CACvB,QACA,MACA,iBACA,eACA,qBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,kBACA,qBACA,mBACA,eACA,oBACA,eACA,iBACA,eACA,uBACA,kBACA,gBACA,kBACA,kBACA,kBACA,gBACA,sBACA,cACA,iBACA,kBACA,gBACA,kBACA,eACA,oBACA,cACA,gBACA,oBACA,gBACA,gBACA,gBACA,gBACA,iBACA,mBACA,kBACA,iBACA,kBACA,gBACA,oBACA,qBACA,oBACA,kBACA,kBACA,iBACA,eACA,kBACA,eACA,oBACA,mBACA,kBACA,oBACA,iCACA,8BACA,mCACA,4BACA,0BACA,6BACA,4BACA,iCACA,0BACA,6BACA,6BACA,4BACA,4BACA,gBACA,mBACA,mBACA,eACA,gBACA,yBACA,mBACA,gBACA,iBACA,uBACA,oBACA,iBACA,gBACA,uBACA,wBACA,uBACA,iBACA,kBACA,oBACA,kBACA,iBACA,kBACA,oBACA,wBACA,kBACA,qBACA,kBACA,iBACA,kBACA,uBACA,iBACA,uBACA,iBACA,kBACA,mBACA,mBACA,mBACA,sBACA,mBACA,sBACA,qBACA,oBACA,oBACA,kBACA,oBACA,qBACA,kBACA,qBACA,oBACA,oBACA,iBACA,kBACA,iBACA,qBACA,+BACA,uBACA,0BACA,6BACA,4BACA,wBACA,4BACA,0BACA,uBACA,iBACA,kBACA,kBACA,gBACA,iBACA,8BACA,8BACA,kBACA,qBACA,iBACA,eACA,sBACA,qBACA,wBACA,iBACA,kBACA,iBACA,kBACA,qBACA,oBACA,mBACA,kBACA,oBACA,iBACA,qBACA,sBACA,mBACA,kBACA,oBACA,qBACA,mBACA,qBACA,iBACA,mBACA,kBACA,eACA,kBACA,8BACA,8BACA,iCACA,kBACA,iBACA,sBACA,qBACA,kBACA,wBACA,yBACA,qBACA,sBACA,sBACA,uBACA,sBACA,uBACA,iBACA,iBACA,mBACA,qBACA,kBACA,uBACA,mBACA,mBACA,wBACA,oBACA,uBACA,mBACA,gBACA,wBACA,mBACA,mBACA,mBACA,oBACA,qBACA,wBACA,sBACA,gBACA,sBACA,kBACA,kBACA,kBACA,oBACA,iBACA,qBACA,mBACA,kBACA,sBACA,mBACA,mBACA,4BACA,uBACA,oBACA,qBACA,oBACA,qBACA,wBACA,mBACA,mBACA,oBACA,sBACA,YACA,cACA,aACA,cACA,aACA,cACA,gBACA,iBACA,cACA,eACA,eACA,YACA,eACA,eACA,cACA,eACA,cACA,gBACA,aACA,kBACA,iBACA,iBACA,eACA,aACA,gBACA,aACA,YACA,aACA,gBACA,iBACA,YACA,cACA,cACA,mBACA,iBACA,YACA,eACA,gBACA,eACA,gBACA,iBACA,aACA,iBACA,eACA,eACA,iBACA,gBACA,gBACA,eACA,mBACA,oBACA,eACA,cACA,aACA,aACA,eACA,gBACA,cACA,cACA,oBACA,mBACA,YACA,YACA,kBACA,iBACA,iBACA,aACA,iBACA,eACA,cACA,cACA,gBACA,iBACA,aACA,gBACA,iBACA,qBACA,cACA,gBACA,eACA,cACA,gBACA,cACA,eACA,aACA,aACA,qBACA,mBACA,kBACA,cACA,gBACA,iBACA,mBACA,eACA,cACA,qBACA,eACA,kBACA,mBACA,kBACA,sBACA,kBACA,iBACA,qBACA,mBACA,qBACA,yBACA,qBACA,mBACA,gBACA,qBACA,qBACA,wBACA,qBACA,mBACA,mBACA,kBACA,mBACA,gBACA,qBACA,sBACA,sBACA,kBACA,gBACA,kBACA,uBACA,kBACA,mBACA,qBACA,qBACA,iBACA,uBACA,cACA,mBACA,cACA,cACA,kBACA,iBACA,iBACA,kBACA,sBACA,iBACA,sBACA,eACA,MACA,oBACA,qBACA,UACA,OACA,MACA,QACA,OACA,MACA,UACA,UACA,YACA,YACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,gBACA,UACA,gBACA,UACA,WACA,mBACA,iBACA,mBACA,gBACA,iBACA,kBACA,gBACA,oBACA,kBACA,mBACA,kBACA,kBACA,kBACA,oBACA,gBACA,mBACA,kBACA,kBACA,qBACA,kBACA,gBACA,qBACA,cACA,eACA,gBACA,mBACA,gBACA,oBACA,gBACA,eACA,mBACA,eACA,gBACA,gBACA,eACA,cACA,eACA,mBACA,gBACA,cACA,cACA,gBACA,oBACA,kBACA,iBACA,oBACA,gBACA,eACA,mBACA,iBACA,gBACA,kBACA,mBACA,kBACA,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,gBACA,oBACA,gBACA,KACA,UACA,MACA,QACA,OACA,QACA,YACA,WACA,MACA,UACA,sBACA,gBACA,mBACA,eACA,gBACA,mBACA,cACA,kBACA,mBACA,iBACA,iBACA,OACA,SACA,UACA,QACA,YACA,QACA,MACA,mBACA,iBACA,iBACA,MACA,UACA,SACA,KACA,UACA,eACA,mBACA,uBACA,kBACA,gBACA,iBACA,gBACA,oBACA,kBACA,eACA,mBACA,oBACA,kBACA,sBACA,eACA,mBACA,mBACA,qBACA,iBACA,o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D,CACEt6E,KAAM,eACN8sE,KAAM,CACJ,CACE9sE,KAAM,MACNszE,KAAM,cACNl1E,KAAM,UAER,CACE4B,KAAM,SACNszE,KAAM,kBACNl1E,KAAM,UAER,CACE4B,KAAM,WACNszE,KAAM,sCACNl1E,KAAM,UAER,CACE4B,KAAM,QACNszE,KAAM,cACNl1E,KAAM,UAER,CACE4B,KAAM,cACNszE,KAAM,iGACNl1E,KAAM,UAER,CACE4B,KAAM,WACNszE,KAAM,kBACNl1E,KAAM,UAER,CACE4B,KAAM,UACNszE,KAAM,8CACNl1E,KAAM,oBAER,CACE4B,KAAM,QACNszE,KAAM,uCACNl1E,KAAM,UAER,CACE4B,KAAM,QACNszE,KAAM,gCACNl1E,KAAM,UAER,CACE4B,KAAM,OACNszE,KAAM,2CACNl1E,KAAM,UAER,CACE4B,KAAM,OACNszE,KAAM,uCACNl1E,KAAM,oBAER,CACE4B,KAAM,aACNszE,KAAM,oBACNl1E,KAAM,UAER,CACE4B,KAAM,SACNszE,KAAM,yCACNl1E,KAAM,UAER,CACE4B,KAAM,OACNszE,KAAM,+BACNl1E,KAAM,UAER,CACE4B,KAAM,YACNszE,KAAM,gDACNl1E,KAAM,SAGVy1D,QAAS,4BACTyf,KAAM,4BACNkC,QAAS,oXAiBT9oC,SAAU,WACV+oC,KAAM,wCAAwC6E,iDAEhD,CACEt6E,KAAM,kBACN8sE,KAAM,CACJ,CACE9sE,KAAM,MACNszE,KAAM,cACNl1E,KAAM,UAER,CACE4B,KAAM,SACNszE,KAAM,kBACNl1E,KAAM,UAER,CACE4B,KAAM,cACNszE,KAAM,iGACNl1E,KAAM,UAER,CACE4B,KAAM,SACNszE,KAAM,yCACNl1E,KAAM,WAGVy1D,QAAS,4BACTyf,KAAM,qJACNkC,QAAS,wJAMT9oC,SAAU,WACV+oC,KAAM,wCAAwC6E,oDAEhD,CACEt6E,KAAM,aACN8sE,KAAM,CACJ,CACE9sE,KAAM,OACNszE,KAAM,8CACNl1E,KAAM,qBAGVy1D,QAAS,QACTyf,KAAM,+CACNkC,QACE,gHACF9oC,SAAU,SACV+oC,KAAM,wCAAwC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KAAM,QACNszE,KAAM,wBACNl1E,KAAM,cAER,CACE4B,KAAM,UACNszE,KAAM,0CACNl1E,KAAM,YAER,CACE4B,KAAM,OACNszE,KAAM,8BACNl1E,KAAM,UAGVy1D,QAAS,wBACTyf,KAAM,wKACNkC,QAAS,qTAUT9oC,SAAU,UACV+oC,KAAM,wCAAwC6E,sDAEhD,CACEt6E,KAAM,uBACN8sE,KAAM,CACJ,CACE9sE,KAAM,SACNszE,KAAM,oCACNl1E,KAAM,UAER,CACE4B,KAAM,WACNszE,KAAM,uCACNl1E,KAAM,UAER,CACE4B,KAAM,MACNszE,KAAM,yBACNl1E,KAAM,UAER,CACE4B,KAAM,QACNszE,KAAM,4BACNl1E,KAAM,UAER,CACE4B,KAAM,OACNszE,KAAM,yCACNl1E,KAAM,UAER,CACE4B,KAAM,QACNszE,KAAM,gCACNl1E,KAAM,UAER,CACE4B,KAAM,QACNszE,KAAM,6DACNl1E,KAAM,mBAER,CACE4B,KAAM,OACNszE,KAAM,2DACNl1E,KAAM,mBAER,CACE4B,KAAM,YACNszE,KAAM,qEACNl1E,KAAM,aAGVy1D,QAAS,sBACTyf,KAAM,sDACNkC,QAAS,6DACT9oC,SAAU,gBACV+oC,KAAM,wCAAwC6E,iDAEhD,CACEt6E,KAAM,kBACN8sE,KAAM,CACJ,CACE9sE,KAAM,OACNszE,KAAM,+BACNl1E,KAAM,UAER,CACE4B,KAAM,QACNszE,KAAM,mGACNl1E,KAAM,6BAER,CACE4B,KAAM,OACNszE,KAAM,gGACNl1E,KAAM,6BAER,CACE4B,KAAM,IACNszE,KAAM,oCACNl1E,KAAM,UAER,CACE4B,KAAM,SACNszE,KAAM,mGACNl1E,KAAM,oBAER,CACE4B,KAAM,QACNszE,KAAM,wIACNl1E,KAAM,YAER,CACE4B,KAAM,OACNszE,KAAM,4DACNl1E,KAAM,UAER,CACE4B,KAAM,MACNszE,KAAM,qBACNl1E,KAAM,UAER,CACE4B,KAAM,QACNszE,KAAM,iCACNl1E,KAAM,WAGVy1D,QAAS,8BACTyf,KAAM,+KACNkC,QAAS,2PAWT9oC,SAAU,gBACV+oC,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AER,CACE4B,KAAM,cACNszE,KAAM,uEACNl1E,KAAM,UAER,CACE4B,KAAM,aACNszE,KAAM,qEACNl1E,KAAM,UAER,CACE4B,KAAM,cACNszE,KAAM,yEACNl1E,KAAM,YAGVy1D,QAAS,GACTyf,KAAM,mRACNkC,QAAS,gCACT9oC,SAAU,kBACV+oC,KAAM,wCAAwC6E,4DAEhD,CACEt6E,KAAM,QACN8sE,KAAM,CACJ,CACE9sE,KAAM,OACNszE,KAAM,yCACNl1E,KAAM,WAGVy1D,QAAS,GACTyf,KAAM,kOACNkC,QAAS,6BACT9oC,SAAU,UACV+oC,KAAM,wCAAwC6E,mDAEhD,CACEt6E,KAAM,kBACN8sE,KAAM,CACJ,CACE9sE,KAAM,MACNszE,KAAM,8BACNl1E,KAAM,UAER,CACE4B,KAAM,WACNszE,KAAM,2FACNl1E,KAAM,UAER,CACE4B,KAAM,WACNszE,KAAM,2FACNl1E,KAAM,UAER,CACE4B,KAAM,SACNszE,KAAM,mDACNl1E,KAAM,UAER,CACE4B,KAAM,SACNszE,KAAM,iDACNl1E,KAAM,UAER,CACE4B,KAAM,OACNszE,KAAM,kCACNl1E,KAAM,UAER,CACE4B,KAAM,MACNszE,KAAM,oDACNl1E,KAAM,YAGVy1D,QAAS,4BACTyf,KAAM,qJACNkC,QAAS,+PAST9oC,SAAU,WACV+oC,KAAM,wCAAwC6E,oDAEhD,CACEt6E,KAAM,eACN8sE,KAAM,CACJ,CACE9sE,KAAM,MACNszE,KAAM,8BACNl1E,KAAM,UAER,CACE4B,KAAM,WACNszE,KAAM,2FACNl1E,KAAM,UAER,CACE4B,KAAM,WACNszE,KAAM,2FACNl1E,KAAM,UAER,CACE4B,KAAM,SACNszE,KAAM,mDACNl1E,KAAM,UAER,CACE4B,KAAM,SACNszE,KAAM,iDACNl1E,KAAM,UAER,CACE4B,KAAM,OACNszE,KAAM,kCACNl1E,KAAM,UAER,CACE4B,KAAM,MACNszE,KAAM,oDACNl1E,KAAM,WAER,CACE4B,KAAM,UACNszE,KAAM,kCACNl1E,KAAM,UAER,CACE4B,KAAM,SACNszE,KAAM,mCACNl1E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H45B,EAAuD,CAClE71E,QAAS,OACTka,MAAO,cACPC,MAAO,KACPy7D,IAAK,qCACLtyC,MAAO,WACPze,SAAU,MACVpyB,KAAM,sBACNwpD,aAAc,MAcH65B,EAAgD,CAC3D91E,QAAS,MACTka,MAAO,cACPC,MAAO,KACPy7D,IAAK,mCACLtyC,MAAO,WACPze,SAAU,MACVpyB,KAAM,sBACNwpD,aAAc,MAQH85B,EAAwD,CACnE,CACE/1E,QAAS,GACTka,MAAO,aACPC,MAAO,KACPy7D,IAAK,sCACLtyC,MAAO,UACPze,SAAU,KACVpyB,KAAM,sBACNwpD,aAAc,KAEhB,CACEj8C,QAAS,IACTka,MAAO,aACPC,MAAO,KACPy7D,IAAK,uCACLtyC,MAAO,UACPze,SAAU,KACVpyB,KAAM,sBACNwpD,aAAc,KA9CkD,CAClEj8C,QAAS,IACTka,MAAO,cACPC,MAAO,KACPy7D,IAAK,wCACLtyC,MAAO,WACPze,SAAU,MACVpyB,KAAM,sBACNwpD,aAAc,KAyCd05B,EACA,CACE31E,QAAS,MACTka,MAAO,aACPC,MAAO,KACPy7D,IAAK,qCACLtyC,MAAO,UACPze,SAAU,KACVpyB,KAAM,sBACNwpD,aAAc,KAEhB,CACEj8C,QAAS,MACTka,MAAO,aACPC,MAAO,KACPy7D,IAAK,qCACLtyC,MAAO,UACPze,SAAU,KACVpyB,KAAM,sBACNwpD,aAAc,KAEhB,CACEj8C,QAAS,MACTka,MAAO,cACPC,MAAO,KACPy7D,IAAK,sCACLtyC,MAAO,WACPze,SAAU,MACVpyB,KAAM,sBACNwpD,aAAc,MAEhB65B,EACA,CACE91E,QAAS,OACTka,MAAO,aACPC,MAAO,KACPy7D,IAAK,oCACLtyC,MAAO,UACPze,SAAU,KACVpyB,KAAM,sBACNwpD,aAAc,KAEhB,CACEj8C,QAAS,OACTka,MAAO,aACPC,MAAO,KACPy7D,IAAK,oCACLtyC,MAAO,UACPze,SAAU,KACVpyB,KAAM,sBACNwpD,aAAc,MAEhB45B,GAGWG,EAA8D,CACzEF,EACA,CACE91E,QAAS,OACTka,MAAO,aACPC,MAAO,KACP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VC,EAAE,4IAIN,yBACE,wBACED,UAAU,wCACVC,EAAE,mJAKR,qBAAG/4B,GAAG,KACJ,wBACEo5B,EAAE,OACFC,EAAE,OACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,2BACEG,UAAU,wCACV9Q,OAAO,uFAET,wBACEoR,EAAE,QACFC,EAAE,OACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,2BACEG,UAAU,wCACV9Q,OAAO,iEAET,wBACEoR,EAAE,OACFC,EAAE,OACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,2BACEG,UAAU,wCACV9Q,OAAO,4IAGT,wBACEoR,EAAE,OACFC,EAAE,OACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,QACFC,EAAE,OACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,OACFC,EAAE,OACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,QACFC,EAAE,OACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,OACFC,EAAE,OACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,OACFC,EAAE,MACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,QAGX,qBAAG34B,GAAG,MACJ,yBACE,wBACE84B,UAAU,wCACVC,EAAE,6DAGN,yBACE,wBACED,UAAU,wCACVC,EAAE,oGAGN,yBACE,wBACED,UAAU,wCACVC,EAAE,kEAGN,yBACE,wBACED,UAAU,wCACVC,EAAE,6EAGN,yBACE,wBACED,UAAU,wCACVC,EAAE,6DAGN,yBACE,wBACED,UAAU,wCACVC,EAAE,gKAIN,yBACE,wBACED,UAAU,wCACVC,EAAE,6DAGN,yBACE,wBACED,UAAU,wCACVC,EAAE,kEAGN,yBACE,wBACED,UAAU,wCACVC,EAAE,6DAGN,yBACE,wBACED,UAAU,wCACVC,EAAE,kEAGN,yBACE,wBACED,UAAU,wCACVC,EAAE,6DAGN,yBACE,wBACED,UAAU,wCACVC,EAAE,0D,2JClOP,MAAM04G,EAAb,cACE,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AAM,OACNC,OAAO,OACPvP,QAAQ,MACRppB,GAAG,YACHo5B,EAAE,MACFC,EAAE,MACFR,QAAQ,cACR+nH,oBAAoB,aAEpB,yBACE,wBACExnH,EAAE,MACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,MACFC,EAAE,MACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,MACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,MACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,IACFC,EAAE,MACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,IACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,IACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAGX,yBACE,wBACES,EAAE,MACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,MACFC,EAAE,MACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,MACFC,EAAE,KACFP,UAAU,wC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ACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,MACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,MACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,MACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,MACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,MACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,KACNC,OAAO,OAET,wBACES,EAAE,KACFC,EAAE,KACFP,UAAU,wCACVJ,MAAM,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","sources":["webpack://influxdb-ui/./src/flows/pipes/Columns/styles.scss","webpack://influxdb-ui/./src/flows/pipes/Downsample/style.scss","webpack://influxdb-ui/./src/flows/pipes/Markdown/style.scss","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/style.scss","webpack://influxdb-ui/./src/flows/pipes/Missing/styles.scss","webpack://influxdb-ui/./src/flows/pipes/Notification/Threshold.scss","webpack://influxdb-ui/./src/flows/pipes/Notification/styles.scss","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/style.scss","webpack://influxdb-ui/./src/flows/pipes/RawFluxEditor/style.scss","webpack://influxdb-ui/./src/flows/pipes/Region/style.scss","webpack://influxdb-ui/./src/flows/pipes/RemoteCSV/styles.scss","webpack://influxdb-ui/./src/flows/pipes/Schedule/style.scss","webpack://influxdb-ui/./src/flows/pipes/Spotify/style.scss","webpack://influxdb-ui/./src/flows/pipes/Table/view.scss","webpack://influxdb-ui/./src/flows/pipes/Time/style.scss","webpack://influxdb-ui/./src/flows/pipes/Visualization/ErrorThresholds/ErrorThresholds.scss","webpack://influxdb-ui/./src/flows/pipes/Visualization/style.scss","webpack://influxdb-ui/./src/flows/pipes/Youtube/style.scss","webpack://influxdb-ui/./src/onboarding/components/CloudLogoWithCubo.scss","webpack://influxdb-ui/./src/shared/components/TagSelectorCount.scss","webpack://influxdb-ui/./src/style/chronograf.scss","webpack://influxdb-ui/./src/visualization/components/internal/LegendOptions.scss","webpack://influxdb-ui/./src/visualization/components/internal/StaticLegend.scss","webpack://influxdb-ui/./src/visualization/types/Map/GeoOptions.scss","webpack://influxdb-ui/./src/visualization/types/Table/options.scss","webpack://influxdb-ui/./src/flows/pipes/Columns/styles.scss?2a11","webpack://influxdb-ui/./src/flows/pipes/Downsample/style.scss?5df9","webpack://influxdb-ui/./src/flows/pipes/Markdown/style.scss?5afe","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/style.scss?61b0","webpack://influxdb-ui/./src/flows/pipes/Missing/styles.scss?3f08","webpack://influxdb-ui/./src/flows/pipes/Notification/Threshold.scss?9138","webpack://influxdb-ui/./src/flows/pipes/Notification/styles.scss?fef5","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/style.scss?ca17","webpack://influxdb-ui/./src/flows/pipes/RawFluxEditor/style.scss?b059","webpack://influxdb-ui/./src/flows/pipes/Region/style.scss?e3d0","webpack://influxdb-ui/./src/flows/pipes/RemoteCSV/styles.scss?2e26","webpack://influxdb-ui/./src/flows/pipes/Schedule/style.scss?0a9d","webpack://influxdb-ui/./src/flows/pipes/Spotify/style.scss?ad92","webpack://influxdb-ui/./src/flows/pipes/Table/view.scss?52e1","webpack://influxdb-ui/./src/flows/pipes/Time/style.scss?8f0d","webpack://influxdb-ui/./src/flows/pipes/Visualization/ErrorThresholds/ErrorThresholds.scss?0e07","webpack://influxdb-ui/./src/flows/pipes/Visualization/style.scss?d316","webpack://influxdb-ui/./src/flows/pipes/Youtube/style.scss?64f4","webpack://influxdb-ui/./src/style/chronograf.scss?51df","webpack://influxdb-ui/./src/visualization/components/internal/LegendOptions.scss?4421","webpack://influxdb-ui/./src/Authenticate.tsx","webpack://influxdb-ui/./src/Setup.tsx","webpack://influxdb-ui/./src/alerting/actions/alertBuilder.ts","webpack://influxdb-ui/./src/alerting/constants/index.ts","webpack://influxdb-ui/./src/alerting/utils/statusEvents.ts","webpack://influxdb-ui/./src/alerting/utils/vis.ts","webpack://influxdb-ui/./src/annotations/actions/creators.ts","webpack://influxdb-ui/./src/client/annotationdRoutes.ts","webpack://influxdb-ui/./src/annotations/utils/formatQueryString.ts","webpack://influxdb-ui/./src/annotations/api/index.ts","webpack://influxdb-ui/./src/annotations/actions/thunks.ts","webpack://influxdb-ui/./src/annotations/selectors/index.ts","webpack://influxdb-ui/./src/authorizations/actions/creators.ts","webpack://influxdb-ui/./src/authorizations/apis/index.ts","webpack://influxdb-ui/./src/billing/utils/timeHelpers.ts","webpack://influxdb-ui/./src/buckets/actions/creators.ts","webpack://influxdb-ui/./src/buckets/api/index.ts","webpack://influxdb-ui/./src/cells/actions/creators.ts","webpack://influxdb-ui/./src/checks/actions/creators.ts","webpack://influxdb-ui/./src/checks/utils/context.tsx","webpack://influxdb-ui/./src/client/cloudPrivRoutes.ts","webpack://influxdb-ui/./src/client/generatedRoutes.ts","webpack://influxdb-ui/./src/client/index.ts","webpack://influxdb-ui/./src/client/notebooksRoutes.ts","webpack://influxdb-ui/./src/client/subscriptionsRoutes.ts","webpack://influxdb-ui/./src/client/unityRoutes.ts","webpack://influxdb-ui/./src/cloud/actions/limits.ts","webpack://influxdb-ui/./src/cloud/constants/index.ts","webpack://influxdb-ui/./src/cloud/utils/limits.ts","webpack://influxdb-ui/./src/cloud/apis/reporting.ts","webpack://influxdb-ui/./src/cloud/utils/reporting.ts","webpack://influxdb-ui/./src/dashboards/actions/creators.ts","webpack://influxdb-ui/./src/dashboards/actions/ranges.ts","webpack://influxdb-ui/./src/dashboards/apis/index.ts","webpack://influxdb-ui/./src/dashboards/constants/index.ts","webpack://influxdb-ui/./src/dashboards/selectors/index.ts","webpack://influxdb-ui/./src/dashboards/utils/getTimezoneOffset.ts","webpack://influxdb-ui/./src/dashboards/utils/notes.ts","webpack://influxdb-ui/./src/dashboards/utils/time.ts","webpack://influxdb-ui/./src/dataExplorer/components/resources/types/script/editor.tsx","webpack://influxdb-ui/./src/dataExplorer/components/resources/types/script/index.ts","webpack://influxdb-ui/./src/dataExplorer/components/resources/index.ts","webpack://influxdb-ui/./src/dataExplorer/context/persistance.tsx","webpack://influxdb-ui/./src/dataExplorer/shared/utils.ts","webpack://influxdb-ui/./src/dataLoaders/graphics/LogoApache.tsx","webpack://influxdb-ui/./src/dataLoaders/graphics/LogoCpu.tsx","webpack://influxdb-ui/./src/dataLoaders/graphics/LogoDocker.tsx","webpack://influxdb-ui/./src/dataLoaders/graphics/LogoKubernetes.tsx","webpack://influxdb-ui/./src/dataLoaders/graphics/LogoNginx.tsx","webpack://influxdb-ui/./src/dataLoaders/graphics/LogoRedis.tsx","webpack://influxdb-ui/./src/dataLoaders/constants/pluginConfigs.ts","webpack://influxdb-ui/./src/dataLoaders/utils/pluginConfigs.ts","webpack://influxdb-ui/./src/flows/actions/flowsActions.ts","webpack://influxdb-ui/./src/flows/actions/flowsThunks.ts","webpack://influxdb-ui/./src/flows/context/api.tsx","webpack://influxdb-ui/./src/flows/context/flow.current.tsx","webpack://influxdb-ui/./src/flows/context/flow.list.tsx","webpack://influxdb-ui/./src/flows/context/flow.query.tsx","webpack://influxdb-ui/./src/flows/context/pipe.tsx","webpack://influxdb-ui/./src/flows/context/popup.tsx","webpack://influxdb-ui/./src/flows/context/results.tsx","webpack://influxdb-ui/./src/flows/context/sidebar.tsx","webpack://influxdb-ui/./src/flows/context/variables.tsx","webpack://influxdb-ui/./src/flows/constants.ts","webpack://influxdb-ui/./src/flows/index.ts","webpack://influxdb-ui/./src/flows/pipes/Columns/index.tsx","webpack://influxdb-ui/./src/flows/pipes/Columns/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Columns/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Downsample/index.ts","webpack://influxdb-ui/./src/flows/pipes/Downsample/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Downsample/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Markdown/MarkdownModeToggle.tsx","webpack://influxdb-ui/./src/flows/pipes/Markdown/index.ts","webpack://influxdb-ui/./src/flows/pipes/Markdown/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Markdown/view.tsx","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/FieldSelectors.tsx","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/FieldsList.tsx","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/FilterTags.tsx","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/MeasurementSelectors.tsx","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/SearchBar.tsx","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/Selectors.tsx","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/TagSelectors.tsx","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/context.tsx","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/index.ts","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/MetricSelector/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Missing/index.ts","webpack://influxdb-ui/./src/flows/pipes/Missing/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/ExportTask.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/Expression.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/Expressions.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/Measurement.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/Threshold.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/AWS/index.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/AWS/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/AWS/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/HTTP/index.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/HTTP/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/HTTP/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Mailgun/index.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Mailgun/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Mailgun/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Mailjet/index.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Mailjet/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Mailjet/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/PagerDuty/index.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/PagerDuty/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/PagerDuty/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/SendGrid/index.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/SendGrid/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/SendGrid/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Slack/index.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Slack/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Slack/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Telegram/index.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Telegram/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Telegram/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Zenoss/index.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Zenoss/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/Zenoss/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/index.ts","webpack://influxdb-ui/./src/flows/pipes/Notification/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/view.tsx","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/AddButton.tsx","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/BucketSelector.tsx","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/CardList.tsx","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/CreateBucket.tsx","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/MiniFileDnd.tsx","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/ExplicitPanel.tsx","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/CreateBucketOverlay.tsx","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/context.tsx","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/index.ts","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/QueryBuilder/view.tsx","webpack://influxdb-ui/./src/flows/pipes/RawFluxEditor/SecretsList.tsx","webpack://influxdb-ui/./src/flows/pipes/RawFluxEditor/index.ts","webpack://influxdb-ui/./src/flows/pipes/RawFluxEditor/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/RawFluxEditor/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Region/index.ts","webpack://influxdb-ui/./src/flows/pipes/Region/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Region/view.tsx","webpack://influxdb-ui/./src/flows/pipes/RemoteCSV/index.ts","webpack://influxdb-ui/./src/flows/pipes/RemoteCSV/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Schedule/ExportTaskButton.tsx","webpack://influxdb-ui/./src/flows/pipes/Schedule/History.tsx","webpack://influxdb-ui/./src/flows/pipes/Schedule/index.ts","webpack://influxdb-ui/./src/flows/pipes/Schedule/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/Schedule/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Spotify/editor.tsx","webpack://influxdb-ui/./src/flows/pipes/Spotify/embedded.tsx","webpack://influxdb-ui/./src/flows/pipes/Spotify/index.ts","webpack://influxdb-ui/./src/flows/pipes/Spotify/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Table/index.ts","webpack://influxdb-ui/./src/flows/pipes/Table/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Time/index.ts","webpack://influxdb-ui/./src/flows/pipes/Time/view.tsx","webpack://influxdb-ui/./src/flows/pipes/ToBucket/index.ts","webpack://influxdb-ui/./src/flows/pipes/ToBucket/readOnly.tsx","webpack://influxdb-ui/./src/flows/pipes/ToBucket/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Visualization/Controls.tsx","webpack://influxdb-ui/./src/flows/pipes/Visualization/ErrorThresholds/ErrorThresholds.tsx","webpack://influxdb-ui/./src/flows/pipes/Visualization/ErrorThresholds/FieldColumnDropdown.tsx","webpack://influxdb-ui/./src/flows/pipes/Visualization/ErrorThresholds/FunctionDropdown.tsx","webpack://influxdb-ui/./src/flows/pipes/Visualization/ErrorThresholds/ThresholdEntryColumn.tsx","webpack://influxdb-ui/./src/flows/pipes/Visualization/QRCode.tsx","webpack://influxdb-ui/./src/flows/pipes/Visualization/index.ts","webpack://influxdb-ui/./src/flows/pipes/Visualization/threshold.ts","webpack://influxdb-ui/./src/flows/pipes/Visualization/view.tsx","webpack://influxdb-ui/./src/flows/pipes/Youtube/index.ts","webpack://influxdb-ui/./src/flows/pipes/Youtube/view.tsx","webpack://influxdb-ui/./src/flows/shared/BucketSelector/CreateBucketDropdownItem.tsx","webpack://influxdb-ui/./src/flows/shared/BucketSelector/index.tsx","webpack://influxdb-ui/./src/flows/templates/index.ts","webpack://influxdb-ui/./src/flows/templates/types/blank.ts","webpack://influxdb-ui/./src/flows/templates/types/bucket.ts","webpack://influxdb-ui/./src/flows/templates/types/dashboard.ts","webpack://influxdb-ui/./src/flows/templates/types/default.ts","webpack://influxdb-ui/./src/flows/templates/types/downsample.ts","webpack://influxdb-ui/./src/flows/templates/types/flow.ts","webpack://influxdb-ui/./src/flows/templates/types/flux.ts","webpack://influxdb-ui/./src/flows/templates/types/intro.ts","webpack://influxdb-ui/./src/flows/templates/types/notification.ts","webpack://influxdb-ui/./src/flows/templates/types/share.ts","webpack://influxdb-ui/./src/flows/templates/types/subscription.ts","webpack://influxdb-ui/./src/flows/templates/types/task.ts","webpack://influxdb-ui/./src/flows/templates/types/tools.ts","webpack://influxdb-ui/./src/identity/actions/creators/index.ts","webpack://influxdb-ui/./src/identity/actions/thunks/index.ts","webpack://influxdb-ui/./src/identity/allowances/actions/creators/index.ts","webpack://influxdb-ui/./src/identity/apis/account.ts","webpack://influxdb-ui/./src/identity/apis/auth.ts","webpack://influxdb-ui/./src/identity/apis/org.ts","webpack://influxdb-ui/./src/identity/components/GlobalHeader/DefaultEntities.tsx","webpack://influxdb-ui/./src/identity/quartzOrganizations/actions/creators/index.ts","webpack://influxdb-ui/./src/identity/selectors/index.ts","webpack://influxdb-ui/./src/index.tsx","webpack://influxdb-ui/./src/labels/actions/creators.ts","webpack://influxdb-ui/./src/labels/constants/index.ts","webpack://influxdb-ui/./src/labels/utils/index.ts","webpack://influxdb-ui/./src/languageSupport/languages/flux/lspUtils/index.ts","webpack://influxdb-ui/./src/normalizers/localStorage/dashboardTime.ts","webpack://influxdb-ui/./src/types/timeZones.ts","webpack://influxdb-ui/./src/normalizers/localStorage/appPersisted.ts","webpack://influxdb-ui/./src/normalizers/localStorage/resources.ts","webpack://influxdb-ui/./src/localStorage.ts","webpack://influxdb-ui/./src/normalizers/localStorage/localStorage.ts","webpack://influxdb-ui/./src/me/actions/creators/index.ts","webpack://influxdb-ui/./src/me/actions/thunks/index.ts","webpack://influxdb-ui/./src/me/reducers/index.ts","webpack://influxdb-ui/./src/members/actions/creators.ts","webpack://influxdb-ui/./src/notifications/endpoints/actions/creators.ts","webpack://influxdb-ui/./src/notifications/rules/actions/creators.ts","webpack://influxdb-ui/./src/notifications/rules/utils/index.ts","webpack://influxdb-ui/./src/onboarding/components/CloudLogoWithCubo.scss?5787","webpack://influxdb-ui/./src/onboarding/components/CloudLogoWithCubo.tsx","webpack://influxdb-ui/./src/onboarding/components/HelperText.tsx","webpack://influxdb-ui/./src/onboarding/components/LoginForm.tsx","webpack://influxdb-ui/./src/shared/components/SocialButton.tsx","webpack://influxdb-ui/./src/shared/graphics/GoogleLogo.tsx","webpack://influxdb-ui/./src/shared/graphics/MicrosoftLogo.tsx","webpack://influxdb-ui/./src/onboarding/containers/LoginPageContents.tsx","webpack://influxdb-ui/./src/onboarding/containers/CloudLoginPage.tsx","webpack://influxdb-ui/./src/onboarding/utils/index.ts","webpack://influxdb-ui/./src/operator/utils.ts","webpack://influxdb-ui/./src/organizations/actions/creators.ts","webpack://influxdb-ui/./src/organizations/actions/thunks.ts","webpack://influxdb-ui/./src/organizations/selectors/index.ts","webpack://influxdb-ui/./src/overlays/actions/overlays.ts","webpack://influxdb-ui/./src/perf/actions/index.ts","webpack://influxdb-ui/./src/perf/components/PageSpinner.tsx","webpack://influxdb-ui/./src/portals/TooltipPortal.tsx","webpack://influxdb-ui/./src/resources/constants/index.ts","webpack://influxdb-ui/./src/resources/selectors/index.ts","webpack://influxdb-ui/./src/schemas/authorizations.ts","webpack://influxdb-ui/./src/schemas/buckets.ts","webpack://influxdb-ui/./src/schemas/checks.ts","webpack://influxdb-ui/./src/schemas/dashboards.ts","webpack://influxdb-ui/./src/schemas/endpoints.ts","webpack://influxdb-ui/./src/schemas/labels.ts","webpack://influxdb-ui/./src/schemas/members.ts","webpack://influxdb-ui/./src/schemas/orgs.ts","webpack://influxdb-ui/./src/schemas/rules.ts","webpack://influxdb-ui/./src/schemas/scrapers.ts","webpack://influxdb-ui/./src/schemas/tasks.ts","webpack://influxdb-ui/./src/schemas/telegrafs.ts","webpack://influxdb-ui/./src/schemas/templates.ts","webpack://influxdb-ui/./src/schemas/variables.ts","webpack://influxdb-ui/./src/scrapers/actions/creators.ts","webpack://influxdb-ui/./src/secrets/actions/creators.ts","webpack://influxdb-ui/./src/schemas/secrets.ts","webpack://influxdb-ui/./src/secrets/actions/thunks.ts","webpack://influxdb-ui/./src/secrets/components/CreateSecret/CreateSecretForm.tsx","webpack://influxdb-ui/./src/secrets/components/SecretsDropdown.tsx","webpack://influxdb-ui/./src/shared/actions/app.ts","webpack://influxdb-ui/./src/shared/actions/currentDashboard.ts","webpack://influxdb-ui/./src/shared/actions/currentExplorer.ts","webpack://influxdb-ui/./src/shared/actions/flags.ts","webpack://influxdb-ui/./src/client/fluxdocsdRoutes.ts","webpack://influxdb-ui/./src/shared/actions/fluxDocs.ts","webpack://influxdb-ui/./src/shared/actions/notifications.ts","webpack://influxdb-ui/./src/shared/apis/query.ts","webpack://influxdb-ui/./src/shared/apis/queryCache.ts","webpack://influxdb-ui/./src/shared/apis/singleQuery.ts","webpack://influxdb-ui/./src/shared/components/AutoDomainInput.tsx","webpack://influxdb-ui/./src/shared/components/ClickOutside.tsx","webpack://influxdb-ui/./src/shared/components/CopyToClipboard.tsx","webpack://influxdb-ui/./src/shared/components/DefaultErrorMessage.tsx","webpack://influxdb-ui/./src/shared/components/DurationInput.tsx","webpack://influxdb-ui/./src/shared/components/DurationSelector.tsx","webpack://influxdb-ui/./src/shared/components/functions/perFunction/FluxDocsTooltipContent.tsx","webpack://influxdb-ui/./src/shared/utils/functions.ts","webpack://influxdb-ui/./src/shared/components/DynamicFunctionsList.tsx","webpack://influxdb-ui/./src/shared/components/EmptyGraphMessage.tsx","webpack://influxdb-ui/./src/shared/components/EmptyGraphErrorTooltip.tsx","webpack://influxdb-ui/./src/shared/components/EmptyGraphError.tsx","webpack://influxdb-ui/./src/shared/copy/cell.ts","webpack://influxdb-ui/./src/shared/components/EmptyQueryView.tsx","webpack://influxdb-ui/./src/shared/components/ErrorBoundary.tsx","webpack://influxdb-ui/./src/shared/components/FilterList/FilterList.tsx","webpack://influxdb-ui/./src/shared/components/FilterList/InjectionOption.tsx","webpack://influxdb-ui/./src/shared/components/functions/perFunction/FunctionToolTipContent.tsx","webpack://influxdb-ui/./src/shared/components/GroupedFunctionsList.tsx","webpack://influxdb-ui/./src/shared/components/SearchableDropdown.tsx","webpack://influxdb-ui/./src/shared/components/TagSelectorCount.scss?f5fd","webpack://influxdb-ui/./src/shared/components/TagSelectorCount.tsx","webpack://influxdb-ui/./src/shared/components/WaitingText.tsx","webpack://influxdb-ui/./src/shared/components/dateRangePicker/DatePicker.tsx","webpack://influxdb-ui/./src/shared/components/dateRangePicker/utils.ts","webpack://influxdb-ui/./src/shared/selectors/notifications.ts","webpack://influxdb-ui/./src/shared/components/notifications/Notifications.tsx","webpack://influxdb-ui/./src/shared/components/search_widget/SearchWidget.tsx","webpack://influxdb-ui/./src/shared/components/views/MarkdownRenderer.tsx","webpack://influxdb-ui/./src/shared/components/views/ScrollableMarkdown.tsx","webpack://influxdb-ui/./src/shared/constants/colorOperations.ts","webpack://influxdb-ui/./src/shared/constants/fluxFunctions.ts","webpack://influxdb-ui/./src/shared/constants/graphColorPalettes.ts","webpack://influxdb-ui/./src/shared/constants/index.ts","webpack://influxdb-ui/./src/shared/constants/queryBuilder.ts","webpack://influxdb-ui/./src/shared/constants/thresholds.ts","webpack://influxdb-ui/./src/shared/constants/timeRanges.ts","webpack://influxdb-ui/./src/shared/constants/wizard.ts","webpack://influxdb-ui/./src/shared/containers/GetFlags.tsx","webpack://influxdb-ui/./src/shared/containers/GetOrganizations.tsx","webpack://influxdb-ui/./src/shared/containers/RouteToOrg.tsx","webpack://influxdb-ui/./src/shared/containers/index.tsx","webpack://influxdb-ui/./src/shared/contexts/app.tsx","webpack://influxdb-ui/./src/shared/contexts/buckets.tsx","webpack://influxdb-ui/./src/shared/contexts/editor/injection.ts","webpack://influxdb-ui/./src/shared/utils/fluxFunctions.ts","webpack://influxdb-ui/./src/shared/contexts/editor/index.tsx","webpack://influxdb-ui/./src/shared/contexts/editor/insertFunction.ts","webpack://influxdb-ui/./src/shared/contexts/query/context.tsx","webpack://influxdb-ui/./src/shared/contexts/query/postprocessing.ts","webpack://influxdb-ui/./src/shared/contexts/query/preprocessing.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/accounts-users-orgs.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/alerts.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/dashboard.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/help-and-support.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/scripts.ts","webpack://influxdb-ui/./src/shared/copy/notifications/common.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/annotations.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/auth-and-tokens.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/billing-checkout.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/buckets.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/functions.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/ingest.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/limits.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/notebooks.ts","webpack://influxdb-ui/./src/onboarding/constants/index.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/onboarding.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/operator.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/secrets.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/subscriptions.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/tasks.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/template.ts","webpack://influxdb-ui/./src/shared/copy/notifications/categories/variables-urlQueries.ts","webpack://influxdb-ui/./src/shared/decorators/errors.tsx","webpack://influxdb-ui/./src/shared/reducers/currentPage.ts","webpack://influxdb-ui/./src/shared/selectors/app.ts","webpack://influxdb-ui/./src/shared/selectors/currentContext.ts","webpack://influxdb-ui/./src/shared/selectors/flags.ts","webpack://influxdb-ui/./src/shared/thunks/flags.ts","webpack://influxdb-ui/./src/shared/utils/ast.ts","webpack://influxdb-ui/./src/shared/utils/convertUserInput.ts","webpack://influxdb-ui/./src/shared/utils/dateTimeUtils.ts","webpack://influxdb-ui/./src/shared/utils/download.ts","webpack://influxdb-ui/./src/shared/utils/duration.ts","webpack://influxdb-ui/./src/shared/utils/errors.ts","webpack://influxdb-ui/./src/shared/utils/featureFlag.ts","webpack://influxdb-ui/./src/shared/utils/filterUnusedVars.ts","webpack://influxdb-ui/./src/shared/utils/fluxExample.ts","webpack://influxdb-ui/./src/shared/utils/getMinDurationFromAST.ts","webpack://influxdb-ui/./src/shared/utils/pageTitles.ts","webpack://influxdb-ui/./src/shared/utils/sort.ts","webpack://influxdb-ui/./src/shared/utils/toComponentStatus.ts","webpack://influxdb-ui/./src/shared/utils/useOneWayState.ts","webpack://influxdb-ui/./src/shared/utils/validateURI.ts","webpack://influxdb-ui/./src/shared/utils/vis.ts","webpack://influxdb-ui/./src/shared/middleware/resizeLayout.ts","webpack://influxdb-ui/./src/shared/middleware/queryStringConfig.ts","webpack://influxdb-ui/./src/shared/reducers/app.ts","webpack://influxdb-ui/./src/shared/reducers/currentDashboard.ts","webpack://influxdb-ui/./src/shared/reducers/notifications.ts","webpack://influxdb-ui/./src/shared/reducers/index.ts","webpack://influxdb-ui/./src/identity/reducers/index.ts","webpack://influxdb-ui/./src/shared/reducers/flags.ts","webpack://influxdb-ui/./src/shared/reducers/currentExplorer.ts","webpack://influxdb-ui/./src/shared/reducers/fluxDocs.ts","webpack://influxdb-ui/./src/tasks/reducers/helpers.ts","webpack://influxdb-ui/./src/resources/reducers/helpers.ts","webpack://influxdb-ui/./src/tasks/reducers/index.ts","webpack://influxdb-ui/./src/dashboards/reducers/ranges.ts","webpack://influxdb-ui/./src/dashboards/reducers/dashboards.ts","webpack://influxdb-ui/./src/cells/reducers/index.ts","webpack://influxdb-ui/./src/views/reducers/index.ts","webpack://influxdb-ui/./src/organizations/reducers/index.ts","webpack://influxdb-ui/./src/overlays/reducers/overlays.ts","webpack://influxdb-ui/./src/onboarding/reducers/index.ts","webpack://influxdb-ui/./src/dashboards/reducers/notes.ts","webpack://influxdb-ui/./src/dataLoaders/reducers/dataLoaders.ts","webpack://influxdb-ui/./src/dataLoaders/reducers/steps.ts","webpack://influxdb-ui/./src/dataLoaders/reducers/index.tsx","webpack://influxdb-ui/./src/variables/reducers/editor.ts","webpack://influxdb-ui/./src/variables/reducers/index.ts","webpack://influxdb-ui/./src/labels/reducers/index.ts","webpack://influxdb-ui/./src/buckets/reducers/index.ts","webpack://influxdb-ui/./src/telegrafs/reducers/index.ts","webpack://influxdb-ui/./src/authorizations/reducers/index.ts","webpack://influxdb-ui/./src/templates/reducers/index.ts","webpack://influxdb-ui/./src/scrapers/reducers/index.ts","webpack://influxdb-ui/./src/userSettings/reducers/index.ts","webpack://influxdb-ui/./src/annotations/reducers/index.ts","webpack://influxdb-ui/./src/members/reducers/index.ts","webpack://influxdb-ui/./src/shared/reducers/autoRefresh.ts","webpack://influxdb-ui/./src/cloud/reducers/limits.ts","webpack://influxdb-ui/./src/checks/reducers/index.ts","webpack://influxdb-ui/./src/notifications/rules/reducers/index.ts","webpack://influxdb-ui/./src/notifications/endpoints/reducers/index.ts","webpack://influxdb-ui/./src/secrets/reducers/index.ts","webpack://influxdb-ui/./src/dataLoaders/reducers/telegrafEditor.ts","webpack://influxdb-ui/./src/alerting/reducers/alertBuilder.ts","webpack://influxdb-ui/./src/perf/reducers/index.ts","webpack://influxdb-ui/./src/identity/quartzOrganizations/reducers/index.ts","webpack://influxdb-ui/./src/identity/allowances/reducers/index.ts","webpack://influxdb-ui/./src/flows/reducers/flowsReducer.ts","webpack://influxdb-ui/./src/store/configureStore.ts","webpack://influxdb-ui/./src/store/persistStateEnhancer.ts","webpack://influxdb-ui/./src/store/history.ts","webpack://influxdb-ui/./src/tasks/actions/creators.ts","webpack://influxdb-ui/./src/telegrafs/actions/creators.ts","webpack://influxdb-ui/./src/templates/actions/creators.ts","webpack://influxdb-ui/./src/templates/api/index.ts","webpack://influxdb-ui/./src/templates/utils/index.ts","webpack://influxdb-ui/./src/timeMachine/actions/index.ts","webpack://influxdb-ui/./src/timeMachine/actions/queries.ts","webpack://influxdb-ui/./src/timeMachine/actions/queryBuilder.ts","webpack://influxdb-ui/./src/timeMachine/actions/queryBuilderThunks.ts","webpack://influxdb-ui/./src/timeMachine/apis/QueryBuilderFetcher.ts","webpack://influxdb-ui/./src/timeMachine/apis/queryBuilder.ts","webpack://influxdb-ui/./src/timeMachine/components/SelectorList.tsx","webpack://influxdb-ui/./src/timeMachine/components/builderCard/BuilderCardHeader.tsx","webpack://influxdb-ui/./src/timeMachine/components/builderCard/BuilderCardDropdownHeader.tsx","webpack://influxdb-ui/./src/timeMachine/components/builderCard/BuilderCardMenu.tsx","webpack://influxdb-ui/./src/timeMachine/components/builderCard/BuilderCardBody.tsx","webpack://influxdb-ui/./src/timeMachine/components/builderCard/BuilderCardEmpty.tsx","webpack://influxdb-ui/./src/timeMachine/components/builderCard/BuilderCard.tsx","webpack://influxdb-ui/./src/timeMachine/constants/queryBuilder.ts","webpack://influxdb-ui/./src/timeMachine/reducers/index.ts","webpack://influxdb-ui/./src/timeMachine/selectors/index.ts","webpack://influxdb-ui/./src/timeMachine/utils/queryBuilder.ts","webpack://influxdb-ui/./src/types/colors.ts","webpack://influxdb-ui/./src/types/dashboards.ts","webpack://influxdb-ui/./src/types/dataLoaders.ts","webpack://influxdb-ui/./src/types/error.ts","webpack://influxdb-ui/./src/types/auth.ts","webpack://influxdb-ui/./src/types/autoRefresh.ts","webpack://influxdb-ui/./src/types/buckets.ts","webpack://influxdb-ui/./src/types/dataExplorer.ts","webpack://influxdb-ui/./src/types/flux.ts","webpack://influxdb-ui/./src/types/notifications.ts","webpack://influxdb-ui/./src/types/sources.ts","webpack://influxdb-ui/./src/types/tasks.ts","webpack://influxdb-ui/./src/types/templates.ts","webpack://influxdb-ui/./src/types/overlay.ts","webpack://influxdb-ui/./src/types/promises.ts","webpack://influxdb-ui/./src/types/queries.ts","webpack://influxdb-ui/./src/types/resources.ts","webpack://influxdb-ui/./src/types/subscriptions.ts","webpack://influxdb-ui/./src/users/hooks/useEvent.tsx","webpack://influxdb-ui/./src/utils/Deferred.ts","webpack://influxdb-ui/./src/utils/SafeBlankLink.tsx","webpack://influxdb-ui/./src/utils/api.ts","webpack://influxdb-ui/./src/utils/autoAggregateRequirements.ts","webpack://influxdb-ui/./src/utils/basepath.ts","webpack://influxdb-ui/./src/utils/datetime/constants.ts","webpack://influxdb-ui/./src/utils/datetime/formatters.ts","webpack://influxdb-ui/./src/utils/datetime/validator.ts","webpack://influxdb-ui/./src/utils/formatting.ts","webpack://influxdb-ui/./src/utils/naming.ts","webpack://influxdb-ui/./src/utils/nodes.ts","webpack://influxdb-ui/./src/utils/wrappers.ts","webpack://influxdb-ui/./src/variables/actions/creators.ts","webpack://influxdb-ui/./src/variables/actions/thunks.ts","webpack://influxdb-ui/./src/variables/constants/index.ts","webpack://influxdb-ui/./src/variables/selectors/index.tsx","webpack://influxdb-ui/./src/variables/utils/ValueFetcher.ts","webpack://influxdb-ui/./src/variables/utils/astim.ts","webpack://influxdb-ui/./src/variables/utils/buildVarsOption.ts","webpack://influxdb-ui/./src/variables/utils/formatExpression.ts","webpack://influxdb-ui/./src/variables/utils/formatVarsOption.ts","webpack://influxdb-ui/./src/variables/utils/getTimeRangeVars.ts","webpack://influxdb-ui/./src/variables/utils/getWindowVars.ts","webpack://influxdb-ui/./src/variables/utils/hydrateVars.ts","webpack://influxdb-ui/./src/variables/utils/resolveSelectedValue.ts","webpack://influxdb-ui/./src/views/actions/creators.ts","webpack://influxdb-ui/./src/views/actions/thunks.ts","webpack://influxdb-ui/./src/views/helpers/index.ts","webpack://influxdb-ui/./src/views/selectors/index.ts","webpack://influxdb-ui/./src/visualization/components/View.tsx","webpack://influxdb-ui/./src/visualization/components/ViewOptions.tsx","webpack://influxdb-ui/./src/visualization/components/ViewTypeDropdown.tsx","webpack://influxdb-ui/./src/visualization/components/internal/AdaptiveZoomOption.tsx","webpack://influxdb-ui/./src/visualization/components/internal/ValueTickInput.tsx","webpack://influxdb-ui/./src/visualization/components/internal/TimeTickInput.tsx","webpack://influxdb-ui/./src/visualization/components/internal/AxisTicksGenerator.tsx","webpack://influxdb-ui/./src/visualization/components/internal/ColorSchemeDropdown.tsx","webpack://influxdb-ui/./src/visualization/components/internal/ColorSchemeDropdownItem.tsx","webpack://influxdb-ui/./src/visualization/components/internal/DecimalPlaces.tsx","webpack://influxdb-ui/./src/visualization/components/internal/HexColorSchemeDropdown.tsx","webpack://influxdb-ui/./src/visualization/components/internal/HoverLegend.tsx","webpack://influxdb-ui/./src/visualization/components/internal/LegendOptions.tsx","webpack://influxdb-ui/./src/visualization/components/internal/StaticLegend.scss?47fb","webpack://influxdb-ui/./src/visualization/components/internal/StaticLegend.tsx","webpack://influxdb-ui/./src/shared/components/ColorDropdown.tsx","webpack://influxdb-ui/./src/shared/components/ThresholdSetting.tsx","webpack://influxdb-ui/./src/visualization/components/internal/utils.ts","webpack://influxdb-ui/./src/visualization/components/internal/ThresholdsSettings.tsx","webpack://influxdb-ui/./src/shared/utils/useOneWayReducer.ts","webpack://influxdb-ui/./src/visualization/components/internal/ViewLoadingSpinner.tsx","webpack://influxdb-ui/./src/visualization/constants.ts","webpack://influxdb-ui/./src/visualization/index.ts","webpack://influxdb-ui/./src/visualization/types/Band/icon.tsx","webpack://influxdb-ui/./src/visualization/types/Band/index.tsx","webpack://influxdb-ui/./src/visualization/types/Band/options.tsx","webpack://influxdb-ui/./src/visualization/types/Band/properties.ts","webpack://influxdb-ui/./src/visualization/types/Band/view.tsx","webpack://influxdb-ui/./src/visualization/types/Check/icon.tsx","webpack://influxdb-ui/./src/visualization/types/Check/properties.ts","webpack://influxdb-ui/./src/shared/utils/useDragBehavior.ts","webpack://influxdb-ui/./src/shared/components/ThresholdMarker.tsx","webpack://influxdb-ui/./src/shared/components/ThresholdMarkerArea.tsx","webpack://influxdb-ui/./src/shared/components/RangeThresholdMarkers.tsx","webpack://influxdb-ui/./src/shared/components/LessThresholdMarker.tsx","webpack://influxdb-ui/./src/shared/components/GreaterThresholdMarker.tsx","webpack://influxdb-ui/./src/shared/components/ThresholdMarkers.tsx","webpack://influxdb-ui/./src/shared/components/BoxTooltip.tsx","webpack://influxdb-ui/./src/shared/components/EventMarkerTooltip.tsx","webpack://influxdb-ui/./src/shared/components/EventMarker.tsx","webpack://influxdb-ui/./src/shared/components/EventMarkers.tsx","webpack://influxdb-ui/./src/visualization/types/Check/view.tsx","webpack://influxdb-ui/./src/visualization/types/Check/index.tsx","webpack://influxdb-ui/./src/visualization/types/Gauge/icon.tsx","webpack://influxdb-ui/./src/visualization/types/Gauge/options.tsx","webpack://influxdb-ui/./src/visualization/types/Gauge/properties.ts","webpack://influxdb-ui/./src/visualization/types/Gauge/constants.ts","webpack://influxdb-ui/./src/visualization/types/Gauge/view.tsx","webpack://influxdb-ui/./src/visualization/types/Gauge/index.tsx","webpack://influxdb-ui/./src/visualization/types/Graph/icon.tsx","webpack://influxdb-ui/./src/visualization/types/Graph/index.tsx","webpack://influxdb-ui/./src/visualization/types/Graph/options.tsx","webpack://influxdb-ui/./src/visualization/types/Graph/properties.ts","webpack://influxdb-ui/./src/visualization/types/Graph/view.tsx","webpack://influxdb-ui/./src/visualization/types/Heatmap/icon.tsx","webpack://influxdb-ui/./src/visualization/types/Heatmap/index.tsx","webpack://influxdb-ui/./src/visualization/types/Heatmap/options.tsx","webpack://influxdb-ui/./src/visualization/types/Heatmap/properties.ts","webpack://influxdb-ui/./src/visualization/types/Heatmap/view.tsx","webpack://influxdb-ui/./src/visualization/types/Histogram/icon.tsx","webpack://influxdb-ui/./src/visualization/types/Histogram/index.tsx","webpack://influxdb-ui/./src/visualization/types/Histogram/options.tsx","webpack://influxdb-ui/./src/visualization/types/Histogram/properties.ts","webpack://influxdb-ui/./src/visualization/types/Histogram/view.tsx","webpack://influxdb-ui/./src/visualization/types/Map/icon.tsx","webpack://influxdb-ui/./src/visualization/types/Map/utils.ts","webpack://influxdb-ui/./src/visualization/types/Map/GeoOptions.scss?e386","webpack://influxdb-ui/./src/visualization/types/Map/S2ColumnOptions.tsx","webpack://influxdb-ui/./src/visualization/types/Map/LatLonColumnOptions.tsx","webpack://influxdb-ui/./src/visualization/types/Map/GeoOptions.tsx","webpack://influxdb-ui/./src/visualization/types/Map/properties.ts","webpack://influxdb-ui/./src/visualization/types/Map/view.tsx","webpack://influxdb-ui/./src/visualization/types/Map/index.tsx","webpack://influxdb-ui/./src/visualization/types/Mosaic/icon.tsx","webpack://influxdb-ui/./src/visualization/types/Mosaic/index.tsx","webpack://influxdb-ui/./src/visualization/types/Mosaic/options.tsx","webpack://influxdb-ui/./src/visualization/types/Mosaic/properties.ts","webpack://influxdb-ui/./src/visualization/types/Mosaic/view.tsx","webpack://influxdb-ui/./src/visualization/types/Scatter/TimeAutoToggle.tsx","webpack://influxdb-ui/./src/visualization/types/Scatter/icon.tsx","webpack://influxdb-ui/./src/visualization/types/Scatter/index.tsx","webpack://influxdb-ui/./src/visualization/types/Scatter/options.tsx","webpack://influxdb-ui/./src/visualization/types/Scatter/properties.ts","webpack://influxdb-ui/./src/visualization/types/Scatter/view.tsx","webpack://influxdb-ui/./src/visualization/types/SimpleTable/icon.tsx","webpack://influxdb-ui/./src/visualization/types/SimpleTable/options.tsx","webpack://influxdb-ui/./src/visualization/types/SimpleTable/properties.ts","webpack://influxdb-ui/./src/visualization/types/SimpleTable/index.tsx","webpack://influxdb-ui/./src/visualization/types/SimpleTable/view.tsx","webpack://influxdb-ui/./src/visualization/types/SingleStat/icon.tsx","webpack://influxdb-ui/./src/visualization/types/SingleStat/options.tsx","webpack://influxdb-ui/./src/visualization/types/SingleStat/properties.ts","webpack://influxdb-ui/./src/visualization/types/SingleStat/view.tsx","webpack://influxdb-ui/./src/visualization/types/SingleStat/index.tsx","webpack://influxdb-ui/./src/visualization/types/SingleStatPlusLine/icon.tsx","webpack://influxdb-ui/./src/visualization/types/SingleStatPlusLine/index.tsx","webpack://influxdb-ui/./src/visualization/types/SingleStatPlusLine/options.tsx","webpack://influxdb-ui/./src/visualization/types/SingleStatPlusLine/properties.ts","webpack://influxdb-ui/./src/visualization/types/SingleStatPlusLine/view.tsx","webpack://influxdb-ui/./src/visualization/types/Table/icon.tsx","webpack://influxdb-ui/./src/shared/components/draggable_column/DraggableColumn.tsx","webpack://influxdb-ui/./src/shared/utils/move.ts","webpack://influxdb-ui/./src/visualization/types/Table/options.scss?1ae4","webpack://influxdb-ui/./src/visualization/types/Table/options.tsx","webpack://influxdb-ui/./src/visualization/types/Table/properties.ts","webpack://influxdb-ui/./src/timeMachine/utils/rawFluxDataTable.ts","webpack://influxdb-ui/./src/visualization/types/Table/view.tsx","webpack://influxdb-ui/./src/visualization/types/Table/index.tsx","webpack://influxdb-ui/./src/visualization/utils/annotationUtils.ts","webpack://influxdb-ui/./src/visualization/utils/colorMappingUtils.ts","webpack://influxdb-ui/./src/visualization/utils/getFormatter.ts","webpack://influxdb-ui/./src/visualization/utils/timeFormat.ts","webpack://influxdb-ui/./src/visualization/utils/useAxisTicksGenerator.ts","webpack://influxdb-ui/./src/visualization/utils/useBandColumns.ts","webpack://influxdb-ui/./src/visualization/utils/useLegendOpacity.ts","webpack://influxdb-ui/./src/visualization/utils/useStaticLegend.ts","webpack://influxdb-ui/./src/visualization/utils/useVisDomainSettings.ts","webpack://influxdb-ui/./src/visualization/utils/useZoomQuery.ts","webpack://influxdb-ui/./src/writeData/subscriptions/context/api.tsx","webpack://influxdb-ui/./src/flows/pipes/Notification/endpoints/ sync ^\\.\\/([^\\/])+\\/index\\.(ts%7Ctsx)$","webpack://influxdb-ui/./src/flows/pipes/ sync ^\\.\\/([^\\/])+\\/index\\.(ts%7Ctsx)$","webpack://influxdb-ui/./src/flows/templates/types/ sync \\.(ts%7Ctsx)$"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-columns{width:100%;display:grid;grid-template-columns:repeat(6, minmax(100px, 1fr));grid-gap:4px;height:auto;background-color:#07070e;padding:4px}.flow-columns--column{display:flex;padding:16px;background:#1a1a2a;border-radius:4px;align-items:center}.flow-columns--toggle{flex:0;margin-right:12px}.flow-columns--text{font-size:14px;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;font-weight:600}.flow-columns--input{flex:1 1;font-size:14px;font-weight:600;user-select:none;color:#d5d5dd;height:40px;position:relative}.flow-columns--input input{background-color:rgba(0,0,0,0);border:2px solid #1a1a2a;color:#d5d5dd;font-size:14px;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;font-weight:600;transition:color .25s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease;outline:none;width:100%;height:40px;border-radius:2px}.flow-columns--input input:hover{border-color:#333346}.flow-columns--input input:hover,.flow-columns--input input:focus{color:#fff}.flow-columns--input input:focus{background-color:rgba(241,241,243,.15);border-color:rgba(0,163,255,.75);box-shadow:none}.flow-columns--input:hover .flow-panel--title-icon{opacity:1}.column-card--content{box-shadow:none;height:45px}.column-card--content>div{flex-direction:row;align-items:center;justify-content:flex-start;width:100%}.column-card--name>span{color:#d3d3d3;font-size:14px}.column-card--name{flex:1}.column-card--vistoggle{flex:0;margin-right:12px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Columns/styles.scss\"],\"names\":[],\"mappings\":\"AAAA,cAAc,UAAU,CAAC,YAAY,CAAC,mDAAmD,CAAC,YAAY,CAAC,WAAW,CAAC,wBAAwB,CAAC,WAAW,CAAC,sBAAsB,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,sBAAsB,MAAM,CAAC,iBAAiB,CAAC,oBAAoB,cAAc,CAAC,oEAAoE,CAAC,eAAe,CAAC,qBAAqB,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,2BAA2B,8BAA8B,CAAC,wBAAwB,CAAC,aAAa,CAAC,cAAc,CAAC,oEAAoE,CAAC,eAAe,CAAC,iGAAiG,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,iCAAiC,oBAAoB,CAAC,kEAAkE,UAAU,CAAC,iCAAiC,sCAAsC,CAAC,gCAAgC,CAAC,eAAe,CAAC,mDAAmD,SAAS,CAAC,sBAAsB,eAAe,CAAC,WAAW,CAAC,0BAA0B,kBAAkB,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,UAAU,CAAC,wBAAwB,aAAa,CAAC,cAAc,CAAC,mBAAmB,MAAM,CAAC,wBAAwB,MAAM,CAAC,iBAAiB\",\"sourcesContent\":[\".flow-columns{width:100%;display:grid;grid-template-columns:repeat(6, minmax(100px, 1fr));grid-gap:4px;height:auto;background-color:#07070e;padding:4px}.flow-columns--column{display:flex;padding:16px;background:#1a1a2a;border-radius:4px;align-items:center}.flow-columns--toggle{flex:0;margin-right:12px}.flow-columns--text{font-size:14px;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;font-weight:600}.flow-columns--input{flex:1 1;font-size:14px;font-weight:600;user-select:none;color:#d5d5dd;height:40px;position:relative}.flow-columns--input input{background-color:rgba(0,0,0,0);border:2px solid #1a1a2a;color:#d5d5dd;font-size:14px;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;font-weight:600;transition:color .25s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease;outline:none;width:100%;height:40px;border-radius:2px}.flow-columns--input input:hover{border-color:#333346}.flow-columns--input input:hover,.flow-columns--input input:focus{color:#fff}.flow-columns--input input:focus{background-color:rgba(241,241,243,.15);border-color:rgba(0,163,255,.75);box-shadow:none}.flow-columns--input:hover .flow-panel--title-icon{opacity:1}.column-card--content{box-shadow:none;height:45px}.column-card--content>div{flex-direction:row;align-items:center;justify-content:flex-start;width:100%}.column-card--name>span{color:#d3d3d3;font-size:14px}.column-card--name{flex:1}.column-card--vistoggle{flex:0;margin-right:12px}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".downsample-panel{display:flex;margin:0 -8px;padding-bottom:16px}.downsample-panel .duration-input{width:200px;margin-bottom:8px}.downsample-panel .downsample-panel--left{padding:0 8px}.downsample-panel .downsample-panel--right{padding:0 8px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Downsample/style.scss\"],\"names\":[],\"mappings\":\"AAAA,kBAAkB,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,kCAAkC,WAAW,CAAC,iBAAiB,CAAC,0CAA0C,aAAa,CAAC,2CAA2C,aAAa\",\"sourcesContent\":[\".downsample-panel{display:flex;margin:0 -8px;padding-bottom:16px}.downsample-panel .duration-input{width:200px;margin-bottom:8px}.downsample-panel .downsample-panel--left{padding:0 8px}.downsample-panel .downsample-panel--right{padding:0 8px}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-panel--markdown{font-size:14px;line-height:16px;padding:8px;border-radius:1px;transition:border-color .25s ease}.flow-panel--body .markdown-editor--monaco{position:relative}.flow-panel--body .markdown-editor--monaco .react-monaco-editor-container{min-height:100px}.flow-panel--markdown__placeholder.markdown-format{color:#68687b;font-style:italic}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Markdown/style.scss\"],\"names\":[],\"mappings\":\"AAAA,sBAAsB,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,iBAAiB,CAAC,iCAAiC,CAAC,2CAA2C,iBAAiB,CAAC,0EAA0E,gBAAgB,CAAC,mDAAmD,aAAa,CAAC,iBAAiB\",\"sourcesContent\":[\".flow-panel--markdown{font-size:14px;line-height:16px;padding:8px;border-radius:1px;transition:border-color .25s ease}.flow-panel--body .markdown-editor--monaco{position:relative}.flow-panel--body .markdown-editor--monaco .react-monaco-editor-container{min-height:100px}.flow-panel--markdown__placeholder.markdown-format{color:#68687b;font-style:italic}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".data-source{display:flex;height:100%;flex-direction:column}.data-source--controls{display:flex;align-items:flex-start;margin-bottom:8px;flex-wrap:wrap;flex:0 0 0}.data-source--search{flex:0 0 0}.data-source--bucket{flex:1 0 0;order:1}.data-source--aggregate{order:2}.data-source--filters{order:3;flex:1 0 100%;margin-top:4px;display:flex;align-items:center}.data-source--filters-label{height:40px;line-height:40px;font-weight:600;margin:0;margin-right:8px}.data-source--filter{margin:2px}.data-source--filter>.cf-label--name{max-width:50vw;overflow:hidden;text-overflow:ellipsis}.data-source--filters-list{display:flex;flex-wrap:wrap;flex:1 0 0}.data-source--block{display:block;flex-direction:column;align-items:stretch;width:100%}.data-source--block-results{display:flex;align-items:stretch;flex:1 1 0}.data-source--block-results .cf-dapper-scrollbars{height:100% !important}.data-source--block-title{font-size:14px;user-select:none;font-weight:600;padding-bottom:8px;margin-bottom:8px;color:#b9b9c5;border-bottom:2px solid #1a1a2a;text-transform:capitalize}.data-source--list__empty{display:flex;align-items:center;justify-content:center;user-select:none;color:#68687b;height:304px}.data-source--list__no-results{color:#68687b;justify-content:center;background-color:#07070e;border-radius:2px}.data-source--list__no-results>*{margin:4px}.selectors--item-value{transition:color .25s ease;font-family:\\\"Roboto Mono\\\",monospace}.selectors--item-name{margin:0 8px}.selectors--item-type{font-size:.75em;text-transform:uppercase;opacity:.666}.selectors--item__measurement{color:hotpink}.cf-list-item:hover .selectors--item__measurement{color:#ffb6c1}.selectors--item__field{color:#6495ed}.cf-list-item:hover .selectors--item__field{color:#87cefa}.selectors--item__tag{color:#32cd32}.cf-list-item:hover .selectors--item__tag{color:#7cfc00}.data-source--agg-info{font-size:13px;padding:8px;user-select:none;color:#b9b9c5;cursor:default}.data-source--agg-info>p{margin:0}.data-source--agg-info .cf-icon{display:inline-block;margin-right:4px;line-height:1em}@media screen and (min-width: 1200px){.data-source--controls{flex-wrap:nowrap}.data-source--bucket{flex:initial}.data-source--filters-label{margin-left:8px}.data-source--aggregate{order:3}.data-source--filters{order:2;flex:1 0 100px;margin-top:0;margin-right:4px}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/MetricSelector/style.scss\"],\"names\":[],\"mappings\":\"AAAA,aAAa,YAAY,CAAC,WAAW,CAAC,qBAAqB,CAAC,uBAAuB,YAAY,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,cAAc,CAAC,UAAU,CAAC,qBAAqB,UAAU,CAAC,qBAAqB,UAAU,CAAC,OAAO,CAAC,wBAAwB,OAAO,CAAC,sBAAsB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,kBAAkB,CAAC,4BAA4B,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,UAAU,CAAC,qCAAqC,cAAc,CAAC,eAAe,CAAC,sBAAsB,CAAC,2BAA2B,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,oBAAoB,aAAa,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,UAAU,CAAC,4BAA4B,YAAY,CAAC,mBAAmB,CAAC,UAAU,CAAC,kDAAkD,sBAAsB,CAAC,0BAA0B,cAAc,CAAC,gBAAgB,CAAC,eAAe,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,aAAa,CAAC,+BAA+B,CAAC,yBAAyB,CAAC,0BAA0B,YAAY,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,aAAa,CAAC,YAAY,CAAC,+BAA+B,aAAa,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,iCAAiC,UAAU,CAAC,uBAAuB,0BAA0B,CAAC,mCAAmC,CAAC,sBAAsB,YAAY,CAAC,sBAAsB,eAAe,CAAC,wBAAwB,CAAC,YAAY,CAAC,8BAA8B,aAAa,CAAC,kDAAkD,aAAa,CAAC,wBAAwB,aAAa,CAAC,4CAA4C,aAAa,CAAC,sBAAsB,aAAa,CAAC,0CAA0C,aAAa,CAAC,uBAAuB,cAAc,CAAC,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,cAAc,CAAC,yBAAyB,QAAQ,CAAC,gCAAgC,oBAAoB,CAAC,gBAAgB,CAAC,eAAe,CAAC,sCAAsC,uBAAuB,gBAAgB,CAAC,qBAAqB,YAAY,CAAC,4BAA4B,eAAe,CAAC,wBAAwB,OAAO,CAAC,sBAAsB,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,gBAAgB,CAAC\",\"sourcesContent\":[\".data-source{display:flex;height:100%;flex-direction:column}.data-source--controls{display:flex;align-items:flex-start;margin-bottom:8px;flex-wrap:wrap;flex:0 0 0}.data-source--search{flex:0 0 0}.data-source--bucket{flex:1 0 0;order:1}.data-source--aggregate{order:2}.data-source--filters{order:3;flex:1 0 100%;margin-top:4px;display:flex;align-items:center}.data-source--filters-label{height:40px;line-height:40px;font-weight:600;margin:0;margin-right:8px}.data-source--filter{margin:2px}.data-source--filter>.cf-label--name{max-width:50vw;overflow:hidden;text-overflow:ellipsis}.data-source--filters-list{display:flex;flex-wrap:wrap;flex:1 0 0}.data-source--block{display:block;flex-direction:column;align-items:stretch;width:100%}.data-source--block-results{display:flex;align-items:stretch;flex:1 1 0}.data-source--block-results .cf-dapper-scrollbars{height:100% !important}.data-source--block-title{font-size:14px;user-select:none;font-weight:600;padding-bottom:8px;margin-bottom:8px;color:#b9b9c5;border-bottom:2px solid #1a1a2a;text-transform:capitalize}.data-source--list__empty{display:flex;align-items:center;justify-content:center;user-select:none;color:#68687b;height:304px}.data-source--list__no-results{color:#68687b;justify-content:center;background-color:#07070e;border-radius:2px}.data-source--list__no-results>*{margin:4px}.selectors--item-value{transition:color .25s ease;font-family:\\\"Roboto Mono\\\",monospace}.selectors--item-name{margin:0 8px}.selectors--item-type{font-size:.75em;text-transform:uppercase;opacity:.666}.selectors--item__measurement{color:hotpink}.cf-list-item:hover .selectors--item__measurement{color:#ffb6c1}.selectors--item__field{color:#6495ed}.cf-list-item:hover .selectors--item__field{color:#87cefa}.selectors--item__tag{color:#32cd32}.cf-list-item:hover .selectors--item__tag{color:#7cfc00}.data-source--agg-info{font-size:13px;padding:8px;user-select:none;color:#b9b9c5;cursor:default}.data-source--agg-info>p{margin:0}.data-source--agg-info .cf-icon{display:inline-block;margin-right:4px;line-height:1em}@media screen and (min-width: 1200px){.data-source--controls{flex-wrap:nowrap}.data-source--bucket{flex:initial}.data-source--filters-label{margin-left:8px}.data-source--aggregate{order:3}.data-source--filters{order:2;flex:1 0 100px;margin-top:0;margin-right:4px}}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-error{margin-top:4px;display:flex;flex-direction:row;align-items:stretch;width:100%;border:2px solid #07070e;background-color:#07070e;border-radius:2px 0 0 2px}.flow-error--header{color:#d5d5dd;width:47px;flex:0 0 47px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:8px 0}.flow-error--vis-toggle{align-items:center;justify-content:center;display:flex;font-size:1.5em;transition:color .25s ease;width:30px;height:30px;position:relative;color:#ff8564}.flow-error--vis-toggle:before{display:inline-block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.flow-error--body{position:relative;flex:1 0 0;padding:8px 0}.flow-error--body h1{color:#d5d5dd;user-select:none;font-weight:600;font-size:12px;margin:0;padding:0}.flow-error--body p{margin:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Missing/styles.scss\"],\"names\":[],\"mappings\":\"AAAA,YAAY,cAAc,CAAC,YAAY,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,UAAU,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,oBAAoB,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,aAAa,CAAC,wBAAwB,kBAAkB,CAAC,sBAAsB,CAAC,YAAY,CAAC,eAAe,CAAC,0BAA0B,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC,+BAA+B,oBAAoB,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,kBAAkB,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,aAAa,CAAC,gBAAgB,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,oBAAoB,QAAQ\",\"sourcesContent\":[\".flow-error{margin-top:4px;display:flex;flex-direction:row;align-items:stretch;width:100%;border:2px solid #07070e;background-color:#07070e;border-radius:2px 0 0 2px}.flow-error--header{color:#d5d5dd;width:47px;flex:0 0 47px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:8px 0}.flow-error--vis-toggle{align-items:center;justify-content:center;display:flex;font-size:1.5em;transition:color .25s ease;width:30px;height:30px;position:relative;color:#ff8564}.flow-error--vis-toggle:before{display:inline-block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.flow-error--body{position:relative;flex:1 0 0;padding:8px 0}.flow-error--body h1{color:#d5d5dd;user-select:none;font-weight:600;font-size:12px;margin:0;padding:0}.flow-error--body p{margin:0}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".threshold-trash-icon--block{margin-left:8px}.threshold-trash-icon--block :hover{cursor:pointer}.threshold-add-icon--block:hover{cursor:pointer}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Notification/Threshold.scss\"],\"names\":[],\"mappings\":\"AAAA,6BAA6B,eAAe,CAAC,oCAAoC,cAAc,CAAC,iCAAiC,cAAc\",\"sourcesContent\":[\".threshold-trash-icon--block{margin-left:8px}.threshold-trash-icon--block :hover{cursor:pointer}.threshold-add-icon--block:hover{cursor:pointer}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".slack-endpoint-details--flex{display:flex;flex-direction:column;padding:8px;justify-content:space-between;height:100%}.slack-endpoint-details--flex .cf-color-picker--swatches{display:none}.slack-endpoint-details--flex .cf-color-picker--form>button{display:none}.slack-endpoint-details--flex .cf-color-picker--form .cf-status-indicator{display:none}.slack-endpoint-details--flex .cf-color-picker--input{margin-right:0px}.slack-endpoint-details--flex .cf-color-picker--form .cf-input-field{height:38px;font-size:14px}.form-element--authorization{width:100%}.form-element--authorization .cf-select-group{display:flex;justify-content:space-around;width:50%}.endpoint-details--element{height:100%}.endpoint-details--element .cf-form--label{margin-bottom:8px}.http-endpoint--flex{padding:8px}.endpoint-list--element{flex:1;max-width:14%}.slack-message-color--dropdown-item{padding-left:26px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Notification/styles.scss\"],\"names\":[],\"mappings\":\"AAAA,8BAA8B,YAAY,CAAC,qBAAqB,CAAC,WAAW,CAAC,6BAA6B,CAAC,WAAW,CAAC,yDAAyD,YAAY,CAAC,4DAA4D,YAAY,CAAC,0EAA0E,YAAY,CAAC,sDAAsD,gBAAgB,CAAC,qEAAqE,WAAW,CAAC,cAAc,CAAC,6BAA6B,UAAU,CAAC,8CAA8C,YAAY,CAAC,4BAA4B,CAAC,SAAS,CAAC,2BAA2B,WAAW,CAAC,2CAA2C,iBAAiB,CAAC,qBAAqB,WAAW,CAAC,wBAAwB,MAAM,CAAC,aAAa,CAAC,oCAAoC,iBAAiB\",\"sourcesContent\":[\".slack-endpoint-details--flex{display:flex;flex-direction:column;padding:8px;justify-content:space-between;height:100%}.slack-endpoint-details--flex .cf-color-picker--swatches{display:none}.slack-endpoint-details--flex .cf-color-picker--form>button{display:none}.slack-endpoint-details--flex .cf-color-picker--form .cf-status-indicator{display:none}.slack-endpoint-details--flex .cf-color-picker--input{margin-right:0px}.slack-endpoint-details--flex .cf-color-picker--form .cf-input-field{height:38px;font-size:14px}.form-element--authorization{width:100%}.form-element--authorization .cf-select-group{display:flex;justify-content:space-around;width:50%}.endpoint-details--element{height:100%}.endpoint-details--element .cf-form--label{margin-bottom:8px}.http-endpoint--flex{padding:8px}.endpoint-list--element{flex:1;max-width:14%}.slack-message-color--dropdown-item{padding-left:26px}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-panel--body .query-builder{border:2px solid #07070e;background-color:#07070e;border-radius:2px;padding:2px;position:relative;height:100%;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/QueryBuilder/style.scss\"],\"names\":[],\"mappings\":\"AAAA,iCAAiC,wBAAwB,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,UAAU\",\"sourcesContent\":[\".flow-panel--body .query-builder{border:2px solid #07070e;background-color:#07070e;border-radius:2px;padding:2px;position:relative;height:100%;width:100%}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-sidebar .flux-toolbar{flex-direction:column}.flow-nonsidebar{position:absolute;top:0;right:0;bottom:0;width:300px}.flow-nonsidebar .flux-toolbar{flex-direction:column;background-color:#1a1a2a}.flow-panel--body .qx-editor--monaco{height:100%;position:static}.flow-sidebar--secrets-list{height:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/RawFluxEditor/style.scss\"],\"names\":[],\"mappings\":\"AAAA,4BAA4B,qBAAqB,CAAC,iBAAiB,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,+BAA+B,qBAAqB,CAAC,wBAAwB,CAAC,qCAAqC,WAAW,CAAC,eAAe,CAAC,4BAA4B,WAAW\",\"sourcesContent\":[\".flow-sidebar .flux-toolbar{flex-direction:column}.flow-nonsidebar{position:absolute;top:0;right:0;bottom:0;width:300px}.flow-nonsidebar .flux-toolbar{flex-direction:column;background-color:#1a1a2a}.flow-panel--body .qx-editor--monaco{height:100%;position:static}.flow-sidebar--secrets-list{height:100%}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-panel-region--header h5{margin-bottom:0}.flow-panel-region--header p{margin-top:0;color:#9e9ead}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Region/style.scss\"],\"names\":[],\"mappings\":\"AAAA,8BAA8B,eAAe,CAAC,6BAA6B,YAAY,CAAC,aAAa\",\"sourcesContent\":[\".flow-panel-region--header h5{margin-bottom:0}.flow-panel-region--header p{margin-top:0;color:#9e9ead}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".remote-csv-card{display:flex}.remote-csv--dropdown{flex:0 0 300px;margin-right:8px}.remote-csv-url-input{flex:4;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/RemoteCSV/styles.scss\"],\"names\":[],\"mappings\":\"AAAA,iBAAiB,YAAY,CAAC,sBAAsB,cAAc,CAAC,gBAAgB,CAAC,sBAAsB,MAAM,CAAC,UAAU\",\"sourcesContent\":[\".remote-csv-card{display:flex}.remote-csv--dropdown{flex:0 0 300px;margin-right:8px}.remote-csv-url-input{flex:4;width:100%}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-panel-schedule--header h5{margin-bottom:0}.flow-panel-schedule--header p{margin-top:0;color:#9e9ead}.flow-update-task--export-warning{margin:8px 0}.flow-update-task--export-warning>.cf-panel--body{padding:8px 16px}.flow-task-history h1{font-size:18px;margin-bottom:8px}.flow-task-history.inactive h1{color:#828294}.flow-task-history.inactive .toggle label{color:#828294}.flow-task-history .interaction{margin-bottom:32px;display:flex}.flow-task-history .toggle{flex:1 1;padding-top:2px}.flow-task-history .toggle label{margin-left:8px;vertical-align:sub}.flow-task-history .run{margin-bottom:16px}.flow-task-history .run label{font-weight:500;display:inline-block;width:64px}.flow-task-history .run .run--buttons{margin-top:4px;display:flex;gap:4px}.flow-task-history .run .run--buttons .cf-button{flex:1 1;width:100%}.flow-task-history .run .run--row.success span{font-weight:500;color:#2fa74d}.flow-task-history .run .run--row.failed span{font-weight:500;color:#dc4e58}.flow-task-run--log .time{white-space:nowrap}.flow-task-run--log .message pre{white-space:normal}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Schedule/style.scss\"],\"names\":[],\"mappings\":\"AAAA,gCAAgC,eAAe,CAAC,+BAA+B,YAAY,CAAC,aAAa,CAAC,kCAAkC,YAAY,CAAC,kDAAkD,gBAAgB,CAAC,sBAAsB,cAAc,CAAC,iBAAiB,CAAC,+BAA+B,aAAa,CAAC,0CAA0C,aAAa,CAAC,gCAAgC,kBAAkB,CAAC,YAAY,CAAC,2BAA2B,QAAQ,CAAC,eAAe,CAAC,iCAAiC,eAAe,CAAC,kBAAkB,CAAC,wBAAwB,kBAAkB,CAAC,8BAA8B,eAAe,CAAC,oBAAoB,CAAC,UAAU,CAAC,sCAAsC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,iDAAiD,QAAQ,CAAC,UAAU,CAAC,+CAA+C,eAAe,CAAC,aAAa,CAAC,8CAA8C,eAAe,CAAC,aAAa,CAAC,0BAA0B,kBAAkB,CAAC,iCAAiC,kBAAkB\",\"sourcesContent\":[\".flow-panel-schedule--header h5{margin-bottom:0}.flow-panel-schedule--header p{margin-top:0;color:#9e9ead}.flow-update-task--export-warning{margin:8px 0}.flow-update-task--export-warning>.cf-panel--body{padding:8px 16px}.flow-task-history h1{font-size:18px;margin-bottom:8px}.flow-task-history.inactive h1{color:#828294}.flow-task-history.inactive .toggle label{color:#828294}.flow-task-history .interaction{margin-bottom:32px;display:flex}.flow-task-history .toggle{flex:1 1;padding-top:2px}.flow-task-history .toggle label{margin-left:8px;vertical-align:sub}.flow-task-history .run{margin-bottom:16px}.flow-task-history .run label{font-weight:500;display:inline-block;width:64px}.flow-task-history .run .run--buttons{margin-top:4px;display:flex;gap:4px}.flow-task-history .run .run--buttons .cf-button{flex:1 1;width:100%}.flow-task-history .run .run--row.success span{font-weight:500;color:#2fa74d}.flow-task-history .run .run--row.failed span{font-weight:500;color:#dc4e58}.flow-task-run--log .time{white-space:nowrap}.flow-task-run--log .message pre{white-space:normal}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-spotify{text-align:center}.flow-spotify--editor{width:600px;margin:0 auto;text-align:right}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Spotify/style.scss\"],\"names\":[],\"mappings\":\"AAAA,cAAc,iBAAiB,CAAC,sBAAsB,WAAW,CAAC,aAAa,CAAC,gBAAgB\",\"sourcesContent\":[\".flow-spotify{text-align:center}.flow-spotify--editor{width:600px;margin:0 auto;text-align:right}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-visualization--header .search-widget-input{flex:0 1 500px}.query-stat{padding:8px 0;white-space:nowrap}.query-stat--bold{font-weight:600;color:#b9b9c5;padding-left:8px;padding-right:16px}.query-stat--normal{color:#828294;padding:0 8px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Table/view.scss\"],\"names\":[],\"mappings\":\"AAAA,iDAAiD,cAAc,CAAC,YAAY,aAAa,CAAC,kBAAkB,CAAC,kBAAkB,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,oBAAoB,aAAa,CAAC,aAAa\",\"sourcesContent\":[\".flow-visualization--header .search-widget-input{flex:0 1 500px}.query-stat{padding:8px 0;white-space:nowrap}.query-stat--bold{font-weight:600;color:#b9b9c5;padding-left:8px;padding-right:16px}.query-stat--normal{color:#828294;padding:0 8px}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-panel-time--header h5{margin-bottom:0}.flow-panel-time--header p{margin-top:0;color:#9e9ead}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Time/style.scss\"],\"names\":[],\"mappings\":\"AAAA,4BAA4B,eAAe,CAAC,2BAA2B,YAAY,CAAC,aAAa\",\"sourcesContent\":[\".flow-panel-time--header h5{margin-bottom:0}.flow-panel-time--header p{margin-top:0;color:#9e9ead}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".threshold-entry--container{position:relative;left:60px;width:263px;margin-bottom:8px}.error-threshold--text-block{min-width:56px;text-align:right;background:rgba(0,0,0,0)}.error-threshold-flex--margin{margin:0 4px 8px}.add-error-threshold--button{width:100%;margin-bottom:8px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Visualization/ErrorThresholds/ErrorThresholds.scss\"],\"names\":[],\"mappings\":\"AAAA,4BAA4B,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,6BAA6B,cAAc,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,8BAA8B,gBAAgB,CAAC,6BAA6B,UAAU,CAAC,iBAAiB\",\"sourcesContent\":[\".threshold-entry--container{position:relative;left:60px;width:263px;margin-bottom:8px}.error-threshold--text-block{min-width:56px;text-align:right;background:rgba(0,0,0,0)}.error-threshold-flex--margin{margin:0 4px 8px}.add-error-threshold--button{width:100%;margin-bottom:8px}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-visualization{background-color:#07070e;border-radius:2px;display:flex;flex-direction:column;align-items:stretch;height:100%;padding:12px}.flow-visualization--header{display:flex}.flow-visualization--view-error,.flow-visualization--view{flex-grow:1;width:100%;border-radius:1px;background-color:#07070e}.flow-visualization--view-error .empty-graph-error,.flow-visualization--view .empty-graph-error{height:200px}.flow-visualization--view-error .qr-code,.flow-visualization--view .qr-code{width:60%}.flow-visualization--view-error{background-color:#dc4e58}.flow-sidebar--submenu .view-options{padding:0;padding-right:15px}.flow-visualization--export-warning{margin:8px 0}.flow-visualization--export-warning>.cf-panel--body{padding:8px 16px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Visualization/style.scss\"],\"names\":[],\"mappings\":\"AAAA,oBAAoB,wBAAwB,CAAC,iBAAiB,CAAC,YAAY,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,WAAW,CAAC,YAAY,CAAC,4BAA4B,YAAY,CAAC,0DAA0D,WAAW,CAAC,UAAU,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,gGAAgG,YAAY,CAAC,4EAA4E,SAAS,CAAC,gCAAgC,wBAAwB,CAAC,qCAAqC,SAAS,CAAC,kBAAkB,CAAC,oCAAoC,YAAY,CAAC,oDAAoD,gBAAgB\",\"sourcesContent\":[\".flow-visualization{background-color:#07070e;border-radius:2px;display:flex;flex-direction:column;align-items:stretch;height:100%;padding:12px}.flow-visualization--header{display:flex}.flow-visualization--view-error,.flow-visualization--view{flex-grow:1;width:100%;border-radius:1px;background-color:#07070e}.flow-visualization--view-error .empty-graph-error,.flow-visualization--view .empty-graph-error{height:200px}.flow-visualization--view-error .qr-code,.flow-visualization--view .qr-code{width:60%}.flow-visualization--view-error{background-color:#dc4e58}.flow-sidebar--submenu .view-options{padding:0;padding-right:15px}.flow-visualization--export-warning{margin:8px 0}.flow-visualization--export-warning>.cf-panel--body{padding:8px 16px}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".flow-youtube{text-align:center;height:100%}.flow-youtube--editor{width:600px;margin:0 auto;padding-bottom:40px;text-align:right}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/flows/pipes/Youtube/style.scss\"],\"names\":[],\"mappings\":\"AAAA,cAAc,iBAAiB,CAAC,WAAW,CAAC,sBAAsB,WAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,gBAAgB\",\"sourcesContent\":[\".flow-youtube{text-align:center;height:100%}.flow-youtube--editor{width:600px;margin:0 auto;padding-bottom:40px;text-align:right}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".logo-with-cubo{display:flex}.logo-with-cubo>.cubo-logo{font-size:var(--step-4);padding-right:8px;color:#fff;line-height:1.5}.logo-with-cubo>.influx-cloud-logo{width:150px;height:50px;display:flex}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/onboarding/components/CloudLogoWithCubo.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB,YAAY,CAAC,2BAA2B,uBAAuB,CAAC,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,mCAAmC,WAAW,CAAC,WAAW,CAAC,YAAY\",\"sourcesContent\":[\".logo-with-cubo{display:flex}.logo-with-cubo>.cubo-logo{font-size:var(--step-4);padding-right:8px;color:#fff;line-height:1.5}.logo-with-cubo>.influx-cloud-logo{width:150px;height:50px;display:flex}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tag-selector-count{flex:0 0 30px;height:30px;background-color:#07070e;border-radius:50%;text-align:center;line-height:30px;font-weight:900;user-select:none;color:#00a3ff;font-size:13px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/shared/components/TagSelectorCount.scss\"],\"names\":[],\"mappings\":\"AAAA,oBAAoB,aAAa,CAAC,WAAW,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,cAAc\",\"sourcesContent\":[\".tag-selector-count{flex:0 0 30px;height:30px;background-color:#07070e;border-radius:50%;text-align:center;line-height:30px;font-weight:900;user-select:none;color:#00a3ff;font-size:13px}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../node_modules/css-loader/dist/cjs.js!../../node_modules/@influxdata/react-custom-scrollbars/dist/styles.css\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"assets/images/checkout-overlay--success.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../../assets/images/plugin-simple.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../../assets/images/plan-graphic--free.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"../../assets/images/dashboard-empty--dark.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"../../assets/images/dashboard-empty--light.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"../../assets/images/cubo_doodle.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"../../assets/images/cubo_doodle_green.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"../../assets/images/auth-logo.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_8___ = new URL(\"../../assets/images/drag-n-drop.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_9___ = new URL(\"assets/images/NotFoundBottom.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_10___ = new URL(\"assets/images/SlackIcon.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_11___ = new URL(\"assets/images/dashboard-empty--dark.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_12___ = new URL(\"../../assets/images/radial-power-level.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.cancellation-reasons-form{margin:10px 0;width:100%}.cancellation-reasons-form>.cf-form--element{padding:5px 0}.cancellation-reasons-form>.cf-form--element>.improvement-suggestions-input{height:120px}.alert-history-page .cf-page-contents.full-height .cf-page-contents--padding{width:100%;height:100%;padding:0 54px 54px 54px}.alert-history{width:100%;height:100%;padding-top:16px;overflow:hidden}.alerting-index .cf-page-contents__fluid{display:flex;flex-direction:column;align-items:stretch}.alerting-index--selector{width:100%;margin-bottom:8px}.alerting-index--columns{display:flex;align-items:stretch;flex:1 0 0}.alerting-index--column{display:none;flex-direction:column;flex:1 0 0;overflow:hidden;margin-bottom:16px}.alerting-index__checks .alerting-index--checks,.alerting-index__endpoints .alerting-index--notification-endpoints,.alerting-index__rules .alerting-index--notification-rules{display:flex}.alerting-index--column-body{flex:1 0 0}.alerting-index--list,.alerting-index--search{padding:24px 0;padding-top:0}.alert-header--cta{font-size:16px}.alert-header--cta span{margin-right:4px}.alerting-first-time{border:2px solid #0b3a8d}.alerting-first-time h1,.alerting-first-time h5{user-select:none;color:#bef0ff}.alerting-first-time h1{letter-spacing:0;margin-top:0}.alerting-first-time h5{line-height:1.5em;font-weight:500;margin-bottom:.25em}.alerting-first-time h5 strong{font-weight:900;color:#fff}.alerting-first-time .cf-button{margin-bottom:16px;margin-right:8px}.query-checklist--popover{width:300px;padding:16px;user-select:none}.query-checklist--popover p,.query-checklist--popover li{font-size:14px;line-height:1.5em;font-weight:500;color:#d5d5dd}.query-checklist--popover p{margin-top:0}.query-checklist--list{margin-bottom:0;padding:0}.query-checklist--item{margin:0;padding-left:0;list-style:none}.query-checklist--item .cf-icon{display:inline-block;margin-right:5px;width:16px}.query-checklist--item.error{color:#ff8564}.query-checklist--item.valid{color:#2fa74d}.level-table-field{font-weight:600}.level-table-field--crit{color:#dc4e58}.level-table-field--warn{color:#f48d38}.level-table-field--ok{color:#2fa74d}.level-table-field--info{color:#00a3ff}.level-table-field--unknown{color:#8e1fc3}.status-search-bar{position:relative;width:100%}.status-search-bar--suggestions{position:absolute;top:100%;left:0;right:0;background:#1a1a2a;z-index:100}.status-search-bar--clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:100;display:flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:10px;color:#9e9ead;border-radius:2px;background:#1a1a2a;cursor:pointer}.status-search-bar--clear:hover{background:#333346}.sent-table-field--sent{color:#009f5f}.sent-table-field--not-sent{color:#f48d38}.alert-builder{height:100%;padding-top:8px;display:flex}.alert-builder--card{margin-right:8px}.alert-builder--card:last-child{margin-right:0}.alert-builder--card .builder-card--contents{min-height:100%;padding:16px}.alert-builder--card .builder-card--header{justify-content:center}.alert-builder--card.alert-builder--meta-card{flex:1 0 140px !important}.alert-builder--card.alert-builder--message-card{flex:3 0 140px !important}.alert-builder--card.alert-builder--conditions-card{flex:2 0 200px !important}@media screen and (min-width: 1080px){.alert-builder--card.alert-builder--meta-card{flex:1 0 280px !important}.alert-builder--card.alert-builder--message-card{flex:3 0 320px !important}.alert-builder--card.alert-builder--conditions-card{flex:2 0 320px !important}}.cf-empty-state.alert-builder--card__empty{padding:32px;height:100%;justify-content:center}.alert-builder--message-template textarea{height:120px}.alert-builder--message-template.cf-text-area--container.cf-input-md{height:auto}.alert-builder--message-template.cf-text-area--container.cf-input-md textarea{height:120px;font-family:\\\"Roboto Mono\\\",monospace}.alert-builder--message-help{padding:0 16px}.alert-builder--message-help p{font-size:13px;font-weight:500}.alert-builder--message-help code{background-color:#07070e;color:#dd84f1;padding:2px 4px;border-radius:3px;user-select:text}.alert-builder--check-type-selector{margin-bottom:16px}.alert-builder--tag-row{margin-bottom:8px}.main-flexbox-child{width:100%}.flex-box-label{text-align:\\\"start\\\";margin:5px 0px}.flexbox-child-label-read{align-items:\\\"left\\\";margin-left:20px}.flexbox-child-label-write{align-items:\\\"left\\\";margin-left:20px}.input-label-read{margin-left:15px}.input-label-write{margin-right:50px}.resource-accordion-body{padding-top:10px;padding-bottom:10px;font-weight:bold}.resource-accordion-error{justify-content:center;color:gray}.overlay-header{text-align:center}.overlay-footer{display:grid;justify-content:center}.org-limit{margin:0 0 16px;position:relative}.org-limit--stat{text-align:right;font-size:var(--step-4);font-weight:500;color:#f1f1f3}.cf-grid--container .credit-250-conversion-panel{margin-top:32px;padding-bottom:64px}.cf-grid--container .credit-250-conversion-panel .credit-250-conversion-panel--message{margin-top:var(--step-1)}.cf-grid--container .credit-250-conversion-panel .credit-250-conversion-panel--header{margin-top:8px;margin-bottom:8px}.cf-grid--container .credit-250-conversion-panel .credit-250-conversion-upgrade--button{margin-top:32px}.conversion-panel--list{-webkit-columns:2 250px;-moz-columns:2 250px;columns:2 250px;margin:var(--step-1) 0}.conversion-panel--benefits,.credit-250-conversion-panel--benefits{list-style:none;margin:0}.conversion-panel--benefits>li,.credit-250-conversion-panel--benefits>li{font-size:var(--step-1);padding-left:32px;position:relative;margin:0;margin-bottom:16px}.conversion-panel--benefits>li:before,.credit-250-conversion-panel--benefits>li:before{content:\\\"\\\";position:absolute;left:0;border-radius:50%}.credit-250-conversion-panel--benefits>li:before{width:var(--step--1);height:var(--step--1);background-color:#fff;top:calc(var(--step--1)*.5)}.conversion-panel--benefits>li:before{width:var(--step-1);height:var(--step-1);background-color:#00a3ff}p.conversion-panel--final-p{font-size:var(--step-3);text-align:center;margin-bottom:0}.billing-form--frame{position:relative}.billing--contact-info,.billing--contact-info *{color:#d5d5dd;height:30px;padding:8px 11px;font-size:12px;font-weight:600}.billing-contact--alert{margin-bottom:16px}.payment-method-panel strong{color:#00c9ff;margin-bottom:32px}.billing-notification p{display:inline;text-align:left;justify-content:left}.billing-notification button{text-align:right;float:right;justify-content:right}.list-item{margin-bottom:4px;padding:16px 24px 16px 16px;background-color:#1a1a2a;border-radius:2px;width:100%}.list-item .invoice-details{text-align:right}.list-item:hover{background-color:#333346}.invoice-status{width:80px}.invoice-status.paid{color:#2fa74d}.invoice-headers{justify-content:space-between}.invoice-headers .invoice-header{text-align:right}.invoice-headers .invoice-header:first-of-type{margin-left:0;text-align:left}.service-cancellation-reasons-form{margin:10px 0;width:100%}.service-cancellation-reasons-form>.cf-form--element{padding:5px 0}.service-cancellation-reasons-form>.cf-form--element>.improvement-suggestions-input{height:120px}.plan-type-panel .cf-panel--body.cf-flex-box__column{flex-direction:column}.plan-type-panel .plan-type-panel--detail{flex-grow:1;flex-basis:100%;margin-bottom:4px}.plan-type-panel .plan-type-panel--detail:last-child{margin-bottom:0}.plan-type-panel .plan-type-panel--detail .cf-panel--body{font-weight:500;font-size:var(--step-1);line-height:var(--step-1)}.plan-type-panel .plan-type-panel--detail .cf-panel--body span.money{color:#2fa74d;font-weight:700}.plan-type-panel .plan-type-panel--detail .billing--update-frequency{font-size:var(--step--1);text-align:right;color:#68687b}.cf-heading.section-header{width:100%;font-size:var(--step-5);margin:32px 0;text-align:center;display:flex;flex-direction:column;align-items:center}.cf-heading.section-header small{letter-spacing:0;font-size:19px;margin:0;margin-top:10px;font-weight:500}@media screen and (min-width: 750px){.plan-type-panel .cf-panel--body.cf-flex-box__column{flex-direction:row}.plan-type-panel .cf-grid--row{display:inline-flex}.plan-type-panel .plan-type-panel--detail{flex-grow:1;margin-bottom:0;margin-right:16px}.plan-type-panel .plan-type-panel--detail:last-child{margin-bottom:0;margin-right:0}.plan-type-panel .usage--plot{min-height:250px}.plan-type-panel .usage--plot::after{content:\\\"\\\";display:block;width:100%;padding-top:38%}.plan-type-panel .graph-type--panel{flex-grow:1;margin-bottom:0;margin-right:16px;margin-top:0}.plan-type-panel .graph-type--panel:last-child{margin-bottom:0;margin-right:0}}.cancellation-overlay .cancellation-overlay--content{margin-top:16px}.agree-terms-input{width:33px !important}.bucket-add-data{display:flex;flex-direction:column;align-items:stretch}.bucket-add-data--option{border-radius:4px;background-color:#1a1a2a;margin-bottom:4px;padding:16px;transition:background-color .25s ease}.bucket-add-data--option-header,.bucket-add-data--option-desc{transition:color .25s ease;user-select:none}.bucket-add-data--option-header{font-size:14px;font-weight:600;margin-bottom:12px;color:#b9b9c5}.bucket-add-data--option-desc{font-size:13px;font-weight:500;color:#9e9ead}.bucket-add-data--option:hover{cursor:pointer;background-color:#333346}.bucket-add-data--option:hover .bucket-add-data--option-header{color:#f1f1f3}.bucket-add-data--option:hover .bucket-add-data--option-desc{color:#b9b9c5}.system-bucket{color:#90c88a}.copy-bucket-id{transition:color .25s ease}.copy-bucket-id:hover{cursor:pointer;color:#00a3ff}.copy-bucket-id--helper{color:#b9b9c5;transition:opacity .25s ease;opacity:0;display:inline-block;margin-left:8px}.copy-bucket-id:hover .copy-bucket-id--helper{opacity:1}.no-buckets-warning{margin-bottom:16px}.retention--radio{margin-bottom:8px}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.dnd-container{display:flex;align-items:center}.dnd-container .dnd{border:2px dashed gray;border-radius:3px}.dnd-container .dnd.hasError{border-color:#dc4e58;color:#dc4e58}.dnd-container .dnd input[type=file].drag-and-drop--input{display:none}.dnd-container .dnd .display-area{min-width:150px;padding:10px;text-align:center}.dnd-container .dnd .display-area.active{color:#000}.dnd-container .dnd.active{background:#d3d3d3}.schema-section .option{margin-bottom:6px !important}.measurement-section .option:nth-child(3){margin-left:10px}.schema-section.measurement,.measurement-section.measurement{margin-top:15px}.schema-section .schema-name-input,.measurement-section .schema-name-input{margin-right:10px;width:205px !important}.schema-section .file-name-read-only,.measurement-section .file-name-read-only{width:100%;height:40px;font-size:small;padding-top:12px}.schema-section .add-schema-uploader.drag-and-drop,.measurement-section .add-schema-uploader.drag-and-drop{height:40px;border-color:#d3d3d3;width:155px}.schema-section .add-schema-uploader.drag-and-drop.has-file,.measurement-section .add-schema-uploader.drag-and-drop.has-file{border:none}.schema-section .add-schema-uploader.drag-and-drop .drag-and-drop--header,.measurement-section .add-schema-uploader.drag-and-drop .drag-and-drop--header{font-size:small;padding-top:12px;color:#d3d3d3}.schema-section .header,.measurement-section .header{margin-bottom:10px}.schema-section .header .subtext,.measurement-section .header .subtext{margin-top:6px;font-weight:300}.schema-section .title-text,.measurement-section .title-text{color:#b9b9c5;font-weight:500}.schema-section .value-text,.measurement-section .value-text{color:#fff;font-weight:500;margin-top:8px}.schema-section .measurement-schema-panel-container,.measurement-section .measurement-schema-panel-container{width:100%;padding-left:8px;border-radius:10px}.schema-section .measurement-schema-panel-container .measurement-schema-panel,.measurement-section .measurement-schema-panel-container .measurement-schema-panel{width:100%;margin-right:5px;margin-left:5px}.schema-section .measurement-schema-panel-container .measurement-schema-panel .download-button,.measurement-section .measurement-schema-panel-container .measurement-schema-panel .download-button{margin-right:9px}.schema-section .measurement-schema-panel-container .measurement-schema-panel .schema-row,.measurement-section .measurement-schema-panel-container .measurement-schema-panel .schema-row{justify-content:space-between;width:93%;margin-bottom:8px}.schema-section .measurement-schema-panel-container .measurement-schema-panel .schema-row.hasCancelBtn,.measurement-section .measurement-schema-panel-container .measurement-schema-panel .schema-row.hasCancelBtn{width:98%}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.cf-funnel-page--footer .cf-cta-button{margin:16px 0}.powered-by-payment-header{width:100%}.billing-form--frame{position:relative}.v2-zuora-form{min-height:226px}.checkout--panel{overflow:hidden;max-height:140px}.checkout-credit-250--banner{font-size:18px;display:flex;flex-direction:row;justify-content:center}.checkout-credit-250--banner-icon{padding-top:1px}.checkout-credit-250--banner-message{margin-left:8px}.checkout-form--banner{background:linear-gradient(45deg, rgb(52, 187, 85) 0%, rgb(0, 163, 255) 100%);box-sizing:border-box;position:absolute;top:0px;right:35px;width:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#000;transform:translate(50%) rotate(45deg);transform-origin:center;padding-right:15px}.checkout-form--banner p{margin:8px 0px}.checkout-form--banner .checkout-banner--credit{margin-top:8px;color:#000}#zuora_payment>iframe{background-color:rgba(0,0,0,0);width:100%}@media screen and (max-width: 1080px){.checkout-form--banner{position:relative;height:auto;display:flex;rotate:0deg;bottom:0;top:0;left:0;flex-direction:row;width:100%;transform:translate(0%) rotate(0deg);border-radius:8px}.checkout-form--banner .checkout-banner--credit{margin-top:0px;padding-right:8px}.checkout--panel{height:auto;max-height:none}}.cf-funnel-page--title.checkout-header{margin-top:0;padding:32px 0}.v2-zuora-form iframe{min-height:226px}.logo-with-cubo{display:flex}.logo-with-cubo>.cubo-logo{font-size:var(--step-4);padding-right:8px;color:#fff;line-height:1.5}.logo-with-cubo>.influx-cloud-logo{width:150px;height:50px;display:flex}.powered-by-stripe-logo .white-fill{fill:#fff}.checkout-overlay--title{color:#d5d5dd;font-size:18px;font-weight:500;margin-bottom:8px;text-align:center;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.checkout-overlay--title,.checkout-overlay--title:hover{cursor:default}.checkout-overlay--sub-title{color:#d5d5dd;font-size:14px;font-weight:400;margin-top:8px;margin-bottom:32px;text-align:center;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.checkout-overlay--sub-title,.checkout-overlay--sub-title:hover{cursor:default}.checkout-overlay--view__empty{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-position:center center;background-repeat:no-repeat;background-size:cover;height:230px;margin:16px 0}.alert-history-contents{display:flex;flex-direction:column;height:100%;width:100%}.alert-history-contents .time-series-container{background-color:#07070e;border-radius:2px}.rate-limit-overlay .rate-limit-overlay--content{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center}.rate-limit-overlay .rate-limit-overlay--content .rate-limit-overlay--image{background-position:center center;background-size:contain;background-repeat:no-repeat;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");flex-shrink:0;width:247px;height:260px}.rate-limit-overlay h4{margin:8px 0}.rate-limit-overlay .rate-alert--request-increase{color:#00a3ff;font-weight:700;cursor:pointer}.rate-limit-overlay .rate-alert--request-increase:hover,.rate-limit-overlay .rate-alert--request-increase:focus{color:#00c9ff;transition:color .25s ease}.rate-limit-overlay .rate-alert-form-details{height:400px}.rate-limit-overlay .rate-alert--request-increase-button{display:inline-block}@media screen and (min-width: 750px){.rate-limit-overlay .rate-limit-overlay--content{flex-direction:row-reverse;align-items:center;justify-content:space-around;text-align:left}.rate-limit-overlay .rate-limit-overlay--content .rate-limit-overlay--image{width:40%}.rate-limit-overlay form{width:60%}}.dataless-empty-state--docs-link{font-weight:500}.dataless-empty-state--image{background-position:center center;background-size:contain;background-repeat:no-repeat;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \");margin-bottom:16px;width:270px;height:200px}.clockface--app-wrapper.dashboard-light-mode{background-color:#f1f1f3;color:#68687b}.clockface--app-wrapper.dashboard-light-mode .cf-page-contents>.cf-dapper-scrollbars--track-y{background-color:#d5d5dd !important}.clockface--app-wrapper.dashboard-light-mode .cf-page--sub-title{color:#b9b9c5}.clockface--app-wrapper.dashboard-light-mode .cell{background-color:#fff}.clockface--app-wrapper.dashboard-light-mode .cell--dot-grid,.clockface--app-wrapper.dashboard-light-mode .cell--dot-grid:before,.clockface--app-wrapper.dashboard-light-mode .cell--dot-grid:after{background-color:#b9b9c5}.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--dot-grid,.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--dot-grid:before,.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--dot-grid:after{background-color:#68687b}.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--draggable:hover .cell--dot-grid,.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--draggable:hover .cell--dot-grid:before,.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--draggable:hover .cell--dot-grid:after{background-color:#00a3ff}.clockface--app-wrapper.dashboard-light-mode .cell--context{color:#b9b9c5}.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--context{color:#68687b}.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--context:hover,.clockface--app-wrapper.dashboard-light-mode .cell .cell--context.cell--context__active,.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--context.cell--context__active{color:#00a3ff}.clockface--app-wrapper.dashboard-light-mode .cell--note-indicator{color:#b9b9c5}.clockface--app-wrapper.dashboard-light-mode .cell--note-indicator.cell--note-indicator__active,.clockface--app-wrapper.dashboard-light-mode .cell--note-indicator:hover,.cell:hover .clockface--app-wrapper.dashboard-light-mode .cell--note-indicator:hover{color:#00a3ff}.clockface--app-wrapper.dashboard-light-mode .markdown-format{color:#4d4d60}.clockface--app-wrapper.dashboard-light-mode .markdown-format strong{color:#333346}.clockface--app-wrapper.dashboard-light-mode .markdown-format code{background-color:#f1f1f3;color:#be2ee4}.clockface--app-wrapper.dashboard-light-mode .markdown-format pre{background-color:#f1f1f3}.clockface--app-wrapper.dashboard-light-mode .markdown-cell .cf-dapper-scrollbars--track-y{background-color:#f1f1f3 !important}.clockface--app-wrapper.dashboard-light-mode .cell--view-empty{color:#9e9ead}.clockface--app-wrapper.dashboard-light-mode .variables-control-bar--empty,.clockface--app-wrapper.dashboard-light-mode .variables-control-bar--full{background-color:#fff}.clockface--app-wrapper.dashboard-light-mode .react-resizable-handle{border-right-color:#b9b9c5;border-bottom-color:#b9b9c5}.clockface--app-wrapper.dashboard-light-mode .react-resizable-handle:before,.clockface--app-wrapper.dashboard-light-mode .react-resizable-handle:after{background-color:#fff}.clockface--app-wrapper.dashboard-light-mode .react-resizable-handle:hover{border-right-color:#ce58eb;border-bottom-color:#ce58eb}.clockface--app-wrapper.dashboard-light-mode .react-grid-item.resizing .react-resizable-handle,.clockface--app-wrapper.dashboard-light-mode .react-grid-item.react-draggable-dragging .react-resizable-handle{opacity:1;border-right-color:#ce58eb;border-bottom-color:#ce58eb}.dashboards-index__page-contents .cf-dapper-scrollbars--content{height:100% !important}.dashboards-index__page-contents .cf-page-contents__fixed{height:100%}.dashboards-index__page-contents .cf-resource-list{height:100%}.dashboards-card-grid{padding-bottom:32px;display:grid;grid-template-columns:minmax(100%, 1fr);grid-auto-rows:min-content;grid-column-gap:4px;grid-row-gap:4px;height:100%;width:100%}.dashboards-card-grid .cf-resource-card{display:flex;margin-bottom:0}.dashboards-card-grid .cf-resource-card--contents{position:relative}.dashboards-card-grid .cf-resource-editable-name{max-width:80%}.dashboards-card-grid .cf-resource-editable-name .cf-resource-name--text{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dashboards-card-grid .cf-resource-editable-name__editing .cf-resource-name--text{display:none !important}.dashboards-card-grid .cf-resource-description,.dashboards-card-grid .cf-resource-description--preview,.dashboards-card-grid #text{max-width:496px;overflow:hidden}@media screen and (min-width: 750px){.dashboards-card-grid{grid-template-columns:minmax(calc(50% - 4px), 1fr) minmax(calc(50% - 4px), 1fr)}}@media screen and (min-width: 1080px){.dashboards-card-grid{grid-template-columns:minmax(calc(33.3333% - 4px), 1fr) minmax(calc(33.3333% - 4px), 1fr) minmax(calc(33.3333% - 4px), 1fr)}}@media screen and (min-width: 1500px){.dashboards-card-grid{grid-template-columns:minmax(calc(25% - 4px), 1fr) minmax(calc(25% - 4px), 1fr) minmax(calc(25% - 4px), 1fr) minmax(calc(25% - 4px), 1fr)}}.note-editor{display:flex;flex-direction:column}.note-editor--body{flex:1 1 40vh;position:relative;display:flex;align-items:stretch}.note-editor--editor,.note-editor--preview{position:absolute;width:calc(50% - 4px);height:100%}.note-editor--editor{left:0}.note-editor--editor .markdown-editor--monaco{height:100%}.note-editor--preview{right:0;background-color:#1a1a2a;border-width:2px;border-style:solid;border-radius:4px;border-color:#1a1a2a}.note-editor--preview-scroll{position:absolute !important}.note-editor--markdown-container{padding:16px}.note-editor--controls{margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.note-editor--radio{width:220px}.note-editor--helper{font-size:13px;font-weight:600;color:#9e9ead}.veo{width:calc(100vw - 64px);height:calc(100vh - 32px);margin:0 auto;display:flex;flex-direction:column;align-items:stretch;border-radius:0 0 2px 2px;background-color:#07070e}.veo .cf-page-header--fluid,.veo .veo-contents{padding-left:32px;padding-right:32px}.veo-contents{display:flex;align-items:stretch;width:100%;flex:1 0 0;padding-left:32px;padding-right:32px;padding-bottom:16px}.veo-overlay .overlay--transition{height:100%}.dashboard-empty{position:absolute;top:0;left:0;height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.dashboard-empty--graphic{display:inline-flex;position:relative;width:50%;max-width:720px}.dashboard-empty--graphic:after{content:\\\"\\\";display:inline-block;padding-bottom:57.3170731707%}.dashboard-empty--graphic-content{position:absolute;top:0;left:0;width:100%;height:100%;background-position:center center;background-size:contain;background-repeat:no-repeat;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")}.clockface--app-wrapper.dashboard-light-mode .dashboard-empty--graphic-content{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \")}.clockface--app-wrapper.dashboard-light-mode .dashboard-empty .cf-empty-state--text{color:#9e9ead}.clockface--app-wrapper.dashboard-light-mode .dashboard-empty .cf-empty-state--text strong,.clockface--app-wrapper.dashboard-light-mode .dashboard-empty .cf-empty-state--text b{color:#4d4d60}.variables-control-bar .toolbar--contents{padding:0}.variables-control-bar--grid{border-radius:2px;padding:8px;width:100%;display:flex;transition:box-shadow .25s ease;flex-wrap:wrap}.variables-control-bar--grid__dragging-over{box-shadow:0 0 4px 1px #5c10a0}.data-explorer{width:100%;height:100%;padding-bottom:16px;display:flex;align-items:stretch}.save-as--options{display:flex;margin-top:-10px;justify-content:center}.save-as--options{display:flex;margin-top:-10px;justify-content:center}.data-loading--overlay{height:calc(90vh - 140px);display:flex;flex-direction:column}.data-loading--overlay .data-loading--form{flex-grow:1;display:inline-flex;flex-direction:column}.data-loading--overlay .data-loading--form .data-loading--scroll-content{flex-grow:1;text-align:center;display:inline-flex;flex-direction:column}.data-loading--overlay .data-loading--form .data-loading--scroll-content .data-loading--columns{display:flex;flex-direction:row;flex-grow:1}.data-loading--overlay .data-loading--form .data-loading--button-container{position:relative;display:inline-flex;align-content:center;justify-content:center;padding:15px}.data-loading--column-panel{background-color:#1a1a2a;border-radius:0 4px 4px 0;flex:1 0 auto;padding:32px}.configuration-overlay--body{padding:45px !important;padding-top:0 !important;padding-bottom:0 !important}.telegraf-instructions p,.telegraf-instructions h6{font-size:14px}.telegraf-instructions p{margin-bottom:2em}.line-protocol--header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;z-index:5050;position:relative}.line-protocol--content{height:206px}.line-protocol--status{font-size:13px;font-weight:600;user-select:none}.line-protocol--status.done{color:#2fa74d}.line-protocol--status.error{color:#ff8564}.line-protocol--spinner{height:364px;border:2px solid #1a1a2a;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-direction:column}.cf-panel .csv-body--padding{padding:32px 16px}.side-bar{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;overflow:hidden;transform:translate3d(0, 0, 0);flex:0 1 auto;border-radius:4px 0 0 4px;background-color:#07070e;border:2px solid #1a1a2a;max-width:250px}.side-bar,.side-bar:hover{cursor:default}.side-bar.show{flex:1 0 140px}.side-bar--container{box-sizing:border-box;opacity:0;height:100%;width:100%;display:inline-flex;flex-direction:column;padding:32px 0}.side-bar.show .side-bar--container{opacity:1}.side-bar--title{text-align:left;margin:0 16px 16px 16px;color:#b9b9c5;font-size:15px}.side-bar--tabs{display:inline-flex;flex-direction:column;justify-content:flex-start;width:100%;flex:1 1 0;padding-bottom:16px}.side-bar--tab{flex-shrink:0;height:30px;display:inline-flex;align-items:center;border-radius:4px 0 0 4px;font-size:15px;font-weight:600;margin-left:16px;color:#828294;background-color:rgba(0,0,0,0);white-space:nowrap}.side-bar--tab:hover{color:#d5d5dd;cursor:pointer;background-color:rgba(51,51,70,.6)}.side-bar--tab.active{color:#d5d5dd;background-color:#333346}.side-bar--icon{width:16px;color:#4d4d60;display:inline-block;font-size:16px;margin:0 13px}.side-bar--tab:hover .side-bar--icon{color:#9e9ead}.side-bar--tab.active .side-bar--icon{color:#00a3ff}.side-bar--tab__success,.side-bar--tab__success .side-bar--icon,.side-bar--tab__success:hover,.side-bar--tab__success:hover .side-bar--icon{color:#2fa74d}.side-bar--tab__pending,.side-bar--tab__pending .side-bar--icon,.side-bar--tab__pending:hover,.side-bar--tab__pending:hover .side-bar--icon{color:#ffb94a}.side-bar--tab__error,.side-bar--tab__error .side-bar--icon,.side-bar--tab__error:hover,.side-bar--tab__error:hover .side-bar--icon{color:#ff8564}.side-bar--buttons{margin:0 16px}.side-bar--button{width:100%}@media screen and (min-width: 1080px){.side-bar--tab{margin-left:32px}.side-bar--title{margin:0 32px 16px 32px;font-size:17px}.side-bar--buttons{margin:0 32px}.side-bar.show{flex:1 0 240px}}.event-table{height:100%;display:flex;flex-direction:column;justify-content:stretch}.event-table .event-table--table{flex:1 1 100%}.event-table .event-table-header{flex:0 0 auto}.event-table-header,.event-row{display:flex;align-items:center;justify-content:space-between}.event-table-header>*,.event-row>*{flex-grow:1;flex-shrink:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.event-table-header{padding:0 8px;margin-bottom:16px}.event-table-header--field{user-select:none;font-size:13px;font-weight:600;text-transform:uppercase;color:#9e9ead;margin:0 8px}.event-row,.event-loading-row,.event-footer-row,.event-error-row{height:calc(100% - 4px);width:100%;border-radius:4px;display:flex;align-items:center;font-size:12px;padding:0 8px}.event-row,.event-loading-row{background:#1a1a2a}.event-footer-row,.event-error-row{justify-content:center;font-weight:600;user-select:none}.event-footer-row{color:#9e9ead}.event-error-row{color:#f95f53}.event-row--field,.event-loading-row--placeholder{margin:0 8px}.event-row--field{overflow:hidden}@keyframes glow{from{opacity:1}to{opacity:.5}}.event-loading-row--placeholder{background-color:#333346;border-radius:3px;animation-name:glow;animation-duration:1s;animation-iteration-count:infinite;animation-direction:alternate}.version-sidebar--buttons{display:flex;justify-content:space-between;padding:0 16px}.version-history--title{font-weight:500;font-size:20px;line-height:1.2}.published-date--text{font-weight:normal;font-size:15.75px;line-height:1.6;margin:0px 0px;color:#fff}.published-by--text{font-weight:normal;line-height:160%;color:#9e9ead;margin:0px 0px}.cf-list--contents .cf-list-item__light.version-sidebar--listitem{display:flex;justify-content:space-between;padding:16px}.version-sidebar{flex:0 0 420px;width:420px;padding:0 8px}.version-sidebar .sidebar--item{width:137px;height:137px}.version-sidebar .sidebar--item .cf-selectable-card--body{overflow:hidden}.version-sidebar .sidebar--item .cf-selectable-card--children{width:calc(100% - 48px);height:calc(100% - 48px)}.version-sidebar .sidebar--item-thumb{width:100%;height:100%}.version-sidebar .sidebar--item-thumb img{width:100%;height:100%;object-fit:contain}.version-sidebar .flux-toolbar--search{padding:0}.version-sidebar--submenu{padding-top:8px;height:calc(100% - 30px)}.version-sidebar--submenu-wrapper{padding-bottom:20px}.version-header--timerange{font-style:normal;font-weight:500;font-size:20px;line-height:1.2;margin-right:16px}.version-sidebar--back-btn{margin:0px 10px 12px}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}h1#first-mile--header{margin:1em 0}.homepage-wizard-container{color:#f1f1f3;display:flex;height:100%;width:100%}.homepage-wizard-container--subway-inner{width:100%;position:sticky;top:0}.homepage-wizard-container--subway{display:flex;flex-direction:column;width:30%}.homepage-wizard-container--main{display:flex;flex-direction:column;width:70%;flex:1;padding-bottom:64px}.homepage-wizard-container--main-wrapper h1{margin-top:0;font-weight:600}.homepage-wizard-container--main-wrapper p{font-size:var(--step-1)}.homepage-wizard-container--main-wrapper.verticallyCentered{margin-top:auto}.homepage-wizard-container-footer{display:flex;justify-content:flex-end;margin-top:auto}.write-data--details-widget-title{margin-bottom:8px;padding-left:12px;display:flex;justify-content:space-between;align-items:center;text-transform:uppercase}.homepage-wizard-next-steps{display:flex;max-width:300px}.homepage-wizard-next-steps h4{background:linear-gradient(45deg, #fad9ff 0%, #f0fcff 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);display:flex;align-items:center;margin:0}.homepage-wizard-next-steps h4 svg{margin-right:10px}.homepage-wizard-next-steps .cf-icon{margin-right:8px}.homepage-wizard-next-steps p{color:#f1f1f3;font-size:14px;margin:0;font-style:normal;font-weight:300;line-height:17px;text-align:left}.homepage-wizard-next-steps h5{display:flex;align-items:center;justify-content:center;letter-spacing:.06em;margin:0}.feedback-bar{background:linear-gradient(256.11deg, rgba(147, 148, 255, 0.2) 0%, rgba(81, 60, 198, 0.2) 100%);padding-left:16px;padding-right:16px;max-width:493px}.homepage-wizard--code-highlight{color:#b7b8ff}.recent-dashboards{display:flex;flex-direction:column;align-items:stretch;font-size:1.25em}.recent-dashboards--item{margin-bottom:8px;white-space:nowrap;word-break:break-all;padding-right:16px}.recent-dashboards--filter{margin-bottom:8px}.docslinks-list,.useful-links{padding:0;list-style:none}.docslinks-list h4,.useful-links h4{color:#f1f1f3}.docslinks-list>li{font-size:1.25em;background-color:rgba(0,0,0,0);border-radius:4px;padding:0;margin-bottom:16px}.multiaccountorg--header{height:60px;padding-top:12px;padding-right:32px;padding-bottom:12px;padding-left:22px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.multi-org .cf-page-header{height:46px !important;flex:0 0 46px !important;margin-bottom:14px !important}.multi-org .cf-page.flows-index{height:calc(100% - 60px)}.multi-org .flows-index>.cf-page-header>.cf-page-header--fixed>.cf-flex-box{height:32px !important;margin-bottom:10px !important}.multi-org .cf-page-header.withButtonHeader{height:140px !important}.cf-notification-container.cf-notification__top{top:8px}.cf-notification-container.cf-notification__right{right:8px}.label-card--description{font-weight:600;margin:0;margin-left:16px}.label-card--description__untitled{color:#68687b;font-style:italic}.label-overlay--preview{display:flex;justify-content:center;align-items:center;height:90px}.label-overlay--preview>.label{margin:4px 0}.alerts-activity{width:100%;height:350px;padding-top:20px;overflow:hidden}.getting-started{margin:8px 0;display:grid;grid-template-rows:270px 270px 270px;grid-template-columns:1fr;grid-row-gap:8px;grid-column-gap:8px}.getting-started--card-digit{position:absolute;top:8px;left:8px;width:24px;height:24px;background-color:#07070e;color:#67d74e;border-radius:50%;font-size:12px;line-height:24px;font-weight:700;text-align:center;user-select:none}.getting-started--card{width:100%;height:100%;border:2px solid #1a1a2a}.getting-started--card .cf-panel--body,.getting-started--card .cf-panel--footer{position:absolute;display:flex;align-content:center;justify-content:center;align-items:center}.getting-started--card .cf-panel--body{top:0;left:0;height:calc(100% - 80px)}.getting-started--card .cf-panel--footer{top:calc(100% - 80px);left:0;height:80px}.getting-started--card.highlighted{border-color:#0b3a8d}.getting-started--card.highlighted .getting-started--card-digit{background-color:rgba(7,7,14,.5)}.getting-started--image{width:100%;height:100%;background-size:cover}.getting-started--image>svg{width:100%;height:100%}@media screen and (min-width: 750px){.getting-started{grid-template-columns:1fr 1fr;grid-template-rows:260px 260px}}@media screen and (min-width: 1080px){.getting-started{grid-row-gap:0;grid-template-columns:1fr 1fr 1fr;grid-template-rows:320px}}.collector-graphic--bg{fill:#441d9a}.collector-graphic--bucket{fill:#bef0ff;transition:fill .4s ease}.collector-graphic--bucket-hole{fill:#00c9ff;transition:fill .4s ease}.collector-graphic--cubo{transform:rotate(17deg)}.collector-graphic--data{fill:none;stroke-width:2px;stroke-linecap:round;stroke-miterlimit:10}.data-a,.data-b,.data-c,.data-d,.data-e{stroke-width:2px}.dot-a{fill:#2fa74d}.dot-b{fill:#ffd255}.dot-c{fill:#00a3ff}.dot-d{fill:#ce58eb}.dot-e{fill:#ff8564}.data-a{stroke:#2fa74d;stroke-dasharray:146;stroke-dashoffset:0}.data-b{stroke:#ffd255;stroke-dasharray:102;stroke-dashoffset:0}.data-c{stroke:#00a3ff;stroke-dasharray:81;stroke-dashoffset:0}.data-d{stroke:#ce58eb;stroke-dasharray:102;stroke-dashoffset:0}.data-e{stroke:#ff8564;stroke-dasharray:146;stroke-dashoffset:0}@keyframes dataOuterFlow{0%{stroke-dashoffset:0}50%{stroke-dashoffset:146}100%{stroke-dashoffset:292}}@keyframes dataInnerFlow{0%{stroke-dashoffset:0}50%{stroke-dashoffset:102}100%{stroke-dashoffset:204}}@keyframes dataCenterFlow{0%{stroke-dashoffset:0}50%{stroke-dashoffset:81}100%{stroke-dashoffset:162}}.collector-graphic--cubo{transform-origin:161px 161.6px}.collector-graphic--cubo-line{transition:stroke .25s ease;stroke-width:1.5px;stroke:#5c10a0;fill:none}.getting-started--image__animating .collector-graphic--bucket{fill:#fff}.getting-started--image__animating .collector-graphic--bucket-hole{fill:#bef0ff}.getting-started--image__animating .collector-graphic--cubo-line{stroke:#be2ee4}.getting-started--image__animating .data-a,.getting-started--image__animating .data-b,.getting-started--image__animating .data-c,.getting-started--image__animating .data-d,.getting-started--image__animating .data-e{animation-iteration-count:infinite;animation-duration:1s;animation-direction:reverse}.getting-started--image__animating .data-a{animation-name:dataOuterFlow;animation-delay:0s}.getting-started--image__animating .data-b{animation-name:dataInnerFlow;animation-delay:.1s}.getting-started--image__animating .data-c{animation-name:dataCenterFlow;animation-delay:.2s}.getting-started--image__animating .data-d{animation-name:dataInnerFlow;animation-delay:.3s}.getting-started--image__animating .data-e{animation-name:dataOuterFlow;animation-delay:.4s}.dashboarding-graphic--bg{fill:#07070e}.dashboarding-graphic--cell{fill:#1a1a2a;transition:fill .25s ease}.dashboarding-graphic--single-stat{fill:#333346}.dashboarding-graphic--axes{stroke-width:1.5px;stroke:#333346;fill:rgba(0,0,0,0);transition:fill .5s ease,stroke .5s ease;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.dashboarding-graphic--line{fill:none;stroke-width:1.5px;stroke:#333346;transition:stroke .5s ease;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.dashboarding-graphic--bar{fill:#00a3ff}.bar-a{height:15.2px}.bar-b{height:32.2px}.bar-c{height:25.8px}.bar-d{height:4px}.bar-e{height:2px}.bar-f{height:7.6px}.bar-g{height:4px}@keyframes barGraphA{0%{height:15.2px}50%{height:18.2px}100%{height:15.2px}}@keyframes barGraphB{0%{height:32.2px}50%{height:35.2px}100%{height:32.2px}}@keyframes barGraphC{0%{height:25.8px}50%{height:28.8px}100%{height:25.8px}}@keyframes barGraphDG{0%{height:4px}50%{height:7px}100%{height:4px}}@keyframes barGraphE{0%{height:2px}50%{height:5px}100%{height:2px}}@keyframes barGraphF{0%{height:7.6px}50%{height:10.6px}100%{height:7.6px}}.single-stat-a{fill:#00a3ff}.single-stat-b{fill:#ff8564}.single-stat-c{fill:#67d74e}.single-stat-d{fill:#ce58eb}.table-a{fill:#00a3ff}.table-b{fill:#ce58eb}@keyframes tableCellA{0%{fill:#00a3ff}30%{fill:rgba(0,0,0,0)}70%{fill:rgba(0,0,0,0)}100%{fill:#00a3ff}}@keyframes tableCellB{0%{fill:#ce58eb}30%{fill:rgba(0,0,0,0)}70%{fill:rgba(0,0,0,0)}100%{fill:#ce58eb}}.line-a,.line-b,.line-c,.line-d{transition:all .5s ease}.line-a{stroke:#67d74e;stroke-dasharray:122;stroke-dashoffset:0}@keyframes graphLineA{0%{stroke-dashoffset:0}50%{stroke-dashoffset:122}100%{stroke-dashoffset:244}}.line-b{stroke:#00a3ff;stroke-dasharray:161;stroke-dashoffset:0}@keyframes graphLineB{0%{stroke-dashoffset:0}50%{stroke-dashoffset:161}100%{stroke-dashoffset:322}}.line-c{stroke:#ce58eb;stroke-dasharray:102;stroke-dashoffset:0}@keyframes graphLineC{0%{stroke-dashoffset:0}50%{stroke-dashoffset:102}100%{stroke-dashoffset:204}}.line-d{stroke:#ffd255;stroke-dasharray:99;stroke-dashoffset:0}@keyframes graphLineD{0%{stroke-dashoffset:0}50%{stroke-dashoffset:99}100%{stroke-dashoffset:198}}.getting-started--image__animating .dashboarding-graphic--cell{fill:#333346}.getting-started--image__animating .dashboarding-graphic--axes{stroke:#4d4d60}.getting-started--image__animating .line-a,.getting-started--image__animating .line-b,.getting-started--image__animating .line-c,.getting-started--image__animating .line-d{animation-iteration-count:infinite;animation-duration:1.5s;animation-direction:reverse}.getting-started--image__animating .line-a{animation-name:graphLineA}.getting-started--image__animating .line-b{animation-name:graphLineB;animation-delay:.2s}.getting-started--image__animating .line-c{animation-name:graphLineC;animation-delay:.2s}.getting-started--image__animating .line-d{animation-name:graphLineD}.getting-started--image__animating .bar-a,.getting-started--image__animating .bar-b,.getting-started--image__animating .bar-c,.getting-started--image__animating .bar-d,.getting-started--image__animating .bar-e,.getting-started--image__animating .bar-f,.getting-started--image__animating .bar-g{animation-iteration-count:infinite;animation-duration:.5s}.getting-started--image__animating .bar-a{animation-name:barGraphA;animation-delay:0s}.getting-started--image__animating .bar-b{animation-name:barGraphB;animation-delay:.15s}.getting-started--image__animating .bar-c{animation-name:barGraphC;animation-delay:.3s}.getting-started--image__animating .bar-d{animation-name:barGraphDG;animation-delay:.45s}.getting-started--image__animating .bar-e{animation-name:barGraphE;animation-delay:.6s}.getting-started--image__animating .bar-f{animation-name:barGraphF;animation-delay:.75s}.getting-started--image__animating .bar-g{animation-name:barGraphDG;animation-delay:.9s}.getting-started--image__animating .table-a,.getting-started--image__animating .table-b{animation-iteration-count:infinite;animation-duration:1.5s}.getting-started--image__animating .table-a{animation-name:tableCellA}.getting-started--image__animating .table-b{animation-name:tableCellB;animation-delay:.2s}.explore-graphic--bg{fill:#07070e}.explore-graphic--hex{fill:#1a1a2a;transition:fill .25s ease}.hex-a{fill:#00a3ff}.hex-b{fill:#67d74e}.explore-graphic--text{stroke:rgba(0,0,0,0);fill:none;transition:stroke .5s ease}.explore-graphic--diagnostic{fill:rgba(0,0,0,0);transition:fill .5s ease}@keyframes flow{0%{stroke-dashoffset:0px}100%{stroke-dashoffset:8px}}.explore-graphic--flow{fill:none;stroke-width:2px;stroke-dasharray:4px;stroke-dashoffset:0px}.flow-a{stroke:#67d74e}.flow-b{stroke:#00a3ff;animation-direction:reverse}.getting-started--image__animating .explore-graphic--hex{fill:#333346}.getting-started--image__animating .explore-graphic--text{stroke:#b9b9c5}.getting-started--image__animating .hex-a,.getting-started--image__animating .diagnostic-a{fill:#00a3ff}.getting-started--image__animating .hex-b,.getting-started--image__animating .diagnostic-b{fill:#67d74e}.getting-started--image__animating .explore-graphic--flow{animation:flow 1s linear infinite}.rule-eo{width:calc(100vw - 64px);height:calc(100vh - 32px);margin:0 auto;display:flex;flex-direction:column;background:#07070e;background:-moz-linear-gradient(top, #07070e 0%, #07070e 100%);background:-webkit-linear-gradient(top, #07070e 0%, #07070e 100%);background:linear-gradient(to bottom, #07070e 0%, #07070e 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=0 );border-radius:0 0 4px 4px}.rule-eo .rule-eo-contents{padding-left:32px;padding-right:32px}.rule-eo .condition-row{display:flex;flex-direction:column;background-color:#333346;border-radius:4px;margin-bottom:4px;padding:10px}.rule-eo .condition-row .period-count--container{display:flex;flex-direction:row;margin-bottom:4px;align-items:center}.rule-eo .condition-row .period-count--container .count-input,.rule-eo .condition-row .period-count--container .period-input{flex:100px}.rule-eo .condition-row .status-levels--container{display:flex;flex-direction:row;align-items:center}.rule-eo .condition-row .tag-rule{display:flex;flex-direction:row}.rule-eo .sentence-frag{background-color:#4d4d60;border-radius:4px;font-size:12px;padding:0 9px;height:30px;line-height:26px;text-align:center;font-weight:bold}.rule-eo .color-dropdown--item{display:flex;align-items:center;justify-content:flex-start}.rule-eo .color-dropdown--swatch{width:12px;height:12px;border-radius:50%;margin-right:5px}.rule-overlay-footer--error{display:flex;align-items:center;justify-content:center;color:#dc4e58;font-size:12px;font-weight:600;margin:16px 0}.wizard--bookend-step{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.wizard--bookend-step .button{position:relative;white-space:nowrap;margin:0 4px}.splash-logo{background-size:100% 100%;background-position:center center;background-repeat:no-repeat;width:100%;flex:.5}.splash-logo.primary{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \")}.splash-logo.secondary{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \")}.splash-logo.secondary+h3{margin-top:32px}.wizard-contents{display:flex;align-items:stretch;flex-wrap:nowrap;border-radius:4px;background-color:#07070e;margin:32px;margin-top:4px;flex-grow:1;width:100%}.wizard-step--container{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background-color:#1a1a2a;border-radius:4px;padding:16px;flex:1 0 0}.side-bar.show+.wizard-step--container{flex:1 0 calc(100% - 240px)}.wizard-step--group{display:flex;justify-content:space-between;align-items:flex-end}.onboarding-step{flex:1 0 0;min-width:100%;text-align:center;position:relative;display:inline-flex;flex-direction:column;justify-content:flex-start;align-items:center}.onboarding-step .cf-form--wrapper{display:inline-flex;flex-direction:column;flex:1 0 0}.wizard-step--scroll-area{flex:1 0 0;width:100%}.wizard-step--scroll-content{width:90%;height:90%;margin:0 auto 32px auto;display:inline-flex;flex-direction:column;justify-content:center}.wizard-step--grid-container{width:90%;display:block;margin:0 auto}.wizard-step--grid-container_telegrafUiRefresh{width:98%;display:block}.wizard-step--filter{align-self:flex-end;margin-top:18px}.wizard--button-bar{display:inline-flex;flex-shrink:0;position:relative;justify-content:center;align-items:center;height:auto;flex-wrap:nowrap;flex:2;margin-top:8px}.wizard--button-bar .button{position:relative;white-space:nowrap;margin:0 4px}.wizard-step--footer{display:inline-flex;justify-content:center;align-items:center;border-radius:4px;height:50px;width:100%;margin-top:10px;background-color:#333346;text-align:center}.wizard-step--footer>label{font-size:small;color:#9e9ead;margin:10px}.wizard-step--footer.dropdown{justify-content:left;align-items:left;text-align:left;margin-bottom:8px}.wizard-step--title{font-size:32px;font-weight:300;color:#d5d5dd;margin-bottom:8px;justify-content:flex-start;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard-step--title,.wizard-step--title:hover{cursor:default}.wizard-step--sub-title{margin-top:8px;margin-bottom:32px;font-size:16px;font-weight:400;color:#9e9ead;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard-step--sub-title,.wizard-step--sub-title:hover{cursor:default}.wizard-step--sub-title a{color:#00a3ff}.wizard-step--body,.wizard-step--body-streaming{background-color:#07070e;color:#fff;padding:25px;width:100%;text-align:left;border-radius:4px}.wizard-step--body>h6,.wizard-step--body-streaming>h6{color:#d5d5dd}.wizard-step--body>p,.wizard-step--body-streaming>p{color:#9e9ead;padding-bottom:10px}.wizard-step--body-streaming{text-align:center;margin-top:4px}.wizard-step--text-state{text-align:center}.wizard-step--text-state.loading{color:#be2ee4}.wizard-step--text-state.success{color:#2fa74d}.wizard-step--text-state.error{color:#f95f53}.wizard-step--body-snippet{background-color:#1a1a2a;border-radius:4px;margin:4px 0;padding:8px;font-family:\\\"RobotoMono\\\",monospace}.wizard-step--body-copybutton{margin-left:10px}.wizard-step--lp-sub-title{margin-top:4px;margin-bottom:8px;font-size:16px;font-weight:400;color:#9e9ead;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard-step--lp-sub-title,.wizard-step--lp-sub-title:hover{cursor:default}.wizard-step--lp-sub-title a{color:#00a3ff}.wizard-step--lp-body{height:250px;flex-shrink:1;width:100%;margin:16px auto 0 auto}.wizard-step--top-container{width:100%;padding:40px;border-radius:4px;background-color:#07070e;transition:background-color .25s ease,border-color .25s ease}.wizard-step--sparkle-container{width:100%;height:250px}.wizard-step--retry-button{margin-top:20px}.wizard-step--lp-precision{display:inline-flex;justify-content:left;align-items:center;border-radius:4px;height:50px;width:100%;margin-top:4px;margin-bottom:4px;background-color:#333346;text-align:left;z-index:5001}.wizard-step--lp-precision>label{font-size:medium;color:#9e9ead;margin:10px}.wizard-step--lp-precision.dropdown{justify-content:left;align-items:left;text-align:left;margin-bottom:8px}.wizard-completion--options{font-size:16px}.wizard-completion--options .wizard-completion--option{margin:16px 0}.wizard-completion--options dt{margin:16px 0;font-weight:700;color:#d5d5dd}.wizard-completion--options dd{font-weight:400;color:#9e9ead}@media screen and (min-width: 1080px){.wizard-step--container{padding:32px}.onboarding-step{max-width:60vw}.buttonless .wizard-step--scroll-area{height:calc(100% - 32px)}.wizard--bookend-step{width:70%}}.signin-page .cf-funnel-page--content{display:flex;height:100%;justify-content:center}.signin-page .cf-dapper-scrollbars--content{align-items:center;display:flex !important}.cf-panel.signin-page--panel{width:300px}.cf-panel.signin-page--panel .cf-panel--body{padding:32px;text-align:center}.signin-page--logo{height:auto;margin-bottom:3em;margin-top:1em;width:70%}.login-page--logo{height:auto;width:20%}.signin-page--cubo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \");background-position:center center;background-repeat:no-repeat;background-size:100% 100%;display:inline-block;height:100px;width:100px}.create-account--button{margin:15px 0}.github-logo{width:70px;height:70px;fill:#fff}.google-logo{height:70px;width:70px}.google-logo .google-logo--blue{fill:#3e82f1}.google-logo .google-logo--green{fill:#32a753}.google-logo .google-logo--red{fill:#e74133}.google-logo .google-logo--yellow{fill:#f9bb00}.heading--margins{margin:16px 0}.helper-link-text a:link{font-size:.85em;font-weight:400}.sign-up--form{min-width:330px;width:100%;height:100%;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;margin-top:32px}.sign-up--form-panel{max-width:500px;width:400px;height:100%}.cf-heading.sign-up--form-separator{color:#68687b;margin:16px 0}@media screen and (min-width: 1080px){.sign-up--form-panel{max-width:100%}.cf-heading.sign-up--form-separator{margin:32px 0 16px 0}}.sign-up--social-button-group{position:relative}.sign-up--social-button-group .signup-text{position:relative}.sign-up--social-button-group .signup-icon{width:33px;height:auto;background:rgba(0,0,0,0);position:absolute;top:50%;transform:translate(-50%, -50%);left:30px}.sign-up--social-button-group .sign-up--google{background:#fff;color:#444}.sign-up--social-button-group .sign-up--google:active,.sign-up--social-button-group .sign-up--google:focus,.sign-up--social-button-group .sign-up--google:active:hover,.sign-up--social-button-group .sign-up--google.active,.sign-up--social-button-group .sign-up--google.active:hover,.sign-up--social-button-group .sign-up--google:hover,.sign-up--social-button-group .sign-up--google.cf-button-default:hover{color:#444}.sign-up--social-button-group .sign-up--google:after{background:#fff}.sign-up--social-button-group .sign-up--microsoft{background:#fff;color:#5e5e5e}.sign-up--social-button-group .sign-up--microsoft:active,.sign-up--social-button-group .sign-up--microsoft:focus,.sign-up--social-button-group .sign-up--microsoft:active:hover,.sign-up--social-button-group .sign-up--microsoft.active,.sign-up--social-button-group .sign-up--microsoft.active:hover,.sign-up--social-button-group .sign-up--microsoft:hover,.sign-up--social-button-group .sign-up--microsoft.cf-button-default:hover{color:#5e5e5e}.sign-up--social-button-group .sign-up--microsoft:after{background:#fff}.operator-limits-label{border:none;overflow:hidden;display:inline-block;justify-content:flex-start;padding:0 12px}.operator-nav-button{background:#00a3ff;background:-moz-linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);background:-webkit-linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);background:linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 );border-radius:100%;border:none;overflow:hidden;display:inline-block;justify-content:flex-start;margin-right:40px}.operator-nav-button .cf-button-icon{text-align:center;margin-top:4px;font-size:32px}.operator-nav-popover{display:flex}.overlay-header--color.overlay-header--title{color:#fff;justify-content:center;user-select:text !important;-moz-user-select:text !important;-webkit-user-select:text !important;-ms-user-select:text !important;-o-user-select:text !important}.cf-overlay--body .overlay-button--link{padding:8px 16px}.org-overlay-detail--text{font-weight:700;font-size:16px}.cf-text-block.account-grid-text{background-color:rgba(0,0,0,0);font-size:medium;margin:-5px 0px;padding:0px}.account-grid-text.heading{color:#a5a8b5;margin-top:20px}.account-grid-text.body{color:#d4d7dc;font-weight:700}.contract-start-date-picker{top:50%;left:50%;transform:translate(0, -50%)}.org-switcher--list{display:flex;flex-direction:column;align-items:stretch}.org-switcher--prompt{text-align:center;margin-top:0;margin-bottom:4px;color:#68687b}.org-switcher--item{display:flex;align-items:center;color:#9e9ead;background-color:#07070e;padding:16px;margin-bottom:4px;border-radius:2px;transition:background-color .25s ease,color .25s ease}.org-switcher--item:hover{cursor:pointer;color:#d5d5dd;background-color:#1a1a2a}.org-switcher--item-label{user-select:none;font-size:1.125em;font-weight:600}.org-switcher--item-label em{font-weight:400;font-size:.8em;font-style:normal;opacity:.3;display:inline-block;margin-left:8px}.org-switcher--item-circle{width:32px;height:32px;border-radius:50%;background-color:#07070e;margin-right:16px;display:flex;justify-content:center;align-items:center;align-content:center;transition:background-color .25s ease,color .25s ease,text-shadow .25s ease;color:#07070e}.org-switcher--item:hover .org-switcher--item-circle{text-shadow:0 0 4px #066fc5;background-color:#07070e;color:#00a3ff}.org-switcher--item__selected,.org-switcher--item__selected:hover{cursor:default;background-color:#333346;color:#fff}.org-switcher--item__selected .org-switcher--item-circle,.org-switcher--item__selected:hover .org-switcher--item-circle{text-shadow:0 0 4px #009f5f;color:#67d74e;background-color:#1a1a2a}.renamable-page-title{width:100%;max-width:850px;position:relative;height:48px;font-size:var(--step-0)}.renamable-page-title:hover,.renamable-page-title:hover *{cursor:text}.renamable-page-title>.cf-heading.cf-page--title,.cf-input.renamable-page-title--input>input{font-size:2.4em;font-weight:500;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;padding:0 0;height:48px;letter-spacing:0}.renamable-page-title>.cf-heading.cf-page--title,.renamable-page-title--input{position:absolute;top:0;width:calc(\\n 100% + 4px\\n ) !important;left:-2px}.cf-input-sm.renamable-page-title--input{height:48px;font-size:var(--step-0)}.renamable-page-title>.cf-heading.cf-page--title{border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none;transition:color .25s ease,background-color .25s ease,border-color .25s ease;line-height:44px;border:2px solid rgba(0,0,0,0)}.renamable-page-title.untitled>.cf-heading.cf-page--title{color:#68687b;font-style:italic}.renamable-page-title:hover>.cf-heading.cf-page--title{color:#fff;border-color:#1a1a2a}.renamable-page-title--icon{position:absolute;font-size:1.5em;top:50%;right:24px;transform:translate(50%, -50%);opacity:0;transition:opacity .25s ease;color:#9e9ead}.renamable-page-title:hover .renamable-page-title--icon{opacity:1}.cf-input.renamable-page-title--input>input::-webkit-input-placeholder{font-weight:500 !important}.cf-input.renamable-page-title--input>input::-moz-placeholder{font-weight:500 !important}.cf-input.renamable-page-title--input>input:-ms-input-placeholder{font-weight:500 !important}.cf-input.renamable-page-title--input>input:-moz-placeholder{font-weight:500 !important}.clockface--app-wrapper.dashboard-light-mode .renamable-page-title>.cf-heading.cf-page--title,.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input{color:#68687b}.clockface--app-wrapper.dashboard-light-mode .renamable-page-title.untitled>.cf-heading.cf-page--title{color:#d5d5dd}.clockface--app-wrapper.dashboard-light-mode .renamable-page-title:hover>.cf-heading.cf-page--title{color:#828294;border-color:#d5d5dd}.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input{background-color:#fff}.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input::-webkit-input-placeholder{color:#d5d5dd}.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input::-moz-placeholder{color:#d5d5dd}.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input:-ms-input-placeholder{color:#d5d5dd}.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input:-moz-placeholder{color:#d5d5dd}.tabbed-page--header{width:100%;display:flex;flex-direction:column;align-items:stretch;margin-bottom:32px}.tabbed-page--header-left,.tabbed-page--header-right{display:flex;align-items:center;justify-content:center}.tabbed-page--header-left>*,.tabbed-page--header-right>*{margin-right:8px}.tabbed-page--header-left>*:last-child,.tabbed-page--header-right>*:last-child{margin-right:0}.tabbed-page--header-right{order:1;margin-bottom:8px}.tabbed-page--header-right:only-child{margin-bottom:0}.tabbed-page--header-left{order:2}@media screen and (min-width: 750px){.tabbed-page--header{flex-direction:row;align-items:center;justify-content:space-between}.tabbed-page--header-left{flex:1 0 0;order:1;justify-content:flex-start}.tabbed-page--header-right{flex:1 0 0;order:2;justify-content:flex-end;margin-bottom:0}}.secrets-context-menu{padding-right:16px}.alert{margin-bottom:8px}.secrets-dropdown-header{border-bottom:2px solid #333346}.auto-domain-input--custom{padding-top:4px}.box-tooltip{position:fixed;visibility:hidden;z-index:9993}.box-tooltip--contents{border-width:2px;border-style:solid;background-color:#07070e;border-radius:4px;padding:10px;font-size:13px;word-break:break-all;word-wrap:break-word;width:calc(100% - 12px)}.box-tooltip--contents pre{word-break:break-all;word-wrap:break-word;white-space:pre-wrap}.box-tooltip__primary .box-tooltip--contents{border-color:#00a3ff}.box-tooltip__primary.right .box-tooltip--caret{border-right-color:#00a3ff}.box-tooltip__primary.left .box-tooltip--caret{border-left-color:#00a3ff}.box-tooltip__danger .box-tooltip--contents{border-color:#ff8564}.box-tooltip__danger.right .box-tooltip--caret{border-right-color:#ff8564}.box-tooltip__danger.left .box-tooltip--caret{border-left-color:#ff8564}.box-tooltip--caret{position:absolute;width:0;height:0;border:6px solid rgba(0,0,0,0);transform:translate(0, -50%)}.box-tooltip--caret-container{position:absolute;top:0;width:12px;height:100%}.box-tooltip.left .box-tooltip--contents{margin-right:12px}.box-tooltip.left .box-tooltip--caret-container{right:0}.box-tooltip.left .box-tooltip--caret{left:0}.box-tooltip.right .box-tooltip--contents{margin-left:12px}.box-tooltip.right .box-tooltip--caret-container{left:0}.box-tooltip.right .box-tooltip--caret{right:0}.tooltip--link{padding-bottom:10px}.cloud-upgrade-banner{display:block}.cloud-upgrade-banner--button{text-align:center}a.cloud-upgrade-banner__collapsed{text-align:center;border-radius:2px;margin:8px 0;display:none;width:100%}a.cloud-upgrade-banner__collapsed h5{font-size:var(--step--1);font-size:.9em;margin-bottom:4px}a.cloud-upgrade-banner__collapsed .cf-icon{font-size:2.75em;margin-bottom:4px}@media screen and (min-width: 800px){.cf-tree-nav__collapsed a.cloud-upgrade-banner__collapsed{display:inline-block}.cf-tree-nav__collapsed .cloud-upgrade-banner{display:none}}.code-snippet{border-radius:2px;overflow:hidden;border:2px solid #1a1a2a;margin-bottom:8px}.code-snippet--scroll{min-height:26px !important;max-height:350px;border-radius:1px;overflow:hidden}.code-snippet--text{font-size:var(--step-1);color:#dd84f1;font-family:\\\"Roboto Mono\\\",monospace;border-radius:2px;background-color:#07070e}.code-snippet--text pre{display:inline-block;white-space:pre-wrap;padding:8px 16px}.code-snippet--text pre,.code-snippet--text code{word-wrap:break-word;word-break:break-all}.new-token--btn{margin:4px 16px}.code-snippet--footer{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-top:2px solid #1a1a2a;background-color:#1a1a2a}.code-snippet--label{font-size:var(--step-0);color:#9e9ead;margin:0}.color-dropdown--item{display:flex;align-items:center;justify-content:flex-start}.color-dropdown--swatch{width:12px;height:12px;border-radius:50%;margin-right:5px}.copy-resource-id{transition:color .25s ease}.copy-resource-id:hover{cursor:pointer;color:#00a3ff}.copy-resource-id--click-target{color:#b9b9c5;transition:opacity .25s ease;opacity:0;display:inline-block;margin-left:8px}.copy-resource-id:hover .copy-resource-id--click-target{opacity:1}.drag-and-drop{border:2px dashed #333346;border-radius:3px;width:100%;height:100%;transition:background-color .25s ease,border-color .25s ease;align-content:center;align-items:center;justify-content:center}.drag-and-drop--form{position:relative;z-index:5000;background-color:#07070e;display:flex;align-items:center;flex-direction:column;justify-content:center;padding:30px 18px;color:#333346;width:100%;height:100%}input[type=file].drag-and-drop--input{display:none}.drag-and-drop--graphic{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \");background-size:100% 100%;background-position:center center;width:90px;height:90px;color:#333346}.drag-and-drop--graphic.success{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \")}.drag-and-drop--header{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 0 15px 0;font-size:20px;font-weight:400}.drag-and-drop--header,.drag-and-drop--header:hover{cursor:default}.drag-and-drop--header.empty{color:#68687b}.drag-and-drop--header.selected{color:#2fa74d}.drag-and-drop--header.error{color:#dc4e58}.drag-and-drop--buttons{display:flex;align-items:center;flex-wrap:nowrap;margin-top:18px}.drag-and-drop--buttons>button{margin:0 4px}.drag-and-drop--form.active:hover,.drag-and-drop.drag-over .drag-and-drop--form{cursor:pointer;background-color:#1a1a2a;border-color:#333346}.drag-and-drop.compact .drag-and-drop--form{flex-direction:row}.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--graphic,.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--buttons{position:absolute;top:50%;transform:translateY(-50%)}.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--graphic{left:20px;width:50px;height:50px}.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--header{font-size:15px;margin-bottom:0;margin-right:80px;margin-left:80px;word-break:break-all;white-space:pre-wrap}.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--buttons{margin-top:0;right:20px;flex-direction:column;align-items:stretch}.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--buttons>button{margin:2px 0}.editable-name>a,.cf-input.editable-name--input>input{font-size:17px;font-weight:600;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;padding:0 6px}.editable-name>a{white-space:nowrap;line-height:17px;padding-left:8px;padding-right:0}.editable-name{height:22px;position:relative;display:inline-block}.editable-name--toggle{font-size:12.75px;transform:translateY(-10%);padding:4px;display:inline-block;margin-left:8px;transition:color .25s ease,opacity .25s ease;opacity:1;color:#9e9ead}.editable-name--toggle:hover{cursor:pointer;color:#d5d5dd}.cf-input.editable-name--input{position:absolute;top:-1px;left:0;width:100%}.cf-input.editable-name--input>input::-webkit-input-placeholder{font-weight:600 !important}.cf-input.editable-name--input>input::-moz-placeholder{font-weight:600 !important}.cf-input.editable-name--input>input:-ms-input-placeholder{font-weight:600 !important}.cf-input.editable-name--input>input:-moz-placeholder{font-weight:600 !important}.index-list--row .editable-name--toggle{opacity:0}.index-list--row:hover .editable-name--toggle{opacity:1}.empty-graph-error{width:100%;height:100%;display:flex;justify-content:space-between;border-radius:2px;background-color:#07070e;color:#ff8564;border:2px solid #07070e}.empty-graph-error pre{font-size:14px;padding:8px;user-select:text !important;cursor:text}.empty-graph-error--icon{display:inline-block;margin-right:8px}.empty-graph-error--copy{margin-top:4px;margin-right:4px}.empty-graph-error--scroll{width:90% !important;margin-top:16px}.event-marker-tooltip{background-color:#07070e;padding:10px;border:0}.right .event-marker-tooltip+.box-tooltip--caret-container .box-tooltip--caret{border-right-color:#07070e}.left .event-marker-tooltip+.box-tooltip--caret-container .box-tooltip--caret{border-left-color:#07070e}.event-marker-tooltip--table{display:flex}.event-marker-tooltip--column{display:flex;align-items:stretch;flex-direction:column;margin-right:10px}.event-marker-tooltip--column:last-child{margin-right:0}.event-marker-tooltip--header,.event-marker-tooltip--cell{display:flex;align-items:center;justify-content:flex-start;white-space:nowrap;text-align:left;margin-bottom:4px}.event-marker-tooltip--header *:last-child,.event-marker-tooltip--cell *:last-child{margin-bottom:0}.event-marker-tooltip--cell{color:#d5d5dd;line-height:10px;font-size:10px;font-family:\\\"Roboto Mono\\\",monospace}.event-marker-tooltip--header{color:#9e9ead;font-size:11px;line-height:11px;font-weight:500}.event-marker--line,.event-marker--line__unknown,.event-marker--line__info,.event-marker--line__ok,.event-marker--line__warn,.event-marker--line__crit{position:absolute;height:100%;width:1px;top:0px;opacity:.5;z-index:2}.event-marker--line:after,.event-marker--line__unknown:after,.event-marker--line__info:after,.event-marker--line__ok:after,.event-marker--line__warn:after,.event-marker--line__crit:after,.event-marker--line:before,.event-marker--line__unknown:before,.event-marker--line__info:before,.event-marker--line__ok:before,.event-marker--line__warn:before,.event-marker--line__crit:before{content:\\\"\\\";position:absolute;left:0;height:calc(100% + 6px);bottom:0}.event-marker--line:after,.event-marker--line__unknown:after,.event-marker--line__info:after,.event-marker--line__ok:after,.event-marker--line__warn:after,.event-marker--line__crit:after{left:0;z-index:3;width:1px}.event-marker--line:before,.event-marker--line__unknown:before,.event-marker--line__info:before,.event-marker--line__ok:before,.event-marker--line__warn:before,.event-marker--line__crit:before{width:3px;background-color:rgba(7,7,14,.8);opacity:0;z-index:2;left:-1px}.event-marker--line:hover,.event-marker--line__unknown:hover,.event-marker--line__info:hover,.event-marker--line__ok:hover,.event-marker--line__warn:hover,.event-marker--line__crit:hover,.event-marker--line:hover:before,.event-marker--line__unknown:hover:before,.event-marker--line__info:hover:before,.event-marker--line__ok:hover:before,.event-marker--line__warn:hover:before,.event-marker--line__crit:hover:before{opacity:1}.event-marker--line-rect{width:4px;border-radius:2px 2px 0 0;height:20px;color:#fff;position:absolute;left:50%;top:0;transform:translate(-50%, -100%) rotate(360deg);z-index:3}.event-marker--line__crit:after,.event-marker--line__crit .event-marker--line-rect{background-color:#dc4e58}.event-marker--line__warn:after,.event-marker--line__warn .event-marker--line-rect{background-color:#ffd255}.event-marker--line__ok:after,.event-marker--line__ok .event-marker--line-rect{background-color:#009f5f}.event-marker--line__info:after,.event-marker--line__info .event-marker--line-rect{background-color:#066fc5}.event-marker--line__unknown:after,.event-marker--line__unknown .event-marker--line-rect{background-color:#8e1fc3}.event-marker--vis-selector{position:absolute;cursor:default;right:-30px;bottom:-42px;font-size:12px}.event-marker--vis-icon{margin:4px;font-weight:bold;font-size:20px}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.import--options{display:flex;margin-top:-8px;margin-bottom:8px;justify-content:center}.import--dropdown{margin-top:8px}.multiple-input-index{padding:10px;width:83.33333%;background-color:#1a1a2a;margin:0 auto 20px auto;border-radius:4px}.page-not-found>.page-not-found-funnel{display:flex;flex-direction:column}.page-not-found>.page-not-found-funnel .page-not-found-content{padding:10px;color:#fff}.page-not-found>.page-not-found-funnel .page-not-found-content>.page-not-found-content-highlight{margin:20px}.page-not-found>.page-not-found-footer{display:flex;height:60%;background-color:#fff;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \");background-repeat:no-repeat;background-position:center center;background-size:auto 100%}.page-not-found>.page-not-found-footer>.page-not-found-panel{top:-20%;width:660px;margin:0 auto;z-index:10}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content{padding:40px 50px}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content>.page-not-found-panel-section{margin:10px}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content>.page-not-found-panel-section>.page-not-found-panel-title{font-weight:bold;margin:5px 0}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content .page-not-found-community-links{display:flex;margin:10px;align-items:center}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content .page-not-found-community-links>a{margin:0 5px}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content .page-not-found-community-links>.slack-icon{display:inline-block;width:14px;height:14px;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \");background-repeat:no-repeat;background-size:cover}.searchable-dropdown--input-container{width:100%;padding:8px 0;border-bottom:2px solid #333346}.input-tag-list{margin:1px -1px;display:flex;flex-wrap:wrap}.tag-input+.input-tag-list{padding:0 11px;margin:4px -1px}.input-tag--item,.tags-add{height:24px;line-height:24px;border-radius:3px;margin:1px}.input-tag--item{display:flex;align-items:center;flex-wrap:nowrap;white-space:nowrap;padding:0 0 0 9px;font-size:12px;font-weight:600;background-color:#333346;color:#f1f1f3;cursor:default}.btn.confirm-button.input-tag--remove{margin-left:2px;color:#68687b;background-color:rgba(0,0,0,0)}.btn.confirm-button.input-tag--remove:hover{background-color:rgba(0,0,0,0);color:#ff8564}.tags-add{position:relative;width:24px;background-color:#00a3ff;color:#fff;text-align:center;transition:background-color .25s ease}.tags-add .cf-icon{font-size:14px}.tags-add:hover,.tags-add.open{cursor:pointer;background-color:#00c9ff}.tags-add--menu{position:absolute;top:100%;left:0;z-index:99;display:none;flex-direction:column;align-items:stretch;border-radius:4px;overflow:auto;max-height:200px;background:#066fc5;background:-moz-linear-gradient(left, #066fc5 0%, #00a3ff 100%);background:-webkit-linear-gradient(left, #066fc5 0%, #00a3ff 100%);background:linear-gradient(to right, #066fc5 0%, #00a3ff 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.tags-add--menu-item{text-align:left;font-size:13px;line-height:13px;font-weight:500;padding:7px 9px;white-space:nowrap;color:#f0fcff;transition:color .25s ease;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.tags-add--menu-item,.tags-add--menu-item:hover{cursor:default}.tags-add--menu-item:hover{cursor:pointer;color:#fff;background:#00c9ff;background:-moz-linear-gradient(left, #00c9ff 0%, #00a3ff 100%);background:-webkit-linear-gradient(left, #00c9ff 0%, #00a3ff 100%);background:linear-gradient(to right, #00c9ff 0%, #00a3ff 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.tags-add--menu-item:active,.tags-add--menu-item:active:focus{cursor:pointer;color:#fff;background:#0b3a8d;background:-moz-linear-gradient(left, #0b3a8d 0%, #00a3ff 100%);background:-webkit-linear-gradient(left, #0b3a8d 0%, #00a3ff 100%);background:linear-gradient(to right, #0b3a8d 0%, #00a3ff 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.tags-add.open .tags-add--menu{display:flex}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.tag-selector-count{flex:0 0 30px;height:30px;background-color:#07070e;border-radius:50%;text-align:center;line-height:30px;font-weight:900;user-select:none;color:#00a3ff;font-size:13px}.threshold-markers{width:100%;height:100%}.threshold-marker--crit{background-color:#dc4e58}.threshold-marker--crit.threshold-marker--handle{background:linear-gradient(115deg, #dc4e58 0%, #dc4e58 35%, #f95f53 100%)}.threshold-marker--crit.threshold-marker--handle:before{border-right:12px solid #dc4e58}.threshold-marker--warn{background-color:#ffd255}.threshold-marker--warn.threshold-marker--handle{background:linear-gradient(115deg, #ffd255 0%, #ffd255 35%, #ffb94a 100%)}.threshold-marker--warn.threshold-marker--handle:before{border-right:12px solid #ffd255}.threshold-marker--ok{background-color:#009f5f}.threshold-marker--ok.threshold-marker--handle{background:linear-gradient(115deg, #009f5f 0%, #009f5f 35%, #67d74e 100%)}.threshold-marker--ok.threshold-marker--handle:before{border-right:12px solid #009f5f}.threshold-marker--info{background-color:#066fc5}.threshold-marker--info.threshold-marker--handle{background:linear-gradient(115deg, #066fc5 0%, #066fc5 35%, #00c9ff 100%)}.threshold-marker--info.threshold-marker--handle:before{border-right:12px solid #066fc5}.threshold-marker--unknown{background-color:#8e1fc3}.threshold-marker--unknown.threshold-marker--handle{background:linear-gradient(115deg, #8e1fc3 0%, #8e1fc3 35%, #8e1fc3 100%)}.threshold-marker--unknown.threshold-marker--handle:before{border-right:12px solid #8e1fc3}.threshold-marker--area{position:absolute;width:100%;opacity:.07}.threshold-marker--line{position:absolute;width:100%;height:1px}.threshold-marker--handle{position:absolute;right:-29px;width:18px;height:18px;border-radius:0 3px 3px 0;transform:translateY(-50%);cursor:grab}.threshold-marker--handle:active{cursor:grabbing}.threshold-marker--handle:before{content:\\\"\\\";border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0);display:block;left:-12px;position:absolute}.threshold-setting--error{width:100%;font-weight:600;font-size:11px;color:#f95f53}.threshold-setting--value{flex:1 0 110px}.version-info{border-top:2px solid #333346;padding-top:32px;padding-bottom:32px;color:#828294;text-align:center}@keyframes loading-dots{0%{content:\\\" \\\"}25%{content:\\\".\\\"}50%{content:\\\"..\\\"}75%{content:\\\"...\\\"}100%{content:\\\" \\\"}}.waiting-text::after{animation:2s linear loading-dots infinite;content:\\\"...\\\"}.avatar{border-radius:50%;background-position:center center;background-size:100% 100%}.cell{background-color:rgba(26,26,42,.5);border-radius:4px;display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap}.cell--view{flex:1 0 0;position:relative;height:100%}.cell--view .time-series-container{padding-top:0}.empty-graph-error--copy{z-index:1;float:right}.cell--view-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#68687b;overflow:hidden}.cell--view-empty.error{font-size:40px;color:#ff8564}.cell--error-message{white-space:normal}.dashboard .cell--view-empty{top:48px}.cell--header{display:flex;align-items:center;flex-wrap:nowrap;flex:0 0 32px}.cell--draggable{flex:0 0 32px;width:32px;height:32px;position:relative}.cell--dot-grid{position:absolute;width:2px;height:2px;top:50%;transform:translate(-50%, -50%)}.cell--dot-grid,.cell--dot-grid:before,.cell--dot-grid:after{border-radius:1px;background-color:#68687b;transition:background-color .25s ease}.cell--dot-grid:before,.cell--dot-grid:after{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:100%}.cell--dot-grid:before{transform:translateY(-200%)}.cell--dot-grid:after{transform:translateY(200%)}.cell:hover .cell--dot-grid,.cell:hover .cell--dot-grid:before,.cell:hover .cell--dot-grid:after{background-color:#d5d5dd}.cell--dot-grid:nth-child(1){left:calc(50% - 4px)}.cell--dot-grid:nth-child(2){left:50%}.cell--dot-grid:nth-child(3){left:calc(50% + 4px)}.cell--draggable:hover{cursor:move}.cell--draggable:hover .cell--dot-grid,.cell--draggable:hover .cell--dot-grid:before,.cell--draggable:hover .cell--dot-grid:after{background-color:#00a3ff}.cell--context{flex:0 0 32px;width:32px;height:32px;border:0;outline:none;background:none;transition:color .25s ease,.25s opacity ease;color:#68687b;position:relative}.cell--context>.cf-icon{font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cell:hover .cell--context:not(.cell--context__active){color:#d5d5dd}.cell:hover .cell--context:hover,.cell--context.cell--context__active{cursor:pointer;color:#00a3ff}.cell--context-menu{padding:4px;display:flex;flex-direction:column;align-items:stretch}.cell--context-item{font-size:12px;line-height:12px;white-space:nowrap;padding:6px 8px;border-radius:3px;font-weight:600;transition:color .25s ease,background-color .25s ease}.cell--context-item>.cf-icon{margin-right:8px}.cell--context-item:hover{cursor:pointer;color:#fff;background-color:#333346}.cell--context-item__danger{color:#ff8564}.cell--context-item__danger:hover{color:#ffb6a0}.cell--context-item__confirm:hover{background-color:rgba(0,0,0,0)}.cell--name,.cell--window-period{flex:1 0 0;font-size:12px;line-height:12px;font-weight:600;padding-right:8px;pointer-events:none}.cell--window-period{text-align:right}.cell--note-indicator{position:relative;flex:0 0 32px;width:32px;height:32px;cursor:default;color:#68687b;transition:color .25s ease,opacity .25s ease}.cell--note-indicator>.cf-icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cell:hover .cell--note-indicator:not(.cell--note-indicator__active){color:#d5d5dd}.cell--note-indicator.cell--note-indicator__active,.cell--note-indicator:hover,.cell:hover .cell--note-indicator:hover{cursor:pointer;color:#00a3ff}.time-series-container{width:100%;height:100%;padding:8px}.time-series-container.time-series-container--alert-check{padding-right:38px;padding-bottom:28px;overflow:hidden}.giraffe-tooltip-container{z-index:9993}.react-grid-item.resizing .cell--context,.react-grid-item.resizing .cell--note-indicator,.react-grid-item.react-draggable-dragging .cell--context,.react-grid-item.react-draggable-dragging .cell--note-indicator{opacity:0}.presentation-mode .cell--context{display:none}.dashboard-clonecell--dropdownopen{width:70% !important}.dashboard-clonecell--overlayopen{display:flex;flex-direction:column;align-items:center}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.cell--note-contents{padding:16px;font-size:13px}.view-loading-spinner{position:absolute;z-index:9999;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}.view-loading-spinner--timer{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-weight:700;font-size:13px;transition:opacity .5s ease;width:50px;height:50px;border-radius:50%;background-color:rgba(7,7,14,.75);line-height:50px;text-align:center;opacity:0}.view-loading-spinner--timer.visible{opacity:1}.gradient-border{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000;transition:opacity .25s ease;opacity:0}.gradient-border--top-left,.gradient-border--top-right,.gradient-border--bottom-left,.gradient-border--bottom-right{position:absolute;width:50%;height:50%;z-index:1}.gradient-border--top-left:before,.gradient-border--top-left:after,.gradient-border--top-right:before,.gradient-border--top-right:after,.gradient-border--bottom-left:before,.gradient-border--bottom-left:after,.gradient-border--bottom-right:before,.gradient-border--bottom-right:after{content:\\\"\\\";position:absolute}.gradient-border--top-left{z-index:2;top:0;left:0;border-top-left-radius:4px;border-top:2px solid #00a3ff;border-left:2px solid #00a3ff}.gradient-border--top-left:before{top:-2px;height:2px;left:4px;width:calc(200% - 8px);background:#00a3ff;background:-moz-linear-gradient(left, #00a3ff 0%, #677ef5 100%);background:-webkit-linear-gradient(left, #00a3ff 0%, #677ef5 100%);background:linear-gradient(to right, #00a3ff 0%, #677ef5 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.gradient-border--top-left:after{top:4px;height:calc(200% - 8px);left:-2px;width:2px;background:#00a3ff;background:-moz-linear-gradient(top, #00a3ff 0%, #677ef5 100%);background:-webkit-linear-gradient(top, #00a3ff 0%, #677ef5 100%);background:linear-gradient(to bottom, #00a3ff 0%, #677ef5 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=0 )}.gradient-border--top-right{top:0;right:0;border-top-right-radius:4px;border-top:2px solid #677ef5;border-right:2px solid #677ef5}.gradient-border--bottom-left{bottom:0;left:0;border-bottom-left-radius:4px;border-bottom:2px solid #677ef5;border-left:2px solid #677ef5}.gradient-border--bottom-right{z-index:2;bottom:0;right:0;border-bottom-right-radius:4px;border-bottom:2px solid #ce58eb;border-right:2px solid #ce58eb}.gradient-border--bottom-right:before{bottom:-2px;height:2px;right:4px;width:calc(200% - 8px);background:#677ef5;background:-moz-linear-gradient(left, #677ef5 0%, #ce58eb 100%);background:-webkit-linear-gradient(left, #677ef5 0%, #ce58eb 100%);background:linear-gradient(to right, #677ef5 0%, #ce58eb 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.gradient-border--bottom-right:after{bottom:4px;height:calc(200% - 8px);right:-2px;width:2px;background:#677ef5;background:-moz-linear-gradient(top, #677ef5 0%, #ce58eb 100%);background:-webkit-linear-gradient(top, #677ef5 0%, #ce58eb 100%);background:linear-gradient(to bottom, #677ef5 0%, #ce58eb 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=0 )}.react-grid-item.resizing .gradient-border,.react-grid-item.react-draggable-dragging .gradient-border{opacity:1}.react-grid-layout{position:relative;transition:height 200ms ease}.react-grid-item{z-index:1;transition:all 200ms ease;transition-property:left,top}.react-grid-item.cssTransforms{transition-property:transform}.react-grid-item.resizing{z-index:3;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:top,left}.react-grid-item.react-grid-placeholder{background:#00a3ff;background:-moz-linear-gradient(135deg, #00a3ff 0%, #ce58eb 100%) !important;background:-webkit-linear-gradient(135deg, #00a3ff 0%, #ce58eb 100%) !important;background:linear-gradient(135deg, #00a3ff 0%, #ce58eb 100%) !important;filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 ) !important;border:0 !important;opacity:.3;border-radius:4px !important;transition-duration:100ms;z-index:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-resizable-handle{position:absolute;background-image:none;cursor:nwse-resize;border:15px solid rgba(0,0,0,0);border-right-color:#333346;border-bottom-color:#333346;border-bottom-right-radius:4px;z-index:5;transition:border-color .25s ease,opacity .25s ease;width:30px;height:30px;bottom:0;right:0;opacity:0}.react-resizable-handle:before,.react-resizable-handle:after{content:\\\"\\\";display:block;position:absolute;height:2px;border-radius:1px;background-color:#07070e;transition:background-color .25s ease;transform:translate(-50%, -50%) rotate(-45deg);border:0}.react-resizable-handle:before{width:12px;top:7px;left:7px}.react-resizable-handle:after{width:20px;top:4px;left:4px}.react-resizable-handle:hover{border-right-color:#ce58eb;border-bottom-color:#ce58eb}.cell:hover .react-resizable-handle{opacity:1}.react-grid-item.resizing .react-resizable-handle,.react-grid-item.react-draggable-dragging .react-resizable-handle{opacity:1;border-right-color:#ce58eb;border-bottom-color:#ce58eb}.load-data--asset-alert{margin-bottom:32px}.cf-page-control-bar+.rate-alert{margin:0 16px 16px}.rate-alert--content{display:inline-flex;flex-direction:column;font-weight:500}.flex-upgrade-content.rate-alert--content__free{margin:4px}.upgrade-message{padding-right:16px}.cf-page--title{flex-shrink:0}.asset-alert{height:100%;background-position:bottom -20px left -20px;background-size:contain;background-repeat:no-repeat;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \")}.dashboards--asset-alert .asset-alert--contents{position:absolute;bottom:0}a.upgrade-payg--button{background:#00a3ff;background:-moz-linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);background:-webkit-linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);background:linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.asset-limit-overlay--contents{background-color:#07070e;border-radius:2px}.asset-limit-overlay--contents p{text-align:center}.asset-limit-overlay--contents .cf-overlay--title{word-break:break-word}.asset-limit-overlay--graphic-container{width:100%;display:inline-flex;justify-content:center}.asset-limit-overlay--graphic{display:inline-flex;position:relative;width:100%;max-width:720px}.asset-limit-overlay--graphic:after{content:\\\"\\\";display:inline-block;padding-bottom:57.3170731707%}.asset-limit-overlay--graphic-element{position:absolute;top:0;left:0;width:100%;height:100%;background-position:center center;background-size:contain;background-repeat:no-repeat;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \")}button.upgrade-payg--button{background:linear-gradient(45deg, rgb(52, 187, 85) 0%, rgb(0, 163, 255) 100%)}.credit-250-experiment-upgrade-button--text{margin:16px}@media(max-width: 850px){.credit-250-experiment-upgrade-button--text{display:none}}@media(max-width: 700px){.upgrade-payg--button .CrownSolid_New{display:none}}@media screen and (min-width: 800px){.rate-alert{margin-left:32px}.rate-alert--content{flex-direction:row;width:100%;height:100%;align-items:center;justify-content:space-between}.rate-alert--content .rate-alert--button{margin-top:0;margin-left:16px}.cf-page-control-bar+.rate-alert{margin:0 32px 16px}.asset-limit-overlay--graphic{width:60%}.asset-limit-overlay--contents .cf-overlay--header__wrap{align-items:center}}.context-menu{display:flex;align-items:center}.context-menu--boost-z{position:relative;z-index:9999 !important}.context-menu--container{position:relative}.context-menu--container .button{position:relative;border:0;border-radius:3px;background-color:#07070e;color:#b9b9c5;transition:color .25s ease,background-color .25s ease;outline:none}.context-menu--container .button:hover{cursor:pointer;color:#fff}.context-menu--container .button.active{color:#fff}.context-menu--list{transition:opacity .25s ease;opacity:0;display:flex;flex-direction:column;align-items:stretch;border-radius:4px;position:relative}.context-menu--list:before{content:\\\"\\\";border:8px solid rgba(0,0,0,0);position:absolute;top:0;right:50%;transform:translate(50%, -100%)}.context-menu--list-container{z-index:2;position:absolute;right:50%;top:24px;padding-top:8px;transform:translateX(50%);transition:all;visibility:hidden}.context-menu--list-container.open{visibility:visible}.context-menu--list-container.open .context-menu--list{opacity:1}.context-menu--item{text-align:left;color:#fff;outline:none;border:0;background-color:rgba(0,0,0,0);font-weight:700;font-size:13px;line-height:13px;white-space:nowrap;padding:8px;transition:background-color .25s ease}.context-menu--item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.context-menu--item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.context-menu--item:hover{cursor:pointer}.context-menu--item.context-menu--item__disabled,.context-menu--item.context-menu--item__disabled:hover{cursor:default;color:rgba(255,255,255,.6);font-style:italic;background-color:rgba(0,0,0,0)}.contex-menu--item-description{font-size:11px;font-weight:400;padding-top:4px;white-space:normal;width:200px}.context-menu--align-left{justify-content:flex-start}.context-menu--align-left>.context-menu--container{margin-left:2px}.context-menu--align-left>.context-menu--container:first-child{margin-left:0}.context-menu--align-left>.context-menu--container:first-child .context-menu--list-container{right:0;transform:translateX(calc(100% - 24px))}.context-menu--align-left>.context-menu--container:first-child .context-menu--list:before{right:calc(100% - 12px)}.context-menu--align-right{justify-content:flex-end}.context-menu--align-right>.context-menu--container{margin-right:2px}.context-menu--align-right>.context-menu--container:last-child{margin-right:0}.context-menu--align-right>.context-menu--container:last-child .context-menu--list-container{right:0;transform:translateX(0)}.context-menu--align-right>.context-menu--container:last-child .context-menu--list:before{right:12px}.context-menu--toggle.context-menu--default:hover{background-color:#4d4d60}.context-menu--toggle.context-menu--default.active{background-color:#68687b}.context-menu--list.context-menu--default{background-color:#4d4d60}.context-menu--list.context-menu--default:before{border-bottom-color:#4d4d60}.context-menu--list.context-menu--default .context-menu--item:hover{background-color:#68687b}.context-menu--toggle.context-menu--primary:hover{background-color:#00a3ff}.context-menu--toggle.context-menu--primary.active{background-color:#00c9ff}.context-menu--list.context-menu--primary{background-color:#00a3ff}.context-menu--list.context-menu--primary:before{border-bottom-color:#00a3ff}.context-menu--list.context-menu--primary .context-menu--item:hover{background-color:#00c9ff}.context-menu--toggle.context-menu--secondary:hover{background-color:#be2ee4}.context-menu--toggle.context-menu--secondary.active{background-color:#ce58eb}.context-menu--list.context-menu--secondary{background-color:#be2ee4}.context-menu--list.context-menu--secondary:before{border-bottom-color:#be2ee4}.context-menu--list.context-menu--secondary .context-menu--item:hover{background-color:#ce58eb}.context-menu--toggle.context-menu--success:hover{background-color:#2fa74d}.context-menu--toggle.context-menu--success.active{background-color:#67d74e}.context-menu--list.context-menu--success{background-color:#2fa74d}.context-menu--list.context-menu--success:before{border-bottom-color:#2fa74d}.context-menu--list.context-menu--success .context-menu--item:hover{background-color:#67d74e}.context-menu--toggle.context-menu--alert:hover{background-color:#ffb94a}.context-menu--toggle.context-menu--alert.active{background-color:#ffd255}.context-menu--list.context-menu--alert{background-color:#ffb94a}.context-menu--list.context-menu--alert:before{border-bottom-color:#ffb94a}.context-menu--list.context-menu--alert .context-menu--item:hover{background-color:#ffd255}.context-menu--toggle.context-menu--danger:hover{background-color:#f95f53}.context-menu--toggle.context-menu--danger.active{background-color:#ff8564}.context-menu--list.context-menu--danger{background-color:#f95f53}.context-menu--list.context-menu--danger:before{border-bottom-color:#f95f53}.context-menu--list.context-menu--danger .context-menu--item:hover{background-color:#ff8564}.dapper-scrollbars--wrapper{margin-right:0 !important;margin-bottom:10px !important;right:0 !important;bottom:0 !important}.dapper-scrollbars--track-x,.dapper-scrollbars--track-y{border-radius:6px !important;position:absolute !important;background-color:rgba(7,7,14,.4) !important;user-select:none !important;overflow:hidden !important;transition:opacity .25s ease !important}.dapper-scrollbars--track-x{height:6px !important;width:calc(100% - 6px) !important;bottom:3px !important;left:3px !important}.dapper-scrollbars--track-y{width:6px !important;height:calc(100% - 6px) !important;right:3px !important;top:3px !important}.dapper-scrollbars--thumb-x,.dapper-scrollbars--thumb-y{border-radius:3px !important}.dapper-scrollbars--thumb-x{height:6px !important}.dapper-scrollbars--thumb-y{width:6px !important}.dapper-scrollbars--autohide .dapper-scrollbars--track-x,.dapper-scrollbars--autohide .dapper-scrollbars--track-y{opacity:0}.dapper-scrollbars--autohide:hover .dapper-scrollbars--track-x,.dapper-scrollbars--autohide:hover .dapper-scrollbars--track-y{opacity:1}.dashed-button{width:100%;border:2px dashed #333346;background-color:rgba(51,51,70,0);color:#68687b;transition:background-color .25s ease,color .25s ease,border-color .25s ease;font-weight:700;outline:none;border-radius:4px;text-align:center}.dashed-button:hover{cursor:pointer;background-color:rgba(51,51,70,.25);border-color:#333346;color:#b9b9c5}.dashed-button__default:active{border-color:#68687b;color:#d5d5dd}.dashed-button__primary:active{border-color:#00a3ff;color:#00a3ff}.dashed-button__secondary:active{border-color:#be2ee4;color:#be2ee4}.dashed-button__success:active{border-color:#2fa74d;color:#2fa74d}.dashed-button__warning:active{border-color:#ffd255;color:#ffd255}.dashed-button__danger:active{border-color:#ff8564;color:#ff8564}.dashed-button__xs{height:32px;font-size:11px}.dashed-button__sm{height:48px;font-size:12px}.dashed-button__md{height:60px;font-size:13px}.dashed-button__lg{height:72px;font-size:14px}.range-picker{position:fixed;text-align:center;background-color:#07070e;border:2px solid #00a3ff;padding:8px;border-radius:4px;z-index:9999}.react-datepicker{font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;font-size:15px}.range-picker--date-pickers{flex-wrap:nowrap;display:flex;flex-direction:row;align-items:center;margin-bottom:8px}.range-picker--date-picker{margin:4px;margin-top:0}.react-datepicker-wrapper,.react-datepicker__input-container{width:100%}.range-picker--calendar-container{position:relative}.range-picker--calendar{background-color:rgba(0,0,0,0);border:none;color:#00a3ff;display:flex;flex-direction:row;align-items:stretch}.range-picker--calendar .react-datepicker__month-container{background-color:#1a1a2a;border-radius:4px 4px;width:260px}.range-picker--calendar .react-datepicker__navigation{outline:none;cursor:pointer}.range-picker--calendar .react-datepicker__navigation--next{border-left-color:#f1f1f3}.range-picker--calendar .react-datepicker__navigation--previous{border-right-color:#f1f1f3}.range-picker--calendar .range-picker--day{color:#4d4d60}.range-picker--calendar .range-picker--day:hover{background-color:#00c9ff;color:#fff}.range-picker--calendar .range-picker--day-in-month{color:#b9b9c5}.range-picker--calendar .range-picker--day-in-month:hover{background-color:#00c9ff;color:#fff}.range-picker--calendar .react-datepicker__day--in-selecting-range{background-color:#00a3ff;color:#fff}.range-picker--calendar .react-datepicker__day--in-range{background-color:#00a3ff;color:#fff}.range-picker--calendar .range-picker--active-day{color:#fff}.range-picker--calendar .react-datepicker__day--selected{background-color:#00a3ff;color:#f1f1f3}.range-picker--calendar .react-datepicker__triangle{display:none}.range-picker--calendar .react-datepicker__header{border-radius:0;padding:0;border:none;background:rgba(0,0,0,0)}.range-picker--calendar .react-datepicker__header .react-datepicker__day-name{color:#2fa74d;font-weight:700}.range-picker--calendar .react-datepicker__header .react-datepicker__current-month{width:100%;border-radius:4px 4px 0 0;background-color:#1a1a2a;color:#f1f1f3;font-weight:700;height:32px;display:inline-flex;flex-direction:row;justify-content:center;align-items:center}.range-picker--calendar .react-datepicker__time-container{width:70px;border:none;margin-left:2px;border-radius:4px;background-color:rgba(0,0,0,0);display:flex;flex-direction:column}.range-picker--calendar .react-datepicker__time-container .react-datepicker__header--time{width:100%;border-radius:4px 4px 0 0;background-color:#1a1a2a;font-weight:700;flex:0 0 32px;display:inline-flex;flex-direction:row;justify-content:center;align-items:center}.range-picker--calendar .react-datepicker__time-container .react-datepicker-time__header{color:#f1f1f3}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time{flex:1 0 calc(100% - 32px);background-color:rgba(0,0,0,0)}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:100%;height:100%;background-color:#1a1a2a;color:#b9b9c5;border-radius:0 0 4px 4px;position:relative}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list{position:absolute;width:100%;height:100%;font-size:12px}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar{width:4px;border-top-right-radius:2px;border-top-left-radius:2px;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar-button{background-color:#1a1a2a}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar-track{background-color:#1a1a2a;border-top-right-radius:2px;border-top-left-radius:2px;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar-track-piece{background-color:#1a1a2a}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar-thumb{background-color:#00a3ff;border-radius:2px}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar-corner{background-color:#1a1a2a}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-resizer{background-color:#1a1a2a}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item{height:initial;padding:4px 8px;transition:background-color .25s ease,color .25s ease;line-height:1.25em;margin:0}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item:hover{background-color:#333346;color:#fff}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item--selected,.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item--selected:hover{background-color:#00a3ff}.range-picker--submit{margin-bottom:8px}.range-picker--dismiss{position:absolute;z-index:5000;top:0;right:0;transform:translate(50%, -50%);width:24px;height:24px;outline:none;border-radius:50%;background-color:#00a3ff;transition:background-color .25s ease;border:0}.range-picker--dismiss:before,.range-picker--dismiss:after{content:\\\"\\\";position:absolute;width:13px;height:3px;top:50%;left:50%;border-radius:1px;background-color:#fff}.range-picker--dismiss:before{transform:translate(-50%, -50%) rotate(45deg)}.range-picker--dismiss:after{transform:translate(-50%, -50%) rotate(-45deg)}.range-picker--dismiss:hover{background-color:#00c9ff;cursor:pointer}.date-picker__select-time-range{display:flex;flex-direction:column;flex:1;width:231px;height:100%}.date-picker__select-time-range .cf-form--element{margin-bottom:0}.date-picker__select-date-picker{display:flex;flex-direction:column;flex:1;width:251px;height:100%}.date-picker__apply-time-range{margin:8px 0}.date-picker__input{max-width:193px}.date-picker__input input{background-color:rgba(0,0,0,0);border:2px solid #4d4d60}.date-picker--timezone-container{margin-bottom:24px}.date-picker--timezone-container button{background:#4d4d60}.date-picker--column-title{margin-bottom:16px}.date-picker--label{margin-bottom:8px;margin-top:4px}.date-picker--label__options{margin-bottom:4px;margin-top:8px}.date-picker--label__timezone{margin-bottom:8px}.date-picker--label__calendar{align-self:flex-start;margin-bottom:8px;margin-top:4px}.cf-dropdown-menu.date-picker--menu{background:rgba(241,241,243,.1019607843);position:absolute;right:0;padding:0 8px 0 0}.cf-dropdown-menu--contents .date-picker--calendar-dropdown,.cf-dropdown-menu--contents .date-picker--calendar-dropdown:hover{background-color:rgba(0,0,0,0) !important;border-right:2px solid rgba(255,255,255,.2);display:flex;align-items:stretch;padding:8px}.date-picker--calendar-icon{display:inline-flex;padding:0 12px;background:#4d4d60;height:100%;align-items:center;position:absolute}.date-picker--question-mark{margin-left:8px}.date-picker--form .cf-form--label,.date-picker--form .cf-form--element-error{font-size:14px}.autorefresh-dropdown{display:flex;flex-wrap:nowrap}.autorefresh-dropdown.paused .cf-dropdown--selected{opacity:0}.autorefresh-dropdown--pause{margin-left:4px}.editable-description{height:22px;width:100%;margin-top:-3px}.editable-description--preview,.cf-input.editable-description--input>input{font-size:11px;font-weight:400;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;padding:0 5px}.editable-description--preview,.editable-description--input{position:relative;width:100%}.editable-description--preview{border-radius:4px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;color:#b9b9c5;transition:color .25s ease,background-color .25s ease,border-color .25s ease;border:2px solid rgba(0,0,0,0);height:22px;line-height:18px}.editable-description--preview,.editable-description--preview:hover{cursor:default}.editable-description--preview .cf-icon{position:relative;top:-2px;display:inline-block;margin-left:8px;opacity:0;transition:opacity .25s ease;color:#9e9ead}.editable-description--preview:hover .cf-icon{opacity:1}.editable-description--preview.untitled{color:#68687b;font-style:italic}.editable-description--preview:hover{cursor:text;color:#fff}.cf-input.editable-description--input>input::-webkit-input-placeholder{font-weight:400 !important}.cf-input.editable-description--input>input::-moz-placeholder{font-weight:400 !important}.cf-input.editable-description--input>input:-ms-input-placeholder{font-weight:400 !important}.cf-input.editable-description--input>input:-moz-placeholder{font-weight:400 !important}.graph-tips{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;display:inline-block;padding:0 4px;border:0;height:30px;line-height:30px}.graph-tips,.graph-tips:hover{cursor:default}.graph-tips>span{display:inline-block;text-align:center;width:17px;height:17px;border-radius:50%;background-color:#b9b9c5;color:#07070e;line-height:18px;font-weight:900;cursor:default}.graph-tips-line{display:grid;grid-template-columns:120px auto}.inline-labels{width:100%}.inline-labels--container{width:calc(100% + 2px);position:relative;left:-2px;display:flex;flex-wrap:wrap;padding:1px;column-gap:4px;row-gap:4px}.inline-labels--container>.cf-label{margin:1px}.cf-button.cf-button-sm.inline-labels--add{width:18px;height:18px;margin:1px;position:relative}.cf-button.cf-button-sm.inline-labels--add,.cf-button.cf-button-sm.inline-labels--add:after{border-radius:50%}.cf-button.cf-button-sm.inline-labels--add:after{top:50%;left:50%;transform:translate(-50%, -50%);transition:opacity .25s ease,transform .25s ease}.cf-button.cf-button-sm.inline-labels--add:hover:after{transform:translate(-50%, -50%) scale(1.5, 1.5)}.inline-labels--add-icon{position:absolute;width:100%;height:100%;top:0;left:0}.inline-labels--add-icon:before,.inline-labels--add-icon:after{content:\\\"\\\";position:absolute;top:50%;left:50%;height:2px;width:9px;background-color:#fff;border-radius:1px;transition:width .25s ease}.inline-labels--add-icon:before{transform:translate(-50%, -50%)}.inline-labels--add-icon:after{transform:translate(-50%, -50%) rotate(90deg)}.cf-button.cf-button-sm.inline-labels--add:hover .inline-labels--add-icon:before,.cf-button.cf-button-sm.inline-labels--add:hover .inline-labels--add-icon:after{width:13px}.inline-labels--editor{min-height:18px;position:relative;display:flex;align-items:center;column-gap:4px;row-gap:4px}.inline-labels--add-wrapper{display:flex}.inline-labels--popover{width:330px}.inline-labels--popover-heading{margin-top:0;user-select:none;text-align:center;color:#b9b9c5;margin-bottom:16px}.inline-labels--list-container{background-color:#1a1a2a;border-radius:4px;margin-top:4px;overflow:hidden}.inline-labels--list{display:flex;width:100%;flex-direction:column;align-items:stretch}.inline-labels--list-item,.inline-labels--create-new{padding:4px 8px;min-height:40px;font-size:var(--step-0);display:flex;align-items:center}.inline-labels--list-item.active{background-color:#00a3ff}.inline-labels--list-item.active,.inline-labels--list-item:hover{cursor:pointer}.inline-labels--create-new{line-height:var(--step-0);font-weight:600;color:#9e9ead;transition:background-color .25s ease,color .25s ease;white-space:pre-wrap;word-break:break-all;word-wrap:break-word}.inline-labels--create-new strong{display:inline;font-weight:700;color:#d5d5dd}.inline-labels--create-new.active{color:#bef0ff}.inline-labels--create-new.active strong{color:#fff}.notification--button{display:inline-block;margin:4px;margin-right:0}.notification--message{display:inline-block;margin-right:4px}.protoboard-icon{position:relative;display:flex;justify-content:center;align-items:center}.protoboard-icon svg{width:60%}.protoboard-icon .protoboard-icon--shape{stroke:#00a3ff;stroke-width:2;fill:rgba(0,0,0,0)}.protoboard-icon .protoboard-icon--text-shape{stroke-width:2;stroke:#00a3ff;fill:#00a3ff}.protoboard-icon .protoboard-icon--text{fill:#07070e;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;font-weight:900;font-size:42px}.card-select--active:hover .protoboard-icon--text,.card-select--active.card-select--checked .protoboard-icon--text{fill:#333346}.search-widget-input{flex:1 0 80px}.selector-list--list{display:flex;flex:1 1 0;flex-wrap:nowrap;height:100%}.selector-list--list>*{margin-left:4px;margin-right:4px}.selector-list--list>*:first-child{margin-left:0}.selector-list--list>*:last-child{margin-right:0}.selector-list{border-radius:4px;background-color:#1a1a2a;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;position:relative;flex:0 0 228px}.selector-list--header{background-color:#333346;display:flex;justify-content:flex-start}.selector-list--title{display:inline-block;font-weight:900;font-size:13px;text-transform:uppercase;letter-spacing:0;color:#9e9ead}.selector-list--delete{flex:0 0 30px;height:30px;position:relative}.selector-list--delete:before,.selector-list--delete:after{content:\\\"\\\";position:absolute;top:50%;left:50%;width:14px;height:2px;border-radius:1px;background-color:#68687b;transition:background-color .25s ease}.selector-list--delete:before{transform:translate(-50%, -50%) rotate(45deg)}.selector-list--delete:after{transform:translate(-50%, -50%) rotate(-45deg)}.selector-list--delete:hover{cursor:pointer}.selector-list--delete:hover:before,.selector-list--delete:hover:after{background-color:#ff8564}.selector-list--hamburger{flex:0 0 15px;height:2px;border-radius:1px;background-color:#4d4d60;margin-left:10px;position:relative;transition:background-color .25s ease}.selector-list--hamburger:before,.selector-list--hamburger:after{content:\\\"\\\";position:absolute;top:0;width:100%;height:100%;background-color:#4d4d60;border-radius:1px;transition:background-color .25s ease}.selector-list--hamburger:before{transform:translateY(-200%)}.selector-list--hamburger:after{transform:translateY(200%)}.selector-list--draggable{display:flex;align-items:center;height:30px;flex:1 0 0}.selector-list--draggable .selector-list--title{margin-left:8px;transition:color .25s ease}.selector-list--draggable:hover{cursor:grab}.selector-list--draggable:hover .selector-list--title{color:#d5d5dd}.selector-list--draggable:hover .selector-list--hamburger,.selector-list--draggable:hover .selector-list--hamburger:before,.selector-list--draggable:hover .selector-list--hamburger:after{background-color:#d5d5dd}.selector-list--menu{border-bottom:2px solid #333346;padding:8px}.selector-list--body{flex:1 1 0;overflow:hidden}.selector-list--empty{display:flex;flex-direction:column;text-align:center;align-items:center;justify-content:center;align-content:center;color:#68687b}.selector-list--empty>*{margin:4px 0}.selector-list--contents{padding:8px}.tabbed-page{display:flex;align-items:stretch;background-color:rgba(26,26,42,.25);border-radius:4px}.tabbed-page-nav{display:flex;flex-direction:column;align-items:stretch;flex:0 1 0;padding:32px;padding-right:0}.tabbed-page-nav--header{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;margin:32px;margin-left:0;display:flex;flex-direction:column;align-items:center;text-align:center}.tabbed-page-nav--header,.tabbed-page-nav--header:hover{cursor:default}.tabbed-page-nav--avatar{background-color:#1a1a2a}.tabbed-page-nav--description{font-weight:600;font-size:13px;line-height:15px;margin:0;margin-top:12px;color:#9e9ead}.tabbed-page-nav--tabs{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;display:flex;flex-direction:column;align-items:stretch}.tabbed-page-nav--tabs,.tabbed-page-nav--tabs:hover{cursor:default}.tabbed-page-nav--tab{border-radius:4px 0 0 4px;font-size:17px;height:50px;line-height:50px;padding:0 17px;color:#9e9ead;white-space:nowrap;transition:background-color .25s ease,color .25s ease}.tabbed-page-nav--tab:hover{background-color:rgba(26,26,42,.5);color:#d5d5dd;cursor:pointer}.tabbed-page-nav--tab.active{background-color:#1a1a2a;color:#f1f1f3}.tabbed-page-content{flex:1 0 0;background-color:#1a1a2a;border-radius:4px;min-height:500px;padding:32px}.tabbed-page-section--header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.time-machine-tables{display:flex;align-items:stretch;flex-wrap:nowrap;width:100%;height:100%}.time-machine-sidebar{flex:1 0 180px;background-color:#07070e;margin-right:4px;overflow:hidden;border-radius:2px;border:2px solid #1a1a2a}.time-machine-sidebar--heading{padding:10px;background:#1a1a2a;height:50px}.time-machine-sidebar--scroll{height:calc(100% - 50px) !important}.time-machines-sidebar--filter.form-control.cf-input-xs{font-size:12px}.time-machine-sidebar--items{width:100%;display:inline-flex;flex-direction:column}.time-machine-sidebar-item{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;color:#9e9ead;font-size:12px;font-weight:400;padding:8px 8px;transition:color .25s ease,background-color .25s ease;white-space:nowrap}.time-machine-sidebar-item,.time-machine-sidebar-item:hover{cursor:default}.time-machine-sidebar-item>span{padding-right:2px}.time-machine-sidebar-item>span.key,.time-machine-sidebar-item>span.equals{color:rgba(158,158,173,.7)}.time-machine-sidebar-item>span.value{font-weight:600;padding-right:8px;color:#9e9ead}.time-machine-sidebar-item:hover{background-color:#07070e;color:#9e9ead;cursor:pointer}.time-machine-sidebar-item:hover>span.key,.time-machine-sidebar-item:hover>span.equals{color:#9e9ead}.time-machine-sidebar-item:hover>span.value{color:#fff}.time-machine-sidebar-item.active{background-color:#1a1a2a;color:#fff}.time-machine-sidebar-item.active>span.key,.time-machine-sidebar-item.active>span.equals{color:#fff}.time-machine-sidebar-item.active>span.value{color:#00a3ff}.time-machine-table{flex:4 0 100px;border:2px solid #1a1a2a;border-radius:1px;overflow:hidden}.time-machine-table:only-child{border:1}.table-graph-cell{user-select:text !important;-o-user-select:text !important;-moz-user-select:text !important;-webkit-user-select:text !important;line-height:28px;padding:0 6px;font-size:12px;background-color:#07070e;font-weight:500;color:#9e9ead;border:1px solid #1a1a2a;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-graph-cell__highlight-row{color:#fff;background-color:#07070e}.table-graph-cell__numerical{font-family:\\\"Roboto Mono\\\",monospace;text-align:right}.table-graph-cell__fixed-row,.table-graph-cell__fixed-column{font-weight:700;color:#b9b9c5;background-color:#07070e}.table-graph-cell__fixed-row{border-top:0}.table-graph-cell__fixed-column{border-left:0}.table-graph-cell__fixed-corner{font-weight:700;border-top:0;border-left:0;color:#f1f1f3;background-color:#1a1a2a}.table-graph-cell__field-name{padding-right:17px}.table-graph-cell__field-name:before{font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;content:\\\"\\\\e902\\\";font-size:17px;position:absolute;top:50%;right:6px;transform:translateY(-50%) rotate(180deg);font-size:13px;opacity:0;transition:opacity .25s ease,color .25s ease,transform .25s ease}.table-graph-cell__field-name:hover{cursor:pointer}.table-graph-cell__field-name:hover:before{opacity:1}.table-graph-cell__sort-asc,.table-graph-cell__sort-desc{color:#00a3ff}.table-graph-cell__sort-asc:before,.table-graph-cell__sort-desc:before{opacity:1}.table-graph-cell__sort-asc:before{transform:translateY(-50%) rotate(180deg)}.table-graph-cell__sort-desc:before{transform:translateY(-50%) rotate(0deg)}.time-machine-table.time-machine-table__light-mode{border-color:#d5d5dd}.time-machine-table.time-machine-table__light-mode .table-graph-cell{background-color:#fff;color:#68687b;border-color:#d5d5dd}.time-machine-table.time-machine-table__light-mode .table-graph-cell__highlight-row{color:#333346;background-color:#f1f1f3}.time-machine-table.time-machine-table__light-mode .table-graph-cell__fixed-row,.time-machine-table.time-machine-table__light-mode .table-graph-cell__fixed-column{color:#68687b;background-color:#f1f1f3}.time-machine-table.time-machine-table__light-mode .table-graph-cell__fixed-corner{color:#333346;background-color:#d5d5dd}.time-machine-table.time-machine-table__light-mode .table-graph-cell__sort-asc,.time-machine-table.time-machine-table__light-mode .table-graph-cell__sort-desc{color:#00a3ff}.time-machine-sidebar.time-machine-sidebar__light{background-color:#fff;border-color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar--heading{background:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item{color:#68687b}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item>span.key,.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item>span.equals{color:rgba(104,104,123,.7)}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item>span.value{color:#68687b}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item:hover{background-color:#f1f1f3;color:#68687b}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item:hover>span.key,.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item:hover>span.equals{color:#68687b}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item:hover>span.value{color:#333346}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item.active{background-color:#d5d5dd;color:#333346}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item.active>span.key,.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item.active>span.equals{color:#333346}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item.active>span.value{color:#00a3ff}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input{background-color:#f1f1f3;color:#4d4d60;border-color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input::-webkit-input-placeholder{color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input::-moz-placeholder{color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input:-ms-input-placeholder{color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input:-moz-placeholder{color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input:focus{border-color:#00a3ff;background-color:#fff}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter:hover>input{background-color:#fff;border-color:#6bbcee}.time-machine-sidebar.time-machine-sidebar__light .cf-input.cf-input__focused.time-machine-sidebar--filter>.cf-input-icon{color:#00a3ff}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar--scroll .cf-dapper-scrollbars--track-y{background-color:#d5d5dd !important}.markdown-cell .cf-dapper-scrollbars--track-y{background-color:#07070e !important}.markdown-cell--contents{padding:12px 26px;font-size:1.2em}.markdown-format{color:#b9b9c5}.markdown-format p{font-size:var(--step-0);line-height:1.55em;font-weight:400}.markdown-format h3:not(.cf-heading){font-size:var(--step-3);font-weight:600;line-height:1.25em;border-bottom:2px solid #1a1a2a;padding-bottom:.25em}.markdown-format h4:not(.cf-heading){font-size:var(--step-2);font-weight:600;line-height:1.25em;border-bottom:2px solid #1a1a2a;padding-bottom:.25em}.markdown-format h5:not(.cf-heading){font-size:var(--step-1);font-weight:600;line-height:1.25em}.markdown-format strong{font-weight:900;color:#d5d5dd}.markdown-format table:not(.cf-table){border-collapse:collapse}.markdown-format td:not(.cf-table--cell),.markdown-format th:not(.cf-table--header-cell){padding:4px 8px;border:2px solid #333346}.markdown-format th:not(.cf-table--header-cell){background-color:#333346}.markdown-format code{border-radius:1px;margin:0;padding:2px 6px;color:#dd84f1;letter-spacing:0;font-weight:700;background-color:#07070e}.markdown-format pre{border-radius:1px;padding:6px;background-color:#07070e}.markdown-format pre code{padding:0}.markdown-format img{border-radius:2px;max-width:100%}.markdown-format>*:first-child{margin-top:0}.markdown-format>*:last-child{margin-bottom:0}.wizard-overlay{height:calc(100vh - 206px);width:100%;position:relative;display:inline-flex;flex-direction:column}.wizard-overlay>.wizard-contents{width:100%;min-width:100%;flex-grow:1;margin:0}.wizard--progress-bar{display:inline-flex;justify-content:center;align-items:center;align-self:center;width:100%;flex-shrink:0}.wizard--progress-icon{position:relative;font-size:0;height:0;width:0;border-radius:13px;background-color:#07070e;opacity:0;display:inline-flex;margin-right:0;flex-shrink:0;color:#4d4d60;transition:opacity .4s ease-in-out,width .4s ease-in-out,height .4s ease-in-out}.wizard--progress-icon>.icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.wizard--progress-icon.circle-thick{color:#4d4d60}.wizard--progress-icon.checkmark{color:#2fa74d}.wizard--progress-icon.current{color:#00a3ff}.wizard--progress-icon.remove{color:#f95f53}.wizard--progress-title{font-weight:700;color:#4d4d60;font-size:12px;transition:color .4s ease-in-out,font-size .4s ease-in-out}.wizard--progress-title.checkmark{color:#2fa74d}.wizard--progress-title.circle-thick{color:#4d4d60}.wizard--progress-title.current{color:#f1f1f3}.wizard--progress-title.remove{color:#f95f53}.wizard--progress-button{display:inline-flex;align-items:center;cursor:pointer;margin:0 4px;flex-shrink:1;text-align:center}.wizard--progress-button:hover .wizard--progress-title{color:#f1f1f3}.unclickable{cursor:default}.wizard--progress-connector{min-width:20px;width:100%;max-width:70px;margin:0 4px;height:2px;background-color:#4d4d60;position:relative;display:inline-block;border-radius:2px}.wizard--progress-connector:after{content:\\\"\\\\a\\\";position:absolute;background-color:#2fa74d;top:0;bottom:0;left:0;width:0;border-radius:2px;transition:all .5s}.wizard--progress-connector--none:after{width:0}.wizard--progress-connector--some:after{width:50%}.wizard--progress-connector--full:after{width:100%}@media screen and (min-width: 1080px){.wizard--progress-title{font-size:15px}.wizard--progress-button{flex-shrink:0}.wizard--progress-icon{font-size:12px;height:26px;width:26px;opacity:1;margin-right:8px}}.wizard--full-screen{position:relative;min-width:100%;min-height:100%;max-height:100%;padding:32px 64px;z-index:50;display:inline-flex;flex-direction:column;justify-content:space-between;align-items:center}.wizard--credits{font-size:13px;color:#828294;display:inline-flex;align-items:center}.wizard--credits span{margin:0 5px}.wizard--credits a{color:#828294;text-decoration:none}.wizard--credits a:hover,.wizard--credits a:active{color:#00a3ff}.wizard-overlay .wizard-contents{background-color:rgba(0,0,0,0);border-radius:0;margin:0}.wizard-overlay .wizard-step--container{background-color:rgba(0,0,0,0);border-radius:0;padding:0}.wizard-overlay .wizard-step--scroll-content{max-width:100%;justify-content:flex-start;min-height:0}.wizard-overlay .wizard-step--grid-container{width:90%}.wizard-overlay .wizard-step--scroll-area{border:0;border-radius:0}.wizard-overlay .responsive-grid-sizer{margin-top:32px}.wizard--progress-header{position:relative;background-color:#07070e;width:100%;height:60px;flex-shrink:0;padding:0 16px;display:inline-flex;justify-content:center;align-items:center;border-radius:4px;transition:height .4s ease-in-out}.wizard--progress-header.hidden{visibility:hidden}@media screen and (min-width: 750px){.wizard--progress-header{height:50px}}.zuora-outage-funnel-page .cf-funnel-page--content{display:flex;align-items:center;justify-content:center;flex-direction:column}.zuora-outage-funnel-page .cf-funnel-page--content>.zuora-outage-panel{margin:50px;font-size:large}.zuora-outage-panel{font-size:larger}.zuora-outage-panel>.zuora-outage-panel-body{text-align:left}.run-logs--list{width:100%;max-width:calc(100% - 60px) !important;height:100%}.run-logs--list-time{white-space:nowrap}.run-logs--list-message{white-space:pre-wrap;word-break:break-all}.run-logs--list-flux{position:relative;white-space:pre-wrap;word-break:break-all;width:100%;height:30vh}@supports(-moz-appearance: none){tr.run-log--list-row td{height:100%}}tr.run-log--list-row{height:30vh}.task-form{height:calc(100% - 32px);display:flex;align-items:stretch;background-color:#1a1a2a;border-radius:4px}.task-form--options{flex:1 0 140px;padding:32px;border-right:2px solid #4d4d60}.task-form--editor{position:relative;flex:6 0 0;border-radius:0 4px 4px 0}.task-form--form-label{height:30px;line-height:30px;font-size:13px;font-weight:600;color:#9e9ead;flex:1 0 60px;padding-left:11px}.bread-crumb-title{margin-right:10px}.pointer{cursor:pointer}.hidden-tasks-alert{font-size:13px;font-weight:600;margin-top:1px;width:100%;background-color:rgba(26,26,42,.5);text-align:center;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;color:#68687b;padding:8px;border-radius:4px;font-style:italic}.hidden-tasks-alert,.hidden-tasks-alert:hover{cursor:default}.task-header--cta{font-size:16px}.hidden-tasks-alert{font-size:13px;font-weight:600;margin-top:1px;width:100%;background-color:rgba(26,26,42,.5);text-align:center;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;color:#68687b;padding:8px;border-radius:4px;font-style:italic}.hidden-tasks-alert,.hidden-tasks-alert:hover{cursor:default}.task-header--cta{font-size:16px}.config-overlay{height:calc(100vh - 350px);width:100%;position:relative;display:inline-flex;flex-direction:column}.import-template-overlay,.import-template-overlay--empty{height:500px;display:flex}.import-template-overlay{align-items:stretch}.import-template-overlay--empty{background-color:#1a1a2a;border-radius:4px;align-content:center;align-items:center;justify-content:center}.community-templates-template-url{display:inline-block;margin-right:15px}.community-templates-template-url--feedback{margin-top:4px;font-weight:600;padding-left:24px}.community-templates-template-url--feedback__error{color:#ff8564}.community-templates-template-url--feedback__valid{color:#67d74e}.community-templates-installer{margin-top:16px}.community-templates--template-image{width:54px;height:54px}.community-templates--template-name{color:#fff}.community-templates--template-description{user-select:none;color:#bef0ff;margin:0;margin-top:8px}.community-templates--template-description strong{color:#fff;font-weight:700}.community-templates--item-description{color:#b9b9c5;margin:4px 0;line-height:1.125em}.community-templates--item-description:last-child{margin-bottom:0}.community-templates--item-description__blank{color:#68687b;font-style:italic}.community-templates--list-header{display:flex;align-items:center;padding:4px 0;transition:color .25s ease;color:#9e9ead}.community-templates--list-header:hover,.community-templates--list-group__expanded .community-templates--list-header{cursor:pointer;color:#f1f1f3}.community-templates--list-counter{margin-left:8px;opacity:.6}.community-templates--list-group-items{padding-left:32px}.community-templates--list-toggle{width:32px;height:32px;position:relative}.community-templates--list-toggle>.cf-icon{position:absolute;top:50%;left:50%;transition:transform .25s ease;transform:translate(-50%, -50%) rotate(0deg)}.community-templates--list-group__expanded .community-templates--list-toggle>.cf-icon{transform:translate(-50%, -50%) rotate(90deg)}.community-templates--resources-table{margin-left:1.4em}.community-templates--resources-table>tbody>tr>td{padding-right:8px;font-size:13px}.community-templates--resources-table-toggle{display:flex;align-items:center}.community-templates--resources-table-toggle:hover{cursor:pointer}.community-templates--resources-table-caret{margin-right:8px;transition:transform .25s ease}.community-templates--resources-table-caret__expanded{transform:rotate(90deg)}.community-templates--resources-table-toggle h6,.community-templates--resources-table-item{height:40px;line-height:40px}.community-templates--readme{padding-top:32px}.editor-shortcuts{width:250px}.editor-shortcuts h5{margin:8px 0 12px}.editor-shortcuts--body{font-size:14px;line-height:16px}.editor-shortcuts--body dt{padding-right:4px;font-weight:700;color:#f1f1f3;margin-top:8px}.editor-shortcuts--body dd{display:block}.flux-toolbar{display:flex;flex-direction:row;align-items:stretch;height:100%}.flux-toolbar--tabs{width:100%;display:flex;flex-direction:column;align-items:stretch;width:44px;flex:0 0 44px}.flux-toolbar--path{color:#828294;text-transform:uppercase;letter-spacing:.07em;border-radius:1px;border-bottom:2px solid #1a1a2a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;padding:8px 12px}.flux-toolbar--tab{border-radius:2px;flex:1 0 0;display:flex;justify-content:center;align-items:center;font-size:var(--step-0);line-height:var(--step-0);font-weight:600;background-color:#07070e;color:#68687b;margin-bottom:8px;transition:color .25s ease,background-color .25s ease;overflow:hidden}.flux-toolbar--tab:last-child{margin-bottom:0}.flux-toolbar--tab:hover{cursor:pointer;background-color:#11111c;color:#b9b9c5}.flux-toolbar--tab.flux-toolbar--tab__active{background-color:#1a1a2a;color:#d5d5dd}.flux-toolbar--tab-label{white-space:nowrap;transform:rotate(90deg)}.flux-toolbar--tab-contents{width:300px;background-color:#1a1a2a;flex:1 0 0;position:relative;border-radius:2px;overflow:hidden;margin-right:8px}.flux-toolbar--tab-contents .flux-toolbar{flex-direction:column;padding:8px 0}.flux-toolbar--search{padding:0 8px;display:flex;align-items:center;width:100%;height:56px}.flux-toolbar--scroll-area{height:calc(100% - 56px) !important}.flux-toolbar--list{width:100%;display:flex;flex-direction:column;align-items:stretch;flex-grow:1}.flux-toolbar--list-item,.flux-toolbar--heading{font-size:var(--step-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flux-toolbar--list-item{padding:24px 12px;height:33px;line-height:33px;font-family:\\\"Roboto Mono\\\",monospace;font-weight:700;transition:background-color .25s ease,color .25s ease;background-color:#1a1a2a;display:flex;align-items:center;justify-content:space-between}.flux-toolbar--list-item>code{font-size:var(--step-0);background-color:#07070e;border-radius:1px;padding:0 8px;height:33px;line-height:33px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background-color .25s ease,color .25s ease,text-shadow .25s ease}.flux-toolbar--list-item .flux-toolbar--injector{opacity:0;transition:opacity .25s ease,color .25s ease,box-shadow .25s ease}.flux-toolbar--list-item:hover{background-color:#1a1a2a}.flux-toolbar--list-item:hover>code{background-color:#07070e}.flux-toolbar--list-item:hover .flux-toolbar--injector{opacity:1}.flux-toolbar--list-item.flux-toolbar--new-style{cursor:pointer;background:none;font-weight:400;padding:8px 0}.flux-toolbar--list-item.flux-toolbar--new-style>code{color:#d5d5dd;background-color:none}.flux-toolbar--list-item.flux-toolbar--new-style:hover>code{background-color:#1a1a2a;color:#9394ff}.flux-toolbar--list-item.flux-toolbar--new-style:hover>code:after{content:\\\" +\\\"}.flux-toolbar--heading{padding:8px;padding-bottom:12px;font-weight:600;color:#d5d5dd;border-bottom:2px solid #333346;margin-bottom:4px}.flux-toolbar--variable>code{color:#67d74e}.flux-toolbar--variable:hover>code{color:#9bf445;text-shadow:0 0 4px #2fa74d}.flux-toolbar--function>code{color:#00c9ff}.flux-toolbar--function:hover>code{color:#6bdfff;text-shadow:0 0 4px #066fc5}.flux-toolbar--popover{font-size:13px;padding:20px}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.flux-function-docs{width:420px;height:330px}.flux-function-docs--heading{font-weight:700;margin-top:8px;margin-bottom:8px;display:inline-block;width:100%}article:first-child .flux-function-docs--heading{margin-top:0}.flux-function-docs--snippet{background-color:#07070e;border-radius:2px;margin:4px 0;padding:8px;font-family:\\\"Roboto Mono\\\",monospace}.flux-function-docs--arguments span:first-child{font-weight:700;color:#00a3ff;margin-right:4px}.flux-function-docs--arguments span:nth-child(2){color:#00a3ff;font-style:italic;margin-right:2px}.flux-function-docs--arguments span:nth-child(2).isRequired{color:#dc4e58}.flux-function-docs--arguments div{margin:4px 0 16px 0}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.time-machine-queries{width:100%;height:100%;display:inline-flex;flex-direction:column}.time-machine-queries--controls{display:flex;flex-direction:column;align-items:stretch;width:100%;background-color:#07070e;padding:4px;padding-bottom:0;border-radius:3px}.time-machine-queries--tabs{display:inline-flex;margin-right:8px;margin-bottom:4px;position:relative;flex:1 1 auto}.time-machine-queries--tabs::-webkit-scrollbar{height:0;width:0}.time-machine-queries--new{margin-left:2px}.time-machine-queries--buttons{display:inline-flex;flex:0 0 auto;flex-wrap:wrap}.time-machine-queries--buttons>*{margin-bottom:4px}.time-machine-queries--body{flex-grow:1;position:relative;height:100%}.time-machine-influxql-editor{position:absolute;top:0;right:0;bottom:0;left:0}.time-machine--editor-title{user-select:none;font-weight:500;padding-left:6px;color:#b9b9c5}.view-raw-data-toggle{display:flex;align-items:center;justify-content:space-between;margin-right:8px}.view-raw-data-toggle .cf-slide-toggle{margin-left:4px}@media screen and (min-width: 750px){.time-machine-queries--controls{flex-direction:row;align-items:center;justify-content:space-between;padding:4px}.time-machine-queries--tabs{margin-bottom:0}.time-machine-queries--buttons>*{margin-bottom:0}}span[data-testid=switch-query-builder-confirm--confirmation-label]{white-space:normal}.query-builder{position:absolute;top:0;right:0;left:0;bottom:0;padding-top:8px;display:flex;flex-direction:column;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.query-builder,.query-builder:hover{cursor:default}.query-builder--cards{flex:1 1 0;display:flex;justify-content:space-between}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.query-tab{background-color:#07070e;color:#828294;margin-right:2px;height:40px;border-radius:2px;display:inline-flex;flex:0 1 auto;justify-content:space-between;align-items:center;font-weight:600;padding:0 12px;font-size:var(--step-0);user-select:none;transition:background-color .25s ease,color .25s ease,opacity .25s ease}.query-tab .query-tab--hide{display:none;font-size:1.125em;margin-right:4px}.query-tab .query-tab--name{width:40px;margin-right:4px}.query-tab:hover{cursor:pointer;background-color:#1a1a2a;color:#d5d5dd}.query-tab__active{flex:0 0 auto;background:#1a1a2a;color:#d5d5dd}.query-tab__active .query-tab--hide{display:inline-flex}.query-tab__active .query-tab--name{width:auto}.query-tab--name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.query-tab--close,.query-tab--hide{color:rgba(213,213,221,.5);transition:color .25s ease}.query-tab--close:hover,.query-tab--hide:hover{color:#d5d5dd}.query-tab__hidden{font-style:italic;opacity:.5}.query-tab--timer{white-space:nowrap;flex:1 1 auto;font-weight:600;margin-right:8px;transition:opacity .25s;opacity:0}.query-tab--timer.query-tab--timer__visible{opacity:.5}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.selector-list--item{font-family:\\\"Roboto Mono\\\",monospace}.tag-selector--search{margin-top:4px;width:initial !important}.tag-selector--count{flex:0 0 30px;height:30px;background-color:#07070e;border-radius:50%;text-align:center;line-height:30px;font-weight:900;user-select:none;color:#00a3ff;font-size:13px}.time-machine{height:100%;flex:0 0 100%;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.time-machine,.time-machine:hover{cursor:default}.time-machine--split{flex:0 0 calc(100% - 420px)}.time-machine--top,.time-machine--bottom{border-radius:4px;width:100%;height:100%;position:absolute}.time-machine--top{position:relative;background-color:rgba(26,26,42,.5)}.time-machine--bottom{display:flex;flex-direction:column;align-items:center}.time-machine--bottom-contents{width:100%;flex:0 0 100%}.time-machine--view{width:100%;height:100%;position:absolute;padding:16px}.time-machine--view__empty{background-position:center center;background-size:contain;background-repeat:no-repeat;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \")}.time-machine--view__empty>.cell--view-empty{justify-content:flex-end}.flux-editor{position:absolute;top:8px;right:0;bottom:0;left:0;display:flex;flex-direction:row;align-items:stretch}.flux-editor--left-panel{flex:1 0 0;position:relative;border-radius:2px}.flux-editor--right-panel{margin-left:8px;display:flex}.qx-editor--monaco,.time-machine-editor--embedded{position:absolute;width:100%;height:100%}.qx-editor--monaco.qx-editor--monaco__autogrow,.qx-editor--monaco__autogrow.time-machine-editor--embedded{position:initial;top:initial;left:initial;width:initial;height:initial}.time-machine-editor--embedded{border-radius:2px;border:2px solid #333346;overflow:hidden}.time-machine-editor--loading{width:100%;height:100%;position:relative;background:#292933}.time-machine-editor--loading:after{content:\\\"\\\";position:absolute;background:#202028;top:8px;bottom:8px;left:24px;right:8px}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.view-options--wrap{flex:0 0 412px;height:100%;background-color:#1a1a2a;margin-right:8px;border-radius:4px}.view-options{padding:32px}.view-options>.cf-grid--container>.cf-grid--row>.cf-grid--column{width:100% !important}.view-options-container h5:first-child{margin-top:0}.view-options--header{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;font-weight:500;color:#9e9ead}.view-options--header,.view-options--header:hover{cursor:default}h4.view-options--header{font-size:16px;padding-top:16px;border-top:2px solid #333346;margin-top:8px;margin-bottom:16px}*:first-child>h4.view-options--header{margin-top:0;padding-top:0;border-top:0}h5.view-options--header{font-size:14px;border-bottom:2px solid #333346;margin-bottom:16px;padding-bottom:4px}.view-options--checkbox{margin-bottom:16px}.column-option{font-family:\\\"Roboto Mono\\\",monospace;font-size:11px}.builder-card--list{display:flex;flex:1 1 0;flex-wrap:nowrap;position:absolute;height:100%}.builder-card--list>*{margin-left:4px;margin-right:4px}.builder-card--list>*:first-child{margin-left:0}.builder-card--list>*:last-child{margin-right:0}.builder-card{border-radius:4px;background-color:#1a1a2a;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;position:relative}.builder-card--header{flex:0 0 32px;background-color:#1a1a2a;display:flex;align-items:center;justify-content:space-between}.builder-card--title{display:inline-block;margin:0 10px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:0;color:#9e9ead}.builder-card--delete{flex:0 0 32px;height:32px;position:relative}.builder-card--delete:before,.builder-card--delete:after{content:\\\"\\\";position:absolute;top:50%;left:50%;width:14px;height:2px;border-radius:1px;background-color:#68687b;transition:background-color .25s ease}.builder-card--delete:before{transform:translate(-50%, -50%) rotate(45deg)}.builder-card--delete:after{transform:translate(-50%, -50%) rotate(-45deg)}.builder-card--delete:hover{cursor:pointer}.builder-card--delete:hover:before,.builder-card--delete:hover:after{background-color:#ff8564}.builder-card--hamburger{flex:0 0 16px;height:2px;border-radius:1px;background-color:#4d4d60;margin-left:10px;position:relative;transition:background-color .25s ease}.builder-card--hamburger:before,.builder-card--hamburger:after{content:\\\"\\\";position:absolute;top:0;width:100%;height:100%;background-color:#4d4d60;border-radius:1px;transition:background-color .25s ease}.builder-card--hamburger:before{transform:translateY(-200%)}.builder-card--hamburger:after{transform:translateY(200%)}.builder-card--draggable{display:flex;align-items:center;height:32px;flex:1 0 0}.builder-card--draggable .builder-card--title{margin-left:8px;transition:color .25s ease}.builder-card--draggable:hover{cursor:grab}.builder-card--draggable:hover .builder-card--title{color:#d5d5dd}.builder-card--draggable:hover .builder-card--hamburger,.builder-card--draggable:hover .builder-card--hamburger:before,.builder-card--draggable:hover .builder-card--hamburger:after{background-color:#d5d5dd}.aggregation-selector{border-left:2px solid #07070e}.builder-card--menu{border-bottom:2px solid #333346;padding:8px}.builder-card--menu.aggregation-selector-menu{padding:12px 8px}.builder-card--body{flex:1 1 0;overflow:hidden}.builder-card--body.aggregation-selector-body{flex:unset;padding:12px 8px 24px 8px;overflow:visible}.builder-card--empty{display:flex;flex-direction:column;text-align:center;align-items:center;justify-content:center;align-content:center;color:#68687b}.builder-card--empty>*{margin:4px 0}.builder-card--contents{padding:8px}.builder-card--list>.query-builder--add-card-button{height:100%;background-color:#1a1a2a;border-color:#1a1a2a;flex-grow:0;flex-shrink:0}.cf-input-label.fill-values-checkbox--label{color:#9e9ead}.duration-input{position:relative;width:100%}.duration-input--menu{position:absolute;top:100%;left:0;right:0;background:#1a1a2a;z-index:100}.usage--billing-header.cf-panel--header{justify-content:flex-start}.usage--panel .panel--body{position:relative}.billing-stats--panel{margin-bottom:16px !important}.billing-stats--panel .cf-panel{margin-bottom:4px}@media screen and (min-width: 1080px){.billing-stats--panel .cf-panel{margin-bottom:0}}.usage-tooltip{margin-left:8px}.billing-stats--graph-body{min-height:120px}.panel-body--size{position:relative;min-height:75px}.user-list-invite--form-panel{margin-bottom:36px;padding-bottom:0px}.user-list-invite--form-panel .user-list-invite--form-heading{color:#bef0ff;font-size:var(--step-3);font-weight:700;margin-bottom:0px;padding-bottom:0px}.user-list-invite--form{display:inline-flex;flex-direction:row;justify-content:flex-start;align-items:flex-end}.user-list-invite--form .element{margin-right:8px;flex-basis:150px}.user-list-invite--form .element label{color:#bef0ff}.user-list-invite--form .email--input{flex-grow:1;max-width:450px}.user-list-invite--instructions{font-weight:500 !important;margin-bottom:12px !important}.user-role--dropdown--button,.user-role--dropdown-item,.user-role--dropdown-item,.user-list-cell-role,.user-list-cell-role,.user-list-cell-status{text-transform:capitalize}.user-list-email{font-weight:bold}.overlay-flux-editor{position:relative;height:300px}.overlay-flux-editor--spacing{margin-bottom:16px}.variable-dropdown{display:flex;flex-direction:row;align-items:center;border-radius:2px;background-color:#333346;margin-right:2px;margin-top:6px}.variable-dropdown .select__input-container{color:#fff}.variable-dropdown__dragging{border-color:#ce58eb;box-shadow:0 0 4px 1px #8e1fc3}.variable-dropdown__dragging+.variable-dropdown{pointer-events:none}.variable-dropdown--label{user-select:none;line-height:30px;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;background-attachment:fixed;display:flex}.variable-dropdown--label>span{display:inline-block;padding:0 9px;padding-left:7px;color:#ce58eb;transition:color .25s ease}.variable-dropdown__dragging .variable-dropdown--label>span{color:#ebadf8}.variable-dropdown--drag{display:inline-block;width:20px;height:30px;position:relative;opacity:1}.variable-dropdown--drag .hamburger{width:10px;height:2px;border-radius:1px;position:absolute;top:50%;right:0;background-color:#be2ee4;transition:background-color .25s ease;transform:translate(0, -50%)}.variable-dropdown--drag .hamburger:before,.variable-dropdown--drag .hamburger:after{content:\\\"\\\";position:absolute;display:block;width:100%;height:100%;background-color:#be2ee4;transition:background-color .25s ease;border-radius:1px;left:0}.variable-dropdown--drag .hamburger:before{top:-4px}.variable-dropdown--drag .hamburger:after{top:4px}.variable-dropdown--drag:hover .hamburger,.variable-dropdown--drag:hover .hamburger:before,.variable-dropdown--drag:hover .hamburger:after{background-color:#ebadf8}.variable-dropdown__dragging .variable-dropdown--drag .hamburger,.variable-dropdown__dragging .variable-dropdown--drag .hamburger:before,.variable-dropdown__dragging .variable-dropdown--drag .hamburger:after{background-color:#ebadf8}.variable-dropdown--item{font-family:\\\"Roboto Mono\\\",monospace}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.view-type-dropdown .cf-dropdown-item--children,.view-type-dropdown .cf-dropdown--selected{display:flex;align-items:center}.view-type-dropdown .cf-dropdown--selected .view-type-dropdown--name{margin-left:8px}.view-type-dropdown .cf-dropdown--selected .view-type-dropdown--graphic{width:20px;height:20px}.view-type-dropdown--name{margin-left:10px}.view-type-dropdown--graphic{width:40px;height:40px}.vis-graphic--line{stroke-width:1px;fill:none;stroke-linecap:round;stroke-miterlimit:10}.vis-graphic--line-a{stroke:#9e9ead}.vis-graphic--line-b{stroke:#68687b}.vis-graphic--line-c{stroke:#4d4d60}.vis-graphic--line-d{stroke:#b9b9c5}.vis-graphic--line-e{stroke:#67d74e;stroke-width:4px}.vis-graphic--fill-a{fill:#9e9ead}.vis-graphic--fill-b{fill:#68687b}.vis-graphic--fill-c{fill:#4d4d60}.vis-graphic--fill-d{fill:#b9b9c5;opacity:1}.vis-graphic--line-a{stroke:#00c9ff}.vis-graphic--line-b{stroke:#ce58eb}.vis-graphic--line-c{stroke:#67d74e}.vis-graphic--line-d{stroke:#f1f1f3}.vis-graphic--fill-a{fill:#00c9ff}.vis-graphic--fill-b{fill:#ce58eb}.vis-graphic--fill-c{fill:#67d74e}.vis-graphic--fill-e{fill:#67d74e;opacity:.3}.vis-graphic--fill-a,.vis-graphic--fill-b,.vis-graphic--fill-c{opacity:.8}.vis-graphic--fill-d{fill:#f1f1f3;opacity:1}.color-scheme-dropdown-item{display:flex;justify-content:flex-start;align-items:center}.color-scheme-dropdown-item--swatches{width:90px;height:8px;border-radius:4px;margin-right:10px}.value-tick-input--custom{padding-top:8px}.view-options--band-column-dropdown-error{margin:4px;color:#dc4e58}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.plugin-create-configuration-name-row,.plugin-create-configuration-description-row{display:flex;align-items:flex-end}.plugin-create-configuration-copy-to-clipboard--button,.plugin-create-configuration-download--button{margin-bottom:8px}.plugin-create-configuration-customize-editor,.plugin-edit-configuration--editor{margin-top:8px;height:55vh;width:100%;position:relative;display:inline-flex;flex-direction:column}.plugin-create-configuration--agent-notification{font-weight:900;font-size:var(--step-2);color:#ff4d96}.plugin-create-configuration--popover-contents{font-size:var(--step--1)}.csv-upload--button{margin:10px;min-width:100px}.write-data--uploader-wrapper{margin:1em 0}.cf-resource-card{margin-bottom:2px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/style/chronograf.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@import'../../node_modules/@influxdata/react-custom-scrollbars/dist/styles.css';.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.cancellation-reasons-form{margin:10px 0;width:100%}.cancellation-reasons-form>.cf-form--element{padding:5px 0}.cancellation-reasons-form>.cf-form--element>.improvement-suggestions-input{height:120px}.alert-history-page .cf-page-contents.full-height .cf-page-contents--padding{width:100%;height:100%;padding:0 54px 54px 54px}.alert-history{width:100%;height:100%;padding-top:16px;overflow:hidden}.alerting-index .cf-page-contents__fluid{display:flex;flex-direction:column;align-items:stretch}.alerting-index--selector{width:100%;margin-bottom:8px}.alerting-index--columns{display:flex;align-items:stretch;flex:1 0 0}.alerting-index--column{display:none;flex-direction:column;flex:1 0 0;overflow:hidden;margin-bottom:16px}.alerting-index__checks .alerting-index--checks,.alerting-index__endpoints .alerting-index--notification-endpoints,.alerting-index__rules .alerting-index--notification-rules{display:flex}.alerting-index--column-body{flex:1 0 0}.alerting-index--list,.alerting-index--search{padding:24px 0;padding-top:0}.alert-header--cta{font-size:16px}.alert-header--cta span{margin-right:4px}.alerting-first-time{border:2px solid #0b3a8d}.alerting-first-time h1,.alerting-first-time h5{user-select:none;color:#bef0ff}.alerting-first-time h1{letter-spacing:0;margin-top:0}.alerting-first-time h5{line-height:1.5em;font-weight:500;margin-bottom:.25em}.alerting-first-time h5 strong{font-weight:900;color:#fff}.alerting-first-time .cf-button{margin-bottom:16px;margin-right:8px}.query-checklist--popover{width:300px;padding:16px;user-select:none}.query-checklist--popover p,.query-checklist--popover li{font-size:14px;line-height:1.5em;font-weight:500;color:#d5d5dd}.query-checklist--popover p{margin-top:0}.query-checklist--list{margin-bottom:0;padding:0}.query-checklist--item{margin:0;padding-left:0;list-style:none}.query-checklist--item .cf-icon{display:inline-block;margin-right:5px;width:16px}.query-checklist--item.error{color:#ff8564}.query-checklist--item.valid{color:#2fa74d}.level-table-field{font-weight:600}.level-table-field--crit{color:#dc4e58}.level-table-field--warn{color:#f48d38}.level-table-field--ok{color:#2fa74d}.level-table-field--info{color:#00a3ff}.level-table-field--unknown{color:#8e1fc3}.status-search-bar{position:relative;width:100%}.status-search-bar--suggestions{position:absolute;top:100%;left:0;right:0;background:#1a1a2a;z-index:100}.status-search-bar--clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:100;display:flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:10px;color:#9e9ead;border-radius:2px;background:#1a1a2a;cursor:pointer}.status-search-bar--clear:hover{background:#333346}.sent-table-field--sent{color:#009f5f}.sent-table-field--not-sent{color:#f48d38}.alert-builder{height:100%;padding-top:8px;display:flex}.alert-builder--card{margin-right:8px}.alert-builder--card:last-child{margin-right:0}.alert-builder--card .builder-card--contents{min-height:100%;padding:16px}.alert-builder--card .builder-card--header{justify-content:center}.alert-builder--card.alert-builder--meta-card{flex:1 0 140px !important}.alert-builder--card.alert-builder--message-card{flex:3 0 140px !important}.alert-builder--card.alert-builder--conditions-card{flex:2 0 200px !important}@media screen and (min-width: 1080px){.alert-builder--card.alert-builder--meta-card{flex:1 0 280px !important}.alert-builder--card.alert-builder--message-card{flex:3 0 320px !important}.alert-builder--card.alert-builder--conditions-card{flex:2 0 320px !important}}.cf-empty-state.alert-builder--card__empty{padding:32px;height:100%;justify-content:center}.alert-builder--message-template textarea{height:120px}.alert-builder--message-template.cf-text-area--container.cf-input-md{height:auto}.alert-builder--message-template.cf-text-area--container.cf-input-md textarea{height:120px;font-family:\\\"Roboto Mono\\\",monospace}.alert-builder--message-help{padding:0 16px}.alert-builder--message-help p{font-size:13px;font-weight:500}.alert-builder--message-help code{background-color:#07070e;color:#dd84f1;padding:2px 4px;border-radius:3px;user-select:text}.alert-builder--check-type-selector{margin-bottom:16px}.alert-builder--tag-row{margin-bottom:8px}.main-flexbox-child{width:100%}.flex-box-label{text-align:\\\"start\\\";margin:5px 0px}.flexbox-child-label-read{align-items:\\\"left\\\";margin-left:20px}.flexbox-child-label-write{align-items:\\\"left\\\";margin-left:20px}.input-label-read{margin-left:15px}.input-label-write{margin-right:50px}.resource-accordion-body{padding-top:10px;padding-bottom:10px;font-weight:bold}.resource-accordion-error{justify-content:center;color:gray}.overlay-header{text-align:center}.overlay-footer{display:grid;justify-content:center}.org-limit{margin:0 0 16px;position:relative}.org-limit--stat{text-align:right;font-size:var(--step-4);font-weight:500;color:#f1f1f3}.cf-grid--container .credit-250-conversion-panel{margin-top:32px;padding-bottom:64px}.cf-grid--container .credit-250-conversion-panel .credit-250-conversion-panel--message{margin-top:var(--step-1)}.cf-grid--container .credit-250-conversion-panel .credit-250-conversion-panel--header{margin-top:8px;margin-bottom:8px}.cf-grid--container .credit-250-conversion-panel .credit-250-conversion-upgrade--button{margin-top:32px}.conversion-panel--list{-webkit-columns:2 250px;-moz-columns:2 250px;columns:2 250px;margin:var(--step-1) 0}.conversion-panel--benefits,.credit-250-conversion-panel--benefits{list-style:none;margin:0}.conversion-panel--benefits>li,.credit-250-conversion-panel--benefits>li{font-size:var(--step-1);padding-left:32px;position:relative;margin:0;margin-bottom:16px}.conversion-panel--benefits>li:before,.credit-250-conversion-panel--benefits>li:before{content:\\\"\\\";position:absolute;left:0;border-radius:50%}.credit-250-conversion-panel--benefits>li:before{width:var(--step--1);height:var(--step--1);background-color:#fff;top:calc(var(--step--1)*.5)}.conversion-panel--benefits>li:before{width:var(--step-1);height:var(--step-1);background-color:#00a3ff}p.conversion-panel--final-p{font-size:var(--step-3);text-align:center;margin-bottom:0}.billing-form--frame{position:relative}.billing--contact-info,.billing--contact-info *{color:#d5d5dd;height:30px;padding:8px 11px;font-size:12px;font-weight:600}.billing-contact--alert{margin-bottom:16px}.payment-method-panel strong{color:#00c9ff;margin-bottom:32px}.billing-notification p{display:inline;text-align:left;justify-content:left}.billing-notification button{text-align:right;float:right;justify-content:right}.list-item{margin-bottom:4px;padding:16px 24px 16px 16px;background-color:#1a1a2a;border-radius:2px;width:100%}.list-item .invoice-details{text-align:right}.list-item:hover{background-color:#333346}.invoice-status{width:80px}.invoice-status.paid{color:#2fa74d}.invoice-headers{justify-content:space-between}.invoice-headers .invoice-header{text-align:right}.invoice-headers .invoice-header:first-of-type{margin-left:0;text-align:left}.service-cancellation-reasons-form{margin:10px 0;width:100%}.service-cancellation-reasons-form>.cf-form--element{padding:5px 0}.service-cancellation-reasons-form>.cf-form--element>.improvement-suggestions-input{height:120px}.plan-type-panel .cf-panel--body.cf-flex-box__column{flex-direction:column}.plan-type-panel .plan-type-panel--detail{flex-grow:1;flex-basis:100%;margin-bottom:4px}.plan-type-panel .plan-type-panel--detail:last-child{margin-bottom:0}.plan-type-panel .plan-type-panel--detail .cf-panel--body{font-weight:500;font-size:var(--step-1);line-height:var(--step-1)}.plan-type-panel .plan-type-panel--detail .cf-panel--body span.money{color:#2fa74d;font-weight:700}.plan-type-panel .plan-type-panel--detail .billing--update-frequency{font-size:var(--step--1);text-align:right;color:#68687b}.cf-heading.section-header{width:100%;font-size:var(--step-5);margin:32px 0;text-align:center;display:flex;flex-direction:column;align-items:center}.cf-heading.section-header small{letter-spacing:0;font-size:19px;margin:0;margin-top:10px;font-weight:500}@media screen and (min-width: 750px){.plan-type-panel .cf-panel--body.cf-flex-box__column{flex-direction:row}.plan-type-panel .cf-grid--row{display:inline-flex}.plan-type-panel .plan-type-panel--detail{flex-grow:1;margin-bottom:0;margin-right:16px}.plan-type-panel .plan-type-panel--detail:last-child{margin-bottom:0;margin-right:0}.plan-type-panel .usage--plot{min-height:250px}.plan-type-panel .usage--plot::after{content:\\\"\\\";display:block;width:100%;padding-top:38%}.plan-type-panel .graph-type--panel{flex-grow:1;margin-bottom:0;margin-right:16px;margin-top:0}.plan-type-panel .graph-type--panel:last-child{margin-bottom:0;margin-right:0}}.cancellation-overlay .cancellation-overlay--content{margin-top:16px}.agree-terms-input{width:33px !important}.bucket-add-data{display:flex;flex-direction:column;align-items:stretch}.bucket-add-data--option{border-radius:4px;background-color:#1a1a2a;margin-bottom:4px;padding:16px;transition:background-color .25s ease}.bucket-add-data--option-header,.bucket-add-data--option-desc{transition:color .25s ease;user-select:none}.bucket-add-data--option-header{font-size:14px;font-weight:600;margin-bottom:12px;color:#b9b9c5}.bucket-add-data--option-desc{font-size:13px;font-weight:500;color:#9e9ead}.bucket-add-data--option:hover{cursor:pointer;background-color:#333346}.bucket-add-data--option:hover .bucket-add-data--option-header{color:#f1f1f3}.bucket-add-data--option:hover .bucket-add-data--option-desc{color:#b9b9c5}.system-bucket{color:#90c88a}.copy-bucket-id{transition:color .25s ease}.copy-bucket-id:hover{cursor:pointer;color:#00a3ff}.copy-bucket-id--helper{color:#b9b9c5;transition:opacity .25s ease;opacity:0;display:inline-block;margin-left:8px}.copy-bucket-id:hover .copy-bucket-id--helper{opacity:1}.no-buckets-warning{margin-bottom:16px}.retention--radio{margin-bottom:8px}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.dnd-container{display:flex;align-items:center}.dnd-container .dnd{border:2px dashed gray;border-radius:3px}.dnd-container .dnd.hasError{border-color:#dc4e58;color:#dc4e58}.dnd-container .dnd input[type=file].drag-and-drop--input{display:none}.dnd-container .dnd .display-area{min-width:150px;padding:10px;text-align:center}.dnd-container .dnd .display-area.active{color:#000}.dnd-container .dnd.active{background:#d3d3d3}.schema-section .option{margin-bottom:6px !important}.measurement-section .option:nth-child(3){margin-left:10px}.schema-section.measurement,.measurement-section.measurement{margin-top:15px}.schema-section .schema-name-input,.measurement-section .schema-name-input{margin-right:10px;width:205px !important}.schema-section .file-name-read-only,.measurement-section .file-name-read-only{width:100%;height:40px;font-size:small;padding-top:12px}.schema-section .add-schema-uploader.drag-and-drop,.measurement-section .add-schema-uploader.drag-and-drop{height:40px;border-color:#d3d3d3;width:155px}.schema-section .add-schema-uploader.drag-and-drop.has-file,.measurement-section .add-schema-uploader.drag-and-drop.has-file{border:none}.schema-section .add-schema-uploader.drag-and-drop .drag-and-drop--header,.measurement-section .add-schema-uploader.drag-and-drop .drag-and-drop--header{font-size:small;padding-top:12px;color:#d3d3d3}.schema-section .header,.measurement-section .header{margin-bottom:10px}.schema-section .header .subtext,.measurement-section .header .subtext{margin-top:6px;font-weight:300}.schema-section .title-text,.measurement-section .title-text{color:#b9b9c5;font-weight:500}.schema-section .value-text,.measurement-section .value-text{color:#fff;font-weight:500;margin-top:8px}.schema-section .measurement-schema-panel-container,.measurement-section .measurement-schema-panel-container{width:100%;padding-left:8px;border-radius:10px}.schema-section .measurement-schema-panel-container .measurement-schema-panel,.measurement-section .measurement-schema-panel-container .measurement-schema-panel{width:100%;margin-right:5px;margin-left:5px}.schema-section .measurement-schema-panel-container .measurement-schema-panel .download-button,.measurement-section .measurement-schema-panel-container .measurement-schema-panel .download-button{margin-right:9px}.schema-section .measurement-schema-panel-container .measurement-schema-panel .schema-row,.measurement-section .measurement-schema-panel-container .measurement-schema-panel .schema-row{justify-content:space-between;width:93%;margin-bottom:8px}.schema-section .measurement-schema-panel-container .measurement-schema-panel .schema-row.hasCancelBtn,.measurement-section .measurement-schema-panel-container .measurement-schema-panel .schema-row.hasCancelBtn{width:98%}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.cf-funnel-page--footer .cf-cta-button{margin:16px 0}.powered-by-payment-header{width:100%}.billing-form--frame{position:relative}.v2-zuora-form{min-height:226px}.checkout--panel{overflow:hidden;max-height:140px}.checkout-credit-250--banner{font-size:18px;display:flex;flex-direction:row;justify-content:center}.checkout-credit-250--banner-icon{padding-top:1px}.checkout-credit-250--banner-message{margin-left:8px}.checkout-form--banner{background:linear-gradient(45deg, rgb(52, 187, 85) 0%, rgb(0, 163, 255) 100%);box-sizing:border-box;position:absolute;top:0px;right:35px;width:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#000;transform:translate(50%) rotate(45deg);transform-origin:center;padding-right:15px}.checkout-form--banner p{margin:8px 0px}.checkout-form--banner .checkout-banner--credit{margin-top:8px;color:#000}#zuora_payment>iframe{background-color:rgba(0,0,0,0);width:100%}@media screen and (max-width: 1080px){.checkout-form--banner{position:relative;height:auto;display:flex;rotate:0deg;bottom:0;top:0;left:0;flex-direction:row;width:100%;transform:translate(0%) rotate(0deg);border-radius:8px}.checkout-form--banner .checkout-banner--credit{margin-top:0px;padding-right:8px}.checkout--panel{height:auto;max-height:none}}.cf-funnel-page--title.checkout-header{margin-top:0;padding:32px 0}.v2-zuora-form iframe{min-height:226px}.logo-with-cubo{display:flex}.logo-with-cubo>.cubo-logo{font-size:var(--step-4);padding-right:8px;color:#fff;line-height:1.5}.logo-with-cubo>.influx-cloud-logo{width:150px;height:50px;display:flex}.powered-by-stripe-logo .white-fill{fill:#fff}.checkout-overlay--title{color:#d5d5dd;font-size:18px;font-weight:500;margin-bottom:8px;text-align:center;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.checkout-overlay--title,.checkout-overlay--title:hover{cursor:default}.checkout-overlay--sub-title{color:#d5d5dd;font-size:14px;font-weight:400;margin-top:8px;margin-bottom:32px;text-align:center;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.checkout-overlay--sub-title,.checkout-overlay--sub-title:hover{cursor:default}.checkout-overlay--view__empty{background-image:url(\\\"~assets/images/checkout-overlay--success.svg\\\");background-position:center center;background-repeat:no-repeat;background-size:cover;height:230px;margin:16px 0}.alert-history-contents{display:flex;flex-direction:column;height:100%;width:100%}.alert-history-contents .time-series-container{background-color:#07070e;border-radius:2px}.rate-limit-overlay .rate-limit-overlay--content{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center}.rate-limit-overlay .rate-limit-overlay--content .rate-limit-overlay--image{background-position:center center;background-size:contain;background-repeat:no-repeat;background-image:url(\\\"../../assets/images/plugin-simple.svg\\\");flex-shrink:0;width:247px;height:260px}.rate-limit-overlay h4{margin:8px 0}.rate-limit-overlay .rate-alert--request-increase{color:#00a3ff;font-weight:700;cursor:pointer}.rate-limit-overlay .rate-alert--request-increase:hover,.rate-limit-overlay .rate-alert--request-increase:focus{color:#00c9ff;transition:color .25s ease}.rate-limit-overlay .rate-alert-form-details{height:400px}.rate-limit-overlay .rate-alert--request-increase-button{display:inline-block}@media screen and (min-width: 750px){.rate-limit-overlay .rate-limit-overlay--content{flex-direction:row-reverse;align-items:center;justify-content:space-around;text-align:left}.rate-limit-overlay .rate-limit-overlay--content .rate-limit-overlay--image{width:40%}.rate-limit-overlay form{width:60%}}.dataless-empty-state--docs-link{font-weight:500}.dataless-empty-state--image{background-position:center center;background-size:contain;background-repeat:no-repeat;background-image:url(\\\"../../assets/images/plan-graphic--free.svg\\\");margin-bottom:16px;width:270px;height:200px}.clockface--app-wrapper.dashboard-light-mode{background-color:#f1f1f3;color:#68687b}.clockface--app-wrapper.dashboard-light-mode .cf-page-contents>.cf-dapper-scrollbars--track-y{background-color:#d5d5dd !important}.clockface--app-wrapper.dashboard-light-mode .cf-page--sub-title{color:#b9b9c5}.clockface--app-wrapper.dashboard-light-mode .cell{background-color:#fff}.clockface--app-wrapper.dashboard-light-mode .cell--dot-grid,.clockface--app-wrapper.dashboard-light-mode .cell--dot-grid:before,.clockface--app-wrapper.dashboard-light-mode .cell--dot-grid:after{background-color:#b9b9c5}.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--dot-grid,.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--dot-grid:before,.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--dot-grid:after{background-color:#68687b}.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--draggable:hover .cell--dot-grid,.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--draggable:hover .cell--dot-grid:before,.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--draggable:hover .cell--dot-grid:after{background-color:#00a3ff}.clockface--app-wrapper.dashboard-light-mode .cell--context{color:#b9b9c5}.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--context{color:#68687b}.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--context:hover,.clockface--app-wrapper.dashboard-light-mode .cell .cell--context.cell--context__active,.clockface--app-wrapper.dashboard-light-mode .cell:hover .cell--context.cell--context__active{color:#00a3ff}.clockface--app-wrapper.dashboard-light-mode .cell--note-indicator{color:#b9b9c5}.clockface--app-wrapper.dashboard-light-mode .cell--note-indicator.cell--note-indicator__active,.clockface--app-wrapper.dashboard-light-mode .cell--note-indicator:hover,.cell:hover .clockface--app-wrapper.dashboard-light-mode .cell--note-indicator:hover{color:#00a3ff}.clockface--app-wrapper.dashboard-light-mode .markdown-format{color:#4d4d60}.clockface--app-wrapper.dashboard-light-mode .markdown-format strong{color:#333346}.clockface--app-wrapper.dashboard-light-mode .markdown-format code{background-color:#f1f1f3;color:#be2ee4}.clockface--app-wrapper.dashboard-light-mode .markdown-format pre{background-color:#f1f1f3}.clockface--app-wrapper.dashboard-light-mode .markdown-cell .cf-dapper-scrollbars--track-y{background-color:#f1f1f3 !important}.clockface--app-wrapper.dashboard-light-mode .cell--view-empty{color:#9e9ead}.clockface--app-wrapper.dashboard-light-mode .variables-control-bar--empty,.clockface--app-wrapper.dashboard-light-mode .variables-control-bar--full{background-color:#fff}.clockface--app-wrapper.dashboard-light-mode .react-resizable-handle{border-right-color:#b9b9c5;border-bottom-color:#b9b9c5}.clockface--app-wrapper.dashboard-light-mode .react-resizable-handle:before,.clockface--app-wrapper.dashboard-light-mode .react-resizable-handle:after{background-color:#fff}.clockface--app-wrapper.dashboard-light-mode .react-resizable-handle:hover{border-right-color:#ce58eb;border-bottom-color:#ce58eb}.clockface--app-wrapper.dashboard-light-mode .react-grid-item.resizing .react-resizable-handle,.clockface--app-wrapper.dashboard-light-mode .react-grid-item.react-draggable-dragging .react-resizable-handle{opacity:1;border-right-color:#ce58eb;border-bottom-color:#ce58eb}.dashboards-index__page-contents .cf-dapper-scrollbars--content{height:100% !important}.dashboards-index__page-contents .cf-page-contents__fixed{height:100%}.dashboards-index__page-contents .cf-resource-list{height:100%}.dashboards-card-grid{padding-bottom:32px;display:grid;grid-template-columns:minmax(100%, 1fr);grid-auto-rows:min-content;grid-column-gap:4px;grid-row-gap:4px;height:100%;width:100%}.dashboards-card-grid .cf-resource-card{display:flex;margin-bottom:0}.dashboards-card-grid .cf-resource-card--contents{position:relative}.dashboards-card-grid .cf-resource-editable-name{max-width:80%}.dashboards-card-grid .cf-resource-editable-name .cf-resource-name--text{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dashboards-card-grid .cf-resource-editable-name__editing .cf-resource-name--text{display:none !important}.dashboards-card-grid .cf-resource-description,.dashboards-card-grid .cf-resource-description--preview,.dashboards-card-grid #text{max-width:496px;overflow:hidden}@media screen and (min-width: 750px){.dashboards-card-grid{grid-template-columns:minmax(calc(50% - 4px), 1fr) minmax(calc(50% - 4px), 1fr)}}@media screen and (min-width: 1080px){.dashboards-card-grid{grid-template-columns:minmax(calc(33.3333% - 4px), 1fr) minmax(calc(33.3333% - 4px), 1fr) minmax(calc(33.3333% - 4px), 1fr)}}@media screen and (min-width: 1500px){.dashboards-card-grid{grid-template-columns:minmax(calc(25% - 4px), 1fr) minmax(calc(25% - 4px), 1fr) minmax(calc(25% - 4px), 1fr) minmax(calc(25% - 4px), 1fr)}}.note-editor{display:flex;flex-direction:column}.note-editor--body{flex:1 1 40vh;position:relative;display:flex;align-items:stretch}.note-editor--editor,.note-editor--preview{position:absolute;width:calc(50% - 4px);height:100%}.note-editor--editor{left:0}.note-editor--editor .markdown-editor--monaco{height:100%}.note-editor--preview{right:0;background-color:#1a1a2a;border-width:2px;border-style:solid;border-radius:4px;border-color:#1a1a2a}.note-editor--preview-scroll{position:absolute !important}.note-editor--markdown-container{padding:16px}.note-editor--controls{margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.note-editor--radio{width:220px}.note-editor--helper{font-size:13px;font-weight:600;color:#9e9ead}.veo{width:calc(100vw - 64px);height:calc(100vh - 32px);margin:0 auto;display:flex;flex-direction:column;align-items:stretch;border-radius:0 0 2px 2px;background-color:#07070e}.veo .cf-page-header--fluid,.veo .veo-contents{padding-left:32px;padding-right:32px}.veo-contents{display:flex;align-items:stretch;width:100%;flex:1 0 0;padding-left:32px;padding-right:32px;padding-bottom:16px}.veo-overlay .overlay--transition{height:100%}.dashboard-empty{position:absolute;top:0;left:0;height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.dashboard-empty--graphic{display:inline-flex;position:relative;width:50%;max-width:720px}.dashboard-empty--graphic:after{content:\\\"\\\";display:inline-block;padding-bottom:57.3170731707%}.dashboard-empty--graphic-content{position:absolute;top:0;left:0;width:100%;height:100%;background-position:center center;background-size:contain;background-repeat:no-repeat;background-image:url(\\\"../../assets/images/dashboard-empty--dark.svg\\\")}.clockface--app-wrapper.dashboard-light-mode .dashboard-empty--graphic-content{background-image:url(\\\"../../assets/images/dashboard-empty--light.svg\\\")}.clockface--app-wrapper.dashboard-light-mode .dashboard-empty .cf-empty-state--text{color:#9e9ead}.clockface--app-wrapper.dashboard-light-mode .dashboard-empty .cf-empty-state--text strong,.clockface--app-wrapper.dashboard-light-mode .dashboard-empty .cf-empty-state--text b{color:#4d4d60}.variables-control-bar .toolbar--contents{padding:0}.variables-control-bar--grid{border-radius:2px;padding:8px;width:100%;display:flex;transition:box-shadow .25s ease;flex-wrap:wrap}.variables-control-bar--grid__dragging-over{box-shadow:0 0 4px 1px #5c10a0}.data-explorer{width:100%;height:100%;padding-bottom:16px;display:flex;align-items:stretch}.save-as--options{display:flex;margin-top:-10px;justify-content:center}.save-as--options{display:flex;margin-top:-10px;justify-content:center}.data-loading--overlay{height:calc(90vh - 140px);display:flex;flex-direction:column}.data-loading--overlay .data-loading--form{flex-grow:1;display:inline-flex;flex-direction:column}.data-loading--overlay .data-loading--form .data-loading--scroll-content{flex-grow:1;text-align:center;display:inline-flex;flex-direction:column}.data-loading--overlay .data-loading--form .data-loading--scroll-content .data-loading--columns{display:flex;flex-direction:row;flex-grow:1}.data-loading--overlay .data-loading--form .data-loading--button-container{position:relative;display:inline-flex;align-content:center;justify-content:center;padding:15px}.data-loading--column-panel{background-color:#1a1a2a;border-radius:0 4px 4px 0;flex:1 0 auto;padding:32px}.configuration-overlay--body{padding:45px !important;padding-top:0 !important;padding-bottom:0 !important}.telegraf-instructions p,.telegraf-instructions h6{font-size:14px}.telegraf-instructions p{margin-bottom:2em}.line-protocol--header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;z-index:5050;position:relative}.line-protocol--content{height:206px}.line-protocol--status{font-size:13px;font-weight:600;user-select:none}.line-protocol--status.done{color:#2fa74d}.line-protocol--status.error{color:#ff8564}.line-protocol--spinner{height:364px;border:2px solid #1a1a2a;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-direction:column}.cf-panel .csv-body--padding{padding:32px 16px}.side-bar{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;overflow:hidden;transform:translate3d(0, 0, 0);flex:0 1 auto;border-radius:4px 0 0 4px;background-color:#07070e;border:2px solid #1a1a2a;max-width:250px}.side-bar,.side-bar:hover{cursor:default}.side-bar.show{flex:1 0 140px}.side-bar--container{box-sizing:border-box;opacity:0;height:100%;width:100%;display:inline-flex;flex-direction:column;padding:32px 0}.side-bar.show .side-bar--container{opacity:1}.side-bar--title{text-align:left;margin:0 16px 16px 16px;color:#b9b9c5;font-size:15px}.side-bar--tabs{display:inline-flex;flex-direction:column;justify-content:flex-start;width:100%;flex:1 1 0;padding-bottom:16px}.side-bar--tab{flex-shrink:0;height:30px;display:inline-flex;align-items:center;border-radius:4px 0 0 4px;font-size:15px;font-weight:600;margin-left:16px;color:#828294;background-color:rgba(0,0,0,0);white-space:nowrap}.side-bar--tab:hover{color:#d5d5dd;cursor:pointer;background-color:rgba(51,51,70,.6)}.side-bar--tab.active{color:#d5d5dd;background-color:#333346}.side-bar--icon{width:16px;color:#4d4d60;display:inline-block;font-size:16px;margin:0 13px}.side-bar--tab:hover .side-bar--icon{color:#9e9ead}.side-bar--tab.active .side-bar--icon{color:#00a3ff}.side-bar--tab__success,.side-bar--tab__success .side-bar--icon,.side-bar--tab__success:hover,.side-bar--tab__success:hover .side-bar--icon{color:#2fa74d}.side-bar--tab__pending,.side-bar--tab__pending .side-bar--icon,.side-bar--tab__pending:hover,.side-bar--tab__pending:hover .side-bar--icon{color:#ffb94a}.side-bar--tab__error,.side-bar--tab__error .side-bar--icon,.side-bar--tab__error:hover,.side-bar--tab__error:hover .side-bar--icon{color:#ff8564}.side-bar--buttons{margin:0 16px}.side-bar--button{width:100%}@media screen and (min-width: 1080px){.side-bar--tab{margin-left:32px}.side-bar--title{margin:0 32px 16px 32px;font-size:17px}.side-bar--buttons{margin:0 32px}.side-bar.show{flex:1 0 240px}}.event-table{height:100%;display:flex;flex-direction:column;justify-content:stretch}.event-table .event-table--table{flex:1 1 100%}.event-table .event-table-header{flex:0 0 auto}.event-table-header,.event-row{display:flex;align-items:center;justify-content:space-between}.event-table-header>*,.event-row>*{flex-grow:1;flex-shrink:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.event-table-header{padding:0 8px;margin-bottom:16px}.event-table-header--field{user-select:none;font-size:13px;font-weight:600;text-transform:uppercase;color:#9e9ead;margin:0 8px}.event-row,.event-loading-row,.event-footer-row,.event-error-row{height:calc(100% - 4px);width:100%;border-radius:4px;display:flex;align-items:center;font-size:12px;padding:0 8px}.event-row,.event-loading-row{background:#1a1a2a}.event-footer-row,.event-error-row{justify-content:center;font-weight:600;user-select:none}.event-footer-row{color:#9e9ead}.event-error-row{color:#f95f53}.event-row--field,.event-loading-row--placeholder{margin:0 8px}.event-row--field{overflow:hidden}@keyframes glow{from{opacity:1}to{opacity:.5}}.event-loading-row--placeholder{background-color:#333346;border-radius:3px;animation-name:glow;animation-duration:1s;animation-iteration-count:infinite;animation-direction:alternate}.version-sidebar--buttons{display:flex;justify-content:space-between;padding:0 16px}.version-history--title{font-weight:500;font-size:20px;line-height:1.2}.published-date--text{font-weight:normal;font-size:15.75px;line-height:1.6;margin:0px 0px;color:#fff}.published-by--text{font-weight:normal;line-height:160%;color:#9e9ead;margin:0px 0px}.cf-list--contents .cf-list-item__light.version-sidebar--listitem{display:flex;justify-content:space-between;padding:16px}.version-sidebar{flex:0 0 420px;width:420px;padding:0 8px}.version-sidebar .sidebar--item{width:137px;height:137px}.version-sidebar .sidebar--item .cf-selectable-card--body{overflow:hidden}.version-sidebar .sidebar--item .cf-selectable-card--children{width:calc(100% - 48px);height:calc(100% - 48px)}.version-sidebar .sidebar--item-thumb{width:100%;height:100%}.version-sidebar .sidebar--item-thumb img{width:100%;height:100%;object-fit:contain}.version-sidebar .flux-toolbar--search{padding:0}.version-sidebar--submenu{padding-top:8px;height:calc(100% - 30px)}.version-sidebar--submenu-wrapper{padding-bottom:20px}.version-header--timerange{font-style:normal;font-weight:500;font-size:20px;line-height:1.2;margin-right:16px}.version-sidebar--back-btn{margin:0px 10px 12px}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}h1#first-mile--header{margin:1em 0}.homepage-wizard-container{color:#f1f1f3;display:flex;height:100%;width:100%}.homepage-wizard-container--subway-inner{width:100%;position:sticky;top:0}.homepage-wizard-container--subway{display:flex;flex-direction:column;width:30%}.homepage-wizard-container--main{display:flex;flex-direction:column;width:70%;flex:1;padding-bottom:64px}.homepage-wizard-container--main-wrapper h1{margin-top:0;font-weight:600}.homepage-wizard-container--main-wrapper p{font-size:var(--step-1)}.homepage-wizard-container--main-wrapper.verticallyCentered{margin-top:auto}.homepage-wizard-container-footer{display:flex;justify-content:flex-end;margin-top:auto}.write-data--details-widget-title{margin-bottom:8px;padding-left:12px;display:flex;justify-content:space-between;align-items:center;text-transform:uppercase}.homepage-wizard-next-steps{display:flex;max-width:300px}.homepage-wizard-next-steps h4{background:linear-gradient(45deg, #fad9ff 0%, #f0fcff 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);display:flex;align-items:center;margin:0}.homepage-wizard-next-steps h4 svg{margin-right:10px}.homepage-wizard-next-steps .cf-icon{margin-right:8px}.homepage-wizard-next-steps p{color:#f1f1f3;font-size:14px;margin:0;font-style:normal;font-weight:300;line-height:17px;text-align:left}.homepage-wizard-next-steps h5{display:flex;align-items:center;justify-content:center;letter-spacing:.06em;margin:0}.feedback-bar{background:linear-gradient(256.11deg, rgba(147, 148, 255, 0.2) 0%, rgba(81, 60, 198, 0.2) 100%);padding-left:16px;padding-right:16px;max-width:493px}.homepage-wizard--code-highlight{color:#b7b8ff}.recent-dashboards{display:flex;flex-direction:column;align-items:stretch;font-size:1.25em}.recent-dashboards--item{margin-bottom:8px;white-space:nowrap;word-break:break-all;padding-right:16px}.recent-dashboards--filter{margin-bottom:8px}.docslinks-list,.useful-links{padding:0;list-style:none}.docslinks-list h4,.useful-links h4{color:#f1f1f3}.docslinks-list>li{font-size:1.25em;background-color:rgba(0,0,0,0);border-radius:4px;padding:0;margin-bottom:16px}.multiaccountorg--header{height:60px;padding-top:12px;padding-right:32px;padding-bottom:12px;padding-left:22px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.multi-org .cf-page-header{height:46px !important;flex:0 0 46px !important;margin-bottom:14px !important}.multi-org .cf-page.flows-index{height:calc(100% - 60px)}.multi-org .flows-index>.cf-page-header>.cf-page-header--fixed>.cf-flex-box{height:32px !important;margin-bottom:10px !important}.multi-org .cf-page-header.withButtonHeader{height:140px !important}.cf-notification-container.cf-notification__top{top:8px}.cf-notification-container.cf-notification__right{right:8px}.label-card--description{font-weight:600;margin:0;margin-left:16px}.label-card--description__untitled{color:#68687b;font-style:italic}.label-overlay--preview{display:flex;justify-content:center;align-items:center;height:90px}.label-overlay--preview>.label{margin:4px 0}.alerts-activity{width:100%;height:350px;padding-top:20px;overflow:hidden}.getting-started{margin:8px 0;display:grid;grid-template-rows:270px 270px 270px;grid-template-columns:1fr;grid-row-gap:8px;grid-column-gap:8px}.getting-started--card-digit{position:absolute;top:8px;left:8px;width:24px;height:24px;background-color:#07070e;color:#67d74e;border-radius:50%;font-size:12px;line-height:24px;font-weight:700;text-align:center;user-select:none}.getting-started--card{width:100%;height:100%;border:2px solid #1a1a2a}.getting-started--card .cf-panel--body,.getting-started--card .cf-panel--footer{position:absolute;display:flex;align-content:center;justify-content:center;align-items:center}.getting-started--card .cf-panel--body{top:0;left:0;height:calc(100% - 80px)}.getting-started--card .cf-panel--footer{top:calc(100% - 80px);left:0;height:80px}.getting-started--card.highlighted{border-color:#0b3a8d}.getting-started--card.highlighted .getting-started--card-digit{background-color:rgba(7,7,14,.5)}.getting-started--image{width:100%;height:100%;background-size:cover}.getting-started--image>svg{width:100%;height:100%}@media screen and (min-width: 750px){.getting-started{grid-template-columns:1fr 1fr;grid-template-rows:260px 260px}}@media screen and (min-width: 1080px){.getting-started{grid-row-gap:0;grid-template-columns:1fr 1fr 1fr;grid-template-rows:320px}}.collector-graphic--bg{fill:#441d9a}.collector-graphic--bucket{fill:#bef0ff;transition:fill .4s ease}.collector-graphic--bucket-hole{fill:#00c9ff;transition:fill .4s ease}.collector-graphic--cubo{transform:rotate(17deg)}.collector-graphic--data{fill:none;stroke-width:2px;stroke-linecap:round;stroke-miterlimit:10}.data-a,.data-b,.data-c,.data-d,.data-e{stroke-width:2px}.dot-a{fill:#2fa74d}.dot-b{fill:#ffd255}.dot-c{fill:#00a3ff}.dot-d{fill:#ce58eb}.dot-e{fill:#ff8564}.data-a{stroke:#2fa74d;stroke-dasharray:146;stroke-dashoffset:0}.data-b{stroke:#ffd255;stroke-dasharray:102;stroke-dashoffset:0}.data-c{stroke:#00a3ff;stroke-dasharray:81;stroke-dashoffset:0}.data-d{stroke:#ce58eb;stroke-dasharray:102;stroke-dashoffset:0}.data-e{stroke:#ff8564;stroke-dasharray:146;stroke-dashoffset:0}@keyframes dataOuterFlow{0%{stroke-dashoffset:0}50%{stroke-dashoffset:146}100%{stroke-dashoffset:292}}@keyframes dataInnerFlow{0%{stroke-dashoffset:0}50%{stroke-dashoffset:102}100%{stroke-dashoffset:204}}@keyframes dataCenterFlow{0%{stroke-dashoffset:0}50%{stroke-dashoffset:81}100%{stroke-dashoffset:162}}.collector-graphic--cubo{transform-origin:161px 161.6px}.collector-graphic--cubo-line{transition:stroke .25s ease;stroke-width:1.5px;stroke:#5c10a0;fill:none}.getting-started--image__animating .collector-graphic--bucket{fill:#fff}.getting-started--image__animating .collector-graphic--bucket-hole{fill:#bef0ff}.getting-started--image__animating .collector-graphic--cubo-line{stroke:#be2ee4}.getting-started--image__animating .data-a,.getting-started--image__animating .data-b,.getting-started--image__animating .data-c,.getting-started--image__animating .data-d,.getting-started--image__animating .data-e{animation-iteration-count:infinite;animation-duration:1s;animation-direction:reverse}.getting-started--image__animating .data-a{animation-name:dataOuterFlow;animation-delay:0s}.getting-started--image__animating .data-b{animation-name:dataInnerFlow;animation-delay:.1s}.getting-started--image__animating .data-c{animation-name:dataCenterFlow;animation-delay:.2s}.getting-started--image__animating .data-d{animation-name:dataInnerFlow;animation-delay:.3s}.getting-started--image__animating .data-e{animation-name:dataOuterFlow;animation-delay:.4s}.dashboarding-graphic--bg{fill:#07070e}.dashboarding-graphic--cell{fill:#1a1a2a;transition:fill .25s ease}.dashboarding-graphic--single-stat{fill:#333346}.dashboarding-graphic--axes{stroke-width:1.5px;stroke:#333346;fill:rgba(0,0,0,0);transition:fill .5s ease,stroke .5s ease;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.dashboarding-graphic--line{fill:none;stroke-width:1.5px;stroke:#333346;transition:stroke .5s ease;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.dashboarding-graphic--bar{fill:#00a3ff}.bar-a{height:15.2px}.bar-b{height:32.2px}.bar-c{height:25.8px}.bar-d{height:4px}.bar-e{height:2px}.bar-f{height:7.6px}.bar-g{height:4px}@keyframes barGraphA{0%{height:15.2px}50%{height:18.2px}100%{height:15.2px}}@keyframes barGraphB{0%{height:32.2px}50%{height:35.2px}100%{height:32.2px}}@keyframes barGraphC{0%{height:25.8px}50%{height:28.8px}100%{height:25.8px}}@keyframes barGraphDG{0%{height:4px}50%{height:7px}100%{height:4px}}@keyframes barGraphE{0%{height:2px}50%{height:5px}100%{height:2px}}@keyframes barGraphF{0%{height:7.6px}50%{height:10.6px}100%{height:7.6px}}.single-stat-a{fill:#00a3ff}.single-stat-b{fill:#ff8564}.single-stat-c{fill:#67d74e}.single-stat-d{fill:#ce58eb}.table-a{fill:#00a3ff}.table-b{fill:#ce58eb}@keyframes tableCellA{0%{fill:#00a3ff}30%{fill:rgba(0,0,0,0)}70%{fill:rgba(0,0,0,0)}100%{fill:#00a3ff}}@keyframes tableCellB{0%{fill:#ce58eb}30%{fill:rgba(0,0,0,0)}70%{fill:rgba(0,0,0,0)}100%{fill:#ce58eb}}.line-a,.line-b,.line-c,.line-d{transition:all .5s ease}.line-a{stroke:#67d74e;stroke-dasharray:122;stroke-dashoffset:0}@keyframes graphLineA{0%{stroke-dashoffset:0}50%{stroke-dashoffset:122}100%{stroke-dashoffset:244}}.line-b{stroke:#00a3ff;stroke-dasharray:161;stroke-dashoffset:0}@keyframes graphLineB{0%{stroke-dashoffset:0}50%{stroke-dashoffset:161}100%{stroke-dashoffset:322}}.line-c{stroke:#ce58eb;stroke-dasharray:102;stroke-dashoffset:0}@keyframes graphLineC{0%{stroke-dashoffset:0}50%{stroke-dashoffset:102}100%{stroke-dashoffset:204}}.line-d{stroke:#ffd255;stroke-dasharray:99;stroke-dashoffset:0}@keyframes graphLineD{0%{stroke-dashoffset:0}50%{stroke-dashoffset:99}100%{stroke-dashoffset:198}}.getting-started--image__animating .dashboarding-graphic--cell{fill:#333346}.getting-started--image__animating .dashboarding-graphic--axes{stroke:#4d4d60}.getting-started--image__animating .line-a,.getting-started--image__animating .line-b,.getting-started--image__animating .line-c,.getting-started--image__animating .line-d{animation-iteration-count:infinite;animation-duration:1.5s;animation-direction:reverse}.getting-started--image__animating .line-a{animation-name:graphLineA}.getting-started--image__animating .line-b{animation-name:graphLineB;animation-delay:.2s}.getting-started--image__animating .line-c{animation-name:graphLineC;animation-delay:.2s}.getting-started--image__animating .line-d{animation-name:graphLineD}.getting-started--image__animating .bar-a,.getting-started--image__animating .bar-b,.getting-started--image__animating .bar-c,.getting-started--image__animating .bar-d,.getting-started--image__animating .bar-e,.getting-started--image__animating .bar-f,.getting-started--image__animating .bar-g{animation-iteration-count:infinite;animation-duration:.5s}.getting-started--image__animating .bar-a{animation-name:barGraphA;animation-delay:0s}.getting-started--image__animating .bar-b{animation-name:barGraphB;animation-delay:.15s}.getting-started--image__animating .bar-c{animation-name:barGraphC;animation-delay:.3s}.getting-started--image__animating .bar-d{animation-name:barGraphDG;animation-delay:.45s}.getting-started--image__animating .bar-e{animation-name:barGraphE;animation-delay:.6s}.getting-started--image__animating .bar-f{animation-name:barGraphF;animation-delay:.75s}.getting-started--image__animating .bar-g{animation-name:barGraphDG;animation-delay:.9s}.getting-started--image__animating .table-a,.getting-started--image__animating .table-b{animation-iteration-count:infinite;animation-duration:1.5s}.getting-started--image__animating .table-a{animation-name:tableCellA}.getting-started--image__animating .table-b{animation-name:tableCellB;animation-delay:.2s}.explore-graphic--bg{fill:#07070e}.explore-graphic--hex{fill:#1a1a2a;transition:fill .25s ease}.hex-a{fill:#00a3ff}.hex-b{fill:#67d74e}.explore-graphic--text{stroke:rgba(0,0,0,0);fill:none;transition:stroke .5s ease}.explore-graphic--diagnostic{fill:rgba(0,0,0,0);transition:fill .5s ease}@keyframes flow{0%{stroke-dashoffset:0px}100%{stroke-dashoffset:8px}}.explore-graphic--flow{fill:none;stroke-width:2px;stroke-dasharray:4px;stroke-dashoffset:0px}.flow-a{stroke:#67d74e}.flow-b{stroke:#00a3ff;animation-direction:reverse}.getting-started--image__animating .explore-graphic--hex{fill:#333346}.getting-started--image__animating .explore-graphic--text{stroke:#b9b9c5}.getting-started--image__animating .hex-a,.getting-started--image__animating .diagnostic-a{fill:#00a3ff}.getting-started--image__animating .hex-b,.getting-started--image__animating .diagnostic-b{fill:#67d74e}.getting-started--image__animating .explore-graphic--flow{animation:flow 1s linear infinite}.rule-eo{width:calc(100vw - 64px);height:calc(100vh - 32px);margin:0 auto;display:flex;flex-direction:column;background:#07070e;background:-moz-linear-gradient(top, #07070e 0%, #07070e 100%);background:-webkit-linear-gradient(top, #07070e 0%, #07070e 100%);background:linear-gradient(to bottom, #07070e 0%, #07070e 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=0 );border-radius:0 0 4px 4px}.rule-eo .rule-eo-contents{padding-left:32px;padding-right:32px}.rule-eo .condition-row{display:flex;flex-direction:column;background-color:#333346;border-radius:4px;margin-bottom:4px;padding:10px}.rule-eo .condition-row .period-count--container{display:flex;flex-direction:row;margin-bottom:4px;align-items:center}.rule-eo .condition-row .period-count--container .count-input,.rule-eo .condition-row .period-count--container .period-input{flex:100px}.rule-eo .condition-row .status-levels--container{display:flex;flex-direction:row;align-items:center}.rule-eo .condition-row .tag-rule{display:flex;flex-direction:row}.rule-eo .sentence-frag{background-color:#4d4d60;border-radius:4px;font-size:12px;padding:0 9px;height:30px;line-height:26px;text-align:center;font-weight:bold}.rule-eo .color-dropdown--item{display:flex;align-items:center;justify-content:flex-start}.rule-eo .color-dropdown--swatch{width:12px;height:12px;border-radius:50%;margin-right:5px}.rule-overlay-footer--error{display:flex;align-items:center;justify-content:center;color:#dc4e58;font-size:12px;font-weight:600;margin:16px 0}.wizard--bookend-step{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.wizard--bookend-step .button{position:relative;white-space:nowrap;margin:0 4px}.splash-logo{background-size:100% 100%;background-position:center center;background-repeat:no-repeat;width:100%;flex:.5}.splash-logo.primary{background-image:url(\\\"../../assets/images/cubo_doodle.svg\\\")}.splash-logo.secondary{background-image:url(\\\"../../assets/images/cubo_doodle_green.svg\\\")}.splash-logo.secondary+h3{margin-top:32px}.wizard-contents{display:flex;align-items:stretch;flex-wrap:nowrap;border-radius:4px;background-color:#07070e;margin:32px;margin-top:4px;flex-grow:1;width:100%}.wizard-step--container{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background-color:#1a1a2a;border-radius:4px;padding:16px;flex:1 0 0}.side-bar.show+.wizard-step--container{flex:1 0 calc(100% - 240px)}.wizard-step--group{display:flex;justify-content:space-between;align-items:flex-end}.onboarding-step{flex:1 0 0;min-width:100%;text-align:center;position:relative;display:inline-flex;flex-direction:column;justify-content:flex-start;align-items:center}.onboarding-step .cf-form--wrapper{display:inline-flex;flex-direction:column;flex:1 0 0}.wizard-step--scroll-area{flex:1 0 0;width:100%}.wizard-step--scroll-content{width:90%;height:90%;margin:0 auto 32px auto;display:inline-flex;flex-direction:column;justify-content:center}.wizard-step--grid-container{width:90%;display:block;margin:0 auto}.wizard-step--grid-container_telegrafUiRefresh{width:98%;display:block}.wizard-step--filter{align-self:flex-end;margin-top:18px}.wizard--button-bar{display:inline-flex;flex-shrink:0;position:relative;justify-content:center;align-items:center;height:auto;flex-wrap:nowrap;flex:2;margin-top:8px}.wizard--button-bar .button{position:relative;white-space:nowrap;margin:0 4px}.wizard-step--footer{display:inline-flex;justify-content:center;align-items:center;border-radius:4px;height:50px;width:100%;margin-top:10px;background-color:#333346;text-align:center}.wizard-step--footer>label{font-size:small;color:#9e9ead;margin:10px}.wizard-step--footer.dropdown{justify-content:left;align-items:left;text-align:left;margin-bottom:8px}.wizard-step--title{font-size:32px;font-weight:300;color:#d5d5dd;margin-bottom:8px;justify-content:flex-start;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard-step--title,.wizard-step--title:hover{cursor:default}.wizard-step--sub-title{margin-top:8px;margin-bottom:32px;font-size:16px;font-weight:400;color:#9e9ead;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard-step--sub-title,.wizard-step--sub-title:hover{cursor:default}.wizard-step--sub-title a{color:#00a3ff}.wizard-step--body,.wizard-step--body-streaming{background-color:#07070e;color:#fff;padding:25px;width:100%;text-align:left;border-radius:4px}.wizard-step--body>h6,.wizard-step--body-streaming>h6{color:#d5d5dd}.wizard-step--body>p,.wizard-step--body-streaming>p{color:#9e9ead;padding-bottom:10px}.wizard-step--body-streaming{text-align:center;margin-top:4px}.wizard-step--text-state{text-align:center}.wizard-step--text-state.loading{color:#be2ee4}.wizard-step--text-state.success{color:#2fa74d}.wizard-step--text-state.error{color:#f95f53}.wizard-step--body-snippet{background-color:#1a1a2a;border-radius:4px;margin:4px 0;padding:8px;font-family:\\\"RobotoMono\\\",monospace}.wizard-step--body-copybutton{margin-left:10px}.wizard-step--lp-sub-title{margin-top:4px;margin-bottom:8px;font-size:16px;font-weight:400;color:#9e9ead;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard-step--lp-sub-title,.wizard-step--lp-sub-title:hover{cursor:default}.wizard-step--lp-sub-title a{color:#00a3ff}.wizard-step--lp-body{height:250px;flex-shrink:1;width:100%;margin:16px auto 0 auto}.wizard-step--top-container{width:100%;padding:40px;border-radius:4px;background-color:#07070e;transition:background-color .25s ease,border-color .25s ease}.wizard-step--sparkle-container{width:100%;height:250px}.wizard-step--retry-button{margin-top:20px}.wizard-step--lp-precision{display:inline-flex;justify-content:left;align-items:center;border-radius:4px;height:50px;width:100%;margin-top:4px;margin-bottom:4px;background-color:#333346;text-align:left;z-index:5001}.wizard-step--lp-precision>label{font-size:medium;color:#9e9ead;margin:10px}.wizard-step--lp-precision.dropdown{justify-content:left;align-items:left;text-align:left;margin-bottom:8px}.wizard-completion--options{font-size:16px}.wizard-completion--options .wizard-completion--option{margin:16px 0}.wizard-completion--options dt{margin:16px 0;font-weight:700;color:#d5d5dd}.wizard-completion--options dd{font-weight:400;color:#9e9ead}@media screen and (min-width: 1080px){.wizard-step--container{padding:32px}.onboarding-step{max-width:60vw}.buttonless .wizard-step--scroll-area{height:calc(100% - 32px)}.wizard--bookend-step{width:70%}}.signin-page .cf-funnel-page--content{display:flex;height:100%;justify-content:center}.signin-page .cf-dapper-scrollbars--content{align-items:center;display:flex !important}.cf-panel.signin-page--panel{width:300px}.cf-panel.signin-page--panel .cf-panel--body{padding:32px;text-align:center}.signin-page--logo{height:auto;margin-bottom:3em;margin-top:1em;width:70%}.login-page--logo{height:auto;width:20%}.signin-page--cubo{background-image:url(\\\"../../assets/images/auth-logo.svg\\\");background-position:center center;background-repeat:no-repeat;background-size:100% 100%;display:inline-block;height:100px;width:100px}.create-account--button{margin:15px 0}.github-logo{width:70px;height:70px;fill:#fff}.google-logo{height:70px;width:70px}.google-logo .google-logo--blue{fill:#3e82f1}.google-logo .google-logo--green{fill:#32a753}.google-logo .google-logo--red{fill:#e74133}.google-logo .google-logo--yellow{fill:#f9bb00}.heading--margins{margin:16px 0}.helper-link-text a:link{font-size:.85em;font-weight:400}.sign-up--form{min-width:330px;width:100%;height:100%;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;margin-top:32px}.sign-up--form-panel{max-width:500px;width:400px;height:100%}.cf-heading.sign-up--form-separator{color:#68687b;margin:16px 0}@media screen and (min-width: 1080px){.sign-up--form-panel{max-width:100%}.cf-heading.sign-up--form-separator{margin:32px 0 16px 0}}.sign-up--social-button-group{position:relative}.sign-up--social-button-group .signup-text{position:relative}.sign-up--social-button-group .signup-icon{width:33px;height:auto;background:rgba(0,0,0,0);position:absolute;top:50%;transform:translate(-50%, -50%);left:30px}.sign-up--social-button-group .sign-up--google{background:#fff;color:#444}.sign-up--social-button-group .sign-up--google:active,.sign-up--social-button-group .sign-up--google:focus,.sign-up--social-button-group .sign-up--google:active:hover,.sign-up--social-button-group .sign-up--google.active,.sign-up--social-button-group .sign-up--google.active:hover,.sign-up--social-button-group .sign-up--google:hover,.sign-up--social-button-group .sign-up--google.cf-button-default:hover{color:#444}.sign-up--social-button-group .sign-up--google:after{background:#fff}.sign-up--social-button-group .sign-up--microsoft{background:#fff;color:#5e5e5e}.sign-up--social-button-group .sign-up--microsoft:active,.sign-up--social-button-group .sign-up--microsoft:focus,.sign-up--social-button-group .sign-up--microsoft:active:hover,.sign-up--social-button-group .sign-up--microsoft.active,.sign-up--social-button-group .sign-up--microsoft.active:hover,.sign-up--social-button-group .sign-up--microsoft:hover,.sign-up--social-button-group .sign-up--microsoft.cf-button-default:hover{color:#5e5e5e}.sign-up--social-button-group .sign-up--microsoft:after{background:#fff}.operator-limits-label{border:none;overflow:hidden;display:inline-block;justify-content:flex-start;padding:0 12px}.operator-nav-button{background:#00a3ff;background:-moz-linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);background:-webkit-linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);background:linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 );border-radius:100%;border:none;overflow:hidden;display:inline-block;justify-content:flex-start;margin-right:40px}.operator-nav-button .cf-button-icon{text-align:center;margin-top:4px;font-size:32px}.operator-nav-popover{display:flex}.overlay-header--color.overlay-header--title{color:#fff;justify-content:center;user-select:text !important;-moz-user-select:text !important;-webkit-user-select:text !important;-ms-user-select:text !important;-o-user-select:text !important}.cf-overlay--body .overlay-button--link{padding:8px 16px}.org-overlay-detail--text{font-weight:700;font-size:16px}.cf-text-block.account-grid-text{background-color:rgba(0,0,0,0);font-size:medium;margin:-5px 0px;padding:0px}.account-grid-text.heading{color:#a5a8b5;margin-top:20px}.account-grid-text.body{color:#d4d7dc;font-weight:700}.contract-start-date-picker{top:50%;left:50%;transform:translate(0, -50%)}.org-switcher--list{display:flex;flex-direction:column;align-items:stretch}.org-switcher--prompt{text-align:center;margin-top:0;margin-bottom:4px;color:#68687b}.org-switcher--item{display:flex;align-items:center;color:#9e9ead;background-color:#07070e;padding:16px;margin-bottom:4px;border-radius:2px;transition:background-color .25s ease,color .25s ease}.org-switcher--item:hover{cursor:pointer;color:#d5d5dd;background-color:#1a1a2a}.org-switcher--item-label{user-select:none;font-size:1.125em;font-weight:600}.org-switcher--item-label em{font-weight:400;font-size:.8em;font-style:normal;opacity:.3;display:inline-block;margin-left:8px}.org-switcher--item-circle{width:32px;height:32px;border-radius:50%;background-color:#07070e;margin-right:16px;display:flex;justify-content:center;align-items:center;align-content:center;transition:background-color .25s ease,color .25s ease,text-shadow .25s ease;color:#07070e}.org-switcher--item:hover .org-switcher--item-circle{text-shadow:0 0 4px #066fc5;background-color:#07070e;color:#00a3ff}.org-switcher--item__selected,.org-switcher--item__selected:hover{cursor:default;background-color:#333346;color:#fff}.org-switcher--item__selected .org-switcher--item-circle,.org-switcher--item__selected:hover .org-switcher--item-circle{text-shadow:0 0 4px #009f5f;color:#67d74e;background-color:#1a1a2a}.renamable-page-title{width:100%;max-width:850px;position:relative;height:48px;font-size:var(--step-0)}.renamable-page-title:hover,.renamable-page-title:hover *{cursor:text}.renamable-page-title>.cf-heading.cf-page--title,.cf-input.renamable-page-title--input>input{font-size:2.4em;font-weight:500;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;padding:0 0;height:48px;letter-spacing:0}.renamable-page-title>.cf-heading.cf-page--title,.renamable-page-title--input{position:absolute;top:0;width:calc(\\n 100% + 4px\\n ) !important;left:-2px}.cf-input-sm.renamable-page-title--input{height:48px;font-size:var(--step-0)}.renamable-page-title>.cf-heading.cf-page--title{border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none;transition:color .25s ease,background-color .25s ease,border-color .25s ease;line-height:44px;border:2px solid rgba(0,0,0,0)}.renamable-page-title.untitled>.cf-heading.cf-page--title{color:#68687b;font-style:italic}.renamable-page-title:hover>.cf-heading.cf-page--title{color:#fff;border-color:#1a1a2a}.renamable-page-title--icon{position:absolute;font-size:1.5em;top:50%;right:24px;transform:translate(50%, -50%);opacity:0;transition:opacity .25s ease;color:#9e9ead}.renamable-page-title:hover .renamable-page-title--icon{opacity:1}.cf-input.renamable-page-title--input>input::-webkit-input-placeholder{font-weight:500 !important}.cf-input.renamable-page-title--input>input::-moz-placeholder{font-weight:500 !important}.cf-input.renamable-page-title--input>input:-ms-input-placeholder{font-weight:500 !important}.cf-input.renamable-page-title--input>input:-moz-placeholder{font-weight:500 !important}.clockface--app-wrapper.dashboard-light-mode .renamable-page-title>.cf-heading.cf-page--title,.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input{color:#68687b}.clockface--app-wrapper.dashboard-light-mode .renamable-page-title.untitled>.cf-heading.cf-page--title{color:#d5d5dd}.clockface--app-wrapper.dashboard-light-mode .renamable-page-title:hover>.cf-heading.cf-page--title{color:#828294;border-color:#d5d5dd}.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input{background-color:#fff}.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input::-webkit-input-placeholder{color:#d5d5dd}.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input::-moz-placeholder{color:#d5d5dd}.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input:-ms-input-placeholder{color:#d5d5dd}.clockface--app-wrapper.dashboard-light-mode .cf-input.renamable-page-title--input>input:-moz-placeholder{color:#d5d5dd}.tabbed-page--header{width:100%;display:flex;flex-direction:column;align-items:stretch;margin-bottom:32px}.tabbed-page--header-left,.tabbed-page--header-right{display:flex;align-items:center;justify-content:center}.tabbed-page--header-left>*,.tabbed-page--header-right>*{margin-right:8px}.tabbed-page--header-left>*:last-child,.tabbed-page--header-right>*:last-child{margin-right:0}.tabbed-page--header-right{order:1;margin-bottom:8px}.tabbed-page--header-right:only-child{margin-bottom:0}.tabbed-page--header-left{order:2}@media screen and (min-width: 750px){.tabbed-page--header{flex-direction:row;align-items:center;justify-content:space-between}.tabbed-page--header-left{flex:1 0 0;order:1;justify-content:flex-start}.tabbed-page--header-right{flex:1 0 0;order:2;justify-content:flex-end;margin-bottom:0}}.secrets-context-menu{padding-right:16px}.alert{margin-bottom:8px}.secrets-dropdown-header{border-bottom:2px solid #333346}.auto-domain-input--custom{padding-top:4px}.box-tooltip{position:fixed;visibility:hidden;z-index:9993}.box-tooltip--contents{border-width:2px;border-style:solid;background-color:#07070e;border-radius:4px;padding:10px;font-size:13px;word-break:break-all;word-wrap:break-word;width:calc(100% - 12px)}.box-tooltip--contents pre{word-break:break-all;word-wrap:break-word;white-space:pre-wrap}.box-tooltip__primary .box-tooltip--contents{border-color:#00a3ff}.box-tooltip__primary.right .box-tooltip--caret{border-right-color:#00a3ff}.box-tooltip__primary.left .box-tooltip--caret{border-left-color:#00a3ff}.box-tooltip__danger .box-tooltip--contents{border-color:#ff8564}.box-tooltip__danger.right .box-tooltip--caret{border-right-color:#ff8564}.box-tooltip__danger.left .box-tooltip--caret{border-left-color:#ff8564}.box-tooltip--caret{position:absolute;width:0;height:0;border:6px solid rgba(0,0,0,0);transform:translate(0, -50%)}.box-tooltip--caret-container{position:absolute;top:0;width:12px;height:100%}.box-tooltip.left .box-tooltip--contents{margin-right:12px}.box-tooltip.left .box-tooltip--caret-container{right:0}.box-tooltip.left .box-tooltip--caret{left:0}.box-tooltip.right .box-tooltip--contents{margin-left:12px}.box-tooltip.right .box-tooltip--caret-container{left:0}.box-tooltip.right .box-tooltip--caret{right:0}.tooltip--link{padding-bottom:10px}.cloud-upgrade-banner{display:block}.cloud-upgrade-banner--button{text-align:center}a.cloud-upgrade-banner__collapsed{text-align:center;border-radius:2px;margin:8px 0;display:none;width:100%}a.cloud-upgrade-banner__collapsed h5{font-size:var(--step--1);font-size:.9em;margin-bottom:4px}a.cloud-upgrade-banner__collapsed .cf-icon{font-size:2.75em;margin-bottom:4px}@media screen and (min-width: 800px){.cf-tree-nav__collapsed a.cloud-upgrade-banner__collapsed{display:inline-block}.cf-tree-nav__collapsed .cloud-upgrade-banner{display:none}}.code-snippet{border-radius:2px;overflow:hidden;border:2px solid #1a1a2a;margin-bottom:8px}.code-snippet--scroll{min-height:26px !important;max-height:350px;border-radius:1px;overflow:hidden}.code-snippet--text{font-size:var(--step-1);color:#dd84f1;font-family:\\\"Roboto Mono\\\",monospace;border-radius:2px;background-color:#07070e}.code-snippet--text pre{display:inline-block;white-space:pre-wrap;padding:8px 16px}.code-snippet--text pre,.code-snippet--text code{word-wrap:break-word;word-break:break-all}.new-token--btn{margin:4px 16px}.code-snippet--footer{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-top:2px solid #1a1a2a;background-color:#1a1a2a}.code-snippet--label{font-size:var(--step-0);color:#9e9ead;margin:0}.color-dropdown--item{display:flex;align-items:center;justify-content:flex-start}.color-dropdown--swatch{width:12px;height:12px;border-radius:50%;margin-right:5px}.copy-resource-id{transition:color .25s ease}.copy-resource-id:hover{cursor:pointer;color:#00a3ff}.copy-resource-id--click-target{color:#b9b9c5;transition:opacity .25s ease;opacity:0;display:inline-block;margin-left:8px}.copy-resource-id:hover .copy-resource-id--click-target{opacity:1}.drag-and-drop{border:2px dashed #333346;border-radius:3px;width:100%;height:100%;transition:background-color .25s ease,border-color .25s ease;align-content:center;align-items:center;justify-content:center}.drag-and-drop--form{position:relative;z-index:5000;background-color:#07070e;display:flex;align-items:center;flex-direction:column;justify-content:center;padding:30px 18px;color:#333346;width:100%;height:100%}input[type=file].drag-and-drop--input{display:none}.drag-and-drop--graphic{background-image:url(\\\"../../assets/images/drag-n-drop.svg\\\");background-size:100% 100%;background-position:center center;width:90px;height:90px;color:#333346}.drag-and-drop--graphic.success{background-image:url(\\\"../../assets/images/drag-n-drop.svg\\\")}.drag-and-drop--header{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 0 15px 0;font-size:20px;font-weight:400}.drag-and-drop--header,.drag-and-drop--header:hover{cursor:default}.drag-and-drop--header.empty{color:#68687b}.drag-and-drop--header.selected{color:#2fa74d}.drag-and-drop--header.error{color:#dc4e58}.drag-and-drop--buttons{display:flex;align-items:center;flex-wrap:nowrap;margin-top:18px}.drag-and-drop--buttons>button{margin:0 4px}.drag-and-drop--form.active:hover,.drag-and-drop.drag-over .drag-and-drop--form{cursor:pointer;background-color:#1a1a2a;border-color:#333346}.drag-and-drop.compact .drag-and-drop--form{flex-direction:row}.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--graphic,.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--buttons{position:absolute;top:50%;transform:translateY(-50%)}.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--graphic{left:20px;width:50px;height:50px}.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--header{font-size:15px;margin-bottom:0;margin-right:80px;margin-left:80px;word-break:break-all;white-space:pre-wrap}.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--buttons{margin-top:0;right:20px;flex-direction:column;align-items:stretch}.drag-and-drop.compact .drag-and-drop--form .drag-and-drop--buttons>button{margin:2px 0}.editable-name>a,.cf-input.editable-name--input>input{font-size:17px;font-weight:600;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;padding:0 6px}.editable-name>a{white-space:nowrap;line-height:17px;padding-left:8px;padding-right:0}.editable-name{height:22px;position:relative;display:inline-block}.editable-name--toggle{font-size:12.75px;transform:translateY(-10%);padding:4px;display:inline-block;margin-left:8px;transition:color .25s ease,opacity .25s ease;opacity:1;color:#9e9ead}.editable-name--toggle:hover{cursor:pointer;color:#d5d5dd}.cf-input.editable-name--input{position:absolute;top:-1px;left:0;width:100%}.cf-input.editable-name--input>input::-webkit-input-placeholder{font-weight:600 !important}.cf-input.editable-name--input>input::-moz-placeholder{font-weight:600 !important}.cf-input.editable-name--input>input:-ms-input-placeholder{font-weight:600 !important}.cf-input.editable-name--input>input:-moz-placeholder{font-weight:600 !important}.index-list--row .editable-name--toggle{opacity:0}.index-list--row:hover .editable-name--toggle{opacity:1}.empty-graph-error{width:100%;height:100%;display:flex;justify-content:space-between;border-radius:2px;background-color:#07070e;color:#ff8564;border:2px solid #07070e}.empty-graph-error pre{font-size:14px;padding:8px;user-select:text !important;cursor:text}.empty-graph-error--icon{display:inline-block;margin-right:8px}.empty-graph-error--copy{margin-top:4px;margin-right:4px}.empty-graph-error--scroll{width:90% !important;margin-top:16px}.event-marker-tooltip{background-color:#07070e;padding:10px;border:0}.right .event-marker-tooltip+.box-tooltip--caret-container .box-tooltip--caret{border-right-color:#07070e}.left .event-marker-tooltip+.box-tooltip--caret-container .box-tooltip--caret{border-left-color:#07070e}.event-marker-tooltip--table{display:flex}.event-marker-tooltip--column{display:flex;align-items:stretch;flex-direction:column;margin-right:10px}.event-marker-tooltip--column:last-child{margin-right:0}.event-marker-tooltip--header,.event-marker-tooltip--cell{display:flex;align-items:center;justify-content:flex-start;white-space:nowrap;text-align:left;margin-bottom:4px}.event-marker-tooltip--header *:last-child,.event-marker-tooltip--cell *:last-child{margin-bottom:0}.event-marker-tooltip--cell{color:#d5d5dd;line-height:10px;font-size:10px;font-family:\\\"Roboto Mono\\\",monospace}.event-marker-tooltip--header{color:#9e9ead;font-size:11px;line-height:11px;font-weight:500}.event-marker--line,.event-marker--line__unknown,.event-marker--line__info,.event-marker--line__ok,.event-marker--line__warn,.event-marker--line__crit{position:absolute;height:100%;width:1px;top:0px;opacity:.5;z-index:2}.event-marker--line:after,.event-marker--line__unknown:after,.event-marker--line__info:after,.event-marker--line__ok:after,.event-marker--line__warn:after,.event-marker--line__crit:after,.event-marker--line:before,.event-marker--line__unknown:before,.event-marker--line__info:before,.event-marker--line__ok:before,.event-marker--line__warn:before,.event-marker--line__crit:before{content:\\\"\\\";position:absolute;left:0;height:calc(100% + 6px);bottom:0}.event-marker--line:after,.event-marker--line__unknown:after,.event-marker--line__info:after,.event-marker--line__ok:after,.event-marker--line__warn:after,.event-marker--line__crit:after{left:0;z-index:3;width:1px}.event-marker--line:before,.event-marker--line__unknown:before,.event-marker--line__info:before,.event-marker--line__ok:before,.event-marker--line__warn:before,.event-marker--line__crit:before{width:3px;background-color:rgba(7,7,14,.8);opacity:0;z-index:2;left:-1px}.event-marker--line:hover,.event-marker--line__unknown:hover,.event-marker--line__info:hover,.event-marker--line__ok:hover,.event-marker--line__warn:hover,.event-marker--line__crit:hover,.event-marker--line:hover:before,.event-marker--line__unknown:hover:before,.event-marker--line__info:hover:before,.event-marker--line__ok:hover:before,.event-marker--line__warn:hover:before,.event-marker--line__crit:hover:before{opacity:1}.event-marker--line-rect{width:4px;border-radius:2px 2px 0 0;height:20px;color:#fff;position:absolute;left:50%;top:0;transform:translate(-50%, -100%) rotate(360deg);z-index:3}.event-marker--line__crit:after,.event-marker--line__crit .event-marker--line-rect{background-color:#dc4e58}.event-marker--line__warn:after,.event-marker--line__warn .event-marker--line-rect{background-color:#ffd255}.event-marker--line__ok:after,.event-marker--line__ok .event-marker--line-rect{background-color:#009f5f}.event-marker--line__info:after,.event-marker--line__info .event-marker--line-rect{background-color:#066fc5}.event-marker--line__unknown:after,.event-marker--line__unknown .event-marker--line-rect{background-color:#8e1fc3}.event-marker--vis-selector{position:absolute;cursor:default;right:-30px;bottom:-42px;font-size:12px}.event-marker--vis-icon{margin:4px;font-weight:bold;font-size:20px}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.import--options{display:flex;margin-top:-8px;margin-bottom:8px;justify-content:center}.import--dropdown{margin-top:8px}.multiple-input-index{padding:10px;width:83.33333%;background-color:#1a1a2a;margin:0 auto 20px auto;border-radius:4px}.page-not-found>.page-not-found-funnel{display:flex;flex-direction:column}.page-not-found>.page-not-found-funnel .page-not-found-content{padding:10px;color:#fff}.page-not-found>.page-not-found-funnel .page-not-found-content>.page-not-found-content-highlight{margin:20px}.page-not-found>.page-not-found-footer{display:flex;height:60%;background-color:#fff;background-image:url(\\\"~assets/images/NotFoundBottom.png\\\");background-repeat:no-repeat;background-position:center center;background-size:auto 100%}.page-not-found>.page-not-found-footer>.page-not-found-panel{top:-20%;width:660px;margin:0 auto;z-index:10}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content{padding:40px 50px}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content>.page-not-found-panel-section{margin:10px}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content>.page-not-found-panel-section>.page-not-found-panel-title{font-weight:bold;margin:5px 0}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content .page-not-found-community-links{display:flex;margin:10px;align-items:center}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content .page-not-found-community-links>a{margin:0 5px}.page-not-found>.page-not-found-footer>.page-not-found-panel>.page-not-found-panel-content .page-not-found-community-links>.slack-icon{display:inline-block;width:14px;height:14px;background-image:url(\\\"~assets/images/SlackIcon.png\\\");background-repeat:no-repeat;background-size:cover}.searchable-dropdown--input-container{width:100%;padding:8px 0;border-bottom:2px solid #333346}.input-tag-list{margin:1px -1px;display:flex;flex-wrap:wrap}.tag-input+.input-tag-list{padding:0 11px;margin:4px -1px}.input-tag--item,.tags-add{height:24px;line-height:24px;border-radius:3px;margin:1px}.input-tag--item{display:flex;align-items:center;flex-wrap:nowrap;white-space:nowrap;padding:0 0 0 9px;font-size:12px;font-weight:600;background-color:#333346;color:#f1f1f3;cursor:default}.btn.confirm-button.input-tag--remove{margin-left:2px;color:#68687b;background-color:rgba(0,0,0,0)}.btn.confirm-button.input-tag--remove:hover{background-color:rgba(0,0,0,0);color:#ff8564}.tags-add{position:relative;width:24px;background-color:#00a3ff;color:#fff;text-align:center;transition:background-color .25s ease}.tags-add .cf-icon{font-size:14px}.tags-add:hover,.tags-add.open{cursor:pointer;background-color:#00c9ff}.tags-add--menu{position:absolute;top:100%;left:0;z-index:99;display:none;flex-direction:column;align-items:stretch;border-radius:4px;overflow:auto;max-height:200px;background:#066fc5;background:-moz-linear-gradient(left, #066fc5 0%, #00a3ff 100%);background:-webkit-linear-gradient(left, #066fc5 0%, #00a3ff 100%);background:linear-gradient(to right, #066fc5 0%, #00a3ff 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.tags-add--menu-item{text-align:left;font-size:13px;line-height:13px;font-weight:500;padding:7px 9px;white-space:nowrap;color:#f0fcff;transition:color .25s ease;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.tags-add--menu-item,.tags-add--menu-item:hover{cursor:default}.tags-add--menu-item:hover{cursor:pointer;color:#fff;background:#00c9ff;background:-moz-linear-gradient(left, #00c9ff 0%, #00a3ff 100%);background:-webkit-linear-gradient(left, #00c9ff 0%, #00a3ff 100%);background:linear-gradient(to right, #00c9ff 0%, #00a3ff 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.tags-add--menu-item:active,.tags-add--menu-item:active:focus{cursor:pointer;color:#fff;background:#0b3a8d;background:-moz-linear-gradient(left, #0b3a8d 0%, #00a3ff 100%);background:-webkit-linear-gradient(left, #0b3a8d 0%, #00a3ff 100%);background:linear-gradient(to right, #0b3a8d 0%, #00a3ff 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.tags-add.open .tags-add--menu{display:flex}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.tag-selector-count{flex:0 0 30px;height:30px;background-color:#07070e;border-radius:50%;text-align:center;line-height:30px;font-weight:900;user-select:none;color:#00a3ff;font-size:13px}.threshold-markers{width:100%;height:100%}.threshold-marker--crit{background-color:#dc4e58}.threshold-marker--crit.threshold-marker--handle{background:linear-gradient(115deg, #dc4e58 0%, #dc4e58 35%, #f95f53 100%)}.threshold-marker--crit.threshold-marker--handle:before{border-right:12px solid #dc4e58}.threshold-marker--warn{background-color:#ffd255}.threshold-marker--warn.threshold-marker--handle{background:linear-gradient(115deg, #ffd255 0%, #ffd255 35%, #ffb94a 100%)}.threshold-marker--warn.threshold-marker--handle:before{border-right:12px solid #ffd255}.threshold-marker--ok{background-color:#009f5f}.threshold-marker--ok.threshold-marker--handle{background:linear-gradient(115deg, #009f5f 0%, #009f5f 35%, #67d74e 100%)}.threshold-marker--ok.threshold-marker--handle:before{border-right:12px solid #009f5f}.threshold-marker--info{background-color:#066fc5}.threshold-marker--info.threshold-marker--handle{background:linear-gradient(115deg, #066fc5 0%, #066fc5 35%, #00c9ff 100%)}.threshold-marker--info.threshold-marker--handle:before{border-right:12px solid #066fc5}.threshold-marker--unknown{background-color:#8e1fc3}.threshold-marker--unknown.threshold-marker--handle{background:linear-gradient(115deg, #8e1fc3 0%, #8e1fc3 35%, #8e1fc3 100%)}.threshold-marker--unknown.threshold-marker--handle:before{border-right:12px solid #8e1fc3}.threshold-marker--area{position:absolute;width:100%;opacity:.07}.threshold-marker--line{position:absolute;width:100%;height:1px}.threshold-marker--handle{position:absolute;right:-29px;width:18px;height:18px;border-radius:0 3px 3px 0;transform:translateY(-50%);cursor:grab}.threshold-marker--handle:active{cursor:grabbing}.threshold-marker--handle:before{content:\\\"\\\";border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0);display:block;left:-12px;position:absolute}.threshold-setting--error{width:100%;font-weight:600;font-size:11px;color:#f95f53}.threshold-setting--value{flex:1 0 110px}.version-info{border-top:2px solid #333346;padding-top:32px;padding-bottom:32px;color:#828294;text-align:center}@keyframes loading-dots{0%{content:\\\" \\\"}25%{content:\\\".\\\"}50%{content:\\\"..\\\"}75%{content:\\\"...\\\"}100%{content:\\\" \\\"}}.waiting-text::after{animation:2s linear loading-dots infinite;content:\\\"...\\\"}.avatar{border-radius:50%;background-position:center center;background-size:100% 100%}.cell{background-color:rgba(26,26,42,.5);border-radius:4px;display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap}.cell--view{flex:1 0 0;position:relative;height:100%}.cell--view .time-series-container{padding-top:0}.empty-graph-error--copy{z-index:1;float:right}.cell--view-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#68687b;overflow:hidden}.cell--view-empty.error{font-size:40px;color:#ff8564}.cell--error-message{white-space:normal}.dashboard .cell--view-empty{top:48px}.cell--header{display:flex;align-items:center;flex-wrap:nowrap;flex:0 0 32px}.cell--draggable{flex:0 0 32px;width:32px;height:32px;position:relative}.cell--dot-grid{position:absolute;width:2px;height:2px;top:50%;transform:translate(-50%, -50%)}.cell--dot-grid,.cell--dot-grid:before,.cell--dot-grid:after{border-radius:1px;background-color:#68687b;transition:background-color .25s ease}.cell--dot-grid:before,.cell--dot-grid:after{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:100%}.cell--dot-grid:before{transform:translateY(-200%)}.cell--dot-grid:after{transform:translateY(200%)}.cell:hover .cell--dot-grid,.cell:hover .cell--dot-grid:before,.cell:hover .cell--dot-grid:after{background-color:#d5d5dd}.cell--dot-grid:nth-child(1){left:calc(50% - 4px)}.cell--dot-grid:nth-child(2){left:50%}.cell--dot-grid:nth-child(3){left:calc(50% + 4px)}.cell--draggable:hover{cursor:move}.cell--draggable:hover .cell--dot-grid,.cell--draggable:hover .cell--dot-grid:before,.cell--draggable:hover .cell--dot-grid:after{background-color:#00a3ff}.cell--context{flex:0 0 32px;width:32px;height:32px;border:0;outline:none;background:none;transition:color .25s ease,.25s opacity ease;color:#68687b;position:relative}.cell--context>.cf-icon{font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cell:hover .cell--context:not(.cell--context__active){color:#d5d5dd}.cell:hover .cell--context:hover,.cell--context.cell--context__active{cursor:pointer;color:#00a3ff}.cell--context-menu{padding:4px;display:flex;flex-direction:column;align-items:stretch}.cell--context-item{font-size:12px;line-height:12px;white-space:nowrap;padding:6px 8px;border-radius:3px;font-weight:600;transition:color .25s ease,background-color .25s ease}.cell--context-item>.cf-icon{margin-right:8px}.cell--context-item:hover{cursor:pointer;color:#fff;background-color:#333346}.cell--context-item__danger{color:#ff8564}.cell--context-item__danger:hover{color:#ffb6a0}.cell--context-item__confirm:hover{background-color:rgba(0,0,0,0)}.cell--name,.cell--window-period{flex:1 0 0;font-size:12px;line-height:12px;font-weight:600;padding-right:8px;pointer-events:none}.cell--window-period{text-align:right}.cell--note-indicator{position:relative;flex:0 0 32px;width:32px;height:32px;cursor:default;color:#68687b;transition:color .25s ease,opacity .25s ease}.cell--note-indicator>.cf-icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cell:hover .cell--note-indicator:not(.cell--note-indicator__active){color:#d5d5dd}.cell--note-indicator.cell--note-indicator__active,.cell--note-indicator:hover,.cell:hover .cell--note-indicator:hover{cursor:pointer;color:#00a3ff}.time-series-container{width:100%;height:100%;padding:8px}.time-series-container.time-series-container--alert-check{padding-right:38px;padding-bottom:28px;overflow:hidden}.giraffe-tooltip-container{z-index:9993}.react-grid-item.resizing .cell--context,.react-grid-item.resizing .cell--note-indicator,.react-grid-item.react-draggable-dragging .cell--context,.react-grid-item.react-draggable-dragging .cell--note-indicator{opacity:0}.presentation-mode .cell--context{display:none}.dashboard-clonecell--dropdownopen{width:70% !important}.dashboard-clonecell--overlayopen{display:flex;flex-direction:column;align-items:center}.wizard--credits,.cell--view-empty{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.wizard--credits,.cell--view-empty{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.cell--note-contents{padding:16px;font-size:13px}.view-loading-spinner{position:absolute;z-index:9999;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}.view-loading-spinner--timer{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-weight:700;font-size:13px;transition:opacity .5s ease;width:50px;height:50px;border-radius:50%;background-color:rgba(7,7,14,.75);line-height:50px;text-align:center;opacity:0}.view-loading-spinner--timer.visible{opacity:1}.gradient-border{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000;transition:opacity .25s ease;opacity:0}.gradient-border--top-left,.gradient-border--top-right,.gradient-border--bottom-left,.gradient-border--bottom-right{position:absolute;width:50%;height:50%;z-index:1}.gradient-border--top-left:before,.gradient-border--top-left:after,.gradient-border--top-right:before,.gradient-border--top-right:after,.gradient-border--bottom-left:before,.gradient-border--bottom-left:after,.gradient-border--bottom-right:before,.gradient-border--bottom-right:after{content:\\\"\\\";position:absolute}.gradient-border--top-left{z-index:2;top:0;left:0;border-top-left-radius:4px;border-top:2px solid #00a3ff;border-left:2px solid #00a3ff}.gradient-border--top-left:before{top:-2px;height:2px;left:4px;width:calc(200% - 8px);background:#00a3ff;background:-moz-linear-gradient(left, #00a3ff 0%, #677ef5 100%);background:-webkit-linear-gradient(left, #00a3ff 0%, #677ef5 100%);background:linear-gradient(to right, #00a3ff 0%, #677ef5 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.gradient-border--top-left:after{top:4px;height:calc(200% - 8px);left:-2px;width:2px;background:#00a3ff;background:-moz-linear-gradient(top, #00a3ff 0%, #677ef5 100%);background:-webkit-linear-gradient(top, #00a3ff 0%, #677ef5 100%);background:linear-gradient(to bottom, #00a3ff 0%, #677ef5 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=0 )}.gradient-border--top-right{top:0;right:0;border-top-right-radius:4px;border-top:2px solid #677ef5;border-right:2px solid #677ef5}.gradient-border--bottom-left{bottom:0;left:0;border-bottom-left-radius:4px;border-bottom:2px solid #677ef5;border-left:2px solid #677ef5}.gradient-border--bottom-right{z-index:2;bottom:0;right:0;border-bottom-right-radius:4px;border-bottom:2px solid #ce58eb;border-right:2px solid #ce58eb}.gradient-border--bottom-right:before{bottom:-2px;height:2px;right:4px;width:calc(200% - 8px);background:#677ef5;background:-moz-linear-gradient(left, #677ef5 0%, #ce58eb 100%);background:-webkit-linear-gradient(left, #677ef5 0%, #ce58eb 100%);background:linear-gradient(to right, #677ef5 0%, #ce58eb 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.gradient-border--bottom-right:after{bottom:4px;height:calc(200% - 8px);right:-2px;width:2px;background:#677ef5;background:-moz-linear-gradient(top, #677ef5 0%, #ce58eb 100%);background:-webkit-linear-gradient(top, #677ef5 0%, #ce58eb 100%);background:linear-gradient(to bottom, #677ef5 0%, #ce58eb 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=0 )}.react-grid-item.resizing .gradient-border,.react-grid-item.react-draggable-dragging .gradient-border{opacity:1}.react-grid-layout{position:relative;transition:height 200ms ease}.react-grid-item{z-index:1;transition:all 200ms ease;transition-property:left,top}.react-grid-item.cssTransforms{transition-property:transform}.react-grid-item.resizing{z-index:3;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:top,left}.react-grid-item.react-grid-placeholder{background:#00a3ff;background:-moz-linear-gradient(135deg, #00a3ff 0%, #ce58eb 100%) !important;background:-webkit-linear-gradient(135deg, #00a3ff 0%, #ce58eb 100%) !important;background:linear-gradient(135deg, #00a3ff 0%, #ce58eb 100%) !important;filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 ) !important;border:0 !important;opacity:.3;border-radius:4px !important;transition-duration:100ms;z-index:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-resizable-handle{position:absolute;background-image:none;cursor:nwse-resize;border:15px solid rgba(0,0,0,0);border-right-color:#333346;border-bottom-color:#333346;border-bottom-right-radius:4px;z-index:5;transition:border-color .25s ease,opacity .25s ease;width:30px;height:30px;bottom:0;right:0;opacity:0}.react-resizable-handle:before,.react-resizable-handle:after{content:\\\"\\\";display:block;position:absolute;height:2px;border-radius:1px;background-color:#07070e;transition:background-color .25s ease;transform:translate(-50%, -50%) rotate(-45deg);border:0}.react-resizable-handle:before{width:12px;top:7px;left:7px}.react-resizable-handle:after{width:20px;top:4px;left:4px}.react-resizable-handle:hover{border-right-color:#ce58eb;border-bottom-color:#ce58eb}.cell:hover .react-resizable-handle{opacity:1}.react-grid-item.resizing .react-resizable-handle,.react-grid-item.react-draggable-dragging .react-resizable-handle{opacity:1;border-right-color:#ce58eb;border-bottom-color:#ce58eb}.load-data--asset-alert{margin-bottom:32px}.cf-page-control-bar+.rate-alert{margin:0 16px 16px}.rate-alert--content{display:inline-flex;flex-direction:column;font-weight:500}.flex-upgrade-content.rate-alert--content__free{margin:4px}.upgrade-message{padding-right:16px}.cf-page--title{flex-shrink:0}.asset-alert{height:100%;background-position:bottom -20px left -20px;background-size:contain;background-repeat:no-repeat;background-image:url(\\\"~assets/images/dashboard-empty--dark.svg\\\")}.dashboards--asset-alert .asset-alert--contents{position:absolute;bottom:0}a.upgrade-payg--button{background:#00a3ff;background:-moz-linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);background:-webkit-linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);background:linear-gradient(45deg, #00a3ff 0%, #2fa74d 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.asset-limit-overlay--contents{background-color:#07070e;border-radius:2px}.asset-limit-overlay--contents p{text-align:center}.asset-limit-overlay--contents .cf-overlay--title{word-break:break-word}.asset-limit-overlay--graphic-container{width:100%;display:inline-flex;justify-content:center}.asset-limit-overlay--graphic{display:inline-flex;position:relative;width:100%;max-width:720px}.asset-limit-overlay--graphic:after{content:\\\"\\\";display:inline-block;padding-bottom:57.3170731707%}.asset-limit-overlay--graphic-element{position:absolute;top:0;left:0;width:100%;height:100%;background-position:center center;background-size:contain;background-repeat:no-repeat;background-image:url(\\\"~assets/images/dashboard-empty--dark.svg\\\")}button.upgrade-payg--button{background:linear-gradient(45deg, rgb(52, 187, 85) 0%, rgb(0, 163, 255) 100%)}.credit-250-experiment-upgrade-button--text{margin:16px}@media(max-width: 850px){.credit-250-experiment-upgrade-button--text{display:none}}@media(max-width: 700px){.upgrade-payg--button .CrownSolid_New{display:none}}@media screen and (min-width: 800px){.rate-alert{margin-left:32px}.rate-alert--content{flex-direction:row;width:100%;height:100%;align-items:center;justify-content:space-between}.rate-alert--content .rate-alert--button{margin-top:0;margin-left:16px}.cf-page-control-bar+.rate-alert{margin:0 32px 16px}.asset-limit-overlay--graphic{width:60%}.asset-limit-overlay--contents .cf-overlay--header__wrap{align-items:center}}.context-menu{display:flex;align-items:center}.context-menu--boost-z{position:relative;z-index:9999 !important}.context-menu--container{position:relative}.context-menu--container .button{position:relative;border:0;border-radius:3px;background-color:#07070e;color:#b9b9c5;transition:color .25s ease,background-color .25s ease;outline:none}.context-menu--container .button:hover{cursor:pointer;color:#fff}.context-menu--container .button.active{color:#fff}.context-menu--list{transition:opacity .25s ease;opacity:0;display:flex;flex-direction:column;align-items:stretch;border-radius:4px;position:relative}.context-menu--list:before{content:\\\"\\\";border:8px solid rgba(0,0,0,0);position:absolute;top:0;right:50%;transform:translate(50%, -100%)}.context-menu--list-container{z-index:2;position:absolute;right:50%;top:24px;padding-top:8px;transform:translateX(50%);transition:all;visibility:hidden}.context-menu--list-container.open{visibility:visible}.context-menu--list-container.open .context-menu--list{opacity:1}.context-menu--item{text-align:left;color:#fff;outline:none;border:0;background-color:rgba(0,0,0,0);font-weight:700;font-size:13px;line-height:13px;white-space:nowrap;padding:8px;transition:background-color .25s ease}.context-menu--item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.context-menu--item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.context-menu--item:hover{cursor:pointer}.context-menu--item.context-menu--item__disabled,.context-menu--item.context-menu--item__disabled:hover{cursor:default;color:rgba(255,255,255,.6);font-style:italic;background-color:rgba(0,0,0,0)}.contex-menu--item-description{font-size:11px;font-weight:400;padding-top:4px;white-space:normal;width:200px}.context-menu--align-left{justify-content:flex-start}.context-menu--align-left>.context-menu--container{margin-left:2px}.context-menu--align-left>.context-menu--container:first-child{margin-left:0}.context-menu--align-left>.context-menu--container:first-child .context-menu--list-container{right:0;transform:translateX(calc(100% - 24px))}.context-menu--align-left>.context-menu--container:first-child .context-menu--list:before{right:calc(100% - 12px)}.context-menu--align-right{justify-content:flex-end}.context-menu--align-right>.context-menu--container{margin-right:2px}.context-menu--align-right>.context-menu--container:last-child{margin-right:0}.context-menu--align-right>.context-menu--container:last-child .context-menu--list-container{right:0;transform:translateX(0)}.context-menu--align-right>.context-menu--container:last-child .context-menu--list:before{right:12px}.context-menu--toggle.context-menu--default:hover{background-color:#4d4d60}.context-menu--toggle.context-menu--default.active{background-color:#68687b}.context-menu--list.context-menu--default{background-color:#4d4d60}.context-menu--list.context-menu--default:before{border-bottom-color:#4d4d60}.context-menu--list.context-menu--default .context-menu--item:hover{background-color:#68687b}.context-menu--toggle.context-menu--primary:hover{background-color:#00a3ff}.context-menu--toggle.context-menu--primary.active{background-color:#00c9ff}.context-menu--list.context-menu--primary{background-color:#00a3ff}.context-menu--list.context-menu--primary:before{border-bottom-color:#00a3ff}.context-menu--list.context-menu--primary .context-menu--item:hover{background-color:#00c9ff}.context-menu--toggle.context-menu--secondary:hover{background-color:#be2ee4}.context-menu--toggle.context-menu--secondary.active{background-color:#ce58eb}.context-menu--list.context-menu--secondary{background-color:#be2ee4}.context-menu--list.context-menu--secondary:before{border-bottom-color:#be2ee4}.context-menu--list.context-menu--secondary .context-menu--item:hover{background-color:#ce58eb}.context-menu--toggle.context-menu--success:hover{background-color:#2fa74d}.context-menu--toggle.context-menu--success.active{background-color:#67d74e}.context-menu--list.context-menu--success{background-color:#2fa74d}.context-menu--list.context-menu--success:before{border-bottom-color:#2fa74d}.context-menu--list.context-menu--success .context-menu--item:hover{background-color:#67d74e}.context-menu--toggle.context-menu--alert:hover{background-color:#ffb94a}.context-menu--toggle.context-menu--alert.active{background-color:#ffd255}.context-menu--list.context-menu--alert{background-color:#ffb94a}.context-menu--list.context-menu--alert:before{border-bottom-color:#ffb94a}.context-menu--list.context-menu--alert .context-menu--item:hover{background-color:#ffd255}.context-menu--toggle.context-menu--danger:hover{background-color:#f95f53}.context-menu--toggle.context-menu--danger.active{background-color:#ff8564}.context-menu--list.context-menu--danger{background-color:#f95f53}.context-menu--list.context-menu--danger:before{border-bottom-color:#f95f53}.context-menu--list.context-menu--danger .context-menu--item:hover{background-color:#ff8564}.dapper-scrollbars--wrapper{margin-right:0 !important;margin-bottom:10px !important;right:0 !important;bottom:0 !important}.dapper-scrollbars--track-x,.dapper-scrollbars--track-y{border-radius:6px !important;position:absolute !important;background-color:rgba(7,7,14,.4) !important;user-select:none !important;overflow:hidden !important;transition:opacity .25s ease !important}.dapper-scrollbars--track-x{height:6px !important;width:calc(100% - 6px) !important;bottom:3px !important;left:3px !important}.dapper-scrollbars--track-y{width:6px !important;height:calc(100% - 6px) !important;right:3px !important;top:3px !important}.dapper-scrollbars--thumb-x,.dapper-scrollbars--thumb-y{border-radius:3px !important}.dapper-scrollbars--thumb-x{height:6px !important}.dapper-scrollbars--thumb-y{width:6px !important}.dapper-scrollbars--autohide .dapper-scrollbars--track-x,.dapper-scrollbars--autohide .dapper-scrollbars--track-y{opacity:0}.dapper-scrollbars--autohide:hover .dapper-scrollbars--track-x,.dapper-scrollbars--autohide:hover .dapper-scrollbars--track-y{opacity:1}.dashed-button{width:100%;border:2px dashed #333346;background-color:rgba(51,51,70,0);color:#68687b;transition:background-color .25s ease,color .25s ease,border-color .25s ease;font-weight:700;outline:none;border-radius:4px;text-align:center}.dashed-button:hover{cursor:pointer;background-color:rgba(51,51,70,.25);border-color:#333346;color:#b9b9c5}.dashed-button__default:active{border-color:#68687b;color:#d5d5dd}.dashed-button__primary:active{border-color:#00a3ff;color:#00a3ff}.dashed-button__secondary:active{border-color:#be2ee4;color:#be2ee4}.dashed-button__success:active{border-color:#2fa74d;color:#2fa74d}.dashed-button__warning:active{border-color:#ffd255;color:#ffd255}.dashed-button__danger:active{border-color:#ff8564;color:#ff8564}.dashed-button__xs{height:32px;font-size:11px}.dashed-button__sm{height:48px;font-size:12px}.dashed-button__md{height:60px;font-size:13px}.dashed-button__lg{height:72px;font-size:14px}.range-picker{position:fixed;text-align:center;background-color:#07070e;border:2px solid #00a3ff;padding:8px;border-radius:4px;z-index:9999}.react-datepicker{font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;font-size:15px}.range-picker--date-pickers{flex-wrap:nowrap;display:flex;flex-direction:row;align-items:center;margin-bottom:8px}.range-picker--date-picker{margin:4px;margin-top:0}.react-datepicker-wrapper,.react-datepicker__input-container{width:100%}.range-picker--calendar-container{position:relative}.range-picker--calendar{background-color:rgba(0,0,0,0);border:none;color:#00a3ff;display:flex;flex-direction:row;align-items:stretch}.range-picker--calendar .react-datepicker__month-container{background-color:#1a1a2a;border-radius:4px 4px;width:260px}.range-picker--calendar .react-datepicker__navigation{outline:none;cursor:pointer}.range-picker--calendar .react-datepicker__navigation--next{border-left-color:#f1f1f3}.range-picker--calendar .react-datepicker__navigation--previous{border-right-color:#f1f1f3}.range-picker--calendar .range-picker--day{color:#4d4d60}.range-picker--calendar .range-picker--day:hover{background-color:#00c9ff;color:#fff}.range-picker--calendar .range-picker--day-in-month{color:#b9b9c5}.range-picker--calendar .range-picker--day-in-month:hover{background-color:#00c9ff;color:#fff}.range-picker--calendar .react-datepicker__day--in-selecting-range{background-color:#00a3ff;color:#fff}.range-picker--calendar .react-datepicker__day--in-range{background-color:#00a3ff;color:#fff}.range-picker--calendar .range-picker--active-day{color:#fff}.range-picker--calendar .react-datepicker__day--selected{background-color:#00a3ff;color:#f1f1f3}.range-picker--calendar .react-datepicker__triangle{display:none}.range-picker--calendar .react-datepicker__header{border-radius:0;padding:0;border:none;background:rgba(0,0,0,0)}.range-picker--calendar .react-datepicker__header .react-datepicker__day-name{color:#2fa74d;font-weight:700}.range-picker--calendar .react-datepicker__header .react-datepicker__current-month{width:100%;border-radius:4px 4px 0 0;background-color:#1a1a2a;color:#f1f1f3;font-weight:700;height:32px;display:inline-flex;flex-direction:row;justify-content:center;align-items:center}.range-picker--calendar .react-datepicker__time-container{width:70px;border:none;margin-left:2px;border-radius:4px;background-color:rgba(0,0,0,0);display:flex;flex-direction:column}.range-picker--calendar .react-datepicker__time-container .react-datepicker__header--time{width:100%;border-radius:4px 4px 0 0;background-color:#1a1a2a;font-weight:700;flex:0 0 32px;display:inline-flex;flex-direction:row;justify-content:center;align-items:center}.range-picker--calendar .react-datepicker__time-container .react-datepicker-time__header{color:#f1f1f3}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time{flex:1 0 calc(100% - 32px);background-color:rgba(0,0,0,0)}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:100%;height:100%;background-color:#1a1a2a;color:#b9b9c5;border-radius:0 0 4px 4px;position:relative}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list{position:absolute;width:100%;height:100%;font-size:12px}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar{width:4px;border-top-right-radius:2px;border-top-left-radius:2px;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar-button{background-color:#1a1a2a}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar-track{background-color:#1a1a2a;border-top-right-radius:2px;border-top-left-radius:2px;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar-track-piece{background-color:#1a1a2a}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar-thumb{background-color:#00a3ff;border-radius:2px}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-scrollbar-corner{background-color:#1a1a2a}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list::-webkit-resizer{background-color:#1a1a2a}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item{height:initial;padding:4px 8px;transition:background-color .25s ease,color .25s ease;line-height:1.25em;margin:0}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item:hover{background-color:#333346;color:#fff}.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item--selected,.range-picker--calendar .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box .react-datepicker__time-list .react-datepicker__time-list-item--selected:hover{background-color:#00a3ff}.range-picker--submit{margin-bottom:8px}.range-picker--dismiss{position:absolute;z-index:5000;top:0;right:0;transform:translate(50%, -50%);width:24px;height:24px;outline:none;border-radius:50%;background-color:#00a3ff;transition:background-color .25s ease;border:0}.range-picker--dismiss:before,.range-picker--dismiss:after{content:\\\"\\\";position:absolute;width:13px;height:3px;top:50%;left:50%;border-radius:1px;background-color:#fff}.range-picker--dismiss:before{transform:translate(-50%, -50%) rotate(45deg)}.range-picker--dismiss:after{transform:translate(-50%, -50%) rotate(-45deg)}.range-picker--dismiss:hover{background-color:#00c9ff;cursor:pointer}.date-picker__select-time-range{display:flex;flex-direction:column;flex:1;width:231px;height:100%}.date-picker__select-time-range .cf-form--element{margin-bottom:0}.date-picker__select-date-picker{display:flex;flex-direction:column;flex:1;width:251px;height:100%}.date-picker__apply-time-range{margin:8px 0}.date-picker__input{max-width:193px}.date-picker__input input{background-color:rgba(0,0,0,0);border:2px solid #4d4d60}.date-picker--timezone-container{margin-bottom:24px}.date-picker--timezone-container button{background:#4d4d60}.date-picker--column-title{margin-bottom:16px}.date-picker--label{margin-bottom:8px;margin-top:4px}.date-picker--label__options{margin-bottom:4px;margin-top:8px}.date-picker--label__timezone{margin-bottom:8px}.date-picker--label__calendar{align-self:flex-start;margin-bottom:8px;margin-top:4px}.cf-dropdown-menu.date-picker--menu{background:rgba(241,241,243,.1019607843);position:absolute;right:0;padding:0 8px 0 0}.cf-dropdown-menu--contents .date-picker--calendar-dropdown,.cf-dropdown-menu--contents .date-picker--calendar-dropdown:hover{background-color:rgba(0,0,0,0) !important;border-right:2px solid rgba(255,255,255,.2);display:flex;align-items:stretch;padding:8px}.date-picker--calendar-icon{display:inline-flex;padding:0 12px;background:#4d4d60;height:100%;align-items:center;position:absolute}.date-picker--question-mark{margin-left:8px}.date-picker--form .cf-form--label,.date-picker--form .cf-form--element-error{font-size:14px}.autorefresh-dropdown{display:flex;flex-wrap:nowrap}.autorefresh-dropdown.paused .cf-dropdown--selected{opacity:0}.autorefresh-dropdown--pause{margin-left:4px}.editable-description{height:22px;width:100%;margin-top:-3px}.editable-description--preview,.cf-input.editable-description--input>input{font-size:11px;font-weight:400;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;padding:0 5px}.editable-description--preview,.editable-description--input{position:relative;width:100%}.editable-description--preview{border-radius:4px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;color:#b9b9c5;transition:color .25s ease,background-color .25s ease,border-color .25s ease;border:2px solid rgba(0,0,0,0);height:22px;line-height:18px}.editable-description--preview,.editable-description--preview:hover{cursor:default}.editable-description--preview .cf-icon{position:relative;top:-2px;display:inline-block;margin-left:8px;opacity:0;transition:opacity .25s ease;color:#9e9ead}.editable-description--preview:hover .cf-icon{opacity:1}.editable-description--preview.untitled{color:#68687b;font-style:italic}.editable-description--preview:hover{cursor:text;color:#fff}.cf-input.editable-description--input>input::-webkit-input-placeholder{font-weight:400 !important}.cf-input.editable-description--input>input::-moz-placeholder{font-weight:400 !important}.cf-input.editable-description--input>input:-ms-input-placeholder{font-weight:400 !important}.cf-input.editable-description--input>input:-moz-placeholder{font-weight:400 !important}.graph-tips{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;display:inline-block;padding:0 4px;border:0;height:30px;line-height:30px}.graph-tips,.graph-tips:hover{cursor:default}.graph-tips>span{display:inline-block;text-align:center;width:17px;height:17px;border-radius:50%;background-color:#b9b9c5;color:#07070e;line-height:18px;font-weight:900;cursor:default}.graph-tips-line{display:grid;grid-template-columns:120px auto}.inline-labels{width:100%}.inline-labels--container{width:calc(100% + 2px);position:relative;left:-2px;display:flex;flex-wrap:wrap;padding:1px;column-gap:4px;row-gap:4px}.inline-labels--container>.cf-label{margin:1px}.cf-button.cf-button-sm.inline-labels--add{width:18px;height:18px;margin:1px;position:relative}.cf-button.cf-button-sm.inline-labels--add,.cf-button.cf-button-sm.inline-labels--add:after{border-radius:50%}.cf-button.cf-button-sm.inline-labels--add:after{top:50%;left:50%;transform:translate(-50%, -50%);transition:opacity .25s ease,transform .25s ease}.cf-button.cf-button-sm.inline-labels--add:hover:after{transform:translate(-50%, -50%) scale(1.5, 1.5)}.inline-labels--add-icon{position:absolute;width:100%;height:100%;top:0;left:0}.inline-labels--add-icon:before,.inline-labels--add-icon:after{content:\\\"\\\";position:absolute;top:50%;left:50%;height:2px;width:9px;background-color:#fff;border-radius:1px;transition:width .25s ease}.inline-labels--add-icon:before{transform:translate(-50%, -50%)}.inline-labels--add-icon:after{transform:translate(-50%, -50%) rotate(90deg)}.cf-button.cf-button-sm.inline-labels--add:hover .inline-labels--add-icon:before,.cf-button.cf-button-sm.inline-labels--add:hover .inline-labels--add-icon:after{width:13px}.inline-labels--editor{min-height:18px;position:relative;display:flex;align-items:center;column-gap:4px;row-gap:4px}.inline-labels--add-wrapper{display:flex}.inline-labels--popover{width:330px}.inline-labels--popover-heading{margin-top:0;user-select:none;text-align:center;color:#b9b9c5;margin-bottom:16px}.inline-labels--list-container{background-color:#1a1a2a;border-radius:4px;margin-top:4px;overflow:hidden}.inline-labels--list{display:flex;width:100%;flex-direction:column;align-items:stretch}.inline-labels--list-item,.inline-labels--create-new{padding:4px 8px;min-height:40px;font-size:var(--step-0);display:flex;align-items:center}.inline-labels--list-item.active{background-color:#00a3ff}.inline-labels--list-item.active,.inline-labels--list-item:hover{cursor:pointer}.inline-labels--create-new{line-height:var(--step-0);font-weight:600;color:#9e9ead;transition:background-color .25s ease,color .25s ease;white-space:pre-wrap;word-break:break-all;word-wrap:break-word}.inline-labels--create-new strong{display:inline;font-weight:700;color:#d5d5dd}.inline-labels--create-new.active{color:#bef0ff}.inline-labels--create-new.active strong{color:#fff}.notification--button{display:inline-block;margin:4px;margin-right:0}.notification--message{display:inline-block;margin-right:4px}.protoboard-icon{position:relative;display:flex;justify-content:center;align-items:center}.protoboard-icon svg{width:60%}.protoboard-icon .protoboard-icon--shape{stroke:#00a3ff;stroke-width:2;fill:rgba(0,0,0,0)}.protoboard-icon .protoboard-icon--text-shape{stroke-width:2;stroke:#00a3ff;fill:#00a3ff}.protoboard-icon .protoboard-icon--text{fill:#07070e;font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;font-weight:900;font-size:42px}.card-select--active:hover .protoboard-icon--text,.card-select--active.card-select--checked .protoboard-icon--text{fill:#333346}.search-widget-input{flex:1 0 80px}.selector-list--list{display:flex;flex:1 1 0;flex-wrap:nowrap;height:100%}.selector-list--list>*{margin-left:4px;margin-right:4px}.selector-list--list>*:first-child{margin-left:0}.selector-list--list>*:last-child{margin-right:0}.selector-list{border-radius:4px;background-color:#1a1a2a;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;position:relative;flex:0 0 228px}.selector-list--header{background-color:#333346;display:flex;justify-content:flex-start}.selector-list--title{display:inline-block;font-weight:900;font-size:13px;text-transform:uppercase;letter-spacing:0;color:#9e9ead}.selector-list--delete{flex:0 0 30px;height:30px;position:relative}.selector-list--delete:before,.selector-list--delete:after{content:\\\"\\\";position:absolute;top:50%;left:50%;width:14px;height:2px;border-radius:1px;background-color:#68687b;transition:background-color .25s ease}.selector-list--delete:before{transform:translate(-50%, -50%) rotate(45deg)}.selector-list--delete:after{transform:translate(-50%, -50%) rotate(-45deg)}.selector-list--delete:hover{cursor:pointer}.selector-list--delete:hover:before,.selector-list--delete:hover:after{background-color:#ff8564}.selector-list--hamburger{flex:0 0 15px;height:2px;border-radius:1px;background-color:#4d4d60;margin-left:10px;position:relative;transition:background-color .25s ease}.selector-list--hamburger:before,.selector-list--hamburger:after{content:\\\"\\\";position:absolute;top:0;width:100%;height:100%;background-color:#4d4d60;border-radius:1px;transition:background-color .25s ease}.selector-list--hamburger:before{transform:translateY(-200%)}.selector-list--hamburger:after{transform:translateY(200%)}.selector-list--draggable{display:flex;align-items:center;height:30px;flex:1 0 0}.selector-list--draggable .selector-list--title{margin-left:8px;transition:color .25s ease}.selector-list--draggable:hover{cursor:grab}.selector-list--draggable:hover .selector-list--title{color:#d5d5dd}.selector-list--draggable:hover .selector-list--hamburger,.selector-list--draggable:hover .selector-list--hamburger:before,.selector-list--draggable:hover .selector-list--hamburger:after{background-color:#d5d5dd}.selector-list--menu{border-bottom:2px solid #333346;padding:8px}.selector-list--body{flex:1 1 0;overflow:hidden}.selector-list--empty{display:flex;flex-direction:column;text-align:center;align-items:center;justify-content:center;align-content:center;color:#68687b}.selector-list--empty>*{margin:4px 0}.selector-list--contents{padding:8px}.tabbed-page{display:flex;align-items:stretch;background-color:rgba(26,26,42,.25);border-radius:4px}.tabbed-page-nav{display:flex;flex-direction:column;align-items:stretch;flex:0 1 0;padding:32px;padding-right:0}.tabbed-page-nav--header{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;margin:32px;margin-left:0;display:flex;flex-direction:column;align-items:center;text-align:center}.tabbed-page-nav--header,.tabbed-page-nav--header:hover{cursor:default}.tabbed-page-nav--avatar{background-color:#1a1a2a}.tabbed-page-nav--description{font-weight:600;font-size:13px;line-height:15px;margin:0;margin-top:12px;color:#9e9ead}.tabbed-page-nav--tabs{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;display:flex;flex-direction:column;align-items:stretch}.tabbed-page-nav--tabs,.tabbed-page-nav--tabs:hover{cursor:default}.tabbed-page-nav--tab{border-radius:4px 0 0 4px;font-size:17px;height:50px;line-height:50px;padding:0 17px;color:#9e9ead;white-space:nowrap;transition:background-color .25s ease,color .25s ease}.tabbed-page-nav--tab:hover{background-color:rgba(26,26,42,.5);color:#d5d5dd;cursor:pointer}.tabbed-page-nav--tab.active{background-color:#1a1a2a;color:#f1f1f3}.tabbed-page-content{flex:1 0 0;background-color:#1a1a2a;border-radius:4px;min-height:500px;padding:32px}.tabbed-page-section--header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.time-machine-tables{display:flex;align-items:stretch;flex-wrap:nowrap;width:100%;height:100%}.time-machine-sidebar{flex:1 0 180px;background-color:#07070e;margin-right:4px;overflow:hidden;border-radius:2px;border:2px solid #1a1a2a}.time-machine-sidebar--heading{padding:10px;background:#1a1a2a;height:50px}.time-machine-sidebar--scroll{height:calc(100% - 50px) !important}.time-machines-sidebar--filter.form-control.cf-input-xs{font-size:12px}.time-machine-sidebar--items{width:100%;display:inline-flex;flex-direction:column}.time-machine-sidebar-item{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;color:#9e9ead;font-size:12px;font-weight:400;padding:8px 8px;transition:color .25s ease,background-color .25s ease;white-space:nowrap}.time-machine-sidebar-item,.time-machine-sidebar-item:hover{cursor:default}.time-machine-sidebar-item>span{padding-right:2px}.time-machine-sidebar-item>span.key,.time-machine-sidebar-item>span.equals{color:rgba(158,158,173,.7)}.time-machine-sidebar-item>span.value{font-weight:600;padding-right:8px;color:#9e9ead}.time-machine-sidebar-item:hover{background-color:#07070e;color:#9e9ead;cursor:pointer}.time-machine-sidebar-item:hover>span.key,.time-machine-sidebar-item:hover>span.equals{color:#9e9ead}.time-machine-sidebar-item:hover>span.value{color:#fff}.time-machine-sidebar-item.active{background-color:#1a1a2a;color:#fff}.time-machine-sidebar-item.active>span.key,.time-machine-sidebar-item.active>span.equals{color:#fff}.time-machine-sidebar-item.active>span.value{color:#00a3ff}.time-machine-table{flex:4 0 100px;border:2px solid #1a1a2a;border-radius:1px;overflow:hidden}.time-machine-table:only-child{border:1}.table-graph-cell{user-select:text !important;-o-user-select:text !important;-moz-user-select:text !important;-webkit-user-select:text !important;line-height:28px;padding:0 6px;font-size:12px;background-color:#07070e;font-weight:500;color:#9e9ead;border:1px solid #1a1a2a;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-graph-cell__highlight-row{color:#fff;background-color:#07070e}.table-graph-cell__numerical{font-family:\\\"Roboto Mono\\\",monospace;text-align:right}.table-graph-cell__fixed-row,.table-graph-cell__fixed-column{font-weight:700;color:#b9b9c5;background-color:#07070e}.table-graph-cell__fixed-row{border-top:0}.table-graph-cell__fixed-column{border-left:0}.table-graph-cell__fixed-corner{font-weight:700;border-top:0;border-left:0;color:#f1f1f3;background-color:#1a1a2a}.table-graph-cell__field-name{padding-right:17px}.table-graph-cell__field-name:before{font-family:\\\"Proxima Nova\\\",Helvetica,Arial,Tahoma,Verdana,sans-serif;content:\\\"\\\\e902\\\";font-size:17px;position:absolute;top:50%;right:6px;transform:translateY(-50%) rotate(180deg);font-size:13px;opacity:0;transition:opacity .25s ease,color .25s ease,transform .25s ease}.table-graph-cell__field-name:hover{cursor:pointer}.table-graph-cell__field-name:hover:before{opacity:1}.table-graph-cell__sort-asc,.table-graph-cell__sort-desc{color:#00a3ff}.table-graph-cell__sort-asc:before,.table-graph-cell__sort-desc:before{opacity:1}.table-graph-cell__sort-asc:before{transform:translateY(-50%) rotate(180deg)}.table-graph-cell__sort-desc:before{transform:translateY(-50%) rotate(0deg)}.time-machine-table.time-machine-table__light-mode{border-color:#d5d5dd}.time-machine-table.time-machine-table__light-mode .table-graph-cell{background-color:#fff;color:#68687b;border-color:#d5d5dd}.time-machine-table.time-machine-table__light-mode .table-graph-cell__highlight-row{color:#333346;background-color:#f1f1f3}.time-machine-table.time-machine-table__light-mode .table-graph-cell__fixed-row,.time-machine-table.time-machine-table__light-mode .table-graph-cell__fixed-column{color:#68687b;background-color:#f1f1f3}.time-machine-table.time-machine-table__light-mode .table-graph-cell__fixed-corner{color:#333346;background-color:#d5d5dd}.time-machine-table.time-machine-table__light-mode .table-graph-cell__sort-asc,.time-machine-table.time-machine-table__light-mode .table-graph-cell__sort-desc{color:#00a3ff}.time-machine-sidebar.time-machine-sidebar__light{background-color:#fff;border-color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar--heading{background:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item{color:#68687b}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item>span.key,.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item>span.equals{color:rgba(104,104,123,.7)}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item>span.value{color:#68687b}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item:hover{background-color:#f1f1f3;color:#68687b}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item:hover>span.key,.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item:hover>span.equals{color:#68687b}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item:hover>span.value{color:#333346}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item.active{background-color:#d5d5dd;color:#333346}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item.active>span.key,.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item.active>span.equals{color:#333346}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar-item.active>span.value{color:#00a3ff}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input{background-color:#f1f1f3;color:#4d4d60;border-color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input::-webkit-input-placeholder{color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input::-moz-placeholder{color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input:-ms-input-placeholder{color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input:-moz-placeholder{color:#d5d5dd}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter>input:focus{border-color:#00a3ff;background-color:#fff}.time-machine-sidebar.time-machine-sidebar__light .cf-input.time-machine-sidebar--filter:hover>input{background-color:#fff;border-color:#6bbcee}.time-machine-sidebar.time-machine-sidebar__light .cf-input.cf-input__focused.time-machine-sidebar--filter>.cf-input-icon{color:#00a3ff}.time-machine-sidebar.time-machine-sidebar__light .time-machine-sidebar--scroll .cf-dapper-scrollbars--track-y{background-color:#d5d5dd !important}.markdown-cell .cf-dapper-scrollbars--track-y{background-color:#07070e !important}.markdown-cell--contents{padding:12px 26px;font-size:1.2em}.markdown-format{color:#b9b9c5}.markdown-format p{font-size:var(--step-0);line-height:1.55em;font-weight:400}.markdown-format h3:not(.cf-heading){font-size:var(--step-3);font-weight:600;line-height:1.25em;border-bottom:2px solid #1a1a2a;padding-bottom:.25em}.markdown-format h4:not(.cf-heading){font-size:var(--step-2);font-weight:600;line-height:1.25em;border-bottom:2px solid #1a1a2a;padding-bottom:.25em}.markdown-format h5:not(.cf-heading){font-size:var(--step-1);font-weight:600;line-height:1.25em}.markdown-format strong{font-weight:900;color:#d5d5dd}.markdown-format table:not(.cf-table){border-collapse:collapse}.markdown-format td:not(.cf-table--cell),.markdown-format th:not(.cf-table--header-cell){padding:4px 8px;border:2px solid #333346}.markdown-format th:not(.cf-table--header-cell){background-color:#333346}.markdown-format code{border-radius:1px;margin:0;padding:2px 6px;color:#dd84f1;letter-spacing:0;font-weight:700;background-color:#07070e}.markdown-format pre{border-radius:1px;padding:6px;background-color:#07070e}.markdown-format pre code{padding:0}.markdown-format img{border-radius:2px;max-width:100%}.markdown-format>*:first-child{margin-top:0}.markdown-format>*:last-child{margin-bottom:0}.wizard-overlay{height:calc(100vh - 206px);width:100%;position:relative;display:inline-flex;flex-direction:column}.wizard-overlay>.wizard-contents{width:100%;min-width:100%;flex-grow:1;margin:0}.wizard--progress-bar{display:inline-flex;justify-content:center;align-items:center;align-self:center;width:100%;flex-shrink:0}.wizard--progress-icon{position:relative;font-size:0;height:0;width:0;border-radius:13px;background-color:#07070e;opacity:0;display:inline-flex;margin-right:0;flex-shrink:0;color:#4d4d60;transition:opacity .4s ease-in-out,width .4s ease-in-out,height .4s ease-in-out}.wizard--progress-icon>.icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.wizard--progress-icon.circle-thick{color:#4d4d60}.wizard--progress-icon.checkmark{color:#2fa74d}.wizard--progress-icon.current{color:#00a3ff}.wizard--progress-icon.remove{color:#f95f53}.wizard--progress-title{font-weight:700;color:#4d4d60;font-size:12px;transition:color .4s ease-in-out,font-size .4s ease-in-out}.wizard--progress-title.checkmark{color:#2fa74d}.wizard--progress-title.circle-thick{color:#4d4d60}.wizard--progress-title.current{color:#f1f1f3}.wizard--progress-title.remove{color:#f95f53}.wizard--progress-button{display:inline-flex;align-items:center;cursor:pointer;margin:0 4px;flex-shrink:1;text-align:center}.wizard--progress-button:hover .wizard--progress-title{color:#f1f1f3}.unclickable{cursor:default}.wizard--progress-connector{min-width:20px;width:100%;max-width:70px;margin:0 4px;height:2px;background-color:#4d4d60;position:relative;display:inline-block;border-radius:2px}.wizard--progress-connector:after{content:\\\"\\\\a\\\";position:absolute;background-color:#2fa74d;top:0;bottom:0;left:0;width:0;border-radius:2px;transition:all .5s}.wizard--progress-connector--none:after{width:0}.wizard--progress-connector--some:after{width:50%}.wizard--progress-connector--full:after{width:100%}@media screen and (min-width: 1080px){.wizard--progress-title{font-size:15px}.wizard--progress-button{flex-shrink:0}.wizard--progress-icon{font-size:12px;height:26px;width:26px;opacity:1;margin-right:8px}}.wizard--full-screen{position:relative;min-width:100%;min-height:100%;max-height:100%;padding:32px 64px;z-index:50;display:inline-flex;flex-direction:column;justify-content:space-between;align-items:center}.wizard--credits{font-size:13px;color:#828294;display:inline-flex;align-items:center}.wizard--credits span{margin:0 5px}.wizard--credits a{color:#828294;text-decoration:none}.wizard--credits a:hover,.wizard--credits a:active{color:#00a3ff}.wizard-overlay .wizard-contents{background-color:rgba(0,0,0,0);border-radius:0;margin:0}.wizard-overlay .wizard-step--container{background-color:rgba(0,0,0,0);border-radius:0;padding:0}.wizard-overlay .wizard-step--scroll-content{max-width:100%;justify-content:flex-start;min-height:0}.wizard-overlay .wizard-step--grid-container{width:90%}.wizard-overlay .wizard-step--scroll-area{border:0;border-radius:0}.wizard-overlay .responsive-grid-sizer{margin-top:32px}.wizard--progress-header{position:relative;background-color:#07070e;width:100%;height:60px;flex-shrink:0;padding:0 16px;display:inline-flex;justify-content:center;align-items:center;border-radius:4px;transition:height .4s ease-in-out}.wizard--progress-header.hidden{visibility:hidden}@media screen and (min-width: 750px){.wizard--progress-header{height:50px}}.zuora-outage-funnel-page .cf-funnel-page--content{display:flex;align-items:center;justify-content:center;flex-direction:column}.zuora-outage-funnel-page .cf-funnel-page--content>.zuora-outage-panel{margin:50px;font-size:large}.zuora-outage-panel{font-size:larger}.zuora-outage-panel>.zuora-outage-panel-body{text-align:left}.run-logs--list{width:100%;max-width:calc(100% - 60px) !important;height:100%}.run-logs--list-time{white-space:nowrap}.run-logs--list-message{white-space:pre-wrap;word-break:break-all}.run-logs--list-flux{position:relative;white-space:pre-wrap;word-break:break-all;width:100%;height:30vh}@supports(-moz-appearance: none){tr.run-log--list-row td{height:100%}}tr.run-log--list-row{height:30vh}.task-form{height:calc(100% - 32px);display:flex;align-items:stretch;background-color:#1a1a2a;border-radius:4px}.task-form--options{flex:1 0 140px;padding:32px;border-right:2px solid #4d4d60}.task-form--editor{position:relative;flex:6 0 0;border-radius:0 4px 4px 0}.task-form--form-label{height:30px;line-height:30px;font-size:13px;font-weight:600;color:#9e9ead;flex:1 0 60px;padding-left:11px}.bread-crumb-title{margin-right:10px}.pointer{cursor:pointer}.hidden-tasks-alert{font-size:13px;font-weight:600;margin-top:1px;width:100%;background-color:rgba(26,26,42,.5);text-align:center;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;color:#68687b;padding:8px;border-radius:4px;font-style:italic}.hidden-tasks-alert,.hidden-tasks-alert:hover{cursor:default}.task-header--cta{font-size:16px}.hidden-tasks-alert{font-size:13px;font-weight:600;margin-top:1px;width:100%;background-color:rgba(26,26,42,.5);text-align:center;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;color:#68687b;padding:8px;border-radius:4px;font-style:italic}.hidden-tasks-alert,.hidden-tasks-alert:hover{cursor:default}.task-header--cta{font-size:16px}.config-overlay{height:calc(100vh - 350px);width:100%;position:relative;display:inline-flex;flex-direction:column}.import-template-overlay,.import-template-overlay--empty{height:500px;display:flex}.import-template-overlay{align-items:stretch}.import-template-overlay--empty{background-color:#1a1a2a;border-radius:4px;align-content:center;align-items:center;justify-content:center}.community-templates-template-url{display:inline-block;margin-right:15px}.community-templates-template-url--feedback{margin-top:4px;font-weight:600;padding-left:24px}.community-templates-template-url--feedback__error{color:#ff8564}.community-templates-template-url--feedback__valid{color:#67d74e}.community-templates-installer{margin-top:16px}.community-templates--template-image{width:54px;height:54px}.community-templates--template-name{color:#fff}.community-templates--template-description{user-select:none;color:#bef0ff;margin:0;margin-top:8px}.community-templates--template-description strong{color:#fff;font-weight:700}.community-templates--item-description{color:#b9b9c5;margin:4px 0;line-height:1.125em}.community-templates--item-description:last-child{margin-bottom:0}.community-templates--item-description__blank{color:#68687b;font-style:italic}.community-templates--list-header{display:flex;align-items:center;padding:4px 0;transition:color .25s ease;color:#9e9ead}.community-templates--list-header:hover,.community-templates--list-group__expanded .community-templates--list-header{cursor:pointer;color:#f1f1f3}.community-templates--list-counter{margin-left:8px;opacity:.6}.community-templates--list-group-items{padding-left:32px}.community-templates--list-toggle{width:32px;height:32px;position:relative}.community-templates--list-toggle>.cf-icon{position:absolute;top:50%;left:50%;transition:transform .25s ease;transform:translate(-50%, -50%) rotate(0deg)}.community-templates--list-group__expanded .community-templates--list-toggle>.cf-icon{transform:translate(-50%, -50%) rotate(90deg)}.community-templates--resources-table{margin-left:1.4em}.community-templates--resources-table>tbody>tr>td{padding-right:8px;font-size:13px}.community-templates--resources-table-toggle{display:flex;align-items:center}.community-templates--resources-table-toggle:hover{cursor:pointer}.community-templates--resources-table-caret{margin-right:8px;transition:transform .25s ease}.community-templates--resources-table-caret__expanded{transform:rotate(90deg)}.community-templates--resources-table-toggle h6,.community-templates--resources-table-item{height:40px;line-height:40px}.community-templates--readme{padding-top:32px}.editor-shortcuts{width:250px}.editor-shortcuts h5{margin:8px 0 12px}.editor-shortcuts--body{font-size:14px;line-height:16px}.editor-shortcuts--body dt{padding-right:4px;font-weight:700;color:#f1f1f3;margin-top:8px}.editor-shortcuts--body dd{display:block}.flux-toolbar{display:flex;flex-direction:row;align-items:stretch;height:100%}.flux-toolbar--tabs{width:100%;display:flex;flex-direction:column;align-items:stretch;width:44px;flex:0 0 44px}.flux-toolbar--path{color:#828294;text-transform:uppercase;letter-spacing:.07em;border-radius:1px;border-bottom:2px solid #1a1a2a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;padding:8px 12px}.flux-toolbar--tab{border-radius:2px;flex:1 0 0;display:flex;justify-content:center;align-items:center;font-size:var(--step-0);line-height:var(--step-0);font-weight:600;background-color:#07070e;color:#68687b;margin-bottom:8px;transition:color .25s ease,background-color .25s ease;overflow:hidden}.flux-toolbar--tab:last-child{margin-bottom:0}.flux-toolbar--tab:hover{cursor:pointer;background-color:#11111c;color:#b9b9c5}.flux-toolbar--tab.flux-toolbar--tab__active{background-color:#1a1a2a;color:#d5d5dd}.flux-toolbar--tab-label{white-space:nowrap;transform:rotate(90deg)}.flux-toolbar--tab-contents{width:300px;background-color:#1a1a2a;flex:1 0 0;position:relative;border-radius:2px;overflow:hidden;margin-right:8px}.flux-toolbar--tab-contents .flux-toolbar{flex-direction:column;padding:8px 0}.flux-toolbar--search{padding:0 8px;display:flex;align-items:center;width:100%;height:56px}.flux-toolbar--scroll-area{height:calc(100% - 56px) !important}.flux-toolbar--list{width:100%;display:flex;flex-direction:column;align-items:stretch;flex-grow:1}.flux-toolbar--list-item,.flux-toolbar--heading{font-size:var(--step-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flux-toolbar--list-item{padding:24px 12px;height:33px;line-height:33px;font-family:\\\"Roboto Mono\\\",monospace;font-weight:700;transition:background-color .25s ease,color .25s ease;background-color:#1a1a2a;display:flex;align-items:center;justify-content:space-between}.flux-toolbar--list-item>code{font-size:var(--step-0);background-color:#07070e;border-radius:1px;padding:0 8px;height:33px;line-height:33px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background-color .25s ease,color .25s ease,text-shadow .25s ease}.flux-toolbar--list-item .flux-toolbar--injector{opacity:0;transition:opacity .25s ease,color .25s ease,box-shadow .25s ease}.flux-toolbar--list-item:hover{background-color:#1a1a2a}.flux-toolbar--list-item:hover>code{background-color:#07070e}.flux-toolbar--list-item:hover .flux-toolbar--injector{opacity:1}.flux-toolbar--list-item.flux-toolbar--new-style{cursor:pointer;background:none;font-weight:400;padding:8px 0}.flux-toolbar--list-item.flux-toolbar--new-style>code{color:#d5d5dd;background-color:none}.flux-toolbar--list-item.flux-toolbar--new-style:hover>code{background-color:#1a1a2a;color:#9394ff}.flux-toolbar--list-item.flux-toolbar--new-style:hover>code:after{content:\\\" +\\\"}.flux-toolbar--heading{padding:8px;padding-bottom:12px;font-weight:600;color:#d5d5dd;border-bottom:2px solid #333346;margin-bottom:4px}.flux-toolbar--variable>code{color:#67d74e}.flux-toolbar--variable:hover>code{color:#9bf445;text-shadow:0 0 4px #2fa74d}.flux-toolbar--function>code{color:#00c9ff}.flux-toolbar--function:hover>code{color:#6bdfff;text-shadow:0 0 4px #066fc5}.flux-toolbar--popover{font-size:13px;padding:20px}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.flux-function-docs{width:420px;height:330px}.flux-function-docs--heading{font-weight:700;margin-top:8px;margin-bottom:8px;display:inline-block;width:100%}article:first-child .flux-function-docs--heading{margin-top:0}.flux-function-docs--snippet{background-color:#07070e;border-radius:2px;margin:4px 0;padding:8px;font-family:\\\"Roboto Mono\\\",monospace}.flux-function-docs--arguments span:first-child{font-weight:700;color:#00a3ff;margin-right:4px}.flux-function-docs--arguments span:nth-child(2){color:#00a3ff;font-style:italic;margin-right:2px}.flux-function-docs--arguments span:nth-child(2).isRequired{color:#dc4e58}.flux-function-docs--arguments div{margin:4px 0 16px 0}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.time-machine-queries{width:100%;height:100%;display:inline-flex;flex-direction:column}.time-machine-queries--controls{display:flex;flex-direction:column;align-items:stretch;width:100%;background-color:#07070e;padding:4px;padding-bottom:0;border-radius:3px}.time-machine-queries--tabs{display:inline-flex;margin-right:8px;margin-bottom:4px;position:relative;flex:1 1 auto}.time-machine-queries--tabs::-webkit-scrollbar{height:0;width:0}.time-machine-queries--new{margin-left:2px}.time-machine-queries--buttons{display:inline-flex;flex:0 0 auto;flex-wrap:wrap}.time-machine-queries--buttons>*{margin-bottom:4px}.time-machine-queries--body{flex-grow:1;position:relative;height:100%}.time-machine-influxql-editor{position:absolute;top:0;right:0;bottom:0;left:0}.time-machine--editor-title{user-select:none;font-weight:500;padding-left:6px;color:#b9b9c5}.view-raw-data-toggle{display:flex;align-items:center;justify-content:space-between;margin-right:8px}.view-raw-data-toggle .cf-slide-toggle{margin-left:4px}@media screen and (min-width: 750px){.time-machine-queries--controls{flex-direction:row;align-items:center;justify-content:space-between;padding:4px}.time-machine-queries--tabs{margin-bottom:0}.time-machine-queries--buttons>*{margin-bottom:0}}span[data-testid=switch-query-builder-confirm--confirmation-label]{white-space:normal}.query-builder{position:absolute;top:0;right:0;left:0;bottom:0;padding-top:8px;display:flex;flex-direction:column;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.query-builder,.query-builder:hover{cursor:default}.query-builder--cards{flex:1 1 0;display:flex;justify-content:space-between}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.query-tab{background-color:#07070e;color:#828294;margin-right:2px;height:40px;border-radius:2px;display:inline-flex;flex:0 1 auto;justify-content:space-between;align-items:center;font-weight:600;padding:0 12px;font-size:var(--step-0);user-select:none;transition:background-color .25s ease,color .25s ease,opacity .25s ease}.query-tab .query-tab--hide{display:none;font-size:1.125em;margin-right:4px}.query-tab .query-tab--name{width:40px;margin-right:4px}.query-tab:hover{cursor:pointer;background-color:#1a1a2a;color:#d5d5dd}.query-tab__active{flex:0 0 auto;background:#1a1a2a;color:#d5d5dd}.query-tab__active .query-tab--hide{display:inline-flex}.query-tab__active .query-tab--name{width:auto}.query-tab--name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.query-tab--close,.query-tab--hide{color:rgba(213,213,221,.5);transition:color .25s ease}.query-tab--close:hover,.query-tab--hide:hover{color:#d5d5dd}.query-tab__hidden{font-style:italic;opacity:.5}.query-tab--timer{white-space:nowrap;flex:1 1 auto;font-weight:600;margin-right:8px;transition:opacity .25s;opacity:0}.query-tab--timer.query-tab--timer__visible{opacity:.5}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.selector-list--item{font-family:\\\"Roboto Mono\\\",monospace}.tag-selector--search{margin-top:4px;width:initial !important}.tag-selector--count{flex:0 0 30px;height:30px;background-color:#07070e;border-radius:50%;text-align:center;line-height:30px;font-weight:900;user-select:none;color:#00a3ff;font-size:13px}.time-machine{height:100%;flex:0 0 100%;user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.time-machine,.time-machine:hover{cursor:default}.time-machine--split{flex:0 0 calc(100% - 420px)}.time-machine--top,.time-machine--bottom{border-radius:4px;width:100%;height:100%;position:absolute}.time-machine--top{position:relative;background-color:rgba(26,26,42,.5)}.time-machine--bottom{display:flex;flex-direction:column;align-items:center}.time-machine--bottom-contents{width:100%;flex:0 0 100%}.time-machine--view{width:100%;height:100%;position:absolute;padding:16px}.time-machine--view__empty{background-position:center center;background-size:contain;background-repeat:no-repeat;background-image:url(\\\"../../assets/images/radial-power-level.svg\\\")}.time-machine--view__empty>.cell--view-empty{justify-content:flex-end}.flux-editor{position:absolute;top:8px;right:0;bottom:0;left:0;display:flex;flex-direction:row;align-items:stretch}.flux-editor--left-panel{flex:1 0 0;position:relative;border-radius:2px}.flux-editor--right-panel{margin-left:8px;display:flex}.qx-editor--monaco,.time-machine-editor--embedded{position:absolute;width:100%;height:100%}.qx-editor--monaco.qx-editor--monaco__autogrow,.qx-editor--monaco__autogrow.time-machine-editor--embedded{position:initial;top:initial;left:initial;width:initial;height:initial}.time-machine-editor--embedded{border-radius:2px;border:2px solid #333346;overflow:hidden}.time-machine-editor--loading{width:100%;height:100%;position:relative;background:#292933}.time-machine-editor--loading:after{content:\\\"\\\";position:absolute;background:#202028;top:8px;bottom:8px;left:24px;right:8px}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.view-options--wrap{flex:0 0 412px;height:100%;background-color:#1a1a2a;margin-right:8px;border-radius:4px}.view-options{padding:32px}.view-options>.cf-grid--container>.cf-grid--row>.cf-grid--column{width:100% !important}.view-options-container h5:first-child{margin-top:0}.view-options--header{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;font-weight:500;color:#9e9ead}.view-options--header,.view-options--header:hover{cursor:default}h4.view-options--header{font-size:16px;padding-top:16px;border-top:2px solid #333346;margin-top:8px;margin-bottom:16px}*:first-child>h4.view-options--header{margin-top:0;padding-top:0;border-top:0}h5.view-options--header{font-size:14px;border-bottom:2px solid #333346;margin-bottom:16px;padding-bottom:4px}.view-options--checkbox{margin-bottom:16px}.column-option{font-family:\\\"Roboto Mono\\\",monospace;font-size:11px}.builder-card--list{display:flex;flex:1 1 0;flex-wrap:nowrap;position:absolute;height:100%}.builder-card--list>*{margin-left:4px;margin-right:4px}.builder-card--list>*:first-child{margin-left:0}.builder-card--list>*:last-child{margin-right:0}.builder-card{border-radius:4px;background-color:#1a1a2a;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;position:relative}.builder-card--header{flex:0 0 32px;background-color:#1a1a2a;display:flex;align-items:center;justify-content:space-between}.builder-card--title{display:inline-block;margin:0 10px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:0;color:#9e9ead}.builder-card--delete{flex:0 0 32px;height:32px;position:relative}.builder-card--delete:before,.builder-card--delete:after{content:\\\"\\\";position:absolute;top:50%;left:50%;width:14px;height:2px;border-radius:1px;background-color:#68687b;transition:background-color .25s ease}.builder-card--delete:before{transform:translate(-50%, -50%) rotate(45deg)}.builder-card--delete:after{transform:translate(-50%, -50%) rotate(-45deg)}.builder-card--delete:hover{cursor:pointer}.builder-card--delete:hover:before,.builder-card--delete:hover:after{background-color:#ff8564}.builder-card--hamburger{flex:0 0 16px;height:2px;border-radius:1px;background-color:#4d4d60;margin-left:10px;position:relative;transition:background-color .25s ease}.builder-card--hamburger:before,.builder-card--hamburger:after{content:\\\"\\\";position:absolute;top:0;width:100%;height:100%;background-color:#4d4d60;border-radius:1px;transition:background-color .25s ease}.builder-card--hamburger:before{transform:translateY(-200%)}.builder-card--hamburger:after{transform:translateY(200%)}.builder-card--draggable{display:flex;align-items:center;height:32px;flex:1 0 0}.builder-card--draggable .builder-card--title{margin-left:8px;transition:color .25s ease}.builder-card--draggable:hover{cursor:grab}.builder-card--draggable:hover .builder-card--title{color:#d5d5dd}.builder-card--draggable:hover .builder-card--hamburger,.builder-card--draggable:hover .builder-card--hamburger:before,.builder-card--draggable:hover .builder-card--hamburger:after{background-color:#d5d5dd}.aggregation-selector{border-left:2px solid #07070e}.builder-card--menu{border-bottom:2px solid #333346;padding:8px}.builder-card--menu.aggregation-selector-menu{padding:12px 8px}.builder-card--body{flex:1 1 0;overflow:hidden}.builder-card--body.aggregation-selector-body{flex:unset;padding:12px 8px 24px 8px;overflow:visible}.builder-card--empty{display:flex;flex-direction:column;text-align:center;align-items:center;justify-content:center;align-content:center;color:#68687b}.builder-card--empty>*{margin:4px 0}.builder-card--contents{padding:8px}.builder-card--list>.query-builder--add-card-button{height:100%;background-color:#1a1a2a;border-color:#1a1a2a;flex-grow:0;flex-shrink:0}.cf-input-label.fill-values-checkbox--label{color:#9e9ead}.duration-input{position:relative;width:100%}.duration-input--menu{position:absolute;top:100%;left:0;right:0;background:#1a1a2a;z-index:100}.usage--billing-header.cf-panel--header{justify-content:flex-start}.usage--panel .panel--body{position:relative}.billing-stats--panel{margin-bottom:16px !important}.billing-stats--panel .cf-panel{margin-bottom:4px}@media screen and (min-width: 1080px){.billing-stats--panel .cf-panel{margin-bottom:0}}.usage-tooltip{margin-left:8px}.billing-stats--graph-body{min-height:120px}.panel-body--size{position:relative;min-height:75px}.user-list-invite--form-panel{margin-bottom:36px;padding-bottom:0px}.user-list-invite--form-panel .user-list-invite--form-heading{color:#bef0ff;font-size:var(--step-3);font-weight:700;margin-bottom:0px;padding-bottom:0px}.user-list-invite--form{display:inline-flex;flex-direction:row;justify-content:flex-start;align-items:flex-end}.user-list-invite--form .element{margin-right:8px;flex-basis:150px}.user-list-invite--form .element label{color:#bef0ff}.user-list-invite--form .email--input{flex-grow:1;max-width:450px}.user-list-invite--instructions{font-weight:500 !important;margin-bottom:12px !important}.user-role--dropdown--button,.user-role--dropdown-item,.user-role--dropdown-item,.user-list-cell-role,.user-list-cell-role,.user-list-cell-status{text-transform:capitalize}.user-list-email{font-weight:bold}.overlay-flux-editor{position:relative;height:300px}.overlay-flux-editor--spacing{margin-bottom:16px}.variable-dropdown{display:flex;flex-direction:row;align-items:center;border-radius:2px;background-color:#333346;margin-right:2px;margin-top:6px}.variable-dropdown .select__input-container{color:#fff}.variable-dropdown__dragging{border-color:#ce58eb;box-shadow:0 0 4px 1px #8e1fc3}.variable-dropdown__dragging+.variable-dropdown{pointer-events:none}.variable-dropdown--label{user-select:none;line-height:30px;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;background-attachment:fixed;display:flex}.variable-dropdown--label>span{display:inline-block;padding:0 9px;padding-left:7px;color:#ce58eb;transition:color .25s ease}.variable-dropdown__dragging .variable-dropdown--label>span{color:#ebadf8}.variable-dropdown--drag{display:inline-block;width:20px;height:30px;position:relative;opacity:1}.variable-dropdown--drag .hamburger{width:10px;height:2px;border-radius:1px;position:absolute;top:50%;right:0;background-color:#be2ee4;transition:background-color .25s ease;transform:translate(0, -50%)}.variable-dropdown--drag .hamburger:before,.variable-dropdown--drag .hamburger:after{content:\\\"\\\";position:absolute;display:block;width:100%;height:100%;background-color:#be2ee4;transition:background-color .25s ease;border-radius:1px;left:0}.variable-dropdown--drag .hamburger:before{top:-4px}.variable-dropdown--drag .hamburger:after{top:4px}.variable-dropdown--drag:hover .hamburger,.variable-dropdown--drag:hover .hamburger:before,.variable-dropdown--drag:hover .hamburger:after{background-color:#ebadf8}.variable-dropdown__dragging .variable-dropdown--drag .hamburger,.variable-dropdown__dragging .variable-dropdown--drag .hamburger:before,.variable-dropdown__dragging .variable-dropdown--drag .hamburger:after{background-color:#ebadf8}.variable-dropdown--item{font-family:\\\"Roboto Mono\\\",monospace}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.view-type-dropdown .cf-dropdown-item--children,.view-type-dropdown .cf-dropdown--selected{display:flex;align-items:center}.view-type-dropdown .cf-dropdown--selected .view-type-dropdown--name{margin-left:8px}.view-type-dropdown .cf-dropdown--selected .view-type-dropdown--graphic{width:20px;height:20px}.view-type-dropdown--name{margin-left:10px}.view-type-dropdown--graphic{width:40px;height:40px}.vis-graphic--line{stroke-width:1px;fill:none;stroke-linecap:round;stroke-miterlimit:10}.vis-graphic--line-a{stroke:#9e9ead}.vis-graphic--line-b{stroke:#68687b}.vis-graphic--line-c{stroke:#4d4d60}.vis-graphic--line-d{stroke:#b9b9c5}.vis-graphic--line-e{stroke:#67d74e;stroke-width:4px}.vis-graphic--fill-a{fill:#9e9ead}.vis-graphic--fill-b{fill:#68687b}.vis-graphic--fill-c{fill:#4d4d60}.vis-graphic--fill-d{fill:#b9b9c5;opacity:1}.vis-graphic--line-a{stroke:#00c9ff}.vis-graphic--line-b{stroke:#ce58eb}.vis-graphic--line-c{stroke:#67d74e}.vis-graphic--line-d{stroke:#f1f1f3}.vis-graphic--fill-a{fill:#00c9ff}.vis-graphic--fill-b{fill:#ce58eb}.vis-graphic--fill-c{fill:#67d74e}.vis-graphic--fill-e{fill:#67d74e;opacity:.3}.vis-graphic--fill-a,.vis-graphic--fill-b,.vis-graphic--fill-c{opacity:.8}.vis-graphic--fill-d{fill:#f1f1f3;opacity:1}.color-scheme-dropdown-item{display:flex;justify-content:flex-start;align-items:center}.color-scheme-dropdown-item--swatches{width:90px;height:8px;border-radius:4px;margin-right:10px}.value-tick-input--custom{padding-top:8px}.view-options--band-column-dropdown-error{margin:4px;color:#dc4e58}.cell--view-empty,.wizard--credits{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important}.cell--view-empty,.wizard--credits{cursor:default}.context-menu--list{box-shadow:0 0 10px 2px #07070e}.plugin-create-configuration-name-row,.plugin-create-configuration-description-row{display:flex;align-items:flex-end}.plugin-create-configuration-copy-to-clipboard--button,.plugin-create-configuration-download--button{margin-bottom:8px}.plugin-create-configuration-customize-editor,.plugin-edit-configuration--editor{margin-top:8px;height:55vh;width:100%;position:relative;display:inline-flex;flex-direction:column}.plugin-create-configuration--agent-notification{font-weight:900;font-size:var(--step-2);color:#ff4d96}.plugin-create-configuration--popover-contents{font-size:var(--step--1)}.csv-upload--button{margin:10px;min-width:100px}.write-data--uploader-wrapper{margin:1em 0}.cf-resource-card{margin-bottom:2px}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".hover-legend-toggle,.legend-orientation-toggle,.legend-opacity-slider,.legend-colorize-rows-toggle{margin-top:8px;margin-bottom:16px}.hover-legend-toggle label.legend-orientation-label,.legend-orientation-toggle label.legend-orientation-label,.legend-opacity-slider label.legend-orientation-label,.legend-colorize-rows-toggle label.legend-orientation-label{color:#9e9ead}.legend-orientation--horizontal{margin-bottom:8px !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/visualization/components/internal/LegendOptions.scss\"],\"names\":[],\"mappings\":\"AAAA,oGAAoG,cAAc,CAAC,kBAAkB,CAAC,gOAAgO,aAAa,CAAC,gCAAgC,4BAA4B\",\"sourcesContent\":[\".hover-legend-toggle,.legend-orientation-toggle,.legend-opacity-slider,.legend-colorize-rows-toggle{margin-top:8px;margin-bottom:16px}.hover-legend-toggle label.legend-orientation-label,.legend-orientation-toggle label.legend-orientation-label,.legend-opacity-slider label.legend-orientation-label,.legend-colorize-rows-toggle label.legend-orientation-label{color:#9e9ead}.legend-orientation--horizontal{margin-bottom:8px !important}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".static-legend-options .latest-axis-label{color:#9e9ead}.latest-y-axis{margin-bottom:8px}.static-legend-height-slider{margin-bottom:16px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/visualization/components/internal/StaticLegend.scss\"],\"names\":[],\"mappings\":\"AAAA,0CAA0C,aAAa,CAAC,eAAe,iBAAiB,CAAC,6BAA6B,kBAAkB\",\"sourcesContent\":[\".static-legend-options .latest-axis-label{color:#9e9ead}.latest-y-axis{margin-bottom:8px}.static-legend-height-slider{margin-bottom:16px}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".mapTypeOptions{display:grid;grid-template-columns:repeat(4, 1fr)}.allowPanAndZoom{display:grid;grid-template-columns:1fr 1fr;width:100%}.allowPanZoomInput{left:20px;justify-self:end}.geo-dropdowns{flex:\\\"0 0 120px\\\";padding-bottom:10px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/visualization/types/Map/GeoOptions.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB,YAAY,CAAC,oCAAoC,CAAC,iBAAiB,YAAY,CAAC,6BAA6B,CAAC,UAAU,CAAC,mBAAmB,SAAS,CAAC,gBAAgB,CAAC,eAAe,gBAAgB,CAAC,mBAAmB\",\"sourcesContent\":[\".mapTypeOptions{display:grid;grid-template-columns:repeat(4, 1fr)}.allowPanAndZoom{display:grid;grid-template-columns:1fr 1fr;width:100%}.allowPanZoomInput{left:20px;justify-self:end}.geo-dropdowns{flex:\\\"0 0 120px\\\";padding-bottom:10px}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.customizable-field{width:100%;display:flex;flex-wrap:nowrap;align-items:center;height:30px;margin-top:4px}.customizable-field:first-of-type{margin-top:0}.customizable-field.dragging{border-radius:4px;opacity:.4;background:#00a3ff;background:-moz-linear-gradient(left, #00a3ff 0%, #be2ee4 100%);background:-webkit-linear-gradient(left, #00a3ff 0%, #be2ee4 100%);background:linear-gradient(to right, #00a3ff 0%, #be2ee4 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.customizable-field.dragging>*{opacity:0}.customizable-field--label,.customizable-field--label__hidden{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;height:30px;display:flex;flex-wrap:nowrap;align-items:center;padding:0 11px 0 0;border-radius:4px;width:100%;transition:background-color .25s ease,color .25s ease}.customizable-field--label,.customizable-field--label:hover,.customizable-field--label__hidden,.customizable-field--label__hidden:hover{cursor:default}.customizable-field--label>span,.customizable-field--label__hidden>span{margin-right:5px}.customizable-field--label{color:#b9b9c5;background-color:#333346}.customizable-field--label__hidden{background-color:#1a1a2a;color:#4d4d60;font-style:italic}.customizable-field--input{margin-left:4px;width:calc(40% - 4px);display:flex;align-items:center;height:100%}.customizable-field .input-cte__empty{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customizable-field--name{flex:1 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;font-size:13px;margin-left:6px}.customizable-field--drag,.customizable-field--visibility{display:inline-block;width:30px;height:30px;position:relative}.customizable-field--drag:hover,.customizable-field--visibility:hover{cursor:grab}.customizable-field--visibility{width:18px}.customizable-field--drag .hamburger,.customizable-field--visibility .cf-icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.customizable-field--drag .hamburger{width:10px;height:2px;background-color:#9e9ead;transition:background-color .25s ease;border-radius:1px}.customizable-field--drag .hamburger:before,.customizable-field--drag .hamburger:after{position:absolute;display:block;content:\\\"\\\";width:100%;height:100%;background-color:#9e9ead;transition:background-color .25s ease;border-radius:1px;left:0}.customizable-field--drag .hamburger:before{top:-4px}.customizable-field--drag .hamburger:after{top:4px}.customizable-field--label__hidden .customizable-field--drag .hamburger,.customizable-field--label__hidden .customizable-field--drag .hamburger:before,.customizable-field--label__hidden .customizable-field--drag .hamburger:after{background-color:#4d4d60}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/visualization/types/Table/options.scss\"],\"names\":[],\"mappings\":\"AAAA,WAAW,eAAe,CAAC,YAAY,gBAAgB,CAAC,aAAa,iBAAiB,CAAC,QAAQ,YAAY,CAAC,cAAc,CAAC,wBAAwB,0BAA0B,CAAC,sBAAsB,wBAAwB,CAAC,oBAAoB,sBAAsB,CAAC,2BAA2B,6BAA6B,CAAC,0BAA0B,4BAA4B,CAAC,wBAAwB,sBAAsB,CAAC,sBAAsB,oBAAoB,CAAC,oBAAoB,kBAAkB,CAAC,qBAAqB,mBAAmB,CAAC,sBAAsB,oBAAoB,CAAC,wBAAwB,wBAAwB,CAAC,sBAAsB,sBAAsB,CAAC,oBAAoB,oBAAoB,CAAC,qBAAqB,qBAAqB,CAAC,2BAA2B,2BAA2B,CAAC,0BAA0B,0BAA0B,CAAC,aAAa,mBAAmB,CAAC,oBAAoB,0BAA0B,CAAC,iBAAiB,uBAAuB,CAAC,kBAAkB,wBAAwB,CAAC,mBAAmB,yBAAyB,CAAC,cAAc,oBAAoB,CAAC,qBAAqB,2BAA2B,CAAC,kBAAkB,wBAAwB,CAAC,mBAAmB,yBAAyB,CAAC,oBAAoB,0BAA0B,CAAC,oBAAoB,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,CAAC,cAAc,CAAC,kCAAkC,YAAY,CAAC,6BAA6B,iBAAiB,CAAC,UAAU,CAAC,kBAAkB,CAAC,+DAA+D,CAAC,kEAAkE,CAAC,8DAA8D,CAAC,wHAAwH,CAAC,+BAA+B,SAAS,CAAC,8DAA8D,2BAA2B,CAAC,gCAAgC,CAAC,mCAAmC,CAAC,+BAA+B,CAAC,8BAA8B,CAAC,WAAW,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,UAAU,CAAC,qDAAqD,CAAC,wIAAwI,cAAc,CAAC,wEAAwE,gBAAgB,CAAC,2BAA2B,aAAa,CAAC,wBAAwB,CAAC,mCAAmC,wBAAwB,CAAC,aAAa,CAAC,iBAAiB,CAAC,2BAA2B,eAAe,CAAC,qBAAqB,CAAC,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,sCAAsC,kBAAkB,CAAC,eAAe,CAAC,sBAAsB,CAAC,0BAA0B,UAAU,CAAC,kBAAkB,CAAC,eAAe,CAAC,sBAAsB,CAAC,eAAe,CAAC,cAAc,CAAC,eAAe,CAAC,0DAA0D,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,sEAAsE,WAAW,CAAC,gCAAgC,UAAU,CAAC,8EAA8E,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,qCAAqC,UAAU,CAAC,UAAU,CAAC,wBAAwB,CAAC,qCAAqC,CAAC,iBAAiB,CAAC,uFAAuF,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,wBAAwB,CAAC,qCAAqC,CAAC,iBAAiB,CAAC,MAAM,CAAC,4CAA4C,QAAQ,CAAC,2CAA2C,OAAO,CAAC,qOAAqO,wBAAwB\",\"sourcesContent\":[\".text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.u-flex{display:flex;flex-wrap:wrap}.u-flex.u-jc-flex-start{justify-content:flex-start}.u-flex.u-jc-flex-end{justify-content:flex-end}.u-flex.u-jc-center{justify-content:center}.u-flex.u-jc-space-between{justify-content:space-between}.u-flex.u-jc-space-around{justify-content:space-around}.u-flex.u-ai-flex-start{align-items:flex-start}.u-flex.u-ai-flex-end{align-items:flex-end}.u-flex.u-ai-center{align-items:center}.u-flex.u-ai-stretch{align-items:stretch}.u-flex.u-ai-baseline{align-items:baseline}.u-flex.u-ac-flex-start{align-content:flex-start}.u-flex.u-ac-flex-end{align-content:flex-end}.u-flex.u-ac-center{align-content:center}.u-flex.u-ac-stretch{align-content:stretch}.u-flex.u-ac-space-between{align-content:space-between}.u-flex.u-ac-space-around{align-content:space-around}.margin-zero{margin:0 !important}.margin-bottom-zero{margin-bottom:0 !important}.margin-top-zero{margin-top:0 !important}.margin-left-zero{margin-left:0 !important}.margin-right-zero{margin-right:0 !important}.padding-zero{padding:0 !important}.padding-bottom-zero{padding-bottom:0 !important}.padding-top-zero{padding-top:0 !important}.padding-left-zero{padding-left:0 !important}.padding-right-zero{padding-right:0 !important}.customizable-field{width:100%;display:flex;flex-wrap:nowrap;align-items:center;height:30px;margin-top:4px}.customizable-field:first-of-type{margin-top:0}.customizable-field.dragging{border-radius:4px;opacity:.4;background:#00a3ff;background:-moz-linear-gradient(left, #00a3ff 0%, #be2ee4 100%);background:-webkit-linear-gradient(left, #00a3ff 0%, #be2ee4 100%);background:linear-gradient(to right, #00a3ff 0%, #be2ee4 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"$startColor\\\", endColorstr=\\\"$endColor\\\",GradientType=1 )}.customizable-field.dragging>*{opacity:0}.customizable-field--label,.customizable-field--label__hidden{user-select:none !important;-moz-user-select:none !important;-webkit-user-select:none !important;-ms-user-select:none !important;-o-user-select:none !important;height:30px;display:flex;flex-wrap:nowrap;align-items:center;padding:0 11px 0 0;border-radius:4px;width:100%;transition:background-color .25s ease,color .25s ease}.customizable-field--label,.customizable-field--label:hover,.customizable-field--label__hidden,.customizable-field--label__hidden:hover{cursor:default}.customizable-field--label>span,.customizable-field--label__hidden>span{margin-right:5px}.customizable-field--label{color:#b9b9c5;background-color:#333346}.customizable-field--label__hidden{background-color:#1a1a2a;color:#4d4d60;font-style:italic}.customizable-field--input{margin-left:4px;width:calc(40% - 4px);display:flex;align-items:center;height:100%}.customizable-field .input-cte__empty{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customizable-field--name{flex:1 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;font-size:13px;margin-left:6px}.customizable-field--drag,.customizable-field--visibility{display:inline-block;width:30px;height:30px;position:relative}.customizable-field--drag:hover,.customizable-field--visibility:hover{cursor:grab}.customizable-field--visibility{width:18px}.customizable-field--drag .hamburger,.customizable-field--visibility .cf-icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.customizable-field--drag .hamburger{width:10px;height:2px;background-color:#9e9ead;transition:background-color .25s ease;border-radius:1px}.customizable-field--drag .hamburger:before,.customizable-field--drag .hamburger:after{position:absolute;display:block;content:\\\"\\\";width:100%;height:100%;background-color:#9e9ead;transition:background-color .25s ease;border-radius:1px;left:0}.customizable-field--drag .hamburger:before{top:-4px}.customizable-field--drag .hamburger:after{top:4px}.customizable-field--label__hidden .customizable-field--drag .hamburger,.customizable-field--label__hidden .customizable-field--drag .hamburger:before,.customizable-field--label__hidden .customizable-field--drag .hamburger:after{background-color:#4d4d60}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./styles.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./styles.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./styles.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./styles.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./Threshold.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./Threshold.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./styles.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./styles.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./styles.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./styles.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./view.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./view.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/css-unicode-loader/index.js!../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./ErrorThresholds.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/css-unicode-loader/index.js!../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./ErrorThresholds.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./style.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/css-unicode-loader/index.js!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./chronograf.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/css-unicode-loader/index.js!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./chronograf.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./LegendOptions.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/css-unicode-loader/index.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./LegendOptions.scss\";\n export default content && content.locals ? content.locals : undefined;\n","// Libraries\nimport React, {ReactElement, PureComponent} from 'react'\nimport {Switch, Route, RouteComponentProps} from 'react-router-dom'\nimport {connect, ConnectedProps} from 'react-redux'\n\n// Components\nimport {ErrorHandling} from 'src/shared/decorators/errors'\nimport {SpinnerContainer, TechnoSpinner} from '@influxdata/clockface'\nimport {GetFlags} from 'src/shared/containers/GetFlags'\n\n// Utils\nimport {\n getFromLocalStorage,\n removeFromLocalStorage,\n setToLocalStorage,\n} from 'src/localStorage'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\nimport {getPublicFlags} from 'src/shared/thunks/flags'\n\n// Actions\nimport {getQuartzIdentityThunkNoErrorHandling} from 'src/identity/actions/thunks'\nimport {getIdpeMeThunk} from 'src/me/actions/thunks'\nimport {notify as notifyAction} from 'src/shared/actions/notifications'\n\n// Constants\nimport {sessionTimedOut} from 'src/shared/copy/notifications'\nimport {\n CLOUD,\n CLOUD_LOGIN_PATHNAME,\n CLOUD_QUARTZ_URL,\n} from 'src/shared/constants'\n\n// Types\nimport {RemoteDataState} from 'src/types'\n\n// APIs\nimport {fetchIdentity, fetchLegacyIdentity} from './identity/apis/auth'\n\ninterface State {\n loading: RemoteDataState\n isAuthenticated: boolean\n}\n\ninterface OwnProps {\n children: ReactElement\n}\n\ntype ReduxProps = ConnectedProps\ntype Props = OwnProps & RouteComponentProps & ReduxProps\n\nconst FETCH_WAIT = 60000\n\n@ErrorHandling\nclass AuthenticateUnconnected extends PureComponent {\n public state: State = {\n loading: RemoteDataState.NotStarted,\n isAuthenticated: false,\n }\n\n private hasMounted = false\n private intervalID: NodeJS.Timer\n\n private handleAuthenticationFailure = error => {\n this.setState({isAuthenticated: false})\n const {\n location: {pathname},\n } = this.props\n\n clearInterval(this.intervalID)\n\n if (CLOUD) {\n if (\n isFlagEnabled('useQuartzLogin') &&\n process.env.NODE_ENV &&\n process.env.NODE_ENV !== 'development'\n ) {\n window.location.href = CLOUD_QUARTZ_URL\n return\n }\n\n const url = new URL(\n `${window.location.origin}${CLOUD_LOGIN_PATHNAME}?redirectTo=${window.location.href}`\n )\n setToLocalStorage('redirectTo', window.location.href)\n window.location.href = url.href\n throw error\n }\n\n if (pathname.startsWith('/signin')) {\n return\n }\n\n let returnTo = ''\n\n if (pathname !== '/') {\n returnTo = `?returnTo=${pathname}`\n this.props.notify(sessionTimedOut())\n }\n\n this.props.history.replace(`/signin${returnTo}`)\n }\n\n private fetchMe = async () => {\n try {\n if (CLOUD) {\n await this.props.getQuartzIdentityThunkNoErrorHandling()\n // TODO: completing https://github.com/influxdata/ui/issues/5826 will make this\n // line unnecessary\n await this.props.getIdpeMeThunk()\n } else {\n await this.props.getIdpeMeThunk()\n }\n\n this.setState({isAuthenticated: true})\n const redirectIsSet = !!getFromLocalStorage('redirectTo')\n if (redirectIsSet) {\n removeFromLocalStorage('redirectTo')\n }\n } catch (error) {\n this.handleAuthenticationFailure(error)\n }\n }\n\n private authenticate = async () => {\n try {\n if (CLOUD) {\n await fetchIdentity()\n } else {\n await fetchLegacyIdentity()\n }\n\n this.setState({isAuthenticated: true})\n const redirectIsSet = !!getFromLocalStorage('redirectTo')\n if (redirectIsSet) {\n removeFromLocalStorage('redirectTo')\n }\n } catch (error) {\n this.handleAuthenticationFailure(error)\n }\n }\n\n public async componentDidMount() {\n this.hasMounted = true\n this.setState({loading: RemoteDataState.Loading})\n\n // TODO: move this call up one layer into Setup\n if (CLOUD) {\n await this.props.onGetPublicFlags()\n }\n\n await this.fetchMe()\n\n if (this.hasMounted) {\n this.setState({loading: RemoteDataState.Done})\n this.intervalID = setInterval(() => {\n this.authenticate()\n }, FETCH_WAIT)\n }\n }\n\n public componentWillUnmount() {\n clearInterval(this.intervalID)\n this.hasMounted = false\n }\n\n public render() {\n const {loading, isAuthenticated} = this.state\n\n return (\n }>\n {isAuthenticated && (\n \n \n \n )}\n \n )\n }\n}\n\nconst mdtp = {\n notify: notifyAction,\n onGetPublicFlags: getPublicFlags,\n getQuartzIdentityThunkNoErrorHandling,\n getIdpeMeThunk,\n}\n\nconst connector = connect(null, mdtp)\n\nexport const Authenticate = connector(AuthenticateUnconnected)\n","// Libraries\nimport React, {ReactElement, PureComponent, Suspense, lazy} from 'react'\nimport {connect, ConnectedProps} from 'react-redux'\nimport {Switch, Route, RouteComponentProps} from 'react-router-dom'\n\n// APIs\nimport {getSetup} from 'src/client'\n\n// Components\nimport {ErrorHandling} from 'src/shared/decorators/errors'\nimport {getPublicFlags} from 'src/shared/thunks/flags'\nimport PageSpinner from 'src/perf/components/PageSpinner'\nimport {CloudLoginPage} from 'src/onboarding/containers/CloudLoginPage'\n// lazy loading the Authenticate component causes wasm issues\nimport {Authenticate} from 'src/Authenticate'\n\nconst OnboardingWizardPage = lazy(\n () => import('src/onboarding/containers/OnboardingWizardPage')\n)\nconst OSSLoginPage = lazy(\n () => import('src/onboarding/containers/OSSLoginPage')\n)\nconst Logout = lazy(() => import('src/Logout'))\nconst ReadOnlyNotebook = lazy(() => import('src/flows/components/ReadOnly'))\n\n// Utils\nimport {isOnboardingURL} from 'src/onboarding/utils'\n\n// Types\nimport {RemoteDataState} from 'src/types'\nimport {CLOUD} from 'src/shared/constants'\n\ninterface State {\n loading: RemoteDataState\n shouldShowOnboarding: boolean\n}\n\ninterface OwnProps {\n children: ReactElement\n}\n\ntype ReduxProps = ConnectedProps\ntype Props = OwnProps & RouteComponentProps & ReduxProps\n\n@ErrorHandling\nexport class SetupUnconnected extends PureComponent {\n constructor(props: Props) {\n super(props)\n\n this.state = {\n loading: RemoteDataState.NotStarted,\n shouldShowOnboarding: false,\n }\n }\n\n public async componentDidMount() {\n const {history} = this.props\n\n if (CLOUD) {\n await this.props.getPublicFlags()\n }\n\n if (isOnboardingURL()) {\n this.setState({\n loading: RemoteDataState.Done,\n })\n return\n }\n\n const resp = await getSetup({})\n\n if (resp.status !== 200) {\n throw new Error('There was an error onboarding')\n }\n\n const shouldShowOnboarding = resp.data.allowed\n\n this.setState({\n loading: RemoteDataState.Done,\n shouldShowOnboarding,\n })\n\n if (shouldShowOnboarding) {\n history.push('/onboarding/0')\n return\n }\n }\n\n async componentDidUpdate(prevProps: Props, prevState: State) {\n if (!prevState.shouldShowOnboarding) {\n return\n }\n\n if (prevProps.location.pathname.includes('/onboarding/2')) {\n this.setState({loading: RemoteDataState.Loading})\n const resp = await getSetup({})\n\n if (resp.status !== 200) {\n throw new Error('There was an error onboarding')\n }\n\n const shouldShowOnboarding = resp.data.allowed\n this.setState({shouldShowOnboarding, loading: RemoteDataState.Done})\n }\n }\n\n public render() {\n const {loading, shouldShowOnboarding} = this.state\n\n return (\n \n }>\n {shouldShowOnboarding ? (\n \n ) : (\n \n \n \n \n \n \n \n \n )}\n \n \n )\n }\n}\n\nconst mdtp = {\n getPublicFlags: getPublicFlags,\n}\n\nconst connector = connect(null, mdtp)\n\nexport const Setup = connector(SetupUnconnected)\n","// Types\nimport {\n RemoteDataState,\n CheckTagSet,\n Threshold,\n CheckStatusLevel,\n CheckType,\n Check,\n} from 'src/types'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\nexport const resetAlertBuilder = () => ({\n type: 'RESET_ALERT_BUILDER' as 'RESET_ALERT_BUILDER',\n})\n\nexport const initializeAlertBuilder = (type: CheckType) => ({\n type: 'INIT_ALERT_BUILDER' as 'INIT_ALERT_BUILDER',\n payload: {type},\n})\n\nexport const setAlertBuilderCheck = (check: Check) => ({\n type: 'SET_ALERT_BUILDER_CHECK' as 'SET_ALERT_BUILDER_CHECK',\n payload: {check},\n})\n\nexport const setAlertBuilderCheckStatus = (status: RemoteDataState) => ({\n type: 'SET_ALERT_BUILDER_STATUS' as 'SET_ALERT_BUILDER_STATUS',\n payload: {status},\n})\n\nexport const changeCheckType = (toType: CheckType) => ({\n type: 'SET_ALERT_BUILDER_TYPE' as 'SET_ALERT_BUILDER_TYPE',\n payload: {toType},\n})\n\nexport const setEvery = (every: string) => ({\n type: 'SET_ALERT_BUILDER_EVERY' as 'SET_ALERT_BUILDER_EVERY',\n payload: {every},\n})\n\nexport const setOffset = (offset: string) => ({\n type: 'SET_ALERT_BUILDER_OFFSET' as 'SET_ALERT_BUILDER_OFFSET',\n payload: {offset},\n})\n\nexport const setStaleTime = (staleTime: string) => ({\n type: 'SET_ALERT_BUILDER_STALETIME' as 'SET_ALERT_BUILDER_STALETIME',\n payload: {staleTime},\n})\n\nexport const setTimeSince = (timeSince: string) => ({\n type: 'SET_ALERT_BUILDER_TIMESINCE' as 'SET_ALERT_BUILDER_TIMESINCE',\n payload: {timeSince},\n})\n\nexport const setLevel = (level: CheckStatusLevel) => ({\n type: 'SET_ALERT_BUILDER_LEVEL' as 'SET_ALERT_BUILDER_LEVEL',\n payload: {level},\n})\n\nexport const setStatusMessageTemplate = (statusMessageTemplate: string) => ({\n type: 'SET_ALERT_BUILDER_MESSAGE_TEMPLATE' as 'SET_ALERT_BUILDER_MESSAGE_TEMPLATE',\n payload: {statusMessageTemplate},\n})\n\nexport const editTagSetByIndex = (\n index: number,\n tagSet: Required\n) => ({\n type: 'EDIT_ALERT_BUILDER_TAGSET' as 'EDIT_ALERT_BUILDER_TAGSET',\n payload: {index, tagSet},\n})\n\nexport const removeTagSet = (index: number) => ({\n type: 'REMOVE_ALERT_BUILDER_TAGSET' as 'REMOVE_ALERT_BUILDER_TAGSET',\n payload: {index},\n})\n\nexport const updateThreshold = (threshold: Threshold) => ({\n type: 'UPDATE_ALERT_BUILDER_THRESHOLD' as 'UPDATE_ALERT_BUILDER_THRESHOLD',\n payload: {threshold},\n})\n\nexport const updateThresholds = (thresholds: Threshold[]) => ({\n type: 'UPDATE_ALERT_BUILDER_THRESHOLDS' as 'UPDATE_ALERT_BUILDER_THRESHOLDS',\n payload: {thresholds},\n})\n\nexport const removeThreshold = (level: CheckStatusLevel) => ({\n type: 'REMOVE_ALERT_BUILDER_THRESHOLD' as 'REMOVE_ALERT_BUILDER_THRESHOLD',\n payload: {level},\n})\n\nexport const updateName = (name: string) => ({\n type: 'UPDATE_ALERT_BUILDER_NAME' as 'UPDATE_ALERT_BUILDER_NAME',\n payload: {name},\n})\n","import {ThresholdCheck, TagRuleDraft, NotificationEndpoint} from 'src/types'\nimport {CheckStatusLevel} from 'src/client'\nimport {\n ComponentColor,\n InfluxColors,\n RemoteDataState,\n} from '@influxdata/clockface'\n\nexport const DEFAULT_CHECK_NAME = 'Name this Check'\nexport const DEFAULT_NOTIFICATION_RULE_NAME = 'Name this Notification Rule'\n\nexport const CHECK_NAME_MAX_LENGTH = 68\nexport const DEFAULT_CHECK_EVERY = '1m'\nexport const DEFAULT_CHECK_OFFSET = '0s'\nexport const DEFAULT_CHECK_TAGS = []\nexport const DEFAULT_CHECK_REPORT_ZERO = false\nexport const DEFAULT_DEADMAN_LEVEL: CheckStatusLevel = 'CRIT'\nexport const DEFAULT_STATUS_MESSAGE =\n 'Check: ${ r._check_name } is: ${ r._level }'\n\nexport const CHECK_OFFSET_OPTIONS = [\n '0s',\n '5s',\n '15s',\n '1m',\n '5m',\n '15m',\n '1h',\n '6h',\n '12h',\n '24h',\n '2d',\n '7d',\n '30d',\n]\n\nexport const MONITORING_BUCKET = '_monitoring'\n\nexport const LEVEL_COLORS = {\n OK: InfluxColors.Viridian,\n INFO: InfluxColors.Ocean,\n WARN: InfluxColors.Thunder,\n CRIT: InfluxColors.Fire,\n UNKNOWN: InfluxColors.Amethyst,\n}\n\nexport const LEVEL_COMPONENT_COLORS = {\n OK: ComponentColor.Success,\n INFO: ComponentColor.Primary,\n WARN: ComponentColor.Warning,\n CRIT: ComponentColor.Danger,\n}\n\nexport const DEFAULT_THRESHOLD_CHECK: Partial = {\n name: DEFAULT_CHECK_NAME,\n type: 'threshold',\n activeStatus: 'active',\n thresholds: [],\n every: DEFAULT_CHECK_EVERY,\n offset: DEFAULT_CHECK_OFFSET,\n statusMessageTemplate: DEFAULT_STATUS_MESSAGE,\n}\n\nexport const NEW_TAG_RULE_DRAFT: TagRuleDraft = {\n cid: '',\n value: {\n key: '',\n value: '',\n operator: 'equal',\n },\n}\n\nexport const DEFAULT_ENDPOINT_URLS = {\n slack: 'https://hooks.slack.com/services/X/X/X',\n pagerduty: 'https://events.pagerduty.com/v2/enqueue',\n http: 'https://www.example.com/endpoint',\n}\n\nexport const NEW_ENDPOINT_DRAFT: NotificationEndpoint = {\n name: 'Name this Endpoint',\n description: '',\n activeStatus: 'active',\n type: 'slack',\n token: '',\n url: DEFAULT_ENDPOINT_URLS['slack'],\n status: RemoteDataState.Done,\n labels: [],\n}\n\nexport const NEW_ENDPOINT_FIXTURES: NotificationEndpoint[] = [\n {\n id: '1',\n orgID: '1',\n userID: '1',\n description: 'interrupt everyone at work',\n name: 'Slack',\n activeStatus: 'active',\n type: 'slack',\n url: 'insert.slack.url.here',\n token: 'plerps',\n status: RemoteDataState.Done,\n labels: [],\n },\n {\n id: '3',\n orgID: '1',\n userID: '1',\n description: 'interrupt someone by all means known to man',\n name: 'PagerDuty',\n activeStatus: 'active',\n type: 'pagerduty',\n clientURL: 'insert.pagerduty.client.url.here',\n routingKey: 'plerps',\n status: RemoteDataState.Done,\n labels: [],\n },\n]\n","// Utils\nimport {runQuery} from 'src/shared/apis/query'\nimport {fromFlux} from '@influxdata/giraffe'\nimport {event} from 'src/cloud/utils/reporting'\n\n// Constants\nimport {MONITORING_BUCKET} from 'src/alerting/constants'\n\n// Types\nimport {CancelBox, StatusRow, File} from 'src/types'\nimport {Row} from 'src/types'\nimport {RunQueryResult} from 'src/shared/apis/query'\nimport {RunQueryResponse} from 'src/types/queries'\n\nexport const runStatusesQuery = (\n orgID: string,\n checkID: string,\n extern: File\n): CancelBox => {\n const query = `\nfrom(bucket: \"${MONITORING_BUCKET}\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"statuses\" and r._field == \"_message\")\n |> filter(fn: (r) => r._check_id == \"${checkID}\")\n |> filter(fn: (r) => exists r._value and exists r._check_id and exists r._check_name and exists r._level)\n |> keep(columns: [\"_time\", \"_value\", \"_check_id\", \"_check_name\", \"_level\"])\n |> window(every: 1s, timeColumn: \"_time\", startColumn: \"_start\", stopColumn: \"_stop\")\n |> group(columns: [\"_start\", \"_stop\"])\n |> rename(columns: {\"_time\": \"time\",\n \"_value\": \"message\",\n \"_check_id\": \"checkID\",\n \"_check_name\": \"checkName\",\n \"_level\": \"level\"})\n`\n\n event('runQuery', {context: 'checkStatuses'})\n return processStatusesResponse(runQuery(orgID, query, extern)) as CancelBox<\n StatusRow[][]\n >\n}\n\n/*\n Convert a Flux CSV response that is grouped into tables into a list of objects.\n*/\nexport const processStatusesResponse = ({\n promise: queryPromise,\n cancel,\n}: CancelBox): CancelBox => {\n const promise = queryPromise.then(resp => {\n if (resp.type !== RunQueryResponse.SUCCESS) {\n return Promise.reject(new Error(resp.message))\n }\n\n const {table} = fromFlux(resp.csv)\n\n const rows: Row[][] = [[]]\n\n for (let i = 0; i < table.length; i++) {\n const row = {}\n\n for (const key of table.columnKeys) {\n row[key] = table.getColumn(key)[i]\n }\n\n const tableIndex = row['table']\n\n if (!rows[tableIndex]) {\n rows[tableIndex] = [row]\n } else {\n rows[tableIndex].push(row)\n }\n }\n\n return rows\n })\n\n return {\n promise,\n cancel,\n }\n}\n","// Libraries\nimport {NumericColumnData} from '@influxdata/giraffe'\nimport {useMemo} from 'react'\n\n// Utils\nimport {parseDuration} from 'src/shared/utils/duration'\nimport {useOneWayState} from 'src/shared/utils/useOneWayState'\nimport {extent} from 'src/shared/utils/vis'\nimport {flatMap} from 'lodash'\n\n// Types\nimport {Threshold, DurationTimeRange} from 'src/types'\n\nconst POINTS_PER_CHECK_PLOT = 100\n\n/*\n Given the duration in a check's `every` field, return a `TimeRange` suitable\n for visualizing the input data to the check.\n\n For example, suppose a check has an `every` value of `1m`. Then the check is\n run once per minute, and the input data to the `check` for each run is a\n single value aggregated from the last `1m`. To display a visualization of the\n check data over time, we want to show a series of the values aggregated for\n each minute. So to display a plot with say, 300 points, we need to query a\n time range of the last 300 minutes.\n*/\nexport const getCheckVisTimeRange = (\n durationStr: string\n): DurationTimeRange => {\n const durationMultiple = parseDuration(durationStr)\n .map(({magnitude, unit}) => `${magnitude * POINTS_PER_CHECK_PLOT}${unit}`)\n .join('')\n\n const lower = `now() - ${durationMultiple}`\n\n return {upper: null, lower, type: 'duration'}\n}\n\n/*\n Obtain the y domain settings for a threshold check plot.\n\n The y domain for a threshold check plot should be large enough to show every\n threshold value in addition to every y value in the plot.\n*/\nexport const useCheckYDomain = (\n data: NumericColumnData,\n thresholds: Threshold[]\n) => {\n const dataDomain = useMemo(() => extent(data as number[]), [data])\n\n const initialDomain: number[] = useMemo(() => {\n const extrema: number[] = flatMap(thresholds || [], (t: any) => [\n t.value,\n t.min,\n t.max,\n ])\n .filter(v => v !== undefined && v !== null)\n .concat(dataDomain)\n\n return extent(extrema)\n }, [dataDomain, thresholds])\n\n return initialDomain\n}\n\n// Calls the above method, but allows for the setting of state one way\nexport const useCheckYDomainWithState = (\n data: NumericColumnData,\n thresholds: Threshold[]\n) => {\n const initialDomain = useCheckYDomain(data, thresholds)\n const [domain, setDomain] = useOneWayState(initialDomain)\n const resetDomain = () => setDomain(initialDomain)\n\n return [domain, setDomain, resetDomain]\n}\n","import {AnnotationResponse, AnnotationStream} from 'src/types'\n\nimport {AnnotationEvent} from 'src/client/annotationdRoutes'\n\nexport const DELETE_ANNOTATION = 'DELETE_ANNOTATION'\nexport const SET_ANNOTATIONS = 'SET_ANNOTATIONS'\nexport const SET_ANNOTATION_STREAMS = 'SET_ANNOTATION_STREAMS'\nexport const TOGGLE_ANNOTATIONS_MODE = 'TOGGLE_ANNOTATIONS_MODE'\nexport const EDIT_ANNOTATION = 'EDIT_ANNOTATION'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\nexport const setAnnotations = (annotations: AnnotationResponse[]) =>\n ({\n type: SET_ANNOTATIONS,\n annotations,\n } as const)\n\nexport const setAnnotationStreams = (streams: AnnotationStream[]) =>\n ({\n type: SET_ANNOTATION_STREAMS,\n streams,\n } as const)\n\nexport const setAnnotationsMode = (isEnabled: boolean) =>\n ({\n type: TOGGLE_ANNOTATIONS_MODE,\n isEnabled,\n } as const)\n\nexport const deleteAnnotation = (annotation: AnnotationEvent) =>\n ({\n type: DELETE_ANNOTATION,\n annotation,\n } as const)\n\nexport const editAnnotation = (annotation: AnnotationEvent) =>\n ({type: EDIT_ANNOTATION, annotation} as const)\n","// This file is generated by [oats][0] and should not be edited by hand.\n//\n// [0]: https://github.com/influxdata/oats\n\nexport type AnnotationList = Array<{\n stream?: string\n annotations?: Array<{\n id?: string\n summary?: string\n message?: string\n stickers?: any\n startTime?: string\n endTime?: string\n }>\n}>\n\nexport interface Error {\n readonly code:\n | 'internal error'\n | 'not found'\n | 'conflict'\n | 'invalid'\n | 'unprocessable entity'\n | 'empty value'\n | 'unavailable'\n | 'forbidden'\n | 'too many requests'\n | 'unauthorized'\n | 'method not allowed'\n | 'request too large'\n | 'unsupported media type'\n readonly message?: string\n readonly op?: string\n readonly err?: string\n}\n\nexport type AnnotationCreateList = AnnotationCreate[]\n\nexport type AnnotationCreate = Annotation & {\n stream?: string\n}\n\nexport interface Annotation {\n summary?: string\n message?: string\n stickers?: any\n startTime?: string\n endTime?: string\n}\n\nexport type AnnotationEventList = AnnotationEvent[]\n\nexport type AnnotationEvent = Annotation & {\n stream?: string\n id?: string\n}\n\nexport type StreamList = ReadStream[]\n\nexport interface ReadStream {\n id?: string\n stream?: string\n description?: string\n createdAt?: string\n updatedAt?: string\n}\n\nexport interface Stream {\n stream?: string\n description?: string\n}\n\ninterface RequestOptions {\n signal?: AbortSignal\n}\n\nexport type RequestHandler = (\n url: string,\n query: string,\n init: RequestInit\n) => {url: string; query: string; init: RequestInit}\nexport type ResponseHandler = (\n status: number,\n headers: Headers,\n data: any\n) => {status: number; headers: Headers; data: any}\n\nconst RequestContext = function (\n requestHandler: RequestHandler,\n responseHandler: ResponseHandler\n) {\n this.requestHandler = requestHandler\n this.responseHandler = responseHandler\n}\n\nRequestContext.prototype.request = async function (\n method: string,\n url: string,\n params: any = {},\n options: RequestOptions = {}\n): Promise {\n const requestHeaders = new Headers(params.headers)\n const contentType = requestHeaders.get('Content-Type') || ''\n\n if (params.auth) {\n const credentials = btoa(`${params.auth.username}:${params.auth.password}`)\n\n requestHeaders.append('Authorization', `Basic ${credentials}`)\n }\n\n const body =\n params.data && contentType.includes('json')\n ? JSON.stringify(params.data)\n : params.data\n\n const query = params.query ? `?${new URLSearchParams(params.query)}` : ''\n\n const {\n url: middlewareUrl,\n query: middlewareQuery,\n init,\n } = this.requestHandler(url, query, {\n method,\n body,\n credentials: 'same-origin',\n signal: options.signal,\n headers: requestHeaders,\n })\n\n const response = await fetch(`${middlewareUrl}${middlewareQuery}`, init)\n\n const {status, headers} = response\n const responseContentType = headers.get('Content-Type') || ''\n\n let data\n\n if (responseContentType.includes('json')) {\n data = await response.json()\n } else if (responseContentType.includes('octet-stream')) {\n data = await response.blob()\n } else {\n data = await response.text()\n }\n\n return this.responseHandler(status, headers, data)\n}\n\nRequestContext.prototype.setRequestHandler = function (\n requestHandler: RequestHandler\n) {\n this.requestHandler = requestHandler\n}\n\nRequestContext.prototype.setResponseHandler = function (\n responseHandler: ResponseHandler\n) {\n this.responseHandler = responseHandler\n}\n\nconst rc = new RequestContext(\n (url, query, init) => {\n return {url, query, init}\n },\n (status, headers, data) => {\n return {status, headers, data}\n }\n)\nconst request = rc.request.bind(rc)\nconst setRequestHandler = rc.setRequestHandler.bind(rc)\nconst setResponseHandler = rc.setResponseHandler.bind(rc)\n\nexport {request, setRequestHandler, setResponseHandler}\n\nexport interface GetAnnotationsParams {\n query?: {\n AnnotationListFilter?: any\n orgID?: string\n }\n}\n\ntype GetAnnotationsResult =\n | GetAnnotationsOKResult\n | GetAnnotationsBadRequestResult\n | GetAnnotationsUnauthorizedResult\n | GetAnnotationsInternalServerErrorResult\n\ninterface GetAnnotationsOKResult {\n status: 200\n headers: Headers\n data: AnnotationList\n}\n\ninterface GetAnnotationsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetAnnotationsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetAnnotationsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getAnnotations = (\n params: GetAnnotationsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2private/annotations',\n params,\n options\n ) as Promise\n\nexport interface PostAnnotationParams {\n data?: AnnotationCreateList\n\n query?: {\n orgID?: string\n }\n}\n\ntype PostAnnotationResult =\n | PostAnnotationOKResult\n | PostAnnotationNoContentResult\n | PostAnnotationBadRequestResult\n | PostAnnotationUnauthorizedResult\n | PostAnnotationInternalServerErrorResult\n\ninterface PostAnnotationOKResult {\n status: 200\n headers: Headers\n data: AnnotationEventList\n}\n\ninterface PostAnnotationNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostAnnotationBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostAnnotationUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostAnnotationInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postAnnotation = (\n params: PostAnnotationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2private/annotations',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface DeleteAnnotationsParams {\n query: {\n AnnotationDeleteFilter: any\n orgID?: string\n }\n}\n\ntype DeleteAnnotationsResult =\n | DeleteAnnotationsNoContentResult\n | DeleteAnnotationsBadRequestResult\n | DeleteAnnotationsUnauthorizedResult\n | DeleteAnnotationsInternalServerErrorResult\n\ninterface DeleteAnnotationsNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteAnnotationsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteAnnotationsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteAnnotationsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteAnnotations = (\n params: DeleteAnnotationsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n '/api/v2private/annotations',\n params,\n options\n ) as Promise\n\nexport interface GetAnnotationParams {\n annotationID: string\n}\n\ntype GetAnnotationResult =\n | GetAnnotationOKResult\n | GetAnnotationUnauthorizedResult\n | GetAnnotationNotFoundResult\n | GetAnnotationInternalServerErrorResult\n | GetAnnotationDefaultResult\n\ninterface GetAnnotationOKResult {\n status: 200\n headers: Headers\n data: AnnotationEvent\n}\n\ninterface GetAnnotationUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetAnnotationNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetAnnotationInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetAnnotationDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getAnnotation = (\n params: GetAnnotationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/annotations/${params.annotationID}`,\n params,\n options\n ) as Promise\n\nexport interface PutAnnotationParams {\n annotationID: string\n\n data?: AnnotationCreate\n}\n\ntype PutAnnotationResult =\n | PutAnnotationOKResult\n | PutAnnotationBadRequestResult\n | PutAnnotationUnauthorizedResult\n | PutAnnotationNotFoundResult\n | PutAnnotationInternalServerErrorResult\n\ninterface PutAnnotationOKResult {\n status: 200\n headers: Headers\n data: AnnotationEvent\n}\n\ninterface PutAnnotationBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PutAnnotationUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PutAnnotationNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PutAnnotationInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putAnnotation = (\n params: PutAnnotationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2private/annotations/${params.annotationID}`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface DeleteAnnotationParams {\n annotationID: string\n}\n\ntype DeleteAnnotationResult =\n | DeleteAnnotationNoContentResult\n | DeleteAnnotationBadRequestResult\n | DeleteAnnotationUnauthorizedResult\n | DeleteAnnotationInternalServerErrorResult\n\ninterface DeleteAnnotationNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteAnnotationBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteAnnotationUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteAnnotationInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteAnnotation = (\n params: DeleteAnnotationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2private/annotations/${params.annotationID}`,\n params,\n options\n ) as Promise\n\nexport interface GetStreamsParams {\n query?: {\n StreamListFilter?: any\n orgID?: string\n }\n}\n\ntype GetStreamsResult =\n | GetStreamsOKResult\n | GetStreamsBadRequestResult\n | GetStreamsUnauthorizedResult\n | GetStreamsInternalServerErrorResult\n\ninterface GetStreamsOKResult {\n status: 200\n headers: Headers\n data: StreamList\n}\n\ninterface GetStreamsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetStreamsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetStreamsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getStreams = (\n params: GetStreamsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2private/streams',\n params,\n options\n ) as Promise\n\nexport interface PutStreamsParams {\n data?: Stream\n\n query?: {\n orgID?: string\n }\n}\n\ntype PutStreamsResult =\n | PutStreamsOKResult\n | PutStreamsBadRequestResult\n | PutStreamsUnauthorizedResult\n | PutStreamsInternalServerErrorResult\n\ninterface PutStreamsOKResult {\n status: 200\n headers: Headers\n data: ReadStream\n}\n\ninterface PutStreamsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PutStreamsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PutStreamsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putStreams = (\n params: PutStreamsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n '/api/v2private/streams',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface DeleteStreamsParams {\n query: {\n StreamDeleteFilter: any\n orgID?: string\n }\n}\n\ntype DeleteStreamsResult =\n | DeleteStreamsNoContentResult\n | DeleteStreamsBadRequestResult\n | DeleteStreamsUnauthorizedResult\n | DeleteStreamsInternalServerErrorResult\n\ninterface DeleteStreamsNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteStreamsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteStreamsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteStreamsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteStreams = (\n params: DeleteStreamsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n '/api/v2private/streams',\n params,\n options\n ) as Promise\n\nexport interface PutStreamParams {\n streamID: string\n\n data?: Stream\n}\n\ntype PutStreamResult =\n | PutStreamOKResult\n | PutStreamBadRequestResult\n | PutStreamUnauthorizedResult\n | PutStreamNotFoundResult\n | PutStreamInternalServerErrorResult\n\ninterface PutStreamOKResult {\n status: 200\n headers: Headers\n data: ReadStream\n}\n\ninterface PutStreamBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PutStreamUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PutStreamNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PutStreamInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putStream = (\n params: PutStreamParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2private/streams/${params.streamID}`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface DeleteStreamParams {\n streamID: string\n}\n\ntype DeleteStreamResult =\n | DeleteStreamNoContentResult\n | DeleteStreamBadRequestResult\n | DeleteStreamUnauthorizedResult\n | DeleteStreamInternalServerErrorResult\n\ninterface DeleteStreamNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteStreamBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteStreamUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteStreamInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteStream = (\n params: DeleteStreamParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2private/streams/${params.streamID}`,\n params,\n options\n ) as Promise\n","// Types\nimport {GetAnnotationPayload} from 'src/types'\n\nexport const formatAnnotationQueryString = (\n annotation?: GetAnnotationPayload,\n requestType?: string\n): string => {\n const getAnnotationParams = new URLSearchParams({})\n\n if (annotation?.startTime) {\n getAnnotationParams.append('startTime', annotation.startTime)\n }\n\n if (annotation?.endTime) {\n getAnnotationParams.append('endTime', annotation.endTime)\n }\n\n if (annotation?.stream) {\n const streamParam = requestType === 'delete' ? 'stream' : 'streamIncludes'\n\n getAnnotationParams.append(streamParam, annotation.stream)\n }\n\n if (annotation?.stickers) {\n Object.keys(annotation.stickers).forEach((s: string) => {\n getAnnotationParams.append(\n `stickerIncludes[${s}]`,\n annotation.stickers[s]\n )\n })\n }\n\n return `${getAnnotationParams.toString()}`\n}\n","// Types\nimport {\n Annotation,\n AnnotationResponse,\n DeleteAnnotation,\n AnnotationStream,\n} from 'src/types'\n\nimport {\n deleteAnnotation as deleteAnnotationApi,\n getAnnotations as getAnnotationsApi,\n postAnnotation,\n putAnnotation,\n AnnotationEvent,\n Error as ResponseError,\n AnnotationList,\n} from 'src/client/annotationdRoutes'\n\n// Utils\nimport {formatAnnotationQueryString} from 'src/annotations/utils/formatQueryString'\n\nexport const getAnnotationStreams = (): Promise => {\n throw new Error('getAnnotationStreams is not implemented')\n}\n\nexport const writeAnnotation = async (\n annotations: Annotation[],\n orgID: string\n): Promise => {\n // RFC 3339 is the standard serialization format for dates across the wire for annotations\n const annotationsRequestConverted = annotations.map(annotation => {\n return {\n ...annotation,\n startTime: new Date(annotation.startTime).toISOString(),\n endTime: new Date(annotation.endTime).toISOString(),\n }\n })\n const params = {data: annotationsRequestConverted, query: {orgID}}\n const res = await postAnnotation(params)\n\n if (res.status >= 300) {\n throw new Error(res.data?.message)\n }\n\n const [{startTime, endTime, summary, message, stickers, stream}] = res.data\n\n return [\n {\n startTime,\n endTime,\n summary,\n message,\n stickers,\n stream,\n },\n ]\n}\n\nexport const getAnnotations = async (\n orgID: string,\n stream?: string\n): Promise => {\n const params = {\n query: {AnnotationListFilter: formatAnnotationQueryString({stream}), orgID},\n }\n const res = await getAnnotationsApi(params)\n if (res.status >= 300) {\n throw new Error((res.data as ResponseError).message)\n }\n\n return (res.data as AnnotationList).map((retrievedAnnotation: any) => ({\n stream: retrievedAnnotation.stream,\n annotations: retrievedAnnotation.annotations,\n }))\n}\n\nexport const updateAnnotation = async (\n newAnnotation: AnnotationEvent\n): Promise => {\n const params = {annotationID: newAnnotation.id, data: newAnnotation}\n const res = await putAnnotation(params)\n\n if (res.status >= 300) {\n throw new Error(res.data?.message)\n }\n\n return res.data\n}\n\nexport const deleteAnnotation = async (\n annotationToDelete: DeleteAnnotation\n): Promise => {\n const params = {annotationID: annotationToDelete.id}\n const res = await deleteAnnotationApi(params)\n\n if (res.status >= 300) {\n throw new Error(res.data?.message)\n }\n\n return res.status\n}\n","import {\n deleteAnnotation,\n getAnnotations,\n getAnnotationStreams,\n updateAnnotation,\n writeAnnotation,\n} from 'src/annotations/api'\nimport {Dispatch} from 'react'\nimport {\n setAnnotations,\n setAnnotationStreams,\n Action as AnnotationAction,\n editAnnotation as editAnnotationAction,\n deleteAnnotation as deleteAnnotationAction,\n} from 'src/annotations/actions/creators'\n\nimport {\n Annotation,\n AnnotationStream,\n NotificationAction,\n GetState,\n} from 'src/types'\n\n// Selectors\nimport {getOrg} from 'src/organizations/selectors'\n\nexport const fetchAndSetAnnotationStreams = async (\n dispatch: Dispatch\n): Promise => {\n const annotationStreams: AnnotationStream[] = await getAnnotationStreams()\n\n dispatch(setAnnotationStreams(annotationStreams))\n}\n\nexport const fetchAndSetAnnotations =\n () =>\n async (\n dispatch: Dispatch,\n getState: GetState\n ): Promise => {\n const org = getOrg(getState())\n const annotations = await getAnnotations(org.id)\n\n dispatch(setAnnotations(annotations))\n }\n\nexport const writeThenFetchAndSetAnnotations =\n (annotations: Annotation[]) =>\n async (\n dispatch: Dispatch,\n getState: GetState\n ): Promise => {\n const org = getOrg(getState())\n await writeAnnotation(annotations, org.id)\n\n fetchAndSetAnnotations()(dispatch, getState)\n }\n\nexport const deleteAnnotations =\n annotation =>\n async (dispatch: Dispatch) => {\n await deleteAnnotation({\n ...annotation,\n endTime: annotation.startTime,\n })\n dispatch(deleteAnnotationAction(annotation))\n }\n\nexport const editAnnotation =\n annotation =>\n async (dispatch: Dispatch) => {\n let {endTime} = annotation\n if (annotation.type === 'point') {\n endTime = annotation.startTime\n }\n\n const updatedAnnotation = await updateAnnotation({\n ...annotation,\n endTime,\n })\n dispatch(editAnnotationAction(updatedAnnotation))\n }\n","// Types\nimport {AppState, AnnotationStream} from 'src/types'\nimport {sortBy} from 'lodash'\n\nexport const getVisibleAnnotationStreams = (state: AppState): string[] => {\n const visibleStreams = state.annotations.visibleStreamsByID\n\n return sortBy(visibleStreams, stream => stream)\n}\n\nexport const getHiddenAnnotationStreams = (state: AppState): string[] => {\n const visibleStreams = state.annotations.visibleStreamsByID\n const filtered = state.annotations.streams\n .filter(stream => !visibleStreams.includes(stream.stream))\n .map(stream => stream.stream)\n\n return sortBy(filtered, stream => stream)\n}\n\nexport const getAnnotationStreams = (state: AppState): AnnotationStream[] => {\n return state.annotations.streams\n}\n\nexport const isAnnotationsModeEnabled = (state: AppState): boolean => {\n return state.annotations.enableAnnotationsMode\n}\n","// Types\nimport {RemoteDataState, AuthEntities, Authorization} from 'src/types'\nimport {NormalizedSchema} from 'normalizr'\n\nexport const SET_AUTH = 'SET_AUTH'\nexport const ADD_AUTH = 'ADD_AUTH'\nexport const EDIT_AUTH = 'EDIT_AUTH'\nexport const REMOVE_AUTH = 'REMOVE_AUTH'\nexport const SET_CURRENT_AUTH = 'SET_CURRENT_AUTH'\nexport const SET_ALL_RESOURCES = 'SET_ALL_RESOURCES'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\nexport const setAuthorizations = (\n status: RemoteDataState,\n schema?: NormalizedSchema\n) =>\n ({\n type: SET_AUTH,\n status,\n schema,\n } as const)\n\nexport const addAuthorization = (\n schema: NormalizedSchema\n) =>\n ({\n type: ADD_AUTH,\n schema,\n } as const)\n\nexport const editAuthorization = (\n schema: NormalizedSchema\n) =>\n ({\n type: EDIT_AUTH,\n schema,\n } as const)\n\nexport const removeAuthorization = (id: string) =>\n ({\n type: REMOVE_AUTH,\n id,\n } as const)\n\nexport const setCurrentAuthorization = (\n status: RemoteDataState,\n item?: Authorization\n) =>\n ({\n type: SET_CURRENT_AUTH,\n status,\n item,\n } as const)\n\nexport const setAllResources = (list?: string[]) =>\n ({\n type: SET_ALL_RESOURCES,\n list,\n } as const)\n","import {Authorization} from 'src/types'\nimport {postAuthorization} from 'src/client'\nimport {getAuthConnection} from 'src/client/unityRoutes'\nimport {getOauthClientConfig} from 'src/client/cloudPrivRoutes'\nimport {OAuthClientConfig} from 'src/client/cloudPrivRoutes'\n\nexport const createAuthorization = async (\n authorization\n): Promise => {\n try {\n const resp = await postAuthorization({\n data: authorization,\n })\n\n if (resp.status !== 201) {\n throw new Error(resp.data.message)\n }\n\n return resp.data\n } catch (error) {\n console.error(error)\n throw error\n }\n}\n\nexport const getAuth0Config = async (\n redirectTo?: string\n): Promise => {\n try {\n let payload = {}\n if (redirectTo) {\n payload = {\n query: {\n redirectTo,\n },\n }\n }\n const resp = await getOauthClientConfig(payload)\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n return resp.data\n } catch (error) {\n console.error(error)\n throw error\n }\n}\n\nexport const getConnection = async (email: string): Promise => {\n const response = await getAuthConnection({\n query: {email: encodeURIComponent(email)},\n })\n\n if (response.status >= 500) {\n throw new Error(response.data)\n }\n\n if (response.status === 200) {\n return response.data\n }\n}\n","const nanoPerMicro = 1000\nconst microPerMilli = 1000\nconst milliPerSecond = 1000\nconst secondsPerMinute = 60\nconst minutesPerHour = 60\nconst hoursPerDay = 24\n\nconst secondsPerHour = minutesPerHour * secondsPerMinute\n\nconst nanoPerSecond = milliPerSecond * microPerMilli * nanoPerMicro\n\nconst nanoPerHour = secondsPerHour * nanoPerSecond\n\nexport const nsToHours = (ns: number): number => {\n if (ns === -1) {\n return ns\n }\n\n return ns / nanoPerHour\n}\n\nexport const secondsToHours = (seconds: number): number => {\n if (seconds === -1) {\n return seconds\n }\n\n return seconds / secondsPerHour\n}\n\nexport const hoursToNs = (hours: number): number => {\n if (hours === -1) {\n return -1\n }\n\n return hours * nanoPerHour\n}\n\nexport const hoursToDays = (hours: number) => {\n if (hours === -1) {\n return hours\n }\n\n return hours / hoursPerDay\n}\n\nexport const nsToDays = (ns: number): number => {\n const hours = nsToHours(ns)\n return hoursToDays(hours)\n}\n\nexport const secondsToDays = (seconds: number): number => {\n const hours = secondsToHours(seconds)\n return hoursToDays(hours)\n}\n\nexport const minToSeconds = (min: number) => {\n if (min === -1) {\n return min\n }\n return min * secondsPerMinute\n}\n\nexport const nsToSeconds = (ns: number): number => {\n if (ns === -1) {\n return ns\n }\n\n return ns / nanoPerSecond\n}\n\nexport const secondsToNs = (seconds: number): number => {\n if (seconds === -1) {\n return seconds\n }\n\n return seconds * nanoPerSecond\n}\n","// Types\nimport {RemoteDataState, BucketEntities} from 'src/types'\nimport {NormalizedSchema} from 'normalizr'\n\nexport const SET_BUCKETS = 'SET_BUCKETS'\nexport const ADD_BUCKET = 'ADD_BUCKET'\nexport const EDIT_BUCKET = 'EDIT_BUCKET'\nexport const REMOVE_BUCKET = 'REMOVE_BUCKET'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\nexport const setBuckets = (\n status: RemoteDataState,\n schema?: NormalizedSchema\n) =>\n ({\n type: SET_BUCKETS,\n status,\n schema,\n } as const)\n\nexport const addBucket = (schema: NormalizedSchema) =>\n ({\n type: ADD_BUCKET,\n schema,\n } as const)\n\nexport const editBucket = (schema: NormalizedSchema) =>\n ({\n type: EDIT_BUCKET,\n schema,\n } as const)\n\nexport const removeBucket = (id: string) =>\n ({\n type: REMOVE_BUCKET,\n id,\n } as const)\n","import {normalize} from 'normalizr'\n\nimport {getBuckets} from 'src/client'\n\nimport {arrayOfBuckets} from 'src/schemas'\nimport {Bucket, BucketEntities} from 'src/types'\n\nimport {BUCKET_LIMIT} from 'src/resources/constants'\n\nexport const fetchAllBuckets = async (orgID: string, limit = BUCKET_LIMIT) => {\n const resp = await getBuckets({\n query: {orgID, limit},\n })\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n return {\n buckets: resp.data.buckets,\n normalizedBuckets: normalize(\n [...resp.data.buckets],\n arrayOfBuckets\n ),\n }\n}\n","// Types\nimport {NormalizedSchema} from 'normalizr'\nimport {RemoteDataState, CellEntities} from 'src/types'\nimport {setLabelOnResource} from 'src/labels/actions/creators'\n\nimport {setViewsAndCells} from 'src/views/actions/creators'\n\nexport const SET_CELL = 'SET_CELL'\nexport const SET_CELLS = 'SET_CELLS'\nexport const REMOVE_CELL = 'REMOVE_CELL'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\n// R is the type of the value of the \"result\" key in normalizr's normalization\nexport type CellSchema = NormalizedSchema<\n CellEntities,\n R\n>\n\nexport const setCell = (\n id: string,\n status: RemoteDataState,\n schema?: CellSchema\n) => ({type: SET_CELL, id, status, schema} as const)\n\ntype RemoveCellArgs = {dashboardID: string; id: string}\nexport const removeCell = ({dashboardID, id}: RemoveCellArgs) =>\n ({\n type: REMOVE_CELL,\n dashboardID,\n id,\n } as const)\n\nexport const setCells = (\n dashboardID: string,\n status: RemoteDataState,\n schema?: CellSchema\n) =>\n ({\n type: SET_CELLS,\n dashboardID,\n status,\n schema,\n } as const)\n","// Types\nimport {RemoteDataState, CheckEntities} from 'src/types'\nimport {NormalizedSchema} from 'normalizr'\nimport {setLabelOnResource} from 'src/labels/actions/creators'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\nexport const SET_CHECKS = 'SET_CHECKS'\nexport const SET_CHECK = 'SET_CHECK'\nexport const REMOVE_CHECK = 'REMOVE_CHECK'\nexport const ADD_LABEL_TO_CHECK = 'ADD_LABEL_TO_CHECK'\nexport const REMOVE_LABEL_FROM_CHECK = 'REMOVE_LABEL_FROM_CHECK'\n\ntype ChecksSchema = NormalizedSchema<\n CheckEntities,\n R\n>\n\nexport const setChecks = (\n status: RemoteDataState,\n schema?: ChecksSchema\n) =>\n ({\n type: SET_CHECKS,\n status,\n schema,\n } as const)\n\nexport const setCheck = (\n id: string,\n status: RemoteDataState,\n schema?: ChecksSchema\n) =>\n ({\n type: SET_CHECK,\n id,\n status,\n schema,\n } as const)\n\nexport const removeCheck = (id: string) =>\n ({\n type: REMOVE_CHECK,\n id,\n } as const)\n\nexport const removeLabelFromCheck = (checkID: string, labelID: string) =>\n ({\n type: REMOVE_LABEL_FROM_CHECK,\n checkID,\n labelID,\n } as const)\n","import React, {FC, useCallback, useState} from 'react'\nimport {useSelector, useDispatch} from 'react-redux'\nimport {updateThresholds} from 'src/alerting/actions/alertBuilder'\nimport {getByID} from 'src/resources/selectors'\n\nimport {\n AppState,\n Check,\n CheckType,\n DashboardQuery,\n ResourceType,\n StatusRow,\n Threshold,\n} from 'src/types'\n\nexport interface CheckContextType {\n id: string\n type: CheckType\n query: DashboardQuery\n\n statuses: StatusRow[][]\n thresholds: Threshold[]\n\n updateStatuses: (statuses: StatusRow[][]) => void\n updateThresholds: (thresholds: Threshold[]) => void\n}\n\nexport const CheckContext = React.createContext({\n id: '',\n type: 'custom',\n query: null,\n\n statuses: [],\n thresholds: [],\n\n updateStatuses: () => {},\n updateThresholds: () => {},\n})\n\ninterface ProviderProps {\n id: string\n}\n\nexport const AlertProvider: FC = ({children}) => {\n const {type, thresholds} = useSelector((state: AppState) => {\n return state.alertBuilder\n })\n const [statuses, setStatuses] = useState([])\n\n return (\n {},\n }}\n >\n {children}\n \n )\n}\n\nconst CheckProvider: FC = ({id, children}) => {\n const dispatch = useDispatch()\n const check = useSelector((state: AppState) => {\n return getByID(state, ResourceType.Checks, id)\n })\n const [statuses, setStatuses] = useState([])\n\n const update = useCallback(\n (thresholds: Threshold[]) => {\n dispatch(updateThresholds(thresholds))\n },\n [dispatch]\n )\n\n return (\n \n {children}\n \n )\n}\n\nexport default CheckProvider\n","// This file is generated by [oats][0] and should not be edited by hand.\n//\n// [0]: https://github.com/influxdata/oats\n\nexport interface OAuthClientConfig {\n clientID: string\n domain: string\n redirectURL: string\n state: string\n}\n\nexport interface Error {\n readonly code:\n | 'internal error'\n | 'not found'\n | 'conflict'\n | 'invalid'\n | 'unprocessable entity'\n | 'empty value'\n | 'unavailable'\n | 'forbidden'\n | 'too many requests'\n | 'unauthorized'\n | 'method not allowed'\n | 'request too large'\n | 'unsupported media type'\n readonly message?: string\n readonly op?: string\n readonly err?: string\n}\n\nexport interface LimitEvents {\n links?: Links\n events?: LimitEvent[]\n}\n\nexport interface Links {\n next?: Link\n self: Link\n prev?: Link\n}\n\nexport type Link = string\n\nexport interface LimitEvent {\n orgID?: string\n type?:\n | 'limited_quota'\n | 'limited_write'\n | 'limited_query'\n | 'limited_cardinality'\n readonly timestamp?: string\n}\n\nexport interface Limit {\n orgID?: string\n rate: {\n queryTime: number\n readKBs: number\n concurrentReadRequests: number\n writeKBs: number\n concurrentWriteRequests: number\n cardinality: number\n concurrentDeleteRequests?: number\n deleteRequestsPerSecond?: number\n }\n bucket: {\n maxBuckets: number\n maxRetentionDuration: number\n }\n task: {\n maxTasks: number\n }\n dashboard: {\n maxDashboards: number\n }\n check: {\n maxChecks: number\n }\n notificationRule: {\n maxNotifications: number\n blockedNotificationRules?: string\n }\n notificationEndpoint: {\n blockedNotificationEndpoints?: string\n }\n stack?: {\n enabled: boolean\n }\n timeout?: {\n queryUnconditionalTimeoutSeconds: number\n queryidleWriteTimeoutSeconds: number\n }\n features?: {\n allowDelete?: boolean\n }\n}\n\nexport type ServerError = any\n\nexport interface LimitStatuses {\n read: LimitStatus\n write: LimitStatus\n cardinality: LimitStatus\n}\n\nexport interface LimitStatus {\n status: 'ok' | 'exceeded'\n}\n\nexport interface OrgSettings {\n orgID?: string\n settings?: OrgSetting[]\n}\n\nexport interface OrgSetting {\n key?: string\n value?: string\n}\n\nexport interface OnboardingRequest {\n username: string\n password?: string\n org: string\n bucket: string\n retentionPeriodHrs?: number\n retentionPeriodSeconds?: number\n limit?: Limit\n}\n\nexport interface OnboardingResponse {\n user?: {\n readonly id?: string\n name: string\n status?: 'active' | 'inactive'\n readonly links?: {\n self?: string\n }\n }\n org?: {\n readonly links?: {\n self?: Link\n members?: Link\n owners?: Link\n labels?: Link\n secrets?: Link\n buckets?: Link\n tasks?: Link\n dashboards?: Link\n }\n readonly id?: string\n name: string\n defaultStorageType?: 'tsm' | 'iox'\n description?: string\n readonly createdAt?: string\n readonly updatedAt?: string\n status?: 'active' | 'inactive'\n }\n bucket?: {\n readonly links?: {\n labels?: Link\n members?: Link\n org?: Link\n owners?: Link\n self?: Link\n write?: Link\n }\n readonly id?: string\n readonly type?: 'user' | 'system'\n name: string\n description?: string\n orgID?: string\n rp?: string\n schemaType?: 'implicit' | 'explicit'\n readonly createdAt?: string\n readonly updatedAt?: string\n retentionRules: Array<{\n type?: 'expire'\n everySeconds: number\n shardGroupDurationSeconds?: number\n }>\n labels?: Array<{\n readonly id?: string\n readonly orgID?: string\n name?: string\n properties?: any\n }>\n }\n auth?: {\n status?: 'active' | 'inactive'\n description?: string\n } & {\n readonly createdAt?: string\n readonly updatedAt?: string\n orgID?: string\n permissions?: Array<{\n action: 'read' | 'write'\n resource: {\n type:\n | 'authorizations'\n | 'buckets'\n | 'dashboards'\n | 'orgs'\n | 'tasks'\n | 'telegrafs'\n | 'users'\n | 'variables'\n | 'secrets'\n | 'labels'\n | 'views'\n | 'documents'\n | 'notificationRules'\n | 'notificationEndpoints'\n | 'checks'\n | 'dbrp'\n | 'annotations'\n | 'sources'\n | 'scrapers'\n | 'notebooks'\n | 'remotes'\n | 'replications'\n | 'instance'\n | 'flows'\n | 'functions'\n | 'subscriptions'\n id?: string\n name?: string\n orgID?: string\n org?: string\n }\n }>\n readonly id?: string\n readonly token?: string\n readonly userID?: string\n readonly user?: string\n readonly org?: string\n readonly links?: {\n readonly self?: Link\n readonly user?: Link\n }\n }\n}\n\nexport interface ProvisionRequest {\n user: Identity\n org: Identity\n config: {\n bucket?: string\n retentionPeriodSeconds?: number\n limit?: Limit\n }\n returnToken?: boolean\n}\n\nexport interface Identity {\n id?: string\n name?: string\n}\n\nexport interface ProvisionResponse {\n user?: Identity\n org?: IdentityWithLinks\n token?: string\n}\n\nexport interface IdentityWithLinks {\n id?: string\n name?: string\n links?: Links\n}\n\nexport interface ProvisionDeleteRequest {\n orgID: string\n}\n\nexport interface ProvisionUserRequest {\n user: Identity\n orgID: string\n role: 'owner' | 'member'\n}\n\nexport interface ProvisionUserResponse {\n user?: Identity\n org?: Identity\n}\n\nexport interface ProvisionUserDeleteRequest {\n userID: string\n orgID: string\n newOwnerID?: string\n tokenOption?: 'transfer' | 'delete'\n taskOption?: 'transfer' | 'delete'\n}\n\nexport interface ProvisionSetupRequest {\n user: Identity\n org: Identity\n}\n\nexport interface ProvisionSuspendRequest {\n orgID: string\n}\n\ninterface RequestOptions {\n signal?: AbortSignal\n}\n\nexport type RequestHandler = (\n url: string,\n query: string,\n init: RequestInit\n) => {url: string; query: string; init: RequestInit}\nexport type ResponseHandler = (\n status: number,\n headers: Headers,\n data: any\n) => {status: number; headers: Headers; data: any}\n\nconst RequestContext = function (\n requestHandler: RequestHandler,\n responseHandler: ResponseHandler\n) {\n this.requestHandler = requestHandler\n this.responseHandler = responseHandler\n}\n\nRequestContext.prototype.request = async function (\n method: string,\n url: string,\n params: any = {},\n options: RequestOptions = {}\n): Promise {\n const requestHeaders = new Headers(params.headers)\n const contentType = requestHeaders.get('Content-Type') || ''\n\n if (params.auth) {\n const credentials = btoa(`${params.auth.username}:${params.auth.password}`)\n\n requestHeaders.append('Authorization', `Basic ${credentials}`)\n }\n\n const body =\n params.data && contentType.includes('json')\n ? JSON.stringify(params.data)\n : params.data\n\n const query = params.query ? `?${new URLSearchParams(params.query)}` : ''\n\n const {\n url: middlewareUrl,\n query: middlewareQuery,\n init,\n } = this.requestHandler(url, query, {\n method,\n body,\n credentials: 'same-origin',\n signal: options.signal,\n headers: requestHeaders,\n })\n\n const response = await fetch(`${middlewareUrl}${middlewareQuery}`, init)\n\n const {status, headers} = response\n const responseContentType = headers.get('Content-Type') || ''\n\n let data\n\n if (responseContentType.includes('json')) {\n data = await response.json()\n } else if (responseContentType.includes('octet-stream')) {\n data = await response.blob()\n } else {\n data = await response.text()\n }\n\n return this.responseHandler(status, headers, data)\n}\n\nRequestContext.prototype.setRequestHandler = function (\n requestHandler: RequestHandler\n) {\n this.requestHandler = requestHandler\n}\n\nRequestContext.prototype.setResponseHandler = function (\n responseHandler: ResponseHandler\n) {\n this.responseHandler = responseHandler\n}\n\nconst rc = new RequestContext(\n (url, query, init) => {\n return {url, query, init}\n },\n (status, headers, data) => {\n return {status, headers, data}\n }\n)\nconst request = rc.request.bind(rc)\nconst setRequestHandler = rc.setRequestHandler.bind(rc)\nconst setResponseHandler = rc.setResponseHandler.bind(rc)\n\nexport {request, setRequestHandler, setResponseHandler}\n\nexport interface GetOauthClientConfigParams {\n query?: {\n redirectTo?: string\n }\n}\n\ntype GetOauthClientConfigResult =\n | GetOauthClientConfigOKResult\n | GetOauthClientConfigDefaultResult\n\ninterface GetOauthClientConfigOKResult {\n status: 200\n headers: Headers\n data: OAuthClientConfig\n}\n\ninterface GetOauthClientConfigDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOauthClientConfig = (\n params: GetOauthClientConfigParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2private/oauth/clientConfig',\n params,\n options\n ) as Promise\n\nexport interface GetFlagsParams {}\n\ntype GetFlagsResult = GetFlagsOKResult | GetFlagsDefaultResult\n\ninterface GetFlagsOKResult {\n status: 200\n headers: Headers\n data: any\n}\n\ninterface GetFlagsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getFlags = (\n params: GetFlagsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2private/flags',\n params,\n options\n ) as Promise\n\nexport interface GetLimiteventsParams {\n query: {\n offset?: number\n orgID: string\n start?: string\n stop?: string\n limit?: number\n }\n}\n\ntype GetLimiteventsResult = GetLimiteventsOKResult | GetLimiteventsDefaultResult\n\ninterface GetLimiteventsOKResult {\n status: 200\n headers: Headers\n data: LimitEvents\n}\n\ninterface GetLimiteventsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getLimitevents = (\n params: GetLimiteventsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2private/limitevents',\n params,\n options\n ) as Promise\n\nexport interface GetOrgsLimitsParams {\n orgID: string\n}\n\ntype GetOrgsLimitsResult = GetOrgsLimitsOKResult | GetOrgsLimitsDefaultResult\n\ninterface GetOrgsLimitsOKResult {\n status: 200\n headers: Headers\n data: Limit\n}\n\ninterface GetOrgsLimitsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrgsLimits = (\n params: GetOrgsLimitsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/orgs/${params.orgID}/limits`,\n params,\n options\n ) as Promise\n\nexport interface PutOrgsLimitsParams {\n orgID: string\n\n data: Limit\n}\n\ntype PutOrgsLimitsResult = PutOrgsLimitsOKResult | PutOrgsLimitsDefaultResult\n\ninterface PutOrgsLimitsOKResult {\n status: 200\n headers: Headers\n data: Limit\n}\n\ninterface PutOrgsLimitsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putOrgsLimits = (\n params: PutOrgsLimitsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2private/orgs/${params.orgID}/limits`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PatchOrgsLimitsParams {\n orgID: string\n\n data: {\n orgID?: string\n rate?: {\n queryTime?: number\n readKBs?: number\n concurrentReadRequests?: number\n writeKBs?: number\n concurrentWriteRequests?: number\n cardinality?: number\n concurrentDeleteRequests?: number\n deleteRequestsPerSecond?: number\n }\n bucket?: {\n maxBuckets?: number\n maxRetentionDuration?: number\n }\n task?: {\n maxTasks: number\n }\n dashboard?: {\n maxDashboards: number\n }\n check?: {\n maxChecks: number\n }\n notificationRule?: {\n maxNotifications?: number\n blockedNotificationRules?: string\n }\n notificationEndpoint?: {\n blockedNotificationEndpoints?: string\n }\n }\n}\n\ntype PatchOrgsLimitsResult =\n | PatchOrgsLimitsOKResult\n | PatchOrgsLimitsUnprocessableEntityResult\n | PatchOrgsLimitsDefaultResult\n\ninterface PatchOrgsLimitsOKResult {\n status: 200\n headers: Headers\n data: Limit\n}\n\ninterface PatchOrgsLimitsUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: ServerError\n}\n\ninterface PatchOrgsLimitsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchOrgsLimits = (\n params: PatchOrgsLimitsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2private/orgs/${params.orgID}/limits`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetOrgsLimitsStatusParams {\n orgID: string\n}\n\ntype GetOrgsLimitsStatusResult =\n | GetOrgsLimitsStatusOKResult\n | GetOrgsLimitsStatusDefaultResult\n\ninterface GetOrgsLimitsStatusOKResult {\n status: 200\n headers: Headers\n data: LimitStatuses\n}\n\ninterface GetOrgsLimitsStatusDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrgsLimitsStatus = (\n params: GetOrgsLimitsStatusParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/orgs/${params.orgID}/limits/status`,\n params,\n options\n ) as Promise\n\nexport interface GetOrgsSettingsParams {\n orgID: string\n}\n\ntype GetOrgsSettingsResult =\n | GetOrgsSettingsOKResult\n | GetOrgsSettingsDefaultResult\n\ninterface GetOrgsSettingsOKResult {\n status: 200\n headers: Headers\n data: OrgSettings\n}\n\ninterface GetOrgsSettingsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrgsSettings = (\n params: GetOrgsSettingsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/orgs/${params.orgID}/settings`,\n params,\n options\n ) as Promise\n\nexport interface PutOrgsSettingsParams {\n orgID: string\n\n data: OrgSettings\n}\n\ntype PutOrgsSettingsResult =\n | PutOrgsSettingsOKResult\n | PutOrgsSettingsDefaultResult\n\ninterface PutOrgsSettingsOKResult {\n status: 200\n headers: Headers\n data: OrgSettings\n}\n\ninterface PutOrgsSettingsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putOrgsSettings = (\n params: PutOrgsSettingsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2private/orgs/${params.orgID}/settings`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PostSetupUserParams {\n data: OnboardingRequest\n}\n\ntype PostSetupUserResult =\n | PostSetupUserCreatedResult\n | PostSetupUserDefaultResult\n\ninterface PostSetupUserCreatedResult {\n status: 201\n headers: Headers\n data: OnboardingResponse\n}\n\ninterface PostSetupUserDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postSetupUser = (\n params: PostSetupUserParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2private/setup/user',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PutProvisionParams {\n data: ProvisionRequest\n}\n\ntype PutProvisionResult =\n | PutProvisionCreatedResult\n | PutProvisionBadRequestResult\n | PutProvisionUnauthorizedResult\n | PutProvisionForbiddenResult\n | PutProvisionUnprocessableEntityResult\n | PutProvisionNotImplementedResult\n | PutProvisionDefaultResult\n\ninterface PutProvisionCreatedResult {\n status: 201\n headers: Headers\n data: ProvisionResponse\n}\n\ninterface PutProvisionBadRequestResult {\n status: 400\n headers: Headers\n data: ServerError\n}\n\ninterface PutProvisionUnauthorizedResult {\n status: 401\n headers: Headers\n data: ServerError\n}\n\ninterface PutProvisionForbiddenResult {\n status: 403\n headers: Headers\n data: ServerError\n}\n\ninterface PutProvisionUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: ServerError\n}\n\ninterface PutProvisionNotImplementedResult {\n status: 501\n headers: Headers\n data: ServerError\n}\n\ninterface PutProvisionDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putProvision = (\n params: PutProvisionParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n '/api/v2private/provision',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PostProvisionDeleteParams {\n data: ProvisionDeleteRequest\n}\n\ntype PostProvisionDeleteResult =\n | PostProvisionDeleteNoContentResult\n | PostProvisionDeleteBadRequestResult\n | PostProvisionDeleteUnauthorizedResult\n | PostProvisionDeleteUnprocessableEntityResult\n | PostProvisionDeleteDefaultResult\n\ninterface PostProvisionDeleteNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostProvisionDeleteBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionDeleteUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionDeleteUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionDeleteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postProvisionDelete = (\n params: PostProvisionDeleteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2private/provision/delete',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PutProvisionUserParams {\n data: ProvisionUserRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PutProvisionUserResult =\n | PutProvisionUserCreatedResult\n | PutProvisionUserBadRequestResult\n | PutProvisionUserUnauthorizedResult\n | PutProvisionUserUnprocessableEntityResult\n | PutProvisionUserNotImplementedResult\n | PutProvisionUserDefaultResult\n\ninterface PutProvisionUserCreatedResult {\n status: 201\n headers: Headers\n data: ProvisionUserResponse\n}\n\ninterface PutProvisionUserBadRequestResult {\n status: 400\n headers: Headers\n data: ServerError\n}\n\ninterface PutProvisionUserUnauthorizedResult {\n status: 401\n headers: Headers\n data: ServerError\n}\n\ninterface PutProvisionUserUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: ServerError\n}\n\ninterface PutProvisionUserNotImplementedResult {\n status: 501\n headers: Headers\n data: ServerError\n}\n\ninterface PutProvisionUserDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putProvisionUser = (\n params: PutProvisionUserParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n '/api/v2private/provision/user',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PostProvisionUserDeleteParams {\n data: ProvisionUserDeleteRequest\n}\n\ntype PostProvisionUserDeleteResult =\n | PostProvisionUserDeleteNoContentResult\n | PostProvisionUserDeleteBadRequestResult\n | PostProvisionUserDeleteUnauthorizedResult\n | PostProvisionUserDeleteUnprocessableEntityResult\n | PostProvisionUserDeleteDefaultResult\n\ninterface PostProvisionUserDeleteNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostProvisionUserDeleteBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionUserDeleteUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionUserDeleteUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionUserDeleteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postProvisionUserDelete = (\n params: PostProvisionUserDeleteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2private/provision/user/delete',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PostProvisionSetupParams {\n data: ProvisionSetupRequest\n}\n\ntype PostProvisionSetupResult =\n | PostProvisionSetupCreatedResult\n | PostProvisionSetupBadRequestResult\n | PostProvisionSetupUnprocessableEntityResult\n | PostProvisionSetupDefaultResult\n\ninterface PostProvisionSetupCreatedResult {\n status: 201\n headers: Headers\n data: {\n token?: string\n }\n}\n\ninterface PostProvisionSetupBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionSetupUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionSetupDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postProvisionSetup = (\n params: PostProvisionSetupParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2private/provision/setup',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PostProvisionSuspendParams {\n data: ProvisionSuspendRequest\n}\n\ntype PostProvisionSuspendResult =\n | PostProvisionSuspendNoContentResult\n | PostProvisionSuspendBadRequestResult\n | PostProvisionSuspendUnauthorizedResult\n | PostProvisionSuspendUnprocessableEntityResult\n | PostProvisionSuspendDefaultResult\n\ninterface PostProvisionSuspendNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostProvisionSuspendBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionSuspendUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionSuspendUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionSuspendDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postProvisionSuspend = (\n params: PostProvisionSuspendParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2private/provision/suspend',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PostProvisionUnsuspendParams {\n data: ProvisionSuspendRequest\n}\n\ntype PostProvisionUnsuspendResult =\n | PostProvisionUnsuspendNoContentResult\n | PostProvisionUnsuspendBadRequestResult\n | PostProvisionUnsuspendUnauthorizedResult\n | PostProvisionUnsuspendUnprocessableEntityResult\n | PostProvisionUnsuspendDefaultResult\n\ninterface PostProvisionUnsuspendNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostProvisionUnsuspendBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionUnsuspendUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionUnsuspendUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostProvisionUnsuspendDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postProvisionUnsuspend = (\n params: PostProvisionUnsuspendParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2private/provision/unsuspend',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n","// This file is generated by [oats][0] and should not be edited by hand.\n//\n// [0]: https://github.com/influxdata/oats\n\nexport interface Error {\n readonly code:\n | 'internal error'\n | 'not found'\n | 'conflict'\n | 'invalid'\n | 'unprocessable entity'\n | 'empty value'\n | 'unavailable'\n | 'forbidden'\n | 'too many requests'\n | 'unauthorized'\n | 'method not allowed'\n | 'request too large'\n | 'unsupported media type'\n readonly message?: string\n readonly op?: string\n readonly err?: string\n}\n\nexport interface Routes {\n authorizations?: string\n buckets?: string\n dashboards?: string\n external?: {\n statusFeed?: string\n }\n variables?: string\n me?: string\n flags?: string\n orgs?: string\n query?: {\n self?: string\n ast?: string\n analyze?: string\n suggestions?: string\n }\n setup?: string\n signin?: string\n signout?: string\n sources?: string\n system?: {\n metrics?: string\n debug?: string\n health?: string\n }\n tasks?: string\n telegrafs?: string\n users?: string\n write?: string\n}\n\nexport interface DBRPs {\n content?: DBRP[]\n}\n\nexport interface DBRP {\n readonly id: string\n orgID: string\n bucketID: string\n database: string\n retention_policy: string\n default: boolean\n virtual?: boolean\n links?: Links\n}\n\nexport interface Links {\n next?: Link\n self: Link\n prev?: Link\n}\n\nexport type Link = string\n\nexport interface DBRPCreate {\n org?: string\n orgID?: string\n bucketID: string\n database: string\n retention_policy: string\n default?: boolean\n}\n\nexport interface DBRPGet {\n content?: DBRP\n}\n\nexport interface DBRPUpdate {\n retention_policy?: string\n default?: boolean\n}\n\nexport interface TelegrafPlugins {\n version?: string\n os?: string\n plugins?: TelegrafPlugin[]\n}\n\nexport interface TelegrafPlugin {\n type?: string\n name?: string\n description?: string\n config?: string\n}\n\nexport interface Telegrafs {\n configurations?: Telegraf[]\n}\n\nexport type Telegraf = TelegrafRequest & {\n readonly id?: string\n readonly links?: {\n self?: Link\n labels?: Link\n members?: Link\n owners?: Link\n }\n readonly labels?: Labels\n}\n\nexport interface TelegrafRequest {\n name?: string\n description?: string\n metadata?: {\n buckets?: string[]\n }\n config?: string\n orgID?: string\n}\n\nexport type Labels = Label[]\n\nexport interface Label {\n readonly id?: string\n readonly orgID?: string\n name?: string\n properties?: any\n}\n\nexport interface TelegrafPluginRequest {\n name?: string\n description?: string\n plugins?: Array<{\n type?: string\n name?: string\n alias?: string\n description?: string\n config?: string\n }>\n metadata?: {\n buckets?: string[]\n }\n config?: string\n orgID?: string\n}\n\nexport interface LabelsResponse {\n labels?: Labels\n links?: Links\n}\n\nexport interface LabelMapping {\n labelID: string\n}\n\nexport interface LabelResponse {\n label?: Label\n links?: Links\n}\n\nexport interface ResourceMembers {\n links?: {\n self?: string\n }\n users?: ResourceMember[]\n}\n\nexport type ResourceMember = UserResponse & {\n role?: 'member'\n}\n\nexport interface UserResponse {\n readonly id?: string\n name: string\n status?: 'active' | 'inactive'\n readonly links?: {\n self?: string\n }\n}\n\nexport interface AddResourceMemberRequestBody {\n id: string\n name?: string\n}\n\nexport interface ResourceOwners {\n links?: {\n self?: string\n }\n users?: ResourceOwner[]\n}\n\nexport type ResourceOwner = UserResponse & {\n role?: 'owner'\n}\n\nexport interface LineProtocolError {\n readonly code:\n | 'internal error'\n | 'not found'\n | 'conflict'\n | 'invalid'\n | 'empty value'\n | 'unavailable'\n readonly message?: string\n readonly op?: string\n readonly err?: string\n readonly line?: number\n}\n\nexport interface LineProtocolLengthError {\n readonly code: 'invalid'\n readonly message: string\n}\n\nexport interface DeletePredicateRequest {\n start: string\n stop: string\n predicate?: string\n}\n\nexport interface LabelCreateRequest {\n orgID: string\n name: string\n properties?: any\n}\n\nexport interface LabelUpdate {\n name?: string\n properties?: any\n}\n\nexport type Dashboard = CreateDashboardRequest & {\n links?: {\n self?: Link\n cells?: Link\n members?: Link\n owners?: Link\n labels?: Link\n org?: Link\n }\n readonly id?: string\n meta?: {\n createdAt?: string\n updatedAt?: string\n }\n cells?: Cells\n labels?: Labels\n}\n\nexport interface CreateDashboardRequest {\n orgID: string\n name: string\n description?: string\n}\n\nexport type Cells = Cell[]\n\nexport interface Cell {\n id?: string\n links?: {\n self?: string\n view?: string\n }\n x?: number\n y?: number\n w?: number\n h?: number\n viewID?: string\n}\n\nexport type DashboardWithViewProperties = CreateDashboardRequest & {\n links?: {\n self?: Link\n cells?: Link\n members?: Link\n owners?: Link\n labels?: Link\n org?: Link\n }\n readonly id?: string\n meta?: {\n createdAt?: string\n updatedAt?: string\n }\n cells?: CellsWithViewProperties\n labels?: Labels\n}\n\nexport type CellsWithViewProperties = CellWithViewProperties[]\n\nexport type CellWithViewProperties = Cell & {\n name?: string\n properties?: ViewProperties\n}\n\nexport type ViewProperties =\n | LinePlusSingleStatProperties\n | XYViewProperties\n | SingleStatViewProperties\n | HistogramViewProperties\n | GaugeViewProperties\n | TableViewProperties\n | SimpleTableViewProperties\n | MarkdownViewProperties\n | CheckViewProperties\n | ScatterViewProperties\n | HeatmapViewProperties\n | MosaicViewProperties\n | BandViewProperties\n | GeoViewProperties\n\nexport interface LinePlusSingleStatProperties {\n adaptiveZoomHide?: boolean\n timeFormat?: string\n type: 'line-plus-single-stat'\n queries: DashboardQuery[]\n colors: DashboardColor[]\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n axes: Axes\n staticLegend?: StaticLegend\n xColumn?: string\n generateXAxisTicks?: string[]\n xTotalTicks?: number\n xTickStart?: number\n xTickStep?: number\n yColumn?: string\n generateYAxisTicks?: string[]\n yTotalTicks?: number\n yTickStart?: number\n yTickStep?: number\n shadeBelow?: boolean\n hoverDimension?: 'auto' | 'x' | 'y' | 'xy'\n position: 'overlaid' | 'stacked'\n prefix: string\n suffix: string\n decimalPlaces: DecimalPlaces\n legendColorizeRows?: boolean\n legendHide?: boolean\n legendOpacity?: number\n legendOrientationThreshold?: number\n}\n\nexport interface DashboardQuery {\n text?: string\n editMode?: QueryEditMode\n name?: string\n builderConfig?: BuilderConfig\n}\n\nexport type QueryEditMode = 'builder' | 'advanced'\n\nexport interface BuilderConfig {\n buckets?: string[]\n tags?: BuilderTagsType[]\n functions?: BuilderFunctionsType[]\n aggregateWindow?: {\n period?: string\n fillValues?: boolean\n }\n}\n\nexport interface BuilderTagsType {\n key?: string\n values?: string[]\n aggregateFunctionType?: BuilderAggregateFunctionType\n}\n\nexport type BuilderAggregateFunctionType = 'filter' | 'group'\n\nexport interface BuilderFunctionsType {\n name?: string\n}\n\nexport interface DashboardColor {\n id: string\n type: 'min' | 'max' | 'threshold' | 'scale' | 'text' | 'background'\n hex: string\n name: string\n value: number\n}\n\nexport interface Axes {\n x: Axis\n y: Axis\n}\n\nexport interface Axis {\n bounds?: string[]\n label?: string\n prefix?: string\n suffix?: string\n base?: '' | '2' | '10'\n scale?: AxisScale\n}\n\nexport type AxisScale = 'log' | 'linear'\n\nexport interface StaticLegend {\n colorizeRows?: boolean\n heightRatio?: number\n show?: boolean\n opacity?: number\n orientationThreshold?: number\n valueAxis?: string\n widthRatio?: number\n}\n\nexport interface DecimalPlaces {\n isEnforced?: boolean\n digits?: number\n}\n\nexport interface XYViewProperties {\n adaptiveZoomHide?: boolean\n timeFormat?: string\n type: 'xy'\n queries: DashboardQuery[]\n colors: DashboardColor[]\n colorMapping?: ColorMapping\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n axes: Axes\n staticLegend?: StaticLegend\n xColumn?: string\n generateXAxisTicks?: string[]\n xTotalTicks?: number\n xTickStart?: number\n xTickStep?: number\n yColumn?: string\n generateYAxisTicks?: string[]\n yTotalTicks?: number\n yTickStart?: number\n yTickStep?: number\n shadeBelow?: boolean\n hoverDimension?: 'auto' | 'x' | 'y' | 'xy'\n position: 'overlaid' | 'stacked'\n geom: XYGeom\n legendColorizeRows?: boolean\n legendHide?: boolean\n legendOpacity?: number\n legendOrientationThreshold?: number\n}\n\nexport type ColorMapping = any\n\nexport type XYGeom =\n | 'line'\n | 'step'\n | 'stacked'\n | 'bar'\n | 'monotoneX'\n | 'stepBefore'\n | 'stepAfter'\n\nexport interface SingleStatViewProperties {\n type: 'single-stat'\n queries: DashboardQuery[]\n colors: DashboardColor[]\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n prefix: string\n tickPrefix: string\n suffix: string\n tickSuffix: string\n staticLegend?: StaticLegend\n decimalPlaces: DecimalPlaces\n}\n\nexport interface HistogramViewProperties {\n type: 'histogram'\n queries: DashboardQuery[]\n colors: DashboardColor[]\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n xColumn: string\n fillColumns: string[]\n xDomain: number[]\n xAxisLabel: string\n position: 'overlaid' | 'stacked'\n binCount: number\n legendColorizeRows?: boolean\n legendHide?: boolean\n legendOpacity?: number\n legendOrientationThreshold?: number\n}\n\nexport interface GaugeViewProperties {\n type: 'gauge'\n queries: DashboardQuery[]\n colors: DashboardColor[]\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n prefix: string\n tickPrefix: string\n suffix: string\n tickSuffix: string\n decimalPlaces: DecimalPlaces\n}\n\nexport interface TableViewProperties {\n type: 'table'\n queries: DashboardQuery[]\n colors: DashboardColor[]\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n tableOptions: {\n verticalTimeAxis?: boolean\n sortBy?: RenamableField\n wrapping?: 'truncate' | 'wrap' | 'single-line'\n fixFirstColumn?: boolean\n }\n fieldOptions: RenamableField[]\n timeFormat: string\n decimalPlaces: DecimalPlaces\n}\n\nexport interface RenamableField {\n readonly internalName?: string\n displayName?: string\n visible?: boolean\n}\n\nexport interface SimpleTableViewProperties {\n type: 'simple-table'\n showAll: boolean\n queries: DashboardQuery[]\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n}\n\nexport interface MarkdownViewProperties {\n type: 'markdown'\n shape: 'chronograf-v2'\n note: string\n}\n\nexport interface CheckViewProperties {\n adaptiveZoomHide?: boolean\n type: 'check'\n shape: 'chronograf-v2'\n checkID: string\n check?: Check\n queries: DashboardQuery[]\n colors: DashboardColor[]\n legendColorizeRows?: boolean\n legendHide?: boolean\n legendOpacity?: number\n legendOrientationThreshold?: number\n}\n\nexport type Check = CheckDiscriminator\n\nexport type CheckDiscriminator =\n | (DeadmanCheck & {type: string})\n | (ThresholdCheck & {type: string})\n | (CustomCheck & {type: string})\n\nexport type DeadmanCheck = CheckBase & {\n type: 'deadman'\n timeSince?: string\n staleTime?: string\n reportZero?: boolean\n level?: CheckStatusLevel\n every?: string\n offset?: string\n tags?: Array<{\n key?: string\n value?: string\n }>\n statusMessageTemplate?: string\n}\n\nexport interface CheckBase {\n readonly id?: string\n name: string\n orgID: string\n taskID?: string\n readonly ownerID?: string\n readonly createdAt?: string\n readonly updatedAt?: string\n query: DashboardQuery\n status?: TaskStatusType\n description?: string\n readonly latestCompleted?: string\n readonly lastRunStatus?: 'failed' | 'success' | 'canceled'\n readonly lastRunError?: string\n labels?: Labels\n readonly links?: {\n self?: Link\n labels?: Link\n members?: Link\n owners?: Link\n query?: Link\n }\n}\n\nexport type TaskStatusType = 'active' | 'inactive'\n\nexport type CheckStatusLevel = 'UNKNOWN' | 'OK' | 'INFO' | 'CRIT' | 'WARN'\n\nexport type ThresholdCheck = CheckBase & {\n type: 'threshold'\n thresholds?: Threshold[]\n every?: string\n offset?: string\n tags?: Array<{\n key?: string\n value?: string\n }>\n statusMessageTemplate?: string\n}\n\nexport type Threshold =\n | (GreaterThreshold & {type: string})\n | (LesserThreshold & {type: string})\n | (RangeThreshold & {type: string})\n\nexport type GreaterThreshold = ThresholdBase & {\n type: 'greater'\n value: number\n}\n\nexport interface ThresholdBase {\n level?: CheckStatusLevel\n allValues?: boolean\n}\n\nexport type LesserThreshold = ThresholdBase & {\n type: 'lesser'\n value: number\n}\n\nexport type RangeThreshold = ThresholdBase & {\n type: 'range'\n min: number\n max: number\n within: boolean\n}\n\nexport type CustomCheck = CheckBase & {\n type: 'custom'\n}\n\nexport interface ScatterViewProperties {\n adaptiveZoomHide?: boolean\n timeFormat?: string\n type: 'scatter'\n queries: DashboardQuery[]\n colors: string[]\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n xColumn: string\n generateXAxisTicks?: string[]\n xTotalTicks?: number\n xTickStart?: number\n xTickStep?: number\n yColumn: string\n generateYAxisTicks?: string[]\n yTotalTicks?: number\n yTickStart?: number\n yTickStep?: number\n fillColumns: string[]\n symbolColumns: string[]\n xDomain: number[]\n yDomain: number[]\n xAxisLabel: string\n yAxisLabel: string\n xPrefix: string\n xSuffix: string\n yPrefix: string\n ySuffix: string\n legendColorizeRows?: boolean\n legendHide?: boolean\n legendOpacity?: number\n legendOrientationThreshold?: number\n}\n\nexport interface HeatmapViewProperties {\n adaptiveZoomHide?: boolean\n timeFormat?: string\n type: 'heatmap'\n queries: DashboardQuery[]\n colors: string[]\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n xColumn: string\n generateXAxisTicks?: string[]\n xTotalTicks?: number\n xTickStart?: number\n xTickStep?: number\n yColumn: string\n generateYAxisTicks?: string[]\n yTotalTicks?: number\n yTickStart?: number\n yTickStep?: number\n xDomain: number[]\n yDomain: number[]\n xAxisLabel: string\n yAxisLabel: string\n xPrefix: string\n xSuffix: string\n yPrefix: string\n ySuffix: string\n binSize: number\n legendColorizeRows?: boolean\n legendHide?: boolean\n legendOpacity?: number\n legendOrientationThreshold?: number\n}\n\nexport interface MosaicViewProperties {\n timeFormat?: string\n type: 'mosaic'\n queries: DashboardQuery[]\n colors: string[]\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n xColumn: string\n generateXAxisTicks?: string[]\n xTotalTicks?: number\n xTickStart?: number\n xTickStep?: number\n yLabelColumnSeparator?: string\n yLabelColumns?: string[]\n ySeriesColumns: string[]\n fillColumns: string[]\n xDomain: number[]\n yDomain: number[]\n xAxisLabel: string\n yAxisLabel: string\n xPrefix: string\n xSuffix: string\n yPrefix: string\n ySuffix: string\n hoverDimension?: 'auto' | 'x' | 'y' | 'xy'\n legendColorizeRows?: boolean\n legendHide?: boolean\n legendOpacity?: number\n legendOrientationThreshold?: number\n}\n\nexport interface BandViewProperties {\n adaptiveZoomHide?: boolean\n timeFormat?: string\n type: 'band'\n queries: DashboardQuery[]\n colors: DashboardColor[]\n shape: 'chronograf-v2'\n note: string\n showNoteWhenEmpty: boolean\n axes: Axes\n staticLegend?: StaticLegend\n xColumn?: string\n generateXAxisTicks?: string[]\n xTotalTicks?: number\n xTickStart?: number\n xTickStep?: number\n yColumn?: string\n generateYAxisTicks?: string[]\n yTotalTicks?: number\n yTickStart?: number\n yTickStep?: number\n upperColumn?: string\n mainColumn?: string\n lowerColumn?: string\n hoverDimension?: 'auto' | 'x' | 'y' | 'xy'\n geom: XYGeom\n legendColorizeRows?: boolean\n legendHide?: boolean\n legendOpacity?: number\n legendOrientationThreshold?: number\n}\n\nexport interface GeoViewProperties {\n type: 'geo'\n queries: DashboardQuery[]\n shape: 'chronograf-v2'\n center: {\n lat: number\n lon: number\n }\n zoom: number\n allowPanAndZoom: boolean\n detectCoordinateFields: boolean\n useS2CellID?: boolean\n s2Column?: string\n latLonColumns?: LatLonColumns\n mapStyle?: string\n note: string\n showNoteWhenEmpty: boolean\n colors?: DashboardColor[]\n layers: GeoViewLayer[]\n}\n\nexport interface LatLonColumns {\n lat: LatLonColumn\n lon: LatLonColumn\n}\n\nexport interface LatLonColumn {\n key: string\n column: string\n}\n\nexport type GeoViewLayer =\n | GeoCircleViewLayer\n | GeoHeatMapViewLayer\n | GeoPointMapViewLayer\n | GeoTrackMapViewLayer\n\nexport type GeoCircleViewLayer = GeoViewLayerProperties & {\n radiusField: string\n radiusDimension: Axis\n colorField: string\n colorDimension: Axis\n colors: DashboardColor[]\n radius?: number\n interpolateColors?: boolean\n}\n\nexport interface GeoViewLayerProperties {\n type: 'heatmap' | 'circleMap' | 'pointMap' | 'trackMap'\n}\n\nexport type GeoHeatMapViewLayer = GeoViewLayerProperties & {\n intensityField: string\n intensityDimension: Axis\n radius: number\n blur: number\n colors: DashboardColor[]\n}\n\nexport type GeoPointMapViewLayer = GeoViewLayerProperties & {\n colorField: string\n colorDimension: Axis\n colors: DashboardColor[]\n isClustered?: boolean\n tooltipColumns?: string[]\n}\n\nexport type GeoTrackMapViewLayer = GeoViewLayerProperties & any\n\nexport interface CreateCell {\n name?: string\n x?: number\n y?: number\n w?: number\n h?: number\n usingView?: string\n}\n\nexport interface CellUpdate {\n x?: number\n y?: number\n w?: number\n h?: number\n}\n\nexport interface View {\n readonly links?: {\n self?: string\n }\n readonly id?: string\n name: string\n properties: ViewProperties\n}\n\nexport interface LanguageRequest {\n query: string\n}\n\nexport interface ASTResponse {\n ast?: Package\n}\n\nexport interface Package {\n type?: NodeType\n path?: string\n package?: string\n files?: File[]\n}\n\nexport type NodeType = string\n\nexport interface File {\n type?: NodeType\n name?: string\n package?: PackageClause\n imports?: ImportDeclaration[]\n body?: Statement[]\n}\n\nexport interface PackageClause {\n type?: NodeType\n name?: Identifier\n}\n\nexport interface Identifier {\n type?: NodeType\n name?: string\n}\n\nexport interface ImportDeclaration {\n type?: NodeType\n as?: Identifier\n path?: StringLiteral\n}\n\nexport interface StringLiteral {\n type?: NodeType\n value?: string\n}\n\nexport type Statement =\n | BadStatement\n | VariableAssignment\n | MemberAssignment\n | ExpressionStatement\n | ReturnStatement\n | OptionStatement\n | BuiltinStatement\n | TestStatement\n\nexport interface BadStatement {\n type?: NodeType\n text?: string\n}\n\nexport interface VariableAssignment {\n type?: NodeType\n id?: Identifier\n init?: Expression\n}\n\nexport type Expression =\n | ArrayExpression\n | DictExpression\n | FunctionExpression\n | BinaryExpression\n | CallExpression\n | ConditionalExpression\n | LogicalExpression\n | MemberExpression\n | IndexExpression\n | ObjectExpression\n | ParenExpression\n | PipeExpression\n | UnaryExpression\n | BooleanLiteral\n | DateTimeLiteral\n | DurationLiteral\n | FloatLiteral\n | IntegerLiteral\n | PipeLiteral\n | RegexpLiteral\n | StringLiteral\n | UnsignedIntegerLiteral\n | Identifier\n\nexport interface ArrayExpression {\n type?: NodeType\n elements?: Expression[]\n}\n\nexport interface DictExpression {\n type?: NodeType\n elements?: DictItem[]\n}\n\nexport interface DictItem {\n type?: NodeType\n key?: Expression\n val?: Expression\n}\n\nexport interface FunctionExpression {\n type?: NodeType\n params?: Property[]\n body?: Node\n}\n\nexport interface Property {\n type?: NodeType\n key?: PropertyKey\n value?: Expression\n}\n\nexport type PropertyKey = Identifier | StringLiteral\n\nexport type Node = Expression | Block\n\nexport interface Block {\n type?: NodeType\n body?: Statement[]\n}\n\nexport interface BinaryExpression {\n type?: NodeType\n operator?: string\n left?: Expression\n right?: Expression\n}\n\nexport interface CallExpression {\n type?: NodeType\n callee?: Expression\n arguments?: Expression[]\n}\n\nexport interface ConditionalExpression {\n type?: NodeType\n test?: Expression\n alternate?: Expression\n consequent?: Expression\n}\n\nexport interface LogicalExpression {\n type?: NodeType\n operator?: string\n left?: Expression\n right?: Expression\n}\n\nexport interface MemberExpression {\n type?: NodeType\n object?: Expression\n property?: PropertyKey\n}\n\nexport interface IndexExpression {\n type?: NodeType\n array?: Expression\n index?: Expression\n}\n\nexport interface ObjectExpression {\n type?: NodeType\n properties?: Property[]\n}\n\nexport interface ParenExpression {\n type?: NodeType\n expression?: Expression\n}\n\nexport interface PipeExpression {\n type?: NodeType\n argument?: Expression\n call?: CallExpression\n}\n\nexport interface UnaryExpression {\n type?: NodeType\n operator?: string\n argument?: Expression\n}\n\nexport interface BooleanLiteral {\n type?: NodeType\n value?: boolean\n}\n\nexport interface DateTimeLiteral {\n type?: NodeType\n value?: string\n}\n\nexport interface DurationLiteral {\n type?: NodeType\n values?: Duration[]\n}\n\nexport interface Duration {\n type?: NodeType\n magnitude?: number\n unit?: string\n}\n\nexport interface FloatLiteral {\n type?: NodeType\n value?: number\n}\n\nexport interface IntegerLiteral {\n type?: NodeType\n value?: string\n}\n\nexport interface PipeLiteral {\n type?: NodeType\n}\n\nexport interface RegexpLiteral {\n type?: NodeType\n value?: string\n}\n\nexport interface UnsignedIntegerLiteral {\n type?: NodeType\n value?: string\n}\n\nexport interface MemberAssignment {\n type?: NodeType\n member?: MemberExpression\n init?: Expression\n}\n\nexport interface ExpressionStatement {\n type?: NodeType\n expression?: Expression\n}\n\nexport interface ReturnStatement {\n type?: NodeType\n argument?: Expression\n}\n\nexport interface OptionStatement {\n type?: NodeType\n assignment?: VariableAssignment | MemberAssignment\n}\n\nexport interface BuiltinStatement {\n type?: NodeType\n id?: Identifier\n}\n\nexport interface TestStatement {\n type?: NodeType\n assignment?: VariableAssignment\n}\n\nexport interface FluxSuggestions {\n funcs?: FluxSuggestion[]\n}\n\nexport interface FluxSuggestion {\n name?: string\n params?: any\n}\n\nexport interface Query {\n extern?: File\n query: string\n type?: 'flux'\n params?: any\n dialect?: Dialect\n now?: string\n}\n\nexport interface Dialect {\n header?: boolean\n delimiter?: string\n annotations?: Array<'group' | 'datatype' | 'default'>\n commentPrefix?: string\n dateTimeFormat?: 'RFC3339' | 'RFC3339Nano'\n}\n\nexport interface AnalyzeQueryResponse {\n errors?: Array<{\n line?: number\n column?: number\n character?: number\n message?: string\n }>\n}\n\nexport interface Buckets {\n readonly links?: Links\n buckets?: Bucket[]\n}\n\nexport interface Bucket {\n readonly links?: {\n labels?: Link\n members?: Link\n org?: Link\n owners?: Link\n self?: Link\n write?: Link\n }\n readonly id?: string\n readonly type?: 'user' | 'system'\n name: string\n description?: string\n orgID?: string\n rp?: string\n schemaType?: SchemaType\n readonly createdAt?: string\n readonly updatedAt?: string\n retentionRules: RetentionRules\n labels?: Labels\n}\n\nexport type SchemaType = 'implicit' | 'explicit'\n\nexport type RetentionRules = RetentionRule[]\n\nexport interface RetentionRule {\n type?: 'expire'\n everySeconds: number\n shardGroupDurationSeconds?: number\n}\n\nexport interface PostBucketRequest {\n orgID: string\n name: string\n description?: string\n rp?: string\n retentionRules?: RetentionRules\n schemaType?: SchemaType\n}\n\nexport interface PatchBucketRequest {\n name?: string\n description?: string\n retentionRules?: PatchRetentionRules\n}\n\nexport type PatchRetentionRules = PatchRetentionRule[]\n\nexport interface PatchRetentionRule {\n type?: 'expire'\n everySeconds: number\n shardGroupDurationSeconds?: number\n}\n\nexport interface Organizations {\n links?: Links\n orgs?: Organization[]\n}\n\nexport interface Organization {\n readonly links?: {\n self?: Link\n members?: Link\n owners?: Link\n labels?: Link\n secrets?: Link\n buckets?: Link\n tasks?: Link\n dashboards?: Link\n }\n readonly id?: string\n name: string\n defaultStorageType?: 'tsm' | 'iox'\n description?: string\n readonly createdAt?: string\n readonly updatedAt?: string\n status?: 'active' | 'inactive'\n}\n\nexport interface PostOrganizationRequest {\n name: string\n description?: string\n}\n\nexport interface PatchOrganizationRequest {\n name?: string\n description?: string\n}\n\nexport type SecretKeysResponse = SecretKeys & {\n readonly links?: {\n self?: string\n org?: string\n }\n}\n\nexport interface SecretKeys {\n secrets?: string[]\n}\n\nexport type Secrets = any\n\nexport interface Stack {\n id?: string\n orgID?: string\n readonly createdAt?: string\n events?: Array<{\n eventType?: string\n name?: string\n description?: string\n sources?: string[]\n resources?: Array<{\n apiVersion?: string\n resourceID?: string\n kind?: TemplateKind\n templateMetaName?: string\n associations?: Array<{\n kind?: TemplateKind\n metaName?: string\n }>\n links?: {\n self?: string\n }\n }>\n urls?: string[]\n readonly updatedAt?: string\n }>\n}\n\nexport type TemplateKind =\n | 'Bucket'\n | 'Check'\n | 'CheckDeadman'\n | 'CheckThreshold'\n | 'Dashboard'\n | 'Label'\n | 'NotificationEndpoint'\n | 'NotificationEndpointHTTP'\n | 'NotificationEndpointPagerDuty'\n | 'NotificationEndpointSlack'\n | 'NotificationRule'\n | 'Task'\n | 'Telegraf'\n | 'Variable'\n\nexport interface TemplateApply {\n dryRun?: boolean\n orgID?: string\n stackID?: string\n template?: {\n contentType?: string\n sources?: string[]\n contents?: Template\n }\n templates?: Array<{\n contentType?: string\n sources?: string[]\n contents?: Template\n }>\n envRefs?: any\n secrets?: any\n remotes?: Array<{\n url: string\n contentType?: string\n }>\n actions?: Array<\n | {\n action?: 'skipKind'\n properties?: {\n kind: TemplateKind\n }\n }\n | {\n action?: 'skipResource'\n properties?: {\n kind: TemplateKind\n resourceTemplateName: string\n }\n }\n >\n}\n\nexport type Template = Array<{\n apiVersion?: string\n kind?: TemplateKind\n metadata?: {\n name?: string\n }\n spec?: any\n}>\n\nexport interface TemplateSummary {\n sources?: string[]\n stackID?: string\n summary?: {\n buckets?: Array<{\n id?: string\n orgID?: string\n kind?: TemplateKind\n templateMetaName?: string\n name?: string\n description?: string\n retentionPeriod?: number\n labelAssociations?: TemplateSummaryLabel[]\n envReferences?: TemplateEnvReferences\n }>\n checks?: Array<\n CheckDiscriminator & {\n kind?: TemplateKind\n templateMetaName?: string\n labelAssociations?: TemplateSummaryLabel[]\n envReferences?: TemplateEnvReferences\n }\n >\n dashboards?: Array<{\n id?: string\n orgID?: string\n kind?: TemplateKind\n templateMetaName?: string\n name?: string\n description?: string\n labelAssociations?: TemplateSummaryLabel[]\n charts?: TemplateChart[]\n envReferences?: TemplateEnvReferences\n }>\n labels?: TemplateSummaryLabel[]\n labelMappings?: Array<{\n status?: string\n resourceTemplateMetaName?: string\n resourceName?: string\n resourceID?: string\n resourceType?: string\n labelTemplateMetaName?: string\n labelName?: string\n labelID?: string\n }>\n missingEnvRefs?: string[]\n missingSecrets?: string[]\n notificationEndpoints?: Array<\n NotificationEndpointDiscriminator & {\n kind?: TemplateKind\n templateMetaName?: string\n labelAssociations?: TemplateSummaryLabel[]\n envReferences?: TemplateEnvReferences\n }\n >\n notificationRules?: Array<{\n kind?: TemplateKind\n templateMetaName?: string\n name?: string\n description?: string\n endpointTemplateMetaName?: string\n endpointID?: string\n endpointType?: string\n every?: string\n offset?: string\n messageTemplate?: string\n status?: string\n statusRules?: Array<{\n currentLevel?: string\n previousLevel?: string\n }>\n tagRules?: Array<{\n key?: string\n value?: string\n operator?: string\n }>\n labelAssociations?: TemplateSummaryLabel[]\n envReferences?: TemplateEnvReferences\n }>\n tasks?: Array<{\n kind?: TemplateKind\n templateMetaName?: string\n id?: string\n name?: string\n cron?: string\n description?: string\n every?: string\n offset?: string\n query?: string\n status?: string\n envReferences?: TemplateEnvReferences\n }>\n telegrafConfigs?: Array<\n TelegrafRequest & {\n kind?: TemplateKind\n templateMetaName?: string\n labelAssociations?: TemplateSummaryLabel[]\n envReferences?: TemplateEnvReferences\n }\n >\n variables?: Array<{\n kind?: TemplateKind\n templateMetaName?: string\n id?: string\n orgID?: string\n name?: string\n description?: string\n arguments?: VariableProperties\n labelAssociations?: TemplateSummaryLabel[]\n envReferences?: TemplateEnvReferences\n }>\n }\n diff?: {\n buckets?: Array<{\n kind?: TemplateKind\n stateStatus?: string\n id?: string\n templateMetaName?: string\n new?: {\n name?: string\n description?: string\n retentionRules?: RetentionRules\n }\n old?: {\n name?: string\n description?: string\n retentionRules?: RetentionRules\n }\n }>\n checks?: Array<{\n kind?: TemplateKind\n stateStatus?: string\n id?: string\n templateMetaName?: string\n new?: CheckDiscriminator\n old?: CheckDiscriminator\n }>\n dashboards?: Array<{\n stateStatus?: string\n id?: string\n kind?: TemplateKind\n templateMetaName?: string\n new?: {\n name?: string\n description?: string\n charts?: TemplateChart[]\n }\n old?: {\n name?: string\n description?: string\n charts?: TemplateChart[]\n }\n }>\n labels?: Array<{\n stateStatus?: string\n kind?: TemplateKind\n id?: string\n templateMetaName?: string\n new?: {\n name?: string\n color?: string\n description?: string\n }\n old?: {\n name?: string\n color?: string\n description?: string\n }\n }>\n labelMappings?: Array<{\n status?: string\n resourceType?: string\n resourceID?: string\n resourceTemplateMetaName?: string\n resourceName?: string\n labelID?: string\n labelTemplateMetaName?: string\n labelName?: string\n }>\n notificationEndpoints?: Array<{\n kind?: TemplateKind\n stateStatus?: string\n id?: string\n templateMetaName?: string\n new?: NotificationEndpointDiscriminator\n old?: NotificationEndpointDiscriminator\n }>\n notificationRules?: Array<{\n kind?: TemplateKind\n stateStatus?: string\n id?: string\n templateMetaName?: string\n new?: {\n name?: string\n description?: string\n endpointName?: string\n endpointID?: string\n endpointType?: string\n every?: string\n offset?: string\n messageTemplate?: string\n status?: string\n statusRules?: Array<{\n currentLevel?: string\n previousLevel?: string\n }>\n tagRules?: Array<{\n key?: string\n value?: string\n operator?: string\n }>\n }\n old?: {\n name?: string\n description?: string\n endpointName?: string\n endpointID?: string\n endpointType?: string\n every?: string\n offset?: string\n messageTemplate?: string\n status?: string\n statusRules?: Array<{\n currentLevel?: string\n previousLevel?: string\n }>\n tagRules?: Array<{\n key?: string\n value?: string\n operator?: string\n }>\n }\n }>\n tasks?: Array<{\n kind?: TemplateKind\n stateStatus?: string\n id?: string\n templateMetaName?: string\n new?: {\n name?: string\n cron?: string\n description?: string\n every?: string\n offset?: string\n query?: string\n status?: string\n }\n old?: {\n name?: string\n cron?: string\n description?: string\n every?: string\n offset?: string\n query?: string\n status?: string\n }\n }>\n telegrafConfigs?: Array<{\n kind?: TemplateKind\n stateStatus?: string\n id?: string\n templateMetaName?: string\n new?: TelegrafRequest\n old?: TelegrafRequest\n }>\n variables?: Array<{\n kind?: TemplateKind\n stateStatus?: string\n id?: string\n templateMetaName?: string\n new?: {\n name?: string\n description?: string\n args?: VariableProperties\n }\n old?: {\n name?: string\n description?: string\n args?: VariableProperties\n }\n }>\n }\n errors?: Array<{\n kind?: TemplateKind\n reason?: string\n fields?: string[]\n indexes?: number[]\n }>\n}\n\nexport interface TemplateSummaryLabel {\n id?: string\n orgID?: string\n kind?: TemplateKind\n templateMetaName?: string\n name?: string\n properties?: {\n color?: string\n description?: string\n }\n envReferences?: TemplateEnvReferences\n}\n\nexport type TemplateEnvReferences = Array<{\n resourceField: string\n envRefKey: string\n value?: string | number | number | boolean\n defaultValue?: string | number | number | boolean\n}>\n\nexport interface TemplateChart {\n xPos?: number\n yPos?: number\n height?: number\n width?: number\n properties?: ViewProperties\n}\n\nexport type NotificationEndpointDiscriminator =\n | (SlackNotificationEndpoint & {type: string})\n | (PagerDutyNotificationEndpoint & {type: string})\n | (HTTPNotificationEndpoint & {type: string})\n | (TelegramNotificationEndpoint & {type: string})\n\nexport type SlackNotificationEndpoint = NotificationEndpointBase & {\n url?: string\n token?: string\n}\n\nexport interface NotificationEndpointBase {\n id?: string\n orgID?: string\n userID?: string\n readonly createdAt?: string\n readonly updatedAt?: string\n description?: string\n name: string\n status?: 'active' | 'inactive'\n labels?: Labels\n readonly links?: {\n self?: Link\n labels?: Link\n members?: Link\n owners?: Link\n }\n type: NotificationEndpointType\n}\n\nexport type NotificationEndpointType =\n | 'slack'\n | 'pagerduty'\n | 'http'\n | 'telegram'\n\nexport type PagerDutyNotificationEndpoint = NotificationEndpointBase & {\n clientURL?: string\n routingKey: string\n}\n\nexport type HTTPNotificationEndpoint = NotificationEndpointBase & {\n url: string\n username?: string\n password?: string\n token?: string\n method: 'POST' | 'GET' | 'PUT'\n authMethod: 'none' | 'basic' | 'bearer'\n contentTemplate?: string\n headers?: any\n}\n\nexport type TelegramNotificationEndpoint = NotificationEndpointBase & {\n token: string\n channel: string\n}\n\nexport type VariableProperties =\n | QueryVariableProperties\n | ConstantVariableProperties\n | MapVariableProperties\n\nexport interface QueryVariableProperties {\n type?: 'query'\n values?: {\n query?: string\n language?: string\n }\n}\n\nexport interface ConstantVariableProperties {\n type?: 'constant'\n values?: string[]\n}\n\nexport interface MapVariableProperties {\n type?: 'map'\n values?: any\n}\n\nexport interface TemplateExportByID {\n stackID?: string\n orgIDs?: Array<{\n orgID?: string\n resourceFilters?: {\n byLabel?: string[]\n byResourceKind?: TemplateKind[]\n }\n }>\n resources?: Array<{\n id: string\n kind: TemplateKind\n name?: string\n }>\n}\n\nexport interface TemplateExportByName {\n stackID?: string\n orgIDs?: Array<{\n orgID?: string\n resourceFilters?: {\n byLabel?: string[]\n byResourceKind?: TemplateKind[]\n }\n }>\n resources?: Array<{\n kind: TemplateKind\n name: string\n }>\n}\n\nexport interface Runs {\n links?: Links\n runs?: Run[]\n}\n\nexport interface Run {\n readonly id?: string\n readonly taskID?: string\n readonly status?: 'scheduled' | 'started' | 'failed' | 'success' | 'canceled'\n scheduledFor?: string\n readonly log?: LogEvent[]\n readonly flux?: string\n readonly startedAt?: string\n readonly finishedAt?: string\n readonly requestedAt?: string\n readonly links?: {\n self?: string\n task?: string\n retry?: string\n }\n}\n\nexport interface LogEvent {\n readonly time?: string\n readonly message?: string\n readonly runID?: string\n}\n\nexport interface RunManually {\n scheduledFor?: string\n}\n\nexport interface Logs {\n readonly events?: LogEvent[]\n}\n\nexport type Flags = any\n\nexport interface PasswordResetBody {\n password: string\n}\n\nexport interface Checks {\n checks?: Check[]\n links?: Links\n}\n\nexport type PostCheck = CheckDiscriminator\n\nexport interface CheckPatch {\n name?: string\n description?: string\n status?: 'active' | 'inactive'\n}\n\nexport interface NotificationRules {\n notificationRules?: NotificationRule[]\n links?: Links\n}\n\nexport type NotificationRule = NotificationRuleDiscriminator\n\nexport type NotificationRuleDiscriminator =\n | (SlackNotificationRule & {type: string})\n | (SMTPNotificationRule & {type: string})\n | (PagerDutyNotificationRule & {type: string})\n | (HTTPNotificationRule & {type: string})\n | (TelegramNotificationRule & {type: string})\n\nexport type SlackNotificationRule = NotificationRuleBase &\n SlackNotificationRuleBase\n\nexport interface NotificationRuleBase {\n readonly latestCompleted?: string\n readonly lastRunStatus?: 'failed' | 'success' | 'canceled'\n readonly lastRunError?: string\n readonly id?: string\n endpointID: string\n orgID: string\n taskID?: string\n readonly ownerID?: string\n readonly createdAt?: string\n readonly updatedAt?: string\n status: TaskStatusType\n name: string\n sleepUntil?: string\n every?: string\n offset?: string\n runbookLink?: string\n limitEvery?: number\n limit?: number\n tagRules?: TagRule[]\n description?: string\n statusRules: StatusRule[]\n labels?: Labels\n readonly links?: {\n self?: Link\n labels?: Link\n members?: Link\n owners?: Link\n query?: Link\n }\n}\n\nexport interface TagRule {\n key?: string\n value?: string\n operator?: 'equal' | 'notequal' | 'equalregex' | 'notequalregex'\n}\n\nexport interface StatusRule {\n currentLevel?: RuleStatusLevel\n previousLevel?: RuleStatusLevel\n count?: number\n period?: string\n}\n\nexport type RuleStatusLevel =\n | 'UNKNOWN'\n | 'OK'\n | 'INFO'\n | 'CRIT'\n | 'WARN'\n | 'ANY'\n\nexport interface SlackNotificationRuleBase {\n type: 'slack'\n channel?: string\n messageTemplate: string\n}\n\nexport type SMTPNotificationRule = NotificationRuleBase &\n SMTPNotificationRuleBase\n\nexport interface SMTPNotificationRuleBase {\n type: 'smtp'\n subjectTemplate: string\n bodyTemplate?: string\n to: string\n}\n\nexport type PagerDutyNotificationRule = NotificationRuleBase &\n PagerDutyNotificationRuleBase\n\nexport interface PagerDutyNotificationRuleBase {\n type: 'pagerduty'\n messageTemplate: string\n}\n\nexport type HTTPNotificationRule = NotificationRuleBase &\n HTTPNotificationRuleBase\n\nexport interface HTTPNotificationRuleBase {\n type: 'http'\n url?: string\n}\n\nexport type TelegramNotificationRule = NotificationRuleBase &\n TelegramNotificationRuleBase\n\nexport interface TelegramNotificationRuleBase {\n type: 'telegram'\n messageTemplate: string\n parseMode?: 'MarkdownV2' | 'HTML' | 'Markdown'\n disableWebPagePreview?: boolean\n}\n\nexport type PostNotificationRule = NotificationRuleDiscriminator\n\nexport interface FluxResponse {\n flux?: string\n}\n\nexport interface NotificationRuleUpdate {\n name?: string\n description?: string\n status?: 'active' | 'inactive'\n}\n\nexport interface NotificationEndpoints {\n notificationEndpoints?: NotificationEndpoint[]\n links?: Links\n}\n\nexport type NotificationEndpoint = NotificationEndpointDiscriminator\n\nexport type PostNotificationEndpoint = NotificationEndpointDiscriminator\n\nexport interface NotificationEndpointUpdate {\n name?: string\n description?: string\n status?: 'active' | 'inactive'\n}\n\nexport interface Authorizations {\n readonly links?: Links\n authorizations?: Authorization[]\n}\n\nexport type Authorization = AuthorizationUpdateRequest & {\n readonly createdAt?: string\n readonly updatedAt?: string\n orgID?: string\n permissions?: Permission[]\n readonly id?: string\n readonly token?: string\n readonly userID?: string\n readonly user?: string\n readonly org?: string\n readonly links?: {\n readonly self?: Link\n readonly user?: Link\n }\n}\n\nexport interface AuthorizationUpdateRequest {\n status?: 'active' | 'inactive'\n description?: string\n}\n\nexport interface Permission {\n action: 'read' | 'write'\n resource: Resource\n}\n\nexport interface Resource {\n type:\n | 'authorizations'\n | 'buckets'\n | 'dashboards'\n | 'orgs'\n | 'tasks'\n | 'telegrafs'\n | 'users'\n | 'variables'\n | 'secrets'\n | 'labels'\n | 'views'\n | 'documents'\n | 'notificationRules'\n | 'notificationEndpoints'\n | 'checks'\n | 'dbrp'\n | 'annotations'\n | 'sources'\n | 'scrapers'\n | 'notebooks'\n | 'remotes'\n | 'replications'\n | 'instance'\n | 'flows'\n | 'functions'\n | 'subscriptions'\n id?: string\n name?: string\n orgID?: string\n org?: string\n}\n\nexport type AuthorizationPostRequest = AuthorizationUpdateRequest & {\n orgID?: string\n userID?: string\n permissions?: Permission[]\n}\n\nexport interface HealthCheck {\n name: string\n message?: string\n checks?: HealthCheck[]\n status: 'pass' | 'fail'\n version?: string\n commit?: string\n}\n\nexport interface Ready {\n status?: 'ready'\n started?: string\n up?: string\n}\n\nexport interface Users {\n links?: {\n self?: string\n }\n users?: UserResponse[]\n}\n\nexport interface User {\n readonly id?: string\n name: string\n status?: 'active' | 'inactive'\n}\n\nexport interface IsOnboarding {\n allowed?: boolean\n}\n\nexport interface OnboardingRequest {\n username: string\n password?: string\n org: string\n bucket: string\n retentionPeriodSeconds?: number\n retentionPeriodHrs?: number\n token?: string\n}\n\nexport interface OnboardingResponse {\n user?: UserResponse\n org?: Organization\n bucket?: Bucket\n auth?: Authorization\n}\n\nexport interface Variables {\n variables?: Variable[]\n}\n\nexport interface Variable {\n readonly links?: {\n self?: string\n org?: string\n labels?: string\n }\n readonly id?: string\n orgID: string\n name: string\n description?: string\n selected?: string[]\n labels?: Labels\n arguments: VariableProperties\n createdAt?: string\n updatedAt?: string\n}\n\nexport interface Sources {\n links?: {\n self?: string\n }\n sources?: Source[]\n}\n\nexport interface Source {\n links?: {\n self?: string\n query?: string\n health?: string\n buckets?: string\n }\n id?: string\n orgID?: string\n default?: boolean\n name?: string\n type?: 'v1' | 'v2' | 'self'\n url?: string\n insecureSkipVerify?: boolean\n telegraf?: string\n token?: string\n username?: string\n password?: string\n sharedSecret?: string\n metaUrl?: string\n defaultRP?: string\n readonly languages?: Array<'flux' | 'influxql'>\n}\n\nexport interface ScraperTargetResponses {\n configurations?: ScraperTargetResponse[]\n}\n\nexport type ScraperTargetResponse = ScraperTargetRequest & {\n readonly id?: string\n org?: string\n bucket?: string\n readonly links?: {\n self?: Link\n members?: Link\n owners?: Link\n bucket?: Link\n organization?: Link\n }\n}\n\nexport interface ScraperTargetRequest {\n name?: string\n type?: 'prometheus'\n url?: string\n orgID?: string\n bucketID?: string\n allowInsecure?: boolean\n}\n\nexport interface MetadataBackup {\n kv: string\n sql: string\n buckets: BucketMetadataManifests\n}\n\nexport type BucketMetadataManifests = BucketMetadataManifest[]\n\nexport interface BucketMetadataManifest {\n organizationID: string\n organizationName: string\n bucketID: string\n bucketName: string\n description?: string\n defaultRetentionPolicy: string\n retentionPolicies: RetentionPolicyManifests\n}\n\nexport type RetentionPolicyManifests = RetentionPolicyManifest[]\n\nexport interface RetentionPolicyManifest {\n name: string\n replicaN: number\n duration: number\n shardGroupDuration: number\n shardGroups: ShardGroupManifests\n subscriptions: SubscriptionManifests\n}\n\nexport type ShardGroupManifests = ShardGroupManifest[]\n\nexport interface ShardGroupManifest {\n id: number\n startTime: string\n endTime: string\n deletedAt?: string\n truncatedAt?: string\n shards: ShardManifests\n}\n\nexport type ShardManifests = ShardManifest[]\n\nexport interface ShardManifest {\n id: number\n shardOwners: ShardOwners\n}\n\nexport type ShardOwners = ShardOwner[]\n\nexport interface ShardOwner {\n nodeID: number\n}\n\nexport type SubscriptionManifests = SubscriptionManifest[]\n\nexport interface SubscriptionManifest {\n name: string\n mode: string\n destinations: string[]\n}\n\nexport interface RestoredBucketMappings {\n id: string\n name: string\n shardMappings: BucketShardMappings\n}\n\nexport type BucketShardMappings = BucketShardMapping[]\n\nexport interface BucketShardMapping {\n oldId: number\n newId: number\n}\n\nexport interface Config {\n config?: any\n}\n\nexport interface RemoteConnections {\n remotes?: RemoteConnection[]\n}\n\nexport interface RemoteConnection {\n id: string\n name: string\n orgID: string\n description?: string\n remoteURL: string\n remoteOrgID?: string\n allowInsecureTLS: boolean\n}\n\nexport interface RemoteConnectionCreationRequest {\n name: string\n description?: string\n orgID: string\n remoteURL: string\n remoteAPIToken: string\n remoteOrgID?: string\n allowInsecureTLS: boolean\n}\n\nexport interface RemoteConnectionUpdateRequest {\n name?: string\n description?: string\n remoteURL?: string\n remoteAPIToken?: string\n remoteOrgID?: string\n allowInsecureTLS?: boolean\n}\n\nexport interface Replications {\n replications?: Replication[]\n}\n\nexport interface Replication {\n id: string\n name: string\n description?: string\n orgID: string\n remoteID: string\n localBucketID: string\n remoteBucketID?: string\n remoteBucketName?: string\n maxQueueSizeBytes: number\n currentQueueSizeBytes: number\n latestResponseCode?: number\n latestErrorMessage?: string\n dropNonRetryableData?: boolean\n}\n\nexport interface ReplicationCreationRequest {\n name: string\n description?: string\n orgID: string\n remoteID: string\n localBucketID: string\n remoteBucketID?: string\n remoteBucketName?: string\n maxQueueSizeBytes: number\n dropNonRetryableData?: boolean\n maxAgeSeconds: number\n}\n\nexport interface ReplicationUpdateRequest {\n name?: string\n description?: string\n remoteID?: string\n remoteBucketID?: string\n remoteBucketName?: string\n maxQueueSizeBytes?: number\n dropNonRetryableData?: boolean\n maxAgeSeconds?: number\n}\n\nexport interface Dashboards {\n links?: Links\n dashboards?: Dashboard[]\n}\n\nexport interface Tasks {\n readonly links?: Links\n tasks?: Task[]\n}\n\nexport interface Task {\n readonly id: string\n orgID: TaskOrgID\n org?: TaskOrg\n name: TaskName\n description?: TaskDescription\n ownerID?: string\n status?: TaskStatusType\n labels?: Labels\n authorizationID?: string\n flux: TaskFlux\n every?: TaskEvery\n cron?: TaskCron\n offset?: TaskOffset\n readonly latestCompleted?: string\n readonly lastRunStatus?: 'failed' | 'success' | 'canceled'\n readonly lastRunError?: string\n readonly createdAt?: string\n readonly updatedAt?: string\n readonly links?: {\n self?: Link\n owners?: Link\n members?: Link\n runs?: Link\n logs?: Link\n labels?: Link\n }\n}\n\nexport type TaskOrgID = string\n\nexport type TaskOrg = string\n\nexport type TaskName = string\n\nexport type TaskDescription = string\n\nexport type TaskFlux = string\n\nexport type TaskEvery = string\n\nexport type TaskCron = string\n\nexport type TaskOffset = string\n\nexport interface TaskCreateRequest {\n orgID?: TaskOrgID\n org?: TaskOrg\n name?: TaskName\n description?: TaskDescription\n flux: TaskFlux\n status?: TaskStatusType\n}\n\nexport interface TaskUpdateRequest {\n status?: TaskStatusType\n flux?: TaskFlux\n name?: TaskName\n every?: TaskEvery\n cron?: TaskCron\n offset?: TaskOffset\n description?: TaskDescription\n}\n\ninterface RequestOptions {\n signal?: AbortSignal\n}\n\nexport type RequestHandler = (\n url: string,\n query: string,\n init: RequestInit\n) => {url: string; query: string; init: RequestInit}\nexport type ResponseHandler = (\n status: number,\n headers: Headers,\n data: any\n) => {status: number; headers: Headers; data: any}\n\nconst RequestContext = function (\n requestHandler: RequestHandler,\n responseHandler: ResponseHandler\n) {\n this.requestHandler = requestHandler\n this.responseHandler = responseHandler\n}\n\nRequestContext.prototype.request = async function (\n method: string,\n url: string,\n params: any = {},\n options: RequestOptions = {}\n): Promise {\n const requestHeaders = new Headers(params.headers)\n const contentType = requestHeaders.get('Content-Type') || ''\n\n if (params.auth) {\n const credentials = btoa(`${params.auth.username}:${params.auth.password}`)\n\n requestHeaders.append('Authorization', `Basic ${credentials}`)\n }\n\n const body =\n params.data && contentType.includes('json')\n ? JSON.stringify(params.data)\n : params.data\n\n const query = params.query ? `?${new URLSearchParams(params.query)}` : ''\n\n const {\n url: middlewareUrl,\n query: middlewareQuery,\n init,\n } = this.requestHandler(url, query, {\n method,\n body,\n credentials: 'same-origin',\n signal: options.signal,\n headers: requestHeaders,\n })\n\n const response = await fetch(`${middlewareUrl}${middlewareQuery}`, init)\n\n const {status, headers} = response\n const responseContentType = headers.get('Content-Type') || ''\n\n let data\n\n if (responseContentType.includes('json')) {\n data = await response.json()\n } else if (responseContentType.includes('octet-stream')) {\n data = await response.blob()\n } else {\n data = await response.text()\n }\n\n return this.responseHandler(status, headers, data)\n}\n\nRequestContext.prototype.setRequestHandler = function (\n requestHandler: RequestHandler\n) {\n this.requestHandler = requestHandler\n}\n\nRequestContext.prototype.setResponseHandler = function (\n responseHandler: ResponseHandler\n) {\n this.responseHandler = responseHandler\n}\n\nconst rc = new RequestContext(\n (url, query, init) => {\n return {url, query, init}\n },\n (status, headers, data) => {\n return {status, headers, data}\n }\n)\nconst request = rc.request.bind(rc)\nconst setRequestHandler = rc.setRequestHandler.bind(rc)\nconst setResponseHandler = rc.setResponseHandler.bind(rc)\n\nexport {request, setRequestHandler, setResponseHandler}\n\nexport interface PostSigninParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n\n auth: {\n username: string\n password: string\n }\n}\n\ntype PostSigninResult =\n | PostSigninNoContentResult\n | PostSigninUnauthorizedResult\n | PostSigninForbiddenResult\n | PostSigninDefaultResult\n\ninterface PostSigninNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostSigninUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostSigninForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface PostSigninDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postSignin = (\n params: PostSigninParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/signin',\n params,\n options\n ) as Promise\n\nexport interface PostSignoutParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostSignoutResult =\n | PostSignoutNoContentResult\n | PostSignoutUnauthorizedResult\n | PostSignoutDefaultResult\n\ninterface PostSignoutNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostSignoutUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostSignoutDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postSignout = (\n params: PostSignoutParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/signout',\n params,\n options\n ) as Promise\n\nexport interface GetPingParams {}\n\ntype GetPingResult = GetPingNoContentResult\n\ninterface GetPingNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\nexport const getPing = (\n params: GetPingParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/ping', params, options) as Promise\n\nexport interface GetParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetResult = GetOKResult\n\ninterface GetOKResult {\n status: 200\n headers: Headers\n data: Routes\n}\n\nexport const get = (\n params: GetParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/', params, options) as Promise\n\nexport interface GetDbrpsParams {\n query?: {\n orgID?: string\n org?: string\n id?: string\n bucketID?: string\n default?: any\n db?: string\n rp?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDbrpsResult =\n | GetDbrpsOKResult\n | GetDbrpsBadRequestResult\n | GetDbrpsUnauthorizedResult\n | GetDbrpsInternalServerErrorResult\n | GetDbrpsDefaultResult\n\ninterface GetDbrpsOKResult {\n status: 200\n headers: Headers\n data: DBRPs\n}\n\ninterface GetDbrpsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetDbrpsUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetDbrpsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetDbrpsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDbrps = (\n params: GetDbrpsParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/dbrps', params, options) as Promise\n\nexport interface PostDbrpParams {\n data: DBRPCreate\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostDbrpResult =\n | PostDbrpCreatedResult\n | PostDbrpBadRequestResult\n | PostDbrpUnauthorizedResult\n | PostDbrpNotFoundResult\n | PostDbrpInternalServerErrorResult\n | PostDbrpDefaultResult\n\ninterface PostDbrpCreatedResult {\n status: 201\n headers: Headers\n data: DBRP\n}\n\ninterface PostDbrpBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostDbrpUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostDbrpNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostDbrpInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostDbrpDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postDbrp = (\n params: PostDbrpParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/dbrps',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetDbrpParams {\n dbrpID: string\n\n query?: {\n orgID?: string\n org?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDbrpResult =\n | GetDbrpOKResult\n | GetDbrpBadRequestResult\n | GetDbrpUnauthorizedResult\n | GetDbrpNotFoundResult\n | GetDbrpInternalServerErrorResult\n | GetDbrpDefaultResult\n\ninterface GetDbrpOKResult {\n status: 200\n headers: Headers\n data: DBRPGet\n}\n\ninterface GetDbrpBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetDbrpUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetDbrpNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetDbrpInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetDbrpDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDbrp = (\n params: GetDbrpParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/dbrps/${params.dbrpID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchDbrpParams {\n dbrpID: string\n\n data: DBRPUpdate\n\n query?: {\n orgID?: string\n org?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchDbrpResult =\n | PatchDbrpOKResult\n | PatchDbrpBadRequestResult\n | PatchDbrpUnauthorizedResult\n | PatchDbrpNotFoundResult\n | PatchDbrpInternalServerErrorResult\n | PatchDbrpDefaultResult\n\ninterface PatchDbrpOKResult {\n status: 200\n headers: Headers\n data: DBRPGet\n}\n\ninterface PatchDbrpBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PatchDbrpUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PatchDbrpNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchDbrpInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PatchDbrpDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchDbrp = (\n params: PatchDbrpParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/dbrps/${params.dbrpID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteDbrpParams {\n dbrpID: string\n\n query?: {\n orgID?: string\n org?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteDbrpResult =\n | DeleteDbrpNoContentResult\n | DeleteDbrpBadRequestResult\n | DeleteDbrpUnauthorizedResult\n | DeleteDbrpNotFoundResult\n | DeleteDbrpInternalServerErrorResult\n | DeleteDbrpDefaultResult\n\ninterface DeleteDbrpNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteDbrpBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteDbrpUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteDbrpNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteDbrpInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteDbrpDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteDbrp = (\n params: DeleteDbrpParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/dbrps/${params.dbrpID}`,\n params,\n options\n ) as Promise\n\nexport interface GetTelegrafPluginsParams {\n query?: {\n type?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTelegrafPluginsResult =\n | GetTelegrafPluginsOKResult\n | GetTelegrafPluginsDefaultResult\n\ninterface GetTelegrafPluginsOKResult {\n status: 200\n headers: Headers\n data: TelegrafPlugins\n}\n\ninterface GetTelegrafPluginsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTelegrafPlugins = (\n params: GetTelegrafPluginsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/telegraf/plugins',\n params,\n options\n ) as Promise\n\nexport interface GetTelegrafsParams {\n query?: {\n orgID?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTelegrafsResult = GetTelegrafsOKResult | GetTelegrafsDefaultResult\n\ninterface GetTelegrafsOKResult {\n status: 200\n headers: Headers\n data: Telegrafs\n}\n\ninterface GetTelegrafsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTelegrafs = (\n params: GetTelegrafsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/telegrafs',\n params,\n options\n ) as Promise\n\nexport interface PostTelegrafParams {\n data: TelegrafPluginRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostTelegrafResult = PostTelegrafCreatedResult | PostTelegrafDefaultResult\n\ninterface PostTelegrafCreatedResult {\n status: 201\n headers: Headers\n data: Telegraf\n}\n\ninterface PostTelegrafDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTelegraf = (\n params: PostTelegrafParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/telegrafs',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetTelegrafParams {\n telegrafID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n Accept?: string\n }\n}\n\ntype GetTelegrafResult = GetTelegrafOKResult | GetTelegrafDefaultResult\n\ninterface GetTelegrafOKResult {\n status: 200\n headers: Headers\n data: Telegraf\n}\n\ninterface GetTelegrafDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTelegraf = (\n params: GetTelegrafParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/telegrafs/${params.telegrafID}`,\n params,\n options\n ) as Promise\n\nexport interface PutTelegrafParams {\n telegrafID: string\n\n data: TelegrafPluginRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PutTelegrafResult = PutTelegrafOKResult | PutTelegrafDefaultResult\n\ninterface PutTelegrafOKResult {\n status: 200\n headers: Headers\n data: Telegraf\n}\n\ninterface PutTelegrafDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putTelegraf = (\n params: PutTelegrafParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2/telegrafs/${params.telegrafID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteTelegrafParams {\n telegrafID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteTelegrafResult =\n | DeleteTelegrafNoContentResult\n | DeleteTelegrafDefaultResult\n\ninterface DeleteTelegrafNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteTelegrafDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteTelegraf = (\n params: DeleteTelegrafParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/telegrafs/${params.telegrafID}`,\n params,\n options\n ) as Promise\n\nexport interface GetTelegrafsLabelsParams {\n telegrafID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTelegrafsLabelsResult =\n | GetTelegrafsLabelsOKResult\n | GetTelegrafsLabelsDefaultResult\n\ninterface GetTelegrafsLabelsOKResult {\n status: 200\n headers: Headers\n data: LabelsResponse\n}\n\ninterface GetTelegrafsLabelsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTelegrafsLabels = (\n params: GetTelegrafsLabelsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/telegrafs/${params.telegrafID}/labels`,\n params,\n options\n ) as Promise\n\nexport interface PostTelegrafsLabelParams {\n telegrafID: string\n\n data: LabelMapping\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostTelegrafsLabelResult =\n | PostTelegrafsLabelCreatedResult\n | PostTelegrafsLabelDefaultResult\n\ninterface PostTelegrafsLabelCreatedResult {\n status: 201\n headers: Headers\n data: LabelResponse\n}\n\ninterface PostTelegrafsLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTelegrafsLabel = (\n params: PostTelegrafsLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/telegrafs/${params.telegrafID}/labels`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteTelegrafsLabelParams {\n telegrafID: string\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteTelegrafsLabelResult =\n | DeleteTelegrafsLabelNoContentResult\n | DeleteTelegrafsLabelNotFoundResult\n | DeleteTelegrafsLabelDefaultResult\n\ninterface DeleteTelegrafsLabelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteTelegrafsLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteTelegrafsLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteTelegrafsLabel = (\n params: DeleteTelegrafsLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/telegrafs/${params.telegrafID}/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface GetTelegrafsMembersParams {\n telegrafID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTelegrafsMembersResult =\n | GetTelegrafsMembersOKResult\n | GetTelegrafsMembersDefaultResult\n\ninterface GetTelegrafsMembersOKResult {\n status: 200\n headers: Headers\n data: ResourceMembers\n}\n\ninterface GetTelegrafsMembersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTelegrafsMembers = (\n params: GetTelegrafsMembersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/telegrafs/${params.telegrafID}/members`,\n params,\n options\n ) as Promise\n\nexport interface PostTelegrafsMemberParams {\n telegrafID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostTelegrafsMemberResult =\n | PostTelegrafsMemberCreatedResult\n | PostTelegrafsMemberDefaultResult\n\ninterface PostTelegrafsMemberCreatedResult {\n status: 201\n headers: Headers\n data: ResourceMember\n}\n\ninterface PostTelegrafsMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTelegrafsMember = (\n params: PostTelegrafsMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/telegrafs/${params.telegrafID}/members`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteTelegrafsMemberParams {\n userID: string\n telegrafID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteTelegrafsMemberResult =\n | DeleteTelegrafsMemberNoContentResult\n | DeleteTelegrafsMemberDefaultResult\n\ninterface DeleteTelegrafsMemberNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteTelegrafsMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteTelegrafsMember = (\n params: DeleteTelegrafsMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/telegrafs/${params.telegrafID}/members/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface GetTelegrafsOwnersParams {\n telegrafID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTelegrafsOwnersResult =\n | GetTelegrafsOwnersOKResult\n | GetTelegrafsOwnersDefaultResult\n\ninterface GetTelegrafsOwnersOKResult {\n status: 200\n headers: Headers\n data: ResourceOwners\n}\n\ninterface GetTelegrafsOwnersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTelegrafsOwners = (\n params: GetTelegrafsOwnersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/telegrafs/${params.telegrafID}/owners`,\n params,\n options\n ) as Promise\n\nexport interface PostTelegrafsOwnerParams {\n telegrafID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostTelegrafsOwnerResult =\n | PostTelegrafsOwnerCreatedResult\n | PostTelegrafsOwnerDefaultResult\n\ninterface PostTelegrafsOwnerCreatedResult {\n status: 201\n headers: Headers\n data: ResourceOwner\n}\n\ninterface PostTelegrafsOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTelegrafsOwner = (\n params: PostTelegrafsOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/telegrafs/${params.telegrafID}/owners`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteTelegrafsOwnerParams {\n userID: string\n telegrafID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteTelegrafsOwnerResult =\n | DeleteTelegrafsOwnerNoContentResult\n | DeleteTelegrafsOwnerDefaultResult\n\ninterface DeleteTelegrafsOwnerNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteTelegrafsOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteTelegrafsOwner = (\n params: DeleteTelegrafsOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/telegrafs/${params.telegrafID}/owners/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface GetVariablesLabelsParams {\n variableID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetVariablesLabelsResult =\n | GetVariablesLabelsOKResult\n | GetVariablesLabelsDefaultResult\n\ninterface GetVariablesLabelsOKResult {\n status: 200\n headers: Headers\n data: LabelsResponse\n}\n\ninterface GetVariablesLabelsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getVariablesLabels = (\n params: GetVariablesLabelsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/variables/${params.variableID}/labels`,\n params,\n options\n ) as Promise\n\nexport interface PostVariablesLabelParams {\n variableID: string\n\n data: LabelMapping\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostVariablesLabelResult =\n | PostVariablesLabelCreatedResult\n | PostVariablesLabelDefaultResult\n\ninterface PostVariablesLabelCreatedResult {\n status: 201\n headers: Headers\n data: LabelResponse\n}\n\ninterface PostVariablesLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postVariablesLabel = (\n params: PostVariablesLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/variables/${params.variableID}/labels`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteVariablesLabelParams {\n variableID: string\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteVariablesLabelResult =\n | DeleteVariablesLabelNoContentResult\n | DeleteVariablesLabelNotFoundResult\n | DeleteVariablesLabelDefaultResult\n\ninterface DeleteVariablesLabelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteVariablesLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteVariablesLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteVariablesLabel = (\n params: DeleteVariablesLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/variables/${params.variableID}/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface PostWriteParams {\n data: string\n\n query: {\n org: string\n orgID?: string\n bucket: string\n precision?: any\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n 'Content-Encoding'?: string\n 'Content-Type'?: string\n 'Content-Length'?: number\n Accept?: string\n }\n}\n\ntype PostWriteResult =\n | PostWriteNoContentResult\n | PostWriteBadRequestResult\n | PostWriteUnauthorizedResult\n | PostWriteNotFoundResult\n | PostWritePayloadTooLargeResult\n | PostWriteTooManyRequestsResult\n | PostWriteInternalServerErrorResult\n | PostWriteServiceUnavailableResult\n | PostWriteDefaultResult\n\ninterface PostWriteNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostWriteBadRequestResult {\n status: 400\n headers: Headers\n data: LineProtocolError\n}\n\ninterface PostWriteUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostWriteNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostWritePayloadTooLargeResult {\n status: 413\n headers: Headers\n data: LineProtocolLengthError\n}\n\ninterface PostWriteTooManyRequestsResult {\n status: 429\n headers: Headers\n data: any\n}\n\ninterface PostWriteInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostWriteServiceUnavailableResult {\n status: 503\n headers: Headers\n data: any\n}\n\ninterface PostWriteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postWrite = (\n params: PostWriteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/write',\n {...params, headers: {...params.headers, 'Content-Type': 'text/plain'}},\n options\n ) as Promise\n\nexport interface PostDeleteParams {\n data: DeletePredicateRequest\n\n query?: {\n org?: string\n bucket?: string\n orgID?: string\n bucketID?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostDeleteResult =\n | PostDeleteNoContentResult\n | PostDeleteBadRequestResult\n | PostDeleteUnauthorizedResult\n | PostDeleteNotFoundResult\n | PostDeleteInternalServerErrorResult\n | PostDeleteDefaultResult\n\ninterface PostDeleteNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostDeleteBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostDeleteUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostDeleteNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostDeleteInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostDeleteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postDelete = (\n params: PostDeleteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/delete',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetLabelsParams {\n query?: {\n orgID?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetLabelsResult =\n | GetLabelsOKResult\n | GetLabelsInternalServerErrorResult\n | GetLabelsDefaultResult\n\ninterface GetLabelsOKResult {\n status: 200\n headers: Headers\n data: LabelsResponse\n}\n\ninterface GetLabelsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetLabelsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getLabels = (\n params: GetLabelsParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/labels', params, options) as Promise\n\nexport interface PostLabelParams {\n data: LabelCreateRequest\n}\n\ntype PostLabelResult =\n | PostLabelCreatedResult\n | PostLabelInternalServerErrorResult\n | PostLabelDefaultResult\n\ninterface PostLabelCreatedResult {\n status: 201\n headers: Headers\n data: LabelResponse\n}\n\ninterface PostLabelInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postLabel = (\n params: PostLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/labels',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetLabelParams {\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetLabelResult =\n | GetLabelOKResult\n | GetLabelInternalServerErrorResult\n | GetLabelDefaultResult\n\ninterface GetLabelOKResult {\n status: 200\n headers: Headers\n data: LabelResponse\n}\n\ninterface GetLabelInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getLabel = (\n params: GetLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchLabelParams {\n labelID: string\n\n data: LabelUpdate\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchLabelResult =\n | PatchLabelOKResult\n | PatchLabelUnauthorizedResult\n | PatchLabelNotFoundResult\n | PatchLabelInternalServerErrorResult\n | PatchLabelDefaultResult\n\ninterface PatchLabelOKResult {\n status: 200\n headers: Headers\n data: LabelResponse\n}\n\ninterface PatchLabelUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PatchLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchLabelInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PatchLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchLabel = (\n params: PatchLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/labels/${params.labelID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteLabelParams {\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteLabelResult =\n | DeleteLabelNoContentResult\n | DeleteLabelUnauthorizedResult\n | DeleteLabelNotFoundResult\n | DeleteLabelInternalServerErrorResult\n | DeleteLabelDefaultResult\n\ninterface DeleteLabelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteLabelUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteLabelInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteLabel = (\n params: DeleteLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface GetDashboardParams {\n dashboardID: string\n\n query?: {\n include?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDashboardResult =\n | GetDashboardOKResult\n | GetDashboardNotFoundResult\n | GetDashboardDefaultResult\n\ninterface GetDashboardOKResult {\n status: 200\n headers: Headers\n data: Dashboard | DashboardWithViewProperties\n}\n\ninterface GetDashboardNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetDashboardDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDashboard = (\n params: GetDashboardParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/dashboards/${params.dashboardID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchDashboardParams {\n dashboardID: string\n\n data: {\n name?: string\n description?: string\n cells?: CellWithViewProperties\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchDashboardResult =\n | PatchDashboardOKResult\n | PatchDashboardNotFoundResult\n | PatchDashboardDefaultResult\n\ninterface PatchDashboardOKResult {\n status: 200\n headers: Headers\n data: Dashboard\n}\n\ninterface PatchDashboardNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchDashboardDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchDashboard = (\n params: PatchDashboardParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/dashboards/${params.dashboardID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteDashboardParams {\n dashboardID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteDashboardResult =\n | DeleteDashboardNoContentResult\n | DeleteDashboardNotFoundResult\n | DeleteDashboardDefaultResult\n\ninterface DeleteDashboardNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteDashboardNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteDashboardDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteDashboard = (\n params: DeleteDashboardParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/dashboards/${params.dashboardID}`,\n params,\n options\n ) as Promise\n\nexport interface PostDashboardsCellParams {\n dashboardID: string\n\n data: CreateCell\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostDashboardsCellResult =\n | PostDashboardsCellCreatedResult\n | PostDashboardsCellNotFoundResult\n | PostDashboardsCellDefaultResult\n\ninterface PostDashboardsCellCreatedResult {\n status: 201\n headers: Headers\n data: Cell\n}\n\ninterface PostDashboardsCellNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostDashboardsCellDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postDashboardsCell = (\n params: PostDashboardsCellParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/dashboards/${params.dashboardID}/cells`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PutDashboardsCellsParams {\n dashboardID: string\n\n data: Cells\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PutDashboardsCellsResult =\n | PutDashboardsCellsCreatedResult\n | PutDashboardsCellsNotFoundResult\n | PutDashboardsCellsDefaultResult\n\ninterface PutDashboardsCellsCreatedResult {\n status: 201\n headers: Headers\n data: Dashboard\n}\n\ninterface PutDashboardsCellsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PutDashboardsCellsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putDashboardsCells = (\n params: PutDashboardsCellsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2/dashboards/${params.dashboardID}/cells`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PatchDashboardsCellParams {\n dashboardID: string\n cellID: string\n\n data: CellUpdate\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchDashboardsCellResult =\n | PatchDashboardsCellOKResult\n | PatchDashboardsCellNotFoundResult\n | PatchDashboardsCellDefaultResult\n\ninterface PatchDashboardsCellOKResult {\n status: 200\n headers: Headers\n data: Cell\n}\n\ninterface PatchDashboardsCellNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchDashboardsCellDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchDashboardsCell = (\n params: PatchDashboardsCellParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/dashboards/${params.dashboardID}/cells/${params.cellID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteDashboardsCellParams {\n dashboardID: string\n cellID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteDashboardsCellResult =\n | DeleteDashboardsCellNoContentResult\n | DeleteDashboardsCellNotFoundResult\n | DeleteDashboardsCellDefaultResult\n\ninterface DeleteDashboardsCellNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteDashboardsCellNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteDashboardsCellDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteDashboardsCell = (\n params: DeleteDashboardsCellParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/dashboards/${params.dashboardID}/cells/${params.cellID}`,\n params,\n options\n ) as Promise\n\nexport interface GetDashboardsCellsViewParams {\n dashboardID: string\n cellID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDashboardsCellsViewResult =\n | GetDashboardsCellsViewOKResult\n | GetDashboardsCellsViewNotFoundResult\n | GetDashboardsCellsViewDefaultResult\n\ninterface GetDashboardsCellsViewOKResult {\n status: 200\n headers: Headers\n data: View\n}\n\ninterface GetDashboardsCellsViewNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetDashboardsCellsViewDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDashboardsCellsView = (\n params: GetDashboardsCellsViewParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/dashboards/${params.dashboardID}/cells/${params.cellID}/view`,\n params,\n options\n ) as Promise\n\nexport interface PatchDashboardsCellsViewParams {\n dashboardID: string\n cellID: string\n\n data: View\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchDashboardsCellsViewResult =\n | PatchDashboardsCellsViewOKResult\n | PatchDashboardsCellsViewNotFoundResult\n | PatchDashboardsCellsViewDefaultResult\n\ninterface PatchDashboardsCellsViewOKResult {\n status: 200\n headers: Headers\n data: View\n}\n\ninterface PatchDashboardsCellsViewNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchDashboardsCellsViewDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchDashboardsCellsView = (\n params: PatchDashboardsCellsViewParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/dashboards/${params.dashboardID}/cells/${params.cellID}/view`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetDashboardsLabelsParams {\n dashboardID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDashboardsLabelsResult =\n | GetDashboardsLabelsOKResult\n | GetDashboardsLabelsDefaultResult\n\ninterface GetDashboardsLabelsOKResult {\n status: 200\n headers: Headers\n data: LabelsResponse\n}\n\ninterface GetDashboardsLabelsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDashboardsLabels = (\n params: GetDashboardsLabelsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/dashboards/${params.dashboardID}/labels`,\n params,\n options\n ) as Promise\n\nexport interface PostDashboardsLabelParams {\n dashboardID: string\n\n data: LabelMapping\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostDashboardsLabelResult =\n | PostDashboardsLabelCreatedResult\n | PostDashboardsLabelDefaultResult\n\ninterface PostDashboardsLabelCreatedResult {\n status: 201\n headers: Headers\n data: LabelResponse\n}\n\ninterface PostDashboardsLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postDashboardsLabel = (\n params: PostDashboardsLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/dashboards/${params.dashboardID}/labels`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteDashboardsLabelParams {\n dashboardID: string\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteDashboardsLabelResult =\n | DeleteDashboardsLabelNoContentResult\n | DeleteDashboardsLabelNotFoundResult\n | DeleteDashboardsLabelDefaultResult\n\ninterface DeleteDashboardsLabelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteDashboardsLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteDashboardsLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteDashboardsLabel = (\n params: DeleteDashboardsLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/dashboards/${params.dashboardID}/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface GetDashboardsMembersParams {\n dashboardID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDashboardsMembersResult =\n | GetDashboardsMembersOKResult\n | GetDashboardsMembersDefaultResult\n\ninterface GetDashboardsMembersOKResult {\n status: 200\n headers: Headers\n data: ResourceMembers\n}\n\ninterface GetDashboardsMembersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDashboardsMembers = (\n params: GetDashboardsMembersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/dashboards/${params.dashboardID}/members`,\n params,\n options\n ) as Promise\n\nexport interface PostDashboardsMemberParams {\n dashboardID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostDashboardsMemberResult =\n | PostDashboardsMemberCreatedResult\n | PostDashboardsMemberDefaultResult\n\ninterface PostDashboardsMemberCreatedResult {\n status: 201\n headers: Headers\n data: ResourceMember\n}\n\ninterface PostDashboardsMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postDashboardsMember = (\n params: PostDashboardsMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/dashboards/${params.dashboardID}/members`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteDashboardsMemberParams {\n userID: string\n dashboardID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteDashboardsMemberResult =\n | DeleteDashboardsMemberNoContentResult\n | DeleteDashboardsMemberDefaultResult\n\ninterface DeleteDashboardsMemberNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteDashboardsMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteDashboardsMember = (\n params: DeleteDashboardsMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/dashboards/${params.dashboardID}/members/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface GetDashboardsOwnersParams {\n dashboardID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDashboardsOwnersResult =\n | GetDashboardsOwnersOKResult\n | GetDashboardsOwnersDefaultResult\n\ninterface GetDashboardsOwnersOKResult {\n status: 200\n headers: Headers\n data: ResourceOwners\n}\n\ninterface GetDashboardsOwnersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDashboardsOwners = (\n params: GetDashboardsOwnersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/dashboards/${params.dashboardID}/owners`,\n params,\n options\n ) as Promise\n\nexport interface PostDashboardsOwnerParams {\n dashboardID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostDashboardsOwnerResult =\n | PostDashboardsOwnerCreatedResult\n | PostDashboardsOwnerDefaultResult\n\ninterface PostDashboardsOwnerCreatedResult {\n status: 201\n headers: Headers\n data: ResourceOwner\n}\n\ninterface PostDashboardsOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postDashboardsOwner = (\n params: PostDashboardsOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/dashboards/${params.dashboardID}/owners`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteDashboardsOwnerParams {\n userID: string\n dashboardID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteDashboardsOwnerResult =\n | DeleteDashboardsOwnerNoContentResult\n | DeleteDashboardsOwnerDefaultResult\n\ninterface DeleteDashboardsOwnerNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteDashboardsOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteDashboardsOwner = (\n params: DeleteDashboardsOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/dashboards/${params.dashboardID}/owners/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface PostQueryAstParams {\n data?: LanguageRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n 'Content-Type'?: string\n }\n}\n\ntype PostQueryAstResult =\n | PostQueryAstOKResult\n | PostQueryAstBadRequestResult\n | PostQueryAstDefaultResult\n\ninterface PostQueryAstOKResult {\n status: 200\n headers: Headers\n data: ASTResponse\n}\n\ninterface PostQueryAstBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostQueryAstDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postQueryAst = (\n params: PostQueryAstParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/query/ast',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetQuerySuggestionsParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetQuerySuggestionsResult =\n | GetQuerySuggestionsOKResult\n | GetQuerySuggestionsMovedPermanentlyResult\n | GetQuerySuggestionsDefaultResult\n\ninterface GetQuerySuggestionsOKResult {\n status: 200\n headers: Headers\n data: FluxSuggestions\n}\n\ninterface GetQuerySuggestionsMovedPermanentlyResult {\n status: 301\n headers: Headers\n data: {\n readonly body?: string\n }\n}\n\ninterface GetQuerySuggestionsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getQuerySuggestions = (\n params: GetQuerySuggestionsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/query/suggestions',\n params,\n options\n ) as Promise\n\nexport interface GetQuerySuggestionParams {\n name: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetQuerySuggestionResult =\n | GetQuerySuggestionOKResult\n | GetQuerySuggestionInternalServerErrorResult\n\ninterface GetQuerySuggestionOKResult {\n status: 200\n headers: Headers\n data: FluxSuggestion\n}\n\ninterface GetQuerySuggestionInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getQuerySuggestion = (\n params: GetQuerySuggestionParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/query/suggestions/${params.name}`,\n params,\n options\n ) as Promise\n\nexport interface PostQueryAnalyzeParams {\n data?: Query\n\n headers?: {\n 'Zap-Trace-Span'?: string\n 'Content-Type'?: string\n }\n}\n\ntype PostQueryAnalyzeResult =\n | PostQueryAnalyzeOKResult\n | PostQueryAnalyzeBadRequestResult\n | PostQueryAnalyzeDefaultResult\n\ninterface PostQueryAnalyzeOKResult {\n status: 200\n headers: Headers\n data: AnalyzeQueryResponse\n}\n\ninterface PostQueryAnalyzeBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostQueryAnalyzeDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postQueryAnalyze = (\n params: PostQueryAnalyzeParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/query/analyze',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PostQueryParams {\n data?: Query\n\n query?: {\n org?: string\n orgID?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n 'Accept-Encoding'?: string\n 'Content-Type'?: string\n }\n}\n\ntype PostQueryResult =\n | PostQueryOKResult\n | PostQueryBadRequestResult\n | PostQueryUnauthorizedResult\n | PostQueryNotFoundResult\n | PostQueryTooManyRequestsResult\n | PostQueryInternalServerErrorResult\n | PostQueryDefaultResult\n\ninterface PostQueryOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface PostQueryBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostQueryUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostQueryNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostQueryTooManyRequestsResult {\n status: 429\n headers: Headers\n data: any\n}\n\ninterface PostQueryInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostQueryDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postQuery = (\n params: PostQueryParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/query',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetBucketsParams {\n query?: {\n offset?: number\n limit?: number\n after?: string\n org?: string\n orgID?: string\n name?: string\n id?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetBucketsResult =\n | GetBucketsOKResult\n | GetBucketsUnauthorizedResult\n | GetBucketsInternalServerErrorResult\n | GetBucketsDefaultResult\n\ninterface GetBucketsOKResult {\n status: 200\n headers: Headers\n data: Buckets\n}\n\ninterface GetBucketsUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetBucketsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetBucketsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBuckets = (\n params: GetBucketsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/buckets',\n params,\n options\n ) as Promise\n\nexport interface PostBucketParams {\n data: PostBucketRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostBucketResult =\n | PostBucketCreatedResult\n | PostBucketBadRequestResult\n | PostBucketUnauthorizedResult\n | PostBucketForbiddenResult\n | PostBucketUnprocessableEntityResult\n | PostBucketInternalServerErrorResult\n | PostBucketDefaultResult\n\ninterface PostBucketCreatedResult {\n status: 201\n headers: Headers\n data: Bucket\n}\n\ninterface PostBucketBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostBucketUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostBucketForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface PostBucketUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostBucketInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostBucketDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postBucket = (\n params: PostBucketParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/buckets',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetBucketParams {\n bucketID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetBucketResult =\n | GetBucketOKResult\n | GetBucketUnauthorizedResult\n | GetBucketNotFoundResult\n | GetBucketInternalServerErrorResult\n | GetBucketDefaultResult\n\ninterface GetBucketOKResult {\n status: 200\n headers: Headers\n data: Bucket\n}\n\ninterface GetBucketUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetBucketNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetBucketInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetBucketDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBucket = (\n params: GetBucketParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/buckets/${params.bucketID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchBucketParams {\n bucketID: string\n\n data: PatchBucketRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchBucketResult =\n | PatchBucketOKResult\n | PatchBucketBadRequestResult\n | PatchBucketUnauthorizedResult\n | PatchBucketForbiddenResult\n | PatchBucketNotFoundResult\n | PatchBucketInternalServerErrorResult\n | PatchBucketDefaultResult\n\ninterface PatchBucketOKResult {\n status: 200\n headers: Headers\n data: Bucket\n}\n\ninterface PatchBucketBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PatchBucketUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PatchBucketForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface PatchBucketNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchBucketInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PatchBucketDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchBucket = (\n params: PatchBucketParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/buckets/${params.bucketID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteBucketParams {\n bucketID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteBucketResult =\n | DeleteBucketNoContentResult\n | DeleteBucketBadRequestResult\n | DeleteBucketUnauthorizedResult\n | DeleteBucketNotFoundResult\n | DeleteBucketInternalServerErrorResult\n | DeleteBucketDefaultResult\n\ninterface DeleteBucketNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteBucketBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteBucketUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteBucketNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteBucketInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteBucketDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteBucket = (\n params: DeleteBucketParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/buckets/${params.bucketID}`,\n params,\n options\n ) as Promise\n\nexport interface GetBucketsLabelsParams {\n bucketID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetBucketsLabelsResult =\n | GetBucketsLabelsOKResult\n | GetBucketsLabelsBadRequestResult\n | GetBucketsLabelsUnauthorizedResult\n | GetBucketsLabelsNotFoundResult\n | GetBucketsLabelsInternalServerErrorResult\n | GetBucketsLabelsDefaultResult\n\ninterface GetBucketsLabelsOKResult {\n status: 200\n headers: Headers\n data: LabelsResponse\n}\n\ninterface GetBucketsLabelsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetBucketsLabelsUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetBucketsLabelsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetBucketsLabelsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetBucketsLabelsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBucketsLabels = (\n params: GetBucketsLabelsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/buckets/${params.bucketID}/labels`,\n params,\n options\n ) as Promise\n\nexport interface PostBucketsLabelParams {\n bucketID: string\n\n data: LabelMapping\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostBucketsLabelResult =\n | PostBucketsLabelCreatedResult\n | PostBucketsLabelBadRequestResult\n | PostBucketsLabelUnauthorizedResult\n | PostBucketsLabelNotFoundResult\n | PostBucketsLabelUnprocessableEntityResult\n | PostBucketsLabelInternalServerErrorResult\n | PostBucketsLabelDefaultResult\n\ninterface PostBucketsLabelCreatedResult {\n status: 201\n headers: Headers\n data: LabelResponse\n}\n\ninterface PostBucketsLabelBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostBucketsLabelUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostBucketsLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostBucketsLabelUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostBucketsLabelInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostBucketsLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postBucketsLabel = (\n params: PostBucketsLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/buckets/${params.bucketID}/labels`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteBucketsLabelParams {\n bucketID: string\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteBucketsLabelResult =\n | DeleteBucketsLabelNoContentResult\n | DeleteBucketsLabelNotFoundResult\n | DeleteBucketsLabelDefaultResult\n\ninterface DeleteBucketsLabelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteBucketsLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteBucketsLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteBucketsLabel = (\n params: DeleteBucketsLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/buckets/${params.bucketID}/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface GetBucketsMembersParams {\n bucketID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetBucketsMembersResult =\n | GetBucketsMembersOKResult\n | GetBucketsMembersBadRequestResult\n | GetBucketsMembersUnauthorizedResult\n | GetBucketsMembersNotFoundResult\n | GetBucketsMembersInternalServerErrorResult\n | GetBucketsMembersDefaultResult\n\ninterface GetBucketsMembersOKResult {\n status: 200\n headers: Headers\n data: ResourceMembers\n}\n\ninterface GetBucketsMembersBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetBucketsMembersUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetBucketsMembersNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetBucketsMembersInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetBucketsMembersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBucketsMembers = (\n params: GetBucketsMembersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/buckets/${params.bucketID}/members`,\n params,\n options\n ) as Promise\n\nexport interface PostBucketsMemberParams {\n bucketID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostBucketsMemberResult =\n | PostBucketsMemberCreatedResult\n | PostBucketsMemberBadRequestResult\n | PostBucketsMemberUnauthorizedResult\n | PostBucketsMemberNotFoundResult\n | PostBucketsMemberInternalServerErrorResult\n | PostBucketsMemberDefaultResult\n\ninterface PostBucketsMemberCreatedResult {\n status: 201\n headers: Headers\n data: ResourceMember\n}\n\ninterface PostBucketsMemberBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostBucketsMemberUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostBucketsMemberNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostBucketsMemberInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostBucketsMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postBucketsMember = (\n params: PostBucketsMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/buckets/${params.bucketID}/members`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteBucketsMemberParams {\n userID: string\n bucketID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteBucketsMemberResult =\n | DeleteBucketsMemberNoContentResult\n | DeleteBucketsMemberUnauthorizedResult\n | DeleteBucketsMemberNotFoundResult\n | DeleteBucketsMemberInternalServerErrorResult\n | DeleteBucketsMemberDefaultResult\n\ninterface DeleteBucketsMemberNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteBucketsMemberUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteBucketsMemberNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteBucketsMemberInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteBucketsMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteBucketsMember = (\n params: DeleteBucketsMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/buckets/${params.bucketID}/members/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface GetBucketsOwnersParams {\n bucketID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetBucketsOwnersResult =\n | GetBucketsOwnersOKResult\n | GetBucketsOwnersBadRequestResult\n | GetBucketsOwnersUnauthorizedResult\n | GetBucketsOwnersNotFoundResult\n | GetBucketsOwnersInternalServerErrorResult\n | GetBucketsOwnersDefaultResult\n\ninterface GetBucketsOwnersOKResult {\n status: 200\n headers: Headers\n data: ResourceOwners\n}\n\ninterface GetBucketsOwnersBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetBucketsOwnersUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetBucketsOwnersNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetBucketsOwnersInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetBucketsOwnersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBucketsOwners = (\n params: GetBucketsOwnersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/buckets/${params.bucketID}/owners`,\n params,\n options\n ) as Promise\n\nexport interface PostBucketsOwnerParams {\n bucketID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostBucketsOwnerResult =\n | PostBucketsOwnerCreatedResult\n | PostBucketsOwnerBadRequestResult\n | PostBucketsOwnerUnauthorizedResult\n | PostBucketsOwnerNotFoundResult\n | PostBucketsOwnerInternalServerErrorResult\n | PostBucketsOwnerDefaultResult\n\ninterface PostBucketsOwnerCreatedResult {\n status: 201\n headers: Headers\n data: ResourceOwner\n}\n\ninterface PostBucketsOwnerBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostBucketsOwnerUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostBucketsOwnerNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostBucketsOwnerInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostBucketsOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postBucketsOwner = (\n params: PostBucketsOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/buckets/${params.bucketID}/owners`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteBucketsOwnerParams {\n userID: string\n bucketID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteBucketsOwnerResult =\n | DeleteBucketsOwnerNoContentResult\n | DeleteBucketsOwnerUnauthorizedResult\n | DeleteBucketsOwnerNotFoundResult\n | DeleteBucketsOwnerInternalServerErrorResult\n | DeleteBucketsOwnerDefaultResult\n\ninterface DeleteBucketsOwnerNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteBucketsOwnerUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteBucketsOwnerNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteBucketsOwnerInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteBucketsOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteBucketsOwner = (\n params: DeleteBucketsOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/buckets/${params.bucketID}/owners/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface GetOrgsParams {\n query?: {\n offset?: number\n limit?: number\n descending?: any\n org?: string\n orgID?: string\n userID?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOrgsResult =\n | GetOrgsOKResult\n | GetOrgsBadRequestResult\n | GetOrgsUnauthorizedResult\n | GetOrgsNotFoundResult\n | GetOrgsInternalServerErrorResult\n | GetOrgsDefaultResult\n\ninterface GetOrgsOKResult {\n status: 200\n headers: Headers\n data: Organizations\n}\n\ninterface GetOrgsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetOrgsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrgs = (\n params: GetOrgsParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/orgs', params, options) as Promise\n\nexport interface PostOrgParams {\n data: PostOrganizationRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostOrgResult =\n | PostOrgCreatedResult\n | PostOrgBadRequestResult\n | PostOrgUnauthorizedResult\n | PostOrgNotFoundResult\n | PostOrgInternalServerErrorResult\n | PostOrgDefaultResult\n\ninterface PostOrgCreatedResult {\n status: 201\n headers: Headers\n data: Organization\n}\n\ninterface PostOrgBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostOrgUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostOrgNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostOrgInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostOrgDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postOrg = (\n params: PostOrgParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/orgs',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetOrgParams {\n orgID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOrgResult =\n | GetOrgOKResult\n | GetOrgUnauthorizedResult\n | GetOrgNotFoundResult\n | GetOrgInternalServerErrorResult\n | GetOrgDefaultResult\n\ninterface GetOrgOKResult {\n status: 200\n headers: Headers\n data: Organization\n}\n\ninterface GetOrgUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetOrgNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetOrgInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetOrgDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrg = (\n params: GetOrgParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/orgs/${params.orgID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchOrgParams {\n orgID: string\n\n data: PatchOrganizationRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchOrgResult =\n | PatchOrgOKResult\n | PatchOrgBadRequestResult\n | PatchOrgUnauthorizedResult\n | PatchOrgNotFoundResult\n | PatchOrgInternalServerErrorResult\n | PatchOrgDefaultResult\n\ninterface PatchOrgOKResult {\n status: 200\n headers: Headers\n data: Organization\n}\n\ninterface PatchOrgBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PatchOrgUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PatchOrgNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchOrgInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PatchOrgDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchOrg = (\n params: PatchOrgParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/orgs/${params.orgID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteOrgParams {\n orgID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteOrgResult =\n | DeleteOrgNoContentResult\n | DeleteOrgBadRequestResult\n | DeleteOrgUnauthorizedResult\n | DeleteOrgNotFoundResult\n | DeleteOrgInternalServerErrorResult\n | DeleteOrgDefaultResult\n\ninterface DeleteOrgNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteOrgBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteOrgNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteOrg = (\n params: DeleteOrgParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/orgs/${params.orgID}`,\n params,\n options\n ) as Promise\n\nexport interface GetOrgsSecretsParams {\n orgID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOrgsSecretsResult = GetOrgsSecretsOKResult | GetOrgsSecretsDefaultResult\n\ninterface GetOrgsSecretsOKResult {\n status: 200\n headers: Headers\n data: SecretKeysResponse\n}\n\ninterface GetOrgsSecretsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrgsSecrets = (\n params: GetOrgsSecretsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/orgs/${params.orgID}/secrets`,\n params,\n options\n ) as Promise\n\nexport interface PatchOrgsSecretsParams {\n orgID: string\n\n data: Secrets\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchOrgsSecretsResult =\n | PatchOrgsSecretsNoContentResult\n | PatchOrgsSecretsDefaultResult\n\ninterface PatchOrgsSecretsNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PatchOrgsSecretsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchOrgsSecrets = (\n params: PatchOrgsSecretsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/orgs/${params.orgID}/secrets`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetOrgsMembersParams {\n orgID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOrgsMembersResult =\n | GetOrgsMembersOKResult\n | GetOrgsMembersBadRequestResult\n | GetOrgsMembersUnauthorizedResult\n | GetOrgsMembersNotFoundResult\n | GetOrgsMembersInternalServerErrorResult\n | GetOrgsMembersDefaultResult\n\ninterface GetOrgsMembersOKResult {\n status: 200\n headers: Headers\n data: ResourceMembers\n}\n\ninterface GetOrgsMembersBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsMembersUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetOrgsMembersNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsMembersInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsMembersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrgsMembers = (\n params: GetOrgsMembersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/orgs/${params.orgID}/members`,\n params,\n options\n ) as Promise\n\nexport interface PostOrgsMemberParams {\n orgID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostOrgsMemberResult =\n | PostOrgsMemberCreatedResult\n | PostOrgsMemberBadRequestResult\n | PostOrgsMemberUnauthorizedResult\n | PostOrgsMemberNotFoundResult\n | PostOrgsMemberInternalServerErrorResult\n | PostOrgsMemberDefaultResult\n\ninterface PostOrgsMemberCreatedResult {\n status: 201\n headers: Headers\n data: ResourceMember\n}\n\ninterface PostOrgsMemberBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsMemberUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostOrgsMemberNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsMemberInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postOrgsMember = (\n params: PostOrgsMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/orgs/${params.orgID}/members`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteOrgsMemberParams {\n userID: string\n orgID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteOrgsMemberResult =\n | DeleteOrgsMemberNoContentResult\n | DeleteOrgsMemberUnauthorizedResult\n | DeleteOrgsMemberNotFoundResult\n | DeleteOrgsMemberInternalServerErrorResult\n | DeleteOrgsMemberDefaultResult\n\ninterface DeleteOrgsMemberNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteOrgsMemberUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteOrgsMemberNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgsMemberInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgsMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteOrgsMember = (\n params: DeleteOrgsMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/orgs/${params.orgID}/members/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface GetOrgsOwnersParams {\n orgID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOrgsOwnersResult =\n | GetOrgsOwnersOKResult\n | GetOrgsOwnersNotFoundResult\n | GetOrgsOwnersDefaultResult\n\ninterface GetOrgsOwnersOKResult {\n status: 200\n headers: Headers\n data: ResourceOwners\n}\n\ninterface GetOrgsOwnersNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsOwnersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrgsOwners = (\n params: GetOrgsOwnersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/orgs/${params.orgID}/owners`,\n params,\n options\n ) as Promise\n\nexport interface PostOrgsOwnerParams {\n orgID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostOrgsOwnerResult =\n | PostOrgsOwnerCreatedResult\n | PostOrgsOwnerBadRequestResult\n | PostOrgsOwnerUnauthorizedResult\n | PostOrgsOwnerNotFoundResult\n | PostOrgsOwnerInternalServerErrorResult\n | PostOrgsOwnerDefaultResult\n\ninterface PostOrgsOwnerCreatedResult {\n status: 201\n headers: Headers\n data: ResourceOwner\n}\n\ninterface PostOrgsOwnerBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsOwnerUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostOrgsOwnerNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsOwnerInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postOrgsOwner = (\n params: PostOrgsOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/orgs/${params.orgID}/owners`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteOrgsOwnerParams {\n userID: string\n orgID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteOrgsOwnerResult =\n | DeleteOrgsOwnerNoContentResult\n | DeleteOrgsOwnerUnauthorizedResult\n | DeleteOrgsOwnerNotFoundResult\n | DeleteOrgsOwnerInternalServerErrorResult\n | DeleteOrgsOwnerDefaultResult\n\ninterface DeleteOrgsOwnerNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteOrgsOwnerUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteOrgsOwnerNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgsOwnerInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgsOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteOrgsOwner = (\n params: DeleteOrgsOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/orgs/${params.orgID}/owners/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface PostOrgsSecretsDeleteParams {\n orgID: string\n\n data: SecretKeys\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostOrgsSecretsDeleteResult =\n | PostOrgsSecretsDeleteNoContentResult\n | PostOrgsSecretsDeleteDefaultResult\n\ninterface PostOrgsSecretsDeleteNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostOrgsSecretsDeleteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postOrgsSecretsDelete = (\n params: PostOrgsSecretsDeleteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/orgs/${params.orgID}/secrets/delete`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteOrgsSecretParams {\n orgID: string\n secretID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteOrgsSecretResult =\n | DeleteOrgsSecretNoContentResult\n | DeleteOrgsSecretDefaultResult\n\ninterface DeleteOrgsSecretNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteOrgsSecretDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteOrgsSecret = (\n params: DeleteOrgsSecretParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/orgs/${params.orgID}/secrets/${params.secretID}`,\n params,\n options\n ) as Promise\n\nexport interface GetResourcesParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetResourcesResult = GetResourcesOKResult | GetResourcesDefaultResult\n\ninterface GetResourcesOKResult {\n status: 200\n headers: Headers\n data: string[]\n}\n\ninterface GetResourcesDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getResources = (\n params: GetResourcesParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/resources',\n params,\n options\n ) as Promise\n\nexport interface GetStacksParams {\n query: {\n orgID: string\n name?: string\n stackID?: string\n }\n}\n\ntype GetStacksResult =\n | GetStacksOKResult\n | GetStacksBadRequestResult\n | GetStacksUnauthorizedResult\n | GetStacksInternalServerErrorResult\n | GetStacksDefaultResult\n\ninterface GetStacksOKResult {\n status: 200\n headers: Headers\n data: {\n stacks?: Stack[]\n }\n}\n\ninterface GetStacksBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetStacksUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetStacksInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetStacksDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getStacks = (\n params: GetStacksParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/stacks', params, options) as Promise\n\nexport interface PostStackParams {\n data: {\n orgID?: string\n name?: string\n description?: string\n urls?: string[]\n }\n}\n\ntype PostStackResult =\n | PostStackCreatedResult\n | PostStackUnauthorizedResult\n | PostStackUnprocessableEntityResult\n | PostStackInternalServerErrorResult\n | PostStackDefaultResult\n\ninterface PostStackCreatedResult {\n status: 201\n headers: Headers\n data: Stack\n}\n\ninterface PostStackUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostStackUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostStackInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostStackDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postStack = (\n params: PostStackParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/stacks',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetStackParams {\n stack_id: string\n}\n\ntype GetStackResult = GetStackOKResult | GetStackDefaultResult\n\ninterface GetStackOKResult {\n status: 200\n headers: Headers\n data: Stack\n}\n\ninterface GetStackDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getStack = (\n params: GetStackParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/stacks/${params.stack_id}`,\n params,\n options\n ) as Promise\n\nexport interface PatchStackParams {\n stack_id: string\n\n data: {\n name?: string\n description?: string\n templateURLs?: string[]\n additionalResources?: Array<{\n resourceID: string\n kind: string\n templateMetaName?: string\n }>\n }\n}\n\ntype PatchStackResult = PatchStackOKResult | PatchStackDefaultResult\n\ninterface PatchStackOKResult {\n status: 200\n headers: Headers\n data: Stack\n}\n\ninterface PatchStackDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchStack = (\n params: PatchStackParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/stacks/${params.stack_id}`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface DeleteStackParams {\n stack_id: string\n\n query: {\n orgID: string\n }\n}\n\ntype DeleteStackResult = DeleteStackNoContentResult | DeleteStackDefaultResult\n\ninterface DeleteStackNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteStackDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteStack = (\n params: DeleteStackParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/stacks/${params.stack_id}`,\n params,\n options\n ) as Promise\n\nexport interface PostStacksUninstallParams {\n stack_id: string\n}\n\ntype PostStacksUninstallResult =\n | PostStacksUninstallOKResult\n | PostStacksUninstallDefaultResult\n\ninterface PostStacksUninstallOKResult {\n status: 200\n headers: Headers\n data: Stack\n}\n\ninterface PostStacksUninstallDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postStacksUninstall = (\n params: PostStacksUninstallParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/stacks/${params.stack_id}/uninstall`,\n params,\n options\n ) as Promise\n\nexport interface PostTemplatesApplyParams {\n data: TemplateApply\n}\n\ntype PostTemplatesApplyResult =\n | PostTemplatesApplyOKResult\n | PostTemplatesApplyCreatedResult\n | PostTemplatesApplyUnprocessableEntityResult\n | PostTemplatesApplyInternalServerErrorResult\n | PostTemplatesApplyDefaultResult\n\ninterface PostTemplatesApplyOKResult {\n status: 200\n headers: Headers\n data: TemplateSummary\n}\n\ninterface PostTemplatesApplyCreatedResult {\n status: 201\n headers: Headers\n data: TemplateSummary\n}\n\ninterface PostTemplatesApplyUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: TemplateSummary & {\n message: string\n code: string\n }\n}\n\ninterface PostTemplatesApplyInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostTemplatesApplyDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTemplatesApply = (\n params: PostTemplatesApplyParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/templates/apply',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PostTemplatesExportParams {\n data?: TemplateExportByID | TemplateExportByName\n}\n\ntype PostTemplatesExportResult =\n | PostTemplatesExportOKResult\n | PostTemplatesExportDefaultResult\n\ninterface PostTemplatesExportOKResult {\n status: 200\n headers: Headers\n data: Template\n}\n\ninterface PostTemplatesExportDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTemplatesExport = (\n params: PostTemplatesExportParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/templates/export',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetTasksRunsParams {\n taskID: string\n\n query?: {\n after?: string\n limit?: number\n afterTime?: string\n beforeTime?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTasksRunsResult =\n | GetTasksRunsOKResult\n | GetTasksRunsUnauthorizedResult\n | GetTasksRunsInternalServerErrorResult\n | GetTasksRunsDefaultResult\n\ninterface GetTasksRunsOKResult {\n status: 200\n headers: Headers\n data: Runs\n}\n\ninterface GetTasksRunsUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetTasksRunsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetTasksRunsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTasksRuns = (\n params: GetTasksRunsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/tasks/${params.taskID}/runs`,\n params,\n options\n ) as Promise\n\nexport interface PostTasksRunParams {\n taskID: string\n\n data?: RunManually\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostTasksRunResult =\n | PostTasksRunCreatedResult\n | PostTasksRunBadRequestResult\n | PostTasksRunUnauthorizedResult\n | PostTasksRunInternalServerErrorResult\n | PostTasksRunDefaultResult\n\ninterface PostTasksRunCreatedResult {\n status: 201\n headers: Headers\n data: Run\n}\n\ninterface PostTasksRunBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostTasksRunUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostTasksRunInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostTasksRunDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTasksRun = (\n params: PostTasksRunParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/tasks/${params.taskID}/runs`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetTasksRunParams {\n taskID: string\n runID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTasksRunResult =\n | GetTasksRunOKResult\n | GetTasksRunBadRequestResult\n | GetTasksRunUnauthorizedResult\n | GetTasksRunNotFoundResult\n | GetTasksRunInternalServerErrorResult\n | GetTasksRunDefaultResult\n\ninterface GetTasksRunOKResult {\n status: 200\n headers: Headers\n data: Run\n}\n\ninterface GetTasksRunBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetTasksRunUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetTasksRunNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetTasksRunInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetTasksRunDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTasksRun = (\n params: GetTasksRunParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/tasks/${params.taskID}/runs/${params.runID}`,\n params,\n options\n ) as Promise\n\nexport interface DeleteTasksRunParams {\n taskID: string\n runID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteTasksRunResult =\n | DeleteTasksRunNoContentResult\n | DeleteTasksRunBadRequestResult\n | DeleteTasksRunUnauthorizedResult\n | DeleteTasksRunNotFoundResult\n | DeleteTasksRunMethodNotAllowedResult\n | DeleteTasksRunInternalServerErrorResult\n | DeleteTasksRunDefaultResult\n\ninterface DeleteTasksRunNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteTasksRunBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteTasksRunUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteTasksRunNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteTasksRunMethodNotAllowedResult {\n status: 405\n headers: Headers\n data: Error\n}\n\ninterface DeleteTasksRunInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteTasksRunDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteTasksRun = (\n params: DeleteTasksRunParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/tasks/${params.taskID}/runs/${params.runID}`,\n params,\n options\n ) as Promise\n\nexport interface PostTasksRunsRetryParams {\n taskID: string\n runID: string\n\n data?: any\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostTasksRunsRetryResult =\n | PostTasksRunsRetryOKResult\n | PostTasksRunsRetryBadRequestResult\n | PostTasksRunsRetryUnauthorizedResult\n | PostTasksRunsRetryNotFoundResult\n | PostTasksRunsRetryInternalServerErrorResult\n | PostTasksRunsRetryDefaultResult\n\ninterface PostTasksRunsRetryOKResult {\n status: 200\n headers: Headers\n data: Run\n}\n\ninterface PostTasksRunsRetryBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostTasksRunsRetryUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostTasksRunsRetryNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostTasksRunsRetryInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostTasksRunsRetryDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTasksRunsRetry = (\n params: PostTasksRunsRetryParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/tasks/${params.taskID}/runs/${params.runID}/retry`,\n {\n ...params,\n headers: {\n ...params.headers,\n 'Content-Type': 'application/json; charset=utf-8',\n },\n },\n options\n ) as Promise\n\nexport interface GetTasksLogsParams {\n taskID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTasksLogsResult =\n | GetTasksLogsOKResult\n | GetTasksLogsBadRequestResult\n | GetTasksLogsUnauthorizedResult\n | GetTasksLogsNotFoundResult\n | GetTasksLogsInternalServerErrorResult\n | GetTasksLogsDefaultResult\n\ninterface GetTasksLogsOKResult {\n status: 200\n headers: Headers\n data: Logs\n}\n\ninterface GetTasksLogsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetTasksLogsUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetTasksLogsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetTasksLogsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetTasksLogsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTasksLogs = (\n params: GetTasksLogsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/tasks/${params.taskID}/logs`,\n params,\n options\n ) as Promise\n\nexport interface GetTasksRunsLogsParams {\n taskID: string\n runID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTasksRunsLogsResult =\n | GetTasksRunsLogsOKResult\n | GetTasksRunsLogsBadRequestResult\n | GetTasksRunsLogsUnauthorizedResult\n | GetTasksRunsLogsNotFoundResult\n | GetTasksRunsLogsInternalServerErrorResult\n | GetTasksRunsLogsDefaultResult\n\ninterface GetTasksRunsLogsOKResult {\n status: 200\n headers: Headers\n data: Logs\n}\n\ninterface GetTasksRunsLogsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetTasksRunsLogsUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetTasksRunsLogsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetTasksRunsLogsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetTasksRunsLogsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTasksRunsLogs = (\n params: GetTasksRunsLogsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/tasks/${params.taskID}/runs/${params.runID}/logs`,\n params,\n options\n ) as Promise\n\nexport interface GetTasksLabelsParams {\n taskID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTasksLabelsResult =\n | GetTasksLabelsOKResult\n | GetTasksLabelsBadRequestResult\n | GetTasksLabelsUnauthorizedResult\n | GetTasksLabelsNotFoundResult\n | GetTasksLabelsInternalServerErrorResult\n | GetTasksLabelsDefaultResult\n\ninterface GetTasksLabelsOKResult {\n status: 200\n headers: Headers\n data: LabelsResponse\n}\n\ninterface GetTasksLabelsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetTasksLabelsUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetTasksLabelsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetTasksLabelsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetTasksLabelsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTasksLabels = (\n params: GetTasksLabelsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/tasks/${params.taskID}/labels`,\n params,\n options\n ) as Promise\n\nexport interface PostTasksLabelParams {\n taskID: string\n\n data: LabelMapping\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostTasksLabelResult =\n | PostTasksLabelCreatedResult\n | PostTasksLabelBadRequestResult\n | PostTasksLabelUnauthorizedResult\n | PostTasksLabelNotFoundResult\n | PostTasksLabelInternalServerErrorResult\n | PostTasksLabelDefaultResult\n\ninterface PostTasksLabelCreatedResult {\n status: 201\n headers: Headers\n data: LabelResponse\n}\n\ninterface PostTasksLabelBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostTasksLabelUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostTasksLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostTasksLabelInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostTasksLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTasksLabel = (\n params: PostTasksLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/tasks/${params.taskID}/labels`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteTasksLabelParams {\n taskID: string\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteTasksLabelResult =\n | DeleteTasksLabelNoContentResult\n | DeleteTasksLabelBadRequestResult\n | DeleteTasksLabelUnauthorizedResult\n | DeleteTasksLabelNotFoundResult\n | DeleteTasksLabelInternalServerErrorResult\n | DeleteTasksLabelDefaultResult\n\ninterface DeleteTasksLabelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteTasksLabelBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteTasksLabelUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteTasksLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteTasksLabelInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteTasksLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteTasksLabel = (\n params: DeleteTasksLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/tasks/${params.taskID}/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface GetFlagsParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetFlagsResult =\n | GetFlagsOKResult\n | GetFlagsUnauthorizedResult\n | GetFlagsInternalServerErrorResult\n | GetFlagsDefaultResult\n\ninterface GetFlagsOKResult {\n status: 200\n headers: Headers\n data: Flags\n}\n\ninterface GetFlagsUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetFlagsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetFlagsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getFlags = (\n params: GetFlagsParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/flags', params, options) as Promise\n\nexport interface GetMeParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetMeResult =\n | GetMeOKResult\n | GetMeUnauthorizedResult\n | GetMeInternalServerErrorResult\n | GetMeDefaultResult\n\ninterface GetMeOKResult {\n status: 200\n headers: Headers\n data: UserResponse\n}\n\ninterface GetMeUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetMeInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetMeDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getMe = (\n params: GetMeParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/me', params, options) as Promise\n\nexport interface PutMePasswordParams {\n data: PasswordResetBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n\n auth: {\n username: string\n password: string\n }\n}\n\ntype PutMePasswordResult =\n | PutMePasswordNoContentResult\n | PutMePasswordBadRequestResult\n | PutMePasswordUnauthorizedResult\n | PutMePasswordDefaultResult\n\ninterface PutMePasswordNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PutMePasswordBadRequestResult {\n status: 400\n headers: Headers\n data: any\n}\n\ninterface PutMePasswordUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PutMePasswordDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putMePassword = (\n params: PutMePasswordParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n '/api/v2/me/password',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetTasksMembersParams {\n taskID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTasksMembersResult =\n | GetTasksMembersOKResult\n | GetTasksMembersDefaultResult\n\ninterface GetTasksMembersOKResult {\n status: 200\n headers: Headers\n data: ResourceMembers\n}\n\ninterface GetTasksMembersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTasksMembers = (\n params: GetTasksMembersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/tasks/${params.taskID}/members`,\n params,\n options\n ) as Promise\n\nexport interface PostTasksMemberParams {\n taskID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostTasksMemberResult =\n | PostTasksMemberCreatedResult\n | PostTasksMemberDefaultResult\n\ninterface PostTasksMemberCreatedResult {\n status: 201\n headers: Headers\n data: ResourceMember\n}\n\ninterface PostTasksMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTasksMember = (\n params: PostTasksMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/tasks/${params.taskID}/members`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteTasksMemberParams {\n userID: string\n taskID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteTasksMemberResult =\n | DeleteTasksMemberNoContentResult\n | DeleteTasksMemberDefaultResult\n\ninterface DeleteTasksMemberNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteTasksMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteTasksMember = (\n params: DeleteTasksMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/tasks/${params.taskID}/members/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface GetTasksOwnersParams {\n taskID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTasksOwnersResult =\n | GetTasksOwnersOKResult\n | GetTasksOwnersUnauthorizedResult\n | GetTasksOwnersUnprocessableEntityResult\n | GetTasksOwnersInternalServerErrorResult\n | GetTasksOwnersDefaultResult\n\ninterface GetTasksOwnersOKResult {\n status: 200\n headers: Headers\n data: ResourceOwners\n}\n\ninterface GetTasksOwnersUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetTasksOwnersUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface GetTasksOwnersInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetTasksOwnersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTasksOwners = (\n params: GetTasksOwnersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/tasks/${params.taskID}/owners`,\n params,\n options\n ) as Promise\n\nexport interface PostTasksOwnerParams {\n taskID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostTasksOwnerResult =\n | PostTasksOwnerCreatedResult\n | PostTasksOwnerUnauthorizedResult\n | PostTasksOwnerUnprocessableEntityResult\n | PostTasksOwnerInternalServerErrorResult\n | PostTasksOwnerDefaultResult\n\ninterface PostTasksOwnerCreatedResult {\n status: 201\n headers: Headers\n data: ResourceOwner\n}\n\ninterface PostTasksOwnerUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostTasksOwnerUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostTasksOwnerInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostTasksOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTasksOwner = (\n params: PostTasksOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/tasks/${params.taskID}/owners`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteTasksOwnerParams {\n userID: string\n taskID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteTasksOwnerResult =\n | DeleteTasksOwnerNoContentResult\n | DeleteTasksOwnerDefaultResult\n\ninterface DeleteTasksOwnerNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteTasksOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteTasksOwner = (\n params: DeleteTasksOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/tasks/${params.taskID}/owners/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface PostUsersPasswordParams {\n userID: string\n\n data: PasswordResetBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostUsersPasswordResult =\n | PostUsersPasswordNoContentResult\n | PostUsersPasswordBadRequestResult\n | PostUsersPasswordDefaultResult\n\ninterface PostUsersPasswordNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostUsersPasswordBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostUsersPasswordDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postUsersPassword = (\n params: PostUsersPasswordParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/users/${params.userID}/password`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PutUsersPasswordParams {\n userID: string\n\n data: PasswordResetBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n\n auth: {\n username: string\n password: string\n }\n}\n\ntype PutUsersPasswordResult =\n | PutUsersPasswordNoContentResult\n | PutUsersPasswordBadRequestResult\n | PutUsersPasswordDefaultResult\n\ninterface PutUsersPasswordNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PutUsersPasswordBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PutUsersPasswordDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putUsersPassword = (\n params: PutUsersPasswordParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2/users/${params.userID}/password`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetChecksParams {\n query: {\n offset?: number\n limit?: number\n orgID: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetChecksResult = GetChecksOKResult | GetChecksDefaultResult\n\ninterface GetChecksOKResult {\n status: 200\n headers: Headers\n data: Checks\n}\n\ninterface GetChecksDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getChecks = (\n params: GetChecksParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/checks', params, options) as Promise\n\nexport interface PostCheckParams {\n data: PostCheck\n}\n\ntype PostCheckResult = PostCheckCreatedResult | PostCheckDefaultResult\n\ninterface PostCheckCreatedResult {\n status: 201\n headers: Headers\n data: Check\n}\n\ninterface PostCheckDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postCheck = (\n params: PostCheckParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/checks',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetCheckParams {\n checkID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetCheckResult = GetCheckOKResult | GetCheckDefaultResult\n\ninterface GetCheckOKResult {\n status: 200\n headers: Headers\n data: Check\n}\n\ninterface GetCheckDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getCheck = (\n params: GetCheckParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/checks/${params.checkID}`,\n params,\n options\n ) as Promise\n\nexport interface PutCheckParams {\n checkID: string\n\n data: Check\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PutCheckResult =\n | PutCheckOKResult\n | PutCheckNotFoundResult\n | PutCheckDefaultResult\n\ninterface PutCheckOKResult {\n status: 200\n headers: Headers\n data: Check\n}\n\ninterface PutCheckNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PutCheckDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putCheck = (\n params: PutCheckParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2/checks/${params.checkID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PatchCheckParams {\n checkID: string\n\n data: CheckPatch\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchCheckResult =\n | PatchCheckOKResult\n | PatchCheckNotFoundResult\n | PatchCheckDefaultResult\n\ninterface PatchCheckOKResult {\n status: 200\n headers: Headers\n data: Check\n}\n\ninterface PatchCheckNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchCheckDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchCheck = (\n params: PatchCheckParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/checks/${params.checkID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteCheckParams {\n checkID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteCheckResult =\n | DeleteCheckNoContentResult\n | DeleteCheckNotFoundResult\n | DeleteCheckDefaultResult\n\ninterface DeleteCheckNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteCheckNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteCheckDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteCheck = (\n params: DeleteCheckParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/checks/${params.checkID}`,\n params,\n options\n ) as Promise\n\nexport interface GetChecksLabelsParams {\n checkID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetChecksLabelsResult =\n | GetChecksLabelsOKResult\n | GetChecksLabelsDefaultResult\n\ninterface GetChecksLabelsOKResult {\n status: 200\n headers: Headers\n data: LabelsResponse\n}\n\ninterface GetChecksLabelsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getChecksLabels = (\n params: GetChecksLabelsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/checks/${params.checkID}/labels`,\n params,\n options\n ) as Promise\n\nexport interface PostChecksLabelParams {\n checkID: string\n\n data: LabelMapping\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostChecksLabelResult =\n | PostChecksLabelCreatedResult\n | PostChecksLabelDefaultResult\n\ninterface PostChecksLabelCreatedResult {\n status: 201\n headers: Headers\n data: LabelResponse\n}\n\ninterface PostChecksLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postChecksLabel = (\n params: PostChecksLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/checks/${params.checkID}/labels`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteChecksLabelParams {\n checkID: string\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteChecksLabelResult =\n | DeleteChecksLabelNoContentResult\n | DeleteChecksLabelNotFoundResult\n | DeleteChecksLabelDefaultResult\n\ninterface DeleteChecksLabelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteChecksLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteChecksLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteChecksLabel = (\n params: DeleteChecksLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/checks/${params.checkID}/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface GetNotificationRulesParams {\n query: {\n offset?: number\n limit?: number\n orgID: string\n checkID?: string\n tag?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetNotificationRulesResult =\n | GetNotificationRulesOKResult\n | GetNotificationRulesDefaultResult\n\ninterface GetNotificationRulesOKResult {\n status: 200\n headers: Headers\n data: NotificationRules\n}\n\ninterface GetNotificationRulesDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotificationRules = (\n params: GetNotificationRulesParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/notificationRules',\n params,\n options\n ) as Promise\n\nexport interface PostNotificationRuleParams {\n data: PostNotificationRule\n}\n\ntype PostNotificationRuleResult =\n | PostNotificationRuleCreatedResult\n | PostNotificationRuleDefaultResult\n\ninterface PostNotificationRuleCreatedResult {\n status: 201\n headers: Headers\n data: NotificationRule\n}\n\ninterface PostNotificationRuleDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postNotificationRule = (\n params: PostNotificationRuleParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/notificationRules',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetChecksQueryParams {\n checkID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetChecksQueryResult =\n | GetChecksQueryOKResult\n | GetChecksQueryBadRequestResult\n | GetChecksQueryNotFoundResult\n | GetChecksQueryDefaultResult\n\ninterface GetChecksQueryOKResult {\n status: 200\n headers: Headers\n data: FluxResponse\n}\n\ninterface GetChecksQueryBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetChecksQueryNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetChecksQueryDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getChecksQuery = (\n params: GetChecksQueryParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/checks/${params.checkID}/query`,\n params,\n options\n ) as Promise\n\nexport interface GetNotificationRuleParams {\n ruleID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetNotificationRuleResult =\n | GetNotificationRuleOKResult\n | GetNotificationRuleDefaultResult\n\ninterface GetNotificationRuleOKResult {\n status: 200\n headers: Headers\n data: NotificationRule\n}\n\ninterface GetNotificationRuleDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotificationRule = (\n params: GetNotificationRuleParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/notificationRules/${params.ruleID}`,\n params,\n options\n ) as Promise\n\nexport interface PutNotificationRuleParams {\n ruleID: string\n\n data: NotificationRule\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PutNotificationRuleResult =\n | PutNotificationRuleOKResult\n | PutNotificationRuleNotFoundResult\n | PutNotificationRuleDefaultResult\n\ninterface PutNotificationRuleOKResult {\n status: 200\n headers: Headers\n data: NotificationRule\n}\n\ninterface PutNotificationRuleNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PutNotificationRuleDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putNotificationRule = (\n params: PutNotificationRuleParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2/notificationRules/${params.ruleID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PatchNotificationRuleParams {\n ruleID: string\n\n data: NotificationRuleUpdate\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchNotificationRuleResult =\n | PatchNotificationRuleOKResult\n | PatchNotificationRuleNotFoundResult\n | PatchNotificationRuleDefaultResult\n\ninterface PatchNotificationRuleOKResult {\n status: 200\n headers: Headers\n data: NotificationRule\n}\n\ninterface PatchNotificationRuleNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchNotificationRuleDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchNotificationRule = (\n params: PatchNotificationRuleParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/notificationRules/${params.ruleID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteNotificationRuleParams {\n ruleID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteNotificationRuleResult =\n | DeleteNotificationRuleNoContentResult\n | DeleteNotificationRuleNotFoundResult\n | DeleteNotificationRuleDefaultResult\n\ninterface DeleteNotificationRuleNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteNotificationRuleNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotificationRuleDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteNotificationRule = (\n params: DeleteNotificationRuleParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/notificationRules/${params.ruleID}`,\n params,\n options\n ) as Promise\n\nexport interface GetNotificationRulesLabelsParams {\n ruleID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetNotificationRulesLabelsResult =\n | GetNotificationRulesLabelsOKResult\n | GetNotificationRulesLabelsDefaultResult\n\ninterface GetNotificationRulesLabelsOKResult {\n status: 200\n headers: Headers\n data: LabelsResponse\n}\n\ninterface GetNotificationRulesLabelsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotificationRulesLabels = (\n params: GetNotificationRulesLabelsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/notificationRules/${params.ruleID}/labels`,\n params,\n options\n ) as Promise\n\nexport interface PostNotificationRulesLabelParams {\n ruleID: string\n\n data: LabelMapping\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostNotificationRulesLabelResult =\n | PostNotificationRulesLabelCreatedResult\n | PostNotificationRulesLabelDefaultResult\n\ninterface PostNotificationRulesLabelCreatedResult {\n status: 201\n headers: Headers\n data: LabelResponse\n}\n\ninterface PostNotificationRulesLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postNotificationRulesLabel = (\n params: PostNotificationRulesLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/notificationRules/${params.ruleID}/labels`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteNotificationRulesLabelParams {\n ruleID: string\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteNotificationRulesLabelResult =\n | DeleteNotificationRulesLabelNoContentResult\n | DeleteNotificationRulesLabelNotFoundResult\n | DeleteNotificationRulesLabelDefaultResult\n\ninterface DeleteNotificationRulesLabelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteNotificationRulesLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotificationRulesLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteNotificationRulesLabel = (\n params: DeleteNotificationRulesLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/notificationRules/${params.ruleID}/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface GetNotificationRulesQueryParams {\n ruleID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetNotificationRulesQueryResult =\n | GetNotificationRulesQueryOKResult\n | GetNotificationRulesQueryBadRequestResult\n | GetNotificationRulesQueryNotFoundResult\n | GetNotificationRulesQueryDefaultResult\n\ninterface GetNotificationRulesQueryOKResult {\n status: 200\n headers: Headers\n data: FluxResponse\n}\n\ninterface GetNotificationRulesQueryBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetNotificationRulesQueryNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetNotificationRulesQueryDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotificationRulesQuery = (\n params: GetNotificationRulesQueryParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/notificationRules/${params.ruleID}/query`,\n params,\n options\n ) as Promise\n\nexport interface GetNotificationEndpointsParams {\n query: {\n offset?: number\n limit?: number\n orgID: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetNotificationEndpointsResult =\n | GetNotificationEndpointsOKResult\n | GetNotificationEndpointsDefaultResult\n\ninterface GetNotificationEndpointsOKResult {\n status: 200\n headers: Headers\n data: NotificationEndpoints\n}\n\ninterface GetNotificationEndpointsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotificationEndpoints = (\n params: GetNotificationEndpointsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/notificationEndpoints',\n params,\n options\n ) as Promise\n\nexport interface PostNotificationEndpointParams {\n data: PostNotificationEndpoint\n}\n\ntype PostNotificationEndpointResult =\n | PostNotificationEndpointCreatedResult\n | PostNotificationEndpointDefaultResult\n\ninterface PostNotificationEndpointCreatedResult {\n status: 201\n headers: Headers\n data: NotificationEndpoint\n}\n\ninterface PostNotificationEndpointDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postNotificationEndpoint = (\n params: PostNotificationEndpointParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/notificationEndpoints',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetNotificationEndpointParams {\n endpointID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetNotificationEndpointResult =\n | GetNotificationEndpointOKResult\n | GetNotificationEndpointDefaultResult\n\ninterface GetNotificationEndpointOKResult {\n status: 200\n headers: Headers\n data: NotificationEndpoint\n}\n\ninterface GetNotificationEndpointDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotificationEndpoint = (\n params: GetNotificationEndpointParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/notificationEndpoints/${params.endpointID}`,\n params,\n options\n ) as Promise\n\nexport interface PutNotificationEndpointParams {\n endpointID: string\n\n data: NotificationEndpoint\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PutNotificationEndpointResult =\n | PutNotificationEndpointOKResult\n | PutNotificationEndpointNotFoundResult\n | PutNotificationEndpointDefaultResult\n\ninterface PutNotificationEndpointOKResult {\n status: 200\n headers: Headers\n data: NotificationEndpoint\n}\n\ninterface PutNotificationEndpointNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PutNotificationEndpointDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putNotificationEndpoint = (\n params: PutNotificationEndpointParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2/notificationEndpoints/${params.endpointID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PatchNotificationEndpointParams {\n endpointID: string\n\n data: NotificationEndpointUpdate\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchNotificationEndpointResult =\n | PatchNotificationEndpointOKResult\n | PatchNotificationEndpointNotFoundResult\n | PatchNotificationEndpointDefaultResult\n\ninterface PatchNotificationEndpointOKResult {\n status: 200\n headers: Headers\n data: NotificationEndpoint\n}\n\ninterface PatchNotificationEndpointNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchNotificationEndpointDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchNotificationEndpoint = (\n params: PatchNotificationEndpointParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/notificationEndpoints/${params.endpointID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteNotificationEndpointParams {\n endpointID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteNotificationEndpointResult =\n | DeleteNotificationEndpointNoContentResult\n | DeleteNotificationEndpointNotFoundResult\n | DeleteNotificationEndpointDefaultResult\n\ninterface DeleteNotificationEndpointNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteNotificationEndpointNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotificationEndpointDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteNotificationEndpoint = (\n params: DeleteNotificationEndpointParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/notificationEndpoints/${params.endpointID}`,\n params,\n options\n ) as Promise\n\nexport interface GetNotificationEndpointsLabelsParams {\n endpointID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetNotificationEndpointsLabelsResult =\n | GetNotificationEndpointsLabelsOKResult\n | GetNotificationEndpointsLabelsDefaultResult\n\ninterface GetNotificationEndpointsLabelsOKResult {\n status: 200\n headers: Headers\n data: LabelsResponse\n}\n\ninterface GetNotificationEndpointsLabelsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotificationEndpointsLabels = (\n params: GetNotificationEndpointsLabelsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/notificationEndpoints/${params.endpointID}/labels`,\n params,\n options\n ) as Promise\n\nexport interface PostNotificationEndpointsLabelParams {\n endpointID: string\n\n data: LabelMapping\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostNotificationEndpointsLabelResult =\n | PostNotificationEndpointsLabelCreatedResult\n | PostNotificationEndpointsLabelDefaultResult\n\ninterface PostNotificationEndpointsLabelCreatedResult {\n status: 201\n headers: Headers\n data: LabelResponse\n}\n\ninterface PostNotificationEndpointsLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postNotificationEndpointsLabel = (\n params: PostNotificationEndpointsLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/notificationEndpoints/${params.endpointID}/labels`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteNotificationEndpointsLabelParams {\n endpointID: string\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteNotificationEndpointsLabelResult =\n | DeleteNotificationEndpointsLabelNoContentResult\n | DeleteNotificationEndpointsLabelNotFoundResult\n | DeleteNotificationEndpointsLabelDefaultResult\n\ninterface DeleteNotificationEndpointsLabelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteNotificationEndpointsLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotificationEndpointsLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteNotificationEndpointsLabel = (\n params: DeleteNotificationEndpointsLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/notificationEndpoints/${params.endpointID}/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface GetAuthorizationsParams {\n query?: {\n userID?: string\n user?: string\n orgID?: string\n org?: string\n token?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetAuthorizationsResult =\n | GetAuthorizationsOKResult\n | GetAuthorizationsBadRequestResult\n | GetAuthorizationsUnauthorizedResult\n | GetAuthorizationsInternalServerErrorResult\n | GetAuthorizationsDefaultResult\n\ninterface GetAuthorizationsOKResult {\n status: 200\n headers: Headers\n data: Authorizations\n}\n\ninterface GetAuthorizationsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetAuthorizationsUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetAuthorizationsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetAuthorizationsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getAuthorizations = (\n params: GetAuthorizationsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/authorizations',\n params,\n options\n ) as Promise\n\nexport interface PostAuthorizationParams {\n data: AuthorizationPostRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostAuthorizationResult =\n | PostAuthorizationCreatedResult\n | PostAuthorizationBadRequestResult\n | PostAuthorizationUnauthorizedResult\n | PostAuthorizationInternalServerErrorResult\n | PostAuthorizationDefaultResult\n\ninterface PostAuthorizationCreatedResult {\n status: 201\n headers: Headers\n data: Authorization\n}\n\ninterface PostAuthorizationBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostAuthorizationUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostAuthorizationInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostAuthorizationDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postAuthorization = (\n params: PostAuthorizationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/authorizations',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetAuthorizationParams {\n authID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetAuthorizationResult =\n | GetAuthorizationOKResult\n | GetAuthorizationBadRequestResult\n | GetAuthorizationUnauthorizedResult\n | GetAuthorizationNotFoundResult\n | GetAuthorizationInternalServerErrorResult\n | GetAuthorizationDefaultResult\n\ninterface GetAuthorizationOKResult {\n status: 200\n headers: Headers\n data: Authorization\n}\n\ninterface GetAuthorizationBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetAuthorizationUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetAuthorizationNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetAuthorizationInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetAuthorizationDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getAuthorization = (\n params: GetAuthorizationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/authorizations/${params.authID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchAuthorizationParams {\n authID: string\n\n data: AuthorizationUpdateRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchAuthorizationResult =\n | PatchAuthorizationOKResult\n | PatchAuthorizationDefaultResult\n\ninterface PatchAuthorizationOKResult {\n status: 200\n headers: Headers\n data: Authorization\n}\n\ninterface PatchAuthorizationDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchAuthorization = (\n params: PatchAuthorizationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/authorizations/${params.authID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteAuthorizationParams {\n authID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteAuthorizationResult =\n | DeleteAuthorizationNoContentResult\n | DeleteAuthorizationBadRequestResult\n | DeleteAuthorizationUnauthorizedResult\n | DeleteAuthorizationNotFoundResult\n | DeleteAuthorizationInternalServerErrorResult\n | DeleteAuthorizationDefaultResult\n\ninterface DeleteAuthorizationNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteAuthorizationBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteAuthorizationUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteAuthorizationNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteAuthorizationInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteAuthorizationDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteAuthorization = (\n params: DeleteAuthorizationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/authorizations/${params.authID}`,\n params,\n options\n ) as Promise\n\nexport interface GetDebugPprofAllParams {\n query?: {\n cpu?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDebugPprofAllResult =\n | GetDebugPprofAllOKResult\n | GetDebugPprofAllDefaultResult\n\ninterface GetDebugPprofAllOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetDebugPprofAllDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDebugPprofAll = (\n params: GetDebugPprofAllParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/debug/pprof/all',\n params,\n options\n ) as Promise\n\nexport interface GetDebugPprofAllocsParams {\n query?: {\n debug?: number\n seconds?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDebugPprofAllocsResult =\n | GetDebugPprofAllocsOKResult\n | GetDebugPprofAllocsDefaultResult\n\ninterface GetDebugPprofAllocsOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetDebugPprofAllocsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDebugPprofAllocs = (\n params: GetDebugPprofAllocsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/debug/pprof/allocs',\n params,\n options\n ) as Promise\n\nexport interface GetDebugPprofBlockParams {\n query?: {\n debug?: number\n seconds?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDebugPprofBlockResult =\n | GetDebugPprofBlockOKResult\n | GetDebugPprofBlockDefaultResult\n\ninterface GetDebugPprofBlockOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetDebugPprofBlockDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDebugPprofBlock = (\n params: GetDebugPprofBlockParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/debug/pprof/block',\n params,\n options\n ) as Promise\n\nexport interface GetDebugPprofCmdlineParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDebugPprofCmdlineResult =\n | GetDebugPprofCmdlineOKResult\n | GetDebugPprofCmdlineDefaultResult\n\ninterface GetDebugPprofCmdlineOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetDebugPprofCmdlineDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDebugPprofCmdline = (\n params: GetDebugPprofCmdlineParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/debug/pprof/cmdline',\n params,\n options\n ) as Promise\n\nexport interface GetDebugPprofGoroutineParams {\n query?: {\n debug?: number\n seconds?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDebugPprofGoroutineResult =\n | GetDebugPprofGoroutineOKResult\n | GetDebugPprofGoroutineDefaultResult\n\ninterface GetDebugPprofGoroutineOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetDebugPprofGoroutineDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDebugPprofGoroutine = (\n params: GetDebugPprofGoroutineParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/debug/pprof/goroutine',\n params,\n options\n ) as Promise\n\nexport interface GetDebugPprofHeapParams {\n query?: {\n debug?: number\n seconds?: string\n gc?: number\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDebugPprofHeapResult =\n | GetDebugPprofHeapOKResult\n | GetDebugPprofHeapDefaultResult\n\ninterface GetDebugPprofHeapOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetDebugPprofHeapDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDebugPprofHeap = (\n params: GetDebugPprofHeapParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/debug/pprof/heap',\n params,\n options\n ) as Promise\n\nexport interface GetDebugPprofMutexParams {\n query?: {\n debug?: number\n seconds?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDebugPprofMutexResult =\n | GetDebugPprofMutexOKResult\n | GetDebugPprofMutexDefaultResult\n\ninterface GetDebugPprofMutexOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetDebugPprofMutexDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDebugPprofMutex = (\n params: GetDebugPprofMutexParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/debug/pprof/mutex',\n params,\n options\n ) as Promise\n\nexport interface GetDebugPprofProfileParams {\n query?: {\n seconds?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDebugPprofProfileResult =\n | GetDebugPprofProfileOKResult\n | GetDebugPprofProfileDefaultResult\n\ninterface GetDebugPprofProfileOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetDebugPprofProfileDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDebugPprofProfile = (\n params: GetDebugPprofProfileParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/debug/pprof/profile',\n params,\n options\n ) as Promise\n\nexport interface GetDebugPprofThreadcreateParams {\n query?: {\n debug?: number\n seconds?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDebugPprofThreadcreateResult =\n | GetDebugPprofThreadcreateOKResult\n | GetDebugPprofThreadcreateDefaultResult\n\ninterface GetDebugPprofThreadcreateOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetDebugPprofThreadcreateDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDebugPprofThreadcreate = (\n params: GetDebugPprofThreadcreateParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/debug/pprof/threadcreate',\n params,\n options\n ) as Promise\n\nexport interface GetDebugPprofTraceParams {\n query?: {\n seconds?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDebugPprofTraceResult =\n | GetDebugPprofTraceOKResult\n | GetDebugPprofTraceDefaultResult\n\ninterface GetDebugPprofTraceOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetDebugPprofTraceDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDebugPprofTrace = (\n params: GetDebugPprofTraceParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/debug/pprof/trace',\n params,\n options\n ) as Promise\n\nexport interface GetHealthParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetHealthResult =\n | GetHealthOKResult\n | GetHealthServiceUnavailableResult\n | GetHealthDefaultResult\n\ninterface GetHealthOKResult {\n status: 200\n headers: Headers\n data: HealthCheck\n}\n\ninterface GetHealthServiceUnavailableResult {\n status: 503\n headers: Headers\n data: HealthCheck\n}\n\ninterface GetHealthDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getHealth = (\n params: GetHealthParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/health', params, options) as Promise\n\nexport interface GetMetricsParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetMetricsResult = GetMetricsOKResult | GetMetricsDefaultResult\n\ninterface GetMetricsOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetMetricsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getMetrics = (\n params: GetMetricsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/metrics',\n params,\n options\n ) as Promise\n\nexport interface GetReadyParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetReadyResult = GetReadyOKResult | GetReadyDefaultResult\n\ninterface GetReadyOKResult {\n status: 200\n headers: Headers\n data: Ready\n}\n\ninterface GetReadyDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getReady = (\n params: GetReadyParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/ready', params, options) as Promise\n\nexport interface GetUsersParams {\n query?: {\n offset?: number\n limit?: number\n after?: string\n name?: string\n id?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetUsersResult =\n | GetUsersOKResult\n | GetUsersUnauthorizedResult\n | GetUsersUnprocessableEntityResult\n | GetUsersInternalServerErrorResult\n | GetUsersDefaultResult\n\ninterface GetUsersOKResult {\n status: 200\n headers: Headers\n data: Users\n}\n\ninterface GetUsersUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetUsersUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface GetUsersInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetUsersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getUsers = (\n params: GetUsersParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/users', params, options) as Promise\n\nexport interface PostUserParams {\n data: User\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostUserResult =\n | PostUserCreatedResult\n | PostUserUnauthorizedResult\n | PostUserUnprocessableEntityResult\n | PostUserInternalServerErrorResult\n | PostUserDefaultResult\n\ninterface PostUserCreatedResult {\n status: 201\n headers: Headers\n data: UserResponse\n}\n\ninterface PostUserUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostUserUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostUserInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostUserDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postUser = (\n params: PostUserParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/users',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetUserParams {\n userID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetUserResult = GetUserOKResult | GetUserDefaultResult\n\ninterface GetUserOKResult {\n status: 200\n headers: Headers\n data: UserResponse\n}\n\ninterface GetUserDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getUser = (\n params: GetUserParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/users/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchUserParams {\n userID: string\n\n data: User\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchUserResult =\n | PatchUserOKResult\n | PatchUserBadRequestResult\n | PatchUserUnauthorizedResult\n | PatchUserNotFoundResult\n | PatchUserInternalServerErrorResult\n | PatchUserDefaultResult\n\ninterface PatchUserOKResult {\n status: 200\n headers: Headers\n data: UserResponse\n}\n\ninterface PatchUserBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PatchUserUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PatchUserNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchUserInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PatchUserDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchUser = (\n params: PatchUserParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/users/${params.userID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteUserParams {\n userID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteUserResult =\n | DeleteUserNoContentResult\n | DeleteUserBadRequestResult\n | DeleteUserUnauthorizedResult\n | DeleteUserInternalServerErrorResult\n | DeleteUserDefaultResult\n\ninterface DeleteUserNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteUserBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteUserUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteUserInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteUserDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteUser = (\n params: DeleteUserParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/users/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface GetSetupParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetSetupResult = GetSetupOKResult\n\ninterface GetSetupOKResult {\n status: 200\n headers: Headers\n data: IsOnboarding\n}\n\nexport const getSetup = (\n params: GetSetupParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/setup', params, options) as Promise\n\nexport interface PostSetupParams {\n data: OnboardingRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostSetupResult = PostSetupCreatedResult | PostSetupDefaultResult\n\ninterface PostSetupCreatedResult {\n status: 201\n headers: Headers\n data: OnboardingResponse\n}\n\ninterface PostSetupDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postSetup = (\n params: PostSetupParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/setup',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetVariablesParams {\n query?: {\n org?: string\n orgID?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetVariablesResult =\n | GetVariablesOKResult\n | GetVariablesBadRequestResult\n | GetVariablesDefaultResult\n\ninterface GetVariablesOKResult {\n status: 200\n headers: Headers\n data: Variables\n}\n\ninterface GetVariablesBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetVariablesDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getVariables = (\n params: GetVariablesParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/variables',\n params,\n options\n ) as Promise\n\nexport interface PostVariableParams {\n data: Variable\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostVariableResult = PostVariableCreatedResult | PostVariableDefaultResult\n\ninterface PostVariableCreatedResult {\n status: 201\n headers: Headers\n data: Variable\n}\n\ninterface PostVariableDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postVariable = (\n params: PostVariableParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/variables',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetVariableParams {\n variableID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetVariableResult =\n | GetVariableOKResult\n | GetVariableNotFoundResult\n | GetVariableDefaultResult\n\ninterface GetVariableOKResult {\n status: 200\n headers: Headers\n data: Variable\n}\n\ninterface GetVariableNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetVariableDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getVariable = (\n params: GetVariableParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/variables/${params.variableID}`,\n params,\n options\n ) as Promise\n\nexport interface PutVariableParams {\n variableID: string\n\n data: Variable\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PutVariableResult = PutVariableOKResult | PutVariableDefaultResult\n\ninterface PutVariableOKResult {\n status: 200\n headers: Headers\n data: Variable\n}\n\ninterface PutVariableDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putVariable = (\n params: PutVariableParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2/variables/${params.variableID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PatchVariableParams {\n variableID: string\n\n data: Variable\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchVariableResult = PatchVariableOKResult | PatchVariableDefaultResult\n\ninterface PatchVariableOKResult {\n status: 200\n headers: Headers\n data: Variable\n}\n\ninterface PatchVariableDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchVariable = (\n params: PatchVariableParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/variables/${params.variableID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteVariableParams {\n variableID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteVariableResult =\n | DeleteVariableNoContentResult\n | DeleteVariableDefaultResult\n\ninterface DeleteVariableNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteVariableDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteVariable = (\n params: DeleteVariableParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/variables/${params.variableID}`,\n params,\n options\n ) as Promise\n\nexport interface GetSourcesParams {\n query?: {\n org?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetSourcesResult = GetSourcesOKResult | GetSourcesDefaultResult\n\ninterface GetSourcesOKResult {\n status: 200\n headers: Headers\n data: Sources\n}\n\ninterface GetSourcesDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getSources = (\n params: GetSourcesParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/sources',\n params,\n options\n ) as Promise\n\nexport interface PostSourceParams {\n data: Source\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostSourceResult = PostSourceCreatedResult | PostSourceDefaultResult\n\ninterface PostSourceCreatedResult {\n status: 201\n headers: Headers\n data: Source\n}\n\ninterface PostSourceDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postSource = (\n params: PostSourceParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/sources',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetSourceParams {\n sourceID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetSourceResult =\n | GetSourceOKResult\n | GetSourceNotFoundResult\n | GetSourceDefaultResult\n\ninterface GetSourceOKResult {\n status: 200\n headers: Headers\n data: Source\n}\n\ninterface GetSourceNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetSourceDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getSource = (\n params: GetSourceParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/sources/${params.sourceID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchSourceParams {\n sourceID: string\n\n data: Source\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchSourceResult =\n | PatchSourceOKResult\n | PatchSourceNotFoundResult\n | PatchSourceDefaultResult\n\ninterface PatchSourceOKResult {\n status: 200\n headers: Headers\n data: Source\n}\n\ninterface PatchSourceNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchSourceDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchSource = (\n params: PatchSourceParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/sources/${params.sourceID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteSourceParams {\n sourceID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteSourceResult =\n | DeleteSourceNoContentResult\n | DeleteSourceNotFoundResult\n | DeleteSourceDefaultResult\n\ninterface DeleteSourceNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteSourceNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteSourceDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteSource = (\n params: DeleteSourceParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/sources/${params.sourceID}`,\n params,\n options\n ) as Promise\n\nexport interface GetSourcesHealthParams {\n sourceID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetSourcesHealthResult =\n | GetSourcesHealthOKResult\n | GetSourcesHealthServiceUnavailableResult\n | GetSourcesHealthDefaultResult\n\ninterface GetSourcesHealthOKResult {\n status: 200\n headers: Headers\n data: HealthCheck\n}\n\ninterface GetSourcesHealthServiceUnavailableResult {\n status: 503\n headers: Headers\n data: HealthCheck\n}\n\ninterface GetSourcesHealthDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getSourcesHealth = (\n params: GetSourcesHealthParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/sources/${params.sourceID}/health`,\n params,\n options\n ) as Promise\n\nexport interface GetSourcesBucketsParams {\n sourceID: string\n\n query?: {\n org?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetSourcesBucketsResult =\n | GetSourcesBucketsOKResult\n | GetSourcesBucketsNotFoundResult\n | GetSourcesBucketsDefaultResult\n\ninterface GetSourcesBucketsOKResult {\n status: 200\n headers: Headers\n data: Buckets\n}\n\ninterface GetSourcesBucketsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetSourcesBucketsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getSourcesBuckets = (\n params: GetSourcesBucketsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/sources/${params.sourceID}/buckets`,\n params,\n options\n ) as Promise\n\nexport interface GetScrapersParams {\n query?: {\n name?: string\n id?: any\n orgID?: string\n org?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetScrapersResult = GetScrapersOKResult\n\ninterface GetScrapersOKResult {\n status: 200\n headers: Headers\n data: ScraperTargetResponses\n}\n\nexport const getScrapers = (\n params: GetScrapersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/scrapers',\n params,\n options\n ) as Promise\n\nexport interface PostScraperParams {\n data: ScraperTargetRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostScraperResult = PostScraperCreatedResult | PostScraperDefaultResult\n\ninterface PostScraperCreatedResult {\n status: 201\n headers: Headers\n data: ScraperTargetResponse\n}\n\ninterface PostScraperDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postScraper = (\n params: PostScraperParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/scrapers',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetScraperParams {\n scraperTargetID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetScraperResult = GetScraperOKResult | GetScraperDefaultResult\n\ninterface GetScraperOKResult {\n status: 200\n headers: Headers\n data: ScraperTargetResponse\n}\n\ninterface GetScraperDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getScraper = (\n params: GetScraperParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/scrapers/${params.scraperTargetID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchScraperParams {\n scraperTargetID: string\n\n data: ScraperTargetRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchScraperResult = PatchScraperOKResult | PatchScraperDefaultResult\n\ninterface PatchScraperOKResult {\n status: 200\n headers: Headers\n data: ScraperTargetResponse\n}\n\ninterface PatchScraperDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchScraper = (\n params: PatchScraperParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/scrapers/${params.scraperTargetID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteScraperParams {\n scraperTargetID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteScraperResult =\n | DeleteScraperNoContentResult\n | DeleteScraperDefaultResult\n\ninterface DeleteScraperNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteScraperDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteScraper = (\n params: DeleteScraperParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/scrapers/${params.scraperTargetID}`,\n params,\n options\n ) as Promise\n\nexport interface GetScrapersLabelsParams {\n scraperTargetID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetScrapersLabelsResult =\n | GetScrapersLabelsOKResult\n | GetScrapersLabelsDefaultResult\n\ninterface GetScrapersLabelsOKResult {\n status: 200\n headers: Headers\n data: LabelsResponse\n}\n\ninterface GetScrapersLabelsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getScrapersLabels = (\n params: GetScrapersLabelsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/scrapers/${params.scraperTargetID}/labels`,\n params,\n options\n ) as Promise\n\nexport interface PostScrapersLabelParams {\n scraperTargetID: string\n\n data: LabelMapping\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostScrapersLabelResult =\n | PostScrapersLabelCreatedResult\n | PostScrapersLabelDefaultResult\n\ninterface PostScrapersLabelCreatedResult {\n status: 201\n headers: Headers\n data: LabelResponse\n}\n\ninterface PostScrapersLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postScrapersLabel = (\n params: PostScrapersLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/scrapers/${params.scraperTargetID}/labels`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteScrapersLabelParams {\n scraperTargetID: string\n labelID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteScrapersLabelResult =\n | DeleteScrapersLabelNoContentResult\n | DeleteScrapersLabelNotFoundResult\n | DeleteScrapersLabelDefaultResult\n\ninterface DeleteScrapersLabelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteScrapersLabelNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteScrapersLabelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteScrapersLabel = (\n params: DeleteScrapersLabelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/scrapers/${params.scraperTargetID}/labels/${params.labelID}`,\n params,\n options\n ) as Promise\n\nexport interface GetScrapersMembersParams {\n scraperTargetID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetScrapersMembersResult =\n | GetScrapersMembersOKResult\n | GetScrapersMembersDefaultResult\n\ninterface GetScrapersMembersOKResult {\n status: 200\n headers: Headers\n data: ResourceMembers\n}\n\ninterface GetScrapersMembersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getScrapersMembers = (\n params: GetScrapersMembersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/scrapers/${params.scraperTargetID}/members`,\n params,\n options\n ) as Promise\n\nexport interface PostScrapersMemberParams {\n scraperTargetID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostScrapersMemberResult =\n | PostScrapersMemberCreatedResult\n | PostScrapersMemberDefaultResult\n\ninterface PostScrapersMemberCreatedResult {\n status: 201\n headers: Headers\n data: ResourceMember\n}\n\ninterface PostScrapersMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postScrapersMember = (\n params: PostScrapersMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/scrapers/${params.scraperTargetID}/members`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteScrapersMemberParams {\n userID: string\n scraperTargetID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteScrapersMemberResult =\n | DeleteScrapersMemberNoContentResult\n | DeleteScrapersMemberDefaultResult\n\ninterface DeleteScrapersMemberNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteScrapersMemberDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteScrapersMember = (\n params: DeleteScrapersMemberParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/scrapers/${params.scraperTargetID}/members/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface GetScrapersOwnersParams {\n scraperTargetID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetScrapersOwnersResult =\n | GetScrapersOwnersOKResult\n | GetScrapersOwnersDefaultResult\n\ninterface GetScrapersOwnersOKResult {\n status: 200\n headers: Headers\n data: ResourceOwners\n}\n\ninterface GetScrapersOwnersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getScrapersOwners = (\n params: GetScrapersOwnersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/scrapers/${params.scraperTargetID}/owners`,\n params,\n options\n ) as Promise\n\nexport interface PostScrapersOwnerParams {\n scraperTargetID: string\n\n data: AddResourceMemberRequestBody\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostScrapersOwnerResult =\n | PostScrapersOwnerCreatedResult\n | PostScrapersOwnerDefaultResult\n\ninterface PostScrapersOwnerCreatedResult {\n status: 201\n headers: Headers\n data: ResourceOwner\n}\n\ninterface PostScrapersOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postScrapersOwner = (\n params: PostScrapersOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/scrapers/${params.scraperTargetID}/owners`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteScrapersOwnerParams {\n userID: string\n scraperTargetID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteScrapersOwnerResult =\n | DeleteScrapersOwnerNoContentResult\n | DeleteScrapersOwnerDefaultResult\n\ninterface DeleteScrapersOwnerNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteScrapersOwnerDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteScrapersOwner = (\n params: DeleteScrapersOwnerParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/scrapers/${params.scraperTargetID}/owners/${params.userID}`,\n params,\n options\n ) as Promise\n\nexport interface GetBackupKvParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetBackupKvResult = GetBackupKvOKResult | GetBackupKvDefaultResult\n\ninterface GetBackupKvOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetBackupKvDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBackupKv = (\n params: GetBackupKvParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/backup/kv',\n params,\n options\n ) as Promise\n\nexport interface GetBackupMetadataParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n 'Accept-Encoding'?: string\n }\n}\n\ntype GetBackupMetadataResult =\n | GetBackupMetadataOKResult\n | GetBackupMetadataDefaultResult\n\ninterface GetBackupMetadataOKResult {\n status: 200\n headers: Headers\n data: MetadataBackup\n}\n\ninterface GetBackupMetadataDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBackupMetadata = (\n params: GetBackupMetadataParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/backup/metadata',\n params,\n options\n ) as Promise\n\nexport interface GetBackupShardParams {\n shardID: number\n\n query?: {\n since?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n 'Accept-Encoding'?: string\n }\n}\n\ntype GetBackupShardResult =\n | GetBackupShardOKResult\n | GetBackupShardNotFoundResult\n | GetBackupShardDefaultResult\n\ninterface GetBackupShardOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetBackupShardNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetBackupShardDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBackupShard = (\n params: GetBackupShardParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/backup/shards/${params.shardID}`,\n params,\n options\n ) as Promise\n\nexport interface PostRestoreKvParams {\n data: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n 'Content-Encoding'?: string\n 'Content-Type'?: string\n }\n}\n\ntype PostRestoreKvResult =\n | PostRestoreKvOKResult\n | PostRestoreKvNoContentResult\n | PostRestoreKvDefaultResult\n\ninterface PostRestoreKvOKResult {\n status: 200\n headers: Headers\n data: {\n token?: string\n }\n}\n\ninterface PostRestoreKvNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostRestoreKvDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postRestoreKv = (\n params: PostRestoreKvParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/restore/kv',\n {...params, headers: {...params.headers, 'Content-Type': 'text/plain'}},\n options\n ) as Promise\n\nexport interface PostRestoreSqlParams {\n data: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n 'Content-Encoding'?: string\n 'Content-Type'?: string\n }\n}\n\ntype PostRestoreSqlResult =\n | PostRestoreSqlNoContentResult\n | PostRestoreSqlDefaultResult\n\ninterface PostRestoreSqlNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostRestoreSqlDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postRestoreSql = (\n params: PostRestoreSqlParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/restore/sql',\n {...params, headers: {...params.headers, 'Content-Type': 'text/plain'}},\n options\n ) as Promise\n\nexport interface PostRestoreBucketParams {\n bucketID: string\n\n data: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n 'Content-Type'?: string\n }\n}\n\ntype PostRestoreBucketResult =\n | PostRestoreBucketOKResult\n | PostRestoreBucketDefaultResult\n\ninterface PostRestoreBucketOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface PostRestoreBucketDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postRestoreBucket = (\n params: PostRestoreBucketParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/restore/bucket/${params.bucketID}`,\n {...params, headers: {...params.headers, 'Content-Type': 'text/plain'}},\n options\n ) as Promise\n\nexport interface PostRestoreBucketMetadataParams {\n data: BucketMetadataManifest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostRestoreBucketMetadataResult =\n | PostRestoreBucketMetadataCreatedResult\n | PostRestoreBucketMetadataDefaultResult\n\ninterface PostRestoreBucketMetadataCreatedResult {\n status: 201\n headers: Headers\n data: RestoredBucketMappings\n}\n\ninterface PostRestoreBucketMetadataDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postRestoreBucketMetadata = (\n params: PostRestoreBucketMetadataParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/restore/bucketMetadata',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PostRestoreShardsParams {\n shardID: string\n\n data: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n 'Content-Encoding'?: string\n 'Content-Type'?: string\n }\n}\n\ntype PostRestoreShardsResult =\n | PostRestoreShardsNoContentResult\n | PostRestoreShardsDefaultResult\n\ninterface PostRestoreShardsNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostRestoreShardsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postRestoreShards = (\n params: PostRestoreShardsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/restore/shards/${params.shardID}`,\n {...params, headers: {...params.headers, 'Content-Type': 'text/plain'}},\n options\n ) as Promise\n\nexport interface GetConfigParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetConfigResult =\n | GetConfigOKResult\n | GetConfigUnauthorizedResult\n | GetConfigDefaultResult\n\ninterface GetConfigOKResult {\n status: 200\n headers: Headers\n data: Config\n}\n\ninterface GetConfigUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetConfigDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getConfig = (\n params: GetConfigParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/config', params, options) as Promise\n\nexport interface GetRemotesParams {\n query: {\n orgID: string\n name?: string\n remoteURL?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetRemotesResult =\n | GetRemotesOKResult\n | GetRemotesNotFoundResult\n | GetRemotesDefaultResult\n\ninterface GetRemotesOKResult {\n status: 200\n headers: Headers\n data: RemoteConnections\n}\n\ninterface GetRemotesNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetRemotesDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getRemotes = (\n params: GetRemotesParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/remotes',\n params,\n options\n ) as Promise\n\nexport interface PostRemoteParams {\n data: RemoteConnectionCreationRequest\n}\n\ntype PostRemoteResult =\n | PostRemoteCreatedResult\n | PostRemoteBadRequestResult\n | PostRemoteDefaultResult\n\ninterface PostRemoteCreatedResult {\n status: 201\n headers: Headers\n data: RemoteConnection\n}\n\ninterface PostRemoteBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostRemoteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postRemote = (\n params: PostRemoteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/remotes',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetRemoteParams {\n remoteID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetRemoteResult =\n | GetRemoteOKResult\n | GetRemoteNotFoundResult\n | GetRemoteDefaultResult\n\ninterface GetRemoteOKResult {\n status: 200\n headers: Headers\n data: RemoteConnection\n}\n\ninterface GetRemoteNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetRemoteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getRemote = (\n params: GetRemoteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/remotes/${params.remoteID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchRemoteParams {\n remoteID: string\n\n data: RemoteConnectionUpdateRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchRemoteResult =\n | PatchRemoteOKResult\n | PatchRemoteBadRequestResult\n | PatchRemoteNotFoundResult\n | PatchRemoteDefaultResult\n\ninterface PatchRemoteOKResult {\n status: 200\n headers: Headers\n data: RemoteConnection\n}\n\ninterface PatchRemoteBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PatchRemoteNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchRemoteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchRemote = (\n params: PatchRemoteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/remotes/${params.remoteID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteRemoteParams {\n remoteID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteRemoteResult =\n | DeleteRemoteNoContentResult\n | DeleteRemoteNotFoundResult\n | DeleteRemoteDefaultResult\n\ninterface DeleteRemoteNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteRemoteNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteRemoteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteRemote = (\n params: DeleteRemoteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/remotes/${params.remoteID}`,\n params,\n options\n ) as Promise\n\nexport interface GetReplicationsParams {\n query: {\n orgID: string\n name?: string\n remoteID?: string\n localBucketID?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetReplicationsResult =\n | GetReplicationsOKResult\n | GetReplicationsNotFoundResult\n | GetReplicationsDefaultResult\n\ninterface GetReplicationsOKResult {\n status: 200\n headers: Headers\n data: Replications\n}\n\ninterface GetReplicationsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetReplicationsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getReplications = (\n params: GetReplicationsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/replications',\n params,\n options\n ) as Promise\n\nexport interface PostReplicationParams {\n data: ReplicationCreationRequest\n\n query?: {\n validate?: any\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostReplicationResult =\n | PostReplicationCreatedResult\n | PostReplicationNoContentResult\n | PostReplicationBadRequestResult\n | PostReplicationDefaultResult\n\ninterface PostReplicationCreatedResult {\n status: 201\n headers: Headers\n data: Replication\n}\n\ninterface PostReplicationNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostReplicationBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostReplicationDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postReplication = (\n params: PostReplicationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/replications',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetReplicationParams {\n replicationID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetReplicationResult =\n | GetReplicationOKResult\n | GetReplicationNotFoundResult\n | GetReplicationDefaultResult\n\ninterface GetReplicationOKResult {\n status: 200\n headers: Headers\n data: Replication\n}\n\ninterface GetReplicationNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetReplicationDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getReplication = (\n params: GetReplicationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/replications/${params.replicationID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchReplicationParams {\n replicationID: string\n\n data: ReplicationUpdateRequest\n\n query?: {\n validate?: any\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchReplicationResult =\n | PatchReplicationOKResult\n | PatchReplicationNoContentResult\n | PatchReplicationBadRequestResult\n | PatchReplicationNotFoundResult\n | PatchReplicationDefaultResult\n\ninterface PatchReplicationOKResult {\n status: 200\n headers: Headers\n data: Replication\n}\n\ninterface PatchReplicationNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PatchReplicationBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PatchReplicationNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchReplicationDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchReplication = (\n params: PatchReplicationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/replications/${params.replicationID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteReplicationParams {\n replicationID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteReplicationResult =\n | DeleteReplicationNoContentResult\n | DeleteReplicationNotFoundResult\n | DeleteReplicationDefaultResult\n\ninterface DeleteReplicationNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteReplicationNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteReplicationDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteReplication = (\n params: DeleteReplicationParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/replications/${params.replicationID}`,\n params,\n options\n ) as Promise\n\nexport interface PostReplicationsValidateParams {\n replicationID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostReplicationsValidateResult =\n | PostReplicationsValidateNoContentResult\n | PostReplicationsValidateBadRequestResult\n | PostReplicationsValidateDefaultResult\n\ninterface PostReplicationsValidateNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostReplicationsValidateBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostReplicationsValidateDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postReplicationsValidate = (\n params: PostReplicationsValidateParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/replications/${params.replicationID}/validate`,\n params,\n options\n ) as Promise\n\nexport interface GetDashboardsParams {\n query?: {\n offset?: number\n limit?: number\n descending?: any\n owner?: string\n sortBy?: string\n id?: any\n orgID?: string\n org?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetDashboardsResult = GetDashboardsOKResult | GetDashboardsDefaultResult\n\ninterface GetDashboardsOKResult {\n status: 200\n headers: Headers\n data: Dashboards\n}\n\ninterface GetDashboardsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getDashboards = (\n params: GetDashboardsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/dashboards',\n params,\n options\n ) as Promise\n\nexport interface PostDashboardParams {\n data: CreateDashboardRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostDashboardResult =\n | PostDashboardCreatedResult\n | PostDashboardDefaultResult\n\ninterface PostDashboardCreatedResult {\n status: 201\n headers: Headers\n data: Dashboard | DashboardWithViewProperties\n}\n\ninterface PostDashboardDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postDashboard = (\n params: PostDashboardParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/dashboards',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetTasksParams {\n query?: {\n name?: string\n after?: string\n user?: string\n org?: string\n orgID?: string\n status?: string\n limit?: number\n type?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTasksResult =\n | GetTasksOKResult\n | GetTasksUnauthorizedResult\n | GetTasksInternalServerErrorResult\n | GetTasksDefaultResult\n\ninterface GetTasksOKResult {\n status: 200\n headers: Headers\n data: Tasks\n}\n\ninterface GetTasksUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetTasksInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetTasksDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTasks = (\n params: GetTasksParams,\n options: RequestOptions = {}\n): Promise =>\n request('GET', '/api/v2/tasks', params, options) as Promise\n\nexport interface PostTaskParams {\n data: TaskCreateRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostTaskResult =\n | PostTaskCreatedResult\n | PostTaskBadRequestResult\n | PostTaskUnauthorizedResult\n | PostTaskInternalServerErrorResult\n | PostTaskDefaultResult\n\ninterface PostTaskCreatedResult {\n status: 201\n headers: Headers\n data: Task\n}\n\ninterface PostTaskBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostTaskUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PostTaskInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PostTaskDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postTask = (\n params: PostTaskParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/tasks',\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetTaskParams {\n taskID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetTaskResult =\n | GetTaskOKResult\n | GetTaskBadRequestResult\n | GetTaskUnauthorizedResult\n | GetTaskNotFoundResult\n | GetTaskInternalServerErrorResult\n | GetTaskDefaultResult\n\ninterface GetTaskOKResult {\n status: 200\n headers: Headers\n data: Task\n}\n\ninterface GetTaskBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetTaskUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface GetTaskNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetTaskInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface GetTaskDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getTask = (\n params: GetTaskParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/tasks/${params.taskID}`,\n params,\n options\n ) as Promise\n\nexport interface PatchTaskParams {\n taskID: string\n\n data: TaskUpdateRequest\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchTaskResult =\n | PatchTaskOKResult\n | PatchTaskBadRequestResult\n | PatchTaskUnauthorizedResult\n | PatchTaskNotFoundResult\n | PatchTaskInternalServerErrorResult\n | PatchTaskDefaultResult\n\ninterface PatchTaskOKResult {\n status: 200\n headers: Headers\n data: Task\n}\n\ninterface PatchTaskBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PatchTaskUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface PatchTaskNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PatchTaskInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface PatchTaskDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchTask = (\n params: PatchTaskParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/tasks/${params.taskID}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteTaskParams {\n taskID: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteTaskResult =\n | DeleteTaskNoContentResult\n | DeleteTaskBadRequestResult\n | DeleteTaskUnauthorizedResult\n | DeleteTaskNotFoundResult\n | DeleteTaskInternalServerErrorResult\n | DeleteTaskDefaultResult\n\ninterface DeleteTaskNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteTaskBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteTaskUnauthorizedResult {\n status: 401\n headers: Headers\n data: {\n readonly code?: 'unauthorized'\n readonly message?: string\n }\n}\n\ninterface DeleteTaskNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteTaskInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\ninterface DeleteTaskDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteTask = (\n params: DeleteTaskParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/tasks/${params.taskID}`,\n params,\n options\n ) as Promise\n","import {\n setRequestHandler,\n setResponseHandler,\n postSignout,\n} from './generatedRoutes'\nimport {getAPIBasepath} from 'src/utils/basepath'\n\nsetRequestHandler((url: string, query: string, init: RequestInit) => {\n return {\n url: `${getAPIBasepath()}${url}`,\n query,\n init,\n }\n})\n\nsetResponseHandler((status, headers, data) => {\n // if the user is inactive log them out\n // influxdb/http/authentication_middleware.go\n if (status === 403 && data.message === 'User is inactive') {\n postSignout({})\n window.location.href = '/signin'\n }\n\n return {status, headers, data}\n})\n\nexport * from './generatedRoutes'\n","// This file is generated by [oats][0] and should not be edited by hand.\n//\n// [0]: https://github.com/influxdata/oats\n\nexport interface Notebooks {\n flows?: Notebook[]\n}\n\nexport interface Notebook {\n id?: string\n isDirty?: boolean\n name?: string\n orgID?: string\n spec?: any\n createdAt?: string\n createdBy?: string\n updatedAt?: string\n}\n\nexport interface Error {\n readonly code:\n | 'internal error'\n | 'not found'\n | 'conflict'\n | 'invalid'\n | 'unprocessable entity'\n | 'empty value'\n | 'unavailable'\n | 'forbidden'\n | 'too many requests'\n | 'unauthorized'\n | 'method not allowed'\n | 'request too large'\n | 'unsupported media type'\n readonly message?: string\n readonly op?: string\n readonly err?: string\n}\n\nexport interface NotebookParams {\n name?: string\n orgID?: string\n spec?: any\n}\n\nexport interface NotebookVersion {\n notebookVersion?: Notebook\n}\n\nexport type VersionHistories = VersionHistory[]\n\nexport interface VersionHistory {\n id: string\n publishedAt: string\n publishedBy: string\n}\n\nexport type Shares = Share[]\n\nexport interface Share {\n id?: string\n orgID?: string\n notebookID?: string\n accessID?: string\n region?: string\n createdAt?: string\n updatedAt?: string\n}\n\nexport interface ShareParams {\n notebookID?: string\n orgID?: string\n region?: string\n}\n\ninterface RequestOptions {\n signal?: AbortSignal\n}\n\nexport type RequestHandler = (\n url: string,\n query: string,\n init: RequestInit\n) => {url: string; query: string; init: RequestInit}\nexport type ResponseHandler = (\n status: number,\n headers: Headers,\n data: any\n) => {status: number; headers: Headers; data: any}\n\nconst RequestContext = function (\n requestHandler: RequestHandler,\n responseHandler: ResponseHandler\n) {\n this.requestHandler = requestHandler\n this.responseHandler = responseHandler\n}\n\nRequestContext.prototype.request = async function (\n method: string,\n url: string,\n params: any = {},\n options: RequestOptions = {}\n): Promise {\n const requestHeaders = new Headers(params.headers)\n const contentType = requestHeaders.get('Content-Type') || ''\n\n if (params.auth) {\n const credentials = btoa(`${params.auth.username}:${params.auth.password}`)\n\n requestHeaders.append('Authorization', `Basic ${credentials}`)\n }\n\n const body =\n params.data && contentType.includes('json')\n ? JSON.stringify(params.data)\n : params.data\n\n const query = params.query ? `?${new URLSearchParams(params.query)}` : ''\n\n const {\n url: middlewareUrl,\n query: middlewareQuery,\n init,\n } = this.requestHandler(url, query, {\n method,\n body,\n credentials: 'same-origin',\n signal: options.signal,\n headers: requestHeaders,\n })\n\n const response = await fetch(`${middlewareUrl}${middlewareQuery}`, init)\n\n const {status, headers} = response\n const responseContentType = headers.get('Content-Type') || ''\n\n let data\n\n if (responseContentType.includes('json')) {\n data = await response.json()\n } else if (responseContentType.includes('octet-stream')) {\n data = await response.blob()\n } else {\n data = await response.text()\n }\n\n return this.responseHandler(status, headers, data)\n}\n\nRequestContext.prototype.setRequestHandler = function (\n requestHandler: RequestHandler\n) {\n this.requestHandler = requestHandler\n}\n\nRequestContext.prototype.setResponseHandler = function (\n responseHandler: ResponseHandler\n) {\n this.responseHandler = responseHandler\n}\n\nconst rc = new RequestContext(\n (url, query, init) => {\n return {url, query, init}\n },\n (status, headers, data) => {\n return {status, headers, data}\n }\n)\nconst request = rc.request.bind(rc)\nconst setRequestHandler = rc.setRequestHandler.bind(rc)\nconst setResponseHandler = rc.setResponseHandler.bind(rc)\n\nexport {request, setRequestHandler, setResponseHandler}\n\nexport interface GetNotebooksParams {\n query: {\n orgID: string\n }\n}\n\ntype GetNotebooksResult =\n | GetNotebooksOKResult\n | GetNotebooksUnauthorizedResult\n | GetNotebooksInternalServerErrorResult\n\ninterface GetNotebooksOKResult {\n status: 200\n headers: Headers\n data: Notebooks\n}\n\ninterface GetNotebooksUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetNotebooksInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotebooks = (\n params: GetNotebooksParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2private/notebooks',\n params,\n options\n ) as Promise\n\nexport interface PostNotebookParams {\n data: NotebookParams\n}\n\ntype PostNotebookResult =\n | PostNotebookOKResult\n | PostNotebookBadRequestResult\n | PostNotebookUnauthorizedResult\n | PostNotebookInternalServerErrorResult\n\ninterface PostNotebookOKResult {\n status: 200\n headers: Headers\n data: Notebook\n}\n\ninterface PostNotebookBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostNotebookUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostNotebookInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postNotebook = (\n params: PostNotebookParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2private/notebooks',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetNotebooksVersionParams {\n notebookID: string\n id: string\n}\n\ntype GetNotebooksVersionResult =\n | GetNotebooksVersionOKResult\n | GetNotebooksVersionBadRequestResult\n | GetNotebooksVersionUnauthorizedResult\n | GetNotebooksVersionInternalServerErrorResult\n\ninterface GetNotebooksVersionOKResult {\n status: 200\n headers: Headers\n data: NotebookVersion\n}\n\ninterface GetNotebooksVersionBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetNotebooksVersionUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetNotebooksVersionInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotebooksVersion = (\n params: GetNotebooksVersionParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/notebooks/${params.notebookID}/versions/${params.id}`,\n params,\n options\n ) as Promise\n\nexport interface GetNotebooksVersionsParams {\n id: string\n}\n\ntype GetNotebooksVersionsResult =\n | GetNotebooksVersionsOKResult\n | GetNotebooksVersionsBadRequestResult\n | GetNotebooksVersionsUnauthorizedResult\n | GetNotebooksVersionsInternalServerErrorResult\n\ninterface GetNotebooksVersionsOKResult {\n status: 200\n headers: Headers\n data: VersionHistories\n}\n\ninterface GetNotebooksVersionsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetNotebooksVersionsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetNotebooksVersionsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotebooksVersions = (\n params: GetNotebooksVersionsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/notebooks/${params.id}/versions`,\n params,\n options\n ) as Promise\n\nexport interface PostNotebooksVersionParams {\n id: string\n}\n\ntype PostNotebooksVersionResult =\n | PostNotebooksVersionOKResult\n | PostNotebooksVersionBadRequestResult\n | PostNotebooksVersionUnauthorizedResult\n | PostNotebooksVersionNotFoundResult\n | PostNotebooksVersionInternalServerErrorResult\n\ninterface PostNotebooksVersionOKResult {\n status: 200\n headers: Headers\n data: any\n}\n\ninterface PostNotebooksVersionBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostNotebooksVersionUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostNotebooksVersionNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostNotebooksVersionInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postNotebooksVersion = (\n params: PostNotebooksVersionParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2private/notebooks/${params.id}/versions`,\n params,\n options\n ) as Promise\n\nexport interface PostNotebooksCloneParams {\n id: string\n\n data?: {\n orgID?: string\n }\n}\n\ntype PostNotebooksCloneResult =\n | PostNotebooksCloneOKResult\n | PostNotebooksCloneBadRequestResult\n | PostNotebooksCloneUnauthorizedResult\n | PostNotebooksCloneNotFoundResult\n | PostNotebooksCloneInternalServerErrorResult\n\ninterface PostNotebooksCloneOKResult {\n status: 200\n headers: Headers\n data: Notebook\n}\n\ninterface PostNotebooksCloneBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostNotebooksCloneUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostNotebooksCloneNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostNotebooksCloneInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postNotebooksClone = (\n params: PostNotebooksCloneParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2private/notebooks/${params.id}/clone`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetNotebookParams {\n id: string\n}\n\ntype GetNotebookResult =\n | GetNotebookOKResult\n | GetNotebookBadRequestResult\n | GetNotebookUnauthorizedResult\n | GetNotebookInternalServerErrorResult\n\ninterface GetNotebookOKResult {\n status: 200\n headers: Headers\n data: Notebook\n}\n\ninterface GetNotebookBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetNotebookUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetNotebookInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotebook = (\n params: GetNotebookParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/notebooks/${params.id}`,\n params,\n options\n ) as Promise\n\nexport interface PutNotebookParams {\n id: string\n\n data: NotebookParams\n}\n\ntype PutNotebookResult =\n | PutNotebookOKResult\n | PutNotebookBadRequestResult\n | PutNotebookUnauthorizedResult\n | PutNotebookInternalServerErrorResult\n\ninterface PutNotebookOKResult {\n status: 200\n headers: Headers\n data: Notebook\n}\n\ninterface PutNotebookBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PutNotebookUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PutNotebookInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putNotebook = (\n params: PutNotebookParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2private/notebooks/${params.id}`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PatchNotebookParams {\n id: string\n\n data: NotebookParams\n}\n\ntype PatchNotebookResult =\n | PatchNotebookOKResult\n | PatchNotebookBadRequestResult\n | PatchNotebookUnauthorizedResult\n | PatchNotebookInternalServerErrorResult\n\ninterface PatchNotebookOKResult {\n status: 200\n headers: Headers\n data: Notebook\n}\n\ninterface PatchNotebookBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PatchNotebookUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PatchNotebookInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchNotebook = (\n params: PatchNotebookParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2private/notebooks/${params.id}`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface DeleteNotebookParams {\n id: string\n}\n\ntype DeleteNotebookResult =\n | DeleteNotebookNoContentResult\n | DeleteNotebookBadRequestResult\n | DeleteNotebookUnauthorizedResult\n | DeleteNotebookNotFoundResult\n | DeleteNotebookInternalServerErrorResult\n\ninterface DeleteNotebookNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteNotebookBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotebookUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotebookNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotebookInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteNotebook = (\n params: DeleteNotebookParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2private/notebooks/${params.id}`,\n params,\n options\n ) as Promise\n\nexport interface GetNotebooksShareParams {\n query: {\n orgID: string\n notebookID?: string\n }\n}\n\ntype GetNotebooksShareResult =\n | GetNotebooksShareOKResult\n | GetNotebooksShareUnauthorizedResult\n | GetNotebooksShareInternalServerErrorResult\n\ninterface GetNotebooksShareOKResult {\n status: 200\n headers: Headers\n data: Shares\n}\n\ninterface GetNotebooksShareUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetNotebooksShareInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getNotebooksShare = (\n params: GetNotebooksShareParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2private/notebooks/share',\n params,\n options\n ) as Promise\n\nexport interface PostNotebooksShareParams {\n data: ShareParams\n}\n\ntype PostNotebooksShareResult =\n | PostNotebooksShareOKResult\n | PostNotebooksShareBadRequestResult\n | PostNotebooksShareUnauthorizedResult\n | PostNotebooksShareInternalServerErrorResult\n\ninterface PostNotebooksShareOKResult {\n status: 200\n headers: Headers\n data: Share\n}\n\ninterface PostNotebooksShareBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostNotebooksShareUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostNotebooksShareInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postNotebooksShare = (\n params: PostNotebooksShareParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2private/notebooks/share',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface DeleteNotebooksShareParams {\n id: string\n}\n\ntype DeleteNotebooksShareResult =\n | DeleteNotebooksShareNoContentResult\n | DeleteNotebooksShareBadRequestResult\n | DeleteNotebooksShareUnauthorizedResult\n | DeleteNotebooksShareNotFoundResult\n | DeleteNotebooksShareInternalServerErrorResult\n\ninterface DeleteNotebooksShareNoContentResult {\n status: 204\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotebooksShareBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotebooksShareUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotebooksShareNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteNotebooksShareInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteNotebooksShare = (\n params: DeleteNotebooksShareParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2private/notebooks/share/${params.id}`,\n params,\n options\n ) as Promise\n\nexport interface GetApiShareQueryParams {\n id: string\n pipeID: string\n}\n\ntype GetApiShareQueryResult =\n | GetApiShareQueryOKResult\n | GetApiShareQueryBadRequestResult\n | GetApiShareQueryUnauthorizedResult\n | GetApiShareQueryInternalServerErrorResult\n\ninterface GetApiShareQueryOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetApiShareQueryBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetApiShareQueryUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetApiShareQueryInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getApiShareQuery = (\n params: GetApiShareQueryParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/api/share/${params.id}/query/${params.pipeID}`,\n params,\n options\n ) as Promise\n\nexport interface GetApiShareParams {\n id: string\n}\n\ntype GetApiShareResult =\n | GetApiShareOKResult\n | GetApiShareBadRequestResult\n | GetApiShareUnauthorizedResult\n | GetApiShareInternalServerErrorResult\n\ninterface GetApiShareOKResult {\n status: 200\n headers: Headers\n data: Notebook\n}\n\ninterface GetApiShareBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetApiShareUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetApiShareInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getApiShare = (\n params: GetApiShareParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/api/share/${params.id}`,\n params,\n options\n ) as Promise\n","// This file is generated by [oats][0] and should not be edited by hand.\n//\n// [0]: https://github.com/influxdata/oats\n\nexport interface Subscriptions {\n subscriptions?: Subscription[]\n}\n\nexport interface Subscription {\n id?: string\n name?: string\n description?: string\n protocol?: string\n orgID?: string\n processGroupId?: string\n brokerHost?: string\n brokerPort?: number\n brokerUsername?: string\n topic?: string\n brokerCertCreationDate?: string\n authType?: 'none' | 'user' | 'certificate'\n dataFormat?: string\n jsonMeasurementKey?: {\n path?: string\n name?: string\n type?: string\n }\n jsonFieldKeys?: JsonSpec[]\n jsonTagKeys?: JsonSpec[]\n jsonTimestamp?: {\n path?: string\n name?: string\n type?: string\n }\n stringMeasurement?: {\n pattern?: string\n }\n stringFields?: StringObjectParams[]\n stringTags?: StringObjectParams[]\n stringTimestamp?: {\n pattern?: string\n }\n status?: string\n bucket?: string\n isActive?: boolean\n createdAt?: string\n updatedAt?: string\n tokenID?: string\n token?: string\n timestampPrecision?: string\n clientID?: string\n useSSL?: boolean\n}\n\nexport interface JsonSpec {\n path?: string\n name?: string\n type?: string\n}\n\nexport interface StringObjectParams {\n pattern?: string\n name?: string\n}\n\nexport interface Error {\n readonly code:\n | 'internal error'\n | 'not found'\n | 'conflict'\n | 'invalid'\n | 'unprocessable entity'\n | 'empty value'\n | 'unavailable'\n | 'forbidden'\n | 'too many requests'\n | 'unauthorized'\n | 'method not allowed'\n | 'request too large'\n | 'unsupported media type'\n readonly message?: string\n readonly op?: string\n readonly err?: string\n}\n\nexport interface SubscriptionParams {\n protocol?: string\n name?: string\n description?: string\n orgID?: string\n brokerHost?: string\n brokerPort?: number\n brokerUsername?: string\n brokerPassword?: string\n brokerCACert?: string\n brokerClientCert?: string\n brokerClientKey?: string\n authType?: 'none' | 'user' | 'certificate'\n topic?: string\n dataFormat?: string\n jsonMeasurementKey?: {\n path?: string\n name?: string\n type?: string\n }\n jsonFieldKeys?: JsonSpec[]\n jsonTagKeys?: JsonSpec[]\n jsonTimestamp?: {\n path?: string\n name?: string\n type?: string\n }\n stringMeasurement?: {\n pattern?: string\n }\n stringFields?: StringObjectParams[]\n stringTags?: StringObjectParams[]\n stringTimestamp?: {\n pattern?: string\n }\n bucket?: string\n isActive?: boolean\n timestampPrecision?: string\n clientID?: string\n useSSL?: boolean\n}\n\nexport interface SubscriptionRunStatus {\n isActive?: boolean\n}\n\nexport interface SubscriptionStatus {\n isActive?: boolean\n processors?: any\n processGroupID?: string\n id: string\n}\n\nexport interface SubscriptionStatusArray {\n subscriptions?: SubscriptionStatus[]\n}\n\ninterface RequestOptions {\n signal?: AbortSignal\n}\n\nexport type RequestHandler = (\n url: string,\n query: string,\n init: RequestInit\n) => {url: string; query: string; init: RequestInit}\nexport type ResponseHandler = (\n status: number,\n headers: Headers,\n data: any\n) => {status: number; headers: Headers; data: any}\n\nconst RequestContext = function (\n requestHandler: RequestHandler,\n responseHandler: ResponseHandler\n) {\n this.requestHandler = requestHandler\n this.responseHandler = responseHandler\n}\n\nRequestContext.prototype.request = async function (\n method: string,\n url: string,\n params: any = {},\n options: RequestOptions = {}\n): Promise {\n const requestHeaders = new Headers(params.headers)\n const contentType = requestHeaders.get('Content-Type') || ''\n\n if (params.auth) {\n const credentials = btoa(`${params.auth.username}:${params.auth.password}`)\n\n requestHeaders.append('Authorization', `Basic ${credentials}`)\n }\n\n const body =\n params.data && contentType.includes('json')\n ? JSON.stringify(params.data)\n : params.data\n\n const query = params.query ? `?${new URLSearchParams(params.query)}` : ''\n\n const {\n url: middlewareUrl,\n query: middlewareQuery,\n init,\n } = this.requestHandler(url, query, {\n method,\n body,\n credentials: 'same-origin',\n signal: options.signal,\n headers: requestHeaders,\n })\n\n const response = await fetch(`${middlewareUrl}${middlewareQuery}`, init)\n\n const {status, headers} = response\n const responseContentType = headers.get('Content-Type') || ''\n\n let data\n\n if (responseContentType.includes('json')) {\n data = await response.json()\n } else if (responseContentType.includes('octet-stream')) {\n data = await response.blob()\n } else {\n data = await response.text()\n }\n\n return this.responseHandler(status, headers, data)\n}\n\nRequestContext.prototype.setRequestHandler = function (\n requestHandler: RequestHandler\n) {\n this.requestHandler = requestHandler\n}\n\nRequestContext.prototype.setResponseHandler = function (\n responseHandler: ResponseHandler\n) {\n this.responseHandler = responseHandler\n}\n\nconst rc = new RequestContext(\n (url, query, init) => {\n return {url, query, init}\n },\n (status, headers, data) => {\n return {status, headers, data}\n }\n)\nconst request = rc.request.bind(rc)\nconst setRequestHandler = rc.setRequestHandler.bind(rc)\nconst setResponseHandler = rc.setResponseHandler.bind(rc)\n\nexport {request, setRequestHandler, setResponseHandler}\n\nexport interface GetBrokerSubsParams {}\n\ntype GetBrokerSubsResult =\n | GetBrokerSubsOKResult\n | GetBrokerSubsUnauthorizedResult\n | GetBrokerSubsInternalServerErrorResult\n\ninterface GetBrokerSubsOKResult {\n status: 200\n headers: Headers\n data: Subscriptions\n}\n\ninterface GetBrokerSubsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetBrokerSubsInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBrokerSubs = (\n params: GetBrokerSubsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2private/broker/subs',\n params,\n options\n ) as Promise\n\nexport interface PostBrokerSubParams {\n data: SubscriptionParams\n}\n\ntype PostBrokerSubResult =\n | PostBrokerSubCreatedResult\n | PostBrokerSubBadRequestResult\n | PostBrokerSubUnauthorizedResult\n | PostBrokerSubInternalServerErrorResult\n\ninterface PostBrokerSubCreatedResult {\n status: 201\n headers: Headers\n data: Subscription\n}\n\ninterface PostBrokerSubBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostBrokerSubUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostBrokerSubInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postBrokerSub = (\n params: PostBrokerSubParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2private/broker/subs',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetBrokerSubParams {\n id: string\n}\n\ntype GetBrokerSubResult =\n | GetBrokerSubOKResult\n | GetBrokerSubBadRequestResult\n | GetBrokerSubUnauthorizedResult\n | GetBrokerSubInternalServerErrorResult\n\ninterface GetBrokerSubOKResult {\n status: 200\n headers: Headers\n data: Subscription\n}\n\ninterface GetBrokerSubBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetBrokerSubUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetBrokerSubInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBrokerSub = (\n params: GetBrokerSubParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/broker/subs/${params.id}`,\n params,\n options\n ) as Promise\n\nexport interface PutBrokerSubParams {\n id: string\n\n data: SubscriptionParams\n}\n\ntype PutBrokerSubResult =\n | PutBrokerSubOKResult\n | PutBrokerSubBadRequestResult\n | PutBrokerSubUnauthorizedResult\n | PutBrokerSubInternalServerErrorResult\n\ninterface PutBrokerSubOKResult {\n status: 200\n headers: Headers\n data: Subscription\n}\n\ninterface PutBrokerSubBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PutBrokerSubUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PutBrokerSubInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putBrokerSub = (\n params: PutBrokerSubParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2private/broker/subs/${params.id}`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface DeleteBrokerSubParams {\n id: string\n}\n\ntype DeleteBrokerSubResult =\n | DeleteBrokerSubNoContentResult\n | DeleteBrokerSubBadRequestResult\n | DeleteBrokerSubUnauthorizedResult\n | DeleteBrokerSubNotFoundResult\n | DeleteBrokerSubInternalServerErrorResult\n\ninterface DeleteBrokerSubNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteBrokerSubBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteBrokerSubUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteBrokerSubNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteBrokerSubInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteBrokerSub = (\n params: DeleteBrokerSubParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2private/broker/subs/${params.id}`,\n params,\n options\n ) as Promise\n\nexport interface GetBrokerSubsStatusParams {\n id: string\n}\n\ntype GetBrokerSubsStatusResult =\n | GetBrokerSubsStatusOKResult\n | GetBrokerSubsStatusBadRequestResult\n | GetBrokerSubsStatusUnauthorizedResult\n | GetBrokerSubsStatusInternalServerErrorResult\n\ninterface GetBrokerSubsStatusOKResult {\n status: 200\n headers: Headers\n data: Subscription\n}\n\ninterface GetBrokerSubsStatusBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetBrokerSubsStatusUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetBrokerSubsStatusInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBrokerSubsStatus = (\n params: GetBrokerSubsStatusParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2private/broker/subs/${params.id}/status`,\n params,\n options\n ) as Promise\n\nexport interface PutBrokerSubsStatusParams {\n id: string\n\n data: SubscriptionRunStatus\n}\n\ntype PutBrokerSubsStatusResult =\n | PutBrokerSubsStatusOKResult\n | PutBrokerSubsStatusBadRequestResult\n | PutBrokerSubsStatusUnauthorizedResult\n | PutBrokerSubsStatusInternalServerErrorResult\n\ninterface PutBrokerSubsStatusOKResult {\n status: 200\n headers: Headers\n data: SubscriptionStatus\n}\n\ninterface PutBrokerSubsStatusBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PutBrokerSubsStatusUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PutBrokerSubsStatusInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putBrokerSubsStatus = (\n params: PutBrokerSubsStatusParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2private/broker/subs/${params.id}/status`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetBrokerSubsStatusesParams {}\n\ntype GetBrokerSubsStatusesResult =\n | GetBrokerSubsStatusesOKResult\n | GetBrokerSubsStatusesUnauthorizedResult\n | GetBrokerSubsStatusesInternalServerErrorResult\n\ninterface GetBrokerSubsStatusesOKResult {\n status: 200\n headers: Headers\n data: SubscriptionStatusArray\n}\n\ninterface GetBrokerSubsStatusesUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetBrokerSubsStatusesInternalServerErrorResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBrokerSubsStatuses = (\n params: GetBrokerSubsStatusesParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2private/broker/subs/statuses',\n params,\n options\n ) as Promise\n","// This file is generated by [oats][0] and should not be edited by hand.\n//\n// [0]: https://github.com/influxdata/oats\n\nexport interface Error {\n readonly code:\n | 'internal error'\n | 'not found'\n | 'conflict'\n | 'invalid'\n | 'unprocessable entity'\n | 'empty value'\n | 'unavailable'\n | 'forbidden'\n | 'too many requests'\n | 'unauthorized'\n | 'method not allowed'\n | 'request too large'\n | 'unsupported media type'\n readonly message?: string\n readonly op?: string\n readonly err?: string\n}\n\nexport interface UserAccount {\n id: number\n isActive: boolean\n isDefault: boolean\n name: string\n}\n\nexport interface Account {\n id: number\n name: string\n type?: 'contract' | 'free' | 'pay_as_you_go'\n billingProvider?: 'aws' | 'azure' | 'gcm' | 'zuora'\n isDeletable?: boolean\n}\n\nexport type OrganizationSummaries = Array<{\n id: string\n name: string\n isActive: boolean\n isDefault: boolean\n provider?: string\n regionCode?: string\n regionName?: string\n state?: state\n isSuspendable?: boolean\n}>\n\nexport type state = 'pending' | 'provisioned' | 'suspended'\n\nexport interface OrganizationDefaultRequest {\n id: string\n}\n\nexport type availableUpgrade = 'contract' | 'none' | 'pay_as_you_go'\n\nexport type Clusters = Cluster[]\n\nexport interface Cluster {\n readonly priority?: number\n readonly isProviderAvailable?: boolean\n readonly isRegionAvailable?: boolean\n readonly providerId?: string\n readonly providerName?: string\n readonly regionId?: string\n readonly regionName?: string\n}\n\nexport interface BillingInfo {\n balance: number\n paymentMethod?: PaymentMethod\n balanceUpdatedAt: string\n contact: BillingContact\n}\n\nexport interface PaymentMethod {\n cardType: string\n cardNumber: string\n expirationMonth: string\n expirationYear: string\n defaultPaymentMethod?: boolean\n}\n\nexport interface BillingContact {\n companyName: string\n email: string\n firstName: string\n lastName: string\n country: string\n street1?: string\n street2?: string\n city: string\n subdivision?: string\n postalCode: string\n}\n\nexport interface Identity {\n user: IdentityUser\n account: IdentityAccount\n org: IdentityOrganization\n}\n\nexport interface IdentityUser {\n id: string\n email: string\n firstName?: string\n lastName?: string\n operatorRole?: 'read-only' | 'read-write'\n accountCount: number\n orgCount: number\n}\n\nexport interface IdentityAccount {\n id: number\n name: string\n type: AccountType\n accountCreatedAt: string\n availableUpgrade?: 'contract' | 'none' | 'pay_as_you_go'\n isUpgradeable?: boolean\n paygCreditStartDate?: string\n}\n\nexport type AccountType = 'cancelled' | 'contract' | 'free' | 'pay_as_you_go'\n\nexport interface IdentityOrganization {\n id: string\n name: string\n clusterHost: string\n}\n\nexport interface Marketplace {\n name: string\n shortName: MarketplaceType\n url: string\n}\n\nexport type MarketplaceType = 'aws' | 'gcm' | 'azure'\n\nexport interface BillingDate {\n dateTime: string\n}\n\nexport type UsageVectors = UsageVector[]\n\nexport interface UsageVector {\n name: string\n unit: string\n fluxKey: string\n}\n\nexport interface BillingNotifySettings {\n isNotify: boolean\n balanceThreshold: number\n notifyEmail: string\n}\n\nexport interface CreditCardParams {\n readonly id: string\n readonly tenantId: string\n readonly key: string\n readonly signature: string\n readonly token: string\n readonly style: string\n readonly submitEnabled: 'true' | 'false'\n readonly url: string\n}\n\nexport interface PaymentMethodPut {\n readonly paymentMethodId?: string\n}\n\nexport type Invoices = Invoice[]\n\nexport interface Invoice {\n id: string\n readonly status: string\n readonly amount: number\n readonly targetDate: string\n}\n\nexport interface OrganizationCreateRequest {\n orgName: string\n provider: 'AWS' | 'GCP' | 'Azure'\n region: string\n}\n\nexport interface Organization {\n id: string\n name?: string\n description?: string\n creationDate?: string\n regionCode: string\n regionName: string\n provider?: string\n clusterHost: string\n state?: 'pending' | 'provisioned' | 'suspended'\n isSuspendable?: boolean\n}\n\nexport type Invites = Invite[]\n\nexport interface Invite {\n readonly id?: number\n email: string\n role: Role\n readonly expiresAt?: string\n}\n\nexport type Role = 'owner' | 'member'\n\nexport interface OrgUser {\n readonly id: string\n firstName: string\n lastName: string\n email: string\n role: Role\n}\n\nexport type OrgUsers = OrgUser[]\n\nexport interface OrgLimits {\n readonly orgID: string\n rate: RateLimits\n bucket: BucketLimits\n task: TaskLimits\n dashboard: DashboardLimits\n check: CheckLimits\n notificationRule: NotificationRuleLimits\n notificationEndpoint: NotificationEndpointLimits\n stack?: StackLimits\n timeout?: TimeoutLimits\n}\n\nexport interface RateLimits {\n readKBs?: RestrictedLimit | Limit\n writeKBs?: RestrictedLimit | Limit\n cardinality?: RestrictedLimit | Limit\n}\n\nexport type RestrictedLimit = number\n\nexport type Limit = number\n\nexport interface BucketLimits {\n maxBuckets?: RestrictedLimit | Unlimited | Limit\n maxRetentionDuration?: RestrictedLimit | Unlimited | Limit\n}\n\nexport type Unlimited = number\n\nexport interface TaskLimits {\n maxTasks?: RestrictedLimit | Unlimited | Limit\n}\n\nexport interface DashboardLimits {\n maxDashboards?: RestrictedLimit | Unlimited | Limit\n}\n\nexport interface CheckLimits {\n maxChecks?: RestrictedLimit | Unlimited | Limit\n}\n\nexport interface NotificationRuleLimits {\n maxNotifications?: RestrictedLimit | Unlimited | Limit\n blockedNotificationRules?: string\n}\n\nexport interface NotificationEndpointLimits {\n blockedNotificationEndpoints?: string\n}\n\nexport interface StackLimits {\n enabled?: boolean\n}\n\nexport interface TimeoutLimits {\n queryUnconditionalTimeoutSeconds?: RestrictedLimit | Unlimited | Limit\n queryidleWriteTimeoutSeconds?: RestrictedLimit | Unlimited | Limit\n}\n\nexport interface CheckoutRequest {\n paymentMethodId?: string\n street1?: string\n street2?: string\n city?: string\n country?: string\n subdivision?: string\n postalCode?: string\n notifyEmail?: string\n balanceThreshold?: number\n isNotify?: boolean\n isPaygCreditActive?: boolean\n}\n\nexport type OperatorAccounts = OperatorAccount[]\n\nexport interface OperatorAccount {\n id: number\n name: string\n type: AccountType\n zuoraAccountId?: string\n deletable?: boolean\n balance: number\n billingContact: BillingContact\n users: OperatorUsers\n marketplaceSubscription: MarketplaceSubscription\n}\n\nexport type OperatorUsers = OperatorUser[]\n\nexport interface OperatorUser {\n email?: string\n firstName: string\n id: string\n idpeId: string\n lastName: string\n operator?: boolean\n sfdcContactId?: string\n}\n\nexport interface MarketplaceSubscription {\n marketplace: MarketplaceType\n status: 'pending' | 'subscribed' | 'unsubscribed' | 'failed'\n subscriberId: string\n}\n\nexport type OperatorOrganizations = OperatorOrganization[]\n\nexport interface OperatorOrganization {\n idpeId: string\n id: number\n name?: string\n region: string\n provider: string\n state?: state\n storageType?: 'tsm' | 'iox'\n date: string\n account: RelatedAccount\n}\n\nexport interface RelatedAccount {\n id: number\n type: AccountType\n balance: number\n billingContact?: BillingContact\n updatedAt: string\n}\n\nexport interface OperatorProvidersResponse {\n providers: OperatorProviders\n regions: {\n Azure?: OperatorRegions\n AWS?: OperatorRegions\n GCM?: OperatorRegions\n }\n}\n\nexport type OperatorProviders = OperatorProvider[]\n\nexport interface OperatorProvider {\n provider: string\n title: string\n isAvailable: boolean\n}\n\nexport type OperatorRegions = OperatorRegion[]\n\nexport interface OperatorRegion {\n region: string\n title: string\n provider: string\n priority: number\n isAvailable: boolean\n isPrivate: boolean\n}\n\nexport interface OperatorOrgLimits {\n readonly orgID: string\n rate: OperatorRateLimits\n bucket: BucketLimits\n task: TaskLimits\n dashboard: DashboardLimits\n check: CheckLimits\n notificationRule: NotificationRuleLimits\n notificationEndpoint: NotificationEndpointLimits\n stack?: StackLimits\n timeout?: TimeoutLimits\n}\n\nexport interface OperatorRateLimits {\n queryTime?: RestrictedLimit | Limit\n readKBs?: RestrictedLimit | Limit\n writeKBs?: RestrictedLimit | Limit\n cardinality?: RestrictedLimit | Limit\n}\n\nexport interface UserPatchRequest {\n firstName?: string\n lastName?: string\n}\n\nexport interface User {\n email?: string\n firstName: string\n id: string\n lastName: string\n}\n\ninterface RequestOptions {\n signal?: AbortSignal\n}\n\nexport type RequestHandler = (\n url: string,\n query: string,\n init: RequestInit\n) => {url: string; query: string; init: RequestInit}\nexport type ResponseHandler = (\n status: number,\n headers: Headers,\n data: any\n) => {status: number; headers: Headers; data: any}\n\nconst RequestContext = function (\n requestHandler: RequestHandler,\n responseHandler: ResponseHandler\n) {\n this.requestHandler = requestHandler\n this.responseHandler = responseHandler\n}\n\nRequestContext.prototype.request = async function (\n method: string,\n url: string,\n params: any = {},\n options: RequestOptions = {}\n): Promise {\n const requestHeaders = new Headers(params.headers)\n const contentType = requestHeaders.get('Content-Type') || ''\n\n if (params.auth) {\n const credentials = btoa(`${params.auth.username}:${params.auth.password}`)\n\n requestHeaders.append('Authorization', `Basic ${credentials}`)\n }\n\n const body =\n params.data && contentType.includes('json')\n ? JSON.stringify(params.data)\n : params.data\n\n const query = params.query ? `?${new URLSearchParams(params.query)}` : ''\n\n const {\n url: middlewareUrl,\n query: middlewareQuery,\n init,\n } = this.requestHandler(url, query, {\n method,\n body,\n credentials: 'same-origin',\n signal: options.signal,\n headers: requestHeaders,\n })\n\n const response = await fetch(`${middlewareUrl}${middlewareQuery}`, init)\n\n const {status, headers} = response\n const responseContentType = headers.get('Content-Type') || ''\n\n let data\n\n if (responseContentType.includes('json')) {\n data = await response.json()\n } else if (responseContentType.includes('octet-stream')) {\n data = await response.blob()\n } else {\n data = await response.text()\n }\n\n return this.responseHandler(status, headers, data)\n}\n\nRequestContext.prototype.setRequestHandler = function (\n requestHandler: RequestHandler\n) {\n this.requestHandler = requestHandler\n}\n\nRequestContext.prototype.setResponseHandler = function (\n responseHandler: ResponseHandler\n) {\n this.responseHandler = responseHandler\n}\n\nconst rc = new RequestContext(\n (url, query, init) => {\n return {url, query, init}\n },\n (status, headers, data) => {\n return {status, headers, data}\n }\n)\nconst request = rc.request.bind(rc)\nconst setRequestHandler = rc.setRequestHandler.bind(rc)\nconst setResponseHandler = rc.setResponseHandler.bind(rc)\n\nexport {request, setRequestHandler, setResponseHandler}\n\nexport interface DeleteAccountParams {\n data?: any\n}\n\ntype DeleteAccountResult =\n | DeleteAccountNoContentResult\n | DeleteAccountUnauthorizedResult\n | DeleteAccountForbiddenResult\n | DeleteAccountDefaultResult\n\ninterface DeleteAccountNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteAccountUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteAccountForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface DeleteAccountDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteAccount = (\n params: DeleteAccountParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n '/api/v2/quartz/account',\n {...params, headers: {'Content-Type': 'application/json; charset=utf-8'}},\n options\n ) as Promise\n\nexport interface GetAccountsParams {}\n\ntype GetAccountsResult =\n | GetAccountsOKResult\n | GetAccountsUnauthorizedResult\n | GetAccountsDefaultResult\n\ninterface GetAccountsOKResult {\n status: 200\n headers: Headers\n data: UserAccount[]\n}\n\ninterface GetAccountsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetAccountsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getAccounts = (\n params: GetAccountsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/accounts',\n params,\n options\n ) as Promise\n\nexport interface GetAccountParams {\n accountId: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetAccountResult =\n | GetAccountOKResult\n | GetAccountUnauthorizedResult\n | GetAccountDefaultResult\n\ninterface GetAccountOKResult {\n status: 200\n headers: Headers\n data: Account\n}\n\ninterface GetAccountUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetAccountDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getAccount = (\n params: GetAccountParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/accounts/${params.accountId}`,\n params,\n options\n ) as Promise\n\nexport interface PatchAccountParams {\n accountId: string\n\n data: {\n name: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchAccountResult =\n | PatchAccountOKResult\n | PatchAccountUnauthorizedResult\n | PatchAccountUnprocessableEntityResult\n | PatchAccountDefaultResult\n\ninterface PatchAccountOKResult {\n status: 200\n headers: Headers\n data: Account\n}\n\ninterface PatchAccountUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PatchAccountUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PatchAccountDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchAccount = (\n params: PatchAccountParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/quartz/accounts/${params.accountId}`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetAccountsOrgsParams {\n accountId: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetAccountsOrgsResult =\n | GetAccountsOrgsOKResult\n | GetAccountsOrgsUnauthorizedResult\n | GetAccountsOrgsDefaultResult\n\ninterface GetAccountsOrgsOKResult {\n status: 200\n headers: Headers\n data: OrganizationSummaries\n}\n\ninterface GetAccountsOrgsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetAccountsOrgsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getAccountsOrgs = (\n params: GetAccountsOrgsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/accounts/${params.accountId}/orgs`,\n params,\n options\n ) as Promise\n\nexport interface PutAccountsOrgsDefaultParams {\n accountId: string\n\n data: OrganizationDefaultRequest\n}\n\ntype PutAccountsOrgsDefaultResult =\n | PutAccountsOrgsDefaultNoContentResult\n | PutAccountsOrgsDefaultNotFoundResult\n | PutAccountsOrgsDefaultUnprocessableEntityResult\n | PutAccountsOrgsDefaultDefaultResult\n\ninterface PutAccountsOrgsDefaultNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PutAccountsOrgsDefaultNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PutAccountsOrgsDefaultUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PutAccountsOrgsDefaultDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putAccountsOrgsDefault = (\n params: PutAccountsOrgsDefaultParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2/quartz/accounts/${params.accountId}/orgs/default`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PutAccountsDefaultParams {\n data: {\n id: number\n }\n}\n\ntype PutAccountsDefaultResult =\n | PutAccountsDefaultNoContentResult\n | PutAccountsDefaultDefaultResult\n\ninterface PutAccountsDefaultNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PutAccountsDefaultDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putAccountsDefault = (\n params: PutAccountsDefaultParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n '/api/v2/quartz/accounts/default',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetAllowancesOrgsCreateParams {\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetAllowancesOrgsCreateResult = GetAllowancesOrgsCreateOKResult\n\ninterface GetAllowancesOrgsCreateOKResult {\n status: 200\n headers: Headers\n data: {\n allowed: boolean\n availableUpgrade: availableUpgrade\n }\n}\n\nexport const getAllowancesOrgsCreate = (\n params: GetAllowancesOrgsCreateParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/allowances/orgs/create',\n params,\n options\n ) as Promise\n\nexport interface GetClustersParams {}\n\ntype GetClustersResult =\n | GetClustersOKResult\n | GetClustersUnauthorizedResult\n | GetClustersDefaultResult\n\ninterface GetClustersOKResult {\n status: 200\n headers: Headers\n data: Clusters\n}\n\ninterface GetClustersUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetClustersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getClusters = (\n params: GetClustersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/clusters',\n params,\n options\n ) as Promise\n\nexport interface GetBillingParams {}\n\ntype GetBillingResult = GetBillingOKResult | GetBillingDefaultResult\n\ninterface GetBillingOKResult {\n status: 200\n headers: Headers\n data: BillingInfo\n}\n\ninterface GetBillingDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBilling = (\n params: GetBillingParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/billing',\n params,\n options\n ) as Promise\n\nexport interface GetIdentityParams {}\n\ntype GetIdentityResult =\n | GetIdentityOKResult\n | GetIdentityUnauthorizedResult\n | GetIdentityDefaultResult\n\ninterface GetIdentityOKResult {\n status: 200\n headers: Headers\n data: Identity\n}\n\ninterface GetIdentityUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetIdentityDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getIdentity = (\n params: GetIdentityParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/identity',\n params,\n options\n ) as Promise\n\nexport interface GetMarketplaceParams {}\n\ntype GetMarketplaceResult =\n | GetMarketplaceOKResult\n | GetMarketplaceUnauthorizedResult\n | GetMarketplaceNotFoundResult\n | GetMarketplaceDefaultResult\n\ninterface GetMarketplaceOKResult {\n status: 200\n headers: Headers\n data: Marketplace\n}\n\ninterface GetMarketplaceUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetMarketplaceNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetMarketplaceDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getMarketplace = (\n params: GetMarketplaceParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/marketplace',\n params,\n options\n ) as Promise\n\nexport interface GetBillingStartDateParams {}\n\ntype GetBillingStartDateResult =\n | GetBillingStartDateOKResult\n | GetBillingStartDateDefaultResult\n\ninterface GetBillingStartDateOKResult {\n status: 200\n headers: Headers\n data: BillingDate\n}\n\ninterface GetBillingStartDateDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBillingStartDate = (\n params: GetBillingStartDateParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/billing/start_date',\n params,\n options\n ) as Promise\n\nexport interface GetUsageVectorsParams {}\n\ntype GetUsageVectorsResult =\n | GetUsageVectorsOKResult\n | GetUsageVectorsUnauthorizedResult\n | GetUsageVectorsNotFoundResult\n | GetUsageVectorsDefaultResult\n\ninterface GetUsageVectorsOKResult {\n status: 200\n headers: Headers\n data: UsageVectors\n}\n\ninterface GetUsageVectorsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetUsageVectorsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetUsageVectorsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getUsageVectors = (\n params: GetUsageVectorsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/usage/vectors',\n params,\n options\n ) as Promise\n\nexport interface GetUsageParams {\n vector_name: any\n\n query?: {\n range?: any\n }\n}\n\ntype GetUsageResult =\n | GetUsageOKResult\n | GetUsageBadRequestResult\n | GetUsageUnauthorizedResult\n | GetUsageNotFoundResult\n | GetUsageDefaultResult\n\ninterface GetUsageOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetUsageBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetUsageUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetUsageNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetUsageDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getUsage = (\n params: GetUsageParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/usage/${params.vector_name}`,\n params,\n options\n ) as Promise\n\nexport interface GetUsageBillingStatsParams {}\n\ntype GetUsageBillingStatsResult =\n | GetUsageBillingStatsOKResult\n | GetUsageBillingStatsUnauthorizedResult\n | GetUsageBillingStatsDefaultResult\n\ninterface GetUsageBillingStatsOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetUsageBillingStatsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetUsageBillingStatsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getUsageBillingStats = (\n params: GetUsageBillingStatsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/usage/billing_stats',\n params,\n options\n ) as Promise\n\nexport interface GetUsageRateLimitsParams {\n query?: {\n range?: any\n }\n}\n\ntype GetUsageRateLimitsResult =\n | GetUsageRateLimitsOKResult\n | GetUsageRateLimitsBadRequestResult\n | GetUsageRateLimitsUnauthorizedResult\n | GetUsageRateLimitsNotFoundResult\n | GetUsageRateLimitsDefaultResult\n\ninterface GetUsageRateLimitsOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetUsageRateLimitsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetUsageRateLimitsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetUsageRateLimitsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetUsageRateLimitsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getUsageRateLimits = (\n params: GetUsageRateLimitsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/usage/rate_limits',\n params,\n options\n ) as Promise\n\nexport interface GetSettingsNotificationsParams {}\n\ntype GetSettingsNotificationsResult =\n | GetSettingsNotificationsOKResult\n | GetSettingsNotificationsUnauthorizedResult\n | GetSettingsNotificationsNotFoundResult\n | GetSettingsNotificationsNotAcceptableResult\n | GetSettingsNotificationsDefaultResult\n\ninterface GetSettingsNotificationsOKResult {\n status: 200\n headers: Headers\n data: BillingNotifySettings\n}\n\ninterface GetSettingsNotificationsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetSettingsNotificationsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetSettingsNotificationsNotAcceptableResult {\n status: 406\n headers: Headers\n data: Error\n}\n\ninterface GetSettingsNotificationsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getSettingsNotifications = (\n params: GetSettingsNotificationsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/settings/notifications',\n params,\n options\n ) as Promise\n\nexport interface PutSettingsNotificationsParams {\n data: BillingNotifySettings\n}\n\ntype PutSettingsNotificationsResult =\n | PutSettingsNotificationsOKResult\n | PutSettingsNotificationsBadRequestResult\n | PutSettingsNotificationsUnauthorizedResult\n | PutSettingsNotificationsDefaultResult\n\ninterface PutSettingsNotificationsOKResult {\n status: 200\n headers: Headers\n data: BillingNotifySettings\n}\n\ninterface PutSettingsNotificationsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PutSettingsNotificationsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PutSettingsNotificationsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putSettingsNotifications = (\n params: PutSettingsNotificationsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n '/api/v2/quartz/settings/notifications',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PutBillingContactParams {\n data: BillingContact\n}\n\ntype PutBillingContactResult =\n | PutBillingContactOKResult\n | PutBillingContactDefaultResult\n\ninterface PutBillingContactOKResult {\n status: 200\n headers: Headers\n data: BillingContact\n}\n\ninterface PutBillingContactDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putBillingContact = (\n params: PutBillingContactParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n '/api/v2/quartz/billing/contact',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetPaymentFormParams {\n form: any\n}\n\ntype GetPaymentFormResult =\n | GetPaymentFormOKResult\n | GetPaymentFormBadRequestResult\n | GetPaymentFormUnauthorizedResult\n | GetPaymentFormNotFoundResult\n | GetPaymentFormNotAcceptableResult\n | GetPaymentFormDefaultResult\n\ninterface GetPaymentFormOKResult {\n status: 200\n headers: Headers\n data: CreditCardParams\n}\n\ninterface GetPaymentFormBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface GetPaymentFormUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetPaymentFormNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetPaymentFormNotAcceptableResult {\n status: 406\n headers: Headers\n data: Error\n}\n\ninterface GetPaymentFormDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getPaymentForm = (\n params: GetPaymentFormParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/payment_form/${params.form}`,\n params,\n options\n ) as Promise\n\nexport interface PutBillingPaymentMethodParams {\n data: PaymentMethodPut\n}\n\ntype PutBillingPaymentMethodResult =\n | PutBillingPaymentMethodOKResult\n | PutBillingPaymentMethodDefaultResult\n\ninterface PutBillingPaymentMethodOKResult {\n status: 200\n headers: Headers\n data: PaymentMethod\n}\n\ninterface PutBillingPaymentMethodDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putBillingPaymentMethod = (\n params: PutBillingPaymentMethodParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n '/api/v2/quartz/billing/payment_method',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetBillingInvoicesParams {}\n\ntype GetBillingInvoicesResult =\n | GetBillingInvoicesOKResult\n | GetBillingInvoicesUnauthorizedResult\n | GetBillingInvoicesDefaultResult\n\ninterface GetBillingInvoicesOKResult {\n status: 200\n headers: Headers\n data: Invoices\n}\n\ninterface GetBillingInvoicesUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetBillingInvoicesDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBillingInvoices = (\n params: GetBillingInvoicesParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/billing/invoices',\n params,\n options\n ) as Promise\n\nexport interface GetBillingInvoiceParams {\n invoiceId: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetBillingInvoiceResult =\n | GetBillingInvoiceOKResult\n | GetBillingInvoiceUnauthorizedResult\n | GetBillingInvoiceNotFoundResult\n | GetBillingInvoiceDefaultResult\n\ninterface GetBillingInvoiceOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetBillingInvoiceUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetBillingInvoiceNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetBillingInvoiceDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getBillingInvoice = (\n params: GetBillingInvoiceParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/billing/invoices/${params.invoiceId}`,\n params,\n options\n ) as Promise\n\nexport interface PostOrgParams {\n data: OrganizationCreateRequest\n}\n\ntype PostOrgResult =\n | PostOrgCreatedResult\n | PostOrgUnauthorizedResult\n | PostOrgForbiddenResult\n | PostOrgConflictResult\n | PostOrgUnprocessableEntityResult\n | PostOrgDefaultResult\n\ninterface PostOrgCreatedResult {\n status: 201\n headers: Headers\n data: Organization\n}\n\ninterface PostOrgUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostOrgForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface PostOrgConflictResult {\n status: 409\n headers: Headers\n data: Error\n}\n\ninterface PostOrgUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostOrgDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postOrg = (\n params: PostOrgParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/quartz/orgs',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetOrgParams {\n orgId: string\n}\n\ntype GetOrgResult =\n | GetOrgOKResult\n | GetOrgUnauthorizedResult\n | GetOrgDefaultResult\n\ninterface GetOrgOKResult {\n status: 200\n headers: Headers\n data: Organization\n}\n\ninterface GetOrgUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetOrgDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrg = (\n params: GetOrgParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/orgs/${params.orgId}`,\n params,\n options\n ) as Promise\n\nexport interface PatchOrgParams {\n orgId: string\n\n data: {\n name?: string\n description?: string\n }\n}\n\ntype PatchOrgResult =\n | PatchOrgOKResult\n | PatchOrgUnauthorizedResult\n | PatchOrgConflictResult\n | PatchOrgUnprocessableEntityResult\n | PatchOrgDefaultResult\n\ninterface PatchOrgOKResult {\n status: 200\n headers: Headers\n data: Organization\n}\n\ninterface PatchOrgUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PatchOrgConflictResult {\n status: 409\n headers: Headers\n data: Error\n}\n\ninterface PatchOrgUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PatchOrgDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchOrg = (\n params: PatchOrgParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/quartz/orgs/${params.orgId}`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface DeleteOrgParams {\n orgId: string\n\n data?: any\n}\n\ntype DeleteOrgResult =\n | DeleteOrgOKResult\n | DeleteOrgUnauthorizedResult\n | DeleteOrgForbiddenResult\n | DeleteOrgNotFoundResult\n | DeleteOrgDefaultResult\n\ninterface DeleteOrgOKResult {\n status: 200\n headers: Headers\n data: Organization\n}\n\ninterface DeleteOrgUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteOrg = (\n params: DeleteOrgParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/quartz/orgs/${params.orgId}`,\n {...params, headers: {'Content-Type': 'application/json; charset=utf-8'}},\n options\n ) as Promise\n\nexport interface GetOrgsInvitesParams {\n orgId: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOrgsInvitesResult =\n | GetOrgsInvitesOKResult\n | GetOrgsInvitesUnauthorizedResult\n | GetOrgsInvitesNotFoundResult\n | GetOrgsInvitesDefaultResult\n\ninterface GetOrgsInvitesOKResult {\n status: 200\n headers: Headers\n data: Invites\n}\n\ninterface GetOrgsInvitesUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsInvitesNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsInvitesDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrgsInvites = (\n params: GetOrgsInvitesParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/orgs/${params.orgId}/invites`,\n params,\n options\n ) as Promise\n\nexport interface PostOrgsInviteParams {\n orgId: string\n\n data: Invite\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostOrgsInviteResult =\n | PostOrgsInviteOKResult\n | PostOrgsInviteCreatedResult\n | PostOrgsInviteUnauthorizedResult\n | PostOrgsInviteForbiddenResult\n | PostOrgsInviteNotFoundResult\n | PostOrgsInviteConflictResult\n | PostOrgsInviteUnprocessableEntityResult\n | PostOrgsInviteTooManyRequestsResult\n | PostOrgsInviteDefaultResult\n\ninterface PostOrgsInviteOKResult {\n status: 200\n headers: Headers\n data: OrgUser\n}\n\ninterface PostOrgsInviteCreatedResult {\n status: 201\n headers: Headers\n data: Invite\n}\n\ninterface PostOrgsInviteUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsInviteForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsInviteNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsInviteConflictResult {\n status: 409\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsInviteUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsInviteTooManyRequestsResult {\n status: 429\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsInviteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postOrgsInvite = (\n params: PostOrgsInviteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/quartz/orgs/${params.orgId}/invites`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface DeleteOrgsInviteParams {\n inviteId: number\n orgId: string\n\n data?: any\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteOrgsInviteResult =\n | DeleteOrgsInviteNoContentResult\n | DeleteOrgsInviteDefaultResult\n\ninterface DeleteOrgsInviteNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteOrgsInviteDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteOrgsInvite = (\n params: DeleteOrgsInviteParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/quartz/orgs/${params.orgId}/invites/${params.inviteId}`,\n {\n ...params,\n headers: {\n ...params.headers,\n 'Content-Type': 'application/json; charset=utf-8',\n },\n },\n options\n ) as Promise\n\nexport interface PostOrgsInvitesResendParams {\n inviteId: number\n orgId: string\n\n data?: any\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostOrgsInvitesResendResult =\n | PostOrgsInvitesResendOKResult\n | PostOrgsInvitesResendUnauthorizedResult\n | PostOrgsInvitesResendNotFoundResult\n | PostOrgsInvitesResendDefaultResult\n\ninterface PostOrgsInvitesResendOKResult {\n status: 200\n headers: Headers\n data: Invite\n}\n\ninterface PostOrgsInvitesResendUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsInvitesResendNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostOrgsInvitesResendDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postOrgsInvitesResend = (\n params: PostOrgsInvitesResendParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/quartz/orgs/${params.orgId}/invites/${params.inviteId}/resend`,\n {\n ...params,\n headers: {\n ...params.headers,\n 'Content-Type': 'application/json; charset=utf-8',\n },\n },\n options\n ) as Promise\n\nexport interface GetOrgsUsersParams {\n orgId: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOrgsUsersResult =\n | GetOrgsUsersOKResult\n | GetOrgsUsersUnauthorizedResult\n | GetOrgsUsersNotFoundResult\n | GetOrgsUsersDefaultResult\n\ninterface GetOrgsUsersOKResult {\n status: 200\n headers: Headers\n data: OrgUsers\n}\n\ninterface GetOrgsUsersUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsUsersNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetOrgsUsersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrgsUsers = (\n params: GetOrgsUsersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/orgs/${params.orgId}/users`,\n params,\n options\n ) as Promise\n\nexport interface DeleteOrgsUserParams {\n userId: string\n orgId: string\n\n data?: {\n transferIdpeId?: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteOrgsUserResult =\n | DeleteOrgsUserNoContentResult\n | DeleteOrgsUserBadRequestResult\n | DeleteOrgsUserUnauthorizedResult\n | DeleteOrgsUserForbiddenResult\n | DeleteOrgsUserNotFoundResult\n | DeleteOrgsUserDefaultResult\n\ninterface DeleteOrgsUserNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteOrgsUserBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgsUserUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgsUserForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgsUserNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface DeleteOrgsUserDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteOrgsUser = (\n params: DeleteOrgsUserParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/quartz/orgs/${params.orgId}/users/${params.userId}`,\n {\n ...params,\n headers: {\n ...params.headers,\n 'Content-Type': 'application/json; charset=utf-8',\n },\n },\n options\n ) as Promise\n\nexport interface GetOrgsLimitsParams {\n orgId: string\n}\n\ntype GetOrgsLimitsResult = GetOrgsLimitsOKResult | GetOrgsLimitsDefaultResult\n\ninterface GetOrgsLimitsOKResult {\n status: 200\n headers: Headers\n data: OrgLimits\n}\n\ninterface GetOrgsLimitsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOrgsLimits = (\n params: GetOrgsLimitsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/orgs/${params.orgId}/limits`,\n params,\n options\n ) as Promise\n\nexport interface PutOrgsLimitsParams {\n orgId: string\n\n data?: any\n}\n\ntype PutOrgsLimitsResult = PutOrgsLimitsOKResult | PutOrgsLimitsDefaultResult\n\ninterface PutOrgsLimitsOKResult {\n status: 200\n headers: Headers\n data: OrgLimits\n}\n\ninterface PutOrgsLimitsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putOrgsLimits = (\n params: PutOrgsLimitsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2/quartz/orgs/${params.orgId}/limits`,\n {...params, headers: {'Content-Type': 'application/json; charset=utf-8'}},\n options\n ) as Promise\n\nexport interface PostCheckoutParams {\n data: CheckoutRequest\n}\n\ntype PostCheckoutResult =\n | PostCheckoutCreatedResult\n | PostCheckoutBadRequestResult\n | PostCheckoutUnauthorizedResult\n | PostCheckoutNotFoundResult\n | PostCheckoutDefaultResult\n\ninterface PostCheckoutCreatedResult {\n status: 201\n headers: Headers\n data: any\n}\n\ninterface PostCheckoutBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PostCheckoutUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostCheckoutNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostCheckoutDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postCheckout = (\n params: PostCheckoutParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/quartz/checkout',\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface PostCancelParams {\n data?: any\n}\n\ntype PostCancelResult = PostCancelNoContentResult | PostCancelDefaultResult\n\ninterface PostCancelNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface PostCancelDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postCancel = (\n params: PostCancelParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n '/api/v2/quartz/cancel',\n {...params, headers: {'Content-Type': 'application/json; charset=utf-8'}},\n options\n ) as Promise\n\nexport interface GetOperatorAccountsParams {\n query?: {\n query?: string\n accountTypes?: any\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOperatorAccountsResult =\n | GetOperatorAccountsOKResult\n | GetOperatorAccountsUnauthorizedResult\n | GetOperatorAccountsDefaultResult\n\ninterface GetOperatorAccountsOKResult {\n status: 200\n headers: Headers\n data: OperatorAccounts\n}\n\ninterface GetOperatorAccountsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetOperatorAccountsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOperatorAccounts = (\n params: GetOperatorAccountsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/operator/accounts',\n params,\n options\n ) as Promise\n\nexport interface GetOperatorAccountParams {\n accountId: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOperatorAccountResult =\n | GetOperatorAccountOKResult\n | GetOperatorAccountUnauthorizedResult\n | GetOperatorAccountNotFoundResult\n | GetOperatorAccountDefaultResult\n\ninterface GetOperatorAccountOKResult {\n status: 200\n headers: Headers\n data: OperatorAccount & {\n organizations?: OperatorOrganizations\n } & any\n}\n\ninterface GetOperatorAccountUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetOperatorAccountNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetOperatorAccountDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOperatorAccount = (\n params: GetOperatorAccountParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/operator/accounts/${params.accountId}`,\n params,\n options\n ) as Promise\n\nexport interface DeleteOperatorAccountParams {\n accountId: string\n\n data?: any\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype DeleteOperatorAccountResult =\n | DeleteOperatorAccountNoContentResult\n | DeleteOperatorAccountBadRequestResult\n | DeleteOperatorAccountUnauthorizedResult\n | DeleteOperatorAccountForbiddenResult\n | DeleteOperatorAccountDefaultResult\n\ninterface DeleteOperatorAccountNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface DeleteOperatorAccountBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface DeleteOperatorAccountUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface DeleteOperatorAccountForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface DeleteOperatorAccountDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const deleteOperatorAccount = (\n params: DeleteOperatorAccountParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'DELETE',\n `/api/v2/quartz/operator/accounts/${params.accountId}`,\n {\n ...params,\n headers: {\n ...params.headers,\n 'Content-Type': 'application/json; charset=utf-8',\n },\n },\n options\n ) as Promise\n\nexport interface PatchOperatorAccountsConvertParams {\n accountId: string\n\n data: {\n contractStartDate: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PatchOperatorAccountsConvertResult =\n | PatchOperatorAccountsConvertOKResult\n | PatchOperatorAccountsConvertUnauthorizedResult\n | PatchOperatorAccountsConvertUnprocessableEntityResult\n | PatchOperatorAccountsConvertDefaultResult\n\ninterface PatchOperatorAccountsConvertOKResult {\n status: 200\n headers: Headers\n data: OperatorAccount\n}\n\ninterface PatchOperatorAccountsConvertUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PatchOperatorAccountsConvertUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PatchOperatorAccountsConvertDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchOperatorAccountsConvert = (\n params: PatchOperatorAccountsConvertParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/quartz/operator/accounts/${params.accountId}/convert`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface GetOperatorProvidersParams {}\n\ntype GetOperatorProvidersResult =\n | GetOperatorProvidersOKResult\n | GetOperatorProvidersUnauthorizedResult\n | GetOperatorProvidersDefaultResult\n\ninterface GetOperatorProvidersOKResult {\n status: 200\n headers: Headers\n data: OperatorProvidersResponse\n}\n\ninterface GetOperatorProvidersUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetOperatorProvidersDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOperatorProviders = (\n params: GetOperatorProvidersParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/operator/providers',\n params,\n options\n ) as Promise\n\nexport interface GetOperatorOrgsParams {\n query?: {\n query?: string\n accountTypes?: any\n providers?: any\n regions?: any\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOperatorOrgsResult =\n | GetOperatorOrgsOKResult\n | GetOperatorOrgsUnauthorizedResult\n | GetOperatorOrgsDefaultResult\n\ninterface GetOperatorOrgsOKResult {\n status: 200\n headers: Headers\n data: OperatorOrganizations\n}\n\ninterface GetOperatorOrgsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetOperatorOrgsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOperatorOrgs = (\n params: GetOperatorOrgsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/operator/orgs',\n params,\n options\n ) as Promise\n\nexport interface GetOperatorOrgParams {\n orgId: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOperatorOrgResult =\n | GetOperatorOrgOKResult\n | GetOperatorOrgUnauthorizedResult\n | GetOperatorOrgNotFoundResult\n | GetOperatorOrgDefaultResult\n\ninterface GetOperatorOrgOKResult {\n status: 200\n headers: Headers\n data: OperatorOrganization\n}\n\ninterface GetOperatorOrgUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetOperatorOrgNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetOperatorOrgDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOperatorOrg = (\n params: GetOperatorOrgParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/operator/orgs/${params.orgId}`,\n params,\n options\n ) as Promise\n\nexport interface GetOperatorOrgsLimitsParams {\n orgId: string\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetOperatorOrgsLimitsResult =\n | GetOperatorOrgsLimitsOKResult\n | GetOperatorOrgsLimitsUnauthorizedResult\n | GetOperatorOrgsLimitsNotFoundResult\n | GetOperatorOrgsLimitsDefaultResult\n\ninterface GetOperatorOrgsLimitsOKResult {\n status: 200\n headers: Headers\n data: OperatorOrgLimits\n}\n\ninterface GetOperatorOrgsLimitsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface GetOperatorOrgsLimitsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface GetOperatorOrgsLimitsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getOperatorOrgsLimits = (\n params: GetOperatorOrgsLimitsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n `/api/v2/quartz/operator/orgs/${params.orgId}/limits`,\n params,\n options\n ) as Promise\n\nexport interface PutOperatorOrgsLimitsParams {\n orgId: string\n\n data: OperatorOrgLimits\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PutOperatorOrgsLimitsResult =\n | PutOperatorOrgsLimitsOKResult\n | PutOperatorOrgsLimitsBadRequestResult\n | PutOperatorOrgsLimitsUnauthorizedResult\n | PutOperatorOrgsLimitsForbiddenResult\n | PutOperatorOrgsLimitsNotFoundResult\n | PutOperatorOrgsLimitsDefaultResult\n\ninterface PutOperatorOrgsLimitsOKResult {\n status: 200\n headers: Headers\n data: OperatorOrgLimits\n}\n\ninterface PutOperatorOrgsLimitsBadRequestResult {\n status: 400\n headers: Headers\n data: Error\n}\n\ninterface PutOperatorOrgsLimitsUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PutOperatorOrgsLimitsForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface PutOperatorOrgsLimitsNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PutOperatorOrgsLimitsDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const putOperatorOrgsLimits = (\n params: PutOperatorOrgsLimitsParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PUT',\n `/api/v2/quartz/operator/orgs/${params.orgId}/limits`,\n {\n ...params,\n headers: {...params.headers, 'Content-Type': 'application/json'},\n },\n options\n ) as Promise\n\nexport interface PostOperatorOrgsReactivateParams {\n orgId: string\n\n data?: any\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype PostOperatorOrgsReactivateResult =\n | PostOperatorOrgsReactivateOKResult\n | PostOperatorOrgsReactivateUnauthorizedResult\n | PostOperatorOrgsReactivateForbiddenResult\n | PostOperatorOrgsReactivateNotFoundResult\n | PostOperatorOrgsReactivateDefaultResult\n\ninterface PostOperatorOrgsReactivateOKResult {\n status: 200\n headers: Headers\n data: Organization\n}\n\ninterface PostOperatorOrgsReactivateUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PostOperatorOrgsReactivateForbiddenResult {\n status: 403\n headers: Headers\n data: Error\n}\n\ninterface PostOperatorOrgsReactivateNotFoundResult {\n status: 404\n headers: Headers\n data: Error\n}\n\ninterface PostOperatorOrgsReactivateDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const postOperatorOrgsReactivate = (\n params: PostOperatorOrgsReactivateParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'POST',\n `/api/v2/quartz/operator/orgs/${params.orgId}/reactivate`,\n {\n ...params,\n headers: {\n ...params.headers,\n 'Content-Type': 'application/json; charset=utf-8',\n },\n },\n options\n ) as Promise\n\nexport interface PatchUserParams {\n userId: string\n\n data: UserPatchRequest\n}\n\ntype PatchUserResult =\n | PatchUserOKResult\n | PatchUserUnauthorizedResult\n | PatchUserUnprocessableEntityResult\n | PatchUserDefaultResult\n\ninterface PatchUserOKResult {\n status: 200\n headers: Headers\n data: User\n}\n\ninterface PatchUserUnauthorizedResult {\n status: 401\n headers: Headers\n data: Error\n}\n\ninterface PatchUserUnprocessableEntityResult {\n status: 422\n headers: Headers\n data: Error\n}\n\ninterface PatchUserDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const patchUser = (\n params: PatchUserParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'PATCH',\n `/api/v2/quartz/users/${params.userId}`,\n {...params, headers: {'Content-Type': 'application/json'}},\n options\n ) as Promise\n\nexport interface GetAuthConnectionParams {\n query: {\n email: string\n }\n\n headers?: {\n 'Zap-Trace-Span'?: string\n }\n}\n\ntype GetAuthConnectionResult =\n | GetAuthConnectionOKResult\n | GetAuthConnectionNoContentResult\n | GetAuthConnectionDefaultResult\n\ninterface GetAuthConnectionOKResult {\n status: 200\n headers: Headers\n data: string\n}\n\ninterface GetAuthConnectionNoContentResult {\n status: 204\n headers: Headers\n data: any\n}\n\ninterface GetAuthConnectionDefaultResult {\n status: 500\n headers: Headers\n data: Error\n}\n\nexport const getAuthConnection = (\n params: GetAuthConnectionParams,\n options: RequestOptions = {}\n): Promise =>\n request(\n 'GET',\n '/api/v2/quartz/auth/connection',\n params,\n options\n ) as Promise\n","// Actions\nimport {notify} from 'src/shared/actions/notifications'\n\n// Constants\nimport {readLimitReached} from 'src/shared/copy/notifications'\n\n// Types\nimport {\n Bucket,\n GetState,\n RemoteDataState,\n ResourceType,\n ColumnTypes,\n} from 'src/types'\nimport {\n Limit as Limits,\n LimitStatus as GenLimitStatus,\n} from 'src/client/cloudPrivRoutes'\n// Selectors\nimport {\n extractDashboardMax,\n extractBucketMax,\n extractTaskMax,\n extractChecksMax,\n extractRulesMax,\n extractEndpointsMax,\n} from 'src/cloud/utils/limits'\nimport {getOrg} from 'src/organizations/selectors'\nimport {getAll} from 'src/resources/selectors'\nimport {CLOUD} from 'src/shared/constants'\n\nlet getOrgsLimits = null\nlet getOrgsLimitsStatus = null\n\nif (CLOUD) {\n getOrgsLimits = require('src/client/cloudPrivRoutes').getOrgsLimits\n getOrgsLimitsStatus =\n require('src/client/cloudPrivRoutes').getOrgsLimitsStatus\n}\n\nexport interface LimitStatus extends GenLimitStatus {}\n\nexport interface Limit {\n maxAllowed: number\n limitStatus: LimitStatus['status']\n}\n\nexport type MonitoringLimits = {\n [type in ColumnTypes]: LimitStatus['status']\n}\n\nexport enum ActionTypes {\n SetLimits = 'SET_LIMITS',\n SetLimitsStatus = 'SET_LIMITS_STATUS',\n SetDashboardLimitStatus = 'SET_DASHBOARD_LIMIT_STATUS',\n SetBucketLimitStatus = 'SET_BUCKET_LIMIT_STATUS',\n SetTaskLimitStatus = 'SET_TASK_LIMIT_STATUS',\n SetChecksLimitStatus = 'SET_CHECKS_LIMIT_STATUS',\n SetRulesLimitStatus = 'SET_RULES_LIMIT_STATUS',\n SetEndpointsLimitStatus = 'SET_ENDPOINTS_LIMIT_STATUS',\n SetQueryTimeRateLimitStatus = 'SET_QUERY_TIME_RATE_LIMIT_STATUS',\n SetReadRateLimitStatus = 'SET_READ_RATE_LIMIT_STATUS',\n SetWriteRateLimitStatus = 'SET_WRITE_RATE_LIMIT_STATUS',\n SetCardinalityLimitStatus = 'SET_CARDINALITY_LIMIT_STATUS',\n}\n\nexport type Actions =\n | SetLimits\n | SetLimitsStatus\n | SetDashboardLimitStatus\n | SetBucketLimitStatus\n | SetTaskLimitStatus\n | SetChecksLimitStatus\n | SetRulesLimitStatus\n | SetEndpointsLimitStatus\n | SetQueryTimeRateLimitStatus\n | SetReadRateLimitStatus\n | SetWriteRateLimitStatus\n | SetCardinalityLimitStatus\n\nexport interface SetLimits {\n type: ActionTypes.SetLimits\n payload: {limits: Limits}\n}\n\nexport const setLimits = (limits: Limits): SetLimits => {\n return {\n type: ActionTypes.SetLimits,\n payload: {limits},\n }\n}\n\nexport interface SetDashboardLimitStatus {\n type: ActionTypes.SetDashboardLimitStatus\n payload: {limitStatus: LimitStatus['status']}\n}\n\nexport const setDashboardLimitStatus = (\n limitStatus: LimitStatus['status']\n): SetDashboardLimitStatus => {\n return {\n type: ActionTypes.SetDashboardLimitStatus,\n payload: {limitStatus},\n }\n}\n\nexport interface SetBucketLimitStatus {\n type: ActionTypes.SetBucketLimitStatus\n payload: {limitStatus: LimitStatus['status']}\n}\n\nexport const setBucketLimitStatus = (\n limitStatus: LimitStatus['status']\n): SetBucketLimitStatus => {\n return {\n type: ActionTypes.SetBucketLimitStatus,\n payload: {limitStatus},\n }\n}\n\nexport interface SetTaskLimitStatus {\n type: ActionTypes.SetTaskLimitStatus\n payload: {limitStatus: LimitStatus['status']}\n}\n\nexport const setTaskLimitStatus = (\n limitStatus: LimitStatus['status']\n): SetTaskLimitStatus => {\n return {\n type: ActionTypes.SetTaskLimitStatus,\n payload: {limitStatus},\n }\n}\n\nexport interface SetChecksLimitStatus {\n type: ActionTypes.SetChecksLimitStatus\n payload: {limitStatus: LimitStatus['status']}\n}\n\nexport const setChecksLimitStatus = (\n limitStatus: LimitStatus['status']\n): SetChecksLimitStatus => {\n return {\n type: ActionTypes.SetChecksLimitStatus,\n payload: {limitStatus},\n }\n}\n\nexport interface SetRulesLimitStatus {\n type: ActionTypes.SetRulesLimitStatus\n payload: {limitStatus: LimitStatus['status']}\n}\n\nexport const setRulesLimitStatus = (\n limitStatus: LimitStatus['status']\n): SetRulesLimitStatus => {\n return {\n type: ActionTypes.SetRulesLimitStatus,\n payload: {limitStatus},\n }\n}\n\nexport interface SetEndpointsLimitStatus {\n type: ActionTypes.SetEndpointsLimitStatus\n payload: {limitStatus: LimitStatus['status']}\n}\n\nexport const setEndpointsLimitStatus = (\n limitStatus: LimitStatus['status']\n): SetEndpointsLimitStatus => {\n return {\n type: ActionTypes.SetEndpointsLimitStatus,\n payload: {limitStatus},\n }\n}\n\nexport interface SetQueryTimeRateLimitStatus {\n type: ActionTypes.SetQueryTimeRateLimitStatus\n payload: {limitStatus: LimitStatus['status']}\n}\n\nexport const SetQueryTimeRateLimitStatus = (\n limitStatus: LimitStatus['status']\n): SetQueryTimeRateLimitStatus => {\n return {\n type: ActionTypes.SetQueryTimeRateLimitStatus,\n payload: {limitStatus},\n }\n}\n\nexport interface SetReadRateLimitStatus {\n type: ActionTypes.SetReadRateLimitStatus\n payload: {limitStatus: LimitStatus['status']}\n}\n\nexport const setReadRateLimitStatus = (\n limitStatus: LimitStatus['status']\n): SetReadRateLimitStatus => {\n return {\n type: ActionTypes.SetReadRateLimitStatus,\n payload: {limitStatus},\n }\n}\n\nexport interface SetWriteRateLimitStatus {\n type: ActionTypes.SetWriteRateLimitStatus\n payload: {limitStatus: LimitStatus['status']}\n}\n\nexport const setWriteRateLimitStatus = (\n limitStatus: LimitStatus['status']\n): SetWriteRateLimitStatus => {\n return {\n type: ActionTypes.SetWriteRateLimitStatus,\n payload: {limitStatus},\n }\n}\n\nexport interface SetCardinalityLimitStatus {\n type: ActionTypes.SetCardinalityLimitStatus\n payload: {limitStatus: LimitStatus['status']}\n}\n\nexport const setCardinalityLimitStatus = (\n limitStatus: LimitStatus['status']\n): SetCardinalityLimitStatus => {\n return {\n type: ActionTypes.SetCardinalityLimitStatus,\n payload: {limitStatus},\n }\n}\n\nexport interface SetLimitsStatus {\n type: ActionTypes.SetLimitsStatus\n payload: {\n status: RemoteDataState\n }\n}\n\nexport const setLimitsStatus = (status: RemoteDataState): SetLimitsStatus => {\n return {\n type: ActionTypes.SetLimitsStatus,\n payload: {status},\n }\n}\n\nexport const getReadWriteCardinalityLimits =\n () => async (dispatch, getState: GetState) => {\n if (!CLOUD) {\n return\n }\n try {\n const org = getOrg(getState())\n\n const resp = await getOrgsLimitsStatus({orgID: org.id})\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n const limits = resp.data\n\n if (limits.read.status === 'exceeded') {\n dispatch(notify(readLimitReached()))\n dispatch(setReadRateLimitStatus('exceeded'))\n } else {\n dispatch(setReadRateLimitStatus('ok'))\n }\n\n if (limits.write.status === 'exceeded') {\n dispatch(setWriteRateLimitStatus('exceeded'))\n } else {\n dispatch(setWriteRateLimitStatus('ok'))\n }\n\n if (limits.cardinality.status === 'exceeded') {\n dispatch(setCardinalityLimitStatus('exceeded'))\n } else {\n dispatch(setCardinalityLimitStatus('ok'))\n }\n } catch (error) {\n console.error(error)\n }\n }\n\nexport const getAssetLimits = () => async (dispatch, getState: GetState) => {\n if (!CLOUD) {\n return\n }\n dispatch(setLimitsStatus(RemoteDataState.Loading))\n try {\n const org = getOrg(getState())\n\n const resp = await getOrgsLimits({orgID: org.id})\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n dispatch(setLimits(resp.data))\n dispatch(setLimitsStatus(RemoteDataState.Done))\n } catch (error) {\n console.error(error)\n dispatch(setLimitsStatus(RemoteDataState.Error))\n }\n}\n\nexport const checkDashboardLimits = () => (dispatch, getState: GetState) => {\n try {\n const state = getState()\n const {resources} = state\n\n const dashboardsMax = extractDashboardMax(state)\n const dashboardsCount = resources.dashboards.allIDs.length\n\n if (dashboardsCount >= dashboardsMax) {\n dispatch(setDashboardLimitStatus('exceeded'))\n } else {\n dispatch(setDashboardLimitStatus('ok'))\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nexport const checkBucketLimits = () => (dispatch, getState: GetState) => {\n try {\n const state = getState()\n const allBuckets = getAll(state, ResourceType.Buckets)\n const bucketsMax = extractBucketMax(state)\n const buckets = allBuckets.filter(bucket => {\n return bucket.type == 'user'\n })\n const bucketsCount = buckets.length\n\n if (bucketsCount >= bucketsMax) {\n dispatch(setBucketLimitStatus('exceeded'))\n } else {\n dispatch(setBucketLimitStatus('ok'))\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nexport const checkTaskLimits = () => (dispatch, getState: GetState) => {\n try {\n const state = getState()\n const tasksMax = extractTaskMax(state)\n const tasksCount = state.resources.tasks.allIDs.length\n\n if (tasksCount >= tasksMax) {\n dispatch(setTaskLimitStatus('exceeded'))\n } else {\n dispatch(setTaskLimitStatus('ok'))\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nexport const checkChecksLimits = () => (dispatch, getState: GetState) => {\n try {\n const state = getState()\n\n const checksMax = extractChecksMax(state)\n const checksCount = state.resources.checks.allIDs.length\n if (checksCount >= checksMax) {\n dispatch(setChecksLimitStatus('exceeded'))\n } else {\n dispatch(setChecksLimitStatus('ok'))\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nexport const checkRulesLimits = () => (dispatch, getState: GetState) => {\n try {\n const state = getState()\n\n const rulesMax = extractRulesMax(state)\n const rulesCount = state.resources.rules.allIDs.length\n\n if (rulesCount >= rulesMax) {\n dispatch(setRulesLimitStatus('exceeded'))\n } else {\n dispatch(setRulesLimitStatus('ok'))\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nexport const checkEndpointsLimits = () => (dispatch, getState: GetState) => {\n try {\n const state = getState()\n const endpointsCount = state.resources.endpoints.allIDs.length\n const endpointsMax = extractEndpointsMax(state)\n\n if (endpointsCount >= endpointsMax) {\n dispatch(setEndpointsLimitStatus('exceeded'))\n } else {\n dispatch(setEndpointsLimitStatus('ok'))\n }\n } catch (error) {\n console.error(error)\n }\n}\n","export const RATE_LIMIT_ERROR_STATUS = 429\n\nexport const RATE_LIMIT_ERROR_TEXT =\n 'Oops. It looks like you have exceeded the query limits allowed as part of your plan. If you would like to increase your query limits, reach out to support@influxdata.com.'\n\nexport const ASSET_LIMIT_ERROR_STATUS = 403\n\nexport const ASSET_LIMIT_ERROR_TEXT =\n 'Oops. It looks like you have exceeded the asset limits allowed as part of your plan. If you would like to increase your limits, reach out to support@influxdata.com.'\n\nexport const REQUEST_TIMEOUT_STATUS = 408\nexport const GATEWAY_TIMEOUT_STATUS = 504\n","import {ASSET_LIMIT_ERROR_STATUS} from 'src/cloud/constants/index'\nimport {LimitStatus} from 'src/cloud/actions/limits'\nimport {AppState} from 'src/types'\nimport {CLOUD} from 'src/shared/constants'\n\nexport const isLimitError = (error): boolean => {\n if (!CLOUD) {\n return false\n }\n return error?.response?.status === ASSET_LIMIT_ERROR_STATUS\n}\n\nexport const getBucketLimitStatus = (\n state: AppState\n): LimitStatus['status'] => {\n if (!CLOUD) {\n return 'ok'\n }\n return state.cloud?.limits?.buckets?.limitStatus\n}\n\nexport const extractBucketMax = (state: AppState): number => {\n if (!CLOUD) {\n return Infinity\n }\n return state.cloud?.limits?.buckets?.maxAllowed || Infinity // if maxAllowed == 0, there are no limits on asset\n}\n\nexport const extractBucketMaxRetentionSeconds = (state: AppState): number => {\n if (!CLOUD) {\n return null\n }\n return state.cloud?.limits?.buckets?.maxRetentionSeconds || null\n}\n\nexport const getBucketRetentionLimit = (state: AppState): boolean => {\n if (!CLOUD) {\n return false\n }\n const maxSeconds = state.cloud?.limits?.buckets?.maxRetentionSeconds\n return !!maxSeconds\n}\n\nexport const extractDashboardLimits = (\n state: AppState\n): LimitStatus['status'] => {\n if (!CLOUD) {\n return 'ok'\n }\n return state.cloud?.limits?.dashboards?.limitStatus\n}\n\nexport const extractDashboardMax = (state: AppState): number => {\n if (!CLOUD) {\n return Infinity\n }\n return state.cloud?.limits?.dashboards?.maxAllowed || Infinity\n}\n\nexport const extractTaskLimits = (state: AppState): LimitStatus['status'] => {\n if (!CLOUD) {\n return 'ok'\n }\n return state.cloud?.limits?.tasks.limitStatus\n}\n\nexport const extractTaskMax = (state: AppState): number => {\n if (!CLOUD) {\n return Infinity\n }\n return state.cloud?.limits?.tasks?.maxAllowed || Infinity\n}\n\nexport const extractChecksLimits = (state: AppState): LimitStatus['status'] => {\n if (!CLOUD) {\n return 'ok'\n }\n return state.cloud?.limits?.checks?.limitStatus\n}\n\nexport const extractChecksMax = (state: AppState): number => {\n if (!CLOUD) {\n return Infinity\n }\n return state.cloud?.limits?.checks?.maxAllowed || Infinity\n}\n\nexport const extractRulesLimits = (state: AppState): LimitStatus['status'] => {\n if (!CLOUD) {\n return 'ok'\n }\n return state.cloud?.limits?.rules?.limitStatus\n}\n\nexport const extractRulesMax = (state: AppState): number => {\n if (!CLOUD) {\n return Infinity\n }\n return state.cloud?.limits?.rules?.maxAllowed || Infinity\n}\n\nexport const extractEndpointsLimits = (\n state: AppState\n): LimitStatus['status'] => {\n if (!CLOUD) {\n ;('ok')\n }\n return state.cloud?.limits?.endpoints?.limitStatus\n}\n\nexport const extractEndpointsMax = (state: AppState): number => {\n if (!CLOUD) {\n return Infinity\n }\n return state.cloud?.limits?.endpoints?.maxAllowed || Infinity\n}\n\nexport const extractBlockedEndpoints = (state: AppState): string[] => {\n if (!CLOUD) {\n return []\n }\n return state.cloud?.limits?.endpoints.blocked || []\n}\n\nexport const extractRateLimitStatus = (\n state: AppState\n): LimitStatus['status'] => {\n if (!CLOUD) {\n return 'ok'\n }\n\n const statuses = [\n state.cloud?.limits?.rate?.writeKBs?.limitStatus,\n state.cloud?.limits?.rate?.readKBs?.limitStatus,\n state.cloud?.limits?.rate?.cardinality?.limitStatus,\n ]\n\n if (statuses.includes('exceeded')) {\n return 'exceeded'\n }\n\n return 'ok'\n}\n\nexport const extractRateLimitResources = (state: AppState): string[] => {\n const rateLimitedResources = []\n\n if (!CLOUD) {\n return rateLimitedResources\n }\n\n if (state.cloud?.limits?.rate?.readKBs?.limitStatus === 'exceeded') {\n rateLimitedResources.push('read')\n }\n\n if (state.cloud?.limits?.rate?.writeKBs?.limitStatus === 'exceeded') {\n rateLimitedResources.push('write')\n }\n\n if (state.cloud?.limits?.rate?.cardinality?.limitStatus === 'exceeded') {\n rateLimitedResources.push('cardinality')\n }\n\n return rateLimitedResources\n}\n","import {isFlagEnabled} from 'src/shared/utils/featureFlag'\nimport {track} from 'rudder-sdk-js'\nimport {reportErrorThroughHoneyBadger} from 'src/shared/utils/errors'\nimport {CLOUD} from 'src/shared/constants'\n\nexport interface Point {\n measurement: string\n fields: PointFields\n tags: PointTags\n timestamp?: number\n}\n\nexport interface PointTags {\n [key: string]: number | string\n}\n\nexport interface PointFields {\n [key: string]: number | string\n}\n\nexport interface PointsBatch {\n points: Array\n timestamp?: number\n campaign?: object\n}\n\nexport const reportPoints = (batch: PointsBatch) => {\n if (CLOUD && isFlagEnabled('rudderstackReporting')) {\n try {\n batch.points.forEach(point => {\n track(\n point.measurement,\n point.fields,\n asRudderOptions(point.tags, batch.campaign)\n )\n })\n } catch (error) {\n reportErrorThroughHoneyBadger(error, {\n name: 'rudderstack event reporting',\n })\n }\n }\n if (isFlagEnabled('appMetrics')) {\n try {\n const url = '/api/v2/app-metrics'\n return fetch(url, {\n method: 'POST',\n body: JSON.stringify(batch),\n headers: {\n 'Content-Type': 'application/json',\n },\n credentials: 'include',\n })\n } catch (error) {\n // don't want reporting errors to effect user experience\n }\n }\n}\n\nconst asRudderOptions = (tags: PointTags, campaign: object) => {\n if (Object.keys(campaign).length) {\n // converts tags to generic object so we can put a campaign object as value later\n const options = {}\n for (const key in tags) {\n const value = tags[key]\n if (key !== 'context') {\n options[key] = value\n } else if (typeof value !== 'object') {\n // 'context' is reserved options key and its value must be an object\n // (see processOptionsParam function in rudder-sdk-js/index.js line #20460)\n // so just put the value under different key ie. 'appContext'\n // (see event tracking call in eg. src/shared/apis/queryCache.ts#L116)\n options['appContext'] = value\n } else {\n options[key] = value\n }\n }\n // campaign info is in context object (which is merged in processOptionsParam function in rudder-sdk-js/index.js)\n let context = options['context']\n if (context === undefined) {\n context = {}\n options['context'] = context\n }\n context['campaign'] = campaign\n return options\n }\n return tags\n}\n","import {useState, useEffect} from 'react'\nimport {isEmpty} from 'lodash'\n\nimport {\n reportPoints as reportPointsAPI,\n Point,\n PointTags,\n PointFields,\n} from 'src/cloud/apis/reporting'\n\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\nimport {CLOUD, GIT_SHA} from 'src/shared/constants'\nexport {Point, PointTags, PointFields} from 'src/cloud/apis/reporting'\n\nlet reportingTags: KeyValue = {}\nlet reportingPoints = []\nlet reportDecayTimeout = null\nlet reportMaxTimeout = null\nlet campaignInfo = {}\n\nconst REPORT_DECAY = 500 // number of miliseconds to wait after last event before sending\nconst REPORT_MAX_WAIT = 5000 // max number of miliseconds to wait between sends\nconst REPORT_MAX_LENGTH = 300 // max number of events to queue before sending\n\ninterface KeyValue {\n [key: string]: string\n}\n\nexport const updateReportingContext = (properties: KeyValue) => {\n reportingTags = {...reportingTags, ...properties}\n}\n\nexport const toNano = (ms: number) => Math.round(ms * 1000000)\n\n// NOTE: typescript can't follow the API results for flags,\n// so we need to convert them to strings here\nexport const cleanTags = (data: Point): Point => {\n return {\n ...data,\n tags: Object.entries(data.tags).reduce((acc, [key, val]) => {\n if (typeof val === 'boolean') {\n acc[key] = val ? 'true' : 'false'\n return acc\n }\n\n if (!isNaN(parseFloat(val as any))) {\n acc[key] = '' + val\n return acc\n }\n\n if (!val) {\n acc[key] = val\n return acc\n }\n\n acc[key] = String(val).trim()\n return acc\n }, {}),\n }\n}\n\nconst pooledEvent = ({timestamp, measurement, fields, tags}: Point) => {\n if (isEmpty(fields)) {\n fields = {source: 'ui'}\n }\n\n reportingPoints.push(\n cleanTags({\n measurement,\n tags: {...reportingTags, ...tags, version: GIT_SHA},\n fields,\n timestamp,\n })\n )\n\n if (!!reportDecayTimeout) {\n clearTimeout(reportDecayTimeout)\n reportDecayTimeout = null\n }\n\n if (reportingPoints.length >= REPORT_MAX_LENGTH) {\n if (!!reportMaxTimeout) {\n clearTimeout(reportMaxTimeout)\n reportMaxTimeout = null\n }\n\n reportPointsAPI({\n points: reportingPoints.slice(),\n campaign: campaignInfo,\n })\n\n reportingPoints = []\n\n return\n }\n\n if (!reportMaxTimeout) {\n reportMaxTimeout = setTimeout(() => {\n reportMaxTimeout = null\n\n // points already cleared\n if (!reportingPoints.length) {\n return\n }\n\n clearTimeout(reportDecayTimeout)\n reportDecayTimeout = null\n\n reportPointsAPI({\n points: reportingPoints.slice(),\n campaign: campaignInfo,\n })\n\n reportingPoints = []\n }, REPORT_MAX_WAIT)\n }\n\n reportDecayTimeout = setTimeout(() => {\n reportPointsAPI({\n points: reportingPoints.slice(),\n campaign: campaignInfo,\n })\n\n reportingPoints = []\n }, REPORT_DECAY)\n}\n\nexport const gaEvent = (event: string, payload: object = {}) => {\n window.dataLayer = window.dataLayer || []\n window.dataLayer.push({\n event,\n ...payload,\n })\n}\n\nexport const normalizeEventName = (name: string) => {\n if (!name) {\n return 'undefined_event'\n }\n return name\n .toLowerCase()\n .replace(/-| |\\)|\\(|\\.|'|\"|=|,|`|\\[|\\]|;|:|<|>/g, '_') // replace special chars by '_'\n .replace(/^_*([^_].*[^_])_*$/, '$1') // trim '_' char\n .replace(/(_+)/g, '_') // deduplicate '_' char\n}\n\nexport const event = (\n measurement: string,\n meta: PointTags = {},\n values: PointFields = {}\n): void => {\n let time = meta.time ? new Date(meta.time).valueOf() : Date.now()\n\n if (isNaN(time)) {\n time = Date.now()\n }\n\n delete meta.time\n\n if (isFlagEnabled('streamEvents')) {\n /* eslint-disable no-console */\n console.log(`Event: [ ${measurement} ]`)\n if (Object.keys(meta).length) {\n console.log('tags')\n console.log(\n Object.entries(meta)\n .map(([k, v]) => ` ${k}: ${v}`)\n .join('\\n')\n )\n console.log('fields')\n console.log(\n Object.entries(values)\n .map(([k, v]) => ` ${k}: ${v}`)\n .join('\\n')\n )\n }\n /* eslint-enable no-console */\n }\n\n gaEvent(measurement, {...values, ...meta})\n\n pooledEvent({\n timestamp: toNano(time),\n measurement,\n fields: {\n source: 'ui',\n ...values,\n },\n tags: {...meta},\n })\n}\n\nexport const useLoadTimeReporting = (measurement: string) => {\n const [loadStartTime] = useState(Date.now())\n useEffect(() => {\n event(measurement, {\n time: loadStartTime,\n })\n }, [measurement, loadStartTime])\n}\n\nexport const updateCampaignInfo = (query: string) => {\n if (CLOUD && isFlagEnabled('rudderstackReporting')) {\n const allowedUtmKeys = ['campaign', 'term', 'source', 'medium', 'content']\n const queryParams = new URLSearchParams(query)\n const info = {}\n queryParams.forEach(function (value, key) {\n if (key.startsWith('utm_')) {\n let param = key.substr(4)\n if (allowedUtmKeys.includes(param)) {\n // Rudder element uses 'name' key for campaign name (see rudder-sdk-js/index.js#L2963)\n if (param === 'campaign') {\n param = 'name'\n }\n info[param] = value\n }\n }\n })\n if (Object.keys(info).length) {\n campaignInfo = info\n }\n }\n}\n","// Types\nimport {\n RemoteDataState,\n DashboardEntities,\n DashboardSortParams,\n} from 'src/types'\nimport {NormalizedSchema} from 'normalizr'\nimport {setLabelOnResource} from 'src/labels/actions/creators'\n\nexport const ADD_DASHBOARD_LABEL = 'ADD_DASHBOARD_LABEL'\nexport const DELETE_DASHBOARD_FAILED = 'DELETE_DASHBOARD_FAILED'\nexport const EDIT_DASHBOARD = 'EDIT_DASHBOARD'\nexport const REMOVE_DASHBOARD = 'REMOVE_DASHBOARD'\nexport const REMOVE_DASHBOARD_LABEL = 'REMOVE_DASHBOARD_LABEL'\nexport const SET_DASHBOARD = 'SET_DASHBOARD'\nexport const SET_DASHBOARDS = 'SET_DASHBOARDS'\nexport const SET_DASHBOARD_SORT = 'SET_DASHBOARD_SORT'\nexport const SET_DASHBOARDS_SEARCH_TERM = 'SET_DASHBOARDS_SEARCH_TERM'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\n// R is the type of the value of the \"result\" key in normalizr's normalization\ntype DashboardSchema = NormalizedSchema<\n DashboardEntities,\n R\n>\n\n// Action Creators\nexport const editDashboard = (schema: DashboardSchema) =>\n ({\n type: EDIT_DASHBOARD,\n schema,\n } as const)\n\nexport const setDashboards = (\n status: RemoteDataState,\n schema?: DashboardSchema\n) =>\n ({\n type: SET_DASHBOARDS,\n status,\n schema,\n } as const)\n\nexport const setDashboardSort = (sortOptions: DashboardSortParams) =>\n ({\n type: SET_DASHBOARD_SORT,\n sortOptions,\n } as const)\n\nexport const setDashboard = (\n id: string,\n status: RemoteDataState,\n schema?: DashboardSchema\n) =>\n ({\n type: SET_DASHBOARD,\n id,\n status,\n schema,\n } as const)\n\nexport const removeDashboard = (id: string) =>\n ({\n type: REMOVE_DASHBOARD,\n id,\n } as const)\n\nexport const removeDashboardLabel = (dashboardID: string, labelID: string) =>\n ({\n type: REMOVE_DASHBOARD_LABEL,\n dashboardID,\n labelID,\n } as const)\n\nexport const setSearchTerm = (searchTerm: string) =>\n ({\n type: SET_DASHBOARDS_SEARCH_TERM,\n searchTerm,\n } as const)\n","// Libraries\nimport {replace, RouterAction} from 'connected-react-router'\nimport {Dispatch} from 'redux'\n\n// Actions\nimport {notify, Action as NotifyAction} from 'src/shared/actions/notifications'\n\n// Utils\nimport {stripPrefix} from 'src/utils/basepath'\nimport {validateAndTypeRange} from 'src/dashboards/utils/time'\n\n// Constants\nimport * as copy from 'src/shared/copy/notifications'\nimport {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\n\n// Types\nimport {TimeRange} from 'src/types'\n\nexport type Action =\n | SetDashboardTimeRangeAction\n | DeleteTimeRangeAction\n | RetainRangesDashTimeV1Action\n\nexport enum ActionTypes {\n DeleteTimeRange = 'DELETE_TIME_RANGE',\n SetDashboardTimeRange = 'SET_DASHBOARD_TIME_RANGE',\n RetainRangesDashboardTimeV1 = 'RETAIN_RANGES_DASHBOARD_TIME_V1',\n}\n\nexport interface DeleteTimeRangeAction {\n type: ActionTypes.DeleteTimeRange\n payload: {\n dashboardID: string\n }\n}\n\ninterface SetDashboardTimeRangeAction {\n type: ActionTypes.SetDashboardTimeRange\n payload: {\n dashboardID: string\n timeRange: TimeRange\n }\n}\n\ninterface RetainRangesDashTimeV1Action {\n type: ActionTypes.RetainRangesDashboardTimeV1\n payload: {\n dashboardIDs: string[]\n }\n}\n\nexport const deleteTimeRange = (\n dashboardID: string\n): DeleteTimeRangeAction => ({\n type: ActionTypes.DeleteTimeRange,\n payload: {dashboardID},\n})\n\nexport const setDashboardTimeRange = (\n dashboardID: string,\n timeRange: TimeRange\n): SetDashboardTimeRangeAction => ({\n type: ActionTypes.SetDashboardTimeRange,\n payload: {dashboardID, timeRange},\n})\n\nexport const retainRangesDashTimeV1 = (\n dashboardIDs: string[]\n): RetainRangesDashTimeV1Action => ({\n type: ActionTypes.RetainRangesDashboardTimeV1,\n payload: {dashboardIDs},\n})\n\nexport const updateQueryParams = (updatedQueryParams): RouterAction => {\n const params = new URLSearchParams(window.location.search)\n Object.entries(updatedQueryParams).forEach(([k, v]) => {\n if (!v) {\n return\n }\n params.set(k, v as string)\n })\n\n return replace({\n pathname: stripPrefix(window.location.pathname),\n search: params.toString(),\n })\n}\n\nexport const updateQueryVars = varsObj => {\n const params = new URLSearchParams(window.location.search)\n Object.entries(varsObj).forEach(([k, v]) => {\n params.set(`vars[${k}]`, v as string)\n })\n\n return replace({\n pathname: stripPrefix(window.location.pathname),\n search: params.toString(),\n })\n}\n\nexport const updateTimeRangeFromQueryParams =\n (dashboardID: string) =>\n (\n dispatch: Dispatch,\n getState\n ): void => {\n const {ranges} = getState()\n const params = new URLSearchParams(window.location.search)\n\n const validatedTimeRangeFromQuery = validateAndTypeRange({\n lower: params.get('lower'),\n upper: params.get('upper'),\n })\n\n const validatedTimeRange =\n validatedTimeRangeFromQuery || ranges[dashboardID] || DEFAULT_TIME_RANGE\n\n if (\n (params.get('lower') || params.get('upper')) &&\n !validatedTimeRangeFromQuery\n ) {\n dispatch(notify(copy.invalidTimeRangeValueInURLQuery()))\n }\n\n dispatch(setDashboardTimeRange(dashboardID, validatedTimeRange))\n\n dispatch(\n updateQueryParams({\n lower: validatedTimeRange.lower,\n upper: validatedTimeRange.upper,\n })\n )\n }\n","// APIs\nimport * as api from 'src/client'\nimport {postTemplatesExport} from 'src/client'\n\n// Utils\nimport {downloadTextFile} from 'src/shared/utils/download'\n\n// Types\nimport {Cell, View, NewView, RemoteDataState} from 'src/types'\n\nexport const getView = async (\n dashboardID: string,\n cellID: string\n): Promise => {\n const resp = await api.getDashboardsCellsView({dashboardID, cellID})\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n return {...resp.data, dashboardID, cellID, status: RemoteDataState.Done}\n}\n\nexport const updateView = async (\n dashboardID: string,\n cellID: string,\n view: NewView\n): Promise => {\n const resp = await api.patchDashboardsCellsView({\n dashboardID,\n cellID,\n data: view as View,\n })\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n const viewWithIDs: View = {\n ...resp.data,\n dashboardID,\n cellID,\n status: RemoteDataState.Done,\n }\n\n return viewWithIDs\n}\n\nexport const cloneUtilFunc = async (\n cells: Cell[],\n oldDashID: string,\n clonedDashID: string\n) => {\n const pendingViews = cells.map(cell =>\n api\n .getDashboardsCellsView({\n dashboardID: oldDashID,\n cellID: cell.id,\n })\n .then(res => {\n return {\n ...res,\n cellID: cell.id,\n }\n })\n )\n const views = await Promise.all(pendingViews)\n\n if (views.length > 0 && views.some(v => v.status !== 200)) {\n throw new Error('An error occurred cloning the dashboard')\n }\n\n return views.map(async v => {\n const view = v.data as View\n const cell = cells.find(c => c.id === view.id)\n\n if (cell) {\n const newCell = await api.postDashboardsCell({\n dashboardID: clonedDashID,\n data: cell,\n })\n\n if (newCell.status !== 201) {\n throw new Error('An error occurred cloning the dashboard')\n }\n\n return api.patchDashboardsCellsView({\n dashboardID: clonedDashID,\n cellID: newCell.data.id,\n data: view,\n })\n }\n })\n}\n\nexport const downloadDashboardTemplate = async (dashboard): Promise => {\n const resp = await postTemplatesExport({\n data: {\n resources: [\n {\n kind: 'Dashboard',\n id: dashboard.id,\n },\n ],\n },\n })\n\n if (resp.status === 500) {\n throw new Error(resp.data.message)\n }\n\n const data = await resp.data\n downloadTextFile(JSON.stringify(data), dashboard.name, '.json', 'text/json')\n}\n","import {Cell, Dashboard, RemoteDataState} from 'src/types'\nimport {DecimalPlaces} from 'src/types'\n\nimport {SortTypes} from 'src/shared/utils/sort'\nimport {Sort} from '@influxdata/clockface'\nimport {DashboardSortKey} from 'src/shared/components/resource_sort_dropdown/generateSortItems'\n\nexport const UNTITLED_GRAPH: string = 'Untitled Graph'\n\nexport const DEFAULT_DECIMAL_PLACES: DecimalPlaces = {\n isEnforced: true,\n digits: 2,\n}\n\nexport type NewDefaultCell = Pick<\n Cell,\n Exclude\n>\n\nexport const NEW_DEFAULT_DASHBOARD_CELL: NewDefaultCell = {\n x: 0,\n y: 0,\n w: 4,\n h: 4,\n status: RemoteDataState.Done,\n}\n\nexport type EmptyDefaultDashboard = Pick<\n Dashboard,\n Exclude<\n keyof Dashboard,\n 'templates' | 'links' | 'organization' | 'cells' | 'labels' | 'orgID'\n >\n> & {\n cells: NewDefaultCell[]\n}\n\nexport const DEFAULT_DASHBOARD_SORT_OPTIONS = {\n sortDirection: Sort.Ascending,\n sortType: SortTypes.String,\n sortKey: 'name' as DashboardSortKey,\n}\n\nexport const DashboardTemplate: EmptyDefaultDashboard = {\n id: '0',\n name: 'Create a New Dashboard',\n cells: [],\n status: RemoteDataState.Done,\n}\n\ntype NewDefaultDashboard = Pick<\n Dashboard,\n Exclude & {\n cells: NewDefaultCell[]\n }\n>\nexport const DEFAULT_CELL_NAME = 'Name this Cell'\nexport const DEFAULT_DASHBOARD_NAME = 'Name this Dashboard'\nexport const DEFAULT_BUCKET_NAME = 'Name this Bucket'\nexport const DEFAULT_COLLECTOR_NAME = 'Name this Collector'\nexport const DEFAULT_TASK_NAME = 'Name this Task'\nexport const DEFAULT_SCRAPER_NAME = 'Name this Scraper'\nexport const DEFAULT_TOKEN_DESCRIPTION = 'Describe this API Token'\n\nexport const NEW_DASHBOARD: NewDefaultDashboard = {\n name: DEFAULT_DASHBOARD_NAME,\n cells: [NEW_DEFAULT_DASHBOARD_CELL],\n}\n\nexport const TYPE_QUERY_CONFIG: string = 'queryConfig'\nexport const TYPE_SHIFTED: string = 'shifted queryConfig'\nexport const TYPE_FLUX: string = 'flux'\nexport const DASHBOARD_NAME_MAX_LENGTH: number = 50\nexport const CELL_NAME_MAX_LENGTH: number = 68\n\nexport enum CEOTabs {\n Queries = 'Queries',\n Vis = 'Visualization',\n}\n\n// used in importing dashboards and mapping sources\nexport const DYNAMIC_SOURCE = 'dynamic'\nexport const DYNAMIC_SOURCE_INFO = {\n name: 'Dynamic Source',\n id: DYNAMIC_SOURCE,\n link: '',\n}\n\nexport const UPDATED_AT_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss'\n","// Libraries\nimport {get} from 'lodash'\n\n// Types\nimport {\n AppState,\n Check,\n Dashboard,\n TimeRange,\n TimeZone,\n View,\n ViewType,\n} from 'src/types'\n\n// Utility\nimport {currentContext} from 'src/shared/selectors/currentContext'\nimport {getTimezoneOffset} from 'src/dashboards/utils/getTimezoneOffset'\n\n// Constants\nimport {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {timesNeedConverting} from 'src/shared/utils/dateTimeUtils'\n\nexport const getTimeRange = (state: AppState): TimeRange => {\n const contextID = currentContext(state)\n if (!state.ranges || !state.ranges.hasOwnProperty(contextID)) {\n return DEFAULT_TIME_RANGE\n }\n\n return state.ranges[contextID] || DEFAULT_TIME_RANGE\n}\n\n/**\n * if the custom time is already in utc mode, don't convert it\n * not removing the conversion clause entirely as timezone enabled flux is on the horizon\n **/\nexport const getTimeRangeWithTimezone = (state: AppState): TimeRange => {\n const timeRange = getTimeRange(state)\n const timeZone = getTimeZone(state)\n\n const newTimeRange = {...timeRange}\n if (\n timeRange.type === 'custom' &&\n timesNeedConverting(newTimeRange) &&\n timeZone === 'UTC'\n ) {\n // conforms dates to account to UTC with proper offset if needed\n newTimeRange.lower = setTimeToUTC(newTimeRange.lower)\n newTimeRange.upper = setTimeToUTC(newTimeRange.upper)\n }\n return newTimeRange\n}\n\nexport const sortDashboardByName = (dashboards: Dashboard[]): Dashboard[] =>\n dashboards.sort((a, b) =>\n a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1\n )\n\n/**\n * We are currently using this to track whether the dashboard is active\n * in order to conditionally check the QueryCache in dashboard cells\n * in the TimeSeries.tsx file, since TimeSeries.tsx is used in Dashboard Cells and Check Alerts History\n **/\nexport const isCurrentPageDashboard = (state: AppState): boolean =>\n state.currentPage === 'dashboard'\n\n// The purpose of this function is to set a user's custom time range selection\n// from the local time to the same time in UTC if UTC is selected from the\n// timezone dropdown. This is feature was original requested here:\n// https://github.com/influxdata/influxdb/issues/17877\n// and finalized across the dashboards & the data explorer here:\n// https://github.com/influxdata/influxdb/pull/19146\n// Example: user selected 10-11:00am and sets the dropdown to UTC\n// Query should run against 10-11:00am UTC rather than querying\n// 10-11:00am local time (offset depending on timezone)\nexport const setTimeToUTC = (date: string): string => {\n const utcTime = new Date(date)\n utcTime.setUTCMinutes(utcTime.getUTCMinutes() - getTimezoneOffset())\n\n return `${utcTime.toISOString().split('.')[0]}Z`\n}\n\nexport const getTimeZone = (state: AppState): TimeZone => {\n return state.app.persisted.timeZone || 'Local'\n}\n\nexport const getCheckForView = (\n state: AppState,\n view: View\n): Partial => {\n const viewType: ViewType = get(view, 'properties.type')\n const checkID = get(view, 'properties.checkID')\n\n return viewType === 'check' ? state.resources.checks.byID[checkID] : null\n}\n\nexport const getAllDashboards = (state: AppState): Dashboard[] =>\n Object.values(state.resources.dashboards.byID)\n\nexport const hasNoDashboards = (state: AppState): boolean =>\n state.resources.dashboards.allIDs.length === 0\n\nexport const getCurrentDashboardId = (state: AppState): string =>\n state.currentDashboard.id\n","/**\n * This files has been created as a way to effectively test\n * the getTimeRangeWithTimezone function since current system (circleCI, Jenkins)\n * and JS Date limitations prevent us from fully testing out its dependent functions\n *\n * It should be noted that the native getTimezoneOffset function returns a number\n * that represents the number of minutes (not hours) the \"local\" timezone is offset\n * where locations West of UTC are positive (+420) and locations East of UTC are negative (-120):\n *\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset\n **/\n\nexport const getTimezoneOffset = (): number => new Date().getTimezoneOffset()\n","export const humanizeNote = (text: string): string => {\n return text.replace(/>/g, '>').replace(/'/g, \"'\")\n}\n","import {CustomTimeRange, TimeRange, DurationTimeRange} from 'src/types/queries'\n\nimport {SELECTABLE_TIME_RANGES} from 'src/shared/constants/timeRanges'\nimport {isDurationWithNowParseable} from 'src/shared/utils/duration'\n\ninterface InputTimeRange {\n seconds?: number\n lower?: string\n upper?: string\n}\n\ninterface OutputTimeRange {\n since: number\n until: number | null\n}\n\nexport const millisecondTimeRange = ({\n seconds,\n lower,\n upper,\n}: InputTimeRange): OutputTimeRange => {\n // Is this a relative time range?\n if (seconds) {\n return {since: Date.now() - seconds * 1000, until: null}\n }\n\n const since = Date.parse(lower)\n let until\n if (upper === 'now()') {\n until = Date.now()\n } else {\n until = Date.parse(upper)\n }\n return {since, until}\n}\n\nfunction isDate(date: string): boolean {\n const parsed = Date.parse(date)\n\n if (isNaN(parsed)) {\n return false\n }\n\n return true\n}\n\nexport const validateAndTypeRange = (timeRange: {\n lower: string\n upper: string\n}): TimeRange => {\n const {lower, upper} = timeRange\n if (isDate(lower) && isDate(upper)) {\n return {\n ...timeRange,\n type: 'custom',\n } as CustomTimeRange\n }\n\n if (isDurationWithNowParseable(lower)) {\n const selectableTimeRange = SELECTABLE_TIME_RANGES.find(\n r => r.lower === lower\n )\n\n if (selectableTimeRange) {\n return selectableTimeRange\n }\n\n return {\n lower,\n upper: null,\n type: 'duration',\n } as DurationTimeRange\n }\n return null\n}\n","import React from 'react'\n\nexport default () =>

script editor

\n","import {ResourceType} from 'src/types/resources'\nimport editor from './editor'\nimport {CLOUD} from 'src/shared/constants'\nimport {\n DEFAULT_FLUX_EDITOR_TEXT,\n DEFAULT_SQL_EDITOR_TEXT,\n DEFAULT_INFLUXQL_EDITOR_TEXT,\n} from 'src/dataExplorer/context/persistance'\nimport {LanguageType} from 'src/dataExplorer/components/resources'\nimport {getLanguage} from 'src/dataExplorer/shared/utils'\n\nconst {getScript, patchScript, postScript} = CLOUD\n ? require('src/client/scriptsRoutes')\n : {\n getScript: false,\n patchScript: false,\n postScript: false,\n }\n\nexport const scriptResourceRegistration = () => {\n return {\n type: ResourceType.Scripts,\n editor,\n init: id => {\n if (!id || !CLOUD) {\n const language = getLanguage()\n let flux = DEFAULT_FLUX_EDITOR_TEXT\n\n switch (language) {\n case LanguageType.SQL:\n flux = DEFAULT_SQL_EDITOR_TEXT\n break\n case LanguageType.INFLUXQL:\n flux = DEFAULT_INFLUXQL_EDITOR_TEXT\n break\n }\n\n return Promise.resolve({\n type: ResourceType.Scripts,\n flux,\n data: {},\n language,\n })\n }\n\n return getScript({\n scriptID: id,\n }).then(resp => {\n if (resp.status === 200) {\n return {\n type: ResourceType.Scripts,\n flux: resp.data.script,\n data: resp.data,\n language: resp.data.language,\n }\n }\n\n return {\n type: ResourceType.Scripts,\n flux: DEFAULT_FLUX_EDITOR_TEXT,\n data: {},\n language: LanguageType.FLUX,\n }\n })\n },\n persist: resource => {\n const language = resource?.language\n const data = JSON.parse(JSON.stringify(resource.data))\n data.script = resource.flux\n\n if (!CLOUD) {\n return resource\n }\n\n if (data.id) {\n return patchScript({\n scriptID: data.id,\n data: {\n name: data.name,\n description: data?.description || ' ',\n script: data.script,\n },\n }).then(resp => {\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n return resource\n })\n }\n\n return postScript({\n data: {\n name: data.name,\n description: data?.description || ' ',\n script: data.script,\n language: language ?? LanguageType.FLUX,\n },\n }).then(resp => {\n if (resp.status !== 201) {\n throw new Error(resp.data.message)\n }\n\n return {\n ...resource,\n data: {\n ...data,\n id: resp.data.id,\n },\n }\n })\n },\n }\n}\n","import {ReactNode} from 'react'\nimport {ResourceType} from 'src/types/resources'\nimport {scriptResourceRegistration} from 'src/dataExplorer/components/resources/types/script'\n\nexport const SCRIPT_EDITOR_PARAMS = '?fluxScriptEditor'\n\nexport enum LanguageType {\n FLUX = 'flux',\n SQL = 'sql',\n INFLUXQL = 'influxQL',\n}\nexport interface ResourceConnectedQuery {\n type: ResourceType\n flux: string\n language: LanguageType\n data: T\n}\n\nexport interface ResourceRegistration {\n type: ResourceType\n disabled?: boolean\n editor: ReactNode\n init: (...args: string[]) => Promise>\n persist: (\n query: ResourceConnectedQuery\n ) => Promise>\n}\n\ninterface Resources {\n [type: string]: ResourceRegistration\n}\n\nexport const RESOURCES: Resources = {\n scripts: scriptResourceRegistration(),\n}\n","// Libraries\nimport React, {FC, createContext, useCallback} from 'react'\nimport {useSelector} from 'react-redux'\n\n// Types\nimport {TimeRange, RecursivePartial} from 'src/types'\nimport {Bucket, TagKeyValuePair} from 'src/types'\nimport {DBRP} from 'src/client'\n\n// Utils\nimport {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {useSessionStorage} from 'src/dataExplorer/shared/utils'\nimport {\n LanguageType,\n RESOURCES,\n ResourceConnectedQuery,\n} from 'src/dataExplorer/components/resources'\nimport {isOrgIOx} from 'src/organizations/selectors'\n\ninterface CompositionStatus {\n synced: boolean // true == can modify session's schema\n}\n\nexport enum GroupType {\n Default = 'Default',\n GroupBy = 'Group By',\n Ungroup = 'Ungroup',\n}\n\nexport interface GroupOptions {\n type: GroupType\n columns: string[]\n}\n\nexport const DEFAULT_GROUP_OPTIONS: GroupOptions = {\n type: GroupType.Default,\n columns: [],\n}\n\nexport interface AggregateWindow {\n isOn: boolean\n isAutoWindowPeriod: boolean\n every: string // TODO: check if there is a duration type\n fn: string // TODO: check if there is a enum fn list\n column: string\n createEmpty: boolean\n}\n\nexport const DEFAULT_WINDOW_PERIOD: string = '1m'\n\nexport const DEFAULT_AGGREGATE_WINDOW: AggregateWindow = {\n isOn: false,\n isAutoWindowPeriod: true,\n every: DEFAULT_WINDOW_PERIOD,\n fn: '',\n column: '',\n createEmpty: true,\n}\n\ninterface ResultOptions {\n fieldsAsColumn: boolean\n group: GroupOptions\n aggregateWindow: AggregateWindow\n}\n\nexport interface CompositionSelection {\n bucket: Bucket\n dbrp: DBRP\n measurement: string\n fields: string[]\n tagValues: TagKeyValuePair[]\n composition: CompositionStatus\n resultOptions: ResultOptions\n}\n\ninterface ContextType {\n hasChanged: boolean\n horizontal: number[]\n vertical: number[]\n range: TimeRange\n query: string\n resource: ResourceConnectedQuery\n selection: CompositionSelection\n\n setHasChanged: (hasChanged: boolean) => void\n setHorizontal: (val: number[]) => void\n setVertical: (val: number[]) => void\n setRange: (val: TimeRange) => void\n setQuery: (val: string) => void\n setResource: (val: ResourceConnectedQuery) => void\n setSelection: (val: RecursivePartial) => void\n clearCompositionSelection: () => void\n\n save: (language: LanguageType) => Promise>\n}\n\nexport const DEFAULT_SELECTION: CompositionSelection = {\n bucket: null,\n dbrp: null,\n measurement: null,\n fields: [] as string[],\n tagValues: [] as TagKeyValuePair[],\n composition: {\n synced: true,\n } as CompositionStatus,\n resultOptions: {\n fieldsAsColumn: false,\n group: DEFAULT_GROUP_OPTIONS,\n aggregateWindow: DEFAULT_AGGREGATE_WINDOW,\n } as ResultOptions,\n}\n\nexport const DEFAULT_FLUX_EDITOR_TEXT =\n '// Start by selecting data from the schema browser or typing flux here'\nexport const DEFAULT_SQL_EDITOR_TEXT = '/* Start by typing SQL here */'\nexport const DEFAULT_INFLUXQL_EDITOR_TEXT =\n '/* Start by typing InfluxQL here */'\n\nconst DEFAULT_CONTEXT = {\n hasChanged: false,\n horizontal: [0.5],\n vertical: [0.25, 0.8],\n range: DEFAULT_TIME_RANGE,\n query: '',\n resource: null,\n selection: JSON.parse(JSON.stringify(DEFAULT_SELECTION)),\n\n setHasChanged: (_: boolean) => {},\n setHorizontal: (_: number[]) => {},\n setVertical: (_: number[]) => {},\n setRange: (_: TimeRange) => {},\n setQuery: (_: string) => {},\n setResource: (_: any) => {},\n setSelection: (_: RecursivePartial) => {},\n clearCompositionSelection: () => {},\n save: (_: LanguageType) => Promise.resolve(null),\n}\n\nexport const PersistanceContext = createContext(DEFAULT_CONTEXT)\n\nexport const PersistanceProvider: FC = ({children}) => {\n const isIoxOrg = useSelector(isOrgIOx)\n\n const [horizontal, setHorizontal] = useSessionStorage(\n 'dataExplorer.resize.horizontal',\n [...DEFAULT_CONTEXT.horizontal]\n )\n const [hasChanged, setHasChanged] = useSessionStorage(\n 'dataExplorer.hasChanged',\n DEFAULT_CONTEXT.hasChanged\n )\n const [vertical, setVertical] = useSessionStorage(\n 'dataExplorer.resize.vertical',\n [...DEFAULT_CONTEXT.vertical]\n )\n const [query, setQuery] = useSessionStorage(\n 'dataExplorer.query',\n isIoxOrg ? DEFAULT_SQL_EDITOR_TEXT : DEFAULT_FLUX_EDITOR_TEXT\n )\n const [range, setRange] = useSessionStorage(\n 'dataExplorer.range',\n DEFAULT_CONTEXT.range\n )\n const [resource, setResource] = useSessionStorage('dataExplorer.resource', {\n type: 'scripts',\n flux: '',\n language: isIoxOrg ? LanguageType.SQL : LanguageType.FLUX,\n data: {},\n })\n const [selection, setSelection] = useSessionStorage(\n 'dataExplorer.schema',\n JSON.parse(JSON.stringify(DEFAULT_CONTEXT.selection))\n )\n\n const handleSetQuery = text => {\n if (hasChanged === false) {\n setHasChanged(true)\n }\n setQuery(text)\n }\n\n const handleSetResource = useCallback(\n (resource: any) => {\n if (hasChanged === false) {\n setHasChanged(true)\n }\n setResource(resource)\n },\n [hasChanged]\n )\n\n const clearCompositionSelection = () => {\n setSelection(JSON.parse(JSON.stringify(DEFAULT_SELECTION)))\n }\n\n const setCompositionSelection = useCallback(\n newSelection => {\n const composition: CompositionStatus = {\n ...(selection.composition || {}),\n ...(newSelection.composition || {}),\n }\n const nextState: CompositionSelection = {\n ...selection,\n ...newSelection,\n composition,\n resultOptions: {\n ...(selection.resultOptions || {}),\n ...(newSelection.resultOptions || {}),\n } as ResultOptions,\n }\n if (hasChanged === false) {\n setHasChanged(true)\n }\n setSelection(nextState)\n },\n [\n hasChanged,\n resource?.language,\n selection.composition,\n selection.resultOptions,\n selection.fields,\n selection.tagValues,\n setSelection,\n ]\n )\n\n const save = (language: LanguageType) => {\n if (!resource || !RESOURCES[resource.type]) {\n return Promise.resolve(null)\n }\n\n resource.flux = query\n resource.language = language\n\n return RESOURCES[resource.type].persist(resource).then(data => {\n handleSetResource(data)\n setHasChanged(false)\n return data\n })\n }\n\n return (\n \n {children}\n \n )\n}\n","import {useState, useEffect} from 'react'\nimport {LanguageType} from 'src/dataExplorer/components/resources'\nimport {TimeRange} from 'src/types'\n\nexport const LOAD_MORE_LIMIT_INITIAL = 8\nexport const LOAD_MORE_LIMIT = 25\nexport const IMPORT_REGEXP = 'import \"regexp\"\\n'\nexport const IMPORT_STRINGS = 'import \"strings\"\\n'\nexport const IMPORT_INFLUX_SCHEMA = 'import \"influxdata/influxdb/schema\"\\n'\n\n// Sample data always has bucket id. Here is the code for sample bucket list\n// Src/shared/contexts/buckets.tsx\nexport const SAMPLE_DATA_SET = (bucketID: string) =>\n `import \"influxdata/influxdb/sample\"\\nsample.data(set: \"${bucketID}\")`\n\nexport const FROM_BUCKET = (bucketName: string) =>\n `from(bucket: \"${bucketName}\")`\n\nexport const SEARCH_STRING = (searchTerm: string): string =>\n `|> filter(fn: (r) => r._value =~ regexp.compile(v: \"(?i:\" + regexp.quoteMeta(v: \"${searchTerm}\") + \")\"))`\n\nexport const getLanguage = () => {\n const urlSearchParams = new URLSearchParams(window.location.search)\n const urlParams = Object.fromEntries(urlSearchParams.entries())\n return (urlParams?.language as LanguageType) ?? LanguageType.FLUX\n}\n\nexport const useSessionStorage = (keyName: string, defaultValue: any) => {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const value = window.sessionStorage.getItem(keyName)\n\n if (value) {\n return JSON.parse(value)\n } else {\n window.sessionStorage.setItem(keyName, JSON.stringify(defaultValue))\n return defaultValue\n }\n } catch (err) {\n return defaultValue\n }\n })\n\n const setValue = (newValue: any) => {\n try {\n window.sessionStorage.setItem(keyName, JSON.stringify(newValue))\n window.dispatchEvent(\n new CustomEvent('same.storage', {\n detail: {key: keyName, oldValue: storedValue, newValue},\n })\n )\n } catch (err) {}\n setStoredValue(newValue)\n }\n\n // multiple implementations of the same provider, though they share the same state\n // in window.sessionStorage, will fall out of sync as their setStoredValue\n // functions dont know about each other. there's a 'storage' event on window built\n // to mitigate that issue, but it's only fired across tabs, which session storage\n // doesn't even operate across. So here we're generating a custom event to keep\n // all inter-tab invokations of the session storage hook in sync.\n useEffect(() => {\n const listen = (evt: CustomEvent) => {\n if (!evt.detail.key || evt.detail.key !== keyName) {\n return\n }\n\n setStoredValue(evt.detail.newValue)\n }\n\n window.addEventListener('same.storage', listen)\n\n return () => {\n window.removeEventListener('same.storage', listen)\n }\n }, [])\n\n return [storedValue, setValue]\n}\n\nconst DEBOUNCE_TIMEOUT = 500\nlet timer: ReturnType\ntype NOOP = () => void\nexport const debouncer = (action: NOOP): void => {\n clearTimeout(timer)\n timer = setTimeout(() => {\n action()\n timer = null\n }, DEBOUNCE_TIMEOUT)\n}\n\nexport const rangeToParam = (timeRange: TimeRange) => {\n let timeRangeStart: string, timeRangeStop: string\n const durationRegExp = /([0-9]+)(y|mo|w|d|h|ms|s|m|us|µs|ns)$/g\n\n if (!timeRange) {\n timeRangeStart = timeRangeStop = null\n } else {\n if (timeRange.type === 'selectable-duration') {\n timeRangeStart = '-' + timeRange.duration\n } else if (timeRange.type === 'duration') {\n timeRangeStart = '-' + timeRange.lower\n } else if (!isNaN(Number(timeRange.lower)) || timeRange.lower === 'now()') {\n timeRangeStart = timeRange.lower\n } else if (!!timeRange?.lower?.match(durationRegExp)) {\n timeRangeStart = timeRange.lower\n } else if (isNaN(Date.parse(timeRange.lower))) {\n timeRangeStart = null\n } else {\n timeRangeStart = new Date(timeRange.lower).toISOString()\n }\n\n if (!timeRange.upper) {\n timeRangeStop = 'now()'\n } else if (!isNaN(Number(timeRange.upper)) || timeRange.upper === 'now()') {\n timeRangeStop = timeRange.upper\n } else if (!!timeRange?.upper?.match(durationRegExp)) {\n timeRangeStop = timeRange.upper\n } else if (isNaN(Date.parse(timeRange.upper))) {\n timeRangeStop = null\n } else {\n timeRangeStop = new Date(timeRange.upper).toISOString()\n }\n }\n\n return {\n timeRangeStart,\n timeRangeStop,\n }\n}\n","// Libraries\nimport React, {SFC} from 'react'\n\nconst LogoApache: SFC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n logo_apache\n \n \n \n \n \n \n \n \n )\n}\n\nexport default LogoApache\n","// Libraries\nimport React, {SFC} from 'react'\n\nconst LogoCpu: SFC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default LogoCpu\n","// Libraries\nimport React, {SFC} from 'react'\n\nconst LogoDocker: SFC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default LogoDocker\n","// Libraries\nimport React, {SFC} from 'react'\n\nconst LogoKubernetes: SFC = () => {\n return (\n \n \n \n \n \n \n )\n}\n\nexport default LogoKubernetes\n","// Libraries\nimport React, {SFC} from 'react'\n\nconst LogoNginx: SFC = () => {\n return (\n \n \n \n \n \n \n )\n}\n\nexport default LogoNginx\n","// Libraries\nimport React, {SFC} from 'react'\n\nconst LogoRedis: SFC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default LogoRedis\n","// Types\nimport {\n TelegrafPluginName,\n TelegrafPluginInfo,\n ConfigFieldType,\n BundleName,\n} from 'src/types'\nimport {\n LogoCpu,\n LogoDocker,\n LogoKubernetes,\n LogoNginx,\n LogoRedis,\n} from 'src/dataLoaders/graphics'\n\nexport const QUICKSTART_SCRAPER_TARGET_URL = `${window.location.origin}/metrics`\n\ninterface PluginBundles {\n [bundleName: string]: TelegrafPluginName[]\n}\n\nexport const pluginsByBundle: PluginBundles = {\n [BundleName.System]: [\n 'cpu',\n 'disk',\n 'diskio',\n 'system',\n 'mem',\n 'net',\n 'processes',\n 'swap',\n ],\n [BundleName.Docker]: ['docker'],\n [BundleName.Kubernetes]: ['kubernetes'],\n [BundleName.Nginx]: ['nginx'],\n [BundleName.Redis]: ['redis'],\n}\n\nexport const telegrafPluginsInfo: TelegrafPluginInfo = {\n cpu: {\n fields: null,\n defaults: {\n name: 'cpu',\n type: 'input',\n },\n templateID: '0000000000000009',\n },\n disk: {\n fields: null,\n defaults: {\n name: 'disk',\n type: 'input',\n },\n templateID: '0000000000000009',\n },\n diskio: {\n fields: null,\n defaults: {\n name: 'diskio',\n type: 'input',\n },\n templateID: '0000000000000009',\n },\n docker: {\n fields: {\n endpoint: {\n type: ConfigFieldType.String,\n isRequired: true,\n },\n },\n defaults: {\n name: 'docker',\n type: 'input',\n config: {endpoint: ''},\n },\n templateID: '0000000000000002',\n },\n file: {\n fields: {\n files: {\n type: ConfigFieldType.StringArray,\n isRequired: true,\n },\n },\n defaults: {\n name: 'file',\n type: 'input',\n config: {files: []},\n },\n },\n kernel: {\n fields: null,\n defaults: {\n name: 'kernel',\n type: 'input',\n },\n },\n kubernetes: {\n fields: {\n url: {\n type: ConfigFieldType.Uri,\n isRequired: true,\n },\n },\n defaults: {\n name: 'kubernetes',\n type: 'input',\n config: {url: ''},\n },\n templateID: '0000000000000005',\n },\n logparser: {\n fields: {files: {type: ConfigFieldType.StringArray, isRequired: true}},\n defaults: {\n name: 'logparser',\n type: 'input',\n config: {files: []},\n },\n },\n mem: {\n fields: null,\n defaults: {\n name: 'mem',\n type: 'input',\n },\n templateID: '0000000000000009',\n },\n net: {\n fields: null,\n defaults: {\n name: 'net',\n type: 'input',\n },\n templateID: '0000000000000009',\n },\n net_response: {\n fields: null,\n defaults: {\n name: 'net_response',\n type: 'input',\n },\n },\n nginx: {\n fields: {urls: {type: ConfigFieldType.UriArray, isRequired: true}},\n defaults: {\n name: 'nginx',\n type: 'input',\n },\n templateID: '0000000000000006',\n },\n ['processes']: {\n fields: null,\n defaults: {\n name: 'processes',\n type: 'input',\n },\n templateID: '0000000000000009',\n },\n procstat: {\n fields: {exe: {type: ConfigFieldType.String, isRequired: true}},\n defaults: {\n name: 'procstat',\n type: 'input',\n config: {exe: ''},\n },\n },\n prometheus: {\n fields: {urls: {type: ConfigFieldType.UriArray, isRequired: true}},\n defaults: {\n name: 'prometheus',\n type: 'input',\n config: {urls: []},\n },\n },\n redis: {\n fields: {\n servers: {type: ConfigFieldType.StringArray, isRequired: true},\n password: {type: ConfigFieldType.String, isRequired: false},\n },\n defaults: {\n name: 'redis',\n type: 'input',\n config: {servers: [], password: ''},\n },\n templateID: '0000000000000008',\n },\n syslog: {\n fields: {server: {type: ConfigFieldType.String, isRequired: true}},\n defaults: {\n name: 'syslog',\n type: 'input',\n config: {server: ''},\n },\n },\n swap: {\n fields: null,\n defaults: {\n name: 'swap',\n type: 'input',\n },\n templateID: '0000000000000009',\n },\n system: {\n fields: null,\n defaults: {\n name: 'system',\n type: 'input',\n },\n templateID: '0000000000000009',\n },\n tail: {\n fields: null,\n defaults: {\n name: 'tail',\n type: 'input',\n },\n },\n}\n\nexport const BUNDLE_LOGOS = {\n [BundleName.System]: LogoCpu,\n [BundleName.Docker]: LogoDocker,\n [BundleName.Kubernetes]: LogoKubernetes,\n [BundleName.Nginx]: LogoNginx,\n [BundleName.Redis]: LogoRedis,\n}\n\nexport const PLUGIN_BUNDLE_OPTIONS: BundleName[] = [\n BundleName.System,\n BundleName.Docker,\n BundleName.Kubernetes,\n BundleName.Nginx,\n BundleName.Redis,\n]\n","import {get} from 'lodash'\n\n// Constants\nimport {\n telegrafPluginsInfo,\n pluginsByBundle,\n} from 'src/dataLoaders/constants/pluginConfigs'\n\n// Types\nimport {\n BundleName,\n ConfigFields,\n Plugin,\n TelegrafPlugin,\n TelegrafPluginName,\n} from 'src/types/dataLoaders'\n\nexport const getConfigFields = (\n pluginName: TelegrafPluginName\n): ConfigFields => {\n return telegrafPluginsInfo[pluginName].fields\n}\n\nexport const updateConfigFields = (\n plugin: T,\n fieldName: string,\n value: string[] | string\n): T => {\n return Object.assign({}, plugin, {\n config: Object.assign({}, get(plugin, 'config', {}), {\n [fieldName]: value,\n }),\n })\n}\n\nexport const createNewPlugin = (plugin: TelegrafPlugin): Plugin => {\n if (telegrafPluginsInfo[plugin?.name]) {\n return telegrafPluginsInfo[plugin.name].defaults\n }\n const {\n plugin: {type: pluginType} = {\n type: 'input',\n },\n } = plugin\n return {\n name: plugin.name ? plugin.name : 'plugin-input',\n type: pluginType,\n }\n}\n\nexport const isPluginUniqueToBundle = (\n telegrafPlugin: TelegrafPluginName,\n bundle: BundleName,\n bundles: BundleName[]\n): boolean => {\n return bundles.reduce((acc: boolean, b) => {\n if (b === bundle) {\n return acc\n }\n\n pluginsByBundle[b].forEach(p => {\n if (p === telegrafPlugin) {\n acc = false\n }\n })\n\n return acc\n }, true)\n}\n\nexport const isPluginInBundle = (\n telegrafPlugin: TelegrafPluginName,\n bundle: BundleName\n) => {\n return !!pluginsByBundle[bundle].find(p => p === telegrafPlugin)\n}\n","import {Notebook} from 'src/client/notebooksRoutes'\n\nexport const SET_NOTEBOOKS = 'SET_NOTEBOOKS'\n\nexport type Actions = ReturnType\n\nexport const setNotebooks = (notebooks: Notebook[]) => ({\n type: SET_NOTEBOOKS,\n notebooks,\n})\n","import {Dispatch} from 'redux'\n\nimport {Notebook} from 'src/client/notebooksRoutes'\n\nimport {getNotebooks as fetchNotebooks} from 'src/client/notebooksRoutes'\nimport {setNotebooks} from 'src/flows/actions/flowsActions'\n\nexport const getNotebooks =\n (orgID: string) => async (dispatch: Dispatch) => {\n try {\n const response = await fetchNotebooks({query: {orgID}})\n\n if (response.status !== 200) {\n throw new Error()\n }\n\n dispatch(setNotebooks(response.data.flows))\n } catch {\n const emptyNotebooks = [] as Notebook[]\n dispatch(setNotebooks(emptyNotebooks))\n }\n }\n","import {\n PatchNotebookParams,\n patchNotebook,\n PostNotebookParams,\n postNotebook,\n DeleteNotebookParams,\n deleteNotebook,\n getNotebooks,\n} from 'src/client/notebooksRoutes'\nimport {notebookUpdateFail} from 'src/shared/copy/notifications'\nimport {notify} from 'src/shared/actions/notifications'\nimport {getErrorMessage} from 'src/utils/api'\n\nconst DEFAULT_API_FLOW: PatchNotebookParams = {\n id: '',\n data: {},\n}\nlet stagedFlow: PatchNotebookParams = DEFAULT_API_FLOW\nlet reportDecayTimeout = null\nlet reportMaxTimeout = null\n\nconst REPORT_DECAY = 500 // number of miliseconds to wait after last event before sending\nconst REPORT_MAX_WAIT = 5000 // max number of miliseconds to wait between sends\n\nexport const pooledUpdateAPI = (flow: PatchNotebookParams) => {\n stagedFlow = flow\n\n if (!!reportDecayTimeout) {\n clearTimeout(reportDecayTimeout)\n reportDecayTimeout = null\n }\n\n if (!reportMaxTimeout) {\n reportMaxTimeout = setTimeout(() => {\n reportMaxTimeout = null\n\n // flow already synced\n if (stagedFlow === DEFAULT_API_FLOW) {\n return\n }\n\n clearTimeout(reportDecayTimeout)\n reportDecayTimeout = null\n updateAPI(stagedFlow)\n\n stagedFlow = DEFAULT_API_FLOW\n }, REPORT_MAX_WAIT)\n }\n\n reportDecayTimeout = setTimeout(() => {\n updateAPI(stagedFlow)\n\n stagedFlow = DEFAULT_API_FLOW\n }, REPORT_DECAY)\n}\n\nexport const updateAPI = async (flow: PatchNotebookParams) => {\n const res = await patchNotebook(flow)\n if (res.status != 200) {\n throw new Error(res.data.message)\n }\n}\n\nexport const createAPI = async (flow: PostNotebookParams) => {\n const res = await postNotebook(flow)\n if (res.status != 200) {\n throw new Error(res.data.message)\n }\n return res.data\n}\n\nexport const deleteAPI = async (ids: DeleteNotebookParams) => {\n const res = await deleteNotebook(ids)\n if (res.status != 204) {\n throw new Error(res.data.message)\n }\n}\n\nexport const getAllAPI = async (orgID: string) => {\n const res = await getNotebooks({query: {orgID}})\n if (res.status != 200) {\n throw new Error(res.data.message)\n }\n return res.data\n}\n\nexport const migrateLocalFlowsToAPI = async (\n orgID: string,\n flows: {},\n serialize: Function,\n dispatch: Function\n) => {\n const localFlows = Object.keys(flows).filter(id => id.includes('local'))\n if (localFlows.length) {\n await Promise.all(\n localFlows.map(async localID => {\n const flow = flows[localID]\n const apiFlow: PostNotebookParams = serialize(flow, orgID)\n const {id} = await createAPI(apiFlow)\n delete flows[localID]\n flows[id] = flow\n })\n ).catch(err => {\n // do not throw the error because some flows might have saved and we\n // need to save the new IDs to avoid creating duplicates next time.\n dispatch(notify(notebookUpdateFail(getErrorMessage(err))))\n })\n }\n return flows\n}\n","import React, {FC, useCallback, useRef, useState, useEffect} from 'react'\nimport {Flow, PipeData, PipeMeta} from 'src/types/flows'\nimport {customAlphabet} from 'nanoid'\nimport {PIPE_DEFINITIONS, PROJECT_NAME_PLURAL} from 'src/flows'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\nimport {Doc} from 'yjs'\nimport {WebsocketProvider} from 'y-websocket'\nimport {serialize, hydrate} from 'src/flows/context/flow.list'\nimport {useParams} from 'react-router-dom'\nimport {\n deleteNotebook,\n getNotebook,\n postNotebook,\n} from 'src/client/notebooksRoutes'\nimport {event} from 'src/cloud/utils/reporting'\nimport {pooledUpdateAPI} from 'src/flows/context/api'\nimport {useDispatch} from 'react-redux'\nimport {notify} from 'src/shared/actions/notifications'\nimport {\n notebookDeleteFail,\n notebookDeleteSuccess,\n} from 'src/shared/copy/notifications'\nimport PageSpinner from 'src/perf/components/PageSpinner'\nimport {pageTitleSuffixer} from 'src/shared/utils/pageTitles'\nimport {RemoteDataState} from '@influxdata/clockface'\nimport {setCloneName} from 'src/utils/naming'\nimport {getErrorMessage} from 'src/utils/api'\n\nconst prettyid = customAlphabet('abcdefghijklmnop0123456789', 12)\n\nexport interface FlowContextType {\n flow: Flow | null\n add: (data: Partial, index?: number) => string\n cloneNotebook: () => void\n deleteNotebook: () => void\n updateData: (id: string, data: Partial) => void\n updateMeta: (id: string, meta: Partial) => void\n updateOther: (flow: Partial) => void\n remove: (id: string) => void\n populate: (data: Flow) => void\n}\n\nexport const DEFAULT_CONTEXT: FlowContextType = {\n flow: null,\n add: _ => '',\n cloneNotebook: () => {},\n deleteNotebook: () => {},\n updateData: (_, __) => {},\n updateMeta: (_, __) => {},\n updateOther: _ => {},\n remove: _ => {},\n populate: _ => null,\n}\n\nexport const FlowContext = React.createContext(DEFAULT_CONTEXT)\n\nlet GENERATOR_INDEX = 0\n\nconst WEBSOCKET_AUTH_FAILED = 4000\n\nexport const FlowProvider: FC = ({children}) => {\n const dispatch = useDispatch()\n const {id, orgID} = useParams<{id: string; orgID: string}>()\n const [currentFlow, setCurrentFlow] = useState()\n const [loading, setLoading] = useState(\n RemoteDataState.NotStarted\n )\n const provider = useRef()\n const yDoc = useRef(new Doc())\n function disconnectProvider() {\n if (provider.current) {\n provider.current.disconnect()\n }\n }\n\n const handleDeleteNotebook = useCallback(async () => {\n event('delete_notebook')\n try {\n const response = await deleteNotebook({id})\n\n if (response.status !== 204) {\n throw new Error(response.data.message)\n }\n\n dispatch(notify(notebookDeleteSuccess()))\n return id\n } catch (error) {\n dispatch(notify(notebookDeleteFail(getErrorMessage(error))))\n }\n }, [dispatch, id])\n\n const handleCloneNotebook = useCallback(async () => {\n try {\n const _flow = serialize({\n ...currentFlow,\n name: setCloneName(currentFlow.name),\n })\n delete _flow.data.id\n\n const response = await postNotebook(_flow)\n\n if (response.status !== 200) {\n throw new Error(response.data.message)\n }\n\n return response.data.id\n } catch (error) {\n console.error({error})\n }\n }, [currentFlow, orgID])\n\n const handleGetNotebook = useCallback(async notebookId => {\n try {\n setLoading(RemoteDataState.Loading)\n const response = await getNotebook({id: notebookId})\n\n if (response.status !== 200) {\n throw new Error(response.data.message)\n }\n\n setCurrentFlow(hydrate(response.data))\n setLoading(RemoteDataState.Done)\n } catch (error) {\n console.error({error})\n setLoading(RemoteDataState.Error)\n }\n }, [])\n\n useEffect(() => {\n if (id) {\n event('Notebook Accessed', {notebookID: id})\n handleGetNotebook(id)\n }\n }, [handleGetNotebook, id])\n\n const syncFunc = useCallback(\n (isSynced: boolean) => {\n if (!isSynced || !yDoc.current) {\n return\n }\n const {flowUpdateData} = yDoc.current.getMap('flowUpdateData')\n ? yDoc.current.getMap('flowUpdateData').toJSON()\n : {flowUpdateData: null} // necessary to avoid an error since flowUpdateData is destructured in assignment\n if (!flowUpdateData && currentFlow) {\n yDoc.current\n .getMap('flowUpdateData')\n .set('flowUpdateData', serialize(currentFlow))\n }\n },\n [currentFlow]\n )\n\n const closeFunc = useCallback(event => {\n if (event.code === WEBSOCKET_AUTH_FAILED) {\n provider.current.disconnect()\n }\n }, [])\n\n useEffect(() => {\n const doc = yDoc.current\n if (isFlagEnabled('sharedFlowEditing') && id) {\n provider.current = new WebsocketProvider(\n `wss://${window.location.host}/api/workbench`,\n id,\n doc\n )\n\n provider.current.on('sync', syncFunc)\n provider.current.on('connection-close', closeFunc)\n }\n\n const onUpdate = () => {\n const {flowUpdateData} = doc.getMap('flowUpdateData').toJSON()\n const hydrated = hydrate(flowUpdateData?.data)\n\n setCurrentFlow(hydrated)\n }\n\n doc.on('update', onUpdate)\n return () => {\n if (isFlagEnabled('sharedFlowEditing')) {\n disconnectProvider()\n }\n doc.off('update', onUpdate)\n }\n }, [id])\n\n const update = useCallback(\n (flow: Flow) => {\n setCurrentFlow(prev => ({\n ...prev,\n ...flow,\n }))\n\n const apiFlow = serialize({\n ...flow,\n })\n\n pooledUpdateAPI({id, ...apiFlow})\n },\n [id]\n )\n\n const updateData = useCallback(\n (id: string, data: Partial) => {\n if (isFlagEnabled('sharedFlowEditing')) {\n const flowCopy = JSON.parse(JSON.stringify(currentFlow))\n if (flowCopy?.data?.byID[id]) {\n flowCopy.data.byID[id] = {\n ...(flowCopy.data.byID[id] || {}),\n ...data,\n }\n yDoc.current\n .getMap('flowUpdateData')\n .set('flowUpdateData', serialize(flowCopy))\n }\n return\n }\n\n currentFlow.data.byID[id] = {\n ...(currentFlow.data.byID[id] || {}),\n ...data,\n }\n\n // this should update the useEffect on the next time around\n update(currentFlow)\n },\n [currentFlow, update]\n )\n\n const updateMeta = useCallback(\n (id: string, meta: Partial) => {\n if (isFlagEnabled('sharedFlowEditing')) {\n if (currentFlow?.meta?.byID[id]) {\n const flowCopy = JSON.parse(JSON.stringify(currentFlow))\n flowCopy.meta.byID[id] = {\n title: '',\n visible: true,\n ...(flowCopy.meta.byID[id] || {}),\n ...meta,\n }\n\n yDoc.current\n .getMap('flowUpdateData')\n .set('flowUpdateData', serialize(flowCopy))\n }\n return\n }\n\n currentFlow.meta.byID[id] = {\n title: '',\n visible: true,\n ...(currentFlow.meta.byID[id] || {}),\n ...meta,\n }\n\n // this should update the useEffect on the next time around\n update(currentFlow)\n },\n [currentFlow, update]\n )\n\n const updateOther = useCallback(\n (flow: Partial) => {\n if (isFlagEnabled('sharedFlowEditing')) {\n if (currentFlow) {\n const flowCopy = JSON.parse(JSON.stringify(currentFlow))\n for (const ni in flow) {\n flowCopy[ni] = flow[ni]\n }\n yDoc.current\n .getMap('flowUpdateData')\n .set('flowUpdateData', serialize(flowCopy))\n }\n return\n }\n\n for (const prop in flow) {\n currentFlow[prop] = flow[prop]\n }\n\n update(currentFlow)\n },\n [currentFlow, update]\n )\n\n const addPipe = (initialTemplate: PipeData, index?: number) => {\n const initial = JSON.parse(JSON.stringify(initialTemplate))\n const id = prettyid()\n const title =\n initial.title ||\n `${PIPE_DEFINITIONS[initial.type].button || 'Panel'} ${++GENERATOR_INDEX}`\n\n delete initial.title\n initial.id = id\n\n if (isFlagEnabled('sharedFlowEditing')) {\n const flowCopy = JSON.parse(JSON.stringify(currentFlow))\n flowCopy.data.byID[id] = initial\n flowCopy.meta.byID[id] = {\n title,\n visible: true,\n }\n if (typeof index !== 'undefined') {\n flowCopy.data.allIDs.splice(index + 1, 0, id)\n flowCopy.meta.allIDs.splice(index + 1, 0, id)\n } else {\n flowCopy.data.allIDs.push(id)\n flowCopy.meta.allIDs.push(id)\n }\n yDoc.current\n .getMap('flowUpdateData')\n .set('flowUpdateData', serialize(flowCopy))\n return\n }\n\n currentFlow.data.byID[id] = initial\n currentFlow.meta.byID[id] = {\n title,\n visible: true,\n }\n\n if (typeof index !== 'undefined') {\n currentFlow.data.allIDs.splice(index + 1, 0, id)\n currentFlow.meta.allIDs.splice(index + 1, 0, id)\n } else {\n currentFlow.data.allIDs.push(id)\n currentFlow.meta.allIDs.push(id)\n }\n\n updateData(id, {})\n updateMeta(id, {})\n\n return id\n }\n\n const removePipe = (id: string) => {\n const definition = PIPE_DEFINITIONS[currentFlow.data.byID[id].type]\n if (definition?.beforeRemove) {\n definition.beforeRemove(currentFlow.data.byID[id])\n }\n\n if (isFlagEnabled('sharedFlowEditing')) {\n const flowCopy = JSON.parse(JSON.stringify(currentFlow))\n\n flowCopy.meta.allIDs = flowCopy.meta.allIDs.filter(_id => _id !== id)\n flowCopy.data.allIDs = flowCopy.data.allIDs.filter(_id => _id !== id)\n\n delete flowCopy.data.byID[id]\n delete flowCopy.meta.byID[id]\n yDoc.current\n .getMap('flowUpdateData')\n .set('flowUpdateData', serialize(flowCopy))\n return\n }\n\n const flowCopy = JSON.parse(JSON.stringify(currentFlow))\n\n flowCopy.meta.allIDs = flowCopy.meta.allIDs.filter(_id => _id !== id)\n flowCopy.data.allIDs = flowCopy.data.allIDs.filter(_id => _id !== id)\n\n delete flowCopy.data.byID[id]\n delete flowCopy.meta.byID[id]\n\n update(flowCopy)\n }\n\n document.title = pageTitleSuffixer([currentFlow?.name, PROJECT_NAME_PLURAL])\n\n return (\n \n \n {children}\n \n \n )\n}\n\nconst CurrentFlow: FC = ({children}) => {\n return {children}\n}\n\nexport default CurrentFlow\n","import React, {FC, useCallback, useEffect, useState} from 'react'\nimport {useDispatch, useSelector} from 'react-redux'\nimport {createLocalStorageStateHook} from 'use-local-storage-state'\nimport {nanoid} from 'nanoid'\nimport {\n FlowList,\n Flow,\n FlowState,\n Resource,\n PipeData,\n PipeMeta,\n} from 'src/types/flows'\nimport {getOrg} from 'src/organizations/selectors'\nimport {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {AUTOREFRESH_DEFAULT} from 'src/shared/constants'\nimport {DEFAULT_PROJECT_NAME, PROJECT_NAME} from 'src/flows'\nimport {TEMPLATES} from 'src/flows/templates'\nimport {\n createAPI,\n deleteAPI,\n getAllAPI,\n migrateLocalFlowsToAPI,\n} from 'src/flows/context/api'\nimport {\n getNotebook,\n postNotebook,\n patchNotebook,\n} from 'src/client/notebooksRoutes'\nimport {notify} from 'src/shared/actions/notifications'\nimport {\n notebookCreateFail,\n notebookDeleteFail,\n notebookDeleteSuccess,\n} from 'src/shared/copy/notifications'\nimport {setCloneName} from 'src/utils/naming'\nimport {CLOUD} from 'src/shared/constants'\nimport {getErrorMessage} from 'src/utils/api'\n\nexport interface FlowListContextType extends FlowList {\n add: (flow?: Flow) => Promise\n clone: (id: string) => Promise\n update: (id: string, flow?: Flow) => void\n remove: (id: string) => void\n getAll: () => void\n}\n\nexport const EMPTY_NOTEBOOK: FlowState = {\n name: DEFAULT_PROJECT_NAME,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n data: {\n byID: {},\n allIDs: [],\n } as Resource,\n meta: {\n byID: {},\n allIDs: [],\n } as Resource,\n readOnly: false,\n}\n\nexport const DEFAULT_CONTEXT: FlowListContextType = {\n flows: {},\n add: (_flow?: Flow) => {},\n clone: (_id: string) => {},\n update: (_id: string, _flow: Partial) => {},\n remove: (_id: string) => {},\n getAll: () => {},\n} as FlowListContextType\n\nconst useLocalStorageState = createLocalStorageStateHook(\n 'flows',\n DEFAULT_CONTEXT.flows\n)\n\nexport const FlowListContext =\n React.createContext(DEFAULT_CONTEXT)\n\nexport function serialize(flow: Flow) {\n const apiFlow: any = {\n data: {\n orgID: flow.orgID,\n name: flow.name,\n spec: {\n name: flow.name,\n readOnly: flow.readOnly,\n range: flow.range,\n refresh: flow.refresh,\n createdAt: flow.createdAt,\n createdBy: flow.createdBy,\n updatedAt: flow.updatedAt,\n pipes: flow.data.allIDs.map(id => {\n const meta = flow.meta.byID[id]\n // if data changes first, meta will not exist yet\n let out = {} as PipeMeta\n\n if (meta) {\n out = {\n ...flow.data.byID[id],\n id,\n title: meta.title,\n visible: meta.visible,\n }\n\n if (meta.layout) {\n out.layout = meta.layout\n }\n }\n\n return out\n }),\n },\n },\n }\n\n if (flow.id) {\n apiFlow.data.id = flow.id\n }\n\n return apiFlow\n}\n\nexport function hydrate(data) {\n const flow = {\n ...JSON.parse(JSON.stringify(EMPTY_NOTEBOOK)),\n name: data.name || EMPTY_NOTEBOOK.name,\n range: data.spec.range,\n refresh: data.spec.refresh,\n readOnly: data.spec.readOnly,\n createdAt: data.createdAt,\n updatedAt: data.updatedAt,\n createdBy: data.createdBy,\n isDirty: data?.isDirty ?? true,\n }\n if (data.id) {\n flow.id = data.id\n }\n if (data.orgID) {\n flow.orgID = data.orgID\n }\n\n if (!data?.spec?.pipes) {\n return flow\n }\n data.spec.pipes.forEach(pipe => {\n const id = pipe.id || `local_${nanoid()}`\n\n flow.data.allIDs.push(id)\n flow.meta.allIDs.push(id)\n\n const meta = {\n title: pipe.title,\n visible: pipe.visible,\n } as PipeMeta\n\n if (pipe.layout) {\n meta.layout = pipe.layout\n delete pipe.layout\n }\n\n delete pipe.title\n delete pipe.visible\n\n flow.data.byID[id] = pipe\n flow.meta.byID[id] = meta\n })\n\n return flow\n}\n\nexport const FlowListProvider: FC = ({children}) => {\n const [flows, setFlows] = useLocalStorageState()\n const [currentID, setCurrentID] = useState(null)\n const org = useSelector(getOrg)\n\n const dispatch = useDispatch()\n useEffect(() => {\n migrate()\n getAll()\n }, [])\n\n const clone = async (id: string): Promise => {\n if (!flows.hasOwnProperty(id)) {\n throw new Error(`${PROJECT_NAME} not found`)\n }\n\n try {\n const resp = await getNotebook({id})\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n const _flow = hydrate(resp.data)\n _flow.name = setCloneName(_flow.name)\n delete _flow.id\n\n const response = await postNotebook(serialize(_flow))\n\n if (response.status !== 200) {\n throw new Error(response.data.message)\n }\n\n return response.data.id\n } catch (error) {\n console.error({error})\n }\n }\n\n const add = (flow?: Flow): Promise => {\n let _flow\n\n if (!flow) {\n _flow = hydrate({\n ...TEMPLATES['default'].init(),\n name: DEFAULT_PROJECT_NAME,\n orgID: org.id,\n })\n } else {\n _flow = {\n name: flow.name,\n orgID: flow.orgID,\n range: flow.range,\n refresh: flow.refresh,\n data: flow.data,\n meta: flow.meta,\n readOnly: flow.readOnly,\n createdAt: flow.createdAt,\n updatedAt: flow.updatedAt,\n }\n }\n\n return createAPI(serialize(_flow))\n .then(flow => {\n setFlows({\n ...flows,\n [flow.id]: hydrate(flow),\n })\n\n return flow.id\n })\n .catch(err => {\n dispatch(notify(notebookCreateFail(getErrorMessage(err))))\n })\n }\n\n const update = useCallback(\n async (id: string, flow: Partial) => {\n try {\n if (!flows.hasOwnProperty(id)) {\n throw new Error(`${PROJECT_NAME} not found`)\n }\n\n if (CLOUD) {\n const resp = await patchNotebook({\n id: id,\n data: {\n name: flow.name,\n orgID: org.id,\n },\n })\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n setFlows(prevFlows => ({\n ...prevFlows,\n [id]: {\n ...prevFlows[id],\n name: flow.name,\n },\n }))\n } else {\n const _flow = flows[id]\n\n const data = {\n ..._flow,\n name: setCloneName(_flow.name),\n }\n\n return await add(data)\n }\n } catch (error) {\n console.error({error})\n }\n },\n [setFlows, org.id, flows] // eslint-disable-line react-hooks/exhaustive-deps\n )\n\n const remove = async (id: string) => {\n const _flows = {\n ...flows,\n }\n try {\n await deleteAPI({id})\n dispatch(notify(notebookDeleteSuccess()))\n } catch (error) {\n dispatch(notify(notebookDeleteFail(getErrorMessage(error))))\n }\n\n delete _flows[id]\n if (currentID === id) {\n setCurrentID(null)\n }\n\n setFlows(_flows)\n }\n\n const getAll = useCallback(async (): Promise => {\n const data = await getAllAPI(org.id)\n if (data && data.flows) {\n const _flows = {}\n if (CLOUD) {\n data.flows.forEach(flow => {\n _flows[flow.id] = {\n name: flow.name,\n createdAt: flow.createdAt,\n createdBy: flow.createdBy,\n updatedAt: flow.updatedAt,\n }\n })\n } else {\n data.flows.forEach(f => {\n _flows[f.id] = hydrate(f)\n })\n }\n setFlows(_flows)\n }\n }, [org.id, setFlows])\n\n const migrate = async () => {\n const localFlows = Object.keys(flows).filter(id => id.includes('local'))\n if (!localFlows.length) {\n return\n }\n\n const _flows = await migrateLocalFlowsToAPI(\n org.id,\n flows,\n serialize,\n dispatch\n )\n setFlows({..._flows})\n if (currentID && currentID.includes('local')) {\n // if we migrated the local currentID flow, reset currentID\n setCurrentID(Object.keys(_flows)[0])\n }\n }\n\n return (\n \n {children}\n \n )\n}\n\nexport default FlowListProvider\n","import React, {FC, useContext, useEffect, useRef} from 'react'\nimport {useDispatch, useSelector} from 'react-redux'\nimport {FlowContext} from 'src/flows/context/flow.current'\nimport {ResultsContext} from 'src/flows/context/results'\nimport {\n QueryContext,\n QueryScope,\n OverrideMechanism,\n simplify,\n} from 'src/shared/contexts/query'\nimport {event} from 'src/cloud/utils/reporting'\nimport {FluxResult} from 'src/types/flows'\nimport {PIPE_DEFINITIONS, PROJECT_NAME} from 'src/flows'\nimport {notify} from 'src/shared/actions/notifications'\nimport EmptyGraphMessage from 'src/shared/components/EmptyGraphMessage'\nimport {useEvent, sendEvent} from 'src/users/hooks/useEvent'\nimport {getOrg} from 'src/organizations/selectors'\n\n// Constants\nimport {notebookRunFail} from 'src/shared/copy/notifications'\n\n// Types\nimport {RemoteDataState} from 'src/types'\n\nexport interface Stage {\n id: string\n scope: QueryScope\n source?: string\n visual?: string\n}\n\nexport interface FlowQueryContextType {\n generateMap: (doubleForceUpdate?: boolean) => Stage[]\n printMap: (id?: string) => void\n query: (text: string, override?: QueryScope) => Promise\n basic: (text: string, override?: QueryScope) => any\n simplify: (text: string) => string\n queryAll: () => void\n queryDependents: (startID: string) => void\n getPanelQueries: (id: string) => Stage | null\n status: RemoteDataState\n}\n\nexport const DEFAULT_CONTEXT: FlowQueryContextType = {\n generateMap: () => [],\n printMap: () => {},\n query: (_: string, __: QueryScope) => Promise.resolve({} as FluxResult),\n basic: (_: string, __?: QueryScope) => {},\n simplify: (_: string) => '',\n queryAll: () => {},\n queryDependents: () => {},\n getPanelQueries: _ => ({\n id: '',\n scope: {\n region: '',\n org: '',\n },\n source: '',\n visual: '',\n }),\n status: RemoteDataState.NotStarted,\n}\n\nexport const FlowQueryContext =\n React.createContext(DEFAULT_CONTEXT)\n\nexport const FlowQueryProvider: FC = ({children}) => {\n const {flow} = useContext(FlowContext)\n const {setResult, setStatuses, statuses} = useContext(ResultsContext)\n const {query: queryAPI, basic: basicAPI} = useContext(QueryContext)\n const org = useSelector(getOrg) ?? {id: ''}\n\n const dispatch = useDispatch()\n const notebookQueryKey = `queryAll-${flow?.name}`\n\n useEffect(() => {\n if (!flow?.range) {\n return\n }\n _generateMap()\n queryAll()\n }, [flow?.range?.lower, flow?.range?.upper])\n\n useEffect(() => {\n if (flow?.readOnly) {\n queryAll()\n }\n }, [flow?.readOnly])\n\n // Share querying event across tabs\n const handleStorageEvent = e => {\n if (e.key === notebookQueryKey && e.newValue === notebookQueryKey) {\n _queryAll()\n }\n }\n useEvent('storage', handleStorageEvent)\n\n const _map = useRef([])\n let timeRangeStart, timeRangeStop\n\n if (!flow?.range) {\n timeRangeStart = timeRangeStop = null\n } else {\n if (flow.range.type === 'selectable-duration') {\n timeRangeStart = '-' + flow.range.duration\n } else if (flow.range.type === 'duration') {\n timeRangeStart = '-' + flow.range.lower\n } else if (isNaN(Date.parse(flow.range.lower))) {\n timeRangeStart = null\n } else {\n timeRangeStart = new Date(flow.range.lower).toISOString()\n }\n\n if (!flow.range.upper) {\n timeRangeStop = 'now()'\n } else if (isNaN(Date.parse(flow.range.upper))) {\n timeRangeStop = null\n } else {\n timeRangeStop = new Date(flow.range.upper).toISOString()\n }\n }\n\n const _generateMap = (): Stage[] => {\n const stages = (flow?.data?.allIDs ?? []).reduce((acc, panelID) => {\n const panel = flow.data.byID[panelID]\n\n if (!panel) {\n return acc\n }\n\n const last = acc[acc.length - 1] || {\n scope: {\n region: window.location.origin,\n org: org.id,\n vars: {\n timeRangeStart,\n timeRangeStop,\n },\n },\n source: '',\n visual: '',\n }\n\n const meta = {\n ...last,\n id: panelID,\n visual: '',\n }\n\n if (!PIPE_DEFINITIONS[panel.type]) {\n acc.push(meta)\n return acc\n }\n\n if (typeof PIPE_DEFINITIONS[panel.type].scope === 'function') {\n meta.scope = PIPE_DEFINITIONS[panel.type].scope(panel, last.scope)\n }\n\n if (typeof PIPE_DEFINITIONS[panel.type].source === 'function') {\n meta.source = PIPE_DEFINITIONS[panel.type].source(\n panel,\n '' + last.source,\n meta.scope\n )\n }\n\n if (typeof PIPE_DEFINITIONS[panel.type].visual === 'function') {\n meta.visual = PIPE_DEFINITIONS[panel.type].visual(\n panel,\n '' + last.source,\n meta.scope\n )\n }\n\n acc.push(meta)\n return acc\n }, [])\n\n _map.current = stages\n return stages\n }\n\n useEffect(() => {\n _generateMap()\n }, [flow])\n\n const generateMap = (doubleForceUpdate?: boolean): Stage[] => {\n // this is to get around an issue where a panel is added, which triggers the useEffect that updates\n // _map.current and a rerender that updates the panel view components within the same render cycle\n // leading to a panel on the list without a corresponding map entry\n const forceUpdate =\n (flow?.data?.allIDs ?? []).join(' ') !==\n (_map.current ?? []).map(m => m.id).join(' ')\n\n if (forceUpdate || doubleForceUpdate) {\n // doubleForceUpdate is used to resolve react life cycle issue\n _generateMap()\n }\n\n return _map.current\n }\n\n // TODO figure out a better way to cache these requests\n const getPanelQueries = (id: string): Stage | null => {\n if (!id) {\n return null\n }\n\n return generateMap().find(i => i.id === id)\n }\n\n // This function allows the developer to see the queries\n // that the panels are generating through a notebook. Each\n // panel should have a source query, any panel that needs\n // to display some data should have a visualization query\n const printMap = (id?: string) => {\n /* eslint-disable no-console */\n // Grab all the ids in the order that they're presented\n generateMap().forEach(i => {\n console.log(\n `\\n\\n%cPanel: %c ${i.id}`,\n 'font-family: sans-serif; font-size: 16px; font-weight: bold; color: #000',\n i.id === id\n ? 'font-weight: bold; font-size: 16px; color: #666'\n : 'font-weight: normal; font-size: 16px; color: #888'\n )\n\n console.log(\n `%c Scope: \\n%c ${JSON.stringify(i.scope, null, 2)}`,\n 'font-family: sans-serif; font-weight: bold; font-size: 14px; color: #666',\n 'font-family: monospace; color: #888'\n )\n console.log(\n `%c Source Query: \\n%c ${i.source}`,\n 'font-family: sans-serif; font-weight: bold; font-size: 14px; color: #666',\n 'font-family: monospace; color: #888'\n )\n console.log(\n `%c Visualization Query: \\n%c ${i.visual}\\n`,\n 'font-family: sans-serif; font-weight: bold; font-size: 14px; color: #666',\n 'font-family: monospace; color: #888'\n )\n })\n /* eslint-enable no-console */\n }\n\n const query = (text: string, override?: QueryScope): Promise => {\n const _override: QueryScope = {\n region: window.location.origin,\n org: org.id,\n ...(override || {}),\n }\n\n return queryAPI(text, _override, {\n overrideMechanism: OverrideMechanism.Inline,\n })\n }\n\n const basic = (text: string, override?: QueryScope): Promise => {\n const _override: QueryScope = {\n region: window.location.origin,\n org: org.id,\n ...(override || {}),\n }\n\n return basicAPI(text, _override, {\n overrideMechanism: OverrideMechanism.Inline,\n })\n }\n\n const stati = Object.values(statuses)\n\n let status = RemoteDataState.Done\n\n if (stati.every(s => s === RemoteDataState.NotStarted)) {\n status = RemoteDataState.NotStarted\n } else if (stati.includes(RemoteDataState.Error)) {\n status = RemoteDataState.Error\n } else if (stati.includes(RemoteDataState.Loading)) {\n status = RemoteDataState.Loading\n }\n\n const queryDependents = (startID: string) => {\n sendEvent(notebookQueryKey)\n _queryDependents(startID)\n }\n\n const _queryDependents = (startID: string) => {\n if (status === RemoteDataState.Loading) {\n return\n }\n\n let map = generateMap()\n\n if (!map.length) {\n return\n }\n\n map = map.slice(map.findIndex(m => m.id === startID))\n event('Running Notebook QueryDependents')\n\n setStatuses(\n map\n .filter(q => !!q?.visual)\n .reduce((a, c) => {\n a[c.id] = RemoteDataState.Loading\n return a\n }, {})\n )\n Promise.all(\n map\n .filter(q => !!q?.visual)\n .map(stage => {\n return query(stage.visual, stage.scope)\n .then(response => {\n setStatuses({[stage.id]: RemoteDataState.Done})\n setResult(stage.id, response)\n })\n .catch(e => {\n setResult(stage.id, {\n error: e.message,\n })\n setStatuses({[stage.id]: RemoteDataState.Error})\n })\n })\n )\n .then(() => {\n event('run_notebook_success')\n })\n .catch(e => {\n event('run_notebook_fail')\n dispatch(notify(notebookRunFail(PROJECT_NAME)))\n\n // NOTE: this shouldn't fire, but lets wrap it for completeness\n throw e\n })\n }\n // Use localstorage to communicate query execution to other tabs\n const queryAll = () => {\n sendEvent(notebookQueryKey)\n _queryAll()\n }\n\n const _queryAll = () => {\n if (status === RemoteDataState.Loading) {\n return\n }\n\n const map = generateMap()\n\n if (!map.length) {\n return\n }\n\n event('Running Notebook QueryAll')\n\n setStatuses(\n map\n .filter(q => !!q?.visual)\n .reduce((a, c) => {\n a[c.id] = RemoteDataState.Loading\n return a\n }, {})\n )\n\n Promise.all(\n map\n .filter(q => !!q.visual)\n .map(stage => {\n return query(stage.visual, stage.scope)\n .then(response => {\n setResult(stage.id, response)\n setStatuses({[stage.id]: RemoteDataState.Done})\n })\n .catch(e => {\n setResult(stage.id, {\n error: e.message,\n })\n setStatuses({[stage.id]: RemoteDataState.Error})\n })\n })\n )\n .then(() => {\n event('run_notebook_success')\n })\n .catch(e => {\n event('run_notebook_fail')\n dispatch(notify(notebookRunFail(PROJECT_NAME)))\n\n // NOTE: this shouldn't fire, but lets wrap it for completeness\n throw e\n })\n }\n\n const simple = (text: string) => {\n return simplify(text, {\n timeRangeStart,\n timeRangeStop,\n })\n }\n\n if (!flow) {\n return (\n \n )\n }\n\n if (!flow?.range) {\n return null\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, {FC, useContext, useEffect, useMemo, useCallback} from 'react'\nimport {PipeData, FluxResult} from 'src/types/flows'\nimport {FlowContext} from 'src/flows/context/flow.current'\nimport {FlowQueryContext} from 'src/flows/context/flow.query'\nimport {QueryScope} from 'src/shared/contexts/query'\nimport {ResultsContext} from 'src/flows/context/results'\nimport {RemoteDataState, TimeRange} from 'src/types'\nimport {useHistory, useLocation} from 'react-router-dom'\n\nexport interface PipeContextType {\n id: string\n data: PipeData\n range: TimeRange\n update: (data: PipeData) => void\n loading: RemoteDataState\n results: FluxResult\n readOnly: boolean\n scope: QueryScope\n}\n\nconst DEFAULT_CONTEXT: PipeContextType = {\n id: '',\n data: {},\n range: null,\n update: () => {},\n loading: RemoteDataState.NotStarted,\n results: {\n source: '',\n parsed: {},\n } as FluxResult,\n readOnly: false,\n scope: {\n region: '',\n org: '',\n },\n}\n\nexport const PipeContext = React.createContext(DEFAULT_CONTEXT)\n\ninterface PipeContextProps {\n id: string\n}\n\nexport const PipeProvider: FC = ({id, children}) => {\n const {flow, updateData} = useContext(FlowContext)\n const {getPanelQueries} = useContext(FlowQueryContext)\n const {results, statuses} = useContext(ResultsContext)\n const result = results[id]\n const status = statuses[id]\n\n const history = useHistory()\n const {search} = useLocation()\n\n const panel = new URLSearchParams(search).get('panel')\n const statusValues = Object.values(statuses).every(\n stat => stat !== undefined && stat !== RemoteDataState.Loading\n )\n\n useEffect(() => {\n if (panel && statusValues) {\n document.getElementById(panel)?.scrollIntoView()\n setTimeout(() => {\n // then remove the deep linked panel from the URL?\n history.push(window.location.pathname)\n }, 1000)\n }\n }, [history, panel, statusValues])\n\n const updater = useCallback(\n (data: Partial) => {\n updateData(id, data)\n },\n [flow, updateData]\n )\n\n const scope = getPanelQueries(id)?.scope\n\n return useMemo(() => {\n return (\n \n {children}\n \n )\n }, [flow, id, result, status, children, updater, scope])\n}\n","import React, {FC, ReactElement, useState, useContext} from 'react'\n\ninterface PopupContextType {\n launch: (element: React.ReactNode, data: any) => void\n data: any\n element: ReactElement | null\n closeFn: () => void\n}\n\nconst DEFAULT_CONTEXT: PopupContextType = {\n launch: () => {},\n data: null,\n element: null,\n closeFn: () => {},\n}\n\nexport const PopupContext =\n React.createContext(DEFAULT_CONTEXT)\n\nexport const PopupDrawer: FC = () => {\n const {element} = useContext(PopupContext)\n\n if (!element) {\n return null\n }\n\n return element\n}\n\nexport const PopupProvider: FC = ({children}) => {\n const [element, setElement] = useState(null)\n const [data, setData] = useState(null)\n\n const launch = (_element, _data) => {\n setElement(_element)\n setData(_data)\n }\n const closeFn = () => {\n setElement(null)\n setData(null)\n }\n\n return (\n \n {children}\n \n )\n}\n","import React, {FC, useContext, useEffect, useState, useRef} from 'react'\nimport {FluxResult} from 'src/types/flows'\nimport {FlowContext} from 'src/flows/context/flow.current'\nimport {RemoteDataState} from 'src/types'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\n\ninterface Hash {\n [key: string]: T\n}\n\nconst EMPTY_STATE = {} as Hash\n\ninterface ResultsContextType {\n results: Hash\n setResult: (id: string, result: Partial) => void\n statuses: Hash\n setStatuses: (status: Partial>) => void\n}\n\nconst DEFAULT_CONTEXT: ResultsContextType = {\n results: EMPTY_STATE,\n setResult: (_: string, __: Partial) => {},\n statuses: {},\n setStatuses: _ => {},\n}\n\nexport const ResultsContext =\n React.createContext(DEFAULT_CONTEXT)\n\nexport const ResultsProvider: FC = ({children}) => {\n const {flow} = useContext(FlowContext)\n const [statuses, setStatuses] = useState>({})\n const [results, setResults] = useState({...EMPTY_STATE})\n\n const updates = useRef([])\n const [inc, setInc] = useState(0)\n\n useEffect(() => {\n setResults({...EMPTY_STATE})\n }, [flow?.id])\n\n useEffect(() => {\n if (!updates.current.length) {\n return\n }\n\n let sChange = false\n let rChange = false\n\n while (updates.current.length) {\n const [t, id, val] = updates.current.pop()\n if (t === 'status') {\n statuses[id] = val\n sChange = true\n }\n\n if (t === 'result') {\n results[id] = val\n rChange = true\n }\n }\n\n if (rChange) {\n setResults({...results})\n }\n\n if (sChange) {\n setStatuses({...statuses})\n }\n\n setInc(inc + 1)\n }, [inc])\n\n const value = {\n results,\n setResult: (id: string, result: Partial) => {\n if (!isFlagEnabled('fastFlows')) {\n results[id] = {\n source: '',\n parsed: null,\n truncated: false,\n bytes: 0,\n ...result,\n }\n setResults({...results})\n\n return\n }\n\n updates.current.push(['result', id, result])\n if (updates.current.length > 1) {\n return\n }\n\n setInc(inc + 1)\n },\n statuses,\n setStatuses: (stats: Partial>) => {\n if (!isFlagEnabled('fastFlows')) {\n setStatuses(prev => ({\n ...prev,\n ...stats,\n }))\n\n return\n }\n\n Object.entries(stats).forEach(([id, stat]) => {\n updates.current.push(['status', id, stat])\n })\n\n if (updates.current.length > Object.keys(stats).length) {\n return\n }\n setInc(inc + 1)\n },\n }\n\n return (\n {children}\n )\n}\n","import React, {FC, createContext, useContext, useState} from 'react'\nimport {FlowContext} from 'src/flows/context/flow.current'\nimport {ControlSection, Submenu} from 'src/types/flows'\n\ninterface ContextType {\n id: string\n menu: ControlSection[]\n submenu?: Submenu['menu']\n show: (id: string) => void\n hide: () => void\n showSub: (menu: Submenu['menu']) => void\n hideSub: () => void\n register: (id: string, menu: ControlSection[]) => void\n}\n\nconst DEFAULT_CONTEXT: ContextType = {\n id: '',\n menu: [],\n show: _ => {},\n hide: () => {},\n showSub: _ => {},\n hideSub: () => {},\n register: (_, __) => {},\n}\n\nexport const SidebarContext = createContext(DEFAULT_CONTEXT)\n\nexport const SidebarProvider: FC = ({children}) => {\n const {flow} = useContext(FlowContext)\n const [focused, setFocused] = useState('')\n const [pipes, setPipes] = useState({})\n const [sub, setSub] = useState(false as Submenu['menu'] | null)\n\n const show = (id: string) => {\n if (!flow.data.allIDs.includes(id)) {\n return\n }\n\n if (id === focused) {\n return\n }\n\n setFocused(id)\n if (sub) {\n setSub(false)\n }\n }\n\n const hide = () => {\n setFocused('')\n }\n\n const register = (id: string, menu: ControlSection[]) => {\n if (!pipes[id] || pipes[id] !== menu) {\n pipes[id] = menu || []\n setPipes({\n ...pipes,\n })\n }\n }\n\n const showSub = (menu: Submenu['menu']) => {\n setSub(menu)\n }\n\n const hideSub = () => {\n setSub(false)\n setFocused('')\n }\n\n const menu = pipes[focused] || []\n\n return (\n \n {children}\n \n )\n}\n","import React, {FC, useContext, useEffect, useState} from 'react'\nimport {Variable} from 'src/types'\nimport {FlowQueryContext} from 'src/flows/context/flow.query'\nimport {FlowContext} from 'src/flows/context/flow.current'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {getRangeVariable} from 'src/variables/utils/getTimeRangeVars'\nimport {TIME_RANGE_START, TIME_RANGE_STOP} from 'src/variables/constants'\nimport {getWindowPeriodVariableFromVariables} from 'src/variables/utils/getWindowVars'\n\nconst EMPTY_STATE = [] as Variable[]\n\ninterface VariablesContextType {\n variables: Variable[]\n}\n\nconst DEFAULT_CONTEXT: VariablesContextType = {\n variables: [],\n}\n\nexport const VariablesContext =\n React.createContext(DEFAULT_CONTEXT)\n\nexport const VariablesProvider: FC = ({children}) => {\n const {id, range: pipeRange} = useContext(PipeContext)\n const {flow} = useContext(FlowContext)\n const {getPanelQueries} = useContext(FlowQueryContext)\n const {source} = getPanelQueries(id)\n const [variables, setVariables] = useState(EMPTY_STATE)\n\n useEffect(() => {\n if ((!pipeRange && !flow?.range) || !source) {\n return\n }\n const range = pipeRange || flow?.range\n const timeVars = [\n getRangeVariable(TIME_RANGE_START, range),\n getRangeVariable(TIME_RANGE_STOP, range),\n ]\n const windowVar = getWindowPeriodVariableFromVariables(source, timeVars)\n setVariables(!!windowVar ? timeVars.concat(windowVar) : timeVars)\n }, [id, source, pipeRange, flow?.range])\n\n return (\n \n {children}\n \n )\n}\n","export const PROJECT_NAME: string = 'Notebook'\nexport const DEFAULT_PROJECT_NAME: string = `Untitled ${PROJECT_NAME}`\nexport const PROJECT_NAME_SHORT: string = 'Books'\nexport const PROJECT_NAME_PLURAL: string = `${PROJECT_NAME}s`\n","import {TypeRegistration} from 'src/types/flows'\n\n// Constants\nimport {DOCS_URL_VERSION} from 'src/shared/constants/fluxFunctions'\n\nexport interface TypeLookup {\n [key: string]: TypeRegistration\n}\n\nexport const UNPROCESSED_PANEL_TEXT =\n 'This cell will display results from the previous cell after selecting Run.'\n\nexport const PIPE_DEFINITIONS: TypeLookup = {}\nexport const NOTEBOOKS_DOCUMENTATION_LINK = `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/notebooks/create-notebook/`\n\nexport {\n PROJECT_NAME,\n DEFAULT_PROJECT_NAME,\n PROJECT_NAME_SHORT,\n PROJECT_NAME_PLURAL,\n} from 'src/flows/constants'\n\n// NOTE: this loads in all the modules under the current directory\n// to make it easier to add new types\nconst context = require.context(\n './pipes',\n true,\n /^\\.\\/([^\\/])+\\/index\\.(ts|tsx)$/\n)\ncontext.keys().forEach(async key => {\n const module = await context(key)\n module.default((definition: TypeRegistration) => {\n if (PIPE_DEFINITIONS.hasOwnProperty(definition.type)) {\n throw new Error(\n `Pipe of type [${definition.type}] has already been registered`\n )\n }\n\n PIPE_DEFINITIONS[definition.type] = {\n ...definition,\n }\n })\n})\n","import View from './view'\nimport ReadOnly from './readOnly'\n\nexport interface Hash {\n [column: string]: T\n}\n\nexport interface Mapping {\n name: string\n visible: boolean\n}\n\nexport default register => {\n register({\n type: 'columnEditor',\n family: 'transform',\n component: View,\n button: 'Column Editor',\n initial: {\n mappings: {} as Hash,\n },\n readOnlyComponent: ReadOnly,\n visual: (_data, query) => {\n return `${query} |> limit(n: 100)`\n },\n source: (data, query) => {\n if (!Object.values(data.mappings).length) {\n return query\n }\n\n const mods = Object.entries(data.mappings as Hash).reduce(\n (acc, [k, v]) => {\n if (!v.visible) {\n acc.dropped.push(`\"${k}\"`)\n return acc\n }\n\n acc.renamed.push(`\"${k}\": \"${v.name}\"`)\n return acc\n },\n {\n renamed: [],\n dropped: [],\n }\n )\n\n const splitQuery = query.split('|>')\n\n let queryString = splitQuery[0]\n\n splitQuery.slice(1).map(q => {\n if (q.indexOf('yield') === -1) {\n queryString += `|>${q}`\n } else {\n if (mods.renamed.length) {\n queryString += `|> rename(columns: {${mods.renamed.join(', ')}})\\n`\n }\n\n if (mods.dropped.length) {\n queryString += `|> drop(columns: [${mods.dropped.join(', ')}])\\n`\n }\n queryString += `|> ${q}`\n }\n })\n\n return queryString\n },\n })\n}\n","// Libraries\nimport React, {FC, useContext} from 'react'\nimport {Icon, IconFont, SlideToggle} from '@influxdata/clockface'\nimport {RemoteDataState} from 'src/types'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\nimport {Hash, Mapping} from 'src/flows/pipes/Columns'\n\n// Contexts\nimport {PipeContext} from 'src/flows/context/pipe'\n\n// Constants\nimport {UNPROCESSED_PANEL_TEXT} from 'src/flows'\n\n// Styles\nimport './styles.scss'\n\nconst Columns: FC = ({Context}) => {\n const {data, loading, results} = useContext(PipeContext)\n\n if (!results.parsed || !results.parsed.table) {\n let msg = UNPROCESSED_PANEL_TEXT\n\n if (loading === RemoteDataState.Loading) {\n msg = 'Loading'\n }\n\n return (\n \n
\n
\n \n
\n
\n
{msg}
\n
\n
\n
\n )\n }\n\n const columns: Hash = Object.entries(data.mappings || {}).reduce(\n (acc, [k, v]) => {\n if (acc[k]) {\n acc[k] = v\n }\n\n return acc\n },\n Object.keys(results.parsed.table.columns).reduce((acc, curr) => {\n acc[curr] = {name: curr, visible: true}\n return acc\n }, {})\n )\n\n const cards = Object.entries(columns).map(([k, v]) => {\n return (\n
\n {}}\n active={v.visible}\n disabled={true}\n />\n

{v.name ?? 'Column Name'}

\n
\n )\n })\n\n return (\n \n
{cards}
\n
\n )\n}\n\nexport default Columns\n","import React, {FC, useContext} from 'react'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {PipeProp} from 'src/types/flows'\nimport {Icon, IconFont, SlideToggle} from '@influxdata/clockface'\nimport {RemoteDataState} from 'src/types'\nimport {Hash, Mapping} from 'src/flows/pipes/Columns'\n\nimport './styles.scss'\n\n// Constants\nimport {UNPROCESSED_PANEL_TEXT} from 'src/flows'\n\nconst View: FC = ({Context}) => {\n const {update, data, results, loading} = useContext(PipeContext)\n\n const updateColumn = (key, val) => {\n if (\n (data.mappings || {})[key] &&\n val.name === key &&\n val.visible === true\n ) {\n delete data.mappings[key]\n update({\n mappings: {...data.mappings},\n })\n return\n }\n\n if (\n (data.mappings || {})[key] &&\n data.mappings[key].name === val.name &&\n data.mappings[key].visible === val.visible\n ) {\n return\n }\n\n if (!data.mappings) {\n data.mappings = {}\n }\n\n data.mappings[key] = val\n update({\n mappings: {...data.mappings},\n })\n }\n\n if (!results.parsed || !results.parsed.table) {\n let msg = UNPROCESSED_PANEL_TEXT\n\n if (loading === RemoteDataState.Loading) {\n msg = 'Loading'\n }\n\n return (\n \n
\n
\n \n
\n
\n
{msg}
\n
\n
\n
\n )\n }\n\n const columns: Hash = Object.entries(data.mappings || {}).reduce(\n (acc, [k, v]) => {\n if (acc[k]) {\n acc[k] = v\n }\n\n return acc\n },\n Object.keys(results.parsed.table.columns).reduce((acc, curr) => {\n acc[curr] = {name: curr, visible: true}\n return acc\n }, {})\n )\n\n const cards = Object.entries(columns).map(([k, v]) => {\n const updateVisibility = () => {\n updateColumn(k, {\n ...v,\n visible: !v.visible,\n })\n }\n const updateName = evt => {\n updateColumn(k, {\n ...v,\n name: evt.target.value,\n })\n }\n\n return (\n
\n \n
\n \n \n
\n
\n )\n })\n\n return (\n \n
{cards}
\n
\n )\n}\nexport default View\n","import View from './view'\nimport ReadOnly from './readOnly'\nimport './style.scss'\n\nimport {FUNCTIONS} from 'src/timeMachine/constants/queryBuilder'\n\nexport default register => {\n register({\n type: 'downsample',\n family: 'transform',\n component: View,\n readOnlyComponent: ReadOnly,\n featureFlag: 'flow-panel--downsample',\n button: 'Downsample',\n initial: {\n functions: [{name: 'mean'}],\n aggregateWindow: {\n period: '',\n fillValues: false,\n },\n },\n source: (data, query) => {\n if (!data.aggregateWindow.period || !data.functions.length) {\n return query\n }\n\n return (\n query +\n data.functions\n .map(fn => {\n const spec = fn && FUNCTIONS.find(f => f.name === fn.name)\n\n if (!spec) {\n return ''\n }\n\n const period = data.aggregateWindow.period\n return spec.flux(\n period === 'auto' || !period ? 'v.windowPeriod' : period,\n data.aggregateWindow.fillValues\n )\n })\n .join('')\n )\n },\n })\n}\n","// Libraries\nimport React, {FC, useContext} from 'react'\nimport {\n FlexBox,\n FlexDirection,\n ComponentSize,\n Input,\n InputType,\n InputLabel,\n IconFont,\n ComponentColor,\n Toggle,\n InputToggleType,\n QuestionMarkTooltip,\n ComponentStatus,\n Dropdown,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\n\nimport {PipeProp} from 'src/types/flows'\n\nconst Downsample: FC = ({Context}) => {\n const {data} = useContext(PipeContext)\n\n return (\n \n
\n
\n
Apply aggregate
\n (\n \n {data.functions.map(f => f.name).join(', ')}\n \n )}\n menu={onCollapse => }\n style={{width: '250px'}}\n />\n
\n
\n
Every Window Period
\n \n \n {}}\n color={ComponentColor.Primary}\n size={ComponentSize.ExtraSmall}\n />\n \n \n Fill missing values\n \n \n \n \n
\n
\n
\n )\n}\n\nexport default Downsample\n","import React, {FC, useCallback, useContext, useMemo} from 'react'\nimport {\n FlexBox,\n FlexDirection,\n ComponentSize,\n InputLabel,\n IconFont,\n ComponentColor,\n Toggle,\n InputToggleType,\n QuestionMarkTooltip,\n ComponentStatus,\n MultiSelectDropdown,\n} from '@influxdata/clockface'\n\nimport {DURATIONS, FUNCTIONS} from 'src/timeMachine/constants/queryBuilder'\n\nimport {PipeContext} from 'src/flows/context/pipe'\nimport DurationInput from 'src/shared/components/DurationInput'\n\nimport {PipeProp} from 'src/types/flows'\n\nconst AVAILABLE_FUNCTIONS = FUNCTIONS.map(f => f.name)\n\nconst Downsample: FC = ({Context}) => {\n const {data, update} = useContext(PipeContext)\n const options = useMemo(() => {\n if (!data.functions || !data.functions.length) {\n return [{name: 'mean'}].map(f => f.name)\n }\n return data.functions.map(f => f.name)\n }, [data.functions])\n\n const selectFn = useCallback(\n (fn: string) => {\n const fns = options.map(f => ({name: f}))\n let found = false\n let fnIdx = fns.findIndex(f => f.name === fn)\n\n while (fnIdx !== -1) {\n found = true\n fns.splice(fnIdx, 1)\n fnIdx = fns.findIndex(f => f.name === fn)\n }\n\n if (!found) {\n fns.push({name: fn})\n }\n\n if (!fns.length) {\n fns.push({name: 'mean'})\n }\n\n update({\n functions: fns,\n })\n },\n [options, update]\n )\n\n const setPeriod = _period => {\n update({\n aggregateWindow: {\n ...data.aggregateWindow,\n period: _period,\n },\n })\n }\n\n const toggleFill = () => {\n update({\n aggregateWindow: {\n ...data.aggregateWindow,\n fillValues: !data.aggregateWindow.fillValues,\n },\n })\n }\n\n return (\n \n
\n
\n
Apply aggregate
\n \n
\n
\n
Every Window Period
\n \n \n \n \n \n Fill missing values\n \n \n \n \n
\n
\n
\n )\n}\n\nexport default Downsample\n","// Libraries\nimport React, {FC, useContext} from 'react'\n\n// Components\nimport {SelectGroup} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst MarkdownModeToggle: FC = () => {\n const {data, update} = useContext(PipeContext)\n\n return (\n \n update({mode: 'edit'})}\n value=\"edit\"\n id=\"edit\"\n >\n Edit\n \n update({mode: 'preview'})}\n value=\"preview\"\n id=\"preview\"\n >\n Preview\n \n \n )\n}\n\nexport default MarkdownModeToggle\n","import MarkdownPanel from './view'\nimport ReadOnly from './readOnly'\nimport './style.scss'\n\nexport type MarkdownMode = 'edit' | 'preview'\n\nexport default register => {\n register({\n type: 'markdown',\n family: 'passThrough',\n component: MarkdownPanel,\n readOnlyComponent: ReadOnly,\n button: 'Note',\n initial: () => ({\n text: '',\n mode: 'edit',\n }),\n })\n}\n","// Libraries\nimport React, {FC, useContext} from 'react'\n\n// Components\nimport {MarkdownRenderer} from 'src/shared/components/views/MarkdownRenderer'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {PipeProp} from 'src/types/flows'\n\nconst MarkdownPanel: FC = ({Context}) => {\n const {data} = useContext(PipeContext)\n\n return (\n \n
\n \n
\n
\n )\n}\n\nexport default MarkdownPanel\n","// Libraries\nimport React, {FC, lazy, Suspense, useContext} from 'react'\nimport {\n RemoteDataState,\n SpinnerContainer,\n TechnoSpinner,\n} from '@influxdata/clockface'\nimport classnames from 'classnames'\n\n// Components\nimport MarkdownModeToggle from './MarkdownModeToggle'\nimport {MarkdownRenderer} from 'src/shared/components/views/MarkdownRenderer'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {PipeProp} from 'src/types/flows'\nimport {FlowContext} from 'src/flows/context/flow.current'\n\nconst MarkdownMonacoEditor = lazy(\n () => import('src/shared/components/MarkdownMonacoEditor')\n)\n\nconst MarkdownPanel: FC = ({Context}) => {\n const {data, update} = useContext(PipeContext)\n const {flow} = useContext(FlowContext)\n\n const handleChange = (text: string): void => {\n update({text})\n }\n\n let panelContents = (\n }\n />\n }\n >\n \n \n )\n\n if (flow.readOnly || data.mode === 'preview') {\n const markdownClassname = classnames('flow-panel--markdown markdown-format')\n panelContents = (\n
\n \n
\n )\n }\n\n const controls = \n return {panelContents}\n}\n\nexport default MarkdownPanel\n","// Libraries\nimport React, {FC, useContext, useCallback} from 'react'\n\n// Components\nimport {List, Gradients} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {SchemaContext} from 'src/flows/pipes/MetricSelector/context'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\n\ntype Props = {\n fields: string[]\n}\n\nconst FieldSelectors: FC = ({fields}) => {\n const {data, update} = useContext(PipeContext)\n const {setSearchTerm} = useContext(SchemaContext)\n const selectedField = data?.field\n const updateFieldSelection = useCallback(\n (field: string): void => {\n let updated = field\n if (updated === selectedField) {\n event('metric_selector_add_filter')\n event('Deselecting Field in Flow Query Builder')\n updated = ''\n } else {\n setSearchTerm('')\n event('metric_selector_remove_filter')\n event('Selecting Field in Flow Query Builder', {field})\n }\n update({field: updated})\n },\n [update, selectedField]\n )\n\n return (\n <>\n {fields\n .sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase()))\n .map(field => (\n updateFieldSelection(field)}\n selected={field === selectedField}\n title={field}\n gradient={Gradients.GundamPilot}\n wrapText={true}\n testID={`field-selector ${field}`}\n >\n \n
\n {field}\n
\n
field
\n \n ))}\n \n )\n}\n\nexport default FieldSelectors\n","// Libraries\nimport React, {FC, useContext} from 'react'\n\n// Components\nimport {\n TechnoSpinner,\n ComponentSize,\n RemoteDataState,\n} from '@influxdata/clockface'\nimport Selectors from 'src/flows/pipes/MetricSelector/Selectors'\nimport {SchemaContext} from 'src/flows/pipes/MetricSelector/context'\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst FieldsList: FC = () => {\n const {data} = useContext(PipeContext)\n const {loading} = useContext(SchemaContext)\n\n if (!data.bucket) {\n return (\n
\n

Select a bucket first

\n
\n )\n }\n\n if (\n loading === RemoteDataState.NotStarted ||\n loading === RemoteDataState.Loading\n ) {\n return (\n
\n \n
\n )\n }\n\n if (loading === RemoteDataState.Error) {\n return (\n
\n

Could not fetch schema

\n
\n )\n }\n\n if (loading === RemoteDataState.Done) {\n return \n }\n\n return null\n}\n\nexport default FieldsList\n","// Libraries\nimport React, {FC, useContext} from 'react'\n\n// Components\nimport {Label as LabelComponent} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\n\nconst constructFilters = (value: string, type: string) => {\n if (!value) {\n return null\n }\n switch (type) {\n case 'measurement': {\n return {\n id: value,\n name: `measurement = ${value}`,\n properties: {\n color: 'hotpink',\n description: '',\n },\n type,\n }\n }\n case 'field': {\n return {\n id: value,\n name: `field = ${value}`,\n properties: {\n color: 'lightskyblue',\n description: '',\n },\n type,\n }\n }\n case 'tags': {\n const tagNames = Object.keys(value)\n if (tagNames) {\n const tags = []\n tagNames\n .filter(tagName => !!value[tagName])\n .forEach(tagName => {\n const tagValues = value[tagName]\n const mappedTags = tagValues.map(tagValue => ({\n id: tagValue,\n name: `${tagName} = ${tagValue}`,\n properties: {\n color: 'limegreen',\n description: '',\n },\n type,\n }))\n tags.push(...mappedTags)\n })\n return tags\n }\n return null\n }\n default: {\n return null\n }\n }\n}\n\ninterface SelectedTags {\n [key: string]: string[]\n}\n\nconst FilterTags: FC = () => {\n const {data, update} = useContext(PipeContext)\n const handleDeleteFilter = (type: string, name: string) => {\n event('Deleting the Filter Label in Flow Query Builder', {type})\n if (type === 'tags') {\n const [tagName, tagValue] = name.split(' = ')\n const selectedTags = (data?.tags || {}) as SelectedTags\n\n update({\n tags: Object.entries(selectedTags).reduce((acc, [key, value]) => {\n if (key !== tagName) {\n acc[key] = value\n return acc\n }\n\n acc[key] = value.filter(tag => tag !== tagValue)\n\n if (!acc[key].length) {\n delete acc[key]\n }\n\n return acc\n }, {}),\n })\n } else {\n update({[type]: ''})\n }\n }\n const currentFilters = () => {\n const measurement = constructFilters(data.measurement, 'measurement')\n let filters = []\n if (measurement) {\n filters = filters.concat(measurement)\n }\n const field = constructFilters(data.field, 'field')\n if (field) {\n filters = filters.concat(field)\n }\n const tags = constructFilters(data.tags, 'tags')\n if (tags) {\n filters = filters.concat(tags)\n }\n if (filters.length) {\n return filters.map(_filter => {\n const f = {..._filter}\n\n return (\n handleDeleteFilter(f.type, f.name)}\n />\n )\n })\n }\n return \n }\n return (\n
\n

Filters:

\n
{currentFilters()}
\n
\n )\n}\n\nexport default FilterTags\n","// Libraries\nimport React, {FC, useContext, useCallback} from 'react'\n\n// Components\nimport {List, Gradients} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {SchemaContext} from 'src/flows/pipes/MetricSelector/context'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\n\ntype Props = {\n measurements: string[]\n}\n\nconst MeasurementSelectors: FC = ({measurements}) => {\n const {data, update} = useContext(PipeContext)\n const {setSearchTerm} = useContext(SchemaContext)\n const selectedMeasurement = data?.measurement\n const updateMeasurementSelection = useCallback(\n (measurement: string): void => {\n let updated = measurement\n if (updated === selectedMeasurement) {\n event('metric_selector_add_filter')\n event('Deselecting Measurement in Flow Query Builder')\n updated = ''\n } else {\n setSearchTerm('')\n event('metric_selector_remove_filter')\n event('Selecting Measurement in Flow Query Builder', {measurement})\n }\n\n update({measurement: updated})\n },\n [update, selectedMeasurement]\n )\n return (\n <>\n {measurements\n .sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase()))\n .map(measurement => (\n updateMeasurementSelection(measurement)}\n selected={measurement === selectedMeasurement}\n title={measurement}\n gradient={Gradients.GundamPilot}\n wrapText={true}\n testID={`measurement-selector ${measurement}`}\n >\n \n
\n {measurement}\n
\n
measurement
\n \n ))}\n \n )\n}\n\nexport default MeasurementSelectors\n","// Libraries\nimport React, {FC, useContext} from 'react'\n\n// Components\nimport {Input, IconFont, ComponentSize} from '@influxdata/clockface'\n\n// Contexts\nimport {SchemaContext} from 'src/flows/pipes/MetricSelector/context'\n\nconst SearchBar: FC = () => {\n const {searchTerm, setSearchTerm} = useContext(SchemaContext)\n\n const handleSetSearch = (text: string): void => {\n setSearchTerm(text)\n }\n\n return (\n handleSetSearch(evt.target.value)}\n />\n )\n}\n\nexport default SearchBar\n","// Libraries\nimport React, {FC, useContext} from 'react'\n\n// Components\nimport {InfluxColors, List, EmptyState} from '@influxdata/clockface'\nimport MeasurementSelectors from 'src/flows/pipes/MetricSelector/MeasurementSelectors'\nimport FieldSelectors from 'src/flows/pipes/MetricSelector/FieldSelectors'\nimport TagSelectors from 'src/flows/pipes/MetricSelector/TagSelectors'\nimport {SchemaContext} from 'src/flows/pipes/MetricSelector/context'\n\nconst Selectors: FC = () => {\n const {fields, measurements, tags, searchTerm} = useContext(SchemaContext)\n\n const noResults = !fields.length && !measurements.length && !tags.length\n\n let list = (\n \n \n \n \n \n )\n\n if (noResults && searchTerm) {\n list = (\n \n

{`No fields, measurements, or tags match \"${searchTerm}\"`}

\n
\n )\n } else if (noResults && !searchTerm) {\n list = (\n \n
No tags found in the selected time range
\n

Try selecting a different time range

\n
\n )\n }\n\n return
{list}
\n}\n\nexport default Selectors\n","// Libraries\nimport React, {FC, MouseEvent, useContext, useCallback} from 'react'\n\n// Components\nimport {List, Gradients} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {NormalizedTag} from 'src/flows/pipes/MetricSelector/context'\n\n// Utils\nimport {event as reportEvent} from 'src/cloud/utils/reporting'\n\ntype Props = {\n tags: NormalizedTag[]\n}\n\nconst TagSelectors: FC = ({tags}) => {\n const {data, update} = useContext(PipeContext)\n const selectedTags = data?.tags\n\n const selectEventText = 'Selecting Tag in Flow Query Builder'\n const deselectEventText = 'Deselecting Tag in Flow Query Builder'\n\n const handleSublistMultiSelect = useCallback(\n (tagName: string, tagValue: string): void => {\n let tagValues = []\n if (!selectedTags[tagName]) {\n tagValues = [tagValue]\n } else if (\n selectedTags[tagName] &&\n selectedTags[tagName].includes(tagValue)\n ) {\n tagValues = selectedTags[tagName].filter(v => v !== tagValue)\n } else {\n tagValues = [...selectedTags[tagName], tagValue]\n }\n\n const updatedTags = {\n ...selectedTags,\n [tagName]: tagValues,\n }\n\n if (tagValues.length < selectedTags[tagName]?.length) {\n reportEvent('metric_selector_add_filter')\n reportEvent(deselectEventText, {\n type: 'multi-select',\n tags: JSON.stringify(updatedTags),\n })\n } else {\n reportEvent('metric_selector_remove_filter')\n reportEvent(selectEventText, {\n type: 'multi-select',\n tags: JSON.stringify(updatedTags),\n })\n }\n update({\n tags: updatedTags,\n })\n },\n [update]\n )\n\n const handleSubListItemClick = useCallback(\n (event: MouseEvent, tagName: string, tagValue: string) => {\n if (event.metaKey || event.ctrlKey) {\n handleSublistMultiSelect(tagName, tagValue)\n return\n }\n let updatedValue = [tagValue]\n let updatedTags = {\n [tagName]: updatedValue,\n }\n if (selectedTags[tagName]?.includes(tagValue)) {\n updatedValue = []\n updatedTags[tagName] = updatedValue\n }\n if (tagName in selectedTags && updatedValue.length === 0) {\n reportEvent(deselectEventText, {\n type: 'single-select',\n })\n updatedTags = {}\n } else {\n reportEvent(selectEventText, {\n type: 'single-select',\n tags: JSON.stringify(updatedTags),\n })\n }\n update({\n tags: updatedTags,\n })\n },\n [update]\n )\n\n const _tags = tags.reduce((acc, tag) => {\n const byTag = Object.entries(tag).reduce((tacc, tcurr) => {\n const name = tcurr[0]\n const values = tcurr[1] as string[]\n\n const items = values.map(val => (\n {\n handleSubListItemClick(event as MouseEvent, name, value)\n }}\n selected={selectedTags[name]?.includes(val)}\n title={val}\n gradient={Gradients.GundamPilot}\n wrapText={true}\n testID={`tag-selector ${val}`}\n >\n \n
{`${name} = ${val}`}
\n
tag
\n \n ))\n\n return tacc.concat(items)\n }, [])\n\n return acc.concat(byTag)\n }, [])\n\n return <>{_tags}\n}\n\nexport default TagSelectors\n","// Libraries\nimport React, {FC, useContext, useEffect, useMemo, useState} from 'react'\n\n// Contexts\nimport {FlowQueryContext} from 'src/flows/context/flow.query'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {FlowContext} from 'src/flows/context/flow.current'\n\n// Utils\nimport {formatTimeRangeArguments} from 'src/timeMachine/apis/queryBuilder'\n\n// Types\nimport {FluxResult, RemoteDataState, PipeData} from 'src/types'\nimport {FromFluxResult} from '@influxdata/giraffe'\nimport {RunQueryResult} from 'src/shared/apis/query'\n\ninterface Tag {\n [tagName: string]: Set\n}\n\ninterface SchemaValues {\n fields: string[]\n tags: Tag\n type?: string\n}\n\ninterface Schema {\n [measurement: string]: SchemaValues\n}\n\nexport interface NormalizedTag {\n [tagName: string]: string[] | number[]\n}\n\ninterface NormalizedSchema {\n measurements: string[]\n fields: string[]\n tags: NormalizedTag[]\n}\n\ninterface SchemaContextType {\n loading: RemoteDataState\n measurements: string[]\n fields: string[]\n tags: NormalizedTag[]\n searchTerm: string\n setSearchTerm: (value: string) => void\n}\n\nconst DEFAULT_CONTEXT: SchemaContextType = {\n loading: RemoteDataState.NotStarted,\n measurements: [],\n fields: [],\n tags: [],\n searchTerm: '',\n setSearchTerm: (_: string) => {},\n}\n\nexport const SchemaContext =\n React.createContext(DEFAULT_CONTEXT)\n\nconst parsedResultToSchema = (parsed: FromFluxResult): unknown => {\n let ni, no\n const filtered = [\n /^_start$/,\n /^_stop$/,\n /^_time$/,\n /^_value/,\n /^_measurement$/,\n /^_field$/,\n /^table$/,\n /^result$/,\n ]\n if (!parsed) {\n return\n }\n\n const out = parsed.table as any\n const len = out.length\n const measurements = out.columns._measurement?.data\n const fields = out.columns._field?.data\n const columns = out.columnKeys.filter(key => {\n return filtered.reduce((acc, curr) => {\n return acc && !curr.test(key)\n }, true)\n })\n const colLen = columns.length\n const schema = {} as any\n\n for (ni = 0; ni < len; ni++) {\n if (!schema.hasOwnProperty(measurements[ni])) {\n schema[measurements[ni]] = {\n fields: new Set(),\n tags: {},\n }\n }\n\n schema[measurements[ni]].fields.add(fields[ni])\n\n for (no = 0; no < colLen; no++) {\n if (!out.columns[columns[no]].data[ni]) {\n continue\n }\n\n if (!schema[measurements[ni]].tags.hasOwnProperty(columns[no])) {\n schema[measurements[ni]].tags[columns[no]] = new Set()\n }\n schema[measurements[ni]].tags[columns[no]].add(\n out.columns[columns[no]].data[ni]\n )\n }\n }\n\n Object.entries(schema).forEach(([key, val]) => {\n schema[key].fields = Array.from((val as any).fields)\n })\n\n return schema\n}\n\nconst normalizeSchema = (\n schema: Schema,\n data: PipeData,\n searchTerm: string\n): NormalizedSchema => {\n const {measurements, fields, tags} = Object.entries(schema || {})\n .map(([measurement, values]) => ({\n measurement: measurement,\n fields: values.fields.filter(\n f =>\n (!!data.field && f === data.field) ||\n (!data.field && f.toLowerCase().includes(searchTerm.toLowerCase()))\n ),\n tags: Object.entries(values.tags)\n .filter(\n ([name, values]) =>\n !searchTerm ||\n Array.from(values).some(value =>\n `${('' + name).toLowerCase()} = ${(\n '' + value\n ).toLowerCase()}`.includes(searchTerm.toLowerCase())\n )\n )\n .map(([name, values]) => {\n // there is no filter\n if (!searchTerm) {\n return [name, values]\n }\n\n // there is a match on some of the values, only show the ones that match\n return [\n name,\n Array.from(values).filter(value =>\n `${('' + name).toLowerCase()} = ${(\n '' + value\n ).toLowerCase()}`.includes(searchTerm.toLowerCase())\n ),\n ]\n }),\n }))\n .filter(values => {\n if (data.measurement) {\n return values.measurement === data.measurement\n }\n\n if (data.field) {\n return values.fields.length\n }\n\n if (searchTerm) {\n return (\n `measurement = ${values.measurement.toLowerCase()}`.includes(\n searchTerm.toLowerCase()\n ) ||\n values.fields.length ||\n values.tags.length\n )\n }\n\n return true\n })\n .reduce(\n (acc, curr) => {\n if (\n `measurement = ${curr.measurement.toLowerCase()}`.includes(\n searchTerm.toLowerCase()\n )\n ) {\n acc.measurements[curr.measurement] = true\n }\n curr.fields.reduce((facc, fcurr) => {\n facc[fcurr] = true\n return facc\n }, acc.fields)\n curr.tags.reduce((tacc, [tag, values]) => {\n if (!tacc['' + tag]) {\n tacc['' + tag] = new Set()\n }\n\n Array.from(values).forEach(v => tacc['' + tag].add('' + v))\n\n return tacc\n }, acc.tags)\n return acc\n },\n {\n measurements: {},\n fields: {},\n tags: {},\n }\n )\n\n return {\n measurements: Object.keys(measurements),\n fields: Object.keys(fields),\n tags: Object.entries(tags).map(([tag, value]) => ({\n [tag]: Array.from(value as ArrayLike),\n })),\n }\n}\n\nexport const SchemaProvider: FC = React.memo(({children}) => {\n const {data} = useContext(PipeContext)\n const {flow} = useContext(FlowContext)\n const {query, getPanelQueries} = useContext(FlowQueryContext)\n const [searchTerm, setSearchTerm] = useState('')\n const [schema, setSchema] = useState({})\n const [loading, setLoading] = useState(RemoteDataState.NotStarted)\n\n const range = formatTimeRangeArguments(flow?.range)\n\n useEffect(() => {\n if (!data?.bucket) {\n return\n }\n\n setLoading(RemoteDataState.Loading)\n\n const scope = getPanelQueries(data.id)?.scope\n\n let source = `from(bucket: \"${data.bucket.name}\")`\n if (data.bucket.type === 'sample') {\n source = `import \"influxdata/influxdb/sample\"\n sample.data(set: \"${data.bucket.id}\")`\n }\n const text = `${source}\n |> range(${range})\n |> first()\n |> drop(columns: [\"_value\"])\n |> group()`\n\n query(text, scope)\n .then((response: FluxResult) => {\n const schemaForBucket = parsedResultToSchema(response.parsed)\n setSchema(schemaForBucket)\n setLoading(RemoteDataState.Done)\n })\n .catch((error: RunQueryResult) => {\n console.error('error: ', error)\n setLoading(RemoteDataState.Error)\n setSchema({})\n })\n }, [data?.bucket?.name, range]) // eslint-disable-line react-hooks/exhaustive-deps\n\n const normalized = useMemo(\n () => normalizeSchema(schema, data, searchTerm),\n [data, schema, searchTerm]\n )\n\n return (\n \n {children}\n \n )\n})\n\nexport default SchemaProvider\n","import View from './view'\nimport ReadOnly from './readOnly'\nimport './style.scss'\nimport {FUNCTIONS} from 'src/timeMachine/constants/queryBuilder'\n\nexport default register => {\n register({\n type: 'metricSelector',\n family: 'inputs',\n priority: 1,\n component: View,\n readOnlyComponent: ReadOnly,\n button: 'Metric Selector',\n // featureFlag: 'flow-panel--metric-selector',\n initial: {\n field: '',\n measurement: '',\n tags: {},\n aggregateFunction: FUNCTIONS[0],\n },\n source: data => {\n const {bucket, field, measurement, tags} = data\n\n if (!bucket) {\n return ''\n }\n if (!(field || measurement || Object.values(tags).length)) {\n return ''\n }\n\n let from = `from(bucket: \"${bucket.name}\")`\n if (bucket.type === 'sample') {\n from = `import \"influxdata/influxdb/sample\"\n sample.data(set: \"${bucket.id}\")`\n }\n\n let text = `${from}\\n\\t|> range(start: v.timeRangeStart, stop: v.timeRangeStop)`\n if (measurement) {\n text += ` |> filter(fn: (r) => r[\"_measurement\"] == \"${measurement}\")`\n }\n if (field) {\n text += ` |> filter(fn: (r) => r[\"_field\"] == \"${field}\")`\n }\n if (tags && Object.keys(tags)?.length > 0) {\n Object.keys(tags)\n .filter((tagName: string) => !!tags[tagName])\n .forEach((tagName: string) => {\n const tagValues = tags[tagName]\n if (tagValues.length === 1) {\n text += ` |> filter(fn: (r) => r[\"${tagName}\"] == \"${tagValues[0]}\")`\n } else {\n tagValues.forEach((val, i) => {\n if (i === 0) {\n text += ` |> filter(fn: (r) => r[\"${tagName}\"] == \"${val}\"`\n }\n if (tagValues.length - 1 === i) {\n text += ` or r[\"${tagName}\"] == \"${val}\")`\n } else {\n text += ` or r[\"${tagName}\"] == \"${val}\"`\n }\n })\n }\n })\n }\n\n return text\n },\n })\n}\n","// Libraries\nimport React, {FC, useContext} from 'react'\nimport {ComponentStatus, Dropdown, IconFont} from '@influxdata/clockface'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\n\n// Contexts\nimport {SchemaProvider} from 'src/flows/pipes/MetricSelector/context'\nimport {PipeContext} from 'src/flows/context/pipe'\n\n// Components\nimport FilterTags from 'src/flows/pipes/MetricSelector/FilterTags'\n\nconst DataSource: FC = ({Context}) => {\n const {data} = useContext(PipeContext)\n\n return (\n \n \n
\n
\n
\n (\n \n {data?.bucket?.name ?? 'No Bucket Selected'}\n \n )}\n menu={onCollapse => }\n style={{width: '250px', flex: '0 0 250px'}}\n />\n
\n \n
\n
\n
\n
\n )\n}\n\nexport default DataSource\n","// Libraries\nimport React, {FC, useContext} from 'react'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\nimport {Bucket} from 'src/types'\n\n// Contexts\nimport {BucketProvider} from 'src/shared/contexts/buckets'\nimport {SchemaProvider} from 'src/flows/pipes/MetricSelector/context'\nimport {PipeContext} from 'src/flows/context/pipe'\n\n// Components\nimport BucketSelector from 'src/flows/shared/BucketSelector'\nimport FieldsList from 'src/flows/pipes/MetricSelector/FieldsList'\nimport FilterTags from 'src/flows/pipes/MetricSelector/FilterTags'\nimport SearchBar from 'src/flows/pipes/MetricSelector/SearchBar'\nimport {PIPE_DEFINITIONS} from 'src/flows'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\n\nconst DataSource: FC = ({Context}) => {\n const {data, update, scope} = useContext(PipeContext)\n\n const updateBucket = (bucket: Bucket) => {\n if (bucket?.id === data.bucket?.id) {\n return\n }\n event('Updated Bucket', {context: 'metric selector'})\n update({\n bucket,\n ...PIPE_DEFINITIONS['metricSelector'].initial,\n })\n }\n\n return (\n \n \n \n
\n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n )\n}\n\nexport default DataSource\n","import View from './view'\nimport './styles.scss'\n\nexport default register => {\n register({\n type: 'missing',\n family: 'system',\n priority: 1,\n component: View,\n initial: {},\n })\n}\n","import React, {FC, useContext} from 'react'\n\nimport {PipeProp} from 'src/types/flows'\nimport {Icon, IconFont} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst Missing: FC = ({Context}) => {\n const {data} = useContext(PipeContext)\n\n return (\n \n
\n
\n \n
\n
\n

\n Missing definition for {data.type}\n

\n

\n The UI doesn't know how to display this panel. Delete this panel to\n remove this message\n

\n
\n
\n
\n )\n}\n\nexport default Missing\n","import React, {FC, useContext, useCallback} from 'react'\nimport {useDispatch} from 'react-redux'\nimport {\n parse,\n format_from_js_file,\n} from 'src/languageSupport/languages/flux/lspUtils'\n\n// Components\nimport ExportTaskButton from 'src/flows/pipes/Schedule/ExportTaskButton'\nimport {ENDPOINT_DEFINITIONS} from 'src/flows/pipes/Notification/endpoints'\n\n// Contexts\nimport {FlowQueryContext} from 'src/flows/context/flow.query'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {remove} from 'src/shared/contexts/query'\n\n// Types\nimport {\n deadmanType,\n THRESHOLD_TYPES,\n} from 'src/flows/pipes/Visualization/threshold'\nimport {ImportDeclaration} from 'src/types/ast'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\nimport {notify} from 'src/shared/actions/notifications'\nimport {exportAlertToTaskSuccess} from 'src/shared/copy/notifications'\n\nconst ExportTask: FC = () => {\n const dispatch = useDispatch()\n const {id, data} = useContext(PipeContext)\n const {simplify, getPanelQueries} = useContext(FlowQueryContext)\n\n const queryText = getPanelQueries(id)?.source\n\n const generateDeadmanTask = useCallback(() => {\n // simplify takes care of all the variable nonsense in the query\n const ast = parse(simplify(queryText))\n\n const [deadman] = data.thresholds\n\n const vars = remove(\n ast,\n node => node.type === 'OptionStatement' && node.assignment.id.name === 'v'\n ).reduce((acc, curr) => {\n // eslint-disable-next-line no-extra-semi\n ;(curr.assignment?.init?.properties || []).reduce((_acc, _curr) => {\n if (_curr.key?.name && _curr.value?.location?.source) {\n _acc[_curr.key.name] = _curr.value.location.source\n }\n\n return _acc\n }, acc)\n\n return acc\n }, {})\n\n vars.timeRangeStart = `-${deadman?.deadmanStopValue}`\n\n const params = remove(\n ast,\n node =>\n node.type === 'OptionStatement' && node.assignment.id.name === 'task'\n ).reduce((acc, curr) => {\n // eslint-disable-next-line no-extra-semi\n ;(curr.assignment?.init?.properties || []).reduce((_acc, _curr) => {\n if (_curr.key?.name && _curr.value?.location?.source) {\n _acc[_curr.key.name] = _curr.value.location.source\n }\n\n return _acc\n }, acc)\n\n return acc\n }, {})\n\n if (!data.measurement) {\n throw new Error('please select a measurement.')\n }\n const measurement = `(r) => r[\"_measurement\"] == \"${data.measurement}\"`\n\n const conditions =\n `(r) => ` + THRESHOLD_TYPES[deadmanType].condition(deadman)\n const imports = parse(`\nimport \"strings\"\nimport \"regexp\"\nimport \"influxdata/influxdb/monitor\"\nimport \"influxdata/influxdb/schema\"\nimport \"influxdata/influxdb/secrets\"\nimport \"experimental\"\n${ENDPOINT_DEFINITIONS[data.endpoint]?.generateImports()}`)\n\n imports.imports = Object.values(\n imports.imports.concat(ast.imports || []).reduce((acc, curr) => {\n acc[curr.path.value] = curr\n return acc\n }, {})\n ).sort((a: ImportDeclaration, b: ImportDeclaration) =>\n b.path.value.toLowerCase().localeCompare(a.path.value.toLowerCase())\n ) as ImportDeclaration[]\n\n ast.imports = []\n\n const newQuery = `\n${format_from_js_file(imports)}\n\ncheck = {\n _check_id: \"${id}\",\n _check_name: \"Notebook Generated Deadman Check\",\n _type: \"deadman\",\n tags: {},\n}\n\nnotification = {\n _notification_rule_id: \"${id}\",\n _notification_rule_name: \"Notebook Generated Rule\",\n _notification_endpoint_id: \"${id}\",\n _notification_endpoint_name: \"Notebook Generated Endpoint\",\n}\n\ntask_data = ${format_from_js_file(ast)}\ntrigger = ${conditions}\nmessageFn = (r) => (\"${data.message}\")\n\n${ENDPOINT_DEFINITIONS[data.endpoint]?.generateQuery(\n data.endpointData,\n measurement\n)}\n|> monitor[\"deadman\"](t: experimental[\"subDuration\"](from: now(), d: ${\n deadman.deadmanCheckValue\n }))`\n\n const newAST = parse(newQuery)\n\n if (!params.name) {\n params.name = `\"Notebook Deadman Task for ${id}\"`\n }\n\n if (data.interval) {\n params.every = data.interval\n }\n\n if (data.offset) {\n params.offset = data.offset\n }\n\n if (Object.keys(vars).length) {\n const varString = Object.entries(vars)\n .map(([key, val]) => `${key}: ${val}`)\n .join(',\\n')\n const varHeader = parse(`option v = {${varString}}\\n`)\n newAST.body.unshift(varHeader.body[0])\n }\n\n const paramString = Object.entries(params)\n .map(([key, val]) => `${key}: ${val}`)\n .join(',\\n')\n const taskHeader = parse(`option task = {${paramString}}\\n`)\n newAST.body.unshift(taskHeader.body[0])\n\n return format_from_js_file(newAST)\n }, [\n id,\n queryText,\n data.every,\n data.offset,\n data.endpointData,\n data.endpoint,\n data.measurement,\n data.thresholds,\n data.message,\n ])\n\n const generateThresholdTask = useCallback(() => {\n // simplify takes care of all the variable nonsense in the query\n const ast = parse(simplify(queryText))\n\n const vars = remove(\n ast,\n node => node.type === 'OptionStatement' && node.assignment.id.name === 'v'\n ).reduce((acc, curr) => {\n // eslint-disable-next-line no-extra-semi\n ;(curr.assignment?.init?.properties || []).reduce((_acc, _curr) => {\n if (_curr.key?.name && _curr.value?.location?.source) {\n _acc[_curr.key.name] = _curr.value.location.source\n }\n\n return _acc\n }, acc)\n\n return acc\n }, {})\n const params = remove(\n ast,\n node =>\n node.type === 'OptionStatement' && node.assignment.id.name === 'task'\n ).reduce((acc, curr) => {\n // eslint-disable-next-line no-extra-semi\n ;(curr.assignment?.init?.properties || []).reduce((_acc, _curr) => {\n if (_curr.key?.name && _curr.value?.location?.source) {\n _acc[_curr.key.name] = _curr.value.location.source\n }\n\n return _acc\n }, acc)\n\n return acc\n }, {})\n\n if (!data.measurement) {\n throw new Error('please select a measurement.')\n }\n const measurement = `(r) => r[\"_measurement\"] == \"${data.measurement}\"`\n\n const conditions =\n `(r) => ` +\n data.thresholds\n .map(threshold => THRESHOLD_TYPES[threshold.type].condition(threshold))\n .join(' and ')\n\n const imports = parse(`\nimport \"strings\"\nimport \"regexp\"\nimport \"influxdata/influxdb/monitor\"\nimport \"influxdata/influxdb/schema\"\nimport \"influxdata/influxdb/secrets\"\nimport \"experimental\"\n${ENDPOINT_DEFINITIONS[data.endpoint]?.generateImports()}`)\n\n imports.imports = Object.values(\n imports.imports.concat(ast.imports || []).reduce((acc, curr) => {\n acc[curr.path.value] = curr\n return acc\n }, {})\n ).sort((a: ImportDeclaration, b: ImportDeclaration) =>\n b.path.value.toLowerCase().localeCompare(a.path.value.toLowerCase())\n ) as ImportDeclaration[]\n\n ast.imports = []\n\n const newQuery = `\n${format_from_js_file(imports)}\n\ncheck = {\n _check_id: \"${id}\",\n _check_name: \"Notebook Generated Check\",\n _type: \"custom\",\n tags: {},\n}\nnotification = {\n _notification_rule_id: \"${id}\",\n _notification_rule_name: \"Notebook Generated Rule\",\n _notification_endpoint_id: \"${id}\",\n _notification_endpoint_name: \"Notebook Generated Endpoint\",\n}\n\ntask_data = ${format_from_js_file(ast)}\ntrigger = ${conditions}\nmessageFn = (r) => (\"${data.message}\")\n\n${ENDPOINT_DEFINITIONS[data.endpoint]?.generateQuery(\n data.endpointData,\n measurement\n)}`\n\n const newAST = parse(newQuery)\n\n if (!params.name) {\n params.name = `\"Notebook Task for ${id}\"`\n }\n\n if (data.interval) {\n params.every = data.interval\n }\n\n if (data.offset) {\n params.offset = data.offset\n }\n\n if (Object.keys(vars).length) {\n const varString = Object.entries(vars)\n .map(([key, val]) => `${key}: ${val}`)\n .join(',\\n')\n const varHeader = parse(`option v = {${varString}}\\n`)\n newAST.body.unshift(varHeader.body[0])\n }\n\n const paramString = Object.entries(params)\n .map(([key, val]) => `${key}: ${val}`)\n .join(',\\n')\n const taskHeader = parse(`option task = {${paramString}}\\n`)\n newAST.body.unshift(taskHeader.body[0])\n\n return format_from_js_file(newAST)\n }, [\n id,\n queryText,\n data.every,\n data.offset,\n data.endpointData,\n data.endpoint,\n data.measurement,\n data.thresholds,\n data.message,\n ])\n\n const generateTask = useCallback(() => {\n event('Alert Panel (Notebooks) - Export Alert Task Clicked')\n\n if (data.thresholds[0].type === deadmanType) {\n return generateDeadmanTask()\n } else {\n return generateThresholdTask()\n }\n }, [generateDeadmanTask, generateThresholdTask, data.thresholds])\n\n const handleTaskCreation = _ => {\n dispatch(notify(exportAlertToTaskSuccess(data.endpoint)))\n }\n\n return (\n \n )\n}\n\nexport default ExportTask\n","// Libraries\nimport React, {FC} from 'react'\n\n// Component\nimport {Button, ComponentSize, ComponentColor} from '@influxdata/clockface'\n\ninterface Props {\n expression: string\n onClickFunction: (expression: string) => void\n testID: string\n}\n\nconst defaultProps = {\n testID: 'alert-expression',\n}\n\nconst ToolbarExpression: FC = ({\n expression,\n onClickFunction,\n testID,\n}) => {\n const handleClickFunction = () => {\n onClickFunction(expression)\n }\n\n return (\n \n {expression}\n \n \n )\n}\n\nToolbarExpression.defaultProps = defaultProps\n\nexport default ToolbarExpression\n","import React, {FC, useState, useMemo, useCallback} from 'react'\n\nimport {\n Input,\n InputType,\n IconFont,\n EmptyState,\n ComponentSize,\n} from '@influxdata/clockface'\nimport {FromFluxResult} from '@influxdata/giraffe'\nimport Expression from 'src/flows/pipes/Notification/Expression'\n\ninterface Props {\n parsed: FromFluxResult\n onSelect: (exp: string) => void\n}\n\ninterface SchemaExpressions {\n [key: string]: Array\n}\n\nconst parsedResultToSchema = (\n parsed: FromFluxResult,\n search: string\n): SchemaExpressions => {\n const filtered = [\n /^_start$/,\n /^_stop$/,\n /^_time$/,\n /^_value/,\n /^_measurement$/,\n /^_field$/,\n /^table$/,\n /^result$/,\n ]\n if (!parsed) {\n return\n }\n\n const out = parsed.table as any\n const fields = out.columns._field?.data\n const columns = out.columnKeys.filter(key => {\n return filtered.reduce((acc, curr) => {\n return acc && !curr.test(key)\n }, true)\n })\n const columnsToInclude = ['_start', '_stop', '_measurement']\n const systemVars = [\n '_check_id',\n '_check_name',\n '_level',\n '_notebook_link',\n '_source_measurement',\n '_type',\n ]\n const schema = {\n fields: new Set(\n fields?.filter(f => f.toLowerCase().includes(search.toLowerCase()))\n ),\n tags: new Set(\n columns?.filter(\n c =>\n out.columns[c].data.filter(d => d) &&\n c.toLowerCase().includes(search.toLowerCase())\n )\n ),\n columns: out.columnKeys?.filter(\n c =>\n columnsToInclude.includes(c) &&\n c.toLowerCase().includes(search.toLowerCase())\n ),\n system: systemVars.filter(s =>\n s.toLowerCase().includes(search.toLowerCase())\n ),\n }\n\n const ret = {}\n Object.keys(schema).forEach(k => {\n if (schema[k].length || schema[k].size) {\n ret[k] = Array.from(schema[k])\n }\n })\n return ret\n}\n\nconst capitalizeFirstLetter = (s: string) => {\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\nconst categoriesCompare = (a: string, b: string) => {\n const order = ['measurements', 'fields', 'tags', 'columns', 'system']\n return order.indexOf(a) - order.indexOf(b)\n}\n\nconst Expressions: FC = ({parsed, onSelect}) => {\n const [search, setSearch] = useState('')\n const updateSearch = useCallback(\n e => {\n setSearch(e.target.value)\n },\n [search, setSearch]\n )\n\n const schemaExpressions = useMemo(\n () => parsedResultToSchema(parsed, search),\n [parsed, search]\n )\n\n let expComponent\n\n if (!Object.keys(schemaExpressions).length) {\n expComponent = (\n \n No expressions match your search\n \n )\n } else {\n expComponent = (\n <>\n {Object.keys(schemaExpressions)\n .sort((a, b) => categoriesCompare(a, b))\n .map(category => (\n
\n
\n {capitalizeFirstLetter(category)}\n
\n {schemaExpressions[category].map(exp => (\n \n ))}\n
\n ))}\n \n )\n }\n\n return (\n
\n
\n \n
\n
\n {expComponent}\n
\n
\n )\n}\n\nexport default Expressions\n","import React, {FC, useCallback, useContext} from 'react'\nimport {\n ComponentSize,\n FlexBox,\n AlignItems,\n TextBlock,\n Dropdown,\n FlexDirection,\n ComponentStatus,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\nimport 'src/flows/pipes/Notification/Threshold.scss'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\n\ninterface Props {\n readOnly?: boolean\n}\n\nconst Measurement: FC = ({readOnly}) => {\n const {data, update, results} = useContext(PipeContext)\n const {measurement} = data\n\n const measurements = Array.from(\n new Set(results.parsed.table.columns['_measurement']?.data as string[])\n )\n\n const onSelect = useCallback(\n (measurement: string) => {\n event('Changed Notification Measurement')\n update({measurement})\n },\n [measurements, update]\n )\n\n const menuItems = measurements.map(key => (\n onSelect(key)}\n selected={key === measurement}\n title={key}\n disabled={!!readOnly}\n >\n {key}\n \n ))\n\n const menu = onCollapse => (\n {menuItems}\n )\n\n const menuButton = (active, onClick) => (\n \n {measurement || 'Select a measurement'}\n \n )\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport default Measurement\n","import React, {ChangeEvent, FC, useCallback, useContext, useMemo} from 'react'\nimport {\n ComponentSize,\n FlexBox,\n IconFont,\n TextBlock,\n Dropdown,\n FlexDirection,\n Input,\n InputType,\n Icon,\n ComponentStatus,\n} from '@influxdata/clockface'\nimport DurationInput from 'src/shared/components/DurationInput'\nimport {CHECK_OFFSET_OPTIONS} from 'src/alerting/constants'\n\nimport {PipeContext} from 'src/flows/context/pipe'\nimport 'src/flows/pipes/Notification/Threshold.scss'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\nimport {\n deadmanType,\n Threshold as ThresholdType,\n ThresholdFormat,\n THRESHOLD_TYPES,\n} from 'src/flows/pipes/Visualization/threshold'\n\ninterface Props {\n readOnly?: boolean\n}\n\nconst Threshold: FC = ({readOnly}) => {\n const {data, update, results} = useContext(PipeContext)\n\n const fields = Array.from(\n new Set(results.parsed.table.columns['_field']?.data as string[])\n )\n\n const thresholds = useMemo(() => data?.thresholds ?? [], [data?.thresholds])\n\n const setThresholdType = useCallback(\n (type: string, index) => {\n if (!THRESHOLD_TYPES[type]) {\n return\n }\n\n event('Changed Notification Threshold', {type})\n\n const threshold = thresholds.find((_, i) => index === i)\n\n if (!threshold) {\n return\n }\n\n threshold.type = type\n\n let updatedThreshold = thresholds\n\n if (THRESHOLD_TYPES[type].format === ThresholdFormat.Range) {\n threshold.min = 0\n threshold.max = 100\n } else if (THRESHOLD_TYPES[type].format === ThresholdFormat.Deadman) {\n updatedThreshold = [\n {\n type: deadmanType,\n deadmanCheckValue: '5s',\n deadmanStopValue: '90s',\n field: threshold?.field || 'Select a numeric field',\n },\n ]\n } else {\n threshold.value = 20\n }\n update({thresholds: updatedThreshold})\n },\n [thresholds, update]\n )\n\n const setColumn = useCallback(\n (column: string, index: number) => {\n event('Changed Notification Threshold Column')\n\n const threshold = thresholds.find((_, i) => index === i)\n\n if (threshold) {\n threshold.field = column\n }\n\n update({thresholds})\n },\n [thresholds, update]\n )\n\n const funcDropdown = useCallback(\n (threshold: ThresholdType, index: number) => {\n const menuItems = Object.entries(THRESHOLD_TYPES)\n .filter(([key]) => {\n if (index > 0 && key === deadmanType) {\n return false\n }\n return true\n })\n .map(([key, value]) => (\n setThresholdType(type, index)}\n selected={key === threshold?.type}\n title={value.name}\n disabled={!!readOnly}\n >\n {value?.name}\n \n ))\n const menu = onCollapse => (\n {menuItems}\n )\n const menuButton = (active, onClick) => (\n \n {THRESHOLD_TYPES[threshold?.type]?.name || 'Select a function'}\n \n )\n return \n },\n [setThresholdType]\n )\n\n const columnDropdown = useCallback(\n (threshold: ThresholdType, index: number) => {\n const menuItems = fields.map(key => (\n setColumn(field, index)}\n selected={key === threshold?.field}\n title={key}\n disabled={!!readOnly}\n >\n {key}\n \n ))\n const menu = onCollapse => (\n {menuItems}\n )\n const menuButton = (active, onClick) => (\n \n {threshold?.field || 'Select a numeric field'}\n \n )\n return \n },\n [fields, setColumn]\n )\n\n const updateMin = (event: ChangeEvent, index: number) => {\n const threshold = thresholds.find((_, i) => index === i)\n\n if (threshold) {\n threshold.min = event.target.value\n }\n\n update({thresholds})\n }\n\n const updateMax = (event: ChangeEvent, index: number) => {\n const threshold = thresholds.find((_, i) => index === i)\n\n if (threshold) {\n threshold.max = event.target.value\n }\n\n update({thresholds})\n }\n\n const updateDeadmanCheckValue = (value: string) => {\n // we only ever want to present deadman checks in the first instance\n // so we're only ever concerned with the first value of the threshold\n // since anything after that is irrelevant\n update({\n thresholds: [\n {\n ...thresholds[0],\n deadmanCheckValue: value,\n type: deadmanType,\n },\n ],\n })\n }\n\n const updateDeadmanStopValue = (value: string) => {\n // we only ever want to present deadman checks in the first instance\n // so we're only ever concerned with the first value of the threshold\n // since anything after that is irrelevant\n update({\n thresholds: [\n {\n ...thresholds[0],\n deadmanStopValue: value,\n type: deadmanType,\n },\n ],\n })\n }\n\n const updateValue = (\n changeEvent: ChangeEvent,\n index: number\n ) => {\n event('Alert Panel (Notebooks) - Threshold Value Entered')\n const threshold = thresholds.find((_, i) => index === i)\n\n if (threshold) {\n threshold.value = changeEvent.target.value\n }\n\n update({thresholds})\n }\n\n const handleAddThreshold = () => {\n event('Alert Panel (Notebooks) - New Threshold Added')\n update({\n thresholds: [\n ...thresholds,\n {\n type: 'greater',\n value: 0,\n },\n ],\n })\n }\n\n const handleRemoveThreshold = (index: number) => {\n const copy = thresholds.slice()\n copy.splice(index, 1)\n\n update({\n thresholds: copy,\n })\n }\n\n const thresholdEntry = (threshold: ThresholdType, index: number) => {\n if (threshold?.type === deadmanType) {\n return (\n \n \n \n \n \n \n \n \n \n )\n }\n if (THRESHOLD_TYPES[threshold?.type]?.format === ThresholdFormat.Range) {\n return (\n \n \n updateMin(event, index)}\n size={ComponentSize.Medium}\n status={\n !!readOnly ? ComponentStatus.Disabled : ComponentStatus.Default\n }\n />\n \n \n \n updateMax(event, index)}\n size={ComponentSize.Medium}\n status={\n !!readOnly ? ComponentStatus.Disabled : ComponentStatus.Default\n }\n />\n \n \n )\n }\n return (\n \n \n updateValue(event, index)}\n size={ComponentSize.Medium}\n status={\n !!readOnly ? ComponentStatus.Disabled : ComponentStatus.Default\n }\n />\n \n \n )\n }\n\n return (\n \n {thresholds.map((threshold: ThresholdType, index: number) => (\n \n \n \n {columnDropdown(threshold, index)}\n \n \n \n {funcDropdown(threshold, index)}\n \n \n {thresholdEntry(threshold, index)}\n \n \n {index !== 0 && !readOnly ? (\n handleRemoveThreshold(index)}\n >\n \n \n ) : null}\n \n \n ))}\n {thresholds[0].type !== deadmanType && !readOnly && (\n \n \n \n \n \n )}\n \n )\n}\n\nexport default Threshold\n","import {EndpointTypeRegistration} from 'src/types'\n\nexport const TEST_NOTIFICATION = 'This is a test notification'\n\nexport interface TypeLookup {\n [key: string]: EndpointTypeRegistration\n}\nexport const ENDPOINT_DEFINITIONS: TypeLookup = {}\nexport const ENDPOINT_ORDER = [\n 'slack',\n 'http',\n 'pagerduty',\n 'sendgrid',\n 'aws',\n 'mailjet',\n 'mailgun',\n 'discord',\n 'opsgenie',\n 'pushbullet',\n 'teams',\n 'telegram',\n 'sensu',\n 'zenoss',\n]\n\n// NOTE: this loads in all the modules under the current directory\n// to make it easier to add new types\nconst context = require.context(\n './endpoints',\n true,\n /^\\.\\/([^\\/])+\\/index\\.(ts|tsx)$/\n)\ncontext.keys().forEach(async key => {\n const module = await context(key)\n module.default((definition: EndpointTypeRegistration) => {\n if (ENDPOINT_DEFINITIONS.hasOwnProperty(definition.type)) {\n throw new Error(\n `Endpoint of type [${definition.type}] has already been registered`\n )\n }\n\n ENDPOINT_DEFINITIONS[definition.type] = {\n ...definition,\n }\n })\n})\n","import {TEST_NOTIFICATION} from 'src/flows/pipes/Notification/endpoints'\nimport View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'aws',\n name: 'AWS SES Email',\n data: {\n url: 'https://email.your-aws-region.amazonaws.com/sendemail/v2/email/outbound-emails',\n authAlgo: '',\n accessKey: '',\n credScope: '',\n signedHeaders: '',\n calcSignature: '',\n email: '',\n },\n component: View,\n readOnlyComponent: ReadOnly,\n generateImports: () =>\n ['http', 'influxdata/influxdb/secrets']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateTestImports: () =>\n ['array', 'http', 'influxdata/influxdb/secrets']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateQuery: (data, measurement) => `task_data\n\t|> schema[\"fieldsAsCols\"]()\n |> set(key: \"_notebook_link\", value: \"${window.location.href}\")\n |> filter(fn: ${measurement})\n\t|> monitor[\"check\"](\n\t\tdata: check,\n\t\tmessageFn: messageFn,\n\t\tcrit: trigger,\n\t)\n |> filter(fn: trigger)\n |> keep(columns: [\"_value\", \"_time\", \"_measurement\"])\n |> limit(n: 1, offset: 0)\n\t|> monitor[\"notify\"](\n data: notification,\n endpoint: ((r) => {\n authAlgo = secrets.get(key: \"${data.authAlgo}\")\n accessKey = secrets.get(key: \"${data.accessKey}\")\n credScope = secrets.get(key: \"${data.credScope}\")\n signedHeaders = secrets.get(key: \"${data.signedHeaders}\")\n calcSignature = secrets.get(key: \"${data.calcSignature}\")\n http.post(\n url: \"${data.url}\",\n headers: {\n \"Content-type\": \"application/json\",\n \"Authorization\": \"\\${authAlgo} Credential=\\${accessKey}/\\${credScope},SignedHeaders=\\${signedHeaders},Signature=\\${calcSignature}\"\n },\n data: bytes(v: \"{\n \\\\\"Content\\\\\": {\n \\\\\"Simple\\\\\": {\n \\\\\"Body\\\\\": {\n \\\\\"Text\\\\\": {\n \\\\\"Charset\\\\\": \\\\\"UTF-8\\\\\",\n \\\\\"Data\\\\\": \\\\\"\\${ r._message }\\\\\"\n }\n },\n \\\\\"Subject\\\\\": {\n \\\\\"Charset\\\\\": \\\\\"UTF-8\\\\\",\n \\\\\"Data\\\\\": \\\\\"InfluxDB Alert\\\\\"\n }\n }\n },\n \\\\\"Destination\\\\\": {\n \\\\\"ToAddresses\\\\\": [\n \\\\\"${data.email}\\\\\"\n ]\n }\n }\"))\n })\n )`,\n generateTestQuery: data => `\n authAlgo = secrets.get(key: \"${data.authAlgo}\")\n accessKey = secrets.get(key: \"${data.accessKey}\")\n credScope = secrets.get(key: \"${data.credScope}\")\n signedHeaders = secrets.get(key: \"${data.signedHeaders}\")\n calcSignature = secrets.get(key: \"${data.calcSignature}\")\n http.post(\n url: \"${data.url}\",\n headers: {\n \"Content-type\": \"application/json\",\n \"Authorization\": \"\\${authAlgo} Credential=\\${accessKey}/\\${credScope},SignedHeaders=\\${signedHeaders},Signature=\\${calcSignature}\"\n },\n data: bytes(v: \"{\n \\\\\"Content\\\\\": {\n \\\\\"Simple\\\\\": {\n \\\\\"Body\\\\\": {\n \\\\\"Text\\\\\": {\n \\\\\"Charset\\\\\": \\\\\"UTF-8\\\\\",\n \\\\\"Data\\\\\": \\\\\"${TEST_NOTIFICATION}\\\\\"\n }\n },\n \\\\\"Subject\\\\\": {\n \\\\\"Charset\\\\\": \\\\\"UTF-8\\\\\",\n \\\\\"Data\\\\\": \\\\\"InfluxDB Alert\\\\\"\n }\n }\n },\n \\\\\"Destination\\\\\": {\n \\\\\"ToAddresses\\\\\": [\n \\\\\"${data.email}\\\\\"\n ]\n }\n }\"))\n\n array.from(rows: [{value: 0}])\n |> yield(name: \"ignore\")`,\n })\n}\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n ComponentStatus,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst ReadOnly: FC = () => {\n const {data} = useContext(PipeContext)\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default ReadOnly\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n FlexBox,\n AlignItems,\n} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {EndpointProps} from 'src/types'\nimport SecretsDropdown from 'src/secrets/components/SecretsDropdown'\n\nconst View: FC = ({createSecret, secrets}) => {\n const {data, update} = useContext(PipeContext)\n\n const updateURL = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n url: evt.target.value,\n },\n })\n }\n\n const updateAccessKey = val => {\n update({\n endpointData: {\n ...data.endpointData,\n accessKey: val,\n },\n })\n }\n\n const updateAuthAlgo = val => {\n update({\n endpointData: {\n ...data.endpointData,\n authAlgo: val,\n },\n })\n }\n\n const updateCredScope = val => {\n update({\n endpointData: {\n ...data.endpointData,\n credScope: val,\n },\n })\n }\n\n const updateSignedHeaders = val => {\n update({\n endpointData: {\n ...data.endpointData,\n signedHeaders: val,\n },\n })\n }\n\n const updateCalcSignature = val => {\n update({\n endpointData: {\n ...data.endpointData,\n calcSignature: val,\n },\n })\n }\n\n const updateEmail = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n email: evt.target.value,\n },\n })\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default View\n","import {TEST_NOTIFICATION} from 'src/flows/pipes/Notification/endpoints'\nimport View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'http',\n name: 'HTTP Post',\n data: {\n auth: 'none',\n username: '',\n password: '',\n token: '',\n url: 'https://www.example.com/endpoint',\n },\n component: View,\n readOnlyComponent: ReadOnly,\n generateImports: () =>\n ['http', 'influxdata/influxdb/secrets', 'json']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateTestImports: () =>\n ['array', 'http', 'influxdata/influxdb/secrets', 'json']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateQuery: (data, measurement) => {\n const headers = [['\"Content-Type\"', '\"application/json\"']]\n let prefixSecrets = ''\n\n if (data.auth === 'basic') {\n headers.push(['Authorization', 'auth'])\n prefixSecrets = `\n username = secrets.get(key: \"${data.username}\")\n password = secrets.get(key: \"${data.password}\")\n auth = http.basicAuth(u: username, p: password)\n `\n }\n\n if (data.auth === 'bearer') {\n headers.push(['Authorization', `\"Bearer \\${token}\"`])\n prefixSecrets = `\n token = secrets.get(key: \"${data.token}\")\n `\n }\n\n const _headers = headers\n .reduce((acc, curr) => {\n acc.push(`${curr[0]}: ${curr[1]}`)\n return acc\n }, [])\n .join(', ')\n\n const out = `\n ${prefixSecrets}\n task_data\n |> schema[\"fieldsAsCols\"]()\n |> set(key: \"_notebook_link\", value: \"${window.location.href}\")\n |> filter(fn: ${measurement})\n |> monitor[\"check\"](\n data: check,\n messageFn: messageFn,\n crit: trigger,\n )\n |> filter(fn: trigger)\n |> keep(columns: [\"_value\", \"_time\", \"_measurement\"])\n |> limit(n: 1, offset: 0)\n |> monitor[\"notify\"](data: notification, endpoint: http.endpoint(url: \"${data.url}\")(\n mapFn: (r) => {\n body = {r with _version: 1}\n return {headers: {${_headers}}, data: json.encode(v: body)}\n }))\n `\n return out\n },\n generateTestQuery: data => {\n const headers = [['\"Content-Type\"', '\"application/json\"']]\n let prefixSecrets = ''\n\n if (data.auth === 'basic') {\n headers.push(['Authorization', 'auth'])\n prefixSecrets = `\n username = secrets.get(key: \"${data.username}\")\n password = secrets.get(key: \"${data.password}\")\n auth = http.basicAuth(u: username, p: password)\n `\n }\n\n if (data.auth === 'bearer') {\n headers.push(['Authorization', `\"Bearer \\${token}\"`])\n prefixSecrets = `\n token = secrets.get(key: \"${data.token}\")\n `\n }\n\n const _headers = headers\n .reduce((acc, curr) => {\n acc.push(`${curr[0]}: ${curr[1]}`)\n return acc\n }, [])\n .join(', ')\n\n return `\n ${prefixSecrets}\n http.post(\n url: \"${data.url}\",\n headers: {${_headers}},\n data: json.encode(v: { msg: \"${TEST_NOTIFICATION}\"})\n )\n array.from(rows: [{value: 0}])\n |> yield(name: \"ignore\")\n `\n },\n })\n}\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n FlexBox,\n Input,\n InputType,\n ComponentSize,\n ComponentStatus,\n SelectGroup,\n FlexDirection,\n AlignItems,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst ReadOnly: FC = () => {\n const {data} = useContext(PipeContext)\n\n let submenu\n\n if (data.endpointData.auth === 'basic') {\n submenu = (\n <>\n \n \n \n \n \n \n \n )\n } else if (data.endpointData.auth === 'bearer') {\n submenu = (\n \n \n \n )\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n {}}\n active={data.endpointData.auth === 'none'}\n disabled\n >\n None\n \n {}}\n active={data.endpointData.auth === 'basic'}\n disabled\n >\n Basic\n \n {}}\n active={data.endpointData.auth === 'bearer'}\n disabled\n >\n Bearer\n \n \n \n \n \n {submenu}\n \n )\n}\n\nexport default ReadOnly\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n FlexBox,\n Input,\n InputType,\n ComponentSize,\n SelectGroup,\n FlexDirection,\n AlignItems,\n} from '@influxdata/clockface'\n\nimport SecretsDropdown from 'src/secrets/components/SecretsDropdown'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {EndpointProps} from 'src/types'\n\nconst View: FC = ({createSecret, secrets}) => {\n const {data, update} = useContext(PipeContext)\n\n const updater = (field, value) => {\n update({\n endpointData: {\n ...data.endpointData,\n [field]: value,\n },\n })\n }\n\n const updateUrl = evt => {\n updater('url', evt.target.value)\n }\n\n const updateAuth = (auth: string) => {\n updater('auth', auth)\n }\n\n const updateUsername = val => {\n updater('username', val)\n }\n\n const updatePassword = val => {\n updater('password', val)\n }\n\n const updateToken = val => {\n updater('token', val)\n }\n\n let submenu\n\n if (data.endpointData.auth === 'basic') {\n submenu = (\n <>\n \n \n \n \n \n \n \n )\n } else if (data.endpointData.auth === 'bearer') {\n submenu = (\n \n \n \n )\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n None\n \n \n Basic\n \n \n Bearer\n \n \n \n \n \n {submenu}\n \n )\n}\n\nexport default View\n","import {TEST_NOTIFICATION} from 'src/flows/pipes/Notification/endpoints'\nimport View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'mailgun',\n name: 'Mailgun Email',\n data: {\n domain: '',\n apiKey: '',\n email: '',\n },\n component: View,\n readOnlyComponent: ReadOnly,\n generateImports: () =>\n ['http', 'influxdata/influxdb/secrets']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateTestImports: () =>\n ['array', 'http', 'influxdata/influxdb/secrets']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateQuery: (data, measurement) => {\n const subject = encodeURIComponent('InfluxDB Alert')\n const fromEmail = `mailgun@${data.domain}`\n\n return `apiKey = secrets.get(key: \"${data.apiKey}\")\nauth = http.basicAuth(u: \"api\", p: \"\\${apiKey}\")\n\ntask_data\n\t|> schema[\"fieldsAsCols\"]()\n |> set(key: \"_notebook_link\", value: \"${window.location.href}\")\n |> filter(fn: ${measurement})\n\t|> monitor[\"check\"](\n\t\tdata: check,\n\t\tmessageFn: messageFn,\n\t\tcrit: trigger,\n\t)\n |> filter(fn: trigger)\n |> keep(columns: [\"_value\", \"_time\", \"_measurement\"])\n |> limit(n: 1, offset: 0)\n\t|> monitor[\"notify\"](\n data: notification,\n endpoint: http.endpoint(url: \"https://api.mailgun.net/v3/${data.domain}/messages\")(\n mapFn: (r) => {\n data = strings.joinStr(arr: [\n \"from=${fromEmail}\",\n \"to=${data.email}\",\n \"subject=${subject}\",\n \"text=\\${r._message}\"\n ], v: \"&\"\n )\n return {\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"Authorization\": \"\\${auth}\"\n },\n data: bytes(v: data)\n }\n })\n )`\n },\n generateTestQuery: data => {\n const subject = encodeURIComponent('InfluxDB Alert')\n const message = encodeURIComponent(TEST_NOTIFICATION)\n const fromEmail = `mailgun@${data.domain}`\n\n return `apiKey = secrets.get(key: \"${data.apiKey}\")\nauth = http.basicAuth(u: \"api\", p: \"\\${apiKey}\")\nurl = \"https://api.mailgun.net/v3/${data.domain}/messages\"\ndata = strings.joinStr(arr: [\n \"from=${fromEmail}\",\n \"to=${data.email}\",\n \"subject=${subject}\",\n \"text=${message}\"\n], v: \"&\"\n)\n\nhttp.post(\n url: url,\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"Authorization\": \"\\${auth}\"\n },\n data: bytes(v: data)\n)\n\narray.from(rows: [{value: 0}])\n |> yield(name: \"ignore\")\n`\n },\n })\n}\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n ComponentStatus,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst ReadOnly: FC = () => {\n const {data} = useContext(PipeContext)\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default ReadOnly\n","import React, {FC, useContext} from 'react'\nimport {Form, Input, InputType, ComponentSize} from '@influxdata/clockface'\nimport SecretsDropdown from 'src/secrets/components/SecretsDropdown'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {EndpointProps} from 'src/types'\n\nconst View: FC = ({createSecret, secrets}) => {\n const {data, update} = useContext(PipeContext)\n\n const updateDomain = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n domain: evt.target.value,\n },\n })\n }\n\n const updateAPIKey = val => {\n update({\n endpointData: {\n ...data.endpointData,\n apiKey: val,\n },\n })\n }\n\n const updateEmail = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n email: evt.target.value,\n },\n })\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default View\n","import {TEST_NOTIFICATION} from 'src/flows/pipes/Notification/endpoints'\nimport View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'mailjet',\n name: 'Mailjet Email',\n data: {\n url: 'https://api.mailjet.com/v3.1/send',\n apiKey: '',\n apiSecret: '',\n email: '',\n fromEmail: 'alerts@influxdata.com',\n },\n featureFlag: 'notebooksNewEndpoints',\n component: View,\n readOnlyComponent: ReadOnly,\n generateImports: () =>\n ['http', 'influxdata/influxdb/secrets', 'json']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateTestImports: () =>\n ['array', 'http', 'influxdata/influxdb/secrets', 'json']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateQuery: (data, measurement) => `task_data\n\t|> schema[\"fieldsAsCols\"]()\n |> set(key: \"_notebook_link\", value: \"${window.location.href}\")\n |> filter(fn: ${measurement})\n |> monitor[\"check\"](\n\t\tdata: check,\n\t\tmessageFn: messageFn,\n\t\tcrit: trigger,\n\t)\n |> filter(fn: trigger)\n |> keep(columns: [\"_value\", \"_time\", \"_measurement\"])\n |> limit(n: 1, offset: 0)\n\t|> monitor[\"notify\"](\n data: notification,\n endpoint: http.endpoint(url: \"${data.url}\")(\n mapFn: (r) => {\n apiKey = secrets.get(key: \"${data.apiKey}\")\n apiSecret = secrets.get(key: \"${data.apiSecret}\")\n auth = http.basicAuth(u: apiKey, p: apiSecret)\n\n return {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": auth\n },\n data: json.encode(v: {\n \"Messages\": [{\n \"From\": {\n \"Email\": \"${data.fromEmail}\"\n },\n \"To\": [{\n \"Email\": \"${data.email}\"\n }],\n \"Subject\": \"InfluxDB Alert\",\n \"TextPart\": r._message\n }]\n })\n }\n }\n )\n )`,\n generateTestQuery: data => `\n apiKey = secrets.get(key: \"${data.apiKey}\")\n apiSecret = secrets.get(key: \"${data.apiSecret}\")\n auth = http.basicAuth(u: apiKey, p: apiSecret)\n\n http.post(\n url: \"${data.url}\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": auth\n },\n data: json.encode(v: {\n \"Messages\": [{\n \"From\": {\n \"Email\": \"${data.fromEmail}\"\n },\n \"To\": [{\n \"Email\": \"${data.email}\"\n }],\n \"Subject\": \"InfluxDB Alert\",\n \"TextPart\": \"${TEST_NOTIFICATION}\"\n }]\n }))\n\n array.from(rows: [{value: 0}])\n |> yield(name: \"ignore\")`,\n })\n}\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n ComponentStatus,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst ReadOnly: FC = () => {\n const {data} = useContext(PipeContext)\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default ReadOnly\n","import React, {FC, useContext} from 'react'\nimport {Form, Input, InputType, ComponentSize} from '@influxdata/clockface'\nimport SecretsDropdown from 'src/secrets/components/SecretsDropdown'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {EndpointProps} from 'src/types'\n\nconst View: FC = ({createSecret, secrets}) => {\n const {data, update} = useContext(PipeContext)\n\n const updateAPIKey = val => {\n update({\n endpointData: {\n ...data.endpointData,\n apiKey: val,\n },\n })\n }\n\n const updateAPISecret = val => {\n update({\n endpointData: {\n ...data.endpointData,\n apiSecret: val,\n },\n })\n }\n\n const updateEmail = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n email: evt.target.value,\n },\n })\n }\n\n const updateFromEmail = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n fromEmail: evt.target.value,\n },\n })\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default View\n","import {TEST_NOTIFICATION} from 'src/flows/pipes/Notification/endpoints'\nimport View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'pagerduty',\n name: 'PagerDuty',\n data: {\n url: '',\n key: '',\n level: 'warning',\n },\n component: View,\n readOnlyComponent: ReadOnly,\n generateTestImports: () =>\n ['array', 'pagerduty', 'influxdata/influxdb/secrets']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateImports: () =>\n ['pagerduty', 'influxdata/influxdb/secrets']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateQuery: (data, measurement) => `task_data\n\t|> schema[\"fieldsAsCols\"]()\n |> set(key: \"_notebook_link\", value: \"${window.location.href}\")\n |> filter(fn: ${measurement})\n |> monitor[\"check\"](\n\t\tdata: check,\n\t\tmessageFn: messageFn,\n crit: trigger,\n\t)\n |> filter(fn: trigger)\n |> keep(columns: [\"_value\", \"_time\", \"_measurement\"])\n |> limit(n: 1, offset: 0)\n\t|> monitor[\"notify\"](data: notification, endpoint: pagerduty.endpoint()(mapFn: (r) => ({ r with\n routingKey: \"${data.key}\",\n client: \"influxdata\",\n clientURL: \"${data.url}\",\n class: r._check_name,\n group: r[\"_source_measurement\"],\n severity: pagerduty[\"severityFromLevel\"](level: \"${data.level}\"),\n eventAction: pagerduty[\"actionFromLevel\"](level: \"${data.level}\"),\n source: notification[\"_notification_rule_name\"],\n summary: r[\"_message\"],\n timestamp: time(v: r[\"_source_timestamp\"]),\n })))`,\n generateTestQuery: data => `pagerduty.sendEvent(\n pagerdutyURL: \"https://events.pagerduty.com/v2/enqueue\",\n routingKey: \"${data.key}\",\n client: \"influxdata\",\n clientURL: \"${data.url}\",\n dedupKey: \"${new Date().toISOString()}\",\n class: \"check_name\",\n group: \"test_measurement\",\n severity: \"critical\",\n eventAction: \"trigger\",\n source: \"Notebook Generated Test Notification\",\n component: \"example-component\",\n summary: \"${TEST_NOTIFICATION}\",\n timestamp: \"${new Date().toISOString()}\",\n customDetails: {}\n )\n array.from(rows: [{value: 0}])\n |> yield(name: \"ignore\")\n `,\n })\n}\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n ComponentStatus,\n FlexBox,\n FlexDirection,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst ReadOnly: FC = () => {\n const {data} = useContext(PipeContext)\n\n return (\n \n \n \n \n \n \n \n \n )\n}\n\nexport default ReadOnly\n","import React, {FC, useContext} from 'react'\nimport {useSelector} from 'react-redux'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n FlexBox,\n FlexDirection,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {getOrg} from 'src/organizations/selectors'\nimport {EndpointProps} from 'src/types'\n\nconst View: FC = () => {\n const {data, update} = useContext(PipeContext)\n const org = useSelector(getOrg)\n\n const updater = (field, value) => {\n update({\n endpointData: {\n ...data.endpointData,\n [field]: value,\n },\n })\n }\n\n const updateUrl = evt => {\n updater('url', evt.target.value)\n }\n\n const updateKey = evt => {\n updater('key', evt.target.value)\n }\n\n const defaultEndpoint = `${window.location.origin}/org/${org.id}/alert-history`\n\n return (\n \n \n \n \n \n \n \n \n )\n}\n\nexport default View\n","import {TEST_NOTIFICATION} from 'src/flows/pipes/Notification/endpoints'\nimport View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'sendgrid',\n name: 'SendGrid Email',\n data: {\n url: 'https://api.sendgrid.com/v3/mail/send',\n apiKey: '',\n email: '',\n fromEmail: 'alerts@influxdata.com',\n },\n featureFlag: 'notebooksNewEndpoints',\n component: View,\n readOnlyComponent: ReadOnly,\n generateImports: () =>\n ['http', 'influxdata/influxdb/secrets', 'json']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateTestImports: () =>\n ['array', 'http', 'influxdata/influxdb/secrets', 'json']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateQuery: (data, measurement) => `task_data\n\t|> schema[\"fieldsAsCols\"]()\n |> set(key: \"_notebook_link\", value: \"${window.location.href}\")\n |> filter(fn: ${measurement})\n |> monitor[\"check\"](\n\t\tdata: check,\n\t\tmessageFn: messageFn,\n\t\tcrit: trigger,\n\t)\n |> filter(fn: trigger)\n |> keep(columns: [\"_value\", \"_time\", \"_measurement\"])\n |> limit(n: 1, offset: 0)\n |> monitor[\"notify\"](\n data: notification,\n endpoint: http.endpoint(url: \"${data.url}\")(\n mapFn: (r) => {\n apiKey = secrets.get(key: \"${data.apiKey}\")\n return {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": \"Bearer \\${apiKey}\"\n },\n data: json.encode(v: {\n \"personalizations\": [\n {\n \"to\": [\n {\n \"email\": \"${data.email}\"\n }\n ],\n \"subject\": \"InfluxDB Alert\",\n }\n ],\n \"from\": {\n \"email\": \"${data.fromEmail}\"\n },\n \"content\": [\n {\n \"type\": \"text/plain\",\n \"value\": r._message\n }\n ]\n })\n }\n }\n )\n )`,\n generateTestQuery: data => `\n apiKey = secrets.get(key: \"${data.apiKey}\")\n http.post(\n url: \"${data.url}\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": \"Bearer \\${apiKey}\"\n },\n data: json.encode(v: {\n \"personalizations\": [\n {\n \"to\": [\n {\n \"email\": \"${data.email}\"\n }\n ],\n \"subject\": \"InfluxDB Alert\"\n }\n ],\n \"from\": {\n \"email\": \"${data.fromEmail}\"\n },\n \"content\": [\n {\n \"type\": \"text/plain\",\n \"value\": \"${TEST_NOTIFICATION}\"\n }\n ]\n })\n )\n array.from(rows: [{value: 0}])\n |> yield(name: \"ignore\")`,\n })\n}\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n ComponentStatus,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst ReadOnly: FC = () => {\n const {data} = useContext(PipeContext)\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default ReadOnly\n","import React, {FC, useContext} from 'react'\nimport {Form, Input, InputType, ComponentSize} from '@influxdata/clockface'\nimport SecretsDropdown from 'src/secrets/components/SecretsDropdown'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {EndpointProps} from 'src/types'\n\nconst View: FC = ({createSecret, secrets}) => {\n const {data, update} = useContext(PipeContext)\n\n const updateAPIKey = val => {\n update({\n endpointData: {\n ...data.endpointData,\n apiKey: val,\n },\n })\n }\n\n const updateEmail = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n email: evt.target.value,\n },\n })\n }\n\n const updateFromEmail = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n fromEmail: evt.target.value,\n },\n })\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default View\n","import {TEST_NOTIFICATION} from 'src/flows/pipes/Notification/endpoints'\nimport View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'slack',\n name: 'Slack',\n data: {\n url: 'https://hooks.slack.com/services/X/X/X',\n channel: '',\n color: '#34BB55',\n },\n component: View,\n readOnlyComponent: ReadOnly,\n generateImports: () => ['slack'].map(i => `import \"${i}\"`).join('\\n'),\n generateTestImports: () =>\n ['array', 'slack'].map(i => `import \"${i}\"`).join('\\n'),\n generateQuery: (data, measurement) => `task_data\n\t|> schema[\"fieldsAsCols\"]()\n |> set(key: \"_notebook_link\", value: \"${window.location.href}\")\n |> filter(fn: ${measurement})\n\t|> monitor[\"check\"](\n\t\tdata: check,\n\t\tmessageFn: messageFn,\n\t\tcrit: trigger,\n\t)\n |> filter(fn: trigger)\n |> keep(columns: [\"_value\", \"_time\", \"_measurement\"])\n |> limit(n: 1, offset: 0)\n\t|> monitor[\"notify\"](\n data: notification,\n endpoint: slack[\"endpoint\"](url: \"${data.url}\")(mapFn: (r) => ({\n channel: \"${data.channel || ''}\",\n text: \"\\${ r._message }\",\n color: \"${data.color || '#34BB55'}\"\n }))\n )`,\n generateTestQuery: data => `\n slack.message(\n url: \"${data.url}\",\n channel: \"${data.channel || ''}\",\n text: \"${TEST_NOTIFICATION}\",\n color: \"${data.color || '#34BB55'}\"\n )\n\n array.from(rows: [{value: 0}])\n\t|> yield(name: \"ignore\")`,\n })\n}\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n ComponentStatus,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst ReadOnly: FC = () => {\n const {data} = useContext(PipeContext)\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default ReadOnly\n","import React, {FC, useContext} from 'react'\nimport {\n ColorPreview,\n CreatableTypeAheadDropdown,\n FlexBox,\n Form,\n Input,\n InputType,\n ComponentSize,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {EndpointProps} from 'src/types'\n\n/** The hex colors are suggested from here\n * https://github.com/influxdata/ui/issues/2572\n */\nconst suggestedColors = ['#DC4E58', '#FFB94A', '#2FA74D', '#0098F0', '#8E1FC3']\n\nconst View: FC = () => {\n const {data, update} = useContext(PipeContext)\n\n const updateUrl = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n url: evt.target.value,\n },\n })\n }\n\n const updateChannel = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n channel: evt.target.value,\n },\n })\n }\n\n const updateColor = hex => {\n update({\n endpointData: {\n ...data.endpointData,\n color: hex,\n },\n })\n }\n\n return (\n
\n \n \n \n \n \n \n \n (\n \n \n
\n {displayText}\n
\n
\n )}\n />\n
\n
\n )\n}\n\nexport default View\n","import {TEST_NOTIFICATION} from 'src/flows/pipes/Notification/endpoints'\nimport View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'telegram',\n name: 'Telegram',\n data: {\n url: 'https://api.telegram.org/bot',\n channel: '',\n token: '',\n parseMode: 'MarkdownV2',\n },\n featureFlag: 'notebooksNewEndpoints',\n component: View,\n readOnlyComponent: ReadOnly,\n generateImports: () =>\n ['contrib/sranka/telegram', 'influxdata/influxdb/secrets']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateTestImports: () =>\n ['array', 'contrib/sranka/telegram', 'influxdata/influxdb/secrets']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateQuery: (data, measurement) => `task_data\n\t|> schema[\"fieldsAsCols\"]()\n |> set(key: \"_notebook_link\", value: \"${window.location.href}\")\n |> filter(fn: ${measurement})\n\t|> monitor[\"check\"](\n\t\tdata: check,\n\t\tmessageFn: messageFn,\n\t\tcrit: trigger,\n\t)\n |> filter(fn: trigger)\n |> keep(columns: [\"_value\", \"_time\", \"_measurement\"])\n |> limit(n: 1, offset: 0)\n\t|> monitor[\"notify\"](\n data: notification,\n endpoint: telegram[\"endpoint\"](\n url: \"${data.url}\",\n token: secrets.get(key: \"${data.token}\"),\n parseMode: \"${data.parseMode}\",\n disableWebPagePreview: false\n )(\n mapFn: (r) => ({\n channel: \"${data.channel}\",\n text: \"\\${ r._message }\",\n silent: true\n }))\n )`,\n generateTestQuery: data => `\n telegram.message(\n url: \"${data.url}\",\n token: secrets.get(key: \"${data.token}\"),\n parseMode: \"${data.parseMode}\",\n channel: \"${data.channel}\",\n text: \"${TEST_NOTIFICATION}\",\n disableWebPagePreview: false,\n silent: true\n )\n\n array.from(rows: [{value: 0}])\n |> yield(name: \"ignore\")`,\n })\n}\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n ComponentStatus,\n} from '@influxdata/clockface'\n\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst ReadOnly: FC = () => {\n const {data} = useContext(PipeContext)\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default ReadOnly\n","import React, {FC, useContext} from 'react'\nimport {Form, Input, InputType, ComponentSize} from '@influxdata/clockface'\nimport SecretsDropdown from 'src/secrets/components/SecretsDropdown'\nimport {EndpointProps} from 'src/types'\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst View: FC = ({createSecret, secrets}) => {\n const {data, update} = useContext(PipeContext)\n\n const updateURL = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n url: evt.target.value,\n },\n })\n }\n\n const updateChannel = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n channel: evt.target.value,\n },\n })\n }\n\n const updateToken = val => {\n update({\n endpointData: {\n ...data.endpointData,\n token: val,\n },\n })\n }\n\n const updateParseMode = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n parseMode: evt.target.value,\n },\n })\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default View\n","import {TEST_NOTIFICATION} from 'src/flows/pipes/Notification/endpoints'\nimport View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'zenoss',\n name: 'Zenoss',\n data: {\n url: 'https://example.zenoss.io:8080/zport/dmd/evconsole_router',\n username: '',\n password: '',\n action: '',\n method: '',\n severity: '',\n },\n featureFlag: 'notebooksNewEndpoints',\n component: View,\n readOnlyComponent: ReadOnly,\n generateImports: () =>\n ['contrib/bonitoo-io/zenoss', 'influxdata/influxdb/secrets']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateTestImports: () =>\n ['array', 'contrib/bonitoo-io/zenoss', 'influxdata/influxdb/secrets']\n .map(i => `import \"${i}\"`)\n .join('\\n'),\n generateQuery: (data, measurement) => `task_data\n\t|> schema[\"fieldsAsCols\"]()\n |> set(key: \"_notebook_link\", value: \"${window.location.href}\")\n |> filter(fn: ${measurement})\n\t|> monitor[\"check\"](\n\t\tdata: check,\n\t\tmessageFn: messageFn,\n\t\tcrit: trigger,\n\t)\n |> filter(fn: trigger)\n |> keep(columns: [\"_value\", \"_time\", \"_measurement\"])\n |> limit(n: 1, offset: 0)\n\t|> monitor[\"notify\"](\n data: notification,\n endpoint: zenoss[\"endpoint\"](\n url: \"${data.url}\",\n username: secrets.get(key: \"${data.username}\"),\n password: secrets.get(key: \"${data.password}\"),\n action: \"${data.action}\",\n method: \"${data.method}\",\n )(\n mapFn: (r) => ({\n message: \"\\${ r._message }\",\n severity: \"${data.severity}\",\n summary: \"${data.severity} event for \\${ r.host }\",\n device: \"\\${ r.deviceID }\",\n component: \"\\${ r.host }\",\n eventClass: \"/App\",\n eventClassKey: \"\",\n collector: \"\",\n }))\n )`,\n generateTestQuery: data => `\n telegram.endpoint(\n url: \"${data.url}\",\n username: secrets.get(key: \"${data.username}\"),\n password: secrets.get(key: \"${data.password}\"),\n action: \"${data.action}\",\n method: \"${data.method}\",\n message: \"${TEST_NOTIFICATION}\",\n severity: \"${data.severity}\",\n )\n\n array.from(rows: [{value: 0}])\n |> yield(name: \"ignore\")`,\n })\n}\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n ComponentStatus,\n} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst ReadOnly: FC = () => {\n const {data} = useContext(PipeContext)\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default ReadOnly\n","import React, {FC, useContext} from 'react'\nimport {\n Form,\n Input,\n InputType,\n ComponentSize,\n ComponentColor,\n IconFont,\n Dropdown,\n} from '@influxdata/clockface'\nimport SecretsDropdown from 'src/secrets/components/SecretsDropdown'\n\nimport {EndpointProps} from 'src/types'\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst View: FC = ({createSecret, secrets}) => {\n const {data, update} = useContext(PipeContext)\n const severities = ['Critical', 'Warning', 'Info', 'Clear']\n\n const updateURL = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n url: evt.target.value,\n },\n })\n }\n\n const updateUsername = val => {\n update({\n endpointData: {\n ...data.endpointData,\n username: val,\n },\n })\n }\n\n const updatePassword = val => {\n update({\n endpointData: {\n ...data.endpointData,\n password: val,\n },\n })\n }\n\n const updateAction = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n action: evt.target.value,\n },\n })\n }\n\n const updateMethod = evt => {\n update({\n endpointData: {\n ...data.endpointData,\n method: evt.target.value,\n },\n })\n }\n\n const updateSeverity = val => {\n update({\n endpointData: {\n ...data.endpointData,\n severity: val,\n },\n })\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n (\n \n {data.endpointData.severity !== ''\n ? data.endpointData.severity\n : 'Choose a severity'}\n \n )}\n menu={onCollapse => (\n \n {severities.map(s => (\n \n {s}\n \n ))}\n \n )}\n />\n \n \n \n \n \n \n \n
\n )\n}\n\nexport default View\n","import View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'notification',\n family: 'output',\n priority: 1,\n component: View,\n readOnlyComponent: ReadOnly,\n featureFlag: 'flow-panel--notification',\n button: 'Alert',\n initial: {\n interval: '10m',\n offset: '0s',\n thresholds: [\n {\n type: 'greater',\n value: 0,\n },\n ],\n message:\n '${strings.title(v: r._type)} for ${r._source_measurement} triggered at ${time(v: r._source_timestamp)}!',\n endpoint: 'slack',\n endpointData: {\n url: 'https://hooks.slack.com/services/X/X/X',\n },\n },\n visual: (_data, query) => {\n return query\n },\n })\n}\n","// Libraries\nimport React, {FC, useContext, useMemo, lazy, Suspense} from 'react'\nimport {\n ComponentStatus,\n Form,\n FlexBox,\n Input,\n InputType,\n Icon,\n IconFont,\n ComponentSize,\n Panel,\n AlignItems,\n List,\n InfluxColors,\n TechnoSpinner,\n SpinnerContainer,\n} from '@influxdata/clockface'\nimport Measurement from 'src/flows/pipes/Notification/Measurement'\nimport Threshold from 'src/flows/pipes/Notification/Threshold'\n\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {ENDPOINT_DEFINITIONS} from 'src/flows/pipes/Notification/endpoints'\nconst NotificationMonacoEditor = lazy(\n () => import('src/flows/pipes/Notification/NotificationMonacoEditor')\n)\n\n// Types\nimport {RemoteDataState} from 'src/types'\nimport {PipeProp} from 'src/types/flows'\n\n// Styles\nimport 'src/flows/pipes/Notification/styles.scss'\n\n// Constants\nimport {UNPROCESSED_PANEL_TEXT} from 'src/flows'\n\nconst ReadOnly: FC = ({Context}) => {\n const {data, results, loading} = useContext(PipeContext)\n\n const loadingText = useMemo(() => {\n if (loading === RemoteDataState.Loading) {\n return 'Loading'\n }\n\n if (loading === RemoteDataState.NotStarted) {\n return UNPROCESSED_PANEL_TEXT\n }\n\n return 'No Data Returned'\n }, [loading])\n\n const numericColumns = (results?.parsed?.table?.columnKeys || []).filter(\n key => {\n if (key === 'result' || key === 'table') {\n return false\n }\n\n const columnType = results.parsed.table.getColumnType(key)\n\n return columnType === 'time' || columnType === 'number'\n }\n )\n\n if (\n loading === RemoteDataState.NotStarted ||\n loading === RemoteDataState.Loading\n ) {\n return (\n \n
\n
\n \n
\n
\n
{loadingText}
\n
\n
\n
\n )\n }\n\n if (!numericColumns.length) {\n return (\n \n
\n
\n \n
\n
\n
\n This cell requires a numeric column. Check your source query\n
\n
\n
\n
\n )\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {ENDPOINT_DEFINITIONS[data.endpoint].name}\n \n \n \n \n \n {React.createElement(\n ENDPOINT_DEFINITIONS[data.endpoint].readOnlyComponent\n )}\n \n \n \n \n \n }\n />\n }\n >\n {}}\n readOnly\n />\n \n
\n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default ReadOnly\n","// Libraries\nimport React, {\n FC,\n useContext,\n useCallback,\n useMemo,\n useState,\n lazy,\n Suspense,\n useEffect,\n} from 'react'\nimport {useDispatch, useSelector} from 'react-redux'\nimport {parse} from 'src/languageSupport/languages/flux/lspUtils'\nimport {\n ComponentStatus,\n Form,\n FlexBox,\n Input,\n InputType,\n Icon,\n IconFont,\n ComponentSize,\n Panel,\n AlignItems,\n JustifyContent,\n List,\n ComponentColor,\n Button,\n InfluxColors,\n TechnoSpinner,\n SpinnerContainer,\n} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {FlowQueryContext} from 'src/flows/context/flow.query'\nimport {remove} from 'src/shared/contexts/query'\nimport Expressions from 'src/flows/pipes/Notification/Expressions'\nimport Measurement from 'src/flows/pipes/Notification/Measurement'\nimport Threshold from 'src/flows/pipes/Notification/Threshold'\nimport {\n ENDPOINT_DEFINITIONS,\n ENDPOINT_ORDER,\n} from 'src/flows/pipes/Notification/endpoints'\nimport {SidebarContext} from 'src/flows/context/sidebar'\nimport ExportTask from 'src/flows/pipes/Notification/ExportTask'\nimport ErrorBoundary from 'src/shared/components/ErrorBoundary'\nconst NotificationMonacoEditor = lazy(\n () => import('src/flows/pipes/Notification/NotificationMonacoEditor')\n)\n\n// Types\nimport {RemoteDataState, EditorType} from 'src/types'\nimport {PipeProp} from 'src/types/flows'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\nimport {notify} from 'src/shared/actions/notifications'\nimport {\n testNotificationSuccess,\n testNotificationFailure,\n} from 'src/shared/copy/notifications'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\nimport {getSecrets} from 'src/secrets/actions/thunks'\nimport {getAllSecrets} from 'src/resources/selectors'\n\n// Styles\nimport 'src/flows/pipes/Notification/styles.scss'\n\n// Constants\nimport {UNPROCESSED_PANEL_TEXT} from 'src/flows'\nimport CreateSecretForm from 'src/secrets/components/CreateSecret/CreateSecretForm'\n\nconst Notification: FC = ({Context}) => {\n const dispatch = useDispatch()\n const {id, data, update, results, loading} = useContext(PipeContext)\n const {query, simplify, getPanelQueries} = useContext(FlowQueryContext)\n const {hideSub, id: showId, show, showSub} = useContext(SidebarContext)\n const [status, setStatus] = useState(\n RemoteDataState.NotStarted\n )\n const [editorInstance, setEditorInstance] = useState(null)\n\n let intervalError = ''\n let offsetError = ''\n\n useEffect(() => {\n dispatch(getSecrets())\n }, [])\n\n const createSecret = (callback: (id: string) => void) => {\n if (showId !== id) {\n show(id)\n showSub()\n }\n }\n\n const secrets = useSelector(getAllSecrets)\n\n if (!data.interval) {\n intervalError = 'Required'\n } else if (\n data.interval !==\n data.interval.match(/(?:(\\d+(ns|us|µs|ms|s|m|h|d|w|mo|y){1}))/g)?.join('')\n ) {\n intervalError = 'Invalid Time'\n }\n\n if (\n data.offset &&\n data.offset !==\n data.offset.match(/(?:(\\d+(ns|us|µs|ms|s|m|h|d|w|mo|y){1}))/g)?.join('')\n ) {\n offsetError = 'Invalid Time'\n }\n\n const loadingText = useMemo(() => {\n if (loading === RemoteDataState.Loading) {\n return 'Loading'\n }\n\n if (loading === RemoteDataState.NotStarted) {\n return UNPROCESSED_PANEL_TEXT\n }\n\n return 'No Data Returned'\n }, [loading])\n\n const queryText = getPanelQueries(id)?.source\n const hasTaskOption = useMemo(\n () =>\n !!Object.keys(\n remove(\n parse(simplify(queryText)),\n node =>\n node.type === 'OptionStatement' &&\n node.assignment.id.name === 'task'\n ).reduce((acc, curr) => {\n // eslint-disable-next-line no-extra-semi\n ;(curr.assignment?.init?.properties || []).reduce((_acc, _curr) => {\n if (_curr.key?.name && _curr.value?.location?.source) {\n _acc[_curr.key.name] = _curr.value.location.source\n }\n\n return _acc\n }, acc)\n\n return acc\n }, {})\n ).length,\n [queryText]\n )\n\n const numericColumns = (results?.parsed?.table?.columnKeys || []).filter(\n key => {\n if (key === 'result' || key === 'table') {\n return false\n }\n\n const columnType = results.parsed.table.getColumnType(key)\n\n return columnType === 'time' || columnType === 'number'\n }\n )\n\n const updateMessage = text => {\n update({\n message: text,\n })\n }\n\n const updateInterval = evt => {\n update({\n interval: evt.target.value,\n })\n }\n\n const updateOffset = evt => {\n update({\n offset: evt.target.value,\n })\n }\n\n const updateEndpoint = which => {\n event('Changed Notification Endpoint', {which})\n\n update({\n endpoint: which,\n endpointData: ENDPOINT_DEFINITIONS[which].data,\n })\n }\n\n const inject = useCallback(\n (exp: string): void => {\n if (!editorInstance) {\n return\n }\n const p = editorInstance.getPosition()\n const edits = [\n {\n range: new monaco.Range(\n p.lineNumber,\n p.column,\n p.lineNumber,\n p.column\n ),\n text: ` \\$\\{r.${exp}\\} `,\n },\n ]\n\n editorInstance.executeEdits('', edits)\n updateMessage(editorInstance.getValue())\n event('Injecting Expression into Alert Message')\n },\n [editorInstance]\n )\n\n const warningMessage = useMemo(() => {\n if (!hasTaskOption) {\n return\n }\n\n return (\n
\n
\n \n
\n
\n

The task option is reserved

\n

\n This panel will take precedence over any task configuration and\n overwrite the option. Remove it from your source query to remove\n this message\n

\n
\n
\n )\n }, [hasTaskOption])\n\n const avail = Object.keys(ENDPOINT_DEFINITIONS)\n .filter(\n k =>\n // show endpoints without feature flags or that have their flags enabled\n !ENDPOINT_DEFINITIONS[k].featureFlag ||\n isFlagEnabled(ENDPOINT_DEFINITIONS[k].featureFlag)\n )\n .sort((a, b) => ENDPOINT_ORDER.indexOf(a) - ENDPOINT_ORDER.indexOf(b))\n .map(k => (\n updateEndpoint(k)}\n selected={data.endpoint === k}\n >\n {ENDPOINT_DEFINITIONS[k].name}\n \n ))\n\n const handleTestEndpoint = async () => {\n event('Alert Panel (Notebooks) - Test Endpoint Clicked')\n\n const queryText = `\n import \"strings\"\n import \"regexp\"\n import \"influxdata/influxdb/schema\"\n import \"influxdata/influxdb/secrets\"\n import \"experimental\"\n ${ENDPOINT_DEFINITIONS[data.endpoint]?.generateTestImports()}\n\n ${ENDPOINT_DEFINITIONS[data.endpoint]?.generateTestQuery(\n data.endpointData\n )}\n `\n\n try {\n setStatus(RemoteDataState.Loading)\n await query(queryText)\n\n setStatus(RemoteDataState.Done)\n dispatch(notify(testNotificationSuccess(data.endpoint)))\n } catch (e) {\n setStatus(RemoteDataState.Error)\n dispatch(notify(testNotificationFailure(e.message)))\n }\n }\n\n const launcher = () => {\n if (showId === id) {\n hideSub()\n } else {\n event('Opening the Expressions Sidebar')\n show(id)\n showSub()\n }\n }\n\n if (\n (loading === RemoteDataState.NotStarted ||\n loading === RemoteDataState.Loading) &&\n !numericColumns.length\n ) {\n return (\n \n
\n
\n \n
\n
\n
{loadingText}
\n
\n
\n {warningMessage}\n
\n )\n }\n\n if (!numericColumns.length) {\n return (\n \n
\n
\n \n
\n
\n
\n This cell requires a numeric column. Check your source query\n
\n
\n
\n {warningMessage}\n
\n )\n }\n\n return (\n \n
\n {loading === RemoteDataState.Loading && (\n \n )}\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {avail}\n \n \n \n {React.createElement(\n ENDPOINT_DEFINITIONS[data.endpoint].component,\n {\n createSecret,\n secrets: secrets.sort((a, b) =>\n a.id.localeCompare(b.id)\n ),\n }\n )}\n \n \n \n \n \n }\n />\n }\n >\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {warningMessage}\n
\n )\n}\n\nexport default Notification\n","// Libraries\nimport React, {FC, useContext, useCallback} from 'react'\nimport {SquareButton, IconFont} from '@influxdata/clockface'\nimport {RemoteDataState} from 'src/types'\n\nimport {QueryBuilderContext} from 'src/flows/pipes/QueryBuilder/context'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\n\nimport {event} from 'src/cloud/utils/reporting'\n\nconst AddButton: FC = () => {\n const {cards, add} = useContext(QueryBuilderContext)\n\n const onClick = useCallback(() => {\n event('Query Builder Card Added')\n add()\n }, [add])\n\n if (!cards.length) {\n return null\n }\n\n if (\n isFlagEnabled('newQueryBuilder') &&\n !cards[0]?.values?.selected?.length &&\n cards.length < 2\n ) {\n return null\n }\n\n const {keys} = cards[cards.length - 1]\n if (keys.results.length === 0 && keys.loading === RemoteDataState.Done) {\n return null\n }\n\n return (\n \n )\n}\n\nexport default AddButton\n","// Libraries\nimport React, {FC, useState, useContext, useEffect} from 'react'\n\n// Components\nimport {Input, ComponentSize, List, Gradients} from '@influxdata/clockface'\nimport CreateBucket from 'src/flows/pipes/QueryBuilder/CreateBucket'\nimport {Bucket, RemoteDataState} from 'src/types'\nimport BuilderCard from 'src/timeMachine/components/builderCard/BuilderCard'\nimport {QueryBuilderContext} from 'src/flows/pipes/QueryBuilder/context'\nimport {BucketContext} from 'src/shared/contexts/buckets'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\nimport {event} from 'src/cloud/utils/reporting'\n\n// this is used by notebooks\nconst BucketSelector: FC = () => {\n const {data} = useContext(PipeContext)\n const {loading, buckets, addBucket} = useContext(BucketContext)\n const {selectBucket} = useContext(QueryBuilderContext)\n\n const [search, setSearch] = useState('')\n\n useEffect(() => {\n if (loading !== RemoteDataState.Done) {\n return\n }\n const allBuckets = new Set(buckets.map(b => b.name))\n const missingBuckets = data.buckets.filter(b => !allBuckets.has(b.name))\n missingBuckets.forEach(b => {\n addBucket(b as Bucket)\n })\n }, [loading, buckets, data.buckets])\n\n if (loading === RemoteDataState.Done && !buckets.length) {\n return (\n \n \n No buckets found\n \n )\n }\n const _selectBucket = (bucket?: string) => {\n if (bucket) {\n event('Query Builder Bucket Selected', {\n usedSearch: !!search.length ? 'yus' : 'nah',\n })\n }\n selectBucket(bucket)\n }\n const filteredBuckets = buckets.filter(\n bucket =>\n !search.length ||\n bucket.name.toLocaleLowerCase().includes(search.toLocaleLowerCase())\n )\n\n if (!filteredBuckets.length) {\n return (\n \n \n \n setSearch(e.target.value)}\n />\n \n No buckets matched your search\n \n )\n }\n\n const sections = filteredBuckets.reduce(\n (acc, curr) => {\n acc[curr.type].push(curr)\n return acc\n },\n {user: [], system: [], sample: []}\n )\n\n const selected = data?.buckets[0]?.name\n const renderListItem = item => {\n const isSelected = selected === item.name\n const title = isSelected\n ? 'Click to remove this filter'\n : `Click to filter by ${item.name}`\n\n return (\n \n {item.name}\n \n )\n }\n\n return (\n \n \n \n setSearch(e.target.value)}\n onClear={() => setSearch('')}\n />\n \n \n \n {sections.user.map(renderListItem)}\n {isFlagEnabled('sharedBucketCreator') && }\n {sections.system.length && (\n \n )}\n {sections.system.map(renderListItem)}\n {sections.sample.length && (\n \n )}\n {sections.sample.map(renderListItem)}\n \n \n )\n}\n\nexport default BucketSelector\n","// Libraries\nimport React, {\n FC,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {\n Input,\n AlignItems,\n ComponentSize,\n FlexDirection,\n FlexBox,\n} from '@influxdata/clockface'\n\n// Contexts\nimport {QueryBuilderContext} from 'src/flows/pipes/QueryBuilder/context'\nimport {PipeContext} from 'src/flows/context/pipe'\n\n// Utils\nimport {toComponentStatus} from 'src/shared/utils/toComponentStatus'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\n\n// Types\nimport {RemoteDataState, BuilderAggregateFunctionType} from 'src/types'\n\n// Components\nimport SearchableDropdown from 'src/shared/components/SearchableDropdown'\nimport TagSelectorCount from 'src/shared/components/TagSelectorCount'\nimport WaitingText from 'src/shared/components/WaitingText'\nimport BuilderCard from 'src/timeMachine/components/builderCard/BuilderCard'\nimport SelectorList from 'src/timeMachine/components/SelectorList'\n\nimport {event} from 'src/cloud/utils/reporting'\nimport ErrorBoundary from 'src/shared/components/ErrorBoundary'\n\nconst DEBOUNCE_TIMEOUT = 500\nconst debounce_array = []\ntype NOOP = () => void\nconst debouncer = (idx: number, action: NOOP): void => {\n if (debounce_array[idx]) {\n clearTimeout(debounce_array[idx])\n }\n\n debounce_array[idx] = setTimeout(() => {\n action()\n delete debounce_array[idx]\n }, DEBOUNCE_TIMEOUT)\n}\n\ninterface Props {\n idx: number\n}\n\nconst Card: FC = ({idx}) => {\n const {\n cards,\n selectMeasurement,\n add,\n cancelKey,\n cancelValue,\n update,\n remove,\n loadKeys,\n loadValues,\n } = useContext(QueryBuilderContext)\n const {data} = useContext(PipeContext)\n const card = cards[idx]\n const [keySearches, setKeySearches] = useState([])\n const [valueSearches, setValueSearches] = useState([])\n\n const allItems = useMemo(() => {\n const results = new Set(card?.values?.results)\n const selected = card?.values?.selected?.filter(s => !results.has(s))\n\n return [...selected, ...Array.from(results)]\n }, [card?.values?.selected, card?.values?.results])\n\n const _remove =\n idx !== 0 &&\n (() => {\n event('Query Builder Card Removed')\n remove(idx)\n })\n\n const _update = (fnType: BuilderAggregateFunctionType): void => {\n update(idx, {\n aggregateFunctionType:\n fnType.toLowerCase() as BuilderAggregateFunctionType,\n })\n }\n\n const keySearch = useCallback(\n (search: string) => {\n keySearches[idx] = search\n setKeySearches([...keySearches])\n debouncer(idx, () => {\n loadKeys(idx, search)\n })\n },\n [loadKeys, card.keys, idx]\n )\n\n const keySelect = val => {\n if (card.keys.selected[0] === val) {\n return\n }\n event('Query Builder key selected')\n update(idx, {\n keys: {\n ...card.keys,\n selected: [val],\n },\n })\n }\n\n const valueSearch = (search: string) => {\n valueSearches[idx] = search\n setValueSearches([...valueSearches])\n debouncer(idx, () => {\n loadValues(idx, search)\n })\n }\n\n const isCompliant =\n isFlagEnabled('newQueryBuilder') &&\n idx === 0 &&\n (card.keys.selected.length === 0 ||\n (card.keys.selected.length === 1 &&\n card.keys.selected[0] === '_measurement')) &&\n card.aggregateFunctionType !== 'group' &&\n card.values.selected.length <= 1\n\n const valueSelect = val => {\n const index = card.values.selected.indexOf(val)\n\n if (isCompliant) {\n if (index === -1) {\n event('Query Builder Value Selected')\n selectMeasurement(val)\n } else {\n event('Query Builder Value Unselected')\n selectMeasurement(null)\n }\n\n return\n }\n\n if (index === -1) {\n event('Query Builder Value Selected')\n card.values.selected.push(val)\n } else {\n event('Query Builder Value Unselected')\n card.values.selected.splice(index, 1)\n }\n\n update(idx, card)\n\n if (\n index === -1 &&\n card.values.selected.length === 1 &&\n idx === cards.length - 1\n ) {\n add()\n } else {\n for (let ni = idx + 1; ni < cards.length; ni++) {\n loadKeys(ni)\n }\n }\n }\n\n useEffect(() => {\n let promise\n if (data.buckets[0] && card.keys.loading === RemoteDataState.NotStarted) {\n promise = loadKeys(idx)\n if (promise instanceof Promise) {\n promise.finally(() => {\n promise = null\n })\n }\n }\n\n return () => {\n cancelKey(idx)\n }\n }, [data.buckets, card.keys.loading])\n\n useEffect(() => {\n let promise\n if (\n card.keys.loading === RemoteDataState.Done &&\n card.values.loading !== RemoteDataState.Done\n ) {\n promise = loadValues(idx)\n\n if (promise instanceof Promise) {\n promise.finally(() => {\n promise = null\n })\n }\n }\n\n return () => {\n cancelValue(idx)\n }\n }, [card.keys.loading, card.values.loading])\n\n if (card.keys.loading === RemoteDataState.NotStarted) {\n let emptyText = 'Select a value first'\n\n if (idx === 0) {\n emptyText = 'Select a bucket first'\n }\n\n return (\n \n {emptyText}\n \n )\n }\n\n if (card.keys.loading === RemoteDataState.Error) {\n return (\n \n Failed to load tag keys\n \n )\n }\n\n if (card.keys.loading === RemoteDataState.Done && !card.keys.results.length) {\n return (\n \n \n No tag keys found in the current time range\n \n \n )\n }\n\n let _values\n\n if (card.values.loading === RemoteDataState.Error) {\n _values = (\n \n {`Failed to load tag values for ${card.keys.selected[0]}`}\n \n )\n } else if (\n card.values.loading === RemoteDataState.Loading ||\n card.values.loading === RemoteDataState.NotStarted\n ) {\n _values = (\n \n \n \n )\n } else if (card.values.loading === RemoteDataState.Done && !allItems.length) {\n _values = (\n \n No values found in the current time range\n \n )\n } else {\n _values = (\n \n )\n }\n\n let placeholderValue = `${card.keys.selected[0]} tag values`\n\n if (isFlagEnabled('newQueryBuilder')) {\n if (card.keys.selected[0] === '_measurement') {\n placeholderValue = 'measurements'\n } else if (card.keys.selected[0] === '_field') {\n placeholderValue = 'fields'\n }\n }\n\n if (card.aggregateFunctionType === 'group') {\n return (\n \n s.toUpperCase())}\n selectedOption={card.aggregateFunctionType.toUpperCase()}\n onDelete={_remove}\n onSelect={_update}\n />\n \n {\n valueSearch(evt.target.value)\n }}\n onClear={() => valueSearch('')}\n />\n \n {_values}\n \n )\n }\n\n return (\n \n {!isCompliant && (\n s.toUpperCase())}\n selectedOption={card.aggregateFunctionType.toUpperCase()}\n onDelete={_remove}\n onSelect={_update}\n />\n )}\n {isCompliant && }\n \n {!isCompliant && (\n \n \n \n \n {!!card?.values?.selected?.length && (\n \n )}\n \n )}\n {\n valueSearch(evt.target.value)\n }}\n onClear={() => valueSearch('')}\n />\n \n {_values}\n \n )\n}\n\nconst CardList: FC = () => {\n const {cards} = useContext(QueryBuilderContext)\n\n if (!cards.length) {\n return null\n }\n\n return (\n <>\n {cards.map((_card, idx) => (\n \n ))}\n \n )\n}\n\nexport default CardList\n","import React, {FC, useRef, useContext} from 'react'\n\n// Components\nimport {\n Popover,\n PopoverInteraction,\n PopoverPosition,\n Appearance,\n ComponentColor,\n ComponentSize,\n List,\n ListItemRef,\n} from '@influxdata/clockface'\nimport CreateBucketOverlay from 'src/flows/pipes/QueryBuilder/CreateBucketOverlay'\nimport {BucketContext} from 'src/shared/contexts/buckets'\n\nconst CreateBucket: FC = () => {\n const {createBucket} = useContext(BucketContext)\n const triggerRef = useRef(null)\n\n return (\n <>\n {}}\n wrapText={false}\n size={ComponentSize.ExtraSmall}\n >\n + Create Bucket\n \n (\n {\n createBucket(bucket)\n onHide()\n }}\n />\n )}\n />\n \n )\n}\n\nexport default CreateBucket\n","import React, {useState, FC, useRef} from 'react'\n\ninterface Props {\n filename?: string\n error?: string\n\n allowedExtensions: string[]\n\n handleFileUpload: (file?: File, contents?: string) => void\n}\n\nexport const MiniFileDnd: FC = ({\n filename,\n error,\n\n allowedExtensions,\n\n handleFileUpload,\n}) => {\n const [dropAreaActive, setDropAreaActive] = useState(false)\n\n function dragOverHandler(ev) {\n setDropAreaActive(true)\n\n // Prevent default behavior (Prevent file from being opened)\n ev.preventDefault()\n }\n\n function dragLeaveHandler(ev) {\n setDropAreaActive(false)\n ev.preventDefault()\n }\n\n const handleFileClick = (event: any): void => {\n const file: File = event.currentTarget.files[0]\n\n if (!file) {\n return\n }\n\n const reader = new FileReader()\n reader.readAsText(file)\n reader.onload = () => {\n handleFileUpload(file, reader.result as string)\n }\n }\n\n const dropHandler = (event: any): void => {\n const file = event.dataTransfer.files[0]\n\n if (!file) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n const reader = new FileReader()\n reader.readAsText(file)\n reader.onload = () => {\n handleFileUpload(file, reader.result as string)\n }\n\n setDropAreaActive(false)\n }\n\n const inputEl = useRef(null)\n\n const inputElement = (\n \n )\n\n // it gets clicked programmatically since the input itself has display='none'\n const handleFileOpen = (): void => {\n inputEl.current.click()\n }\n\n const displayText = filename ?? 'Add schema file'\n\n const dropZoneClasses = [\n ['dnd', true],\n ['active', dropAreaActive],\n ['hasError', error],\n ]\n .filter(c => !!c[1])\n .map(c => `${c[0]}`)\n .join(' ')\n\n const displayAreaClasses = [\n ['display-area', true],\n ['active', dropAreaActive],\n ]\n .filter(c => !!c[1])\n .map(c => `${c[0]}`)\n .join(' ')\n\n return (\n
\n \n
\n {displayText}\n
\n {inputElement}\n
\n \n )\n}\n","import React, {FC, useState} from 'react'\nimport {parse} from 'papaparse'\nimport {\n AlignItems,\n ComponentSize,\n ComponentColor,\n Panel,\n FormElementError,\n FlexBox,\n FlexDirection,\n Input,\n InputType,\n DismissButton,\n} from '@influxdata/clockface'\nimport {MiniFileDnd} from 'src/flows/pipes/QueryBuilder/MiniFileDnd'\n\ninterface ExplicitProps {\n schema: any\n onUpdate: (schema: any) => void\n onDelete: () => void\n}\n\nconst ALLOWED_TYPES = ['application/json', 'text/csv']\nconst ALLOWED_EXTENSIONS = ['.json', '.csv']\nconst DATA_TYPE_STRINGS = ['integer', 'float', 'boolean', 'string', 'unsigned']\n\nconst validSchemaName = (name = '') => {\n const _name = name.trim()\n if (/^[0-9_]/.test(_name)) {\n return \"cannot start with '_' or a number\"\n }\n if (_name.length > 128) {\n return 'too long, max length is 128 characters'\n }\n\n return null\n}\n\nconst ExplicitPanel: FC = ({schema, onUpdate, onDelete}) => {\n const [fileErrorMessage, setFileErrorMessage] = useState('')\n const valid = _schema => {\n return !!_schema.columns && !!_schema.name && !validSchemaName(_schema.name)\n }\n\n const handleNameUpdate = evt => {\n const update = {\n ...schema,\n name: evt.target.value,\n }\n\n onUpdate({\n ...update,\n valid: valid(update),\n })\n }\n\n const handleFileUpload = (file: File, contents: string) => {\n try {\n if (!ALLOWED_TYPES.includes(file.type)) {\n throw new Error(`Unsupported file type: ${file.type}`)\n }\n\n let columns\n if (file.type === 'text/csv') {\n columns = parse(contents, {header: true}).data.map(c => {\n if (!c.dataType) {\n delete c.dataType\n }\n return c\n })\n } else if (file.type === 'application/json') {\n columns = JSON.parse(contents)\n }\n\n if (!Array.isArray(columns)) {\n throw new Error('Column file is not formatted correctly')\n }\n\n columns.forEach(col => {\n if (typeof col.name !== 'string') {\n throw new Error('All columns require a name field')\n }\n if (typeof col.type !== 'string') {\n throw new Error('All columns require a type field')\n }\n\n if ('dataType' in col) {\n if (!DATA_TYPE_STRINGS.includes(col.dataType)) {\n throw new Error('All columns require a valid dataType')\n }\n } else if (col.type === 'field') {\n throw new Error('Invalid column: type == field')\n }\n })\n\n const update = {\n ...schema,\n columns: columns,\n filename: file.name,\n }\n\n setFileErrorMessage(null)\n onUpdate({\n ...update,\n valid: valid(update),\n })\n } catch (e) {\n setFileErrorMessage(e.message)\n onUpdate({\n ...schema,\n columns: [],\n filename: file.name,\n valid: false,\n })\n }\n }\n\n const nameErrorMessage = validSchemaName(schema.name)\n\n return (\n \n \n
name
\n \n \n \n {!!nameErrorMessage && (\n \n )}\n \n \n \n {!!fileErrorMessage && (\n \n )}\n onDelete()}\n size={ComponentSize.ExtraSmall}\n color={ComponentColor.Default}\n />\n \n
\n )\n}\n\nexport default ExplicitPanel\n","import React, {FC, useState, ChangeEvent} from 'react'\nimport {\n SelectGroup,\n ButtonShape,\n Form,\n FlexBox,\n FlexDirection,\n Input,\n InputToggleType,\n InputLabel,\n Toggle,\n Button,\n Accordion,\n Overlay,\n ComponentColor,\n ComponentStatus,\n ComponentSize,\n AlignItems,\n ButtonType,\n} from '@influxdata/clockface'\nimport {ExtendedBucket} from 'src/shared/contexts/buckets'\nimport {CLOUD} from 'src/shared/constants'\nimport DurationSelector, {\n DurationOption,\n} from 'src/shared/components/DurationSelector'\n\nimport {parseDuration, durationToMilliseconds} from 'src/shared/utils/duration'\nimport ExplicitPanel from 'src/flows/pipes/QueryBuilder/ExplicitPanel'\n\ninterface Props {\n onCreate: (bucket: ExtendedBucket) => void\n onCancel: () => void\n}\n\nexport const DURATION_OPTIONS: DurationOption[] = [\n {duration: '1h', displayText: '1 hour'},\n {duration: '6h', displayText: '6 hours'},\n {duration: '12h', displayText: '12 hours'},\n {duration: '24h', displayText: '24 hours'},\n {duration: '48h', displayText: '48 hours'},\n {duration: '72h', displayText: '72 hours'},\n {duration: '7d', displayText: '7 days'},\n {duration: '14d', displayText: '14 days'},\n {duration: '30d', displayText: '30 days'},\n {duration: '90d', displayText: '90 days'},\n {duration: '1y', displayText: '1 year'},\n]\n\nconst validateName = (input: string): string => {\n const _input = input.trim()\n\n if (!_input) {\n return 'This bucket needs a name'\n }\n if (_input[0] === '_') {\n return 'Only system bucket names can begin with _'\n }\n if (_input.length < 1) {\n return `Please enter a name with at least 1 letters or numbers`\n }\n\n return null\n}\n\nconst DEFAULT_RETENTION_RULE = {\n type: 'expire' as 'expire',\n everySeconds: 30 * 24 * 60 * 60,\n}\n\nconst CreateBucketOverlay: FC = ({onCreate, onCancel}) => {\n const [name, setName] = useState('')\n const [retention, setRetention] = useState([])\n const [newSchemas, setNewSchemas] = useState([])\n\n const [schemaType, setSchemaType] = useState('implicit')\n\n const validForm = !validateName(name)\n const retentionType = retention[0]?.type ?? null\n const setRetentionType = (ret: string) => {\n if (ret === 'never') {\n setRetention([])\n } else if (ret === 'expire') {\n setRetention([{...DEFAULT_RETENTION_RULE}])\n }\n }\n const setRetentionDuration = (duration: string) => {\n const durationSeconds =\n durationToMilliseconds(parseDuration(duration)) / 1000\n setRetention([{...DEFAULT_RETENTION_RULE, everySeconds: durationSeconds}])\n }\n\n const onSubmit = () => {\n const out: ExtendedBucket = {\n name: name,\n readableRetention: 'forever',\n retentionRules: retention,\n schemas: newSchemas,\n }\n\n if (onCreate) {\n onCreate(out)\n }\n }\n\n const addSchemaLine = () => {\n setNewSchemas([...newSchemas, {valid: false}])\n }\n\n const schemaPanels = newSchemas.map((schema, index) => (\n {\n newSchemas[index] = update\n setNewSchemas([...newSchemas])\n }}\n onDelete={() => {\n newSchemas.splice(index, 1)\n setNewSchemas([...newSchemas])\n }}\n />\n ))\n\n return (\n
\n \n \n {status => (\n ) => {\n setName(e.target.value)\n }}\n testID=\"bucket-form-name\"\n />\n )}\n \n \n \n \n Never\n \n \n Older Than\n \n \n {retentionType === 'expire' && (\n \n )}\n \n {CLOUD && (\n \n \n Advanced Configuration (Optional)\n \n \n
\n \n
\n
Bucket Schema Type
\n
\n By default, buckets have an implicit schema that conforms\n to your data. Use explicit schemas to enforce specific\n data types and columns. Bucket Schema type cannot be\n changed after creation.{' '}\n \n {' '}\n Learn more\n \n
\n
\n \n \n Implicit\n \n \n \n \n Explicit\n \n \n \n {schemaType === 'explicit' && (\n \n
\n
Measurement Schema
\n
\n Measurement Schemas provide non-conforming validation\n for data in the bucket. once a measurement schema is\n saved you cannot delete or modify existing columns. You\n may only add new columns.{' '}\n \n {' '}\n Learn more\n \n
\n
\n \n {schemaPanels}\n \n )}\n
\n
\n
\n )}\n
\n \n \n \n \n
\n )\n}\n\nexport default CreateBucketOverlay\n","// Libraries\nimport React, {FC, createContext, useContext, useState} from 'react'\n\n// Contexts\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {FlowQueryContext} from 'src/flows/context/flow.query'\nimport {BucketContext} from 'src/shared/contexts/buckets'\n\n// Utils\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\nimport {formatTimeRangeArguments} from 'src/timeMachine/apis/queryBuilder'\n\n// Types\nimport {\n RemoteDataState,\n BuilderTagsType,\n BuilderAggregateFunctionType,\n} from 'src/types'\n\n// Constants\nimport {\n CACHING_REQUIRED_END_DATE,\n CACHING_REQUIRED_START_DATE,\n} from 'src/utils/datetime/constants'\nimport {DEFAULT_LIMIT} from 'src/shared/constants/queryBuilder'\n\ninterface APIResultArray {\n selected: T[]\n results: T[]\n loading: RemoteDataState\n}\n\ninterface QueryBuilderCard {\n keys: APIResultArray\n values: APIResultArray\n aggregateFunctionType: BuilderAggregateFunctionType\n}\n\ninterface QueryBuilderMeta {\n keys: string[]\n values: string[]\n loadingKeys: RemoteDataState\n loadingValues: RemoteDataState\n}\n\nconst getDefaultCard = (): QueryBuilderCard => ({\n keys: {\n selected: [],\n results: [],\n loading: RemoteDataState.NotStarted,\n },\n values: {\n selected: [],\n results: [],\n loading: RemoteDataState.NotStarted,\n },\n aggregateFunctionType: 'filter',\n})\n\ninterface QueryBuilderContextType {\n cards: QueryBuilderCard[]\n\n selectBucket: (bucket?: string) => void\n selectMeasurement: (measurement?: string) => void\n\n add: () => void\n cancelKey: (idx: number) => void\n cancelValue: (idx: number) => void\n remove: (idx: number) => void\n update: (idx: number, card: Partial) => void\n loadKeys: (idx: number, search?: string) => void | Promise\n loadValues: (idx: number, search?: string) => void | Promise\n}\n\nexport const DEFAULT_CONTEXT: QueryBuilderContextType = {\n cards: [getDefaultCard()],\n\n selectBucket: _ => {},\n selectMeasurement: _ => {},\n\n add: () => {},\n cancelKey: (_idx: number) => {},\n cancelValue: (_idx: number) => {},\n remove: (_idx: number) => {},\n update: (_idx: number, _card: QueryBuilderCard) => {},\n loadKeys: (_idx: number, _search?: string) => {},\n loadValues: (_idx: number, _search?: string) => {},\n}\n\nexport const QueryBuilderContext =\n createContext(DEFAULT_CONTEXT)\n\nconst toBuilderConfig = (card: QueryBuilderCard): BuilderTagsType => ({\n key: (card.keys.selected || [])[0],\n values: (card.values.selected || []).slice(0),\n aggregateFunctionType: card.aggregateFunctionType,\n})\n\nconst fromBuilderConfig = (\n tag: BuilderTagsType,\n meta?: QueryBuilderMeta\n): QueryBuilderCard => {\n const out = getDefaultCard()\n\n out.keys.selected = [tag.key]\n out.keys.results = meta?.keys ?? []\n out.keys.loading = meta?.loadingKeys ?? RemoteDataState.NotStarted\n out.values.selected = [...tag.values]\n out.values.results = meta?.values ?? []\n out.values.loading = meta?.loadingValues ?? RemoteDataState.NotStarted\n out.aggregateFunctionType = tag.aggregateFunctionType\n\n return out\n}\n\nexport const QueryBuilderProvider: FC = ({children}) => {\n const {id, data, range, update} = useContext(PipeContext)\n const {query, getPanelQueries} = useContext(FlowQueryContext)\n const {buckets} = useContext(BucketContext)\n const [cancelKey, setCancelKey] = useState({})\n const [cancelValue, setCancelValue] = useState({})\n\n const [cardMeta, setCardMeta] = useState(\n Array(data.tags.length).fill({\n keys: [],\n values: [],\n loadingKeys: RemoteDataState.NotStarted,\n loadingValues: RemoteDataState.NotStarted,\n })\n )\n\n const selectBucket = (bucket?: string) => {\n const card = getDefaultCard()\n\n if (!bucket || bucket === data?.buckets[0]?.name) {\n update({buckets: [], tags: [card].map(toBuilderConfig)})\n } else {\n card.keys.selected = ['_measurement']\n update({\n buckets: [buckets.find(b => b.name === bucket)],\n tags: [card].map(toBuilderConfig),\n })\n }\n\n setCardMeta([\n {\n keys: [],\n values: [],\n loadingKeys: RemoteDataState.NotStarted,\n loadingValues: RemoteDataState.NotStarted,\n },\n ])\n }\n\n const selectMeasurement = (measurement?: string) => {\n if (measurement) {\n update({\n tags: [\n {\n ...data.tags[0],\n values: [measurement],\n },\n toBuilderConfig(getDefaultCard()),\n ],\n })\n\n setCardMeta([\n cardMeta[0],\n {\n keys: [],\n values: [],\n loadingKeys: RemoteDataState.NotStarted,\n loadingValues: RemoteDataState.NotStarted,\n },\n ])\n } else {\n update({\n tags: [\n {\n ...data.tags[0],\n values: [],\n },\n ],\n })\n\n setCardMeta([cardMeta[0]])\n }\n }\n\n const cards = data.tags.map((tag, idx) =>\n fromBuilderConfig(tag, cardMeta[idx])\n )\n\n const add = () => {\n cards.push(getDefaultCard())\n\n setCardMeta([\n ...cardMeta,\n {\n keys: [],\n values: [],\n loadingKeys: RemoteDataState.NotStarted,\n loadingValues: RemoteDataState.NotStarted,\n },\n ])\n\n update({tags: cards.map(toBuilderConfig)})\n }\n\n const loadKeys = (idx, search) => {\n if (\n !data.buckets[0] ||\n typeof data.buckets[0] === 'string' ||\n !cards[idx]\n ) {\n return\n }\n\n if (!cardMeta[idx]) {\n return\n }\n\n if (cardMeta[idx].loadingKeys === RemoteDataState.Loading) {\n return\n }\n\n cardMeta.splice(idx, 1, {\n ...cardMeta[idx],\n loadingKeys: RemoteDataState.Loading,\n })\n setCardMeta([...cardMeta])\n\n const tagSelections = cards\n .filter(card => card.keys.selected[0] && card.values.selected.length)\n .map(card => {\n const fluxTags = card.values.selected\n .map(\n value =>\n `r[\"${card.keys.selected[0]}\"] == \"${value.replace(\n /\\\\/g,\n '\\\\\\\\'\n )}\"`\n )\n .join(' or ')\n\n return `(${fluxTags})`\n })\n const tagString = tagSelections.length\n ? tagSelections.join(' and ')\n : 'true'\n const searchString = search\n ? `\\n |> filter(fn: (r) => r._value =~ regexp.compile(v: \"(?i:\" + regexp.quoteMeta(v: \"${search}\") + \")\"))`\n : ''\n const previousTagSelections = cards\n .slice(0, idx)\n .map(card => `r._value != \"${card.keys.selected[0]}\"`)\n const previousTagString = previousTagSelections.length\n ? `\\n |> filter(fn: (r) => ${previousTagSelections.join(' and ')})`\n : ''\n\n const {scope} = getPanelQueries(id)\n\n let _source = 'import \"regexp\"\\n'\n if (data.buckets[0].type === 'sample') {\n _source += `import \"influxdata/influxdb/sample\"\\nsample.data(set: \"${data.buckets[0].id}\")`\n } else {\n _source += `from(bucket: \"${data.buckets[0].name}\")`\n }\n\n let queryText = `${_source}\n |> range(${formatTimeRangeArguments(range)})\n |> filter(fn: (r) => ${tagString})\n |> keys()\n |> keep(columns: [\"_value\"])\n |> distinct()${searchString}${previousTagString}\n |> filter(fn: (r) => r._value != \"_time\" and r._value != \"_start\" and r._value != \"_stop\" and r._value != \"_value\")\n |> sort()\n |> limit(n: ${DEFAULT_LIMIT})`\n\n if (data.buckets[0].type !== 'sample' && isFlagEnabled('newQueryBuilder')) {\n _source = `import \"regexp\"\n import \"influxdata/influxdb/schema\"`\n queryText = `${_source}\n schema.tagKeys(\n bucket: \"${data.buckets[0].name}\",\n predicate: (r) => ${tagString},\n start: ${CACHING_REQUIRED_START_DATE},\n stop: ${CACHING_REQUIRED_END_DATE},\n )${searchString}${previousTagString}\n |> filter(fn: (r) => r._value != \"_time\" and r._value != \"_start\" and r._value != \"_stop\" and r._value != \"_value\")\n |> sort()\n |> limit(n: ${DEFAULT_LIMIT})`\n }\n\n const result = query(queryText, scope)\n\n setCancelKey(prev => ({\n ...prev,\n [idx]: (result as any).cancel,\n }))\n\n return result\n .then(resp => {\n return (Object.values(resp.parsed.table.columns).filter(\n c => c.name === '_value' && c.type === 'string'\n )[0]?.data ?? []) as string[]\n })\n .then(keys => {\n const currentCards = data.tags.map(fromBuilderConfig)\n if (!currentCards[idx].keys.selected[0]) {\n if (idx === 0 && keys.includes('_measurement')) {\n currentCards[idx].keys.selected = ['_measurement']\n } else {\n currentCards[idx].keys.selected = [keys[0]]\n }\n\n update({tags: currentCards.map(toBuilderConfig)})\n } else if (!keys.includes(currentCards[idx].keys.selected[0])) {\n keys.unshift(currentCards[idx].keys.selected[0])\n }\n\n cardMeta.splice(idx, 1, {\n keys,\n values: [],\n loadingKeys: RemoteDataState.Done,\n loadingValues: RemoteDataState.NotStarted,\n })\n setCardMeta([...cardMeta])\n })\n .catch(e => {\n console.error(e)\n })\n }\n\n const handleCancelKey = idx => {\n if (idx in cancelKey) {\n cancelKey[idx]()\n }\n }\n\n const handleCancelValue = idx => {\n if (idx in cancelValue) {\n cancelValue[idx]()\n }\n }\n\n const loadValues = (idx, search) => {\n if (\n cardMeta[idx].loadingValues === RemoteDataState.Loading ||\n !data.buckets.length\n ) {\n return\n }\n\n cardMeta.splice(idx, 1, {\n ...cardMeta[idx],\n loadingValues: RemoteDataState.Loading,\n })\n\n setCardMeta([...cardMeta])\n\n const tagSelections = cards\n .slice(0, idx)\n .filter(card => card.keys.selected[0] && card.values.selected.length)\n .map(card => {\n const fluxTags = card.values.selected\n .map(\n value =>\n `r[\"${card.keys.selected[0]}\"] == \"${value.replace(\n /\\\\/g,\n '\\\\\\\\'\n )}\"`\n )\n .join(' or ')\n\n return `(${fluxTags})`\n })\n const tagString = tagSelections.length\n ? tagSelections.join(' and ')\n : 'true'\n const searchString = search\n ? `\\n |> filter(fn: (r) => r._value =~ regexp.compile(v: \"(?i:\" + regexp.quoteMeta(v: \"${search}\") + \")\"))`\n : ''\n\n const {scope} = getPanelQueries(id)\n let _source = 'import \"regexp\"\\n'\n if (data.buckets[0].type === 'sample') {\n _source += `import \"influxdata/influxdb/sample\"\\nsample.data(set: \"${data.buckets[0].id}\")`\n } else {\n _source += `from(bucket: \"${data.buckets[0].name}\")`\n }\n\n let queryText = `${_source}\n |> range(${formatTimeRangeArguments(range)})\n |> filter(fn: (r) => ${tagString})\n |> keep(columns: [\"${cards[idx].keys.selected[0]}\"])\n |> group()\n |> distinct(column: \"${cards[idx].keys.selected[0]}\")${searchString}\n |> limit(n: ${DEFAULT_LIMIT})\n |> sort()`\n\n if (data.buckets[0].type !== 'sample' && isFlagEnabled('newQueryBuilder')) {\n _source = `import \"regexp\"\n import \"influxdata/influxdb/schema\"`\n queryText = `${_source}\n schema.tagValues(\n bucket: \"${data.buckets[0].name}\",\n tag: \"${cards[idx].keys.selected[0]}\",\n predicate: (r) => ${tagString},\n start: ${CACHING_REQUIRED_START_DATE},\n stop: ${CACHING_REQUIRED_END_DATE},\n )${searchString}\n |> limit(n: ${DEFAULT_LIMIT})\n |> sort()`\n }\n\n const result = query(queryText, scope)\n\n setCancelValue(prev => ({\n ...prev,\n [idx]: (result as any).cancel,\n }))\n\n return result\n .then(resp => {\n return (Object.values(resp.parsed.table.columns).filter(\n c => c.name === '_value' && c.type === 'string'\n )[0]?.data ?? []) as string[]\n })\n .then(values => {\n cardMeta.splice(idx, 1, {\n ...cardMeta[idx],\n values,\n loadingValues: RemoteDataState.Done,\n })\n setCardMeta([...cardMeta])\n })\n .catch(e => {\n console.error(e)\n })\n }\n\n const remove = (idx: number): void => {\n if (idx === 0 || idx > cards.length) {\n return\n }\n\n cards.splice(idx, 1)\n cardMeta.splice(idx, 1)\n\n setCardMeta(\n cardMeta.map((meta, i) => {\n if (i < idx) {\n return meta\n }\n\n return {\n keys: [],\n values: [],\n loadingKeys: RemoteDataState.NotStarted,\n loadingValues: RemoteDataState.NotStarted,\n }\n })\n )\n\n update({tags: cards.map(toBuilderConfig)})\n }\n\n const updater = (idx: number, card: Partial): void => {\n if (idx < 0 || idx > data.tags.length) {\n return\n }\n\n const _card = {\n ...cards[idx],\n ...card,\n\n keys: {\n ...cards[idx].keys,\n ...(card.keys || {}),\n },\n values: {\n ...cards[idx].values,\n ...(card.values || {}),\n },\n }\n\n if (_card.keys?.selected[0] !== cards[idx]?.keys?.selected[0]) {\n cardMeta.splice(idx, 1, {\n ...cardMeta[idx],\n values: [],\n loadingValues: RemoteDataState.NotStarted,\n })\n setCardMeta([...cardMeta])\n }\n\n cards[idx] = {\n ...cards[idx],\n ..._card,\n }\n\n data.tags = cards.map(toBuilderConfig)\n\n update({tags: data.tags})\n }\n\n return (\n \n {children}\n \n )\n}\n","import View from './view'\nimport ReadOnly from './readOnly'\nimport './style.scss'\n\nexport default register => {\n register({\n type: 'queryBuilder',\n family: 'inputs',\n priority: 1,\n component: View,\n featureFlag: 'flow-panel--query-builder',\n button: 'Query Builder',\n initial: {\n buckets: [],\n tags: [\n {\n key: '_measurement',\n values: [],\n aggregateFunctionType: 'filter',\n },\n ],\n },\n readOnlyComponent: ReadOnly,\n source: data => {\n if (\n !data.buckets[0] ||\n !data.tags.reduce((acc, curr) => acc.concat(curr.values), []).length\n ) {\n return ''\n }\n\n const tags = data.tags\n .map(tag => {\n if (!tag.key) {\n return ''\n }\n\n if (tag.aggregateFunctionType === 'filter') {\n if (!tag.values.length) {\n return ''\n }\n\n const vals = tag.values\n .map(\n value => `r[\"${tag.key}\"] == \"${value.replace(/\\\\/g, '\\\\\\\\')}\"`\n )\n .join(' or ')\n\n return `\\n |> filter(fn: (r) => ${vals})`\n }\n\n if (tag.aggregateFunctionType === 'group') {\n const quotedValues = tag.values.map(value => `\"${value}\"`) // wrap the value in double quotes\n\n if (quotedValues.length) {\n return `\\n |> group(columns: [${quotedValues.join(', ')}])` // join with a comma (e.g. \"foo\",\"bar\",\"baz\")\n }\n\n return '\\n |> group()'\n }\n\n return ''\n })\n .join('')\n\n let _source\n if (data.buckets[0].type === 'sample') {\n _source = `import \"influxdata/influxdb/sample\"\\nsample.data(set: \"${data.buckets[0].id}\")`\n } else {\n _source = `from(bucket: \"${data.buckets[0].name}\")`\n }\n\n return `${_source}\\n\\t|> range(start: v.timeRangeStart, stop: v.timeRangeStop)${tags}`\n },\n })\n}\n","// Libraries\nimport React, {FC, useContext} from 'react'\nimport {\n ComponentStatus,\n DapperScrollbars,\n Dropdown,\n IconFont,\n} from '@influxdata/clockface'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\n\n// Contexts\nimport {PipeContext} from 'src/flows/context/pipe'\n\n// Components\nimport BuilderCard from 'src/timeMachine/components/builderCard/BuilderCard'\nimport SelectorList from 'src/timeMachine/components/SelectorList'\n\nconst QueryBuilder: FC = ({Context}) => {\n const {data} = useContext(PipeContext)\n\n return (\n \n
\n
\n \n
\n \n \n \n (\n \n {!!data?.buckets?.length && data?.buckets?.[0]?.name\n ? data.buckets[0].name\n : 'No Bucket Selected'}\n \n )}\n menu={onCollapse => (\n \n )}\n style={{width: '250px', flex: '0 0 250px'}}\n />\n \n \n {data.tags.map(tag => (\n \n \n (\n \n {tag.key}\n \n )}\n menu={onCollapse => (\n \n )}\n style={{width: '250px'}}\n />\n {}}\n multiSelect\n />\n \n ))}\n
\n
\n
\n
\n
\n )\n}\n\nexport default QueryBuilder\n","// Libraries\nimport React, {FC, useContext} from 'react'\nimport {DapperScrollbars} from '@influxdata/clockface'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\n\n// Contexts\nimport {BucketProvider} from 'src/shared/contexts/buckets'\nimport {QueryBuilderProvider} from 'src/flows/pipes/QueryBuilder/context'\nimport {PipeContext} from 'src/flows/context/pipe'\n\n// Components\nimport AddButton from 'src/flows/pipes/QueryBuilder/AddButton'\nimport BucketSelector from 'src/flows/pipes/QueryBuilder/BucketSelector'\nimport CardList from 'src/flows/pipes/QueryBuilder/CardList'\n\nconst QueryBuilder: FC = ({Context}) => {\n const {scope} = useContext(PipeContext)\n\n return (\n \n \n \n
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default QueryBuilder\n","import React, {FC, useCallback, useEffect, useMemo} from 'react'\nimport {useDispatch, useSelector} from 'react-redux'\n\n// Components\nimport {\n Button,\n ComponentColor,\n ComponentSize,\n FlexBox,\n IconFont,\n JustifyContent,\n} from '@influxdata/clockface'\nimport {FilterList} from 'src/shared/components/FilterList/FilterList'\nimport InjectSecretOption from 'src/shared/components/FilterList/InjectionOption'\nimport {showOverlay, dismissOverlay} from 'src/overlays/actions/overlays'\n\n// Actions & Selectors\nimport {getSecrets} from 'src/secrets/actions/thunks'\nimport {getAllSecrets} from 'src/resources/selectors'\n\n// Injection\nimport {InjectionOptions, InjectionType} from 'src/shared/contexts/editor'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\nimport {Secret} from 'src/types'\n\ninterface Props {\n inject: (options: InjectionOptions) => void\n cbOnInject: (queryText: string) => void\n}\n\nconst SecretsList: FC = ({inject, cbOnInject}) => {\n const dispatch = useDispatch()\n const secrets = useSelector(getAllSecrets)\n\n const handleCreateSecret = () => {\n event('Create Secret Modal Opened')\n dispatch(\n showOverlay('create-secret', null, () => dispatch(dismissOverlay()))\n )\n }\n\n const onSelect = useCallback(\n secret => {\n const options = {\n text: `secrets.get(key: \"${secret.id}\") `,\n type: InjectionType.SameLine,\n header: `import \"influxdata/influxdb/secrets\"`,\n cbParentOnUpdateText: cbOnInject,\n }\n inject(options)\n event('Inject secret into Flux Script', {secret: secret.id})\n },\n [inject, cbOnInject]\n )\n\n useEffect(() => {\n dispatch(getSecrets())\n }, [])\n\n const header = () => (\n \n
Secrets
\n \n \n )\n\n const render = secret => (\n (secret as Secret).id}\n key={secret.id}\n testID={`select-secret-${secret.id}`}\n />\n )\n\n return useMemo(\n () => (\n
\n (secret as Secret).id}\n items={secrets}\n renderItem={render}\n />\n
\n ),\n [onSelect, secrets]\n )\n}\n\nexport default SecretsList\n","import {\n parse,\n format_from_js_file,\n} from 'src/languageSupport/languages/flux/lspUtils'\nimport {find} from 'src/shared/contexts/query'\nimport View from './view'\nimport ReadOnly from './readOnly'\nimport './style.scss'\n\nexport default register => {\n register({\n type: 'rawFluxEditor',\n family: 'inputs',\n priority: 0,\n component: View,\n readOnlyComponent: ReadOnly,\n featureFlag: 'flow-panel--raw-flux',\n button: 'Flux Script',\n initial: {\n activeQuery: 0,\n queries: [\n {\n text: '// Uncomment the following line to continue building from the previous cell\\n// __PREVIOUS_RESULT__\\n',\n editMode: 'advanced',\n builderConfig: {\n buckets: [],\n tags: [],\n functions: [],\n },\n },\n ],\n },\n source: (data, query) => {\n try {\n const q = parse(query)\n const ast = parse(data.queries[data.activeQuery].text)\n const body = q.body.map(b => b.location.source).join('\\n')\n\n if (!ast.body.length) {\n return ''\n }\n\n ast.imports = Object.values(\n q.imports.concat(ast.imports).reduce((acc, curr) => {\n acc[curr.path.value] = curr\n return acc\n }, {})\n )\n\n find(ast, node => !!Object.keys(node.comments || {}).length).forEach(\n node => {\n delete node.comments\n }\n )\n\n find(\n ast,\n node =>\n node.type === 'Identifier' && node.name === '__PREVIOUS_RESULT__'\n ).forEach(node => {\n node.name = body\n })\n\n return format_from_js_file(ast)\n } catch {\n return\n }\n },\n })\n}\n","// Libraries\nimport React, {FC, lazy, Suspense, useContext} from 'react'\nimport {\n RemoteDataState,\n SpinnerContainer,\n TechnoSpinner,\n} from '@influxdata/clockface'\n\n// Types and Context\nimport {PipeProp} from 'src/types/flows'\nimport {VariablesContext} from 'src/flows/context/variables'\n\n// Components\nimport {PipeContext} from 'src/flows/context/pipe'\n\n// Styles\nimport 'src/flows/pipes/RawFluxEditor/style.scss'\n\nconst FluxMonacoEditor = lazy(\n () => import('src/shared/components/FluxMonacoEditor')\n)\n\nconst Query: FC = ({Context}) => {\n const {data} = useContext(PipeContext)\n const {queries, activeQuery} = data\n const query = queries[activeQuery]\n const {variables} = useContext(VariablesContext)\n\n return (\n \n }\n />\n }\n >\n {}}\n onSubmitScript={() => {}}\n autogrow\n readOnly\n wrapLines=\"on\"\n />\n \n \n )\n}\n\nexport default Query\n","// Libraries\nimport React, {\n FC,\n lazy,\n Suspense,\n useContext,\n useEffect,\n useCallback,\n useMemo,\n} from 'react'\nimport {\n RemoteDataState,\n SpinnerContainer,\n TechnoSpinner,\n Button,\n IconFont,\n ComponentColor,\n} from '@influxdata/clockface'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\n\n// Context\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {SidebarContext} from 'src/flows/context/sidebar'\nimport {EditorContext, EditorProvider} from 'src/shared/contexts/editor'\nimport {VariablesContext} from 'src/flows/context/variables'\n\n// Components\nimport SecretsList from 'src/flows/pipes/RawFluxEditor/SecretsList'\nimport Functions from 'src/shared/components/GroupedFunctionsList'\nimport DynamicFunctions from 'src/shared/components/DynamicFunctionsList'\n\n// Styles\nimport 'src/flows/pipes/RawFluxEditor/style.scss'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\nimport {CLOUD} from 'src/shared/constants'\nimport {buildQuery} from 'src/timeMachine/utils/queryBuilder'\n\nconst FluxMonacoEditor = lazy(\n () => import('src/shared/components/FluxMonacoEditor')\n)\n\nconst Query: FC = ({Context}) => {\n const {id, data, update} = useContext(PipeContext)\n const {\n hideSub,\n id: showId,\n show,\n showSub,\n register,\n } = useContext(SidebarContext)\n const editorContext = useContext(EditorContext)\n const {inject, injectFunction} = editorContext\n const {queries, activeQuery} = data\n // NOTE: this is to migrate bad data from an EAR, not part of the spec\n // the first condition is the correct one\n const query = Array.isArray(queries) ? queries[activeQuery] : queries\n const {variables} = useContext(VariablesContext)\n\n // NOTE: this is to migrate bad data from an EAR, not part of the spec\n // the first condition is the correct one, no need to call build query\n const queryText = query?.text ?? buildQuery(query)\n\n // NOTE: this should apply the migration\n useEffect(() => {\n if (Array.isArray(queries)) {\n return\n }\n\n if (!query.text) {\n query.text = buildQuery(query)\n }\n\n update({...data, queries: [{...query}]})\n }, [id])\n\n useEffect(() => {\n register(id, [\n {\n title: 'RawFluxEditor actions',\n actions: [\n {\n title: 'Inject Secret',\n disable: () => false,\n menu: ,\n },\n ],\n },\n ])\n }, [id, inject])\n\n const updateText = useCallback(\n text => {\n const _queries = [...queries]\n _queries[activeQuery] = {\n ...queries[activeQuery],\n text,\n }\n\n update({queries: _queries})\n },\n [queries, activeQuery]\n )\n\n const injectIntoEditor = useCallback(\n (fn): void => {\n injectFunction(fn, updateText)\n },\n [injectFunction, updateText]\n )\n\n const launcher = useCallback(() => {\n if (showId === id) {\n event('Flux Panel (Notebooks) - Toggle Functions - Off')\n hideSub()\n } else {\n event('Flux Panel (Notebooks) - Toggle Functions - On')\n show(id)\n if (CLOUD) {\n showSub()\n } else {\n showSub()\n }\n }\n }, [injectIntoEditor, showId])\n\n const controls = (\n \n )\n\n return useMemo(\n () => (\n \n }\n />\n }\n >\n \n \n \n ),\n [\n RemoteDataState.Loading,\n queryText,\n updateText,\n editorContext.editor,\n variables,\n launcher,\n ]\n )\n}\n\nexport default ({Context}) => (\n \n \n \n)\n","import View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'region',\n family: 'context',\n component: View,\n featureFlag: 'flow-panel--remote',\n button: 'Remote Database',\n description: 'Queries a remote region using a token',\n initial: {\n type: 'static',\n region: '',\n token: '',\n org: '',\n },\n readOnlyComponent: ReadOnly,\n\n scope: (data, prev) => {\n return {\n ...prev,\n region: data.region,\n token: data.token,\n org: data.org,\n }\n },\n })\n}\n","import React, {FC, useContext} from 'react'\n\nimport {PipeProp} from 'src/types/flows'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {REGIONS} from './view'\n\nimport {\n Dropdown,\n ComponentColor,\n ComponentStatus,\n ComponentSize,\n Form,\n FlexBox,\n Input,\n InputType,\n} from '@influxdata/clockface'\n\nimport './style.scss'\n\nconst Source: FC = ({Context}) => {\n const {data} = useContext(PipeContext)\n\n const regionLabel = REGIONS.filter(region => region.value === data.region)[0]\n .label\n\n return (\n \n \n \n
Query another InfluxDB instance
\n

All following panels will use this source

\n \n \n \n (\n \n {regionLabel}\n \n )}\n menu={onCollapse => }\n />\n \n \n \n \n \n \n \n {data.region !== window.location.origin && (\n \n \n \n \n \n )}\n
\n
\n )\n}\n\nexport default Source\n","import React, {FC, useContext, useEffect, useState, useMemo} from 'react'\nimport {useSelector} from 'react-redux'\n\nimport {activeFlags} from 'src/shared/selectors/flags'\nimport {PipeProp} from 'src/types/flows'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {getOrg} from 'src/organizations/selectors'\n\nimport {\n Dropdown,\n ComponentColor,\n ComponentStatus,\n ComponentSize,\n Form,\n FlexBox,\n Input,\n InputType,\n} from '@influxdata/clockface'\n\nimport './style.scss'\n\nexport const REGIONS = [\n {\n label: 'US West (Oregon)',\n group: 'Amazon Web Services',\n value: 'https://us-west-2-1.aws.cloud2.influxdata.com',\n },\n {\n label: 'US East (Virginia)',\n group: 'Amazon Web Services',\n value: 'https://us-east-1-1.aws.cloud2.influxdata.com',\n },\n {\n label: 'Europe West (Frankfurt)',\n group: 'Amazon Web Services',\n value: 'https://eu-central-1-1.aws.cloud2.influxdata.com',\n },\n {\n label: 'US Central (Iowa)',\n group: 'Google Cloud Platform',\n value: 'https://us-central1-1.gcp.cloud2.influxdata.com',\n },\n {\n label: 'Europe West (Belgium)',\n group: 'Google Cloud Platform',\n value: 'https://europe-west1-1.gcp.cloud2.influxdata.com',\n },\n {\n label: 'US East (Virginia)',\n group: 'Microsoft Azure',\n value: 'https://eastus-1.azure.cloud2.influxdata.com',\n },\n {\n label: 'Europe West (Amsterdam)',\n group: 'Microsoft Azure',\n value: 'https://westeurope-1.azure.cloud2.influxdata.com',\n },\n {\n label: 'Tools Cluster',\n group: 'Development',\n flag: 'local-dev',\n value: 'https://influxdb.aws.influxdata.io',\n },\n {label: 'Current Region', value: 'self'},\n {label: 'Self Hosted', value: 'self-hosted'},\n]\n\nconst Source: FC = ({Context}) => {\n const {data, update} = useContext(PipeContext)\n const org = useSelector(getOrg)\n const [error, setError] = useState(false)\n const flags = useSelector(activeFlags)\n\n const updater = option => {\n if (option.value === 'self-hosted') {\n update({\n source: 'custom',\n region: 'https://localhost:8086',\n })\n } else if (option.value === 'self') {\n update({\n source: 'self',\n region: window.location.origin,\n })\n } else {\n update({\n source: 'static',\n region: option.value,\n })\n }\n }\n\n const [options, selected] = useMemo(() => {\n const hashed = JSON.parse(JSON.stringify(REGIONS)).reduce(\n (acc, curr) => {\n if (curr.flag && !flags[curr.flag]) {\n return acc\n }\n\n if (curr.value === data.region) {\n acc.selected = curr\n }\n\n if (!curr.group) {\n acc['no-group'].push(curr)\n return acc\n }\n\n if (!acc[curr.group]) {\n acc[curr.group] = {\n label: curr.group,\n options: [],\n }\n }\n\n acc[curr.group].options.push(curr)\n delete curr.group\n return acc\n },\n {'no-group': []}\n )\n\n const options = Object.entries(hashed).reduce((acc, [k, v]) => {\n if (k === 'selected') {\n return acc\n }\n\n if (k === 'no-group') {\n return acc.concat(v)\n }\n\n acc.push(v)\n return acc\n }, [])\n\n if (data.source === 'custom') {\n return [options, REGIONS[REGIONS.length - 1]]\n }\n\n if (data.source === 'self') {\n return [options, REGIONS[REGIONS.length - 2]]\n }\n\n if (hashed.selected) {\n return [options, hashed.selected]\n }\n\n update({\n source: 'self',\n region: window.location.origin,\n })\n\n data.source = 'self'\n data.region = window.location.origin\n\n return [options, REGIONS[REGIONS.length - 2]]\n }, [data.source, data.region, flags])\n\n useEffect(() => {\n if (data.region === window.location.origin) {\n update({\n org: org.id,\n })\n\n return\n }\n\n if (!data.region || !data.token) {\n return\n }\n\n fetch(`${data.region}/api/v2/orgs`, {\n headers: {\n accept: '*/*',\n 'accept-language': 'en-US,en;q=0.9',\n Authorization: `Token ${data.token}`,\n },\n body: null,\n method: 'GET',\n mode: 'cors',\n }).then(resp => {\n if (resp.status !== 200) {\n setError(true)\n return\n }\n\n if (error) {\n setError(false)\n }\n\n resp.json().then(json => {\n if (!(json.orgs || []).length) {\n return\n }\n\n update({\n org: json.orgs[0].id,\n })\n })\n })\n }, [data.region, data.token])\n\n return (\n \n \n \n
Query another InfluxDB instance
\n

All following panels will use this source

\n \n \n \n (\n \n {selected.label}\n \n )}\n menu={onCollapse => (\n \n {options.reduce((acc, curr) => {\n if (!curr.options) {\n const selected =\n (data.source === 'self' && curr.value === 'self') ||\n (data.source === 'custom' && curr.value === 'custom') ||\n data.region === curr.value\n\n acc.push(\n updater(curr)}\n selected={selected}\n >\n {curr.label}\n \n )\n\n return acc\n }\n\n acc.push(\n \n )\n\n return acc.concat(\n curr.options.map(_curr => {\n const selected =\n (data.source === 'self' && _curr.value === 'self') ||\n (data.source === 'custom' &&\n _curr.value === 'custom') ||\n data.region === _curr.value\n\n return (\n updater(_curr)}\n selected={selected}\n >\n {_curr.label}\n \n )\n })\n )\n }, [])}\n \n )}\n />\n \n \n \n \n update({region: evt.target.value})}\n size={ComponentSize.Medium}\n status={\n data.source !== 'custom'\n ? ComponentStatus.Disabled\n : ComponentStatus.Default\n }\n />\n \n \n {data.region !== window.location.origin && (\n \n \n update({token: evt.target.value})}\n />\n \n \n )}\n
\n {!!error && (\n
\n could not validate token against region\n
\n )}\n
\n )\n}\n\nexport default Source\n","import View from './view'\nimport './styles.scss'\nexport default register => {\n register({\n type: 'remoteCSV',\n family: 'inputs',\n priority: 1,\n component: View,\n featureFlag: 'flowPanelRemoteCsv',\n button: 'Remote CSV',\n initial: {\n csvType: '',\n url: '',\n sampleName: '',\n },\n source: data => {\n if (!data.url?.length) {\n return ''\n }\n const dataQuery =\n data.sampleName === 'Custom'\n ? `import \"experimental/csv\"\n data = csv.from(url: \"${data.url}\")`\n : `import \"influxdata/influxdb/sample\"\n data = sample.data(\n set: \"${data.sampleName}\"\n )`\n return `${dataQuery}\n csvRange = data\n |> keep(columns: [\"_time\"])\n |> group()\n |> reduce(\n fn: (r, accumulator) => ({\n min: if r._time < accumulator.min then r._time else accumulator.min,\n max: if r._time > accumulator.max then r._time else accumulator.max,\n }),\n identity: {min: now(), max: time(v: 0)},\n )\n |> findRecord(fn: (key) => true, idx: 0)\n\n data\n |> range(start: csvRange.min, stop: csvRange.max)`\n },\n })\n}\n","import React, {FC, useContext, useEffect, useState} from 'react'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\n\nimport {\n Dropdown,\n ComponentColor,\n Input,\n InputType,\n ComponentStatus,\n} from '@influxdata/clockface'\nimport {PipeProp} from 'src/types/flows'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {FlowQueryContext} from 'src/flows/context/flow.query'\n\nconst SampleCSVs = {\n airSensor: 'Sample Air Sensor Data',\n noaa: 'NOAA National Buoy Data Center (NDBC)',\n usgs: 'USGS Earthquake Data',\n}\n\nconst RemoteCSV: FC = ({Context}) => {\n const [csvHash, setCSVHash] = useState({})\n const {data, update} = useContext(PipeContext)\n const {query} = useContext(FlowQueryContext)\n\n const handleChange = (e: any) => {\n update({url: e.target.value})\n }\n\n const handleSelectFromDropdown = (\n selected: string,\n url: string,\n name: string\n ) => {\n event('Remote CSV Panel (Notebooks)- Selected Option: ' + name)\n update({csvType: selected, url: url ?? '', sampleName: name})\n }\n\n const {csvType, url} = data\n useEffect(() => {\n query(`import \"influxdata/influxdb/sample\"\n sample.list()`).then(res => {\n const columnNames = [\n ...(res.parsed.table.columns.name.data as string[]),\n 'Custom',\n ]\n const columnUrls = res.parsed.table.columns.url.data as string[]\n setCSVHash(\n columnNames.reduce((a, b, idx) => {\n if (SampleCSVs[b]) {\n a[b] = {\n url: columnUrls[idx],\n label: SampleCSVs[b],\n name: b,\n }\n }\n if (b === 'Custom') {\n a[b] = {\n url: '',\n label: 'Custom',\n name: 'Custom',\n }\n }\n return a\n }, {})\n )\n })\n }, [])\n\n return (\n \n
\n
\n (\n \n {csvType.length ? csvType : 'Import Sample CSV'}\n \n )}\n menu={onCollapse => (\n \n {Object.values(csvHash).map(\n (m: {url: string; label: string; name: string}) => {\n return (\n \n handleSelectFromDropdown(m.label, m.url, m.name)\n }\n selected={m.label === csvType}\n >\n {m.label}\n \n )\n }\n )}\n \n )}\n />\n
\n \n
\n
\n
\n
\n )\n}\n\nexport default RemoteCSV\n","// Libraries\nimport React, {FC, useContext} from 'react'\nimport {useHistory} from 'react-router-dom'\nimport {useDispatch, useSelector} from 'react-redux'\nimport {\n ButtonType,\n ComponentColor,\n ComponentStatus,\n IconFont,\n} from '@influxdata/clockface'\n\nimport {\n resourceLimitReached,\n taskCreatedSuccess,\n taskNotCreated,\n} from 'src/shared/copy/notifications'\nimport {ASSET_LIMIT_ERROR_STATUS} from 'src/cloud/constants/index'\nimport {postTask, patchTask} from 'src/client'\nimport {notify} from 'src/shared/actions/notifications'\nimport {checkTaskLimits} from 'src/cloud/actions/limits'\n\n// Components\nimport {Button} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {FlowContext} from 'src/flows/context/flow.current'\nimport {FlowListContext} from 'src/flows/context/flow.list'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\nimport {getErrorMessage} from 'src/utils/api'\nimport {getOrg} from 'src/organizations/selectors'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\nimport {PROJECT_NAME_PLURAL} from 'src/flows'\nimport {missingUserInput} from 'src/shared/copy/notifications'\n\ninterface Props {\n text: string\n type: string\n generate?: () => string\n onCreate?: (task: any) => void\n disabled?: boolean\n}\n\nconst ExportTaskButton: FC = ({\n text,\n type,\n generate,\n onCreate,\n disabled,\n}) => {\n const {flow} = useContext(FlowContext)\n const {add} = useContext(FlowListContext)\n const {data} = useContext(PipeContext)\n const dispatch = useDispatch()\n const history = useHistory()\n const org = useSelector(getOrg)\n\n const onClick = async () => {\n let query\n\n try {\n query = generate ? generate() : data.query\n } catch (e) {\n dispatch(notify(missingUserInput(e.message)))\n return\n }\n\n event('Export Task Modal Skipped', {from: type, type: data.endpoint})\n let taskid\n\n // we can soft delete the previously connected task by marking the old one inactive\n if (data?.task?.id) {\n taskid = data.task.id\n } else if ((data?.task ?? []).length) {\n taskid = data.task[0].id\n }\n\n if (taskid) {\n patchTask({\n taskID: taskid,\n data: {\n status: 'inactive',\n },\n })\n\n if (isFlagEnabled('createWithFlows')) {\n fetch(\n `/api/v2private/notebooks/${flow.id}/resources?type=tasks&resource=${taskid}`,\n {\n method: 'GET',\n }\n )\n .then(resp => resp.json())\n .then(resp => {\n if (!resp.length) {\n return\n }\n\n fetch(\n `/api/v2private/notebooks/${flow.id}/resources/${resp[0].id}`,\n {\n method: 'DELETE',\n }\n )\n })\n }\n }\n\n try {\n const resp = await postTask({data: {orgID: org.id, flux: query}})\n if (resp.status !== 201) {\n throw new Error(resp.data.message)\n }\n\n if (isFlagEnabled('createWithFlows')) {\n new Promise(resolve => {\n if (flow.id) {\n resolve(flow.id)\n return\n }\n\n add(flow).then(id => resolve(id))\n })\n .then(id => {\n return fetch(`/api/v2private/notebooks/${id}/resources`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n panel: data.id,\n resource: resp.data.id,\n type: 'tasks',\n }),\n }).then(() => {\n return id\n })\n })\n .then(id => {\n dispatch(notify(taskCreatedSuccess()))\n dispatch(checkTaskLimits())\n\n if (onCreate) {\n onCreate(resp.data)\n }\n\n if (id !== flow.id) {\n history.replace(\n `/orgs/${org.id}/${PROJECT_NAME_PLURAL.toLowerCase()}/${id}`\n )\n }\n })\n } else {\n if (onCreate) {\n onCreate(resp.data)\n }\n }\n } catch (error) {\n if (error?.response?.status === ASSET_LIMIT_ERROR_STATUS) {\n dispatch(notify(resourceLimitReached('tasks')))\n } else {\n const message = getErrorMessage(error)\n dispatch(notify(taskNotCreated(message)))\n }\n }\n }\n\n let status = ComponentStatus.Default\n if (disabled) {\n status = ComponentStatus.Disabled\n }\n\n return (\n \n )\n}\n\nexport default ExportTaskButton\n","import React, {FC, useEffect, useState, useRef, useContext} from 'react'\nimport {\n getTask,\n patchTask,\n getTasksRuns,\n getTasksRun,\n postTasksRun,\n getTasksRunsLogs,\n Task,\n Run as RunType,\n} from 'src/client/generatedRoutes'\nimport {\n EmptyState,\n Button,\n ComponentSize,\n ComponentColor,\n ComponentStatus,\n SlideToggle,\n IndexList,\n DapperScrollbars,\n Overlay,\n} from '@influxdata/clockface'\nimport ErrorBoundary from 'src/shared/components/ErrorBoundary'\nimport {createDateTimeFormatter} from 'src/utils/datetime/formatters'\nimport {PopupContext} from 'src/flows/context/popup'\n\nimport {event} from 'src/cloud/utils/reporting'\n\ninterface ListProps {\n tasks: Task[]\n}\n\ninterface Props {\n task: Task\n}\n\ninterface LogProps {\n taskID: string\n runID: string\n}\n\ninterface RunProps {\n task: Task\n run: RunType\n}\n\nconst duration = (start: string, finish: string): string => {\n let timeTag = 'seconds'\n const _start = Date.parse(start)\n const _finish = Date.parse(finish)\n\n if (isNaN(_finish) || isNaN(_start)) {\n return ''\n }\n\n let diff = (_finish - _start) / 1000\n\n if (diff > 60) {\n diff = Math.round(diff / 60)\n timeTag = 'minutes'\n }\n\n return `${diff} ${timeTag}`\n}\n\nconst RunLogs: FC = ({taskID, runID}) => {\n const {closeFn} = useContext(PopupContext)\n const [logs, setLogs] = useState([])\n\n const formatter = createDateTimeFormatter('YYYY-MM-DD HH:mm:ss')\n\n useEffect(() => {\n getTasksRunsLogs({taskID, runID}).then(resp => {\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n setLogs(resp.data.events)\n })\n }, [taskID, runID])\n\n const closer = () => {\n event('Task Run Log Overlay Closed')\n\n closeFn()\n }\n\n const _logs = logs.map((l, idx) => (\n \n \n {formatter.format(new Date(l.time))}\n \n \n \n
{l.message}
\n
\n
\n
\n ))\n\n return (\n \n \n \n \n \n \n \n \n \n \n } columnCount={2}>\n {_logs}\n \n \n \n \n \n \n )\n}\n\nconst UPDATE_INTERVAL = 3 * 1000\n\nconst Run: FC = ({task, run}) => {\n const {launch} = useContext(PopupContext)\n const timer = useRef>()\n const [runOverride, setRunOverride] = useState>({})\n const formatter = createDateTimeFormatter('YYYY-MM-DD HH:mm:ss')\n const viewLogs = () => {\n launch(, {})\n }\n const _run = {\n ...run,\n ...runOverride,\n }\n\n useEffect(() => {\n // no need to update as we are in a final state\n if (run.status === 'success' || run.status === 'failed') {\n return\n }\n\n // shouldnt happen, but lets not risk the memory leak\n if (timer.current) {\n return\n }\n\n timer.current = setInterval(() => {\n getTasksRun({\n taskID: task.id,\n runID: run.id,\n }).then(resp => {\n if (resp.status !== 200) {\n return\n }\n\n setRunOverride(resp.data)\n\n if (\n (resp.data.status === 'success' || resp.data.status === 'failed') &&\n timer.current\n ) {\n clearInterval(timer.current)\n }\n })\n }, UPDATE_INTERVAL)\n\n return () => {\n if (timer.current) {\n clearInterval(timer.current)\n }\n }\n }, [])\n\n const format = (date: string) => {\n try {\n return formatter.format(new Date(date))\n } catch {\n return null\n }\n }\n\n return (\n
\n
\n \n {_run.status}\n
\n
\n \n {format(_run.scheduledFor)}\n
\n
\n \n {duration(_run.scheduledFor, _run.startedAt)}\n
\n
\n \n {duration(_run.startedAt, _run.finishedAt)}\n
\n
\n \n
\n
\n )\n}\n\nconst History: FC = ({task}) => {\n const [runs, setRuns] = useState([])\n const [status, setStatus] = useState('inactive')\n\n useEffect(() => {\n if (!task.id) {\n return\n }\n\n getTasksRuns({taskID: task.id}).then(resp => {\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n setRuns(resp.data.runs)\n })\n getTask({taskID: task.id}).then(resp => {\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n setStatus(resp.data.status)\n })\n }, [task.id])\n\n const toggleStatus = () => {\n const _status = status === 'active' ? 'inactive' : 'active'\n setStatus(_status)\n patchTask({\n taskID: task.id,\n data: {\n status: _status,\n },\n })\n }\n\n const run = () => {\n postTasksRun({\n taskID: task.id,\n }).then(resp => {\n if (resp.status !== 201) {\n throw new Error(resp.data.message)\n }\n setRuns([resp.data, ...runs])\n })\n }\n\n const _runs = runs.map(r => (\n \n ))\n let runsView\n\n if (_runs.length) {\n runsView = _runs\n } else if (status === 'active') {\n runsView = (\n \n \n Looks like this Task doesn't have any Runs\n \n \n )\n }\n\n return (\n
\n

{task.name}

\n
\n
\n \n \n
\n \n
\n
{runsView}
\n
\n )\n}\n\nconst WrappedHistory: FC = ({tasks}) => (\n \n {tasks.map(task => (\n \n ))}\n \n)\nexport default WrappedHistory\n","import View from './view'\nimport ReadOnly from './readOnly'\nimport {PipeData} from 'src/types'\nimport {patchTask} from 'src/client'\n\nconst removeFlowTasks = (tasks = []) => {\n tasks.forEach(task => {\n patchTask({\n taskID: task.id,\n data: {\n status: 'inactive',\n },\n })\n })\n}\n\nexport default register => {\n register({\n type: 'schedule',\n family: 'output',\n priority: 1,\n component: View,\n readOnlyComponent: ReadOnly,\n featureFlag: 'flow-panel--schedule',\n button: 'Task',\n beforeRemove: (data: PipeData) => removeFlowTasks(data?.task),\n })\n}\n","// Libraries\nimport React, {FC, useContext} from 'react'\nimport {\n ComponentStatus,\n Form,\n FlexBox,\n Input,\n InputType,\n ComponentSize,\n} from '@influxdata/clockface'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\nimport {PipeContext} from 'src/flows/context/pipe'\n\nimport './style.scss'\n\nconst Schedule: FC = ({Context}) => {\n const {data} = useContext(PipeContext)\n\n return (\n \n \n \n
Run this on a schedule
\n

Must be exported as a task

\n \n \n \n \n \n \n\n \n \n \n \n \n
\n
\n )\n}\n\nexport default Schedule\n","// Libraries\nimport React, {FC, useContext, useCallback, useEffect, useMemo} from 'react'\nimport {\n ComponentStatus,\n Form,\n FlexBox,\n Input,\n InputType,\n Icon,\n IconFont,\n ComponentSize,\n} from '@influxdata/clockface'\nimport {\n parse,\n format_from_js_file,\n} from 'src/languageSupport/languages/flux/lspUtils'\nimport ExportTaskButton from 'src/flows/pipes/Schedule/ExportTaskButton'\nimport {patchTask, TaskUpdateRequest} from 'src/client'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\n\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {FlowQueryContext} from 'src/flows/context/flow.query'\nimport {SidebarContext} from 'src/flows/context/sidebar'\nimport History from 'src/flows/pipes/Schedule/History'\nimport {SafeBlankLink} from 'src/utils/SafeBlankLink'\n\nimport {remove} from 'src/shared/contexts/query'\n\nimport './style.scss'\n\nconst validCron = (text: string): boolean => {\n const isNumber = (str: string, min: number, max: number) => {\n if (str.search(/[^\\d-,\\/*]/) !== -1) {\n return false\n }\n\n return str.split(',').every(item => {\n if (item.trim().endsWith('/')) {\n return false\n }\n const splits = item.split('/')\n\n if (splits.length > 2) {\n return false\n }\n\n const [left, right] = splits\n const sides = left.split('-')\n\n if (\n right !== undefined &&\n (!/^\\d+$/.test(right) || parseInt(right) <= 0)\n ) {\n return false\n }\n\n if (sides.length > 2) {\n return false\n }\n\n if (sides.length === 1) {\n return (\n sides[0] === '*' ||\n (/^\\d+$/.test(sides[0]) &&\n min <= parseInt(sides[0]) &&\n parseInt(sides[0]) <= max)\n )\n }\n\n if (!/^\\d+$/.test(sides[0]) || !/^\\d+$/.test(sides[1])) {\n return false\n }\n\n const small = parseInt(sides[0])\n const big = parseInt(sides[1])\n\n return (\n !isNaN(small) &&\n !isNaN(big) &&\n small <= big &&\n min <= small &&\n small <= max &&\n min <= big &&\n big <= max\n )\n })\n }\n\n const mapMonth = (str: string): string =>\n str.toLowerCase().replace(\n /[a-z]{3}/g,\n _str =>\n ({\n jan: '1',\n feb: '2',\n mar: '3',\n apr: '4',\n may: '5',\n jun: '6',\n jul: '7',\n aug: '8',\n sep: '9',\n oct: '10',\n nov: '11',\n dec: '12',\n }[_str] || _str)\n )\n const mapDay = (str: string): string =>\n str.toLowerCase().replace(\n /[a-z]{3}/g,\n _str =>\n ({\n sun: '0',\n mon: '1',\n tue: '2',\n wed: '3',\n thu: '4',\n fri: '5',\n sat: '6',\n }[_str] || _str)\n )\n const split = text.trim().split(/\\s+/)\n if (split.length < 5 || split.length > 6) {\n return false\n }\n\n if (split.length === 5) {\n split.unshift('*')\n }\n\n return [\n isNumber(split[0], 0, 59),\n isNumber(split[1], 0, 59),\n isNumber(split[2], 0, 23),\n isNumber(split[3], 1, 31),\n isNumber(mapMonth(split[4]), 1, 12),\n isNumber(mapDay(split[5]), 0, 7),\n ].reduce((acc, curr) => acc && curr, true)\n}\n\nconst Schedule: FC = ({Context}) => {\n const {id, data, update} = useContext(PipeContext)\n const {simplify, getPanelQueries} = useContext(FlowQueryContext)\n const {register} = useContext(SidebarContext)\n let intervalError = ''\n let offsetError = ''\n\n if (data?.interval === '') {\n intervalError = 'Required'\n } else if (\n data.interval !==\n data.interval\n ?.match(/(?:(\\d+(ns|us|µs|ms|s|m|h|d|w|mo|y){1}))/g)\n ?.join('') &&\n !validCron(data.interval)\n ) {\n intervalError = 'Invalid Time'\n }\n\n if (\n data.offset &&\n data.offset !==\n data.offset.match(/(?:(\\d+(ns|us|µs|ms|s|m|h|d|w|mo|y){1}))/g)?.join('')\n ) {\n offsetError = 'Invalid Time'\n }\n let latestTask\n if (data.task?.id) {\n latestTask = data.task\n } else if (data.task?.length) {\n latestTask = data.task[0]\n }\n\n const queryText = getPanelQueries(id)?.source ?? ''\n const hasTaskOption = useMemo(\n () =>\n !!Object.keys(\n remove(\n parse(simplify(queryText)),\n node =>\n node.type === 'OptionStatement' &&\n node.assignment.id.name === 'task'\n ).reduce((acc, curr) => {\n // eslint-disable-next-line no-extra-semi\n ;(curr.assignment?.init?.properties || []).reduce((_acc, _curr) => {\n if (_curr.key?.name && _curr.value?.location?.source) {\n _acc[_curr.key.name] = _curr.value.location.source\n }\n\n return _acc\n }, acc)\n\n return acc\n }, {})\n ).length,\n [queryText]\n )\n const taskText = useMemo(() => {\n const ast = parse(simplify(queryText))\n\n const params = remove(\n ast,\n node =>\n node.type === 'OptionStatement' && node.assignment.id.name === 'task'\n ).reduce((acc, curr) => {\n // eslint-disable-next-line no-extra-semi\n ;(curr.assignment?.init?.properties || []).reduce((_acc, _curr) => {\n if (_curr.key?.name && _curr.value?.location?.source) {\n _acc[_curr.key.name] = _curr.value.location.source\n }\n\n return _acc\n }, acc)\n\n return acc\n }, {})\n\n if (!params.name) {\n params.name = `\"Notebook Task for ${id}\"`\n }\n\n if (data.interval && !intervalError) {\n if (validCron(data.interval)) {\n params.cron = `\"${data.interval}\"`\n } else {\n params.every = data.interval\n }\n }\n\n if (data.offset && !offsetError) {\n params.offset = data.offset\n }\n\n const paramString = Object.entries(params)\n .map(([key, val]) => `${key}: ${val}`)\n .join(',\\n')\n const header = parse(`option task = {${paramString}}\\n`)\n ast.body.unshift(header.body[0])\n\n return format_from_js_file(ast)\n }, [queryText, data.interval, data.offset])\n const hasChanges = taskText !== latestTask?.flux ?? ''\n\n const updateInterval = evt => {\n update({\n interval: evt.target.value,\n })\n }\n\n const updateOffset = evt => {\n update({\n offset: evt.target.value,\n })\n }\n\n const warningMessage = useMemo(() => {\n if (!hasTaskOption) {\n return\n }\n\n return (\n
\n
\n \n
\n
\n

The task option is reserved

\n

\n This panel will take precedence over any task configuration and\n overwrite the option. Remove it from your source query to remove\n this message\n

\n
\n
\n )\n }, [hasTaskOption])\n\n const generateTask = useCallback(() => {\n return taskText\n }, [taskText])\n\n const storeTask = (task: any) => {\n const list = ((data.task?.id ? [data.task] : data.task) || []).slice(0)\n list.unshift({\n id: task.id,\n name: task.name,\n flux: task.flux,\n })\n update({\n task: list,\n })\n }\n\n useEffect(() => {\n if (!id || !data.task) {\n return\n }\n\n register(id, [\n {\n title: 'Task',\n actions: [\n {\n title: 'View Run History',\n menu: ,\n },\n {\n title: 'Overwrite Existing Task',\n disable: () => !latestTask || !hasChanges,\n action: () => {\n const _data: TaskUpdateRequest = {\n flux: generateTask(),\n }\n if (\n data.interval?.match(/(?:(\\d+(y|mo|s|m|w|h){1}))/g)?.join('')\n ) {\n _data.every = data.interval\n } else {\n _data.cron = data.interval\n }\n\n if (data.offset) {\n _data.offset = data.offset\n }\n\n patchTask({\n taskID: latestTask.id,\n data: _data,\n }).then(() => {\n data.task.find(t => t.id === latestTask.id).flux =\n generateTask()\n update({task: [...data.task]})\n })\n },\n },\n ],\n },\n ])\n }, [id, data.task, hasChanges])\n\n const persist = (\n \n )\n\n return (\n \n \n \n
Run this on a schedule
\n

Must be exported as a task

\n \n \n \n Supports{' '}\n \n flux durations\n {' '}\n and{' '}\n \n cron intervals\n \n \n ) as unknown as string\n }\n required={true}\n errorMessage={intervalError}\n >\n \n \n \n\n \n \n Supports{' '}\n \n flux durations\n \n \n ) as unknown as string\n }\n required={false}\n errorMessage={offsetError}\n >\n \n \n \n
\n {warningMessage}\n
\n )\n}\n\nexport default Schedule\n","import React, {FC, useContext} from 'react'\nimport {Input} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\n\ninterface Props {\n visible: boolean\n}\n\nconst Editor: FC = ({visible}) => {\n const {data, update} = useContext(PipeContext)\n const _update = evt => {\n update({uri: evt.target.value})\n }\n\n if (!visible) {\n return null\n }\n\n return (\n
\n \n \n
\n )\n}\n\nexport default Editor\n","import React, {FC, useMemo, useContext} from 'react'\nimport {PipeContext} from 'src/flows/context/pipe'\n\ninterface Props {\n visible: boolean\n}\n\nconst Embedded: FC = ({visible}) => {\n const {data} = useContext(PipeContext)\n const parts = data.uri.split(':')\n\n return useMemo(\n () =>\n visible && (\n \n ),\n [visible, parts[1], parts[2]]\n )\n}\n\nexport default Embedded\n","import View from './view'\nimport './style.scss'\n\nexport default register => {\n register({\n type: 'spotify',\n family: 'test',\n priority: -1,\n featureFlag: 'flow-panel--spotify',\n button: 'Music',\n component: View,\n initial: {\n uri: 'spotify:track:55A8N3HXzIecctUSvru3Ch',\n },\n })\n}\n","// Libraries\nimport React, {FC, useState, useContext, useEffect} from 'react'\n\n// Components\nimport Embedded from './embedded'\nimport Editor from './editor'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {SidebarContext} from 'src/flows/context/sidebar'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\n\nconst Spotify: FC = ({Context}) => {\n const {id, data} = useContext(PipeContext)\n const {register} = useContext(SidebarContext)\n const [isEditing, setIsEditing] = useState(false)\n const toggleEdit = () => {\n setIsEditing(!isEditing)\n }\n\n useEffect(() => {\n if (!id) {\n return\n }\n\n register(id, [\n {\n title: 'Controls',\n actions: [\n {\n title: 'Edit Spotify URI',\n action: toggleEdit,\n },\n ],\n },\n ])\n }, [id, toggleEdit])\n\n const showEditing = isEditing || !data.uri\n\n return (\n \n
\n \n \n
\n
\n )\n}\n\nexport default Spotify\n","import View from './view'\nimport {\n parse,\n format_from_js_file,\n} from 'src/languageSupport/languages/flux/lspUtils'\nimport {parseQuery} from 'src/shared/contexts/query'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\n\nimport {SUPPORTED_VISUALIZATIONS} from 'src/visualization'\n\nexport default register => {\n register({\n type: 'table',\n family: 'passThrough',\n priority: 3,\n component: View,\n button: 'Table',\n initial: {\n properties: SUPPORTED_VISUALIZATIONS['simple-table'].initial,\n },\n visual: (_data, query) => {\n if (!query) {\n return ''\n }\n\n try {\n const ast = isFlagEnabled('fastFlows')\n ? parseQuery(query)\n : parse(query)\n const expressions = ast.body.filter(\n p => p.type === 'ExpressionStatement'\n )\n\n if (!expressions.length) {\n return ''\n }\n\n expressions.forEach(e => {\n let _ast\n if (e.expression?.call?.callee?.name !== 'yield') {\n _ast = parse(`${e.location.source} |> limit(n: 100)`)\n e.expression = _ast.body[0].expression\n e.location = _ast.body[0].location\n return\n }\n\n _ast = parse(\n `${e.expression.argument.location.source} |> limit(n: 100) |> ${e.expression.call.location.source}`\n )\n e.expression = _ast.body[0].expression\n e.location = _ast.body[0].location\n })\n return format_from_js_file(ast)\n } catch (e) {\n console.error(e)\n return ''\n }\n },\n })\n}\n","// Libraries\nimport React, {\n FC,\n useContext,\n useEffect,\n useMemo,\n useState,\n useRef,\n} from 'react'\nimport {Icon, IconFont} from '@influxdata/clockface'\n\n// Components\nimport {SearchWidget} from 'src/shared/components/search_widget/SearchWidget'\n\n// Utilities\nimport {View} from 'src/visualization'\nimport {bytesFormatter} from 'src/shared/copy/notifications'\n\n// Types\nimport {RemoteDataState, SimpleTableViewProperties} from 'src/types'\nimport {PipeProp, FluxResult} from 'src/types/flows'\n\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {FlowQueryContext} from 'src/flows/context/flow.query'\nimport {SidebarContext} from 'src/flows/context/sidebar'\n\nimport {event} from 'src/cloud/utils/reporting'\nimport {downloadTextFile} from 'src/shared/utils/download'\n\n// Constants\nimport {UNPROCESSED_PANEL_TEXT} from 'src/flows'\n\n// Styles\nimport './view.scss'\n\nconst QueryStat: FC = () => {\n const {loading, results} = useContext(PipeContext)\n const queryStart = useRef(0)\n const [processTime, setProcessTime] = useState(0)\n const [tableNum, setTableNum] = useState(0)\n\n useEffect(() => {\n if (loading === RemoteDataState.Loading) {\n // start to count\n if (queryStart.current === 0) {\n queryStart.current = Date.now()\n setProcessTime(0)\n }\n return\n }\n\n if (loading === RemoteDataState.Done && queryStart.current !== 0) {\n const timePassed = Date.now() - queryStart.current // ms\n queryStart.current = 0\n setProcessTime(timePassed)\n return\n }\n\n queryStart.current = 0\n setProcessTime(0)\n }, [loading])\n\n useEffect(() => {\n if (loading === RemoteDataState.Loading) {\n return\n }\n\n const tableColumn = results.parsed.table?.getColumn('table') || []\n const lastTableValue = tableColumn[tableColumn.length - 1]\n\n if (typeof lastTableValue === 'string') {\n setTableNum(parseInt(lastTableValue) + 1)\n } else if (typeof lastTableValue === 'boolean') {\n console.error('Cannot extract tableId. Check parsed csv output.')\n } else if (typeof lastTableValue === 'number') {\n setTableNum(lastTableValue + 1)\n }\n }, [loading, results?.parsed])\n\n const queryStat = {\n tableNum,\n rowNum: results.parsed.table?.length || 0,\n processTime, // ms\n }\n\n if (loading !== RemoteDataState.Done) {\n return null\n }\n\n return (\n
\n {results?.truncated ? (\n {`Max. display limit exceeded. Result truncated to ${bytesFormatter(\n results.bytes\n )}.`}\n ) : (\n <>\n {`${queryStat.tableNum} tables`}\n {`${queryStat.rowNum} rows`}\n {`${queryStat.processTime} ms`}\n \n )}\n
\n )\n}\n\nconst Table: FC = ({Context}) => {\n const {id, data, range, loading, results} = useContext(PipeContext)\n const {basic, getPanelQueries} = useContext(FlowQueryContext)\n const {register} = useContext(SidebarContext)\n const [search, setSearch] = useState('')\n\n const dataExists = !!(results?.parsed?.table || []).length\n\n const download = () => {\n event('CSV Download Initiated')\n const query = getPanelQueries(id)\n basic(query?.source, query?.scope).promise.then(response => {\n if (response.type !== 'SUCCESS') {\n return\n }\n\n downloadTextFile(response.csv, 'influx.data', '.csv', 'text/csv')\n })\n }\n\n const res = useMemo(() => {\n if (!search.trim() || !results?.parsed) {\n return results?.parsed\n }\n\n const dupped = {\n fluxGroupKeyUnion: [...results.parsed.fluxGroupKeyUnion],\n resultColumnNames: [...results.parsed.resultColumnNames],\n table: {\n length: 0,\n columns: Object.entries(results.parsed.table.columns).reduce(\n (acc, [k, v]) => {\n acc[k] = {...v, data: []}\n return acc\n },\n {}\n ),\n },\n }\n\n const len = results.parsed.table.length\n const keys = Object.keys(results.parsed.table.columns)\n let newLen = 0,\n ni = 0\n\n const _search = search.toLocaleLowerCase()\n const oldCols = results.parsed.table.columns\n const newCols = dupped.table.columns\n\n for (; ni < len; ni++) {\n if (\n !keys.reduce(\n (acc, curr) =>\n acc ||\n ('' + oldCols[curr].data[ni]).toLocaleLowerCase().includes(_search),\n false\n )\n ) {\n continue\n }\n\n keys.forEach(k => (newCols[k].data[newLen] = oldCols[k].data[ni]))\n newLen++\n }\n\n dupped.table.length = newLen\n\n return dupped as FluxResult['parsed']\n }, [search, results?.parsed])\n\n const loadingText = useMemo(() => {\n if (loading === RemoteDataState.Loading) {\n return 'Loading'\n }\n\n if (loading === RemoteDataState.NotStarted) {\n return UNPROCESSED_PANEL_TEXT\n }\n\n return 'No Data Returned'\n }, [loading])\n\n useEffect(() => {\n if (!id) {\n return\n }\n\n register(id, [\n {\n title: 'Table',\n actions: [\n {\n title: 'Download as CSV',\n disable: !dataExists,\n action: download,\n },\n ],\n },\n ])\n }, [id, data.properties, results.parsed, range])\n\n if (results.error) {\n return (\n \n
\n
\n \n
\n
{results.error}
\n
\n
\n )\n }\n\n if (!dataExists) {\n return (\n \n
\n
\n \n
\n
\n
{loadingText}
\n
\n
\n
\n )\n }\n\n const caveat = (\n \n )\n\n return (\n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n )\n}\n\nexport default Table\n","import View from './view'\n\nexport default register => {\n register({\n type: 'time',\n family: 'context',\n featureFlag: 'flow-panel--time',\n button: 'Time Range',\n component: View,\n initial: {\n start: '-1h',\n stop: 'now()',\n },\n scope: (data, prev) => {\n return {\n ...prev,\n vars: {\n ...(prev.vars || {}),\n timeRangeStart: data.start,\n timeRangeStop: data.stop,\n },\n }\n },\n })\n}\n","// Libraries\nimport React, {FC, useContext} from 'react'\nimport {\n ComponentStatus,\n Form,\n FlexBox,\n Input,\n InputType,\n ComponentSize,\n} from '@influxdata/clockface'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\n\nimport {PipeContext} from 'src/flows/context/pipe'\n\nimport {SafeBlankLink} from 'src/utils/SafeBlankLink'\n\nimport './style.scss'\n\nconst Time: FC = ({Context}) => {\n const {data, update} = useContext(PipeContext)\n\n let startError = ''\n let stopError = ''\n\n if (!data.start) {\n startError = 'Required'\n } else if (\n !/^-(?:(\\d+(ns|us|µs|ms|s|m|h|d|w|mo|y){1}))+$/g.test(data.start) &&\n !/^([0-9]{4})-([0-9]{2})-([0-9]{2})([Tt]([0-9]{2}):([0-9]{2}):([0-9]{2})(\\\\.[0-9]+)?)?(([Zz]|([+-])([0-9]{2}):([0-9]{2})))?/g.test(\n data.start\n )\n ) {\n startError = 'Invalid Time'\n }\n\n if (!data.stop) {\n stopError = 'Required'\n } else if (\n !/^now\\(\\)$/g.test(data.stop) &&\n !/^-(?:(\\d+(ns|us|µs|ms|s|m|h|d|w|mo|y){1}))+$/g.test(data.stop) &&\n !/^([0-9]{4})-([0-9]{2})-([0-9]{2})([Tt]([0-9]{2}):([0-9]{2}):([0-9]{2})(\\\\.[0-9]+)?)?(([Zz]|([+-])([0-9]{2}):([0-9]{2})))?/g.test(\n data.stop\n )\n ) {\n stopError = 'Invalid Time'\n }\n\n const updateStart = evt => {\n update({\n start: evt.target.value,\n })\n }\n\n const updateStop = evt => {\n update({\n stop: evt.target.value,\n })\n }\n\n return (\n \n \n \n
Set a time frame
\n

\n \n durations\n {' '}\n and{' '}\n \n dates\n {' '}\n are valid\n

\n \n \n \n \n \n \n\n \n \n \n \n \n
\n
\n )\n}\n\nexport default Time\n","import View from './view'\nimport ReadOnly from './readOnly'\n\nexport default register => {\n register({\n type: 'toBucket',\n family: 'output',\n priority: 0,\n component: View,\n readOnlyComponent: ReadOnly,\n featureFlag: 'flow-panel--to-bucket',\n button: 'Output to Bucket',\n output: (data, query) => {\n if (!data?.bucket) {\n return query\n }\n\n return `${query} |> to(bucket: \"${data.bucket?.name.trim()}\")`\n },\n })\n}\n","// Libraries\nimport React, {FC, useContext} from 'react'\nimport {ComponentStatus, Dropdown, IconFont} from '@influxdata/clockface'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\n\n// Contexts\nimport {PipeContext} from 'src/flows/context/pipe'\n\nconst ToBucket: FC = ({Context}) => {\n const {data} = useContext(PipeContext)\n\n return (\n \n
\n
\n (\n \n {data?.bucket?.name ?? 'No Bucket Selected'}\n \n )}\n menu={onCollapse => }\n style={{width: '250px', flex: '0 0 250px'}}\n />\n
\n
\n
\n )\n}\n\nexport default ToBucket\n","// Libraries\nimport React, {FC, useContext} from 'react'\n\n// Types\nimport {Bucket} from 'src/types'\n\n// Contexts\nimport {BucketProvider} from 'src/shared/contexts/buckets'\nimport {PipeContext} from 'src/flows/context/pipe'\n\n// Components\nimport BucketSelector from 'src/flows/shared/BucketSelector'\n\n// Utils\nimport {event} from 'src/cloud/utils/reporting'\n\nconst ToBucket: FC = () => {\n const {data, update, scope} = useContext(PipeContext)\n const updateBucket = (bucket: Bucket) => {\n event('Updated Bucket', {context: 'to bucket'})\n update({bucket})\n }\n\n return (\n \n
\n \n
\n
\n )\n}\n\nexport default ({Context}) => (\n \n \n \n)\n","import React, {FC, useContext, useCallback, useEffect} from 'react'\nimport {\n ComponentColor,\n ComponentStatus,\n IconFont,\n DapperScrollbars,\n Button,\n} from '@influxdata/clockface'\nimport {millisecondsToDuration} from 'src/shared/utils/duration'\nimport {\n SUPPORTED_VISUALIZATIONS,\n ViewTypeDropdown,\n ViewOptions,\n} from 'src/visualization'\nimport {ViewType} from 'src/types'\nimport {event} from 'src/cloud/utils/reporting'\nimport ErrorThresholds from 'src/flows/pipes/Visualization/ErrorThresholds/ErrorThresholds'\nimport {SidebarContext} from 'src/flows/context/sidebar'\nimport {PipeContext, PipeProvider} from 'src/flows/context/pipe'\nimport ErrorBoundary from 'src/shared/components/ErrorBoundary'\n\nconst WrappedViewOptions: FC = () => {\n const {data, update, results} = useContext(PipeContext)\n\n const updateProperties = useCallback(\n properties => {\n update({\n properties: {\n ...data.properties,\n ...properties,\n },\n })\n },\n [data.properties, update]\n )\n\n return (\n \n \n \n \n \n \n )\n}\n\nconst Controls: FC = () => {\n const {id, data, range, update, results} = useContext(PipeContext)\n const {hideSub, id: showId, show, showSub} = useContext(SidebarContext)\n\n const updateType = (type: ViewType) => {\n event('notebook_change_visualization_type', {\n viewType: type,\n })\n\n update({\n properties: SUPPORTED_VISUALIZATIONS[type].initial,\n })\n }\n\n const launcher = () => {\n if (id === showId) {\n hideSub()\n } else {\n show(id)\n showSub(\n \n \n \n )\n }\n }\n\n useEffect(() => {\n let period\n if (range.type === 'custom') {\n period = millisecondsToDuration(\n Math.round((Date.parse(range.upper) - Date.parse(range.lower)) / 360)\n )\n } else if (range.type === 'selectable-duration') {\n period = millisecondsToDuration(range.windowPeriod)\n }\n\n if (period && period !== data.period) {\n update({\n period,\n })\n }\n }, [range, update, data.period])\n\n const dataExists = results.parsed && Object.entries(results.parsed).length\n\n const toggler = (\n \n )\n\n if (data.properties.type === 'simple-table') {\n return (\n <>\n \n Limited to most recent 100 results per series\n \n \n {toggler}\n \n )\n }\n\n return (\n <>\n \n {toggler}\n \n )\n}\n\nexport default Controls\n","// Libraries\nimport React, {FC, useContext, useMemo} from 'react'\n\n// Components\nimport {\n AlignItems,\n Button,\n ComponentColor,\n ComponentSize,\n ComponentStatus,\n IconFont,\n FlexBox,\n FlexDirection,\n Form,\n TextBlock,\n} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport ColumnDropdown from 'src/flows/pipes/Visualization/ErrorThresholds/FieldColumnDropdown'\nimport FunctionDropdown from 'src/flows/pipes/Visualization/ErrorThresholds/FunctionDropdown'\nimport ThresholdEntryColumn from 'src/flows/pipes/Visualization/ErrorThresholds/ThresholdEntryColumn'\nimport {event} from 'src/cloud/utils/reporting'\nimport {ErrorThreshold} from 'src/flows/pipes/Visualization/threshold'\nimport './ErrorThresholds.scss'\n\nconst ErrorThresholds: FC = () => {\n const {data, results, update} = useContext(PipeContext)\n\n const fields = Array.from(\n new Set(results.parsed.table.columns['_field']?.data as string[])\n )\n\n const errorThresholds = useMemo(\n () => data?.errorThresholds ?? [],\n [data?.errorThresholds]\n )\n\n const handleAddThreshold = () => {\n event('Error Threshold Added to Visualization Panel')\n update({\n errorThresholds: [\n ...(errorThresholds ?? []),\n {\n type: 'equal',\n value: 0,\n fieldType: 'not-number',\n },\n ],\n })\n }\n\n const handleRemoveThreshold = (index: number) => {\n const copy = errorThresholds.slice()\n copy.splice(index, 1)\n\n update({\n errorThresholds: copy,\n })\n }\n\n return (\n \n \n \n {data?.errorThresholds?.map(\n (threshold: ErrorThreshold, index: number) => (\n \n \n \n \n \n \n \n \n \n \n \n \n handleRemoveThreshold(index)}\n color={ComponentColor.Tertiary}\n />\n \n )\n )}\n \n \n 0\n ? ComponentStatus.Default\n : ComponentStatus.Disabled\n }\n onClick={handleAddThreshold}\n color={ComponentColor.Primary}\n className=\"add-error-threshold--button\"\n />\n \n \n \n )\n}\n\nexport default ErrorThresholds\n","// Libraries\nimport React, {FC, useCallback, useContext, useMemo} from 'react'\n\n// Components\nimport {ComponentSize, Dropdown} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {event} from 'src/cloud/utils/reporting'\nimport {ErrorThreshold} from 'src/flows/pipes/Visualization/threshold'\n\ntype Props = {\n threshold: ErrorThreshold\n index: number\n}\n\nconst FieldColumnDropdown: FC = ({threshold, index}) => {\n const {data, update, results} = useContext(PipeContext)\n\n const fields = Array.from(\n new Set(results.parsed.table.columns['_field']?.data as string[])\n )\n\n const errorThresholds = useMemo(\n () => data?.errorThresholds ?? [],\n [data?.errorThresholds]\n )\n\n const setColumn = useCallback(\n (column: string, index: number) => {\n event('Changed Notification Threshold Column')\n\n const threshold = errorThresholds.find((_, i) => index === i)\n\n if (threshold) {\n threshold.field = column\n }\n\n const values = Object.values(results.parsed.table.columns).filter(c => {\n return c.name === '_value'\n })\n\n const fields = (\n (results.parsed.table.columns['_field'].data as any) ?? []\n ).reduce((acc, curr, index) => {\n const type = values.find(d => {\n return d.data[index] !== undefined\n })?.type\n if (!acc[curr]) {\n acc[curr] = {}\n }\n acc[curr][type] = true\n return acc\n }, {})\n\n const fieldTypes = Object.keys(fields[threshold?.field] ?? {})\n let fieldType: 'not-number' | 'number' = 'not-number'\n if (fieldTypes.length === 1 && fieldTypes[0] === 'number') {\n fieldType = 'number'\n }\n\n threshold.fieldType = fieldType\n\n // We want to invalidate the previous type selection if the\n // fieldType is not a number, and the selected type is not equality based\n if (\n threshold.fieldType !== 'number' &&\n threshold.type !== 'equal' &&\n threshold.type !== 'not-equal'\n ) {\n threshold.type = 'equal'\n }\n\n update({errorThresholds})\n },\n [results.parsed.table.columns, errorThresholds, update]\n )\n\n const menuItems = fields.map(key => (\n setColumn(field, index)}\n selected={key === threshold?.field}\n title={key}\n >\n {key}\n \n ))\n\n const menu = onCollapse => (\n {menuItems}\n )\n\n const menuButton = (active, onClick) => (\n \n {threshold?.field || 'Select a field'}\n \n )\n return \n}\n\nexport default FieldColumnDropdown\n","// Libraries\nimport React, {FC, useCallback, useContext, useMemo} from 'react'\n\n// Components\nimport {ComponentSize, ComponentStatus, Dropdown} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {event} from 'src/cloud/utils/reporting'\nimport {\n COMMON_THRESHOLD_TYPES,\n EQUALITY_THRESHOLD_TYPES,\n ErrorThreshold,\n ThresholdFormat,\n} from 'src/flows/pipes/Visualization/threshold'\n\ntype Props = {\n threshold: ErrorThreshold\n index: number\n}\nconst FunctionDropdown: FC = ({threshold, index}) => {\n const {data, update} = useContext(PipeContext)\n\n const errorThresholds = useMemo(\n () => data?.errorThresholds ?? [],\n [data?.errorThresholds]\n )\n\n const setThresholdType = useCallback(\n (type, index) => {\n if (!COMMON_THRESHOLD_TYPES[type]) {\n return\n }\n\n event('Changed Error Threshold', {type})\n\n const threshold = errorThresholds.find((_, i) => index === i)\n\n if (!threshold) {\n return\n }\n\n threshold.type = type\n threshold.field = threshold.field || '_value'\n\n if (COMMON_THRESHOLD_TYPES[type].format === ThresholdFormat.Range) {\n threshold.min = 0\n threshold.max = 100\n delete threshold.value\n } else {\n threshold.value = 20\n }\n update({errorThresholds})\n },\n [errorThresholds, update]\n )\n\n const THRESHOLD_TYPES =\n threshold?.fieldType === 'number'\n ? COMMON_THRESHOLD_TYPES\n : EQUALITY_THRESHOLD_TYPES\n\n const menuItems = Object.entries(THRESHOLD_TYPES).map(([key, value]) => (\n setThresholdType(type, index)}\n selected={key === threshold?.type}\n title={value.name}\n >\n {value?.name}\n \n ))\n const menu = onCollapse => (\n {menuItems}\n )\n const menuButton = (active, onClick) => (\n \n {COMMON_THRESHOLD_TYPES[threshold?.type]?.name || 'Select a function'}\n \n )\n return \n}\n\nexport default FunctionDropdown\n","// Libraries\nimport React, {ChangeEvent, FC, useContext, useMemo} from 'react'\n\n// Components\nimport {\n ComponentSize,\n Input,\n InputType,\n FlexBox,\n FlexDirection,\n TextBlock,\n} from '@influxdata/clockface'\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {event} from 'src/cloud/utils/reporting'\nimport {\n COMMON_THRESHOLD_TYPES,\n ErrorThreshold,\n ThresholdFormat,\n} from 'src/flows/pipes/Visualization/threshold'\nimport './ErrorThresholds.scss'\n\ntype Props = {\n threshold: ErrorThreshold\n index: number\n}\n\nconst ThresholdEntryColumn: FC = ({threshold, index}) => {\n const {data, update} = useContext(PipeContext)\n\n const errorThresholds = useMemo(\n () => data?.errorThresholds ?? [],\n [data?.errorThresholds]\n )\n\n const updateMin = (event: ChangeEvent, index: number) => {\n const threshold = errorThresholds.find((_, i) => index === i)\n\n if (threshold) {\n threshold.min = Number(event.target.value)\n }\n\n update({errorThresholds})\n }\n\n const updateMax = (event: ChangeEvent, index: number) => {\n const threshold = errorThresholds.find((_, i) => index === i)\n\n if (threshold) {\n threshold.max = Number(event.target.value)\n }\n\n update({errorThresholds})\n }\n\n const updateValue = (\n changeEvent: ChangeEvent,\n index: number\n ) => {\n event('Alert Panel (Notebooks) - Threshold Value Entered')\n const threshold = errorThresholds.find((_, i) => index === i)\n if (!threshold) {\n return\n }\n\n threshold.value = changeEvent.target.value\n\n update({errorThresholds})\n }\n\n let body = (\n updateValue(event, index)}\n size={ComponentSize.Medium}\n />\n )\n\n if (\n COMMON_THRESHOLD_TYPES[threshold?.type]?.format === ThresholdFormat.Range\n ) {\n body = (\n <>\n updateMin(event, index)}\n size={ComponentSize.Medium}\n />\n \n updateMax(event, index)}\n size={ComponentSize.Medium}\n />\n \n )\n }\n\n return (\n \n {body}\n \n )\n}\n\nexport default ThresholdEntryColumn\n","import React, {FC, useEffect, useRef} from 'react'\nimport {InfluxColors} from '@influxdata/clockface'\nimport QRCode from 'qrcode.react'\n\ntype Props = {\n url: string\n}\n\nconst QRComponent: FC = ({url}) => {\n const ref = useRef(null)\n const [size, setSize] = React.useState(100)\n\n useEffect(() => {\n if (!ref?.current) {\n return\n }\n setSize(ref.current.getBoundingClientRect().width)\n }, [])\n\n return (\n
\n \n
\n )\n}\n\nexport default QRComponent\n","import View from './view'\nimport './style.scss'\nimport {parse} from 'src/languageSupport/languages/flux/lspUtils'\nimport {parseQuery} from 'src/shared/contexts/query'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\n\nimport {SUPPORTED_VISUALIZATIONS} from 'src/visualization'\n\nexport default register => {\n register({\n type: 'visualization',\n family: 'passThrough',\n component: View,\n button: 'Graph',\n initial: {\n properties: SUPPORTED_VISUALIZATIONS['xy'].initial,\n },\n visual: (data, query) => {\n if (!query) {\n return ''\n }\n\n try {\n const ast = isFlagEnabled('fastFlows')\n ? parseQuery(query)\n : parse(query)\n if (!ast.body.length) {\n return ''\n }\n } catch {\n return ''\n }\n\n if (data.properties.type === 'simple-table') {\n return `${query} |> limit(n: 100)`\n }\n\n if (\n data.properties.type === 'single-stat' ||\n data.properties.type === 'gauge'\n ) {\n return `${query} |> last()`\n }\n\n return query\n },\n })\n}\n","export enum ThresholdFormat {\n Value = 'value',\n Range = 'range',\n Deadman = 'deadman',\n}\n\nexport type Threshold = {\n value: number\n type: string\n field: string\n max?: number\n min?: number\n deadmanCheckValue?: string\n deadmanStopValue: string\n}\n\nexport interface ErrorThreshold extends Threshold {\n fieldType: string\n}\n\nexport const EQUALITY_THRESHOLD_TYPES = {\n equal: {\n name: 'equal to',\n format: ThresholdFormat.Value,\n condition: data => ` r[\"${data.field}\"] == ${data.value}`,\n },\n 'not-equal': {\n name: 'not equal to',\n format: ThresholdFormat.Value,\n condition: data => ` r[\"${data.field}\"] != ${data.value}`,\n },\n}\n\nexport const COMMON_THRESHOLD_TYPES = {\n ...EQUALITY_THRESHOLD_TYPES,\n greater: {\n name: 'greater than',\n format: ThresholdFormat.Value,\n condition: data => ` r[\"${data.field}\"] > ${data.value}`,\n },\n 'greater-equal': {\n name: 'greater than or equal to',\n format: ThresholdFormat.Value,\n condition: data => ` r[\"${data.field}\"] >= ${data.value}`,\n },\n less: {\n name: 'less than',\n format: ThresholdFormat.Value,\n condition: data => ` r[\"${data.field}\"] < ${data.value}`,\n },\n 'less-equal': {\n name: 'less than or equal to',\n format: ThresholdFormat.Value,\n condition: data => ` r[\"${data.field}\"] <= ${data.value}`,\n },\n between: {\n name: 'between',\n format: ThresholdFormat.Range,\n condition: data =>\n ` (r[\"${data.field}\"] > ${data.min} and r[\"${data.field}\"] < ${data.max})`,\n },\n 'not-between': {\n name: 'not between',\n format: ThresholdFormat.Range,\n condition: data =>\n ` (r[\"${data.field}\"] < ${data.min} or r[\"${data.field}\"] > ${data.max})`,\n },\n}\n\nexport const deadmanType = 'missing-for-longer-than'\n\nexport const THRESHOLD_TYPES = {\n ...COMMON_THRESHOLD_TYPES,\n [deadmanType]: {\n name: 'missing for longer than',\n format: ThresholdFormat.Deadman,\n condition: _ => ` r[\"dead\"]`,\n },\n}\n","// Libraries\nimport React, {FC, useCallback, useContext, useEffect, useMemo} from 'react'\nimport QRComponent from 'src/flows/pipes/Visualization/QRCode'\n\n// Components\nimport {\n AlignItems,\n ComponentSize,\n FlexBox,\n FlexDirection,\n Icon,\n IconFont,\n JustifyContent,\n} from '@influxdata/clockface'\nimport Controls from 'src/flows/pipes/Visualization/Controls'\n\n// Utilities\nimport {View} from 'src/visualization'\n\n// Types\nimport {RemoteDataState} from 'src/types'\nimport {Columns, PipeProp} from 'src/types/flows'\n\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {FlowQueryContext} from 'src/flows/context/flow.query'\nimport {SidebarContext} from 'src/flows/context/sidebar'\n\nimport {event} from 'src/cloud/utils/reporting'\nimport {downloadTextFile} from 'src/shared/utils/download'\n\n// Constants\nimport {UNPROCESSED_PANEL_TEXT} from 'src/flows'\nimport {LINE_COLORS_SOLID_WHITE} from 'src/shared/constants/graphColorPalettes'\nimport {downloadImage} from 'src/shared/utils/download'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\nimport ErrorBoundary from 'src/shared/components/ErrorBoundary'\n\n// Enable map background\nconst canvasOption = {\n useCORS: true,\n}\n\nconst downloadAsImage = (pipeID: string) => {\n const canvas = document.getElementById(pipeID)\n import('html2canvas').then((module: any) =>\n module.default(canvas as HTMLDivElement, canvasOption).then(result => {\n downloadImage(result.toDataURL(), 'visualization.png')\n })\n )\n}\n\nconst downloadAsPDF = (pipeID: string) => {\n const canvas = document.getElementById(pipeID)\n import('html2canvas').then((module: any) =>\n module.default(canvas as HTMLDivElement, canvasOption).then(result => {\n import('jspdf').then((jsPDF: any) => {\n const doc = new jsPDF.default({\n orientation: 'l',\n unit: 'pt',\n format: [result.width, result.height],\n })\n doc.addImage(\n result.toDataURL('image/png'),\n 'PNG',\n 0,\n 0,\n result.width,\n result.height\n )\n doc.save('visualization.pdf')\n })\n })\n )\n}\n\nconst Visualization: FC = ({Context}) => {\n const {id, data, range, loading, results} = useContext(PipeContext)\n const {basic, getPanelQueries} = useContext(FlowQueryContext)\n const {register} = useContext(SidebarContext)\n\n const dataExists = !!(results?.parsed?.table || []).length\n\n const download = () => {\n event('CSV Download Initiated')\n const query = getPanelQueries(id)\n basic(query?.source, query?.scope).promise.then(response => {\n if (response.type !== 'SUCCESS') {\n return\n }\n\n downloadTextFile(response.csv, 'influx.data', '.csv', 'text/csv')\n })\n }\n\n const loadingText = useMemo(() => {\n if (loading === RemoteDataState.Loading) {\n return 'Loading'\n }\n\n if (loading === RemoteDataState.NotStarted) {\n return UNPROCESSED_PANEL_TEXT\n }\n\n return 'No Data Returned'\n }, [loading])\n\n const getValueColumn = useCallback((columns: Columns) => {\n return Object.values(columns).filter(column => column.name === '_value')\n }, [])\n\n useEffect(() => {\n if (!id) {\n return\n }\n\n register(id, [\n {\n title: 'Visualization',\n actions: [\n {\n title: 'Download as CSV',\n disable: !dataExists,\n action: download,\n },\n {\n title: 'Download as Image',\n action: () => downloadAsImage(id),\n hidden: !isFlagEnabled('pdfImageDownload'),\n disable: !dataExists,\n },\n {\n title: 'Download as PDF',\n action: () => downloadAsPDF(id),\n hidden: !isFlagEnabled('pdfImageDownload'),\n disable: !dataExists,\n },\n ],\n },\n ])\n }, [id, data.properties, results.parsed, range])\n\n if (results.error) {\n return (\n }>\n
\n
\n \n
\n
{results.error}
\n
\n
\n )\n }\n\n if (!dataExists) {\n return (\n }>\n
\n
\n \n
\n
\n
{loadingText}
\n
\n
\n
\n )\n }\n\n if (data?.errorThresholds?.length > 0) {\n const fieldIndices = {}\n\n data?.errorThresholds.forEach(threshold => {\n fieldIndices[threshold.field] = {\n type: threshold.type,\n value: threshold.value,\n fieldType: threshold.fieldType,\n }\n if (threshold.min) {\n fieldIndices[threshold.field].min = threshold.min\n }\n if (threshold.max) {\n fieldIndices[threshold.field].max = threshold.max\n }\n })\n\n const {columns} = results.parsed.table\n\n let triggeredErrorThresholdMessage = ''\n const fields: any[] = columns['_field']?.data ?? []\n\n const values = getValueColumn(columns)\n\n const realValues = fields.map((_, index) =>\n values.reduce((acc, curr) => {\n if (curr.data[index] != null) {\n return curr.data[index]\n }\n return acc\n }, undefined)\n )\n\n for (let i = 0; i < fields.length - 1; i++) {\n const field = fields[i]\n if (fieldIndices[`${field}`]) {\n // find the value based on the indices\n const value = realValues[i]\n let thresholdValue = fieldIndices[`${field}`]?.value\n const fieldType = fieldIndices[`${field}`]?.fieldType\n\n if (fieldType === 'number') {\n thresholdValue = Number(thresholdValue)\n }\n\n const min = Number(fieldIndices[`${field}`].min)\n const max = Number(fieldIndices[`${field}`].max)\n const type = fieldIndices[`${field}`].type\n\n switch (type) {\n case 'between':\n if (value > min && value < max) {\n triggeredErrorThresholdMessage = `${field} is between ${min} and ${max}`\n }\n break\n case 'not-between':\n if (!(value > min && value < max)) {\n triggeredErrorThresholdMessage = `${field} is not between ${min} and ${max}`\n }\n break\n case 'not-equal':\n if (value !== thresholdValue) {\n triggeredErrorThresholdMessage = `${field} is not equal to ${thresholdValue}`\n }\n break\n case 'equal':\n if (value === thresholdValue) {\n triggeredErrorThresholdMessage = `${field} is equal to ${thresholdValue}`\n }\n break\n case 'less-equal':\n if (value <= thresholdValue) {\n triggeredErrorThresholdMessage = `${field} is less than or equal to ${thresholdValue}`\n }\n break\n case 'less':\n if (value < thresholdValue) {\n triggeredErrorThresholdMessage = `${field} is less than ${thresholdValue}`\n }\n break\n case 'greater-equal':\n if (value >= thresholdValue) {\n triggeredErrorThresholdMessage = `${field} is greater than or equal to ${thresholdValue}`\n }\n break\n case 'greater':\n if (value > thresholdValue) {\n triggeredErrorThresholdMessage = `${field} is greater than ${thresholdValue}`\n }\n break\n default:\n break\n }\n }\n\n if (triggeredErrorThresholdMessage) {\n break\n }\n }\n\n if (triggeredErrorThresholdMessage) {\n // show the QR code if it exists\n const url = new URL(\n `${window.location.origin}${window.location.pathname}?panel=${id}`\n ).toString()\n\n return (\n } resizes>\n \n
\n \n \n \n
\n \n \n
\n {triggeredErrorThresholdMessage}\n
\n \n \n \n \n
\n )\n }\n }\n\n return (\n } resizes>\n
\n
\n \n \n \n
\n
\n
\n )\n}\n\nexport default Visualization\n","import View from './view'\nimport './style.scss'\n\nexport default register => {\n register({\n type: 'youtube',\n family: 'test',\n priority: -1,\n featureFlag: 'flow-panel--youtube',\n button: 'Youtube',\n component: View,\n initial: {\n uri: 'nBHkIWAJitg',\n },\n })\n}\n","// Libraries\nimport React, {FC, useState, useContext, useCallback, useEffect} from 'react'\nimport {Input} from '@influxdata/clockface'\n\n// Components\nimport {PipeContext} from 'src/flows/context/pipe'\nimport {SidebarContext} from 'src/flows/context/sidebar'\n\n// Types\nimport {PipeProp} from 'src/types/flows'\n\nconst Youtube: FC = ({Context}) => {\n const {id, data, update} = useContext(PipeContext)\n const {register} = useContext(SidebarContext)\n const [isEditing, setIsEditing] = useState(false)\n const toggleEdit = useCallback(() => {\n setIsEditing(!isEditing)\n }, [setIsEditing, isEditing])\n\n const _update = evt => {\n update({uri: evt.target.value})\n }\n\n useEffect(() => {\n if (!id) {\n return\n }\n\n register(id, [\n {\n title: 'Controls',\n actions: [\n {\n title: 'Edit Youtube ID',\n action: toggleEdit,\n },\n ],\n },\n ])\n }, [id, toggleEdit])\n\n const showEditing = isEditing || !data.uri\n\n return (\n \n
\n {showEditing && (\n
\n \n \n
\n )}\n {!showEditing && (\n \n )}\n
\n
\n )\n}\n\nexport default Youtube\n","// Libraries\nimport React, {FC, useEffect} from 'react'\nimport {useDispatch, useSelector} from 'react-redux'\n\n// Components\nimport {Dropdown} from '@influxdata/clockface'\n\n// Actions\nimport {checkBucketLimits} from 'src/cloud/actions/limits'\nimport {showOverlay, dismissOverlay} from 'src/overlays/actions/overlays'\n\n// Utils\nimport {getBucketLimitStatus} from 'src/cloud/utils/limits'\n\n// Constants\nimport {CLOUD} from 'src/shared/constants'\n\n// Types\nimport {Bucket} from 'src/types'\n\ninterface Props {\n onUpdateBucket: (bucket: Bucket) => void\n testID: string\n}\n\nconst CreateBucketDropdownItem: FC = ({onUpdateBucket, testID}) => {\n const limitStatus = useSelector(getBucketLimitStatus)\n const dispatch = useDispatch()\n useEffect(() => {\n // Check bucket limits when component mounts\n dispatch(checkBucketLimits())\n }, [dispatch])\n\n const handleItemClick = (): void => {\n if (CLOUD && limitStatus === 'exceeded') {\n dispatch(showOverlay('asset-limit', {asset: 'Buckets'}, dismissOverlay))\n } else {\n dispatch(showOverlay('create-bucket', {onUpdateBucket}, dismissOverlay))\n }\n }\n\n return (\n \n + Create Bucket\n \n )\n}\n\nexport default CreateBucketDropdownItem\n","// Libraries\nimport React, {CSSProperties, FC, useContext, useEffect} from 'react'\n\n// Components\nimport {\n TechnoSpinner,\n ComponentSize,\n RemoteDataState,\n Dropdown,\n IconFont,\n} from '@influxdata/clockface'\nimport CreateBucketDropdownItem from 'src/flows/shared/BucketSelector/CreateBucketDropdownItem'\n\n// Contexts\nimport {BucketContext} from 'src/shared/contexts/buckets'\n\n// Types\nimport {Bucket} from 'src/types'\n\nconst REMAP_BUCKET_TYPES = {\n user: 'My Data',\n system: 'System Data',\n sample: 'Sample Data',\n}\n\ninterface Props {\n selected: Bucket\n onSelect: (bucket: Bucket) => void\n testID?: string\n style?: CSSProperties\n}\n\nconst BucketSelector: FC = ({\n selected,\n onSelect,\n testID = 'flow-bucket-selector',\n style = {},\n}) => {\n const {buckets, loading, refresh} = useContext(BucketContext)\n let buttonText = 'Loading buckets...'\n\n useEffect(() => {\n if (loading !== RemoteDataState.Done) {\n return\n }\n\n if (!selected || buckets.find(bucket => bucket.name === selected.name)) {\n return\n }\n\n onSelect(null)\n }, [buckets, onSelect])\n\n const addBucket = (bucket: Bucket) => {\n refresh()\n onSelect(bucket)\n }\n\n let menuItems = (\n \n \n \n )\n\n if (loading === RemoteDataState.Done && buckets.length) {\n const body = Object.entries(\n buckets.reduce((acc, curr) => {\n if (!acc[curr.type]) {\n acc[curr.type] = []\n }\n\n acc[curr.type].push(curr)\n return acc\n }, {}) as Record\n ).map(([k, v]) => {\n const items = v.map(bucket => (\n \n {bucket.name}\n \n ))\n\n let name = k\n\n if (REMAP_BUCKET_TYPES.hasOwnProperty(k)) {\n name = REMAP_BUCKET_TYPES[k]\n }\n\n return (\n \n \n {items}\n \n )\n })\n\n menuItems = (\n <>\n \n \n {body}\n \n )\n }\n\n if (loading === RemoteDataState.Done && !selected?.name) {\n buttonText = 'Choose a bucket'\n } else if (loading === RemoteDataState.Done && selected?.name) {\n buttonText = selected.name\n }\n\n const button = (active, onClick) => (\n \n {buttonText}\n \n )\n\n const menu = onCollapse => (\n {menuItems}\n )\n\n return \n}\n\nexport default BucketSelector\n","export interface Template {\n type: string // a unique string that identifies a visualization\n init: (...args: string[]) => any // returns a flow state that will pass the hydrate function in src/flows/context/flow.list.tsx\n callback?: (...args: string[]) => any // optional callback func to return the newly created notebook id\n}\n\ninterface Templates {\n [type: string]: Template\n}\n\nexport const TEMPLATES: Templates = {}\n\nconst templateDefintionContext = require.context('./types', true, /\\.(ts|tsx)$/)\ntemplateDefintionContext.keys().forEach(async templateDefinitionIndexFile => {\n const templateDefinitionModule = await templateDefintionContext(\n templateDefinitionIndexFile\n )\n\n templateDefinitionModule.default((def: Template) => {\n TEMPLATES[def.type] = def\n })\n})\n","import {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {AUTOREFRESH_DEFAULT} from 'src/shared/constants'\n\nexport default register =>\n register({\n type: 'blank',\n init: () =>\n Promise.resolve({\n spec: {\n readOnly: false,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n pipes: [],\n },\n }),\n })\n","import {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {AUTOREFRESH_DEFAULT} from 'src/shared/constants'\nimport {PIPE_DEFINITIONS} from 'src/flows'\nimport {getBucket, getBuckets, Buckets} from 'src/client'\n\nexport default register =>\n register({\n type: 'bucket',\n init: (name: string, bucketID: string | undefined) =>\n getBucket({bucketID})\n .then(res => {\n if (res.status == 200) {\n return Promise.resolve({\n ...res,\n data: {buckets: [res.data]} as Buckets,\n })\n }\n return getBuckets({query: {name}})\n })\n .then(res => {\n // handle both get request payloads\n const data = (res.data as Buckets).buckets\n const name =\n res.status == 200\n ? `Explore the ${data[0].name} bucket`\n : `Select a bucket`\n const buckets = res.status == 200 ? data : []\n return Promise.resolve({\n name,\n spec: {\n readOnly: false,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n pipes: [\n {\n type: 'queryBuilder',\n title: 'Build a Query',\n visible: true,\n ...JSON.parse(\n JSON.stringify(PIPE_DEFINITIONS['queryBuilder'].initial)\n ),\n buckets,\n },\n {\n title: 'Validate the Data',\n visible: true,\n type: 'table',\n },\n {\n title: 'Visualize the Result',\n visible: true,\n type: 'visualization',\n ...JSON.parse(\n JSON.stringify(PIPE_DEFINITIONS['visualization'].initial)\n ),\n },\n ],\n },\n })\n }),\n })\n","import {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {AUTOREFRESH_DEFAULT} from 'src/shared/constants'\n\nexport default register =>\n register({\n type: 'dashboard',\n init: id =>\n fetch(`/api/v2/dashboards/${id}`)\n .then(res => res.json())\n .then(res => {\n return Promise.all(\n res.cells.map(c => {\n return fetch(c.links.view)\n .then(res => res.json())\n .then(res => {\n if (res.properties.type === 'markdown') {\n return [\n {\n title: 'Note',\n visible: true,\n type: 'markdown',\n text: res.properties.note,\n mode: 'preview',\n layout: {\n x: c.x,\n y: c.y,\n w: c.w,\n h: c.h,\n },\n },\n ]\n }\n\n const queries = res.properties.queries\n delete res.properties.queries\n\n return [\n {\n activeQuery: 0,\n queries,\n type: 'rawFluxEditor',\n title: `${res.name} - Query`,\n visible: true,\n },\n {\n title: res.name,\n visible: true,\n type: 'visualization',\n properties: res.properties,\n layout: {\n x: c.x,\n y: c.y,\n w: c.w,\n h: c.h,\n },\n },\n ]\n })\n })\n ).then(pipes => {\n const out = {\n name: res.name,\n spec: {\n readOnly: true,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n pipes: pipes.reduce((acc: any[], curr: any[]) => {\n return acc.concat(curr)\n }, []),\n },\n }\n\n return out\n })\n\n return res\n }),\n })\n","import {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {AUTOREFRESH_DEFAULT} from 'src/shared/constants'\nimport {PIPE_DEFINITIONS} from 'src/flows'\n\nexport default register =>\n register({\n type: 'default',\n init: () =>\n Promise.resolve({\n spec: {\n readOnly: false,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n pipes: [\n {\n title: 'Build a Query',\n visible: true,\n type: 'queryBuilder',\n ...JSON.parse(\n JSON.stringify(PIPE_DEFINITIONS['queryBuilder'].initial)\n ),\n },\n {\n title: 'Validate the Data',\n visible: true,\n type: 'table',\n },\n {\n title: 'Visualize the Result',\n visible: true,\n type: 'visualization',\n ...JSON.parse(\n JSON.stringify(PIPE_DEFINITIONS['visualization'].initial)\n ),\n },\n ],\n },\n }),\n })\n","export default register =>\n register({\n type: 'downsample',\n })\n","export default register =>\n register({\n type: 'id',\n init: id => fetch(`/api/v2private/notebooks/${id}`).then(res => res.json()),\n })\n","import {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {AUTOREFRESH_DEFAULT} from 'src/shared/constants'\n\nexport default register =>\n register({\n type: 'flux',\n init: () =>\n Promise.resolve({\n spec: {\n readOnly: false,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n pipes: [\n {\n activeQuery: 0,\n queries: [\n {\n text: '// Uncomment the following line to continue building from the previous cell\\n// __PREVIOUS_RESULT__\\n',\n editMode: 'advanced',\n builderConfig: {\n buckets: [],\n tags: [],\n functions: [],\n },\n },\n ],\n type: 'rawFluxEditor',\n title: 'Query to Run',\n visible: true,\n },\n {\n title: 'Validate the Data',\n visible: true,\n type: 'table',\n },\n ],\n },\n }),\n })\n","import {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {AUTOREFRESH_DEFAULT} from 'src/shared/constants'\n\nexport default register =>\n register({\n type: 'intro',\n init: () =>\n Promise.resolve({\n name: 'Welcome to Notebooks',\n spec: {\n readOnly: false,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n pipes: [\n {\n title: 'Welcome',\n visible: true,\n type: 'youtube',\n uri: 'Rs16uhxK0h8',\n },\n ],\n },\n }),\n })\n","import {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {AUTOREFRESH_DEFAULT} from 'src/shared/constants'\nimport {PIPE_DEFINITIONS} from 'src/flows'\n\nexport default register =>\n register({\n type: 'notification',\n init: () =>\n Promise.resolve({\n spec: {\n readOnly: false,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n pipes: [\n {\n title: 'Build a Query',\n visible: true,\n type: 'queryBuilder',\n ...JSON.parse(\n JSON.stringify(PIPE_DEFINITIONS['queryBuilder'].initial)\n ),\n },\n {\n title: 'Validate the Data',\n visible: true,\n type: 'table',\n },\n {\n title: 'Visualize the Result',\n visible: true,\n type: 'visualization',\n ...JSON.parse(\n JSON.stringify(PIPE_DEFINITIONS['visualization'].initial)\n ),\n },\n {\n type: 'notification',\n visible: true,\n title: 'New Alert',\n ...JSON.parse(\n JSON.stringify(PIPE_DEFINITIONS['notification'].initial)\n ),\n },\n ],\n },\n }),\n })\n","export default register =>\n register({\n type: 'share',\n init: accessID =>\n fetch(`/api/share/${accessID}`)\n .then(res => res.json())\n .then(res => {\n delete res.id\n res.spec.pipes.forEach(p => delete p.id)\n\n return res\n }),\n })\n","import {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {AUTOREFRESH_DEFAULT} from 'src/shared/constants'\nimport {PIPE_DEFINITIONS} from 'src/flows'\nimport {getBuckets} from 'src/client'\nimport {getByIDAPI, updateAPI} from 'src/writeData/subscriptions/context/api'\nimport {Subscription} from 'src/types'\n\nconst getSubscriptionMeasurementValues = (sub: Subscription): string[] => {\n if (sub.dataFormat === 'json') {\n return sub.jsonMeasurementKey.name ? [sub.jsonMeasurementKey.name] : []\n } else if (sub.dataFormat === 'string') {\n return sub.stringMeasurement.name ? [sub.stringMeasurement.name] : []\n } else {\n return []\n }\n}\n\nexport default register =>\n register({\n type: 'subscription',\n callback: (subscriptionID: string, notebookID: string) =>\n updateAPI({id: subscriptionID, data: {notebookID}}),\n init: async (subscriptionID: string) => {\n let sub\n let buckets\n try {\n sub = await getByIDAPI({id: subscriptionID})\n const bucketsResp = await getBuckets({query: {orgID: sub.orgID}})\n buckets = bucketsResp.status === 200 ? bucketsResp.data.buckets : []\n } catch {\n sub = {}\n buckets = []\n }\n const name = `${sub.name} Subscription`\n return {\n name,\n spec: {\n readOnly: false,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n pipes: [\n {\n type: 'queryBuilder',\n title: `Query ${sub.bucket} Bucket`,\n visible: true,\n ...JSON.parse(\n JSON.stringify(PIPE_DEFINITIONS['queryBuilder'].initial)\n ),\n buckets: buckets.filter(a => a.name === sub.bucket),\n tags: [\n {\n key: '_measurement',\n values: getSubscriptionMeasurementValues(sub),\n aggregateFunctionType: 'filter',\n },\n ],\n },\n {\n title: `Subscription ${sub.name} Data`,\n visible: true,\n type: 'table',\n },\n {\n type: 'queryBuilder',\n title: 'Query _monitoring Bucket',\n visible: true,\n ...JSON.parse(\n JSON.stringify(PIPE_DEFINITIONS['queryBuilder'].initial)\n ),\n buckets: buckets.filter(a => a.name === '_monitoring'),\n tags: [\n {\n key: '_measurement',\n values: ['subscriptions'],\n aggregateFunctionType: 'filter',\n },\n ],\n },\n {\n title: 'Subscriptions Error Data',\n visible: true,\n type: 'table',\n },\n ],\n },\n }\n },\n })\n","import {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges'\nimport {AUTOREFRESH_DEFAULT} from 'src/shared/constants'\nimport {\n parse,\n format_from_js_file,\n} from 'src/languageSupport/languages/flux/lspUtils'\nimport {remove} from 'src/shared/contexts/query'\n\nexport default register =>\n register({\n type: 'task',\n init: id => {\n if (!id) {\n return Promise.resolve({\n spec: {\n readOnly: false,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n pipes: [\n {\n buckets: [],\n tags: [\n {\n key: '_measurement',\n values: [],\n aggregateFunctionType: 'filter',\n },\n ],\n type: 'queryBuilder',\n title: 'Query to Run',\n visible: true,\n },\n {\n title: 'Validate the Data',\n visible: true,\n type: 'table',\n },\n {\n type: 'schedule',\n title: 'Schedule as a Task',\n visible: true,\n },\n ],\n },\n })\n }\n\n return fetch(`/api/v2/tasks/${id}`)\n .then(resp => resp.json())\n .then(resp => {\n const ast = parse(resp.flux)\n const taskParams = remove(\n ast,\n node =>\n node.type === 'OptionStatement' &&\n node.assignment.id.name === 'task'\n )\n .reverse()\n .reduce((acc, curr) => {\n // eslint-disable-next-line no-extra-semi\n ;(curr.assignment?.init?.properties || []).reduce(\n (_acc, _curr) => {\n if (_curr.key?.name && _curr.value?.location?.source) {\n _acc[_curr.key.name] = _curr.value.location.source\n }\n\n return _acc\n },\n acc\n )\n\n return acc\n }, {})\n\n return {\n name: resp.name,\n spec: {\n readOnly: false,\n range: DEFAULT_TIME_RANGE,\n refresh: AUTOREFRESH_DEFAULT,\n pipes: [\n {\n activeQuery: 0,\n queries: [\n {\n text: format_from_js_file(ast),\n editMode: 'advanced',\n builderConfig: {\n buckets: [],\n tags: [],\n functions: [],\n },\n },\n ],\n type: 'rawFluxEditor',\n title: 'Query to Run',\n visible: true,\n },\n {\n title: 'Validate the Data',\n visible: true,\n type: 'table',\n },\n {\n type: 'schedule',\n title: 'Schedule as a Task',\n visible: true,\n interval:\n taskParams.every ||\n taskParams.cron.replace(/(^\")|(\"$)/g, ''),\n offset: taskParams.offset,\n task: {\n id,\n name: resp.name,\n flux: resp.flux,\n },\n },\n ],\n },\n }\n })\n },\n })\n","export default register =>\n register({\n type: 'tools',\n init: (id, token) => {\n const headers = {\n 'Content-Type': 'application/json',\n 'Accept-Encoding': 'gzip',\n Authorization: `Token ${token}`,\n }\n\n return fetch(\n `https://influxdb.aws.influxdata.io/api/v2private/notebooks/${id}`,\n {\n method: 'GET',\n headers,\n }\n )\n .then(res => res.json())\n .then(res => {\n delete res.id\n delete res.orgID\n res.spec.pipes.unshift({\n type: 'region',\n region: 'https://influxdb.aws.influxdata.io',\n token,\n source: 'custom',\n visible: true,\n title: 'Tools Cluster',\n })\n\n return res\n })\n },\n })\n","import {Account} from 'src/client/unityRoutes'\nimport {CurrentIdentity} from 'src/identity/apis/auth'\nimport {CurrentOrg} from 'src/identity/apis/org'\nimport {BillingProvider, RemoteDataState} from 'src/types'\n\nexport const SET_QUARTZ_IDENTITY = 'SET_QUARTZ_IDENTITY'\nexport const SET_QUARTZ_IDENTITY_STATUS = 'SET_QUARTZ_IDENTITY_STATUS'\nexport const SET_CURRENT_BILLING_PROVIDER = 'SET_CURRENT_BILLING_PROVIDER'\nexport const SET_CURRENT_BILLING_PROVIDER_STATUS =\n 'SET_CURRENT_BILLING_PROVIDER_STATUS'\nexport const SET_CURRENT_ORG_DETAILS = 'SET_CURRENT_ORG_DETAILS'\nexport const SET_CURRENT_ORG_DETAILS_STATUS = 'SET_CURRENT_ORG_DETAILS_STATUS'\nexport const SET_CURRENT_IDENTITY_ACCOUNT_NAME =\n 'SET_CURRENT_IDENTITY_ACCOUNT_NAME'\n\nexport type Actions =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\nexport const setQuartzIdentity = (identity: CurrentIdentity) =>\n ({\n type: SET_QUARTZ_IDENTITY,\n identity: identity,\n } as const)\n\nexport const setQuartzIdentityStatus = (status: RemoteDataState) =>\n ({\n type: SET_QUARTZ_IDENTITY_STATUS,\n status,\n } as const)\n\nexport const setCurrentBillingProvider = (billingProvider: BillingProvider) =>\n ({\n type: SET_CURRENT_BILLING_PROVIDER,\n billingProvider: billingProvider,\n } as const)\n\nexport const setCurrentBillingProviderStatus = (status: RemoteDataState) =>\n ({\n type: SET_CURRENT_BILLING_PROVIDER_STATUS,\n status,\n } as const)\n\nexport const setCurrentOrgDetails = (orgDetails: CurrentOrg) =>\n ({\n type: SET_CURRENT_ORG_DETAILS,\n org: orgDetails,\n } as const)\n\nexport const setCurrentOrgDetailsStatus = (status: RemoteDataState) =>\n ({\n type: SET_CURRENT_ORG_DETAILS_STATUS,\n status,\n } as const)\n\nexport const setCurrentIdentityAccountName = (account: Account) =>\n ({\n type: SET_CURRENT_IDENTITY_ACCOUNT_NAME,\n account,\n } as const)\n","// Actions\nimport {\n setCurrentOrgDetails,\n setCurrentBillingProvider,\n setQuartzIdentity,\n setQuartzIdentityStatus,\n setCurrentBillingProviderStatus,\n setCurrentOrgDetailsStatus,\n} from 'src/identity/actions/creators'\n\n// Selectors\nimport {selectCurrentIdentity} from 'src/identity/selectors'\n\n// Types\nimport {RemoteDataState, GetState, NotificationAction} from 'src/types'\nimport {Actions as IdentityActions} from 'src/identity/actions/creators'\nimport {Dispatch} from 'redux'\n\ntype ActionTypes = IdentityActions | NotificationAction\n\n// Utilities\nimport {fetchQuartzIdentity} from 'src/identity/apis/auth'\nimport {fetchAccountDetails} from 'src/identity/apis/account'\nimport {fetchOrgDetails} from 'src/identity/apis/org'\n\n// Error Reporting\nimport {reportErrorThroughHoneyBadger} from 'src/shared/utils/errors'\n\n// This function, which lets the caller handle the error\n// is used by the authentication flow in the top of the app\nexport const getQuartzIdentityThunkNoErrorHandling =\n () => async (dispatch: Dispatch) => {\n dispatch(setQuartzIdentityStatus(RemoteDataState.Loading))\n\n const quartzIdentity = await fetchQuartzIdentity()\n\n dispatch(setQuartzIdentity(quartzIdentity))\n dispatch(setQuartzIdentityStatus(RemoteDataState.Done))\n }\n\nexport const getQuartzIdentityThunk =\n () => async (dispatch: Dispatch, getState: GetState) => {\n try {\n const identityThunk = getQuartzIdentityThunkNoErrorHandling()\n await identityThunk(dispatch)\n } catch (err) {\n dispatch(setQuartzIdentityStatus(RemoteDataState.Error))\n\n reportErrorThroughHoneyBadger(err, {\n name: 'Failed to fetch /quartz/identity',\n context: {state: getState()},\n })\n }\n }\n\nexport const getBillingProviderThunk =\n () => async (dispatch: Dispatch, getState: GetState) => {\n try {\n dispatch(setCurrentBillingProviderStatus(RemoteDataState.Loading))\n\n const currentState = getState()\n const accountId = currentState.identity.currentIdentity.account.id\n\n const accountDetails = await fetchAccountDetails(accountId)\n\n dispatch(setCurrentBillingProvider(accountDetails.billingProvider))\n dispatch(setCurrentBillingProviderStatus(RemoteDataState.Done))\n } catch (err) {\n dispatch(setCurrentBillingProviderStatus(RemoteDataState.Error))\n\n reportErrorThroughHoneyBadger(err, {\n name: 'Failed to fetch /quartz/accounts/',\n context: {state: getState()},\n })\n }\n }\n\nexport const getCurrentOrgDetailsThunk =\n (orgId: string) => async (dispatch: any, getState: GetState) => {\n try {\n dispatch(setCurrentOrgDetailsStatus(RemoteDataState.Loading))\n\n const orgDetails = await fetchOrgDetails(orgId)\n\n dispatch(setCurrentOrgDetails(orgDetails))\n dispatch(setCurrentOrgDetailsStatus(RemoteDataState.Done))\n\n return orgDetails\n } catch (err) {\n dispatch(setCurrentOrgDetailsStatus(RemoteDataState.Error))\n\n const state = getState()\n const identity = selectCurrentIdentity(state)\n\n reportErrorThroughHoneyBadger(err, {\n name: 'Failed to fetch /quartz/orgs/:orgId',\n context: {identity},\n })\n throw new Error(err)\n }\n }\n","import {OrgCreationAllowance} from 'src/identity/apis/org'\nimport {RemoteDataState} from 'src/types'\n\nexport const SET_ORG_CREATION_ALLOWANCE = 'SET_ORG_CREATION_ALLOWANCE'\nexport const SET_ORG_CREATION_ALLOWANCE_STATUS =\n 'SET_ORG_CREATION_ALLOWANCE_STATUS'\n\nexport type OrgCreationAllowanceActions =\n | ReturnType\n | ReturnType\n\nexport const setOrgCreationAllowance = (allowances: OrgCreationAllowance) =>\n ({\n type: SET_ORG_CREATION_ALLOWANCE,\n allowances: allowances,\n } as const)\n\nexport const setOrgCreationAllowanceStatus = (loadingStatus: RemoteDataState) =>\n ({\n type: SET_ORG_CREATION_ALLOWANCE_STATUS,\n loadingStatus: loadingStatus,\n } as const)\n","// APIs\nimport {\n getAccount,\n getAccounts,\n patchAccount,\n putAccountsDefault,\n Account,\n IdentityAccount,\n UserAccount,\n} from 'src/client/unityRoutes'\n\n// Types\nimport {\n GenericError,\n ServerError,\n UnauthorizedError,\n UnprocessableEntityError,\n} from 'src/types/error'\n\nexport interface CurrentAccount extends IdentityAccount {\n billingProvider?: 'zuora' | 'aws' | 'gcm' | 'azure'\n isDeletable?: boolean\n}\n\n// get a list of the user's accounts\nexport const fetchUserAccounts = async (): Promise => {\n const response = await getAccounts({})\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n if (!Array.isArray(response.data)) {\n throw new GenericError('No account found')\n }\n\n return response.data\n}\n\n// fetch more details about one of the user's accounts\nexport const fetchAccountDetails = async (\n accountId: string | number\n): Promise => {\n const accountIdString = accountId.toString()\n\n const response = await getAccount({\n accountId: accountIdString,\n })\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n\n return response.data\n}\n\n// change the user's default account\nexport const updateDefaultQuartzAccount = async (\n accountId: number\n): Promise => {\n const response = await putAccountsDefault({\n data: {\n id: accountId,\n },\n })\n\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n\n // success status code is 204; no response body expected.\n}\n\n// rename the user's current account\nexport const updateUserAccount = async (accountId, name) => {\n const response = await patchAccount({accountId, data: {name}})\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n if (response.status === 422) {\n throw new UnprocessableEntityError(response.data.message)\n }\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n\n return response.data\n}\n","// APIs\nimport {getIdentity, Identity, IdentityUser} from 'src/client/unityRoutes'\nimport {getMe as getMeIdpe} from 'src/client'\n\n// Constants\nimport {CLOUD} from 'src/shared/constants'\n\n// Types\nimport {RemoteDataState} from 'src/types'\nimport {OrgCreationAllowanceState} from 'src/identity/allowances/reducers'\nimport {Error as IdpeError, UserResponse as UserResponseIdpe} from 'src/client'\nimport {ServerError, UnauthorizedError} from 'src/types/error'\nimport {CurrentAccount} from 'src/identity/apis/account'\nimport {CurrentOrg, QuartzOrganizations} from 'src/identity/apis/org'\n\nexport interface IdentityState {\n allowances: {\n orgCreation: OrgCreationAllowanceState\n }\n currentIdentity: CurrentIdentity\n quartzOrganizations: QuartzOrganizations\n}\nexport interface IdentityLoadingStatus {\n identityStatus: RemoteDataState\n billingStatus: RemoteDataState\n orgDetailsStatus: RemoteDataState\n}\n\nexport interface CurrentIdentity {\n user: IdentityUser\n account: CurrentAccount\n org: CurrentOrg\n loadingStatus?: IdentityLoadingStatus\n}\n\n// fetch the user's identity either using IDPE (in OSS), or quartz (in Cloud)\nexport const fetchIdentity = async () => {\n if (!CLOUD) {\n return fetchLegacyIdentity()\n }\n\n return fetchQuartzIdentity()\n}\n\n// fetch user identity from /quartz/identity.\nexport const fetchQuartzIdentity = async (): Promise => {\n const response = await getIdentity({})\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n\n const user = response.data\n return user\n}\n\n// fetch user identity from IDPE /me (used in OSS and environments without Quartz)\nexport const fetchLegacyIdentity = async (): Promise => {\n const response = await getMeIdpe({})\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n\n if (response.status === 500) {\n const error: IdpeError = response.data\n throw new ServerError(error.message)\n }\n\n const user = response.data\n return user\n}\n","// Libraries\nimport {omit} from 'lodash'\n\n// API Calls\nimport {\n deleteOrg,\n getAccounts,\n getAccountsOrgs,\n getAllowancesOrgsCreate,\n getClusters,\n getOrg,\n postOrg,\n putAccountsOrgsDefault,\n state,\n Organization,\n OrganizationCreateRequest,\n OrganizationSummaries,\n} from 'src/client/unityRoutes'\n\n// Types\nimport {RemoteDataState} from 'src/types'\nimport {\n ForbiddenError,\n GenericError,\n NotFoundError,\n OrgNameConflictError,\n ServerError,\n UnauthorizedError,\n UnprocessableEntityError,\n} from 'src/types/error'\n\nexport interface CreatedOrg extends Omit {\n provisioningStatus?: state\n}\n\nexport interface CurrentOrg {\n id: string\n clusterHost: string\n name?: string\n creationDate?: string\n description?: string\n provider?: string\n regionCode?: string\n regionName?: string\n isSuspendable?: boolean\n}\n\nexport interface OrgCreationAllowance {\n allowed: boolean\n availableUpgrade: 'contract' | 'none' | 'pay_as_you_go'\n}\n\nexport interface QuartzOrganization\n extends Omit {\n provisioningStatus?: state\n}\n\nexport type QuartzOrganizations = {\n orgs: QuartzOrganization[]\n status: RemoteDataState\n}\n\n// create a new organization\nexport const createNewOrg = async (\n organizationCreateRequest: OrganizationCreateRequest\n): Promise => {\n const {orgName, provider, region} = organizationCreateRequest\n\n const response = await postOrg({\n data: {\n orgName,\n provider,\n region,\n },\n })\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n\n if (response.status === 403) {\n throw new ForbiddenError(response.data.message)\n }\n\n if (response.status === 409) {\n throw new OrgNameConflictError(response.data.message)\n }\n\n if (response.status === 422) {\n throw new UnprocessableEntityError(response.data.message)\n }\n\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n\n // Rename the quartz 'state' property to 'provisioningStatus' for clarity.\n const newOrg = response.data\n const provisioningStatus = newOrg.state\n const formattedNewOrg = {...omit(newOrg, ['state']), provisioningStatus}\n\n return formattedNewOrg\n}\n\nexport const deleteOrganization = async (orgId: string) => {\n const response = await deleteOrg({orgId})\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n\n if (response.status === 403) {\n throw new ForbiddenError(response.data.message)\n }\n\n if (response.status === 404) {\n throw new NotFoundError(response.data.message)\n }\n\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n\n return response.data\n}\n\n// fetch the list of clusters in which an org can be created\nexport const fetchClusterList = async () => {\n const response = await getClusters({})\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n\n return response.data\n}\n\nexport const fetchDefaultAccountDefaultOrg = async (): Promise<\n OrganizationSummaries[number]\n> => {\n const response = await getAccounts({})\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n const accounts = response.data\n\n if (Array.isArray(accounts) && accounts.length) {\n // if no default Account, reference the 0-indexed account\n const defaultAccount =\n accounts.find(account => account.isDefault) ?? accounts[0]\n const quartzOrg = await fetchOrgsByAccountID(defaultAccount.id)\n\n const defaultQuartzOrg =\n quartzOrg.find(org => org.isDefault) ?? quartzOrg[0]\n\n return defaultQuartzOrg\n }\n throw new GenericError('No accounts found')\n}\n\n// fetch data regarding whether the user can create new orgs, and associated upgrade options.\nexport const fetchOrgCreationAllowance =\n async (): Promise => {\n const response = await getAllowancesOrgsCreate({})\n\n if (response.status !== 200) {\n throw new GenericError(\n 'Failed to determine whether this user can create a new organization.'\n )\n }\n\n return response.data\n }\n\n// fetch the list of organizations associated with a given account ID\nexport const fetchOrgsByAccountID = async (\n accountNum: number\n): Promise => {\n const accountId = accountNum.toString()\n\n const response = await getAccountsOrgs({\n accountId,\n })\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n\n // 'state' property in quartz refers to org provisioning status.\n const orgs = response.data.map(org => {\n const provisioningStatus = org.state\n const formattedOrg = {...omit(org, ['state']), provisioningStatus}\n return formattedOrg\n })\n\n return orgs\n}\n\n// fetch details about one of the user's organizations\nexport const fetchOrgDetails = async (orgId: string): Promise => {\n const response = await getOrg({orgId})\n\n if (response.status === 401) {\n throw new UnauthorizedError(response.data.message)\n }\n\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n\n const orgDetails = response.data\n return orgDetails\n}\n\n// update the default org for a given account\nexport const updateDefaultOrgByAccountID = async ({\n accountNum,\n orgId,\n}): Promise => {\n const accountId = accountNum.toString()\n\n const response = await putAccountsOrgsDefault({\n accountId,\n data: {\n id: orgId,\n },\n })\n\n if (response.status === 404) {\n throw new NotFoundError(response.data.message)\n }\n\n if (response.status === 422) {\n throw new UnprocessableEntityError(response.data.message)\n }\n\n if (response.status === 500) {\n throw new ServerError(response.data.message)\n }\n\n // success status code is 204; no response body expected.\n}\n","// Types\nimport {QuartzOrganization} from 'src/identity/apis/org'\nimport {UserAccount} from 'src/client/unityRoutes'\n\nexport const emptyAccount: UserAccount = {\n id: 0,\n name: '',\n isActive: false,\n isDefault: false,\n}\n\nexport const emptyOrg: QuartzOrganization = {\n id: '',\n name: '',\n isActive: false,\n isDefault: false,\n provider: '',\n regionCode: '',\n regionName: '',\n provisioningStatus: 'provisioned',\n}\n","import {OrganizationSummaries} from 'src/client/unityRoutes'\nimport {RemoteDataState} from 'src/types'\n\nexport const SET_QUARTZ_ORGANIZATIONS = 'SET_QUARTZ_ORGANIZATIONS'\nexport const SET_QUARTZ_ORGANIZATIONS_STATUS = 'SET_QUARTZ_ORGANIZATIONS_STATUS'\nexport const SET_QUARTZ_DEFAULT_ORG = 'SET_QUARTZ_DEFAULT_ORG'\n\nexport type Actions =\n | ReturnType\n | ReturnType\n | ReturnType\n\nexport const setQuartzOrganizations = (\n quartzOrganizations: OrganizationSummaries\n) =>\n ({\n type: SET_QUARTZ_ORGANIZATIONS,\n quartzOrganizations: quartzOrganizations,\n } as const)\n\nexport const setQuartzOrganizationsStatus = (status: RemoteDataState) =>\n ({\n type: SET_QUARTZ_ORGANIZATIONS_STATUS,\n status: status,\n } as const)\n\nexport const setQuartzDefaultOrg = (newDefaultOrgId: string) =>\n ({\n type: SET_QUARTZ_DEFAULT_ORG,\n newDefaultOrgId: newDefaultOrgId,\n } as const)\n","// Types\nimport {AppState} from 'src/types'\nimport {RemoteDataState} from '@influxdata/clockface'\n\nexport const selectCurrentAccount = (\n state: AppState\n): AppState['identity']['currentIdentity']['account'] => {\n return state.identity.currentIdentity.account\n}\n\nexport const selectCurrentAccountId = (\n state: AppState\n): AppState['identity']['currentIdentity']['account']['id'] => {\n return state.identity.currentIdentity.account.id\n}\n\nexport const selectCurrentAccountName = (\n state: AppState\n): AppState['identity']['currentIdentity']['account']['name'] => {\n return state.identity.currentIdentity.account.name\n}\n\nexport const selectCurrentAccountType = (\n state: AppState\n): AppState['identity']['currentIdentity']['account']['type'] => {\n return state.identity.currentIdentity.account.type\n}\n\nexport const selectCurrentIdentity = (\n state: AppState\n): AppState['identity']['currentIdentity'] => {\n return state.identity.currentIdentity\n}\n\nexport const selectCurrentOrg = (\n state: AppState\n): AppState['identity']['currentIdentity']['org'] => {\n return state.identity.currentIdentity.org\n}\n\nexport const selectCurrentOrgId = (\n state: AppState\n): AppState['identity']['currentIdentity']['org']['id'] => {\n return state.identity.currentIdentity.org.id\n}\n\nexport const selectOperatorRole = (\n state: AppState\n): AppState['identity']['currentIdentity']['user']['operatorRole'] => {\n return state.identity.currentIdentity.user.operatorRole\n}\n\nexport const selectOrgCreationAllowance = (\n state: AppState\n): AppState['identity']['allowances']['orgCreation']['allowed'] => {\n return state.identity.allowances.orgCreation.allowed\n}\n\nexport const selectOrgCreationAllowanceStatus = (\n state: AppState\n): RemoteDataState => state.identity.allowances.orgCreation.loadingStatus\n\nexport const selectOrgCreationAvailableUpgrade = (\n state: AppState\n): AppState['identity']['allowances']['orgCreation']['availableUpgrade'] => {\n return state.identity.allowances.orgCreation.availableUpgrade\n}\n\nexport const selectOrgSuspendable = (\n state: AppState\n): AppState['identity']['currentIdentity']['org']['isSuspendable'] => {\n return state.identity.currentIdentity.org.isSuspendable\n}\n\nexport const selectQuartzActiveOrgs = (\n state: AppState\n): AppState['identity']['quartzOrganizations']['orgs'] => {\n return state.identity.quartzOrganizations.orgs.filter(\n org => !org.provisioningStatus || org.provisioningStatus === 'provisioned'\n )\n}\n\nexport const selectQuartzIdentity = (state: AppState): AppState['identity'] => {\n return state.identity\n}\n\nexport const selectQuartzIdentityStatus = (state: AppState): RemoteDataState =>\n state.identity.currentIdentity.loadingStatus.identityStatus\n\nexport const selectQuartzBillingStatus = (state: AppState): RemoteDataState =>\n state.identity.currentIdentity.loadingStatus.billingStatus\n\nexport const selectQuartzOrgs = (\n state: AppState\n): AppState['identity']['quartzOrganizations']['orgs'] => {\n return state.identity.quartzOrganizations.orgs\n}\n\nexport const selectQuartzOrgsStatus = (\n state: AppState\n): AppState['identity']['quartzOrganizations']['status'] => {\n return state.identity.quartzOrganizations.status\n}\n\nexport const selectUser = (\n state: AppState\n): AppState['identity']['currentIdentity']['user'] => {\n return state.identity.currentIdentity.user\n}\n","import 'babel-polyfill'\nimport 'abortcontroller-polyfill/dist/polyfill-patch-fetch'\n\n// Libraries\nimport React, {PureComponent, Suspense} from 'react'\nimport {render} from 'react-dom'\nimport {Provider} from 'react-redux'\nimport {Route} from 'react-router-dom'\nimport {ConnectedRouter} from 'connected-react-router'\n\n// Stores\nimport {getStore} from 'src/store/configureStore'\nimport {history} from 'src/store/history'\n\n// Components\nimport {Setup} from 'src/Setup'\nimport PageSpinner from 'src/perf/components/PageSpinner'\n\n// Utilities\nimport {getRootNode} from 'src/utils/nodes'\nimport {\n updateReportingContext,\n updateCampaignInfo,\n} from 'src/cloud/utils/reporting'\n\n// Constants\nimport {CLOUD} from 'src/shared/constants'\n\n// Actions\nimport {disablePresentationMode} from 'src/shared/actions/app'\n\n// Styles\nimport 'src/style/chronograf.scss'\nimport '@influxdata/clockface/dist/index.css'\nimport '@docsearch/css'\nconst rootNode = getRootNode()\n\nconst SESSION_KEY = 'session'\n\nconst cookieSession = document.cookie.match(\n new RegExp('(^| )' + SESSION_KEY + '=([^;]+)')\n)\n\nupdateReportingContext({\n session: cookieSession ? cookieSession[2].slice(5) : '',\n})\n\nif (CLOUD) {\n updateCampaignInfo(window.location.search)\n}\n\nconst {dispatch} = getStore()\n\nif (window['Cypress']) {\n window['store'] = getStore()\n}\n\nhistory.listen(() => {\n dispatch(disablePresentationMode())\n})\n\ndeclare global {\n interface Window {\n basepath: string\n dataLayer: any[]\n userpilot: any\n }\n}\n\nwindow.addEventListener('keyup', event => {\n const escapeKeyCode = 27\n // fallback for browsers that don't support event.key\n if (event.key === 'Escape' || event.keyCode === escapeKeyCode) {\n dispatch(disablePresentationMode())\n }\n})\n\nclass Root extends PureComponent {\n public render() {\n return (\n \n \n }>\n \n \n \n \n )\n }\n}\n\nif (rootNode) {\n render(, rootNode)\n}\n","// Types\nimport {RemoteDataState, LabelEntities} from 'src/types'\nimport {Action as NotifyAction} from 'src/shared/actions/notifications'\nimport {NormalizedSchema} from 'normalizr'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | NotifyAction\n\nexport const SET_LABELS = 'SET_LABELS'\nexport const SET_LABEL = 'SET_LABEL'\nexport const REMOVE_LABEL = 'REMOVE_LABEL'\nexport const SET_LABEL_ON_RESOURCE = 'SET_LABEL_ON_RESOURCE'\n\ntype LabelsSchema = NormalizedSchema<\n LabelEntities,\n R\n>\n\nexport const setLabels = (\n status: RemoteDataState,\n schema?: LabelsSchema\n) =>\n ({\n type: SET_LABELS,\n status,\n schema,\n } as const)\n\nexport const setLabel = (\n id: string,\n status: RemoteDataState,\n schema?: LabelsSchema\n) =>\n ({\n type: SET_LABEL,\n id,\n status,\n schema,\n } as const)\n\nexport const removeLabel = (id: string) =>\n ({\n type: REMOVE_LABEL,\n id,\n } as const)\n\nexport const setLabelOnResource = (\n resourceID: string,\n schema: LabelsSchema\n) =>\n ({\n type: SET_LABEL_ON_RESOURCE,\n resourceID,\n schema,\n } as const)\n","// Labels can use a different set of brand colors than single stats or gauges\nimport {Label, RemoteDataState} from 'src/types'\nimport {LabelColor, LabelColorType} from 'src/types/colors'\n\nexport const INFLUX_LABEL_PREFIX = '@influxdata'\nexport const TOKEN_LABEL = `${INFLUX_LABEL_PREFIX}.token`\n\nexport const HEX_CODE_CHAR_LENGTH = 7\n\nexport const DEFAULT_LABEL_COLOR_HEX = '#326BBA'\n\nexport const EMPTY_LABEL: Label = {\n name: '',\n status: RemoteDataState.Done,\n properties: {\n description: '',\n color: DEFAULT_LABEL_COLOR_HEX,\n },\n}\n\nexport const CUSTOM_LABEL: LabelColor = {\n id: 'custom',\n colorHex: '#RRRRRR',\n name: 'Custom Hexcode',\n type: LabelColorType.Custom,\n}\n\nexport const PRESET_LABEL_COLORS: LabelColor[] = [\n CUSTOM_LABEL,\n {\n id: 'label-preset-sapphire',\n colorHex: '#326BBA',\n name: 'Sapphire',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-ocean',\n colorHex: '#4591ED',\n name: 'Ocean',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-pool',\n colorHex: '#22ADF6',\n name: 'Pool',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-laser',\n colorHex: '#00C9FF',\n name: 'Laser',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-hydrogen',\n colorHex: '#6BDFFF',\n name: 'Hydrogen',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-neutrino',\n colorHex: '#BEF0FF',\n name: 'Neutrino',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-void',\n colorHex: '#311F94',\n name: 'Void',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-amethyst',\n colorHex: '#513CC6',\n name: 'Amethyst',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-star',\n colorHex: '#7A65F2',\n name: 'Star',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-comet',\n colorHex: '#9394FF',\n name: 'Comet',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-potassium',\n colorHex: '#B1B6FF',\n name: 'Potassium',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-moonstone',\n colorHex: '#C9D0FF',\n name: 'Moonstone',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-emerald',\n colorHex: '#108174',\n name: 'Emerald',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-viridian',\n colorHex: '#32B08C',\n name: 'Viridian',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-rainforest',\n colorHex: '#4ED8A0',\n name: 'Rainforest',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-honeydew',\n colorHex: '#7CE490',\n name: 'Honeydew',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-krypton',\n colorHex: '#A5F3B4',\n name: 'Krypton',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-wasabi',\n colorHex: '#C6FFD0',\n name: 'Wasabi',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-ruby',\n colorHex: '#BF3D5E',\n name: 'Ruby',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-fire',\n colorHex: '#DC4E58',\n name: 'Fire',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-curacao',\n colorHex: '#F95F53',\n name: 'Curacao',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-dreamsicle',\n colorHex: '#FF8564',\n name: 'Dreamsicle',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-tungsten',\n colorHex: '#FFB6A0',\n name: 'Tungsten',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-marmelade',\n colorHex: '#FFDCCF',\n name: 'Marmelade',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-topaz',\n colorHex: '#E85B1C',\n name: 'Topaz',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-tiger',\n colorHex: '#F48D38',\n name: 'Tiger',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-pineapple',\n colorHex: '#FFB94A',\n name: 'Pineapple',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-thunder',\n colorHex: '#FFD255',\n name: 'Thunder',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-sulfur',\n colorHex: '#FFE480',\n name: 'Sulfur',\n type: LabelColorType.Preset,\n },\n {\n id: 'label-preset-daisy',\n colorHex: '#FFF6B8',\n name: 'Daisy',\n type: LabelColorType.Preset,\n },\n]\n\nexport const INPUT_ERROR_COLOR = '#0F0E15'\n\nexport const LABEL_NAME_MAX_LENGTH = 30\n","import {sample} from 'lodash'\nimport {Label, RemoteDataState, GenLabel} from 'src/types'\n\nimport {HEX_CODE_CHAR_LENGTH, PRESET_LABEL_COLORS} from 'src/labels/constants/'\n\nexport const randomPresetColor = () =>\n sample(PRESET_LABEL_COLORS.slice(1)).colorHex\n\n// TODO: Accept a list of label objects instead of strings\n// Will have to wait until label types are standardized in the UI\nexport const validateLabelUniqueness = (\n labelNames: string[],\n name: string\n): string | null => {\n if (typeof name !== 'string') {\n return null\n }\n\n if (name.trim() === '') {\n return 'Label name is required'\n }\n\n const isNameUnique = !labelNames.find(\n labelName => labelName.toLowerCase() === name.toLowerCase()\n )\n\n if (!isNameUnique) {\n return 'There is already a label with that name'\n }\n\n return null\n}\n\nexport const validateHexCode = (colorHex: string): string | null => {\n const isValidLength = colorHex.length === HEX_CODE_CHAR_LENGTH\n const beginsWithHash = colorHex.substring(0, 1) === '#'\n const containsValidCharacters = /^([0-9A-F]*)$/i.test(colorHex.substring(1))\n\n const errorMessage = []\n\n if (!beginsWithHash) {\n errorMessage.push('Hexcodes must begin with #')\n }\n\n if (!isValidLength) {\n if (errorMessage.length) {\n errorMessage.push(`and must be ${HEX_CODE_CHAR_LENGTH} characters`)\n } else {\n errorMessage.push(`Hexcodes must be ${HEX_CODE_CHAR_LENGTH} characters`)\n }\n }\n\n if (!containsValidCharacters) {\n if (errorMessage.length) {\n errorMessage.push(`and must must contain only 0-9,A-F characters`)\n } else {\n errorMessage.push(`Hexcodes must contain only 0-9,A-F characters`)\n }\n }\n\n if (!errorMessage.length) {\n return null\n }\n\n return errorMessage.join(', ')\n}\n\nconst DEFAULT_LABEL_COLOR = '#326BBA'\n\nexport const addLabelDefaults = (l: GenLabel): Label => {\n const out = {\n ...l,\n status: RemoteDataState.Done,\n properties: {\n ...l.properties,\n // add default color hex if missing\n color: (l.properties || {}).color || DEFAULT_LABEL_COLOR,\n description: (l.properties || {}).description || '',\n },\n }\n\n return out\n}\n","import {File} from 'src/types/ast'\nimport {\n initLog,\n parse as flux_parse,\n format_from_js_file as flux_format_from_js_file,\n is_valid_flux,\n} from '@influxdata/flux-lsp-browser'\n\ninitLog()\n\n/*\n NOTE: This is a work around for flux being generated (from rust) for the browser and jest tests running in\n a node environment (this is only for handling tests). If a test requires a specific AST result\n then you will need to mock that out in the test.\n*/\nexport const parse = (script: string): File => {\n if (window) {\n return flux_parse(script)\n } else {\n return {\n type: 'File',\n package: {\n name: {\n name: 'fake',\n type: 'Identifier',\n },\n type: 'PackageClause',\n },\n imports: [],\n body: [],\n }\n }\n}\n\nexport const format_from_js_file = (script: File): string => {\n if (window) {\n return flux_format_from_js_file(script)\n } else {\n return ''\n }\n}\n\nexport function isValidFlux(scriptText: string): boolean {\n if (window) {\n return is_valid_flux(scriptText)\n }\n return true\n}\n","// Utils\nimport {validateAndTypeRange} from 'src/dashboards/utils/time'\n\n// Types\nimport {RangeState} from 'src/dashboards/reducers/ranges'\n\nconst isCorrectType = (bound: any) =>\n typeof bound === 'string' || bound === null\n\nexport const getLocalStateRangesAsArray = (ranges: any[]): RangeState => {\n const normalizedRanges = ranges.filter(r => {\n if (typeof r !== 'object') {\n return false\n }\n\n // check for presence of keys\n if (\n !r.hasOwnProperty('dashboardID') ||\n !r.hasOwnProperty('lower') ||\n !r.hasOwnProperty('upper')\n ) {\n return false\n }\n\n const {dashboardID, lower, upper} = r\n\n if (!dashboardID || typeof dashboardID !== 'string') {\n return false\n }\n\n if (!lower && !upper) {\n return false\n }\n\n if (!isCorrectType(lower) || !isCorrectType(upper)) {\n return false\n }\n\n return true\n })\n\n const rangesObject: RangeState = {}\n\n normalizedRanges.forEach(\n (range: {dashboardID: string; lower: string; upper: string}) => {\n const {dashboardID, lower, upper} = range\n\n const timeRange = validateAndTypeRange({lower, upper})\n if (timeRange) {\n rangesObject[dashboardID] = timeRange\n }\n }\n )\n return rangesObject\n}\n\nconst normalizeRangesState = (ranges: RangeState): RangeState => {\n const normalized = {}\n\n for (const key in ranges) {\n if (\n typeof ranges[key] === 'object' &&\n ranges[key].hasOwnProperty('upper') &&\n ranges[key].hasOwnProperty('lower') &&\n isCorrectType(ranges[key].lower) &&\n isCorrectType(ranges[key].upper)\n ) {\n const typedRange = validateAndTypeRange(ranges[key])\n if (typedRange) {\n normalized[key] = typedRange\n }\n }\n }\n\n return normalized\n}\n\nexport const getLocalStateRanges = (ranges: RangeState | any[]) => {\n if (Array.isArray(ranges)) {\n return getLocalStateRangesAsArray(ranges)\n } else if (typeof ranges === 'object') {\n return normalizeRangesState(ranges)\n } else {\n return {}\n }\n}\n\nexport const setLocalStateRanges = (ranges: RangeState) => {\n return normalizeRangesState(ranges)\n}\n","// All time zones except for \"Local\" should be a valid IANA Time Zone Database\n// name.\n//\n// https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\nexport type TimeZone =\n | 'Local'\n | 'UTC'\n | 'Africa/Abidjan'\n | 'Africa/Accra'\n | 'Africa/Addis_Ababa'\n | 'Africa/Algiers'\n | 'Africa/Asmara'\n | 'Africa/Bamako'\n | 'Africa/Bangui'\n | 'Africa/Banjul'\n | 'Africa/Bissau'\n | 'Africa/Blantyre'\n | 'Africa/Brazzaville'\n | 'Africa/Bujumbura'\n | 'Africa/Cairo'\n | 'Africa/Casablanca'\n | 'Africa/Ceuta'\n | 'Africa/Conakry'\n | 'Africa/Dakar'\n | 'Africa/Dar_es_Salaam'\n | 'Africa/Djibouti'\n | 'Africa/Douala'\n | 'Africa/El_Aaiun'\n | 'Africa/Freetown'\n | 'Africa/Gaborone'\n | 'Africa/Harare'\n | 'Africa/Johannesburg'\n | 'Africa/Juba'\n | 'Africa/Kampala'\n | 'Africa/Khartoum'\n | 'Africa/Kigali'\n | 'Africa/Kinshasa'\n | 'Africa/Lagos'\n | 'Africa/Libreville'\n | 'Africa/Lome'\n | 'Africa/Luanda'\n | 'Africa/Lubumbashi'\n | 'Africa/Lusaka'\n | 'Africa/Malabo'\n | 'Africa/Maputo'\n | 'Africa/Maseru'\n | 'Africa/Mbabane'\n | 'Africa/Mogadishu'\n | 'Africa/Monrovia'\n | 'Africa/Nairobi'\n | 'Africa/Ndjamena'\n | 'Africa/Niamey'\n | 'Africa/Nouakchott'\n | 'Africa/Ouagadougou'\n | 'Africa/Porto-Novo'\n | 'Africa/Sao_Tome'\n | 'Africa/Timbuktu'\n | 'Africa/Tripoli'\n | 'Africa/Tunis'\n | 'Africa/Windhoek'\n | 'America/Adak'\n | 'America/Anchorage'\n | 'America/Anguilla'\n | 'America/Antigua'\n | 'America/Araguaina'\n | 'America/Argentina/Buenos_Aires'\n | 'America/Argentina/Catamarca'\n | 'America/Argentina/ComodRivadavia'\n | 'America/Argentina/Cordoba'\n | 'America/Argentina/Jujuy'\n | 'America/Argentina/La_Rioja'\n | 'America/Argentina/Mendoza'\n | 'America/Argentina/Rio_Gallegos'\n | 'America/Argentina/Salta'\n | 'America/Argentina/San_Juan'\n | 'America/Argentina/San_Luis'\n | 'America/Argentina/Tucuman'\n | 'America/Argentina/Ushuaia'\n | 'America/Aruba'\n | 'America/Asuncion'\n | 'America/Atikokan'\n | 'America/Atka'\n | 'America/Bahia'\n | 'America/Bahia_Banderas'\n | 'America/Barbados'\n | 'America/Belem'\n | 'America/Belize'\n | 'America/Blanc-Sablon'\n | 'America/Boa_Vista'\n | 'America/Bogota'\n | 'America/Boise'\n | 'America/Buenos_Aires'\n | 'America/Cambridge_Bay'\n | 'America/Campo_Grande'\n | 'America/Cancun'\n | 'America/Caracas'\n | 'America/Catamarca'\n | 'America/Cayenne'\n | 'America/Cayman'\n | 'America/Chicago'\n | 'America/Chihuahua'\n | 'America/Coral_Harbour'\n | 'America/Cordoba'\n | 'America/Costa_Rica'\n | 'America/Creston'\n | 'America/Cuiaba'\n | 'America/Curacao'\n | 'America/Danmarkshavn'\n | 'America/Dawson'\n | 'America/Dawson_Creek'\n | 'America/Denver'\n | 'America/Detroit'\n | 'America/Dominica'\n | 'America/Edmonton'\n | 'America/Eirunepe'\n | 'America/El_Salvador'\n | 'America/Ensenada'\n | 'America/Fort_Nelson'\n | 'America/Fort_Wayne'\n | 'America/Fortaleza'\n | 'America/Glace_Bay'\n | 'America/Godthab'\n | 'America/Goose_Bay'\n | 'America/Grand_Turk'\n | 'America/Grenada'\n | 'America/Guadeloupe'\n | 'America/Guatemala'\n | 'America/Guayaquil'\n | 'America/Guyana'\n | 'America/Halifax'\n | 'America/Havana'\n | 'America/Hermosillo'\n | 'America/Indiana/Indianapolis'\n | 'America/Indiana/Knox'\n | 'America/Indiana/Marengo'\n | 'America/Indiana/Petersburg'\n | 'America/Indiana/Tell_City'\n | 'America/Indiana/Vevay'\n | 'America/Indiana/Vincennes'\n | 'America/Indiana/Winamac'\n | 'America/Indianapolis'\n | 'America/Inuvik'\n | 'America/Iqaluit'\n | 'America/Jamaica'\n | 'America/Jujuy'\n | 'America/Juneau'\n | 'America/Kentucky/Louisville'\n | 'America/Kentucky/Monticello'\n | 'America/Knox_IN'\n | 'America/Kralendijk'\n | 'America/La_Paz'\n | 'America/Lima'\n | 'America/Los_Angeles'\n | 'America/Louisville'\n | 'America/Lower_Princes'\n | 'America/Maceio'\n | 'America/Managua'\n | 'America/Manaus'\n | 'America/Marigot'\n | 'America/Martinique'\n | 'America/Matamoros'\n | 'America/Mazatlan'\n | 'America/Mendoza'\n | 'America/Menominee'\n | 'America/Merida'\n | 'America/Metlakatla'\n | 'America/Mexico_City'\n | 'America/Miquelon'\n | 'America/Moncton'\n | 'America/Monterrey'\n | 'America/Montevideo'\n | 'America/Montreal'\n | 'America/Montserrat'\n | 'America/Nassau'\n | 'America/New_York'\n | 'America/Nipigon'\n | 'America/Nome'\n | 'America/Noronha'\n | 'America/North_Dakota/Beulah'\n | 'America/North_Dakota/Center'\n | 'America/North_Dakota/New_Salem'\n | 'America/Ojinaga'\n | 'America/Panama'\n | 'America/Pangnirtung'\n | 'America/Paramaribo'\n | 'America/Phoenix'\n | 'America/Port_of_Spain'\n | 'America/Port-au-Prince'\n | 'America/Porto_Acre'\n | 'America/Porto_Velho'\n | 'America/Puerto_Rico'\n | 'America/Punta_Arenas'\n | 'America/Rainy_River'\n | 'America/Rankin_Inlet'\n | 'America/Recife'\n | 'America/Regina'\n | 'America/Resolute'\n | 'America/Rio_Branco'\n | 'America/Rosario'\n | 'America/Santa_Isabel'\n | 'America/Santarem'\n | 'America/Santiago'\n | 'America/Santo_Domingo'\n | 'America/Sao_Paulo'\n | 'America/Scoresbysund'\n | 'America/Shiprock'\n | 'America/Sitka'\n | 'America/St_Barthelemy'\n | 'America/St_Johns'\n | 'America/St_Kitts'\n | 'America/St_Lucia'\n | 'America/St_Thomas'\n | 'America/St_Vincent'\n | 'America/Swift_Current'\n | 'America/Tegucigalpa'\n | 'America/Thule'\n | 'America/Thunder_Bay'\n | 'America/Tijuana'\n | 'America/Toronto'\n | 'America/Tortola'\n | 'America/Vancouver'\n | 'America/Virgin'\n | 'America/Whitehorse'\n | 'America/Winnipeg'\n | 'America/Yakutat'\n | 'America/Yellowknife'\n | 'Antarctica/Casey'\n | 'Antarctica/Davis'\n | 'Antarctica/DumontDUrville'\n | 'Antarctica/Macquarie'\n | 'Antarctica/Mawson'\n | 'Antarctica/McMurdo'\n | 'Antarctica/Palmer'\n | 'Antarctica/Rothera'\n | 'Antarctica/South_Pole'\n | 'Antarctica/Syowa'\n | 'Antarctica/Troll'\n | 'Antarctica/Vostok'\n | 'Arctic/Longyearbyen'\n | 'Asia/Aden'\n | 'Asia/Almaty'\n | 'Asia/Amman'\n | 'Asia/Anadyr'\n | 'Asia/Aqtau'\n | 'Asia/Aqtobe'\n | 'Asia/Ashgabat'\n | 'Asia/Ashkhabad'\n | 'Asia/Atyrau'\n | 'Asia/Baghdad'\n | 'Asia/Bahrain'\n | 'Asia/Baku'\n | 'Asia/Bangkok'\n | 'Asia/Barnaul'\n | 'Asia/Beirut'\n | 'Asia/Bishkek'\n | 'Asia/Brunei'\n | 'Asia/Calcutta'\n | 'Asia/Chita'\n | 'Asia/Choibalsan'\n | 'Asia/Chongqing'\n | 'Asia/Chungking'\n | 'Asia/Colombo'\n | 'Asia/Dacca'\n | 'Asia/Damascus'\n | 'Asia/Dhaka'\n | 'Asia/Dili'\n | 'Asia/Dubai'\n | 'Asia/Dushanbe'\n | 'Asia/Famagusta'\n | 'Asia/Gaza'\n | 'Asia/Harbin'\n | 'Asia/Hebron'\n | 'Asia/Ho_Chi_Minh'\n | 'Asia/Hong_Kong'\n | 'Asia/Hovd'\n | 'Asia/Irkutsk'\n | 'Asia/Istanbul'\n | 'Asia/Jakarta'\n | 'Asia/Jayapura'\n | 'Asia/Jerusalem'\n | 'Asia/Kabul'\n | 'Asia/Kamchatka'\n | 'Asia/Karachi'\n | 'Asia/Kashgar'\n | 'Asia/Kathmandu'\n | 'Asia/Katmandu'\n | 'Asia/Khandyga'\n | 'Asia/Kolkata'\n | 'Asia/Krasnoyarsk'\n | 'Asia/Kuala_Lumpur'\n | 'Asia/Kuching'\n | 'Asia/Kuwait'\n | 'Asia/Macao'\n | 'Asia/Macau'\n | 'Asia/Magadan'\n | 'Asia/Makassar'\n | 'Asia/Manila'\n | 'Asia/Muscat'\n | 'Asia/Novokuznetsk'\n | 'Asia/Novosibirsk'\n | 'Asia/Omsk'\n | 'Asia/Oral'\n | 'Asia/Phnom_Penh'\n | 'Asia/Pontianak'\n | 'Asia/Pyongyang'\n | 'Asia/Qatar'\n | 'Asia/Qyzylorda'\n | 'Asia/Rangoon'\n | 'Asia/Riyadh'\n | 'Asia/Saigon'\n | 'Asia/Sakhalin'\n | 'Asia/Samarkand'\n | 'Asia/Seoul'\n | 'Asia/Shanghai'\n | 'Asia/Singapore'\n | 'Asia/Srednekolymsk'\n | 'Asia/Taipei'\n | 'Asia/Tashkent'\n | 'Asia/Tbilisi'\n | 'Asia/Tehran'\n | 'Asia/Tel_Aviv'\n | 'Asia/Thimbu'\n | 'Asia/Thimphu'\n | 'Asia/Tokyo'\n | 'Asia/Tomsk'\n | 'Asia/Ujung_Pandang'\n | 'Asia/Ulaanbaatar'\n | 'Asia/Ulan_Bator'\n | 'Asia/Urumqi'\n | 'Asia/Ust-Nera'\n | 'Asia/Vientiane'\n | 'Asia/Vladivostok'\n | 'Asia/Yakutsk'\n | 'Asia/Yangon'\n | 'Asia/Yekaterinburg'\n | 'Asia/Yerevan'\n | 'Atlantic/Azores'\n | 'Atlantic/Bermuda'\n | 'Atlantic/Canary'\n | 'Atlantic/Cape_Verde'\n | 'Atlantic/Faeroe'\n | 'Atlantic/Faroe'\n | 'Atlantic/Jan_Mayen'\n | 'Atlantic/Madeira'\n | 'Atlantic/Reykjavik'\n | 'Atlantic/South_Georgia'\n | 'Atlantic/St_Helena'\n | 'Atlantic/Stanley'\n | 'Australia/ACT'\n | 'Australia/Adelaide'\n | 'Australia/Brisbane'\n | 'Australia/Broken_Hill'\n | 'Australia/Canberra'\n | 'Australia/Currie'\n | 'Australia/Darwin'\n | 'Australia/Eucla'\n | 'Australia/Hobart'\n | 'Australia/LHI'\n | 'Australia/Lindeman'\n | 'Australia/Lord_Howe'\n | 'Australia/Melbourne'\n | 'Australia/North'\n | 'Australia/NSW'\n | 'Australia/Perth'\n | 'Australia/Queensland'\n | 'Australia/South'\n | 'Australia/Sydney'\n | 'Australia/Tasmania'\n | 'Australia/Victoria'\n | 'Australia/West'\n | 'Australia/Yancowinna'\n | 'Brazil/Acre'\n | 'Brazil/DeNoronha'\n | 'Brazil/East'\n | 'Brazil/West'\n | 'Canada/Atlantic'\n | 'Canada/Central'\n | 'Canada/Eastern'\n | 'Canada/Mountain'\n | 'Canada/Newfoundland'\n | 'Canada/Pacific'\n | 'Canada/Saskatchewan'\n | 'Canada/Yukon'\n | 'CET'\n | 'Chile/Continental'\n | 'Chile/EasterIsland'\n | 'CST6CDT'\n | 'Cuba'\n | 'EET'\n | 'Egypt'\n | 'Eire'\n | 'EST'\n | 'EST5EDT'\n | 'Etc/GMT'\n | 'Etc/GMT+0'\n | 'Etc/GMT+1'\n | 'Etc/GMT+10'\n | 'Etc/GMT+11'\n | 'Etc/GMT+12'\n | 'Etc/GMT+2'\n | 'Etc/GMT+3'\n | 'Etc/GMT+4'\n | 'Etc/GMT+5'\n | 'Etc/GMT+6'\n | 'Etc/GMT+7'\n | 'Etc/GMT+8'\n | 'Etc/GMT+9'\n | 'Etc/GMT0'\n | 'Etc/GMT-0'\n | 'Etc/GMT-1'\n | 'Etc/GMT-10'\n | 'Etc/GMT-11'\n | 'Etc/GMT-12'\n | 'Etc/GMT-13'\n | 'Etc/GMT-14'\n | 'Etc/GMT-2'\n | 'Etc/GMT-3'\n | 'Etc/GMT-4'\n | 'Etc/GMT-5'\n | 'Etc/GMT-6'\n | 'Etc/GMT-7'\n | 'Etc/GMT-8'\n | 'Etc/GMT-9'\n | 'Etc/Greenwich'\n | 'Etc/UCT'\n | 'Etc/Universal'\n | 'Etc/UTC'\n | 'Etc/Zulu'\n | 'Europe/Amsterdam'\n | 'Europe/Andorra'\n | 'Europe/Astrakhan'\n | 'Europe/Athens'\n | 'Europe/Belfast'\n | 'Europe/Belgrade'\n | 'Europe/Berlin'\n | 'Europe/Bratislava'\n | 'Europe/Brussels'\n | 'Europe/Bucharest'\n | 'Europe/Budapest'\n | 'Europe/Busingen'\n | 'Europe/Chisinau'\n | 'Europe/Copenhagen'\n | 'Europe/Dublin'\n | 'Europe/Gibraltar'\n | 'Europe/Guernsey'\n | 'Europe/Helsinki'\n | 'Europe/Isle_of_Man'\n | 'Europe/Istanbul'\n | 'Europe/Jersey'\n | 'Europe/Kaliningrad'\n | 'Europe/Kiev'\n | 'Europe/Kirov'\n | 'Europe/Lisbon'\n | 'Europe/Ljubljana'\n | 'Europe/London'\n | 'Europe/Luxembourg'\n | 'Europe/Madrid'\n | 'Europe/Malta'\n | 'Europe/Mariehamn'\n | 'Europe/Minsk'\n | 'Europe/Monaco'\n | 'Europe/Moscow'\n | 'Asia/Nicosia'\n | 'Europe/Oslo'\n | 'Europe/Paris'\n | 'Europe/Podgorica'\n | 'Europe/Prague'\n | 'Europe/Riga'\n | 'Europe/Rome'\n | 'Europe/Samara'\n | 'Europe/San_Marino'\n | 'Europe/Sarajevo'\n | 'Europe/Saratov'\n | 'Europe/Simferopol'\n | 'Europe/Skopje'\n | 'Europe/Sofia'\n | 'Europe/Stockholm'\n | 'Europe/Tallinn'\n | 'Europe/Tirane'\n | 'Europe/Tiraspol'\n | 'Europe/Ulyanovsk'\n | 'Europe/Uzhgorod'\n | 'Europe/Vaduz'\n | 'Europe/Vatican'\n | 'Europe/Vienna'\n | 'Europe/Vilnius'\n | 'Europe/Volgograd'\n | 'Europe/Warsaw'\n | 'Europe/Zagreb'\n | 'Europe/Zaporozhye'\n | 'Europe/Zurich'\n | 'GB'\n | 'GB-Eire'\n | 'GMT'\n | 'GMT+0'\n | 'GMT0'\n | 'GMT−0'\n | 'Greenwich'\n | 'Hongkong'\n | 'HST'\n | 'Iceland'\n | 'Indian/Antananarivo'\n | 'Indian/Chagos'\n | 'Indian/Christmas'\n | 'Indian/Cocos'\n | 'Indian/Comoro'\n | 'Indian/Kerguelen'\n | 'Indian/Mahe'\n | 'Indian/Maldives'\n | 'Indian/Mauritius'\n | 'Indian/Mayotte'\n | 'Indian/Reunion'\n | 'Iran'\n | 'Israel'\n | 'Jamaica'\n | 'Japan'\n | 'Kwajalein'\n | 'Libya'\n | 'MET'\n | 'Mexico/BajaNorte'\n | 'Mexico/BajaSur'\n | 'Mexico/General'\n | 'MST'\n | 'MST7MDT'\n | 'Navajo'\n | 'NZ'\n | 'NZ-CHAT'\n | 'Pacific/Apia'\n | 'Pacific/Auckland'\n | 'Pacific/Bougainville'\n | 'Pacific/Chatham'\n | 'Pacific/Chuuk'\n | 'Pacific/Easter'\n | 'Pacific/Efate'\n | 'Pacific/Enderbury'\n | 'Pacific/Fakaofo'\n | 'Pacific/Fiji'\n | 'Pacific/Funafuti'\n | 'Pacific/Galapagos'\n | 'Pacific/Gambier'\n | 'Pacific/Guadalcanal'\n | 'Pacific/Guam'\n | 'Pacific/Honolulu'\n | 'Pacific/Johnston'\n | 'Pacific/Kiritimati'\n | 'Pacific/Kosrae'\n | 'Pacific/Kwajalein'\n | 'Pacific/Majuro'\n | 'Pacific/Marquesas'\n | 'Pacific/Midway'\n | 'Pacific/Nauru'\n | 'Pacific/Niue'\n | 'Pacific/Norfolk'\n | 'Pacific/Noumea'\n | 'Pacific/Pago_Pago'\n | 'Pacific/Palau'\n | 'Pacific/Pitcairn'\n | 'Pacific/Pohnpei'\n | 'Pacific/Ponape'\n | 'Pacific/Port_Moresby'\n | 'Pacific/Rarotonga'\n | 'Pacific/Saipan'\n | 'Pacific/Samoa'\n | 'Pacific/Tahiti'\n | 'Pacific/Tarawa'\n | 'Pacific/Tongatapu'\n | 'Pacific/Truk'\n | 'Pacific/Wake'\n | 'Pacific/Wallis'\n | 'Pacific/Yap'\n | 'Poland'\n | 'Portugal'\n | 'PRC'\n | 'PST8PDT'\n | 'ROC'\n | 'ROK'\n | 'Singapore'\n | 'Turkey'\n | 'UCT'\n | 'Universal'\n | 'US/Alaska'\n | 'US/Aleutian'\n | 'US/Arizona'\n | 'US/Central'\n | 'US/Eastern'\n | 'US/East-Indiana'\n | 'US/Hawaii'\n | 'US/Indiana-Starke'\n | 'US/Michigan'\n | 'US/Mountain'\n | 'US/Pacific'\n | 'US/Pacific-New'\n | 'US/Samoa'\n | 'UTC'\n | 'WET'\n | 'W-SU'\n | 'Zulu'\n\nexport const timeZones = [\n 'Local',\n 'UTC',\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Addis_Ababa',\n 'Africa/Algiers',\n 'Africa/Asmara',\n 'Africa/Bamako',\n 'Africa/Bangui',\n 'Africa/Banjul',\n 'Africa/Bissau',\n 'Africa/Blantyre',\n 'Africa/Brazzaville',\n 'Africa/Bujumbura',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/Conakry',\n 'Africa/Dakar',\n 'Africa/Dar_es_Salaam',\n 'Africa/Djibouti',\n 'Africa/Douala',\n 'Africa/El_Aaiun',\n 'Africa/Freetown',\n 'Africa/Gaborone',\n 'Africa/Harare',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Kampala',\n 'Africa/Khartoum',\n 'Africa/Kigali',\n 'Africa/Kinshasa',\n 'Africa/Lagos',\n 'Africa/Libreville',\n 'Africa/Lome',\n 'Africa/Luanda',\n 'Africa/Lubumbashi',\n 'Africa/Lusaka',\n 'Africa/Malabo',\n 'Africa/Maputo',\n 'Africa/Maseru',\n 'Africa/Mbabane',\n 'Africa/Mogadishu',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Niamey',\n 'Africa/Nouakchott',\n 'Africa/Ouagadougou',\n 'Africa/Porto-Novo',\n 'Africa/Sao_Tome',\n 'Africa/Timbuktu',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Anguilla',\n 'America/Antigua',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/ComodRivadavia',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Aruba',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Atka',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Buenos_Aires',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Catamarca',\n 'America/Cayenne',\n 'America/Cayman',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Coral_Harbour',\n 'America/Cordoba',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Dominica',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Ensenada',\n 'America/Fort_Nelson',\n 'America/Fort_Wayne',\n 'America/Fortaleza',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Grenada',\n 'America/Guadeloupe',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Indianapolis',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Jujuy',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/Knox_IN',\n 'America/Kralendijk',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Louisville',\n 'America/Lower_Princes',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Marigot',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Mendoza',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Montreal',\n 'America/Montserrat',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port_of_Spain',\n 'America/Port-au-Prince',\n 'America/Porto_Acre',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Rosario',\n 'America/Santa_Isabel',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Shiprock',\n 'America/Sitka',\n 'America/St_Barthelemy',\n 'America/St_Johns',\n 'America/St_Kitts',\n 'America/St_Lucia',\n 'America/St_Thomas',\n 'America/St_Vincent',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Tortola',\n 'America/Vancouver',\n 'America/Virgin',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/McMurdo',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/South_Pole',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Arctic/Longyearbyen',\n 'Asia/Aden',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Ashkhabad',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Bahrain',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Calcutta',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Chongqing',\n 'Asia/Chungking',\n 'Asia/Colombo',\n 'Asia/Dacca',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Harbin',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Istanbul',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kashgar',\n 'Asia/Kathmandu',\n 'Asia/Katmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Kuwait',\n 'Asia/Macao',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Muscat',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Phnom_Penh',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qyzylorda',\n 'Asia/Rangoon',\n 'Asia/Riyadh',\n 'Asia/Saigon',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Tel_Aviv',\n 'Asia/Thimbu',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ujung_Pandang',\n 'Asia/Ulaanbaatar',\n 'Asia/Ulan_Bator',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vientiane',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faeroe',\n 'Atlantic/Faroe',\n 'Atlantic/Jan_Mayen',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/St_Helena',\n 'Atlantic/Stanley',\n 'Australia/ACT',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Canberra',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/LHI',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/North',\n 'Australia/NSW',\n 'Australia/Perth',\n 'Australia/Queensland',\n 'Australia/South',\n 'Australia/Sydney',\n 'Australia/Tasmania',\n 'Australia/Victoria',\n 'Australia/West',\n 'Australia/Yancowinna',\n 'Brazil/Acre',\n 'Brazil/DeNoronha',\n 'Brazil/East',\n 'Brazil/West',\n 'Canada/Atlantic',\n 'Canada/Central',\n 'Canada/Eastern',\n 'Canada/Mountain',\n 'Canada/Newfoundland',\n 'Canada/Pacific',\n 'Canada/Saskatchewan',\n 'Canada/Yukon',\n 'CET',\n 'Chile/Continental',\n 'Chile/EasterIsland',\n 'CST6CDT',\n 'Cuba',\n 'EET',\n 'Egypt',\n 'Eire',\n 'EST',\n 'EST5EDT',\n 'Etc/GMT',\n 'Etc/GMT+0',\n 'Etc/GMT+1',\n 'Etc/GMT+10',\n 'Etc/GMT+11',\n 'Etc/GMT+12',\n 'Etc/GMT+2',\n 'Etc/GMT+3',\n 'Etc/GMT+4',\n 'Etc/GMT+5',\n 'Etc/GMT+6',\n 'Etc/GMT+7',\n 'Etc/GMT+8',\n 'Etc/GMT+9',\n 'Etc/GMT0',\n 'Etc/GMT-0',\n 'Etc/GMT-1',\n 'Etc/GMT-10',\n 'Etc/GMT-11',\n 'Etc/GMT-12',\n 'Etc/GMT-13',\n 'Etc/GMT-14',\n 'Etc/GMT-2',\n 'Etc/GMT-3',\n 'Etc/GMT-4',\n 'Etc/GMT-5',\n 'Etc/GMT-6',\n 'Etc/GMT-7',\n 'Etc/GMT-8',\n 'Etc/GMT-9',\n 'Etc/Greenwich',\n 'Etc/UCT',\n 'Etc/Universal',\n 'Etc/UTC',\n 'Etc/Zulu',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belfast',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Bratislava',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Busingen',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Guernsey',\n 'Europe/Helsinki',\n 'Europe/Isle_of_Man',\n 'Europe/Istanbul',\n 'Europe/Jersey',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/Ljubljana',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Mariehamn',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Asia/Nicosia',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Podgorica',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/San_Marino',\n 'Europe/Sarajevo',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Skopje',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Tiraspol',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vaduz',\n 'Europe/Vatican',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zagreb',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'GB',\n 'GB-Eire',\n 'GMT',\n 'GMT+0',\n 'GMT0',\n 'GMT−0',\n 'Greenwich',\n 'Hongkong',\n 'HST',\n 'Iceland',\n 'Indian/Antananarivo',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Comoro',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Mayotte',\n 'Indian/Reunion',\n 'Iran',\n 'Israel',\n 'Jamaica',\n 'Japan',\n 'Kwajalein',\n 'Libya',\n 'MET',\n 'Mexico/BajaNorte',\n 'Mexico/BajaSur',\n 'Mexico/General',\n 'MST',\n 'MST7MDT',\n 'Navajo',\n 'NZ',\n 'NZ-CHAT',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Johnston',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Midway',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Ponape',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Saipan',\n 'Pacific/Samoa',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Truk',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n 'Pacific/Yap',\n 'Poland',\n 'Portugal',\n 'PRC',\n 'PST8PDT',\n 'ROC',\n 'ROK',\n 'Singapore',\n 'Turkey',\n 'UCT',\n 'Universal',\n 'US/Alaska',\n 'US/Aleutian',\n 'US/Arizona',\n 'US/Central',\n 'US/Eastern',\n 'US/East-Indiana',\n 'US/Hawaii',\n 'US/Indiana-Starke',\n 'US/Michigan',\n 'US/Mountain',\n 'US/Pacific',\n 'US/Pacific-New',\n 'US/Samoa',\n 'UTC',\n 'WET',\n 'W-SU',\n 'Zulu',\n]\n","// Types\nimport {LocalStorage} from 'src/types'\n\n// Constants\nimport {timeZones} from 'src/types/timeZones'\n\ntype AppPersisted = LocalStorage['app']['persisted']\n\nexport const normalizeApp = (app: LocalStorage['app']) => {\n return {...app, persisted: normalizeAppPersisted(app.persisted)}\n}\n\nexport const normalizeAppPersisted = (\n persisted: AppPersisted\n): AppPersisted => {\n return {...persisted, timeZone: normalizeTimeZone(persisted.timeZone)}\n}\n\nconst normalizeTimeZone = timeZone => {\n const validTimeZone = timeZones.find(tz => tz === timeZone)\n if (!validTimeZone) {\n return 'Local'\n }\n\n return timeZone\n}\n","// Types\nimport {RemoteDataState, LocalStorage} from 'src/types'\n\nexport const normalizeResources = (state: LocalStorage) => {\n return {\n variables: state.resources.variables,\n orgs: normalizeOrgs(state.resources.orgs),\n }\n}\n\nconst normalizeOrgs = (orgs: LocalStorage['resources']['orgs']) => {\n return {\n ...orgs,\n org: orgs.org,\n status: RemoteDataState.NotStarted,\n }\n}\n","import {\n normalizeGetLocalStorage,\n normalizeSetLocalStorage,\n} from 'src/normalizers/localStorage'\nimport {VERSION} from 'src/shared/constants'\nimport {\n newVersion,\n loadLocalSettingsFailed,\n} from 'src/shared/copy/notifications'\n\nimport {LocalStorage} from 'src/types/localStorage'\n\nexport const loadLocalStorage = (): LocalStorage => {\n try {\n const serializedState = localStorage.getItem('state')\n const state = JSON.parse(serializedState) || {}\n\n if (state.VERSION && state.VERSION !== VERSION) {\n const version = VERSION ? ` (${VERSION})` : ''\n\n console.log(newVersion(version).message) // eslint-disable-line no-console\n }\n\n delete state.VERSION\n\n return normalizeGetLocalStorage(state)\n } catch (error) {\n console.error(loadLocalSettingsFailed(error).message)\n }\n}\n\nexport const setToLocalStorage = (prop: string, value: any): void => {\n try {\n window.localStorage.setItem(prop, value)\n } catch (error) {\n console.error('unable to setItem onto localStorage: ', error)\n }\n}\n\nexport const getFromLocalStorage = (prop: string): any => {\n try {\n return window.localStorage.getItem(prop)\n } catch (error) {\n console.error('unable to getItem onto localStorage: ', error)\n }\n}\n\nexport const removeFromLocalStorage = (prop: string): void => {\n try {\n return window.localStorage.removeItem(prop)\n } catch (error) {\n console.error('unable to getItem onto localStorage: ', error)\n }\n}\n\nconst isValidJSONString = errorString => {\n try {\n JSON.parse(errorString)\n } catch (e) {\n return false\n }\n return true\n}\n\nexport const saveToLocalStorage = (state: LocalStorage): void => {\n try {\n window.localStorage.setItem(\n 'state',\n JSON.stringify(normalizeSetLocalStorage(state))\n )\n } catch (error) {\n const errorMessage = isValidJSONString(error) ? JSON.parse(error) : error\n console.error('Unable to save state to local storage: ', errorMessage)\n }\n}\n","// Libraries\nimport {get} from 'lodash'\n\n// Types\nimport {LocalStorage} from 'src/types'\nimport {FlagState} from 'src/shared/reducers/flags'\n\n// Constants\nimport {VERSION} from 'src/shared/constants'\n\n// Utils\nimport {\n getLocalStateRanges,\n setLocalStateRanges,\n normalizeApp,\n} from 'src/normalizers/localStorage'\nimport {normalizeResources} from './resources'\n\nexport const normalizeGetLocalStorage = (state: LocalStorage): LocalStorage => {\n let newState = state\n\n if (state.ranges) {\n newState = {...newState, ranges: getLocalStateRanges(state.ranges)}\n }\n\n const appPersisted = get(newState, 'app.persisted', false)\n if (appPersisted) {\n newState = {\n ...newState,\n app: normalizeApp(newState.app),\n }\n }\n\n return newState\n}\n\nexport const normalizeSetLocalStorage = (state: LocalStorage): LocalStorage => {\n const {app, flags, ranges, autoRefresh, userSettings} = state\n return {\n VERSION,\n autoRefresh,\n userSettings,\n flags: {override: flags.override} as FlagState,\n app: normalizeApp(app),\n ranges: setLocalStateRanges(ranges),\n resources: normalizeResources(state),\n }\n}\n","import {MeState} from 'src/me/reducers'\n\nexport const SET_ME = 'SET_ME'\n\nexport type Actions = ReturnType\n\nexport const setMe = (me: MeState) =>\n ({\n type: SET_ME,\n me,\n } as const)\n","// Libraries\nimport HoneyBadger from 'honeybadger-js'\nimport {Dispatch} from 'react'\n\n// Functions making API calls\nimport {getMe as getIdpeMe} from 'src/client'\n\n// Utils\nimport {gaEvent, updateReportingContext} from 'src/cloud/utils/reporting'\n\n// Actions\nimport {setMe} from 'src/me/actions/creators'\n\n// Reducers\nimport {MeState} from 'src/me/reducers'\n\n// Types\nimport {Actions} from 'src/me/actions/creators'\n\nexport const getIdpeMeThunk = () => async (dispatch: Dispatch) => {\n const resp = await getIdpeMe({})\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n const user = resp.data\n\n updateReportingContext({userID: user.id, userEmail: user.name})\n\n gaEvent('cloudAppUserDataReady', {\n identity: {\n id: user.id,\n email: user.name,\n },\n })\n\n HoneyBadger.setContext({\n user_id: user.id,\n })\n\n dispatch(setMe(user as MeState))\n}\n","// Libraries\nimport produce from 'immer'\n\n// Actions\nimport {Actions, SET_ME} from 'src/me/actions/creators'\n\n// Types\nexport interface MeLinks {\n self: string\n log: string\n}\n\nexport interface MeState {\n id: string\n name: string\n links: MeLinks\n}\n\nexport const initialState: MeState = {\n id: '',\n name: '',\n links: {\n self: '',\n log: '',\n },\n}\n\nexport default (state = initialState, action: Actions): MeState =>\n produce(state, draftState => {\n switch (action.type) {\n case SET_ME: {\n draftState.id = action.me.id\n draftState.name = action.me.name\n draftState.links = action.me.links\n\n return\n }\n }\n })\n","// Actions\nimport {Action as NotifyAction} from 'src/shared/actions/notifications'\n\n// Types\nimport {NormalizedSchema} from 'normalizr'\nimport {MemberEntities, RemoteDataState} from 'src/types'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | NotifyAction\n\nexport const SET_MEMBERS = 'SET_MEMBERS'\nexport const ADD_MEMBER = 'ADD_MEMBER'\nexport const REMOVE_MEMBER = 'REMOVE_MEMBER'\n\nexport const setMembers = (\n status: RemoteDataState,\n schema?: NormalizedSchema\n) =>\n ({\n type: SET_MEMBERS,\n status,\n schema,\n } as const)\n\nexport const addMember = (schema: NormalizedSchema) =>\n ({\n type: ADD_MEMBER,\n schema,\n } as const)\n\nexport const removeMember = (id: string) =>\n ({\n type: REMOVE_MEMBER,\n id,\n } as const)\n","// Libraries\nimport {NormalizedSchema} from 'normalizr'\n\n// Types\nimport {RemoteDataState, EndpointEntities} from 'src/types'\nimport {setLabelOnResource} from 'src/labels/actions/creators'\n\nexport const SET_ENDPOINT = 'SET_ENDPOINT'\nexport const REMOVE_ENDPOINT = 'REMOVE_ENDPOINT'\nexport const SET_ENDPOINTS = 'SET_ENDPOINTS'\nexport const ADD_LABEL_TO_ENDPOINT = 'ADD_LABEL_TO_ENDPOINT'\nexport const REMOVE_LABEL_FROM_ENDPOINT = 'REMOVE_LABEL_FROM_ENDPOINT'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\ntype EndpointsSchema = NormalizedSchema<\n EndpointEntities,\n R\n>\n\nexport const removeEndpoint = (id: string) =>\n ({type: REMOVE_ENDPOINT, id} as const)\n\nexport const setEndpoint = (\n id: string,\n status: RemoteDataState,\n schema?: EndpointsSchema\n) =>\n ({\n type: SET_ENDPOINT,\n id,\n status,\n schema,\n } as const)\n\nexport const setEndpoints = (\n status: RemoteDataState,\n schema?: EndpointsSchema\n) =>\n ({\n type: SET_ENDPOINTS,\n status,\n schema,\n } as const)\n\nexport const removeLabelFromEndpoint = (endpointID: string, labelID: string) =>\n ({\n type: REMOVE_LABEL_FROM_ENDPOINT,\n endpointID,\n labelID,\n } as const)\n","// Types\nimport {RemoteDataState, RuleEntities} from 'src/types'\nimport {NormalizedSchema} from 'normalizr'\nimport {setLabelOnResource} from 'src/labels/actions/creators'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\nexport const SET_RULES = 'SET_RULES'\nexport const SET_RULE = 'SET_RULE'\nexport const SET_CURRENT_RULE = 'SET_CURRENT_RULE'\nexport const REMOVE_RULE = 'REMOVE_RULE'\nexport const REMOVE_LABEL_FROM_RULE = 'REMOVE_LABEL_FROM_RULE'\n\ntype RulesSchema = NormalizedSchema<\n RuleEntities,\n R\n>\nexport const setRules = (\n status: RemoteDataState,\n schema?: RulesSchema\n) =>\n ({\n type: SET_RULES,\n status,\n schema,\n } as const)\n\nexport const setRule = (\n id: string,\n status: RemoteDataState,\n schema?: RulesSchema\n) =>\n ({\n type: SET_RULE,\n id,\n status,\n schema,\n } as const)\n\nexport const setCurrentRule = (\n status: RemoteDataState,\n schema?: RulesSchema\n) =>\n ({\n type: SET_CURRENT_RULE,\n status,\n schema,\n } as const)\n\nexport const removeRule = (id: string) =>\n ({\n type: REMOVE_RULE,\n id,\n } as const)\n\nexport const removeLabelFromRule = (ruleID: string, labelID: string) =>\n ({\n type: REMOVE_LABEL_FROM_RULE,\n ruleID,\n labelID,\n } as const)\n","// Libraries\nimport {omit} from 'lodash'\nimport {nanoid} from 'nanoid'\n\n// Types\nimport {\n StatusRuleDraft,\n SlackNotificationRuleBase,\n SMTPNotificationRuleBase,\n PagerDutyNotificationRuleBase,\n TelegramNotificationRuleBase,\n NotificationEndpoint,\n NotificationRuleDraft,\n HTTPNotificationRuleBase,\n RuleStatusLevel,\n PostNotificationRule,\n GenRule,\n} from 'src/types'\nimport {RemoteDataState} from '@influxdata/clockface'\n\ntype RuleVariantFields =\n | SlackNotificationRuleBase\n | SMTPNotificationRuleBase\n | PagerDutyNotificationRuleBase\n | HTTPNotificationRuleBase\n | TelegramNotificationRuleBase\n\nconst defaultMessage =\n 'Notification Rule: ${ r._notification_rule_name } triggered by check: ${ r._check_name }: ${ r._message }'\n\nexport const getRuleVariantDefaults = (\n endpoints: NotificationEndpoint[],\n id: string\n): RuleVariantFields => {\n const endpoint = endpoints.find(e => e.id === id)\n\n switch (endpoint.type) {\n case 'slack': {\n return {messageTemplate: defaultMessage, channel: '', type: 'slack'}\n }\n\n case 'pagerduty': {\n return {messageTemplate: defaultMessage, type: 'pagerduty'}\n }\n\n case 'http': {\n return {type: 'http', url: ''}\n }\n\n case 'telegram': {\n // wrap all variable values into `` to prevent telegram's markdown errors\n const messageTemplate = defaultMessage.replace(\n /\\$\\{[^\\}]+\\}/g,\n x => `\\`${x}\\``\n )\n return {\n messageTemplate: messageTemplate,\n parseMode: 'MarkdownV2',\n disableWebPagePreview: false,\n type: 'telegram',\n }\n }\n\n default: {\n throw new Error(`Could not find NotificationEndpoint with id \"${id}\"`)\n }\n }\n}\n\ntype Change = 'changes from' | 'is equal to'\nexport const CHANGES: Change[] = ['changes from', 'is equal to']\n\nexport const activeChange = (status: StatusRuleDraft) => {\n const {previousLevel} = status.value\n\n if (!!previousLevel) {\n return 'changes from'\n }\n return 'is equal to'\n}\n\nexport const previousLevel = 'OK' as RuleStatusLevel\n\nexport const changeStatusRule = (\n status: StatusRuleDraft,\n changeType: Change\n): StatusRuleDraft => {\n if (changeType === 'is equal to') {\n return omit(status, 'value.previousLevel') as StatusRuleDraft\n }\n\n const {value} = status\n const newValue = {...value, previousLevel}\n\n return {...status, value: newValue}\n}\n\nexport const initRuleDraft = (orgID: string): NotificationRuleDraft => ({\n type: 'http',\n every: '10m',\n offset: '0s',\n url: '',\n orgID,\n name: '',\n activeStatus: 'active',\n status: RemoteDataState.NotStarted,\n endpointID: '',\n tagRules: [],\n labels: [],\n statusRules: [\n {\n cid: nanoid(),\n value: {\n currentLevel: 'CRIT',\n period: '1h',\n count: 1,\n },\n },\n ],\n description: '',\n})\n\n// Prepare a newly created rule for persistence\nexport const draftRuleToPostRule = (\n draftRule: NotificationRuleDraft\n): PostNotificationRule => {\n return {\n ...draftRule,\n status: draftRule.activeStatus,\n statusRules: draftRule.statusRules.map(r => r.value),\n tagRules: draftRule.tagRules\n .map(r => r.value)\n .filter(tr => tr.key && tr.value),\n } as PostNotificationRule\n}\n\nexport const newTagRuleDraft = () => ({\n cid: nanoid(),\n value: {\n key: '',\n value: '',\n operator: 'equal' as 'equal',\n },\n})\n\n// Prepare a persisted rule for editing\nexport const ruleToDraftRule = (rule: GenRule): NotificationRuleDraft => {\n const statusRules = rule.statusRules || []\n const tagRules = rule.tagRules || []\n return {\n ...rule,\n labels: rule.labels.map(l => l.id),\n status: RemoteDataState.Done,\n activeStatus: rule.status,\n offset: rule.offset || '',\n statusRules: statusRules.map(value => ({cid: nanoid(), value})),\n tagRules: tagRules.map(value => ({cid: nanoid(), value})),\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/css-unicode-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./CloudLogoWithCubo.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/css-unicode-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[3]!./CloudLogoWithCubo.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import {\n Icon,\n IconFont,\n InfluxColors,\n InfluxDBCloudLogo,\n} from '@influxdata/clockface'\nimport React, {FC} from 'react'\n\nimport './CloudLogoWithCubo.scss'\n\nconst CloudLogoWithCubo: FC = () => (\n
\n \n \n
\n)\n\nexport {CloudLogoWithCubo}\n","import React, {FC} from 'react'\nimport {FontWeight, Heading, HeadingElement} from '@influxdata/clockface'\n\nconst HelperText: FC = ({children}) => (\n \n {children}\n \n)\n\nexport default HelperText\n","// Libraries\nimport React, {FC, useState, ChangeEvent, MouseEvent} from 'react'\nimport {\n Button,\n ButtonShape,\n ButtonType,\n Columns,\n ComponentColor,\n ComponentSize,\n ComponentStatus,\n FlexBox,\n Form,\n Grid,\n Input,\n InputType,\n VisibilityInput,\n FlexDirection,\n JustifyContent,\n} from '@influxdata/clockface'\nimport HelperText from 'src/onboarding/components/HelperText'\n\n// Types\nimport {FormFieldValidation} from 'src/types'\n\n// Constants\nimport {CLOUD_URL} from 'src/shared/constants'\n\ninterface Props {\n buttonStatus: ComponentStatus\n emailValidation: FormFieldValidation\n email: string\n passwordValidation: FormFieldValidation\n password: string\n handleInputChange: (event: ChangeEvent) => void\n handleForgotPasswordClick: (event: MouseEvent) => void\n}\n\nexport const LoginForm: FC = ({\n buttonStatus,\n emailValidation,\n email,\n passwordValidation,\n password,\n handleInputChange,\n handleForgotPasswordClick,\n}) => {\n const [isVisible, toggleVisibility] = useState(false)\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n toggleVisibility(!isVisible)}\n />\n \n \n \n \n \n \n \n Forgot Password\n \n \n \n Sign Up\n \n \n \n \n )\n}\n","// Libraries\nimport React, {FC} from 'react'\nimport {ButtonBase, ButtonShape, ComponentSize} from '@influxdata/clockface'\n\ninterface Props {\n buttonText: string\n children: JSX.Element\n className?: string\n handleClick?: () => void\n}\n\nexport const SocialButton: FC = ({\n buttonText,\n children,\n className,\n handleClick,\n}) => {\n return (\n \n {children}\n {buttonText}\n \n )\n}\n","// Libraries\nimport React, {FC} from 'react'\nimport classnames from 'classnames'\n\ninterface Props {\n className?: string\n}\n\nexport const GoogleLogo: FC = ({className}) => (\n \n \n \n \n \n \n)\n","import React, {FC} from 'react'\nimport classnames from 'classnames'\n\ninterface Props {\n className?: string\n}\n\nexport const MicrosoftLogo: FC = ({className}) => {\n const microsoftClassname = classnames('microsoft-logo', className)\n return (\n \n Microsoft icon\n \n \n \n \n \n )\n}\n","// Libraries\nimport React, {PureComponent, ChangeEvent, FormEvent} from 'react'\nimport {connect, ConnectedProps} from 'react-redux'\nimport {\n AlignItems,\n ComponentSize,\n ComponentStatus,\n FlexBox,\n FlexDirection,\n Grid,\n Heading,\n HeadingElement,\n JustifyContent,\n Method,\n Panel,\n} from '@influxdata/clockface'\nimport auth0js, {WebAuth} from 'auth0-js'\n\n// Components\nimport {LoginForm} from 'src/onboarding/components/LoginForm'\nimport {SocialButton} from 'src/shared/components/SocialButton'\nimport {GoogleLogo} from 'src/shared/graphics/GoogleLogo'\nimport {MicrosoftLogo} from 'src/shared/graphics/MicrosoftLogo'\n\n// Types\nimport {Auth0Connection, FormFieldValidation} from 'src/types'\n\n// APIs & Actions\nimport {notify} from 'src/shared/actions/notifications'\nimport {passwordResetSuccessfully} from 'src/shared/copy/notifications'\nimport {getAuth0Config, getConnection} from 'src/authorizations/apis'\nimport {getFromLocalStorage} from 'src/localStorage'\n\nconst TOKEN_EXP = 10 * 60 * 1000 // 10 minutes\n\ninterface ErrorObject {\n emailError?: string\n passwordError?: string\n}\n\ninterface State {\n buttonStatus: ComponentStatus\n email: string\n emailError: string\n password: string\n passwordError: string\n}\n\ntype ReduxProps = ConnectedProps\ntype Props = ReduxProps\n\nclass LoginPageContents extends PureComponent {\n private auth0: typeof WebAuth\n private interval: NodeJS.Timeout\n\n state: State = {\n buttonStatus: ComponentStatus.Default,\n email: '',\n emailError: '',\n password: '',\n passwordError: '',\n }\n\n private getAuth0Config = async (\n redirectTo: string\n ): Promise => {\n try {\n const config = await getAuth0Config(redirectTo)\n this.auth0 = new auth0js.WebAuth({\n domain: config.domain,\n clientID: config.clientID,\n redirectUri: config.redirectURL,\n responseType: 'code',\n state: config.state,\n })\n } catch (error) {\n console.error(error)\n throw error\n }\n }\n\n public componentDidMount() {\n const redirectTo = getFromLocalStorage('redirectTo') || '/'\n this.getAuth0Config(redirectTo)\n // set an interval to get a new state session since the old one is only valid for ten minutes\n this.interval = setInterval(() => {\n this.getAuth0Config(redirectTo)\n }, TOKEN_EXP)\n }\n\n public componentWillUnmount() {\n // reset the auth0 client config\n this.auth0 = {}\n // reset the setInterval when unmounting\n clearInterval(this.interval)\n }\n\n render() {\n const {buttonStatus, email, emailError, password, passwordError} =\n this.state\n\n return (\n \n \n \n \n Continue with\n \n \n \n \n \n \n {\n this.handleSocialClick(Auth0Connection.Google)\n }}\n className=\"sign-up--google\"\n buttonText=\"Google\"\n >\n \n \n {\n this.handleSocialClick(Auth0Connection.Microsoft)\n }}\n buttonText=\"Microsoft\"\n >\n \n \n \n \n \n \n OR\n \n \n \n \n \n )\n }\n\n private get validateFieldValues(): {\n isValid: boolean\n errors: ErrorObject\n } {\n const {email, password} = this.state\n\n const emailError = email === '' ? 'Email is required' : ''\n const passwordError = password === '' ? 'Password is required' : ''\n\n const errors: ErrorObject = {\n emailError,\n passwordError,\n }\n\n const isValid = Object.values(errors).every(error => error === '')\n\n return {isValid, errors}\n }\n\n private formFieldTypeFactory = (\n errorMessage: string\n ): FormFieldValidation => ({\n errorMessage,\n hasError: errorMessage !== '',\n })\n\n private handleSubmit = async (event: FormEvent) => {\n event.preventDefault()\n const {email, password} = this.state\n\n if (email) {\n try {\n const connection = await getConnection(email)\n if (!!connection) {\n return this.auth0.authorize({connection})\n }\n } catch (e) {\n console.error(e)\n }\n }\n\n const {isValid, errors} = this.validateFieldValues\n\n if (!isValid) {\n this.setState(errors)\n return\n }\n\n this.setState({buttonStatus: ComponentStatus.Loading})\n\n this.auth0.login(\n {\n realm: Auth0Connection.Authentication,\n email,\n password,\n },\n error => {\n if (error) {\n this.setState({buttonStatus: ComponentStatus.Default})\n return this.displayErrorMessage(errors, error)\n }\n }\n )\n return\n }\n\n private displayErrorMessage = (errors, auth0Err) => {\n // eslint-disable-next-line\n if (/error in email/.test(auth0Err.code)) {\n this.setState({\n ...errors,\n emailError: 'Please enter a valid email address',\n })\n } else if (auth0Err.code === 'access_denied') {\n const emailError = `The email and password combination you submitted don't match. Please try again`\n this.setState({...errors, emailError})\n } else {\n const emailError = `We have been notified of an issue while accessing your account. If this issue persists, please contact support@influxdata.com`\n this.setState({...errors, emailError})\n }\n }\n\n private handleInputChange = (event: ChangeEvent) => {\n this.setState({[event.target.name]: event.target.value})\n }\n\n private handleSocialClick = (connection: Auth0Connection) => {\n this.auth0.authorize({\n connection,\n })\n }\n\n private handleForgotPasswordClick = event => {\n event.preventDefault()\n const {email} = this.state\n const {onNotify} = this.props\n if (!email) {\n this.setState({emailError: 'Please enter a valid email address'})\n return\n }\n this.auth0.changePassword(\n {\n email,\n connection: Auth0Connection.Authentication,\n },\n (error, successMessage) => {\n if (error) {\n this.setState({emailError: error.message})\n return\n }\n // notify user that change password email was sent successfully\n // By default auth0 will send a success message even if the operation fails:\n // https://community.auth0.com/t/auth0-changepassword-always-returns-ok-even-when-user-is-not-found/11081/8\n onNotify(passwordResetSuccessfully(successMessage))\n }\n )\n }\n}\n\nconst mdtp = {\n onNotify: notify,\n}\n\nconst connector = connect(null, mdtp)\n\nexport default connector(LoginPageContents)\n","// Libraries\nimport React, {FC, useCallback, useEffect, useState} from 'react'\nimport {\n AppWrapper,\n FontWeight,\n FunnelPage,\n Heading,\n HeadingElement,\n} from '@influxdata/clockface'\nimport {useHistory} from 'react-router-dom'\nimport Notifications from 'src/shared/components/notifications/Notifications'\nimport {CloudLogoWithCubo} from 'src/onboarding/components/CloudLogoWithCubo'\n\n// APIs\nimport {fetchIdentity} from 'src/identity/apis/auth'\n\n// Components\nimport ErrorBoundary from 'src/shared/components/ErrorBoundary'\nimport LoginPageContents from 'src/onboarding/containers/LoginPageContents'\nimport {CLOUD} from 'src/shared/constants'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\n\nconst EMPTY_HISTORY_STACK_LENGTH = 2\n\nexport const CloudLoginPage: FC = () => {\n const [hasValidSession, setHasValidSession] = useState(false)\n\n const getSessionValidity = useCallback(async () => {\n try {\n await fetchIdentity()\n\n setHasValidSession(true)\n } catch {\n setHasValidSession(false)\n }\n }, [])\n\n useEffect(() => {\n getSessionValidity()\n }, [getSessionValidity])\n\n const history = useHistory()\n\n if (hasValidSession) {\n if (history.length <= EMPTY_HISTORY_STACK_LENGTH) {\n // If the user directly navigates to the login page after having a session but no stack\n history.push('/')\n } else {\n history.goBack()\n }\n return null\n } else {\n if (isFlagEnabled('universalLogin')) {\n if (CLOUD) {\n fetch('/api/env/quartz-login-url')\n .then(async response => {\n const quartzUrl = await response.text()\n const redirectTo = new URLSearchParams(window.location.search).get(\n 'redirectTo'\n )\n let pathname\n try {\n // if there is a redirectTo, parse the pathname from redirect location\n const redirectToUrl = new URL(redirectTo).pathname\n pathname = redirectToUrl ?? ''\n } catch {\n // else, use current location's pathname\n pathname = window.location.pathname ?? ''\n }\n const redirectUrl = quartzUrl + pathname\n console.warn('Redirect to cloud url: ', redirectUrl)\n window.location.replace(redirectUrl)\n })\n .catch(error => console.error(error))\n return null\n }\n }\n }\n\n return (\n \n \n \n }>\n \n Log in to your InfluxDB Account\n \n \n \n \n \n )\n}\n","export const isOnboardingURL = () => {\n return !!window.location.pathname.match(/\\/onboarding/)\n}\n","import {\n hoursToNs,\n nsToHours,\n nsToSeconds,\n secondsToNs,\n} from 'src/billing/utils/timeHelpers'\n\n// Types\nimport {OperatorOrgLimits, OperatorRegions} from 'src/types'\nimport {IdentityUser} from 'src/client/unityRoutes'\n\ntype OperatorRole = IdentityUser['operatorRole'] | null\n\nexport const isUserOperator = (operatorRole: OperatorRole): boolean =>\n operatorRole === 'read-only' || operatorRole === 'read-write'\n\nconst updateMaxRetentionWithCallback = (\n limits: OperatorOrgLimits,\n cb: typeof nsToHours | typeof hoursToNs\n): OperatorOrgLimits => ({\n ...limits,\n bucket: {\n ...limits?.bucket,\n maxRetentionDuration: cb(limits?.bucket?.maxRetentionDuration),\n },\n})\n\nconst updateQueryTimeWithCallback = (\n limits: OperatorOrgLimits,\n cb: typeof nsToSeconds | typeof secondsToNs\n): OperatorOrgLimits => ({\n ...limits,\n rate: {\n ...limits?.rate,\n queryTime: cb(limits?.rate?.queryTime),\n },\n})\n\nexport const toDisplayLimits = (\n limits: OperatorOrgLimits\n): OperatorOrgLimits => {\n const newLimits = updateMaxRetentionWithCallback(limits, nsToHours)\n return updateQueryTimeWithCallback(newLimits, nsToSeconds)\n}\n\nexport const fromDisplayLimits = (\n displayLimits: OperatorOrgLimits\n): OperatorOrgLimits => {\n const newLimits = updateMaxRetentionWithCallback(displayLimits, hoursToNs)\n return updateQueryTimeWithCallback(newLimits, secondsToNs)\n}\n\nexport const getRegions = (\n provider: string,\n regions: {\n Azure?: OperatorRegions\n AWS?: OperatorRegions\n GCP?: OperatorRegions\n }\n) => {\n switch (provider) {\n case 'Azure':\n return regions.Azure\n case 'AWS':\n return regions.AWS\n case 'GCP':\n return regions.GCP\n default:\n return []\n }\n}\n","// Libraries\nimport HoneyBadger from 'honeybadger-js'\nimport {NormalizedSchema} from 'normalizr'\n\n// Types\nimport {Organization, RemoteDataState, OrgEntities} from 'src/types'\n\n// Action Types\nexport const SET_ORGS = 'SET_ORGS'\nexport const SET_ORG = 'SET_ORG'\nexport const ADD_ORG = 'ADD_ORG'\nexport const REMOVE_ORG = 'REMOVE_ORG'\nexport const EDIT_ORG = 'EDIT_ORG'\n\n// Action Definitions\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n\nexport const setOrgs = (\n status: RemoteDataState,\n schema?: NormalizedSchema\n) => {\n return {\n type: SET_ORGS,\n schema,\n status,\n } as const\n}\n\nexport const setOrg = (org: Organization) => {\n HoneyBadger.setContext({\n orgID: org.id,\n })\n return {\n type: SET_ORG,\n org,\n } as const\n}\n\nexport const addOrg = (schema: NormalizedSchema) =>\n ({\n type: ADD_ORG,\n schema,\n } as const)\n\nexport const removeOrg = (id: string) =>\n ({\n type: REMOVE_ORG,\n id,\n } as const)\n\nexport const editOrg = (schema: NormalizedSchema) =>\n ({\n type: EDIT_ORG,\n schema,\n } as const)\n","// Libraries\nimport {Dispatch} from 'redux'\nimport {push, RouterAction} from 'connected-react-router'\nimport {normalize} from 'normalizr'\n\n// APIs\nimport {getErrorMessage} from 'src/utils/api'\nimport * as api from 'src/client'\n\n// Constants\nimport {CLOUD} from 'src/shared/constants'\n\n// Actions\nimport {notify} from 'src/shared/actions/notifications'\nimport {\n Action,\n setOrgs,\n addOrg,\n removeOrg,\n editOrg,\n} from 'src/organizations/actions/creators'\n\nimport {\n orgCreateSuccess,\n orgCreateFailed,\n bucketCreateSuccess,\n bucketCreateFailed,\n orgEditSuccess,\n orgEditFailed,\n orgRenameSuccess,\n orgRenameFailed,\n} from 'src/shared/copy/notifications'\n\nimport {gaEvent} from 'src/cloud/utils/reporting'\n\nimport {getOrg} from 'src/organizations/selectors'\n\nimport {patchOrg} from 'src/client/unityRoutes'\n\n// Schemas\nimport {orgSchema, arrayOfOrgs} from 'src/schemas'\n\n// Types\nimport {\n Organization,\n RemoteDataState,\n NotificationAction,\n Bucket,\n AppThunk,\n OrgEntities,\n GetState,\n} from 'src/types'\n\nexport const getOrganizations =\n () =>\n async (\n dispatch: Dispatch,\n getState: GetState\n ): Promise => {\n try {\n dispatch(setOrgs(RemoteDataState.Loading))\n\n const resp = await api.getOrgs({})\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n const {orgs} = resp.data\n\n const organizations = normalize(\n orgs,\n arrayOfOrgs\n )\n\n gaEvent('cloudAppOrgIdReady', {\n identity: {\n organizationIds: organizations.result,\n },\n })\n\n dispatch(setOrgs(RemoteDataState.Done, organizations))\n\n return orgs\n } catch (error) {\n console.error(error)\n if (\n getOrg(getState())?.id &&\n error.message === 'organization not found'\n ) {\n // if we have an org in state but the API says it's not found, remove it from state\n dispatch(removeOrg(getOrg(getState()).id))\n }\n dispatch(setOrgs(RemoteDataState.Error, null))\n }\n }\n\nexport const createOrgWithBucket =\n (org: Organization, bucket: Bucket): AppThunk> =>\n async (dispatch: Dispatch) => {\n let createdOrg: Organization\n\n try {\n const orgResp = await api.postOrg({data: org})\n if (orgResp.status !== 201) {\n throw new Error(orgResp.data.message)\n }\n\n createdOrg = orgResp.data\n\n dispatch(notify(orgCreateSuccess()))\n\n const normOrg = normalize(\n createdOrg,\n orgSchema\n )\n\n dispatch(addOrg(normOrg))\n dispatch(push(`/orgs/${createdOrg.id}`))\n\n const bucketResp = await api.postBucket({\n data: {...bucket, orgID: createdOrg.id},\n })\n\n if (bucketResp.status !== 201) {\n throw new Error(bucketResp.data.message)\n }\n\n dispatch(notify(bucketCreateSuccess()))\n } catch (error) {\n console.error(error)\n\n if (!createdOrg) {\n dispatch(notify(orgCreateFailed()))\n }\n const message = getErrorMessage(error)\n dispatch(notify(bucketCreateFailed(message)))\n }\n }\n\nexport const createOrg =\n (org: Organization) =>\n async (\n dispatch: Dispatch\n ): Promise => {\n try {\n const resp = await api.postOrg({data: org})\n\n if (resp.status !== 201) {\n throw new Error(resp.data.message)\n }\n\n const createdOrg = resp.data\n const normOrg = normalize(\n createdOrg,\n orgSchema\n )\n\n dispatch(addOrg(normOrg))\n dispatch(push(`/orgs/${createdOrg.id}`))\n\n dispatch(notify(orgCreateSuccess()))\n } catch (e) {\n console.error(e)\n dispatch(notify(orgCreateFailed()))\n }\n }\n\nexport const deleteOrg =\n (org: Organization) =>\n async (dispatch: Dispatch): Promise => {\n try {\n const resp = await api.deleteOrg({orgID: org.id})\n\n if (resp.status !== 204) {\n throw new Error(resp.data.message)\n }\n\n dispatch(removeOrg(org.id))\n } catch (e) {\n console.error(e)\n }\n }\n\nexport const updateOrg =\n (org: Organization) =>\n async (dispatch: Dispatch) => {\n try {\n const resp = await api.patchOrg({orgID: org.id, data: org})\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n const updatedOrg = resp.data\n const normOrg = normalize(\n updatedOrg,\n orgSchema\n )\n\n dispatch(editOrg(normOrg))\n\n dispatch(notify(orgEditSuccess()))\n } catch (error) {\n dispatch(notify(orgEditFailed()))\n console.error(error)\n }\n }\n\nexport const renameOrg =\n (originalName: string, org: Organization): AppThunk> =>\n async (dispatch: Dispatch) => {\n try {\n const resp = CLOUD\n ? await patchOrg({\n orgId: org.id,\n data: {name: org.name, description: org.description},\n })\n : await api.patchOrg({\n orgID: org.id,\n data: org,\n })\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n const updatedOrg = resp.data\n\n const normOrg = normalize(\n updatedOrg,\n orgSchema\n )\n\n dispatch(editOrg(normOrg))\n dispatch(notify(orgRenameSuccess(updatedOrg.name)))\n } catch (error) {\n dispatch(notify(orgRenameFailed(originalName)))\n console.error(error)\n }\n }\n","// Libraries\nimport {get} from 'lodash'\n\n// Types\nimport {AppState, Organization} from 'src/types'\n\nexport const isOrgIOx = (state: AppState): boolean => {\n const org: Organization = getOrg(state)\n\n return Boolean(\n org &&\n org.defaultStorageType &&\n org.defaultStorageType.toLowerCase() === 'iox'\n )\n}\n\nexport const selectOrgCreationDate = (state: AppState): string => {\n const org = getOrg(state)\n\n return org?.createdAt\n}\n\nexport const getOrg = (state: AppState): Organization => {\n return get(state, 'resources.orgs.org', null)\n}\n\nexport const getOrgByID = (state: AppState, id: string) => {\n const orgs = get(state, 'resources.orgs.byID')\n\n if (!orgs) {\n throw new Error('No orgs have been set')\n }\n\n if (!orgs[id]) {\n throw new Error(\n `No org with id \"${id}\" found in orgs state: ${JSON.stringify(\n orgs,\n null,\n 2\n )}\"`\n )\n }\n\n return orgs[id]\n}\n","import {OverlayID} from 'src/overlays/reducers/overlays'\nimport {OverlayParams} from 'src/types'\n\nexport enum ActionTypes {\n ShowOverlay = 'SHOW_OVERLAY',\n DismissOverlay = 'DISMISS_OVERLAY',\n SetOverlayParams = 'SET_OVERLAY_PARAMS',\n}\n\nexport type Actions = ShowOverlay | DismissOverlay | SetOverlayParams\n\nexport interface ShowOverlay {\n type: ActionTypes.ShowOverlay\n payload: {\n overlayID: OverlayID\n overlayParams: OverlayParams\n onClose: () => void\n }\n}\n\nexport const showOverlay = (\n overlayID: OverlayID,\n overlayParams: OverlayParams,\n onClose: () => void\n): ShowOverlay => {\n return {\n type: ActionTypes.ShowOverlay,\n payload: {overlayID, overlayParams, onClose},\n }\n}\n\nexport interface DismissOverlay {\n type: ActionTypes.DismissOverlay\n}\n\nexport const dismissOverlay = (): DismissOverlay => {\n return {\n type: ActionTypes.DismissOverlay,\n }\n}\n\nexport interface SetOverlayParams {\n type: ActionTypes.SetOverlayParams\n payload: {\n overlayParams: OverlayParams\n }\n}\n\nexport const setOverlayParams = (\n overlayParams: OverlayParams\n): SetOverlayParams => {\n return {\n type: ActionTypes.SetOverlayParams,\n payload: {overlayParams},\n }\n}\n","export const SET_SCROLL = 'SET_SCROLL'\nexport const SET_CELL_MOUNT = 'SET_CELL_MOUNT'\nexport const SET_DASHBOARD_VISIT = 'SET_DASHBOARD_VISIT'\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n\nexport type ComponentKey = 'dashboard'\nexport type ScrollState = 'not scrolled' | 'scrolled'\n\nexport const setScroll = (component: ComponentKey, scroll: ScrollState) =>\n ({\n type: SET_SCROLL,\n component,\n scroll,\n } as const)\n\nexport const setCellMount = (cellID: string, mountStartMs: number) =>\n ({\n type: SET_CELL_MOUNT,\n cellID,\n mountStartMs,\n } as const)\n\nexport const setDashboardVisit = (dashboardID: string, startVisitMs: number) =>\n ({\n type: SET_DASHBOARD_VISIT,\n dashboardID,\n startVisitMs,\n } as const)\n","import React, {FC} from 'react'\nimport {\n SpinnerContainer,\n TechnoSpinner,\n RemoteDataState,\n} from '@influxdata/clockface'\n\ninterface Props {\n loading?: RemoteDataState\n children?: React.ReactChild\n}\n\nconst PageSpinner: FC = ({loading, children}) => {\n return (\n }\n >\n {children}\n \n )\n}\n\nexport default PageSpinner\n","import React from 'react'\n\nexport const TOOLTIP_PORTAL_ID = 'tooltip-portal'\n\nconst TooltipPortal = () => {\n return
\n}\n\nexport default TooltipPortal\n","// TODO: temporary fix until we implement pagination https://github.com/influxdata/influxdb/pull/17336\n// Different resources *might* have different limits\nexport const LIMIT = 100\nexport const BUCKET_LIMIT = 100\nexport const RULE_LIMIT = 100\nexport const DASHBOARD_LIMIT = 100\nexport const TASK_LIMIT = 500\n","// Libraries\nimport {get} from 'lodash'\nimport {createSelector} from 'reselect'\n\n// Types\nimport {\n AppState,\n Bucket,\n Label,\n RemoteDataState,\n ResourceType,\n Secret,\n Task,\n Telegraf,\n} from 'src/types'\nimport {PermissionTypes} from 'src/authorizations/utils/permissions'\n\nexport const getStatus = (\n {resources}: AppState,\n resource: ResourceType\n): RemoteDataState => {\n return resources[resource].status\n}\n\nexport const getAll = (\n {resources}: AppState,\n resource: ResourceType\n): R[] => {\n const allIDs: string[] = resources[resource].allIDs\n const byID: {[uuid: string]: R} = resources[resource].byID\n return (allIDs ?? []).map(id => byID[id])\n}\n\nexport const getAllBuckets = (state: AppState): Bucket[] =>\n getAll(state, ResourceType.Buckets)\n\nexport const getAllTasks = (state: AppState): Task[] =>\n getAll(state, ResourceType.Tasks) || []\n\nexport const getAllTelegrafs = (state: AppState): Telegraf[] =>\n getAll(state, ResourceType.Telegrafs)\n\nexport const hasNoTasks = (state: AppState): boolean =>\n getAll(state, ResourceType.Tasks).length === 0\n\nexport const getAllSecrets = (state: AppState): Secret[] =>\n getAll(state, ResourceType.Secrets) || []\n\nexport const getToken = (state: AppState): string =>\n get(state, 'dataLoading.dataLoaders.token', '') || ''\n\nexport const getByID = (\n {resources}: AppState,\n type: ResourceType,\n id: string\n): R => {\n const byID = get(resources, `${type}.byID`)\n\n if (!byID) {\n throw new Error(`\"${type}\" resource has yet not been set`)\n }\n\n const resource = get(byID, `${id}`, null)\n\n return resource\n}\n\nexport const getLabels = (state: AppState, labelIDs: string[]): Label[] => {\n return labelIDs\n .map(labelID => getByID
\n )\n}\n\nexport default TagSelectorCount\n","import React, {SFC} from 'react'\n\ninterface Props {\n text: string\n className?: string\n}\n\nconst WaitingText: SFC = ({text, className}) => {\n return
{text}
\n}\n\nexport default WaitingText\n","// Libraries\nimport React, {PureComponent, ChangeEvent} from 'react'\nimport ReactDatePicker from 'react-datepicker'\nimport {connect} from 'react-redux'\nimport {DateTime} from 'luxon'\n\n// Components\nimport {Input, Grid, Form} from '@influxdata/clockface'\n\n// Styles\nimport 'react-datepicker/dist/react-datepicker.css'\n\n// Types\nimport {Columns, ComponentSize, ComponentStatus} from '@influxdata/clockface'\nimport {TimeZone} from 'src/types'\n\n// Utils\nimport {createDateTimeFormatter} from 'src/utils/datetime/formatters'\nimport {getTimeZone} from 'src/dashboards/selectors'\n\n// Constants\nimport {\n DEFAULT_TIME_FORMAT,\n STRICT_ISO8061_TIME_FORMAT,\n} from 'src/utils/datetime/constants'\nimport {\n getLuxonFormatString,\n isValidStrictly,\n} from 'src/utils/datetime/validator'\nimport {isISODate} from 'src/shared/utils/dateTimeUtils'\nimport {isValidDatepickerFormat} from 'src/shared/components/dateRangePicker/utils'\n\ninterface Props {\n label: string\n dateTime: string\n timeZone: TimeZone\n maxDate?: string\n minDate?: string\n onSelectDate: (date: string) => void\n onInvalidInput: () => void\n}\n\ninterface State {\n inputValue: string\n inputFormat: string\n}\n\nconst getFormat = (d: string): string => {\n if (isValidStrictly(d, 'YYYY-MM-DD')) {\n return 'YYYY-MM-DD'\n }\n if (isValidStrictly(d, 'YYYY-MM-DD HH:mm')) {\n return 'YYYY-MM-DD HH:mm'\n }\n if (isValidStrictly(d, 'YYYY-MM-DD HH:mm:ss')) {\n return 'YYYY-MM-DD HH:mm:ss'\n }\n if (isValidStrictly(d, 'YYYY-MM-DD HH:mm:ss.sss')) {\n return 'YYYY-MM-DD HH:mm:ss.sss'\n }\n if (isISODate(d)) {\n return STRICT_ISO8061_TIME_FORMAT\n }\n return null\n}\n\nclass DatePicker extends PureComponent {\n private inCurrentMonth: boolean = false\n state = {\n inputValue: null,\n inputFormat: DEFAULT_TIME_FORMAT,\n }\n\n public componentDidUpdate() {\n if (this.isInputValueInvalid) {\n this.props.onInvalidInput()\n }\n }\n\n public render() {\n const {dateTime, label, maxDate, minDate, timeZone} = this.props\n\n const date = new Date(dateTime)\n\n if (timeZone === 'UTC') {\n // (sahas): the react-datepicker forces the timezone to be the Local timezone.\n // so when our app in in UTC mode, to make the datepicker respect that timezone,\n // we have to manually manipulate the Local time and add the offset so that it displays the correct UTC time in the picker\n date.setMinutes(date.getMinutes() + date.getTimezoneOffset())\n }\n\n return (\n
\n \n \n \n \n \n
\n \n
\n
\n
\n
\n )\n }\n\n private get inputValue(): string {\n const {dateTime, timeZone} = this.props\n const {inputValue, inputFormat} = this.state\n\n if (this.isInputValueInvalid) {\n return inputValue\n }\n\n // just return the ISO format string as is, no need to use our date-time Formatter\n if (isISODate(dateTime) && inputFormat === STRICT_ISO8061_TIME_FORMAT) {\n return dateTime\n }\n\n if (inputFormat) {\n const formatter = createDateTimeFormatter(inputFormat, timeZone)\n return formatter.format(new Date(dateTime))\n }\n const formatter = createDateTimeFormatter(DEFAULT_TIME_FORMAT, timeZone)\n\n return formatter.format(new Date(dateTime))\n }\n\n private get isInputValueInvalid(): boolean {\n const {inputValue} = this.state\n if (inputValue === null) {\n return false\n }\n\n return !isValidDatepickerFormat(inputValue)\n }\n\n private get inputErrorMessage(): string | undefined {\n if (this.isInputValueInvalid) {\n return 'Format must be YYYY-MM-DD HH:mm:ss'\n }\n\n return '\\u00a0\\u00a0'\n }\n\n private get inputStatus(): ComponentStatus {\n if (this.isInputValueInvalid) {\n return ComponentStatus.Error\n }\n return ComponentStatus.Default\n }\n\n private dayClassName = (date: Date) => {\n const day = date.getDate()\n\n if (day === 1) {\n this.inCurrentMonth = !this.inCurrentMonth\n }\n\n if (this.inCurrentMonth) {\n return 'range-picker--day-in-month'\n }\n\n return 'range-picker--day'\n }\n\n private handleSelectDate = (date: Date): void => {\n const {onSelectDate, timeZone} = this.props\n\n if (timeZone === 'UTC') {\n // (sahas): the react-datepicker forces the timezone to be the Local timezone.\n // so when our app in in UTC mode, to make the datepicker respect that timezone,\n // we have to manually manipulate the Local time and add the offset so that it displays the correct UTC time in the picker\n // because the time now needs to be back to UTC, we subtract the offset added below in code, in the handleSelectDate\n date.setMinutes(date.getMinutes() - date.getTimezoneOffset())\n }\n\n onSelectDate(date.toISOString())\n }\n\n private handleChangeInput = (e: ChangeEvent): void => {\n const {onSelectDate, timeZone} = this.props\n const value = e.target.value\n\n if (isValidDatepickerFormat(value)) {\n let inputDate\n if (isISODate(value)) {\n inputDate = new Date(DateTime.fromISO(value))\n } else {\n inputDate = new Date(\n DateTime.fromFormat(value, getLuxonFormatString(getFormat(value)))\n )\n }\n\n if (timeZone === 'UTC' && !isISODate(value)) {\n // (sahas): the react-datepicker forces the timezone to be the Local timezone.\n // so when our app in in UTC mode, to make the datepicker respect that timezone,\n // we have to manually manipulate the Local time and add the offset so that it displays the correct UTC time in the picker\n // because the time now needs to be back to UTC, we subtract the offset added below in code, in the handleSelectDate\n inputDate.setMinutes(\n inputDate.getMinutes() - inputDate.getTimezoneOffset()\n )\n }\n\n onSelectDate(inputDate.toISOString())\n this.setState({inputValue: value, inputFormat: getFormat(value)})\n return\n }\n\n this.setState({inputValue: value, inputFormat: null})\n }\n}\n\nconst mapStateToProps = state => ({\n timeZone: getTimeZone(state),\n})\n\nexport default connect(mapStateToProps)(DatePicker)\n","import {isISODate} from 'src/shared/utils/dateTimeUtils'\n\nimport {isValidStrictly} from 'src/utils/datetime/validator'\n\nexport const isValidDatepickerFormat = (d: string): boolean => {\n return (\n isValidStrictly(d, 'YYYY-MM-DD HH:mm') ||\n isValidStrictly(d, 'YYYY-MM-DD HH:mm:ss') ||\n isValidStrictly(d, 'YYYY-MM-DD HH:mm:ss.sss') ||\n isValidStrictly(d, 'YYYY-MM-DD') ||\n isISODate(d)\n )\n}\n","import {AppState, Notification} from 'src/types'\n\nexport const getNotifications = (state: AppState): Notification[] => {\n const notifications = state.notifications || []\n\n return notifications\n}\n","import React, {FC} from 'react'\nimport {useSelector, useDispatch} from 'react-redux'\nimport {get} from 'lodash'\nimport {ComponentSize, Gradients, Notification} from '@influxdata/clockface'\n\n// Utils\nimport {dismissNotification} from 'src/shared/actions/notifications'\n\n// Types\nimport {NotificationStyle} from 'src/types'\n\n// Selectors\nimport {getNotifications} from 'src/shared/selectors/notifications'\n\nconst matchGradientToColor = (style: NotificationStyle): Gradients => {\n const converter = {\n [NotificationStyle.Primary]: Gradients.Info,\n [NotificationStyle.Warning]: Gradients.WarningLight,\n [NotificationStyle.Success]: Gradients.HotelBreakfast,\n [NotificationStyle.Error]: Gradients.DangerDark,\n [NotificationStyle.Info]: Gradients.DefaultLight,\n [NotificationStyle.Secondary]: Gradients.SecondaryDark,\n }\n return get(converter, style, Gradients.DefaultLight)\n}\n\nconst Notifications: FC = () => {\n const notifications = useSelector(getNotifications)\n const dispatch = useDispatch()\n\n return (\n <>\n {notifications.map(\n ({duration, icon, id, message, style, styles = {}, buttonElement}) => {\n const gradient = matchGradientToColor(style)\n\n const handleDismiss = (): void => {\n dispatch(dismissNotification(id))\n }\n\n return (\n \n \n {message && (\n {message}\n )}\n {buttonElement && buttonElement(handleDismiss)}\n \n \n )\n }\n )}\n \n )\n}\n\nexport default Notifications\n","// Libraries\nimport React, {Component, ChangeEvent} from 'react'\nimport {debounce} from 'lodash'\n\n// Components\nimport {ComponentSize, ComponentStatus, Input} from '@influxdata/clockface'\n\n// Types\nimport {IconFont} from '@influxdata/clockface'\n\n// Decorators\nimport {ErrorHandling} from 'src/shared/decorators/errors'\nimport ErrorBoundary from 'src/shared/components/ErrorBoundary'\n\ninterface Props {\n onSearch: (searchTerm: string) => void\n placeholderText: string\n searchTerm: string\n testID: string\n tabIndex?: number\n autoFocus?: boolean\n status?: ComponentStatus\n size?: ComponentSize\n}\n\ninterface State {\n searchTerm: string\n}\n\n@ErrorHandling\nexport class SearchWidget extends Component {\n public static defaultProps = {\n widthPixels: 440,\n placeholderText: 'Search...',\n searchTerm: '',\n testID: 'search-widget',\n autoFocus: false,\n tabIndex: 0,\n size: ComponentSize.Small,\n }\n\n public componentDidUpdate(prevProps: Props) {\n if (this.props.searchTerm !== prevProps.searchTerm) {\n this.setState({searchTerm: this.props.searchTerm})\n }\n }\n\n constructor(props: Props) {\n super(props)\n this.state = {\n searchTerm: this.props.searchTerm,\n }\n }\n\n public UNSAFE_componentWillMount() {\n this.handleSearch = debounce(this.handleSearch, 50)\n }\n\n public render() {\n const {\n placeholderText,\n status = ComponentStatus.Default,\n testID,\n tabIndex = 0,\n autoFocus,\n size,\n } = this.props\n const {searchTerm} = this.state\n\n return (\n \n \n \n )\n }\n\n private handleSearch = (): void => {\n this.props.onSearch(this.state.searchTerm)\n }\n\n private handleBlur = (e: ChangeEvent): void => {\n this.setState({searchTerm: e.target.value}, this.handleSearch)\n }\n\n private handleChange = (e: ChangeEvent): void => {\n this.setState({searchTerm: e.target.value}, this.handleSearch)\n }\n private clear = (): void => {\n this.setState({searchTerm: ''}, this.handleSearch)\n }\n}\n","// Libraries\nimport React, {FC, ReactNode} from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport remarkExternalLinks from 'remark-external-links'\n\nimport {CLOUD, MARKDOWN_UNSUPPORTED_IMAGE} from 'src/shared/constants/index'\n\ninterface Props {\n className?: string\n cloudRenderers?: ReactNode\n text: string\n escapeHtml?: boolean\n}\n\ninterface ImageProps {\n src?: string\n alt?: string\n}\n\n// In cloud environments, we want to render the literal markdown image tag\n// but ReactMarkdown expects a React element wrapping an image to be returned,\n// so we use any\n// see: https://github.com/rexxars/react-markdown/blob/master/index.d.ts#L101\nconst disallowedImageRenderer: any = (): any => MARKDOWN_UNSUPPORTED_IMAGE\n\n// In OSS we want to allow users to render images to external sources, requiring\n// this custom renderer. If you want to disallow these, remove this renderer or\n// change to the disallowedImageRenderer instead.\nconst allowedImageRenderer: FC = ({src, alt}) => {\n return (\n
\n {alt}\n
\n )\n}\n\nconst remarkPlugins = [remarkExternalLinks]\n\nexport const MarkdownRenderer: FC = ({className = '', text}) => {\n // don't parse images in cloud environments to prevent arbitrary script execution via images\n if (CLOUD) {\n return (\n \n {text}\n \n )\n }\n\n // load images locally to your heart's content. caveat emptor\n return (\n \n {text}\n \n )\n}\n","// Libraries\nimport React, {PureComponent} from 'react'\n\n// Components\nimport {DapperScrollbars} from '@influxdata/clockface'\n\n// Utils\nimport {humanizeNote} from 'src/dashboards/utils/notes'\n\n// Decorators\nimport {ErrorHandling} from 'src/shared/decorators/errors'\n\nimport {MarkdownRenderer} from 'src/shared/components/views/MarkdownRenderer'\n\ninterface Props {\n text: string\n}\n\n@ErrorHandling\nclass ScrollableMarkdown extends PureComponent {\n public render() {\n const {text} = this.props\n\n return (\n \n
\n \n
\n
\n )\n }\n}\n\nexport default ScrollableMarkdown\n","import {sortBy} from 'lodash'\nimport chroma from 'chroma-js'\n\nimport {\n THRESHOLD_COLORS,\n BASE_THRESHOLD_ID,\n THRESHOLD_TYPE_TEXT,\n} from 'src/shared/constants/thresholds'\n\nimport {Color} from 'src/types/colors'\n\nconst getLegibleTextColor = bgColorHex => {\n const darkText = '#292933'\n const lightText = '#ffffff'\n\n const [red, green, blue] = chroma(bgColorHex).rgb()\n const average = (red + green + blue) / 3\n const mediumGrey = 128\n\n return average > mediumGrey ? darkText : lightText\n}\n\nconst findNearestCrossedThreshold = (colors, lastValue) => {\n const sortedColors = sortBy(colors, color => Number(color.value))\n\n // If the value is less than zero, clamp to the lowest value\n // See https://github.com/influxdata/influxdb/issues/20750\n if (lastValue < 0) {\n return sortedColors[0]\n }\n\n const nearestCrossedThreshold = sortedColors\n .filter(color => lastValue >= color.value)\n .pop()\n\n return nearestCrossedThreshold\n}\n\nexport const generateThresholdsListHexs = ({\n colors,\n lastValue,\n cellType = 'line',\n}: {\n colors: Color[]\n lastValue: string | number | null\n cellType: string\n}) => {\n const defaultColoring = {\n bgColor: null,\n textColor: cellType === 'table' ? '#BEC2CC' : THRESHOLD_COLORS[11].hex,\n }\n\n const lastValueNumber = Number(lastValue) || 0\n\n if (!colors || !colors.length) {\n return defaultColoring\n }\n\n // baseColor is expected in all cases\n const baseColor = colors.find(color => color.id === BASE_THRESHOLD_ID) || {\n hex: defaultColoring.textColor,\n }\n\n if (!lastValue && lastValue !== 0) {\n return {...defaultColoring, textColor: baseColor.hex}\n }\n\n // If the single stat is above a line graph never have a background color\n if (cellType === 'line-plus-single-stat') {\n return baseColor\n ? {bgColor: null, textColor: baseColor.hex}\n : defaultColoring\n }\n\n // When there is only a base color and it's applied to the text\n const shouldColorizeText = !!colors.find(\n color => color.type === THRESHOLD_TYPE_TEXT\n )\n\n if (shouldColorizeText && colors.length === 1 && baseColor) {\n return {bgColor: null, textColor: baseColor.hex}\n }\n\n if (shouldColorizeText && colors.length === 1) {\n return defaultColoring\n }\n\n // When there's multiple colors and they're applied to the text\n if (shouldColorizeText && colors.length > 1) {\n const nearestCrossedThreshold = findNearestCrossedThreshold(\n colors,\n lastValueNumber\n )\n\n return {bgColor: null, textColor: nearestCrossedThreshold.hex}\n }\n\n // When there is only a base color and it's applued to the background\n if (colors.length === 1) {\n return {\n bgColor: baseColor.hex,\n textColor: getLegibleTextColor(baseColor.hex),\n }\n }\n\n // When there are multiple colors and they're applied to the background\n if (colors.length > 1) {\n const nearestCrossedThreshold = findNearestCrossedThreshold(\n colors,\n lastValueNumber\n )\n\n const bgColor = nearestCrossedThreshold\n ? nearestCrossedThreshold.hex\n : baseColor.hex\n\n return {bgColor, textColor: getLegibleTextColor(bgColor)}\n }\n\n return {bgColor: null, textColor: baseColor.hex}\n}\n","import {FluxToolbarFunction} from 'src/types/shared'\n\nexport const DOCS_URL_VERSION = !!process.env.CLOUD_URL ? 'cloud' : 'latest'\n\nexport const FROM: FluxToolbarFunction = {\n name: 'from',\n args: [\n {\n name: 'bucket',\n desc: 'Name of the bucket to query.',\n type: 'String',\n },\n {\n name: 'bucketID',\n desc: 'String-encoded ID of the bucket to query.',\n type: 'String',\n },\n {\n name: 'host',\n desc: 'URL of the InfluxDB instance to query (only required when querying a different organization or remote InfluxDB instance).',\n type: 'String',\n },\n {\n name: 'org',\n desc: 'Organization name (only required when querying a different organization or remote InfluxDB instance).',\n type: 'String',\n },\n {\n name: 'orgID',\n desc: 'String-encoded organization ID (only required when querying a different organization or remote InfluxDB instance).',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'InfluxDB authentication token (only required when querying a different organization or remote InfluxDB instance).',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Used to retrieve data from an InfluxDB data source. It returns a stream of tables from the specified bucket. Each unique series is contained within its own table. Each record in the table represents a single point in the series.',\n example: 'from(bucket: \"example-bucket\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/inputs/from/`,\n}\n\nexport const RANGE: FluxToolbarFunction = {\n name: 'range',\n args: [\n {\n name: 'start',\n desc: 'The earliest time to include in results.',\n type: 'Duration | Time | Integer',\n },\n {\n name: 'stop',\n desc: 'The latest time to include in results. Defaults to `now()`.',\n type: 'Duration | Time | Integer',\n },\n ],\n package: '',\n desc: \"Filters records based on time bounds. Each input table's records are filtered to contain only records that exist within the time bounds. Each input table's group key value is modified to fit within the time bounds. Tables where all records exists outside the time bounds are filtered entirely.\",\n example: 'range(start: -15m, stop: now())',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/range/`,\n}\n\nexport const MEAN: FluxToolbarFunction = {\n name: 'mean',\n args: [\n {\n name: 'column',\n desc: 'The column on which to compute the mean. Defaults to `\"_value\"`',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Computes the mean or average of non-null records in the input table.',\n example: 'mean(column: \"_value\")',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/mean/`,\n}\n\nexport const UNION: FluxToolbarFunction = {\n name: 'union',\n args: [\n {\n name: 'tables',\n desc: 'Specifies the streams to union together. There must be at least two streams.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Concatenates two or more input streams into a single output stream. The output schemas of the `union()` function is the union of all input schemas. A sort operation may be added if a specific sort order is needed.',\n example: 'union(tables: [table1, table2])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/union/`,\n}\n\nexport const MATH_ABS: FluxToolbarFunction = {\n name: 'math.abs',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the absolute value of x.',\n example: 'math.abs(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/abs/`,\n}\n\nexport const MATH_FLOOR: FluxToolbarFunction = {\n name: 'math.floor',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the greatest integer value less than or equal to x.',\n example: 'math.floor(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/floor/`,\n}\n\nexport const STRINGS_TITLE: FluxToolbarFunction = {\n name: 'strings.title',\n args: [\n {\n name: 'v',\n desc: 'The string value to convert.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Converts a string to title case.',\n example: 'strings.title(v: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/title/`,\n}\n\nexport const STRINGS_TRIM: FluxToolbarFunction = {\n name: 'strings.trim',\n args: [\n {\n name: 'v',\n desc: 'The string value to trim.',\n type: 'String',\n },\n {\n name: 'cutset',\n desc: 'The leading and trailing characters to trim from the string value. Only characters that match exactly are trimmed.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Removes specified leading and trailing characters from a string.',\n example: 'strings.trim(v: r._value, cutset: \"_\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/trim/`,\n}\n\nexport const FLUX_FUNCTIONS: FluxToolbarFunction[] = [\n {\n name: 'aggregate.rate',\n args: [\n {\n name: 'every',\n desc: 'Duration of windows.',\n type: 'Duration',\n },\n {\n name: 'groupColumns',\n desc: 'List of columns to group by. Defaults to [].',\n type: 'Array of Strings',\n },\n {\n name: 'unit',\n desc: 'Time duration to use when calculating the rate. Defaults to `1s`.',\n type: 'Duration',\n },\n ],\n package: 'experimental/aggregate',\n desc: 'Calculates the rate of change per windows of time.',\n example: 'aggregate.rate(every: 1m, unit: 1s)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/aggregate/rate/`,\n },\n {\n name: 'aggregateWindow',\n args: [\n {\n name: 'every',\n desc: 'The duration of windows.',\n type: 'Duration',\n },\n {\n name: 'fn',\n desc: 'The aggregate function used in the operation.',\n type: 'Unquoted String',\n },\n {\n name: 'column',\n desc: 'The column on which to operate. Defaults to `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'timeSrc',\n desc: 'The \"time source\" column from which time is copied for the aggregate record. Defaults to `\"_stop\"`.',\n type: 'String',\n },\n {\n name: 'timeDst',\n desc: 'The \"time destination\" column to which time is copied for the aggregate record. Defaults to `\"_time\"`.',\n type: 'String',\n },\n {\n name: 'createEmpty',\n desc: 'For windows without data, this will create an empty window and fill it with a `null` aggregate value.',\n type: 'Boolean',\n },\n ],\n package: '',\n desc: 'Applies an aggregate function to fixed windows of time.',\n example: 'aggregateWindow(every: v.windowPeriod, fn: mean)',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/aggregatewindow/`,\n },\n {\n name: 'alerta.alert',\n args: [\n {\n name: 'url',\n desc: 'Alerta URL.',\n type: 'String',\n },\n {\n name: 'apiKey',\n desc: 'Alerta API key.',\n type: 'String',\n },\n {\n name: 'resource',\n desc: 'Resource associated with the alert.',\n type: 'String',\n },\n {\n name: 'event',\n desc: 'Event name.',\n type: 'String',\n },\n {\n name: 'environment',\n desc: 'Alert environment. Default is `\"\"`. Valid values are `\"\"`, `\"Production\"`, or `\"Development\"`.',\n type: 'String',\n },\n {\n name: 'severity',\n desc: 'Event severity.',\n type: 'String',\n },\n {\n name: 'service',\n desc: 'List of affected services. Default is `[]`.',\n type: 'Array of strings',\n },\n {\n name: 'group',\n desc: 'Alerta event group. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'value',\n desc: 'Event value. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'text',\n desc: 'Alert text description. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'tags',\n desc: 'List of event tags. Default is `[]`.',\n type: 'Array of strings',\n },\n {\n name: 'attributes',\n desc: 'Alert attributes.',\n type: 'Record',\n },\n {\n name: 'origin',\n desc: 'Alert origin. Default is `\"InfluxDB\"`.',\n type: 'String',\n },\n {\n name: 'type',\n desc: 'Event type. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'timestamp',\n desc: 'time alert was generated. Default is `now()`.',\n type: 'Time',\n },\n ],\n package: 'contrib/bonitoo-io/alerta',\n desc: 'Sends an alert to Alerta.',\n example: `alerta.alert(\n url: \"https://alerta.io:8080/alert\",\n apiKey: \"0Xx00xxXx00Xxx0x0X\",\n resource: \"example-resource\",\n event: \"Example event\",\n environment: \"\",\n severity: \"critical\",\n service: [],\n group: \"\",\n value: \"\",\n text: \"\",\n tags: [],\n attributes: {},\n origin: \"InfluxDB\",\n type: \"\",\n timestamp: now()\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/alerta/alert/`,\n },\n {\n name: 'alerta.endpoint',\n args: [\n {\n name: 'url',\n desc: 'Alerta URL.',\n type: 'String',\n },\n {\n name: 'apiKey',\n desc: 'Alerta API key.',\n type: 'String',\n },\n {\n name: 'environment',\n desc: 'Alert environment. Default is `\"\"`. Valid values are `\"\"`, `\"Production\"`, or `\"Development\"`.',\n type: 'String',\n },\n {\n name: 'origin',\n desc: 'Alert origin. Default is `\"InfluxDB\"`.',\n type: 'String',\n },\n ],\n package: 'contrib/bonitoo-io/alerta',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = alerta.endpoint(\n url: \"https://alerta.io:8080/alert\",\n apiKey: apiKey,\n environment: \"Production\",\n origin: \"InfluxDB\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/alerta/endpoint/`,\n },\n {\n name: 'array.from',\n args: [\n {\n name: 'rows',\n desc: 'Array of records to construct a table with.',\n type: 'Array of Objects',\n },\n ],\n package: 'array',\n desc: 'Constructs a table from an array of objects.',\n example:\n 'array.from(rows: [{_time: 2020-01-01T00:00:00Z, _value: \"foo\"},{_time: 2020-01-02T00:00:00Z, _value: \"bar\"}])',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/array/from/`,\n },\n {\n name: 'bigpanda.endpoint',\n args: [\n {\n name: 'url',\n desc: 'BigPanda alerts API URL. Default is the value of the `bigpanda.defaultURL` option.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'BigPanda API Authorization token (API key).',\n type: 'String',\n },\n {\n name: 'appKey',\n desc: 'BigPanda App Key.',\n type: 'String',\n },\n ],\n package: 'contrib/rhajek/bigpanda',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = bigpanda.endpoint(\n token: token,\n appKey: \"example-app-key\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/bigpanda/endpoint/`,\n },\n {\n name: 'bigpanda.sendAlert',\n args: [\n {\n name: 'url',\n desc: 'BigPanda alerts API URL. Default is the value of the `bigpanda.defaultURL` option.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'BigPanda API Authorization token (API key).',\n type: 'String',\n },\n {\n name: 'appKey',\n desc: 'BigPanda App Key.',\n type: 'String',\n },\n {\n name: 'status',\n desc: 'BigPanda alert status. Supported statuses are `\"ok\"`, `\"critical\"`, `\"warning\"`, `\"acknowledged\"`.',\n type: 'String',\n },\n {\n name: 'rec',\n desc: 'Additional alert parameters to send to the BigPanda alert API.',\n type: 'Record',\n },\n ],\n package: 'contrib/rhajek/bigpanda',\n desc: 'Sends an alert to BigPanda.',\n example: `bigpanda.sendAlert(\n url: \"https://api.bigpanda.io/data/v2/alerts\",\n token: \"my5uP3rS3cRe7t0k3n\",\n appKey: \"example-app-key\",\n status: \"critical\",\n rec: {},\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/bigpanda/sendalert/`,\n },\n {\n name: 'bigpanda.statusFromLevel',\n args: [\n {\n name: 'level',\n desc: 'Alert level.',\n type: 'String',\n },\n ],\n package: 'contrib/rhajek/bigpanda',\n desc: 'Converts an alert level into a BigPanda status.',\n example: 'bigpanda.statusFromLevel(level: \"crit\")',\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/bigpanda/statusfromlevel/`,\n },\n {\n name: 'bigtable.from',\n args: [\n {\n name: 'token',\n desc: 'The Google Cloud IAM token to use to access the Cloud Bigtable database.',\n type: 'String',\n },\n {\n name: 'project',\n desc: 'The project ID of the Cloud Bigtable project to retrieve data from.',\n type: 'String',\n },\n {\n name: 'instance',\n desc: 'The instance ID of the Cloud Bigtable instance to retrieve data from.',\n type: 'String',\n },\n {\n name: 'table',\n desc: 'The name of the Cloud Bigtable table to retrieve data from.',\n type: 'String',\n },\n ],\n package: 'experimental/bigtable',\n desc: 'Retrieves data from a Google Cloud Bigtable data source.',\n example:\n 'bigtable.from(token: \"mySuPeRseCretTokEn\", project: \"exampleProjectID\", instance: \"exampleInstanceID\", table: \"example-table\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/bigtable/from/`,\n },\n {\n name: 'bool',\n args: [\n {\n name: 'v',\n desc: 'The value to convert.',\n type: 'String | Integer | UInteger | Float',\n },\n ],\n package: '',\n desc: 'Converts a single value to a boolean.',\n example: 'bool(v: r._value)',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/bool/`,\n },\n {\n name: 'bottom',\n args: [\n {\n name: 'n',\n desc: 'The number of rows to return.',\n type: 'Integer',\n },\n {\n name: 'columns',\n desc: 'List of columns by which to sort. Sort precedence is determined by list order (left to right) .Default is `[\"_value\"]`',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Sorts a table by columns and keeps only the bottom n rows.',\n example: 'bottom(n:10, columns: [\"_value\"])',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/bottom/`,\n },\n {\n name: 'buckets',\n args: [],\n package: '',\n desc: 'Returns a list of buckets in the organization.',\n example: 'buckets()',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/inputs/buckets/`,\n },\n {\n name: 'bytes',\n args: [\n {\n name: 'v',\n desc: 'The value to convert.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Converts a single value to bytes.',\n example: 'bytes(v: r._value)',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/bytes/`,\n },\n {\n name: 'chandeMomentumOscillator',\n args: [\n {\n name: 'n',\n desc: 'The period or number of points to use in the calculation.',\n type: 'Integer',\n },\n {\n name: 'columns',\n desc: 'Columns to operate on. Defaults to `[\"_value\"]`.',\n type: 'Array of Strings`',\n },\n ],\n package: '',\n desc: 'Applies the technical momentum indicator developed by Tushar Chande.',\n example: 'chandeMomentumOscillator(n: 10)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/chandemomentumoscillator/`,\n },\n {\n name: 'columns',\n args: [\n {\n name: 'column',\n desc: 'The name of the output column in which to store the column labels.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Lists the column labels of input tables.',\n example: 'columns(column: \"_value\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/columns/`,\n },\n {\n name: 'contains',\n args: [\n {\n name: 'value',\n desc: 'The value to search for.',\n type: 'Boolean | Integer | UInteger | Float | String | Time',\n },\n {\n name: 'set',\n desc: 'The set of values in which to search.',\n type: 'Boolean | Integer | UInteger | Float | String | Time',\n },\n ],\n package: '',\n desc: 'Tests whether a value is a member of a set.',\n example: 'contains(value: 1, set: [1,2,3])',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/tests/contains/`,\n },\n {\n name: 'count',\n args: [\n {\n name: 'column',\n desc: 'The column on which to operate. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Outputs the number of records in the specified column.',\n example: 'count(column: \"_value\")',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/count/`,\n },\n {\n name: 'cov',\n args: [\n {\n name: 'x',\n desc: 'One input stream used to calculate the covariance.',\n type: 'Object',\n },\n {\n name: 'y',\n desc: 'The other input table used to calculate the covariance.',\n type: 'Object',\n },\n {\n name: 'on',\n desc: 'The list of columns on which to join.',\n type: 'Array of Strings',\n },\n {\n name: 'pearsonr',\n desc: 'Indicates whether the result should be normalized to be the Pearson R coefficient',\n type: 'Boolean',\n },\n ],\n package: '',\n desc: 'Computes the covariance between two streams by first joining the streams, then performing the covariance operation.',\n example:\n 'cov(x: table1, y: table2, on: [\"_time\", \"_field\"], pearsonr: false)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/cov/`,\n },\n {\n name: 'covariance',\n args: [\n {\n name: 'columns',\n desc: 'A list of columns on which to operate. Exactly two columns must be provided.',\n type: 'Array of Strings',\n },\n {\n name: 'pearsonr',\n desc: 'Indicates whether the result should be normalized to be the Pearson R coefficient',\n type: 'Boolean',\n },\n {\n name: 'valueDst',\n desc: 'The column into which the result will be placed. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Computes the covariance between two columns.',\n example:\n 'covariance(columns: [\"column_x\", \"column_y\"], pearsonr: false, valueDst: \"_value\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/covariance/`,\n },\n {\n name: 'csv.from',\n args: [\n {\n name: 'file',\n desc: 'The file path of the CSV file to query.',\n type: 'String',\n },\n {\n name: 'csv',\n desc: 'Raw CSV-formatted text. CSV data must be in the CSV format produced by the Flux HTTP response standard.',\n type: 'String',\n },\n ],\n package: 'csv',\n desc: 'Retrieves data from a comma-separated value (CSV) data source.',\n example: 'csv.from(csv: csvData)',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/csv/from/`,\n },\n {\n name: 'csv.from',\n args: [\n {\n name: 'url',\n desc: 'The URL to retrieve annotated CSV from.',\n type: 'String',\n },\n ],\n package: 'experimental/csv',\n desc: 'Retrieves annotated CSV data from a URL.',\n example: 'csv.from(url: \"http://example.com/data.csv\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/csv/from/`,\n },\n {\n name: 'cumulativeSum',\n args: [\n {\n name: 'columns',\n desc: 'A list of columns on which to operate. Defaults to `[\"_value\"]`.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Computes a running sum for non-null records in the table. The output table schema will be the same as the input table.',\n example: 'cumulativeSum(columns: [\"_value\"])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/cumulativesum/`,\n },\n {\n name: 'date.hour',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the hour of a specified time. Results range from `[0-23]`.',\n example: 'date.hour(t: 2019-07-17T12:05:21.012Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/hour/`,\n },\n {\n name: 'date.microsecond',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the microsecond of a specified time. Results range from `[1-999999]`.',\n example: 'date.microsecond(t: 2019-07-17T12:05:21.012934584Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/microsecond/`,\n },\n {\n name: 'date.millisecond',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the millisecond of a specified time. Results range from `[1-999]`.',\n example: 'date.millisecond(t: 2019-07-17T12:05:21.012934584Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/millisecond/`,\n },\n {\n name: 'date.minute',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the minute of a specified time. Results range from `[0-59]`.',\n example: 'date.minute(t: 2019-07-17T12:05:21.012Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/minute/`,\n },\n {\n name: 'date.month',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the month of a specified time. Results range from `[1-12]`.',\n example: 'date.month(t: 2019-07-17T12:05:21.012Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/month/`,\n },\n {\n name: 'date.monthDay',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the day of the month for a specified time. Results range from `[1-31]`.',\n example: 'date.monthDay(t: 2019-07-17T12:05:21.012Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/monthday/`,\n },\n {\n name: 'date.nanosecond',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the nanosecond of a specified time. Results range from `[1-999999999]`.',\n example: 'date.nanosecond(t: 2019-07-17T12:05:21.012934584Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/nanosecond/`,\n },\n {\n name: 'date.quarter',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the quarter of the year for a specified time. Results range from `[1-4]`.',\n example: 'date.quarter(t: 2019-07-17T12:05:21.012Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/quarter/`,\n },\n {\n name: 'date.second',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the second of a specified time. Results range from `[0-59]`.',\n example: 'date.second(t: 2019-07-17T12:05:21.012Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/second/`,\n },\n {\n name: 'date.truncate',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n {\n name: 'unit',\n desc: 'The unit time to truncate to. Only use `1` and the unit of time to specify the `unit`. For example, `1s`, `1m`, `1h`.',\n type: 'Duration',\n },\n ],\n package: 'date',\n desc: 'Truncates the time to a specified unit. Results range from `[0-59]`.',\n example: 'date.truncate(t: 2019-07-17T12:05:21.012Z, unit: 1s)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/truncate/`,\n },\n {\n name: 'date.week',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the ISO week of the year for a specified time. Results range from `[1-53]`.',\n example: 'date.week(t: 2019-07-17T12:05:21.012Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/week/`,\n },\n {\n name: 'date.weekDay',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the day of the week for a specified time. Results range from `[0-6]`.',\n example: 'date.weekDay(t: 2019-07-17T12:05:21.012Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/weekday/`,\n },\n {\n name: 'date.year',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the year of a specified time.',\n example: 'date.year(t: 2019-07-17T12:05:21.012Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/year/`,\n },\n {\n name: 'date.yearDay',\n args: [\n {\n name: 't',\n desc: 'The time to operate on.',\n type: 'Time | Duration',\n },\n ],\n package: 'date',\n desc: 'Returns the day of the year for a specified time. Results include leap days and range from `[1-366]`.',\n example: 'date.yearDay(t: 2019-07-17T12:05:21.012Z)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/date/yearday/`,\n },\n {\n name: 'derivative',\n args: [\n {\n name: 'unit',\n desc: 'The time duration used when creating the derivative.',\n type: 'Duration',\n },\n {\n name: 'nonNegative',\n desc: 'Indicates if the derivative is allowed to be negative. When set to `true`, if a value is less than the previous value, it is assumed the previous value should have been a zero.',\n type: 'Boolean',\n },\n {\n name: 'columns',\n desc: 'A list of columns on which to operate. Defaults to `[\"_value\"]`.',\n type: 'Array of Strings',\n },\n {\n name: 'timeColumn',\n desc: 'The column name for the time values. Defaults to `\"_time\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Computes the rate of change per unit of time between subsequent non-null records. The output table schema will be the same as the input table.',\n example:\n 'derivative(unit: 1s, nonNegative: true, columns: [\"_value\"], timeColumn: \"_time\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/derivative/`,\n },\n {\n name: 'dict.fromList',\n args: [\n {\n name: 'pairs',\n desc: 'List of records, each containing `key` and `value` properties.',\n type: 'Array of records',\n },\n ],\n package: 'dict',\n desc: 'Creates a dictionary from a list of records with `key` and `value` properties.',\n example: `dict.fromList(\n pairs: [\n {key: 1, value: \"foo\"},\n {key: 2, value: \"bar\"}\n ]\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/dict/fromlist/`,\n },\n {\n name: 'dict.get',\n args: [\n {\n name: 'dict',\n desc: 'Dictionary to return a value from.',\n type: 'Dictionary',\n },\n {\n name: 'key',\n desc: 'Key to return from the dictionary.',\n type: 'String | Boolean | Integer | Uinteger | Float | Time | Bytes',\n },\n {\n name: 'default',\n desc: 'Default value to return if the key does not exist in the dictionary. Must be the same type as values in the dictionary.',\n type: 'String | Boolean | Integer | Uinteger | Float | Time | Bytes',\n },\n ],\n package: 'dict',\n desc: 'Returns the value of a specified key in a dictionary or a default value if the key does not exist.',\n example: `dict.get(\n dict: [1: \"foo\", 2: \"bar\"],\n key: 1,\n default: \"\"\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/dict/get/`,\n },\n {\n name: 'dict.insert',\n args: [\n {\n name: 'dict',\n desc: 'Dictionary to update.',\n type: 'Dictionary',\n },\n {\n name: 'key',\n desc: 'Key to insert into the dictionary. Must be the same type as existing keys in the dictionary.',\n type: 'String | Boolean | Integer | Uinteger | Float | Time | Bytes',\n },\n {\n name: 'default',\n desc: 'Value to insert into the dictionary. Must be the same type as existing values in the dictionary.',\n type: 'String | Boolean | Integer | Uinteger | Float | Time | Bytes',\n },\n ],\n package: 'dict',\n desc: 'Inserts a key value pair into a dictionary and returns a new, updated dictionary. If the key already exists in the dictionary, the function overwrites the existing value.',\n example: `dict.insert(\n dict: [1: \"foo\", 2: \"bar\"],\n key: 3,\n value: \"baz\"\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/dict/insert/`,\n },\n {\n name: 'dict.remove',\n args: [\n {\n name: 'dict',\n desc: 'Dictionary to remove a key-value pair from.',\n type: 'Dictionary',\n },\n {\n name: 'key',\n desc: 'Key to remove from the dictionary. Must be the same type as existing keys in the dictionary.',\n type: 'String | Boolean | Integer | Uinteger | Float | Time | Bytes',\n },\n ],\n package: 'dict',\n desc: 'Removes a key value pair from a dictionary and returns an updated dictionary.',\n example: `dict.remove(\n dict: [1: \"foo\", 2: \"bar\"],\n key: 1\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/dict/remove/`,\n },\n {\n name: 'difference',\n args: [\n {\n name: 'nonNegative',\n desc: 'Indicates if the derivative is allowed to be negative. When set to `true`, if a value is less than the previous value, it is assumed the previous value should have been a zero.',\n type: 'Boolean',\n },\n {\n name: 'columns',\n desc: 'The columns to use to compute the difference. Defaults to `\"_value\"`.',\n type: 'Array of Strings',\n },\n {\n name: 'keepFirst',\n desc: 'Indicates the first row should be kept. If `true`, the difference will be `null`. Defaults to `false`.',\n type: 'Boolean',\n },\n ],\n package: '',\n desc: 'Computes the difference between subsequent non-null records in the specified columns.',\n example: 'difference(nonNegative: false, columns: [\"_value\"])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/difference/`,\n },\n {\n name: 'discord.endpoint',\n args: [\n {\n name: 'webhookToken',\n desc: 'Discord webhook token.',\n type: 'String',\n },\n {\n name: 'webhookID',\n desc: 'Discord webhook ID.',\n type: 'String',\n },\n {\n name: 'username',\n desc: 'Override the Discord webhook’s default username.',\n type: 'String',\n },\n {\n name: 'avatar_url',\n desc: 'Override the Discord webhook’s default avatar.',\n type: 'String',\n },\n ],\n package: 'contrib/chobbs/discord',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = telegram.endpoint(\n webhookToken: discordToken,\n webhookID: \"123456789\",\n username: \"critBot\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/discord/endpoint/`,\n },\n {\n name: 'discord.send',\n args: [\n {\n name: 'webhookToken',\n desc: 'Discord webhook token.',\n type: 'String',\n },\n {\n name: 'webhookID',\n desc: 'Discord webhook ID.',\n type: 'String',\n },\n {\n name: 'username',\n desc: 'Override the Discord webhook’s default username.',\n type: 'String',\n },\n {\n name: 'content',\n desc: 'Message to send to Discord (2000 character limit).',\n type: 'String',\n },\n {\n name: 'avatar_url',\n desc: 'Override the Discord webhook’s default avatar.',\n type: 'String',\n },\n ],\n package: 'contrib/chobbs/discord',\n desc: 'Sends a single message to a Discord channel using a Discord webhook.',\n example: `discord.send(\n webhookToken: \"mySuPerSecRetTokEn\",\n webhookID: \"123456789\",\n username: \"username\",\n content: \"This is an example message\",\n avatar_url: \"https://example.com/avatar_pic.jpg\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/discord/send/`,\n },\n {\n name: 'distinct',\n args: [\n {\n name: 'column',\n desc: 'Column on which to track unique values.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Returns the unique values for a given column.',\n example: 'distinct(column: \"host\")',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/distinct/`,\n },\n {\n name: 'doubleEMA',\n args: [\n {\n name: 'n',\n desc: 'The number of points to average.',\n type: 'Integer',\n },\n ],\n package: '',\n desc: 'Calculates the exponential moving average of values in the `_value` column grouped into `n` number of points, giving more weight to recent data at double the rate of `exponentialMovingAverage()`.',\n example: 'doubleEMA(n: 5)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/doubleema/`,\n },\n {\n name: 'drop',\n args: [\n {\n name: 'columns',\n desc: 'A list of columns to be removed from the table. Cannot be used with `fn`.',\n type: 'Array of Strings',\n },\n {\n name: 'fn',\n desc: 'A function which takes a column name as a parameter and returns a boolean indicating whether or not the column should be removed from the table. Cannot be used with `columns`.',\n type: 'Function',\n },\n ],\n package: '',\n desc: 'Removes specified columns from a table. Columns can be specified either through a list or a predicate function. When a dropped column is part of the group key, it will be removed from the key.',\n example: 'drop(columns: [\"col1\", \"col2\"])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/drop/`,\n },\n {\n name: 'duplicate',\n args: [\n {\n name: 'column',\n desc: 'The column name to duplicate.',\n type: 'String',\n },\n {\n name: 'as',\n desc: 'The name assigned to the duplicate column.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Duplicates a specified column in a table.',\n example: 'duplicate(column: \"column-name\", as: \"duplicate-name\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/duplicate/`,\n },\n {\n name: 'duration',\n args: [\n {\n name: 'v',\n desc: 'The value to convert.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Converts a single value to a duration.',\n example: 'duration(v: r._value)',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/duration/`,\n },\n {\n name: 'elapsed',\n args: [\n {\n name: 'unit',\n desc: 'The unit of time to return. Defaults to `1s`.',\n type: 'Duration',\n },\n {\n name: 'timeColumn',\n desc: 'The column to use to compute the elapsed time. Defaults to `\"_time\"`.',\n type: 'String`',\n },\n {\n name: 'columnName',\n desc: 'The column to store elapsed times. Defaults to `\"elapsed\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Returns the time between subsequent records.',\n example: 'elapsed(unit: 1s)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/elapsed/`,\n },\n {\n name: 'events.duration',\n args: [\n {\n name: 'unit',\n desc: 'Duration unit of the calculated state duration. Default is `1ns`.',\n type: 'Duration',\n },\n {\n name: 'columnName',\n desc: 'Name of the result column. Default is `\"duration\"`.',\n type: 'String',\n },\n {\n name: 'timeColumn',\n desc: 'Name of the time column. Default is `\"_time\"`.',\n type: 'String',\n },\n {\n name: 'stopColumn',\n desc: 'Name of the stop column. Default is `\"_stop\"`.',\n type: 'String',\n },\n {\n name: 'stop',\n desc: 'The latest time to use when calculating results. If provided, `stop` overrides the time value in the `stopColumn`.',\n type: 'Time',\n },\n ],\n package: 'contrib/tomhollingworth/events',\n desc: 'Calculates the duration of events. The function determines the time between a record and the subsequent record and associates the duration with the first record (start of the event).',\n example: `events.duration(\n unit: 1ns,\n columnName: \"duration\",\n timeColumn: \"_time\",\n stopColumn: \"_stop\",\n stop: 2020-01-01T00:00:00Z\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/events/duration/`,\n },\n {\n name: 'experimental.addDuration',\n args: [\n {\n name: 'd',\n desc: 'The duration to add.',\n type: 'Duration',\n },\n {\n name: 'to',\n desc: 'The time to add the duration to.',\n type: 'Time',\n },\n ],\n package: 'experimental',\n desc: 'Adds a duration to a time value and returns the resulting time value.',\n example: 'experimental.addDuration(d: 12h, to: now())',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/addduration/`,\n },\n {\n name: 'experimental.alignTime',\n args: [\n {\n name: 'alignTo',\n desc: 'UTC time to align tables to. Default is 1970-01-01T00:00:00Z.',\n type: 'Time',\n },\n ],\n package: 'experimental',\n desc: 'Aligns input tables to a common start time.',\n example: 'experimental.alignTime(alignTo: v.timeRangeStart)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/aligntime/`,\n },\n {\n name: 'experimental.chain',\n args: [\n {\n name: 'first',\n desc: 'The first query to execute.',\n type: 'Stream of Tables',\n },\n {\n name: 'second',\n desc: 'The second query to execute.',\n type: 'Stream of Tables',\n },\n ],\n package: 'experimental',\n desc: 'Executes two queries sequentially rather than in parallel and outputs the results of the second query.',\n example: 'experimental.chain(first: query1, second: query2)',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/chain/`,\n },\n {\n name: 'experimental.count',\n args: [],\n package: 'experimental',\n desc: 'Outputs the number of records in each input table and returns the count in the `_value` column. This function counts both null and non-null records.',\n example: 'experimental.count()',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/count/`,\n },\n {\n name: 'experimental.distinct',\n args: [],\n package: 'experimental',\n desc: 'Returns unique values from the `_value` column. The `_value` of each output record is set to a distinct value in the specified column. `null` is considered a distinct value.',\n example: 'experimental.distinct()',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/distinct/`,\n },\n {\n name: 'experimental.fill',\n args: [\n {\n name: 'value',\n desc: 'Value to replace null values with. Data type must match the type of the `_value` column.',\n type: 'Boolean | Integer | UInteger | Float | String | Time | Duration',\n },\n {\n name: 'usePrevious',\n desc: 'When `true`, replaces null values with the value of the previous non-null row.',\n type: 'Boolean',\n },\n ],\n package: 'experimental',\n desc: 'Replaces all null values in the `_value` column with a non-null value.',\n example: 'experimental.fill(value: 0.0)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/fill/`,\n },\n {\n name: 'experimental.first',\n args: [],\n package: 'experimental',\n desc: 'Returns the first record with a non-null value in the `_value` column.',\n example: 'experimental.first()',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/first/`,\n },\n {\n name: 'experimental.group',\n args: [\n {\n name: 'columns',\n desc: 'List of columns to use in the grouping operation. Defaults to `[]`.',\n type: 'Array of Strings',\n },\n {\n name: 'mode',\n desc: 'The mode used to group columns. Only the `extend` mode is available with this function.',\n type: 'String',\n },\n ],\n package: 'experimental',\n desc: 'Introduces an extend mode to the existing `group()` function.',\n example:\n 'experimental.group(columns: [\"host\", \"_measurement\"], mode: \"extend\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/group/`,\n },\n {\n name: 'experimental.histogram',\n args: [\n {\n name: 'bins',\n desc: 'A list of upper bounds to use when computing the histogram frequencies, including the maximum value of the data set. This value can be set to positive infinity if no maximum is known.',\n type: 'Array of floats',\n },\n {\n name: 'normalize',\n desc: 'Convert count values into frequency values between 0 and 1. Default is `false`.',\n type: 'Boolean',\n },\n ],\n package: 'experimental',\n desc: 'Approximates the cumulative distribution of a dataset by counting data frequencies for a list of bins.',\n example: `experimental.histogram(\n bins: [50.0, 75.0, 90.0],\n normalize: false\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/histogram/`,\n },\n {\n name: 'experimental.histogramQuantile',\n args: [\n {\n name: 'quantile',\n desc: 'A value between 0 and 1 indicating the desired quantile to compute.',\n type: 'Float',\n },\n {\n name: 'minValue',\n desc: 'The assumed minimum value of the dataset.',\n type: 'Float',\n },\n ],\n package: 'experimental',\n desc: 'Approximates a quantile given a histogram with the cumulative distribution of the dataset.',\n example: `experimental.histogramQuantile(\n quantile: 0.5,\n minValue: 0.0\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/histogramquantile/`,\n },\n {\n name: 'experimental.integral',\n args: [\n {\n name: 'unit',\n desc: 'Time duration used to compute the integral.',\n type: 'Duration',\n },\n {\n name: 'interpolate',\n desc: 'Type of interpolation to use. Defaults to `\"\"`.',\n type: 'String',\n },\n ],\n package: 'experimental',\n desc: 'Computes the area under the curve per `unit` of time of subsequent non-null records.',\n example: `integral(\n unit: 10s,\n interpolate: \"\"\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/integral/`,\n },\n {\n name: 'experimental.join',\n args: [\n {\n name: 'left',\n desc: 'First of two streams of tables to join.',\n type: 'Stream of tables',\n },\n {\n name: 'right',\n desc: 'Second of two streams of tables to join.',\n type: 'Stream of tables',\n },\n {\n name: 'fn',\n desc: 'A function that maps new output rows using left and right input rows.',\n type: 'Function',\n },\n ],\n package: 'experimental',\n desc: 'Joins two streams of tables on the group key and _time column. Use the fn parameter to map output tables.',\n example:\n 'experimental.join(left: left, right: right, fn: (left, right) => ({left with lv: left._value, rv: right._value }))',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/join/`,\n },\n {\n name: 'experimental.kaufmansAMA',\n args: [\n {\n name: 'n',\n desc: 'The period or number of points to use in the calculation.',\n type: 'Integer',\n },\n ],\n package: 'experimental',\n desc: 'Calculates the Kaufman’s Adaptive Moving Average (KAMA) of input tables using the `_value` column in each table.',\n example: 'experimental.kaufmansAMA(n: 10)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/kaufmansama/`,\n },\n {\n name: 'experimental.last',\n args: [],\n package: 'experimental',\n desc: 'Returns the last record with a non-null value in the `_value` column.',\n example: 'experimental.last()',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/last/`,\n },\n {\n name: 'experimental.max',\n args: [],\n package: 'experimental',\n desc: 'Returns the record with the highest value in the `_value` column for each input table.',\n example: 'experimental.max()',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/max/`,\n },\n {\n name: 'experimental.mean',\n args: [],\n package: 'experimental',\n desc: 'Computes the mean or average of non-null values in the `_value` column of each input table.',\n example: 'experimental.mean()',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/mean/`,\n },\n {\n name: 'experimental.min',\n args: [],\n package: 'experimental',\n desc: 'Returns the record with the lowest value in the `_value` column for each input table.',\n example: 'experimental.min()',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/min/`,\n },\n {\n name: 'experimental.mode',\n args: [],\n package: 'experimental',\n desc: 'Computes the mode or value that occurs most often in the `_value` column in each input table.',\n example: 'experimental.mode()',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/mode/`,\n },\n {\n name: 'experimental.objectKeys',\n args: [\n {\n name: 'o',\n desc: 'The object to return keys from.',\n type: 'Object',\n },\n ],\n package: 'experimental',\n desc: 'Returns an array of keys in a specified object.',\n example: 'experimental.objectKeys(o: {key1: \"value1\", key2: \"value2\"})',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/objectkeys/`,\n },\n {\n name: 'experimental.quantile',\n args: [\n {\n name: 'q',\n desc: 'A value between 0 and 1 thats specifies the quantile.',\n type: 'Float',\n },\n {\n name: 'method',\n desc: 'Computation method. Default is `estimate_tdigest`. Available options are `estimate_tdigest`, `exact_mean`, or `exact_selector`.',\n type: 'String',\n },\n {\n name: 'compression',\n desc: 'Indicates how many centroids to use when compressing the dataset.',\n type: 'Float',\n },\n ],\n package: 'experimental',\n desc: 'Outputs non-null records with values in the `_value` column that fall within the specified quantile or represent the specified quantile.',\n example: `experimental.quantile(\n q: 0.99,\n method: \"estimate_tdigest\",\n compression: 1000.0\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/quantile/`,\n },\n {\n name: 'experimental.set',\n args: [\n {\n name: 'o',\n desc: 'An object that defines the columns and values to set.',\n type: 'Object',\n },\n ],\n package: 'experimental',\n desc: 'Sets multiple static column values on all records.',\n example: 'experimental.set(o: {column1: \"value1\", column2: \"value2\"})',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/set/`,\n },\n {\n name: 'experimental.skew',\n args: [],\n package: 'experimental',\n desc: 'Outputs the skew of non-null values in the `_value` column for each input table as a float.',\n example: 'experimental.skew()',\n category: 'Transformation',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/skew/`,\n },\n {\n name: 'experimental.spread',\n args: [],\n package: 'experimental',\n desc: 'Outputs the difference between the minimum and maximum values in the `_value` column for each input table.',\n example: 'experimental.spread()',\n category: 'Transformation',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/spread/`,\n },\n {\n name: 'experimental.stddev',\n args: [\n {\n name: 'mode',\n desc: 'The standard deviation mode or type of standard deviation to calculate. Defaults to `\"sample\"`. Available options are `sample` and `population`.',\n type: 'String',\n },\n ],\n package: 'experimental',\n desc: 'Computes the standard deviation of non-null values in the `_value` column for each input table.',\n example: 'experimental.stddev(mode: \"sample\")',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/stddev/`,\n },\n {\n name: 'experimental.subDuration',\n args: [\n {\n name: 'd',\n desc: 'The duration to subtract.',\n type: 'Duration',\n },\n {\n name: 'from',\n desc: 'The time to subtract the duration from.',\n type: 'Time',\n },\n ],\n package: 'experimental',\n desc: 'Subtracts a duration from a time value and returns the resulting time value.',\n example: 'experimental.subDuration(d: 12h, from: now())',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/subduration/`,\n },\n {\n name: 'experimental.sum',\n args: [],\n package: 'experimental',\n desc: 'Computes the sum of non-null values in the `_value` column for each input table.',\n example: 'experimental.sum()',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/sum/`,\n },\n {\n name: 'experimental.to',\n args: [\n {\n name: 'bucket',\n desc: 'The bucket to write data to. `bucket` and `bucketID` are mutually exclusive.',\n type: 'String',\n },\n {\n name: 'bucketID',\n desc: 'The ID of the bucket to write data to. `bucketID` and `bucket` are mutually exclusive.',\n type: 'String',\n },\n {\n name: 'org',\n desc: 'The organization name of the specified bucket. `org` and `orgID` are mutually exclusive.',\n type: 'String',\n },\n {\n name: 'orgID',\n desc: 'The organization ID of the specified bucket. `orgID` and `org` are mutually exclusive.',\n type: 'String',\n },\n ],\n package: 'experimental',\n desc: 'Writes data to an InfluxDB v2.0 bucket, but in a different structure than the built-in `to()` function.',\n example: 'experimental.to(bucket: \"example-bucket\", org: \"example-org\")',\n category: 'Outputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/to/`,\n },\n {\n name: 'exponentialMovingAverage',\n args: [\n {\n name: 'n',\n desc: 'The number of points to average.',\n type: 'Integer',\n },\n ],\n package: '',\n desc: 'Calculates the exponential moving average of values in the `_value` column grouped into `n` number of points, giving more weight to recent data.',\n example: 'exponentialMovingAverage(n: 5)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/exponentialmovingaverage/`,\n },\n {\n name: 'fill',\n args: [\n {\n name: 'column',\n desc: 'The column in which to replace null values. Defaults to `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'value',\n desc: 'The constant value to use in place of nulls.',\n type: 'Value type of `column`',\n },\n {\n name: 'usePrevious',\n desc: 'When `true`, assigns the value set in the previous non-null row.',\n type: 'Boolean',\n },\n ],\n package: '',\n desc: 'Replaces all null values in an input stream and replace them with a non-null value.',\n example: 'fill(column: \"_value\", usePrevious: true)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/fill/`,\n },\n {\n name: 'filter',\n args: [\n {\n name: 'fn',\n desc: 'A single argument function that evaluates true or false. Records are passed to the function. Those that evaluate to true are included in the output tables.',\n type: 'Function',\n },\n {\n name: 'onEmpty',\n desc: 'Defines the behavior for empty tables. Potential values are `keep` and `drop`. Defaults to `drop`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Filters data based on conditions defined in the function. The output tables have the same schema as the corresponding input tables.',\n example: 'filter(fn: (r) => r._measurement == \"cpu\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/filter/`,\n },\n {\n name: 'findColumn',\n args: [\n {\n name: 'fn',\n desc: 'Predicate function for matching keys in a table’s group key.',\n type: 'Function',\n },\n {\n name: 'column',\n desc: 'Name of the column to extract.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Returns an array of values in a specified column from the first table in a stream of tables where the group key values match the specified predicate.',\n example: 'findColumn(fn: (key) => key.host == \"host1\", column: \"_value\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/stream-table/findcolumn/`,\n },\n {\n name: 'findRecord',\n args: [\n {\n name: 'fn',\n desc: 'Predicate function for matching keys in a table’s group key.',\n type: 'Function',\n },\n {\n name: 'idx',\n desc: 'Index of the record to extract.',\n type: 'Integer',\n },\n ],\n package: '',\n desc: 'Returns a record at a specified index from the first table in a stream of tables where the group key values match the specified predicate.',\n example: 'findRecord(fn: (key) => key.host == \"host1\", idx: 0)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/stream-table/findrecord/`,\n },\n {\n name: 'first',\n args: [],\n package: '',\n desc: 'Selects the first non-null record from an input table.',\n example: 'first()',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/first/`,\n },\n {\n name: 'float',\n args: [\n {\n name: 'v',\n desc: 'The value to convert.',\n type: 'String | Integer | UInteger | Boolean',\n },\n ],\n package: '',\n desc: 'Converts a single value to a float.',\n example: 'float(v: r._value)',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/float/`,\n },\n FROM,\n {\n name: 'geo.asTracks',\n args: [\n {\n name: 'groupBy',\n desc: 'Columns to group by. They should uniquely identify each track.',\n type: 'Array of Strings',\n },\n {\n name: 'orderBy',\n desc: 'Columns to order results by.',\n type: 'Array of Strings',\n },\n ],\n package: 'experimental/geo',\n desc: 'Groups geo-temporal data into tracks (sequential, related data points).',\n example: 'geo.asTracks(groupBy: [\"id\",\"tid\"], orderBy: [\"_time\"])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/astracks/`,\n },\n {\n name: 'geo.filterRows',\n args: [\n {\n name: 'region',\n desc: 'Region containing the desired data points.',\n type: 'Object',\n },\n {\n name: 'minSize',\n desc: 'Minimum number of cells that cover the specified region. Default is `24`',\n type: 'Integer',\n },\n {\n name: 'maxSize',\n desc: 'Maximum number of cells that cover the specified region. Default is `-1`.',\n type: 'Object',\n },\n {\n name: 'level',\n desc: 'S2 cell level of grid cells. Default is `-1`',\n type: 'Integer',\n },\n {\n name: 's2CellIDLevel',\n desc: 'S2 Cell level used in `s2_cell_id` tag. Default is `-1`.',\n type: 'Integer',\n },\n {\n name: 'strict',\n desc: 'Enable strict geographic data filtering. Default is `true`',\n type: 'Boolean',\n },\n ],\n package: 'experimental/geo',\n desc: 'Filters data by a specified geographic region with the option of strict filtering.',\n example:\n 'geo.filterRows(region: {lat: 37.7858229, lon: -122.4058124, radius: 20.0}, strict: true)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/filterrows/`,\n },\n {\n name: 'geo.gridFilter',\n args: [\n {\n name: 'region',\n desc: 'Region containing the desired data points.',\n type: 'Object',\n },\n {\n name: 'minSize',\n desc: 'Minimum number of cells that cover the specified region. Default is `24`',\n type: 'Integer',\n },\n {\n name: 'maxSize',\n desc: 'Maximum number of cells that cover the specified region. Default is `-1`.',\n type: 'Object',\n },\n {\n name: 'level',\n desc: 'S2 cell level of grid cells. Default is `-1`',\n type: 'Integer',\n },\n {\n name: 's2CellIDLevel',\n desc: 'S2 Cell level used in `s2_cell_id` tag. Default is `-1`.',\n type: 'Integer',\n },\n ],\n package: 'experimental/geo',\n desc: 'Filters data by a specified geographic region using S2 geometry grid cells.',\n example:\n 'geo.gridFilter(region: {lat: 37.7858229, lon: -122.4058124, radius: 20.0})',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/gridfilter/`,\n },\n {\n name: 'geo.groupByArea',\n args: [\n {\n name: 'newColumn',\n desc: 'Name of the new column that stores the unique identifier for a geographic area.',\n type: 'String',\n },\n {\n name: 'level',\n desc: 'S2 Cell level used to determine the size of each geographic area.',\n type: 'Integer',\n },\n {\n name: 's2cellIDLevel',\n desc: 'S2 Cell level used in `s2_cell_id` tag. Default is `-1`.',\n type: 'Integer',\n },\n ],\n package: 'experimental/geo',\n desc: 'Groups rows by geographic area using S2 geometry grid cells.',\n example: 'geo.groupByArea(newColumn: \"geoArea\", level: 10)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/groupbyarea/`,\n },\n {\n name: 'geo.s2CellIDToken',\n args: [\n {\n name: 'point',\n desc: 'Longitude and latitude in decimal degrees (WGS 84) to use when generating the S2 cell ID token. Object must contain `lat` and `lon` properties.',\n type: 'Object',\n },\n {\n name: 'token',\n desc: 'S2 cell ID token to update.',\n type: 'String',\n },\n {\n name: 'level',\n desc: 'S2 cell level to use when generating the S2 cell ID token.',\n type: 'Integer',\n },\n ],\n package: 'experimental/geo',\n desc: 'Returns an S2 cell ID token.',\n example:\n 'geo.s2CellIDToken(point: {lat: 37.7858229, lon: -122.4058124}, level: 10)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/s2cellidtoken/`,\n },\n {\n name: 'geo.s2CellLatLon',\n args: [\n {\n name: 'token',\n desc: 'S2 cell ID token.',\n type: 'String',\n },\n ],\n package: 'experimental/geo',\n desc: 'Returns the latitude and longitude of the center of an S2 cell.',\n example: 'geo.s2CellLatLon(token: \"89c284\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/s2celllatlon/`,\n },\n {\n name: 'geo.shapeData',\n args: [\n {\n name: 'latField',\n desc: 'Name of existing latitude field.',\n type: 'String',\n },\n {\n name: 'lonField',\n desc: 'Name of existing longitude field.',\n type: 'String',\n },\n {\n name: 'level',\n desc: 'S2 cell level to use when generating the S2 cell ID token.',\n type: 'Integer',\n },\n ],\n package: 'experimental/geo',\n desc: 'Renames existing latitude and longitude fields to `lat` and `lon` and adds an `s2_cell_id` tag.',\n example:\n 'geo.shapeData(latField: \"latitude\", lonField: \"longitude\", level: 10)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/shapedata/`,\n },\n {\n name: 'geo.ST_Contains',\n args: [\n {\n name: 'region',\n desc: 'Region to test.',\n type: 'Object',\n },\n {\n name: 'geometry',\n desc: 'GIS geometry to test. Can be either point or linestring geometry.',\n type: 'Object',\n },\n ],\n package: 'experimental/geo',\n desc: 'Tests if the region contains the GIS geometry.',\n example:\n 'geo.ST_Contains(region: {lat: 40.7, lon: -73.3, radius: 20.0}, geometry: {lon: 39.7515, lat: 15.08433})',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/st_contains/`,\n },\n {\n name: 'geo.ST_Distance',\n args: [\n {\n name: 'region',\n desc: 'Region to test.',\n type: 'Object',\n },\n {\n name: 'geometry',\n desc: 'GIS geometry to test. Can be either point or linestring geometry.',\n type: 'Object',\n },\n ],\n package: 'experimental/geo',\n desc: 'Returns the distance between the region and GIS geometry.',\n example:\n 'geo.ST_Distance(region: {lat: 40.7, lon: -73.3, radius: 20.0}, geometry: {lon: 39.7515, lat: 15.08433})',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/st_distance/`,\n },\n {\n name: 'geo.ST_DWithin',\n args: [\n {\n name: 'region',\n desc: 'Region to test.',\n type: 'Object',\n },\n {\n name: 'geometry',\n desc: 'GIS geometry to test. Can be either point or linestring geometry.',\n type: 'Object',\n },\n {\n name: 'distance',\n desc: 'Maximum distance allowed between the region and geometry.',\n type: 'Float',\n },\n ],\n package: 'experimental/geo',\n desc: 'Tests if a region is within a specified distance from GIS geometry.',\n example:\n 'geo.ST_DWithin(region: {lat: 40.7, lon: -73.3, radius: 20.0}, geometry: {lon: 39.7515, lat: 15.08433}, distance: 1000.0)',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/st_dwithin/`,\n },\n {\n name: 'geo.ST_Intersects',\n args: [\n {\n name: 'region',\n desc: 'Region to test.',\n type: 'Object',\n },\n {\n name: 'geometry',\n desc: 'GIS geometry to test. Can be either point or linestring geometry.',\n type: 'Object',\n },\n ],\n package: 'experimental/geo',\n desc: 'Tests if a region intersects with GIS geometry.',\n example:\n 'geo.ST_Intersects(region: {lat: 40.7, lon: -73.3, radius: 20.0}, geometry: {linestring: \"39.7515 14.01433, 38.3527 13.9228, 36.9978 15.08433\"})',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/st_intersects/`,\n },\n {\n name: 'geo.ST_Length',\n args: [\n {\n name: 'geometry',\n desc: 'GIS geometry to test. Can be either point or linestring geometry.',\n type: 'Object',\n },\n ],\n package: 'experimental/geo',\n desc: 'Returns the spherical length of GIS geometry.',\n example:\n 'geo.ST_Length(geometry: {linestring: \"39.7515 14.01433, 38.3527 13.9228, 36.9978 15.08433\"})',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/st_length/`,\n },\n {\n name: 'geo.ST_LineString',\n args: [],\n package: 'experimental/geo',\n desc: 'Converts a series of geographic points into linestring',\n example: 'geo.ST_LineString()',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/st_linestring/`,\n },\n {\n name: 'geo.strictFilter',\n args: [\n {\n name: 'region',\n desc: 'Region containing the desired data points.',\n type: 'Object',\n },\n ],\n package: 'experimental/geo',\n desc: 'Filters data by latitude and longitude in a specified region.',\n example:\n 'geo.strictFilter(region: {lat: 37.7858229, lon: -122.4058124, radius: 20.0})',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/strictfilter/`,\n },\n {\n name: 'geo.toRows',\n args: [],\n package: 'experimental/geo',\n desc: 'Pivots geo-temporal data into row-wise sets based on time and other correlation columns.',\n example: 'geo.toRows()',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/geo/torows/`,\n },\n {\n name: 'getColumn',\n args: [\n {\n name: 'column',\n desc: 'The name of the column to extract.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Extracts a column from a table given its label. If the label is not present in the set of columns, the function errors.',\n example: 'getColumn(column: \"_value\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/stream-table/getcolumn/`,\n },\n {\n name: 'getRecord',\n args: [\n {\n name: 'idx',\n desc: 'The index of the record to extract.',\n type: 'Integer',\n },\n ],\n package: '',\n desc: 'Extracts a record from a table given the record’s index. If the index is out of bounds, the function errors.',\n example: 'getRecord(idx: 0)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/stream-table/getrecord/`,\n },\n {\n name: 'group',\n args: [\n {\n name: 'columns',\n desc: 'List of columns to use in the grouping operation. Defaults to `[]`.',\n type: 'Array of Strings',\n },\n {\n name: 'mode',\n desc: 'The mode used to group columns. The following options are available: by, except. Defaults to `\"by\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Groups records based on their values for specific columns. It produces tables with new group keys based on provided properties.',\n example: 'group(columns: [\"host\", \"_measurement\"], mode:\"by\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/group/`,\n },\n {\n name: 'highestAverage',\n args: [\n {\n name: 'n',\n desc: 'Number of records to return.',\n type: 'Integer',\n },\n {\n name: 'column',\n desc: 'Column by which to sort. Default is `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'groupColumns',\n desc: 'The columns on which to group before performing the aggregation. Default is `[]`.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Returns the top `n` records from all groups using the average of each group.',\n example: 'highestAverage(n:10, groupColumns: [\"host\"])',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/highestaverage/`,\n },\n {\n name: 'highestCurrent',\n args: [\n {\n name: 'n',\n desc: 'Number of records to return.',\n type: 'Integer',\n },\n {\n name: 'column',\n desc: 'Column by which to sort. Default is `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'groupColumns',\n desc: 'The columns on which to group before performing the aggregation. Default is `[]`.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Returns the top `n` records from all groups using the last value of each group.',\n example: 'highestCurrent(n:10, groupColumns: [\"host\"])',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/highestcurrent/`,\n },\n {\n name: 'highestMax',\n args: [\n {\n name: 'n',\n desc: 'Number of records to return.',\n type: 'Integer',\n },\n {\n name: 'column',\n desc: 'Column by which to sort. Default is `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'groupColumns',\n desc: 'The columns on which to group before performing the aggregation. Default is `[]`.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Returns the top `n` records from all groups using the maximum of each group.',\n example: 'highestMax(n:10, groupColumns: [\"host\"])',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/highestmax/`,\n },\n {\n name: 'histogram',\n args: [\n {\n name: 'column',\n desc: 'The name of a column containing input data values. The column type must be float. Defaults to `\"_value\"`.',\n type: 'Strings',\n },\n {\n name: 'upperBoundColumn',\n desc: 'The name of the column in which to store the histogram\\'s upper bounds. Defaults to `\"le\"`.',\n type: 'String',\n },\n {\n name: 'countColumn',\n desc: 'The name of the column in which to store the histogram counts. Defaults to `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'bins',\n desc: 'A list of upper bounds to use when computing the histogram frequencies. Each element in the array should contain a float value that represents the maximum value for a bin.',\n type: 'Array of Floats',\n },\n {\n name: 'normalize',\n desc: 'When `true`, will convert the counts into frequency values between 0 and 1. Defaults to `false`.',\n type: 'Boolean',\n },\n ],\n package: '',\n desc: 'Approximates the cumulative distribution function of a dataset by counting data frequencies for a list of buckets.',\n example:\n 'histogram(column: \"_value\", upperBoundColumn: \"le\", countColumn: \"_value\", bins: [50.0, 75.0, 90.0], normalize: false)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/histogram/`,\n },\n {\n name: 'histogramQuantile',\n args: [\n {\n name: 'quantile',\n desc: 'A value between 0 and 1 indicating the desired quantile to compute.',\n type: 'Float',\n },\n {\n name: 'countColumn',\n desc: 'The name of the column in which to store the histogram counts. The count column type must be float. Defaults to `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'upperBoundColumn',\n desc: 'The name of the column in which to store the histogram\\'s upper bounds. The count column type must be float. Defaults to `\"le\"`.',\n type: 'String',\n },\n {\n name: 'valueColumn',\n desc: 'The name of the output column which will contain the computed quantile. Defaults to `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'minValue',\n desc: 'The assumed minimum value of the dataset. When the quantile falls below the lowest upper bound, interpolation is performed between `minValue` and the lowest upper bound. When `minValue` is equal to negative infinity, the lowest upper bound is used. Defaults to `0`.',\n type: 'Float',\n },\n ],\n package: '',\n desc: 'Approximates a quantile given a histogram that approximates the cumulative distribution of the dataset.',\n example:\n 'histogramQuantile(quantile: 0.5, countColumn: \"_value\", upperBoundColumn: \"le\", valueColumn: \"_value\", minValue: 0.0)',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/histogramquantile/`,\n },\n {\n name: 'holtWinters',\n args: [\n {\n name: 'n',\n desc: 'Number of values to predict.',\n type: 'Integer',\n },\n {\n name: 'seasonality',\n desc: 'Number of points in a season. Defaults to `0`.',\n type: 'Integer',\n },\n {\n name: 'interval',\n desc: 'The interval between two data points.',\n type: 'Duration',\n },\n {\n name: 'withFit',\n desc: 'Returns \"fitted\" data points in results when `withFit` is set to `true`. Defaults to `false`.',\n type: 'Boolean',\n },\n {\n name: 'timeColumn',\n desc: 'The time column to use. Defaults to `\"_time\"`.',\n type: 'String',\n },\n {\n name: 'column',\n desc: 'The column to operate on. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Applies the Holt-Winters forecasting method to input tables. The Holt-Winters method predicts `n` seasonally-adjusted values for the specified `column` at the specified `interval`.',\n example: 'holtWinters(n: 10, interval: 1d)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/holtwinters/`,\n },\n {\n name: 'hourSelection',\n args: [\n {\n name: 'start',\n desc: 'The first hour of the hour range (inclusive). Hours range from `[0-23]`',\n type: 'Integer',\n },\n {\n name: 'stop',\n desc: 'The last hour of the hour range (inclusive). Hours range from `[0-23]`.',\n type: 'Integer`',\n },\n {\n name: 'timeColumn',\n desc: 'The column that contains the time value. Default is `\"_time\"`.',\n type: 'String`',\n },\n ],\n package: '',\n desc: 'Retains all rows with time values in a specified hour range. Hours are specified in military time.',\n example: 'hourSelection(start: 9, stop: 17)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/hourselection/`,\n },\n {\n name: 'http.basicAuth',\n args: [\n {\n name: 'u',\n desc: 'The username to use in the basic authentication header.',\n type: 'String',\n },\n {\n name: 'p',\n desc: 'The password to use in the basic authentication header.',\n type: 'String',\n },\n ],\n package: 'http',\n desc: 'Returns a Base64-encoded basic authentication header using a specified username and password combination.',\n example: `http.basicAuth(\n u: \"username\",\n p: \"passw0rd\"\n)`,\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/http/basicauth/`,\n },\n {\n name: 'http.endpoint',\n args: [\n {\n name: 'url',\n desc: 'The URL to POST to.',\n type: 'String',\n },\n ],\n package: 'http',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = http.endpoint(\n url: \"http://localhost:1234/\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/http/endpoint/`,\n },\n {\n name: 'http.get',\n args: [\n {\n name: 'url',\n desc: 'The URL to send the GET request to.',\n type: 'String',\n },\n {\n name: 'headers',\n desc: 'Headers to include with the GET request.',\n type: 'Object',\n },\n {\n name: 'timeout',\n desc: 'Timeout for the GET request. Default is `30s`.',\n type: 'Duration',\n },\n ],\n package: 'experimental/http',\n desc: 'Submits an HTTP GET request to the specified URL and returns the HTTP status code, response body, and response headers.',\n example:\n 'http.get(url: \"https://docs.influxdata.com/influxdb/latest/\", headers: {foo: \"bar\"})',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/http/get/`,\n },\n {\n name: 'http.pathEscape',\n args: [\n {\n name: 'inputString',\n desc: 'The string to escape.',\n type: 'String',\n },\n ],\n package: 'http',\n desc: 'Escapes special characters in a string and replaces non-ASCII characters with hexadecimal representations (%XX).',\n example: 'http.pathEscape(inputString: \"/this/is/an/example-path.html\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/http/pathescape/`,\n },\n {\n name: 'http.post',\n args: [\n {\n name: 'url',\n desc: 'The URL to POST to.',\n type: 'String',\n },\n {\n name: 'headers',\n desc: 'Headers to include with the POST request.',\n type: 'Object',\n },\n {\n name: 'data',\n desc: 'The data body to include with the POST request.',\n type: 'Bytes',\n },\n ],\n package: 'http',\n desc: 'Submits an HTTP POST request to the specified URL with headers and data and returns the HTTP status code.',\n example:\n 'http.post(url: \"http://localhost:8086/\", headers: {x:\"a\", y:\"b\"}, data: bytes(v: \"body\"))',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/http/post/`,\n },\n {\n name: 'increase',\n args: [\n {\n name: 'columns',\n desc: 'List of columns to use in the operation. Defaults to `[\"_value\"]`.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Computes the total non-negative difference between values in a table.',\n example: 'increase(columns: [\"_value\"])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/increase/`,\n },\n {\n name: 'influxdb.api',\n args: [\n {\n name: 'method',\n desc: 'HTTP request method.',\n type: 'String',\n },\n {\n name: 'path',\n desc: 'InfluxDB API path.',\n type: 'String',\n },\n {\n name: 'host',\n desc: 'InfluxDB host URL (Required when executed outside of InfluxDB). Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'InfluxDB host URL (Required when executed outside of InfluxDB). Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'headers',\n desc: 'HTTP request headers.',\n type: 'Dictionary',\n },\n {\n name: 'query',\n desc: 'URL query parameters.',\n type: 'Dictionary',\n },\n {\n name: 'timeout',\n desc: 'HTTP request timeout. Default is `30s`.',\n type: 'Duration',\n },\n {\n name: 'body',\n desc: 'HTTP request body as bytes.',\n type: 'Bytes',\n },\n ],\n package: 'experimental/influxdb',\n desc: 'Submits an HTTP request to the specified InfluxDB API path and returns a record containing the HTTP status code, response headers, and response body as a byte array.',\n example: `influxdb.api(\n method: \"get\",\n path: \"/example\",\n host: \"http://localhost:8086\",\n token: \"mySupeR53cre7t0k3n\",\n headers: [\"header1\": \"header1Value\", \"header2\": \"header2Value\"],\n query: [\"ex1\": \"example1\", \"ex2\": \"example2\"],\n timeout: 30s,\n body: bytes(v: \"Example body\")\n)`,\n category: 'Outputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/influxdb/api/`,\n },\n {\n name: 'influxdb.cardinality',\n args: [\n {\n name: 'bucket',\n desc: 'Bucket to query cardinality from.',\n type: 'String',\n },\n {\n name: 'bucketID',\n desc: 'Bucket ID to query cardinality from.',\n type: 'String',\n },\n {\n name: 'org',\n desc: 'InfluxDB organization.',\n type: 'String',\n },\n {\n name: 'orgID',\n desc: 'InfluxDB organization ID.',\n type: 'String',\n },\n {\n name: 'host',\n desc: 'URL of the InfluxDB instance to query.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'InfluxDB authorization token.',\n type: 'String',\n },\n {\n name: 'start',\n desc: 'The earliest time to include when calculating cardinality.',\n type: 'Duration | Time',\n },\n {\n name: 'stop',\n desc: 'The latest time to include when calculating cardinality.',\n type: 'Duration | Time',\n },\n {\n name: 'predicate',\n desc: 'Predicate function that filters records. Default is `(r) => true.`',\n type: 'Function',\n },\n ],\n package: 'influxdata/influxdb',\n desc: 'Returns the series cardinality of data in InfluxDB.',\n example: 'influxdb.cardinality(bucket: \"example-bucket\", start: -1h)',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb/cardinality/`,\n },\n {\n name: 'influxdb.select',\n args: [\n {\n name: 'from',\n desc: 'Name of the bucket to query.',\n type: 'String',\n },\n {\n name: 'start',\n desc: 'Earliest time to include in results. Results include points that match the specified start time.',\n type: 'Duration | Time | Integer',\n },\n {\n name: 'stop',\n desc: 'Latest time to include in results. Results exclude points that match the specified stop time.',\n type: 'Duration | Time | Integer',\n },\n {\n name: 'm',\n desc: 'Name of the measurement to query.',\n type: 'String',\n },\n {\n name: 'fields',\n desc: 'List of fields to query. Returns all fields when list is empty or unspecified. Defaults to `[]`.',\n type: 'Array of Strings',\n },\n {\n name: 'where',\n desc: 'A single argument predicate function that evaluates true or false and filters results based on tag values. Defaults to `(r) => true`.',\n type: 'Function',\n },\n {\n name: 'host',\n desc: 'URL of the InfluxDB instance to query. See InfluxDB URLs.',\n type: 'String',\n },\n {\n name: 'org',\n desc: 'Organization name.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'InfluxDB authentication token.',\n type: 'String',\n },\n ],\n package: 'contrib/jsternberg/influxdb',\n desc: 'an alternate implementation of `from()`, `range()`, `filter()` and `pivot()` that returns pivoted query results and masks the `_measurement`, `_start`, and `_stop` columns.',\n example: `influxdb.select(\n from: \"example-bucket\",\n start: -1d,\n stop: now(),\n m: \"example-measurement\",\n fields: [],\n where: (r) => true,\n host: \"https://example.com\",\n org: \"example-org\",\n token: \"MySuP3rSecr3Tt0k3n\"\n)`,\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/influxdb/select/`,\n },\n {\n name: 'int',\n args: [\n {\n name: 'v',\n desc: 'The value to convert.',\n type: 'Boolean | Duration | Float | Numeric String | Time | Uinteger',\n },\n ],\n package: '',\n desc: 'Converts a single value to a integer.',\n example: 'int(v: r._value)',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/int/`,\n },\n {\n name: 'integral',\n args: [\n {\n name: 'unit',\n desc: 'The time duration used when computing the integral.',\n type: 'Duration',\n },\n {\n name: 'column',\n desc: 'The column on which to operate. Defaults to `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'timeColumn',\n desc: 'Column that contains time values to use in the operation. Defaults to `\"_time\"`.',\n type: 'String',\n },\n {\n name: 'interpolate',\n desc: 'Type of interpolation to use. Defaults to `\"\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Computes the area under the curve per unit of time of subsequent non-null records. The curve is defined using `_time` as the domain and record values as the range.',\n example: 'integral(unit: 10s, column: \"_value\")',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/integral/`,\n },\n {\n name: 'interpolate.linear',\n args: [\n {\n name: 'every',\n desc: 'Duration of time between interpolated points.',\n type: 'Duration',\n },\n ],\n package: 'interpolate',\n desc: 'Inserts rows at regular intervals using linear interpolation to determine values for inserted rows.',\n example: 'interpolate.linear(every: 1m)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/interpolate/linear/`,\n },\n {\n name: 'join',\n args: [\n {\n name: 'tables',\n desc: 'The map of streams to be joined.',\n type: 'Object',\n },\n {\n name: 'on',\n desc: 'The list of columns on which to join.',\n type: 'Array of Strings',\n },\n {\n name: 'method',\n desc: 'The method used to join. Possible values are: `inner`, `cross`, `left`, `right`, or `full`. Defaults to `\"inner\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Merges two or more input streams, whose values are equal on a set of common columns, into a single output stream. The resulting schema is the union of the input schemas. The resulting group key is the union of the input group keys.',\n example:\n 'join(tables: {key1: table1, key2: table2}, on: [\"_time\", \"_field\"], method: \"inner\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/join/`,\n },\n {\n name: 'json.encode',\n args: [\n {\n name: 'v',\n desc: 'The value to encode.',\n type: 'Boolean | Duration | Float | Integer | String | Time | UInteger',\n },\n ],\n package: 'json',\n desc: 'Converts a value into JSON bytes.',\n example: 'json.encode(v: r._value)',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/json/encode/`,\n },\n {\n name: 'json.parse',\n args: [\n {\n name: 'data',\n desc: 'JSON data to parse.',\n type: 'Bytes',\n },\n ],\n package: 'experimental/json',\n desc: 'Takes JSON data as bytes and returns a value.',\n example: 'json.parse(data: bytes(v: \"{\"a\":1,\"b\":2,\"c\":3}\"))',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/json/parse/`,\n },\n {\n name: 'kaufmansAMA',\n args: [\n {\n name: 'n',\n desc: 'The period or number of points to use in the calculation.',\n type: 'Integer',\n },\n {\n name: 'column',\n desc: 'The column to operate on. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Calculates Kaufman’s Adaptive Moving Average (KAMA) using values in an input table.',\n example: 'kaufmansAMA(n: 5)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/kaufmansama/`,\n },\n {\n name: 'kaufmansER',\n args: [\n {\n name: 'n',\n desc: 'The period or number of points to use in the calculation.',\n type: 'Integer',\n },\n ],\n package: '',\n desc: 'Calculates the Kaufman’s Efficiency Ratio (KER) using values in an input table.',\n example: 'kaufmansER(n: 5)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/kaufmanser/`,\n },\n {\n name: 'keep',\n args: [\n {\n name: 'columns',\n desc: 'Columns that should be included in the resulting table. Cannot be used with `fn`.',\n type: 'Array of Strings',\n },\n {\n name: 'fn',\n desc: 'A predicate function which takes a column name as a parameter and returns a boolean indicating whether or not the column should be removed from the table. Cannot be used with `columns`.',\n type: 'Function',\n },\n ],\n package: '',\n desc: 'Returns a table containing only the specified columns, ignoring all others. Only columns in the group key that are also specified in the `keep()` function will be kept in the resulting group key. It is the inverse of `drop`.',\n example: 'keep(columns: [\"col1\", \"col2\"])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/keep/`,\n },\n {\n name: 'keys',\n args: [\n {\n name: 'column',\n desc: 'Column is the name of the output column to store the group key labels. Defaults to `_value`.',\n type: 'String',\n },\n ],\n package: '',\n desc: \"Outputs the group key of input tables. For each input table, it outputs a table with the same group key columns, plus a _value column containing the labels of the input table's group key.\",\n example: 'keys(column: \"_value\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/keys/`,\n },\n {\n name: 'keyValues',\n args: [\n {\n name: 'keyColumns',\n desc: 'A list of columns from which values are extracted. All columns indicated must be of the same type.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: \"Returns a table with the input table's group key plus two columns, `_key` and `_value`, that correspond to unique column + value pairs from the input table.\",\n example: 'keyValues(keyColumns: [\"usage_idle\", \"usage_user\"])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/keyvalues/`,\n },\n {\n name: 'last',\n args: [],\n package: '',\n desc: 'Selects the last non-null record from an input table.',\n example: 'last()',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/last/`,\n },\n {\n name: 'length',\n args: [\n {\n name: 'arr',\n desc: 'The array to evaluate.',\n type: 'Array',\n },\n ],\n package: '',\n desc: 'Returns the number of items in an array.',\n example: 'length(arr: [\"john\"])',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/misc/length/`,\n },\n {\n name: 'limit',\n args: [\n {\n name: 'n',\n desc: 'The maximum number of records to output.',\n type: 'Integer',\n },\n {\n name: 'offset',\n desc: 'The number of records to skip at the beginning of a table before limiting to `n`. Defaults to `0`.',\n type: 'Integer',\n },\n ],\n package: '',\n desc: 'Limits each output table to the first `n` records, excluding the offset.',\n example: 'limit(n:10, offset: 0)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/limit/`,\n },\n {\n name: 'linearBins',\n args: [\n {\n name: 'start',\n desc: 'The first value in the returned list.',\n type: 'Float',\n },\n {\n name: 'width',\n desc: 'The distance between subsequent bin values.',\n type: 'Float',\n },\n {\n name: 'count',\n desc: 'The number of bins to create.',\n type: 'Integer',\n },\n {\n name: 'infinity',\n desc: 'When `true`, adds an additional bin with a value of positive infinity. Defaults to `true`.',\n type: 'Boolean',\n },\n ],\n package: '',\n desc: 'Generates a list of linearly separated floats.',\n example: 'linearBins(start: 0.0, width: 5.0, count: 20, infinity: true)',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/misc/linearbins/`,\n },\n {\n name: 'logarithmicBins',\n args: [\n {\n name: 'start',\n desc: 'The first value in the returned list.',\n type: 'Float',\n },\n {\n name: 'factor',\n desc: 'The multiplier applied to each subsequent bin.',\n type: 'Float',\n },\n {\n name: 'count',\n desc: 'The number of bins to create.',\n type: 'Integer',\n },\n {\n name: 'infinity',\n desc: 'When `true`, adds an additional bin with a value of positive infinity. Defaults to `true`.',\n type: 'Boolean',\n },\n ],\n package: '',\n desc: 'Generates a list of exponentially separated floats.',\n example:\n 'logarithmicBins(start: 1.0, factor: 2.0, count: 10, infinity: true)',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/misc/logarithmicbins/`,\n },\n {\n name: 'lowestAverage',\n args: [\n {\n name: 'n',\n desc: 'Number of records to return.',\n type: 'Integer',\n },\n {\n name: 'column',\n desc: 'Column by which to sort. Default is `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'groupColumns',\n desc: 'The columns on which to group before performing the aggregation. Default is `[]`.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Returns the bottom `n` records from all groups using the average of each group.',\n example: 'lowestAverage(n:10, groupColumns: [\"host\"])',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/lowestaverage/`,\n },\n {\n name: 'lowestCurrent',\n args: [\n {\n name: 'n',\n desc: 'Number of records to return.',\n type: 'Integer',\n },\n {\n name: 'column',\n desc: 'Column by which to sort. Default is `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'groupColumns',\n desc: 'The columns on which to group before performing the aggregation. Default is `[]`.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Returns the bottom `n` records from all groups using the last value of each group.',\n example: 'lowestCurrent(n:10, groupColumns: [\"host\"])',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/lowestcurrent/`,\n },\n {\n name: 'lowestMin',\n args: [\n {\n name: 'n',\n desc: 'Number of records to return.',\n type: 'Integer',\n },\n {\n name: 'column',\n desc: 'Column by which to sort. Default is `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'groupColumns',\n desc: 'The columns on which to group before performing the aggregation. Default is `[]`.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Returns the bottom `n` records from all groups using the maximum of each group.',\n example: 'lowestMin(n:10, groupColumns: [\"host\"])',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/lowestmin/`,\n },\n {\n name: 'map',\n args: [\n {\n name: 'fn',\n desc: 'A single argument function that to apply to each record. The return value must be an object.',\n type: 'Function',\n },\n ],\n package: '',\n desc: 'Applies a function to each record in the input tables.',\n example: 'map(fn: (r) => ({ r with _value: r._value * r._value }))',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/map/`,\n },\n MATH_ABS,\n {\n name: 'math.acos',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the arccosine of x in radians.',\n example: 'math.acos(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/acos/`,\n },\n {\n name: 'math.acosh',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation. Should be greater than 1.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the inverse hyperbolic cosine of x.',\n example: 'math.acosh(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/acosh/`,\n },\n {\n name: 'math.asin',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation. Should be greater than -1 and less than 1.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the arcsine of x in radians.',\n example: 'math.asin(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/asin/`,\n },\n {\n name: 'math.asinh',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the inverse hyperbolic sine of x.',\n example: 'math.asinh(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/asinh/`,\n },\n {\n name: 'math.atan',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the arctangent of x in radians.',\n example: 'math.atan(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/atan/`,\n },\n {\n name: 'math.atan2',\n args: [\n {\n name: 'y',\n desc: 'The y coordinate used in the operation.',\n type: 'Float',\n },\n {\n name: 'x',\n desc: 'The x coordinate used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the arc tangent of y/x, using the signs of the two to determine the quadrant of the return value.',\n example: 'math.atan2(y: r.y_coord, x: r.x_coord)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/atan2/`,\n },\n {\n name: 'math.atanh',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation. Should be greater than -1 and less than 1.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the inverse hyperbolic tangent of x.',\n example: 'math.atanh(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/atanh/`,\n },\n {\n name: 'math.cbrt',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the cube root of x.',\n example: 'math.cbrt(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/cbrt/`,\n },\n {\n name: 'math.ceil',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the least integer value greater than or equal to x.',\n example: 'math.ceil(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/ceil/`,\n },\n {\n name: 'math.copysign',\n args: [\n {\n name: 'x',\n desc: 'The magnitude used in the operation.',\n type: 'Float',\n },\n {\n name: 'y',\n desc: 'The sign used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns a value with the magnitude of x and the sign of y.',\n example: 'math.copysign(x: r._magnitude, r._sign)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/copysign/`,\n },\n {\n name: 'math.cos',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the cosine of the radian argument x.',\n example: 'math.cos(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/cos/`,\n },\n {\n name: 'math.cosh',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the hyperbolic cosine of x.',\n example: 'math.cosh(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/cosh/`,\n },\n {\n name: 'math.dim',\n args: [\n {\n name: 'x',\n desc: 'The X value used in the operation.',\n type: 'Float',\n },\n {\n name: 'y',\n desc: 'The Y value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the maximum of (x - y) or 0.',\n example: 'math.dim(x: r._value1, y: r._value2)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/dim/`,\n },\n {\n name: 'math.erf',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the error function of x.',\n example: 'math.erf(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/erf/`,\n },\n {\n name: 'math.erfc',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the complementary error function of x.',\n example: 'math.erfc(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/erfc/`,\n },\n {\n name: 'math.erfcinv',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation. Should be greater than 0 and less than 2.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the inverse of `math.erfc()`.',\n example: 'math.erfcinv(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/erfcinv/`,\n },\n {\n name: 'math.erfinv',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation. Should be greater than -1 and less than 1.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the inverse error function of x.',\n example: 'math.erfinv(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/erfinv/`,\n },\n {\n name: 'math.exp',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the base-e exponential of x (`e**x`).',\n example: 'math.exp(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/exp/`,\n },\n {\n name: 'math.exp2',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the base-2 exponential of x (`2**x`).',\n example: 'math.exp2(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/exp2/`,\n },\n {\n name: 'math.expm1',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the base-e exponential of x minus 1 (`e**x - 1`).',\n example: 'math.expm1(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/expm1/`,\n },\n {\n name: 'math.float64bits',\n args: [\n {\n name: 'f',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the IEEE 754 binary representation of f, with the sign bit of f and the result in the same bit position.',\n example: 'math.float64bits(f: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/float64bits/`,\n },\n MATH_FLOOR,\n {\n name: 'math.frexp',\n args: [\n {\n name: 'f',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Breaks f into a normalized fraction and an integral power of two.',\n example: 'math.frexp(f: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/frexp/`,\n },\n {\n name: 'math.gamma',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the Gamma function of x.',\n example: 'math.gamma(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/gamma/`,\n },\n {\n name: 'math.hypot',\n args: [\n {\n name: 'p',\n desc: 'The p value used in the operation.',\n type: 'Float',\n },\n {\n name: 'q',\n desc: 'The q value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the square root of `p*p + q*q`, taking care to avoid overflow and underflow.',\n example: 'math.hypot(p: r.opp, p: r.adj)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/hypot/`,\n },\n {\n name: 'math.ilogb',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the binary exponent of x as an integer.',\n example: 'math.ilogb(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/ilogb/`,\n },\n {\n name: 'math.isInf',\n args: [\n {\n name: 'f',\n desc: 'The value used in the evaluation.',\n type: 'Float',\n },\n {\n name: 'sign',\n desc: 'The sign used in the evaluation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Reports whether f is an infinity, according to sign.',\n example: 'math.isInf(f: r._value, sign: r.sign)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/isinf/`,\n },\n {\n name: 'math.isNaN',\n args: [\n {\n name: 'f',\n desc: 'The value used in the evaluation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Reports whether f is an IEEE 754 NaN value.',\n example: 'math.isNaN(f: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/isnan/`,\n },\n {\n name: 'math.j0',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the order-zero Bessel function of the first kind.',\n example: 'math.j0(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/j0/`,\n },\n {\n name: 'math.j1',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the order-one Bessel function of the first kind.',\n example: 'math.j1(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/j1/`,\n },\n {\n name: 'math.jn',\n args: [\n {\n name: 'n',\n desc: 'The order number.',\n type: 'Float',\n },\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the order-n Bessel function of the first kind.',\n example: 'math.jn(n: 2, x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/jn/`,\n },\n {\n name: 'math.ldexp',\n args: [\n {\n name: 'frac',\n desc: 'The fraction used in the operation.',\n type: 'Float',\n },\n {\n name: 'exp',\n desc: 'The exponent used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns `frac × 2**exp`. It is the inverse of `math.frexp()`.',\n example: 'math.ldexp(frac: r.frac, exp: r.exp)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/ldexp/`,\n },\n {\n name: 'math.lgamma',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the natural logarithm and sign (-1 or +1) of `math.gamma(x:x)`.',\n example: 'math.lgamma(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/lgamma/`,\n },\n {\n name: 'math.log',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the natural logarithm of x.',\n example: 'math.log(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/log/`,\n },\n {\n name: 'math.log10',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the decimal logarithm of `x`.',\n example: 'math.log10(x: 3.14)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/log10/`,\n },\n {\n name: 'math.log1p',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the natural logarithm of 1 plus its argument x.',\n example: 'math.log1p(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/log1p/`,\n },\n {\n name: 'math.log2',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the binary logarithm of x.',\n example: 'math.log2(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/log2/`,\n },\n {\n name: 'math.logb',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the binary exponent of x.',\n example: 'math.logb(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/logb/`,\n },\n {\n name: 'math.mInf',\n args: [\n {\n name: 'sign',\n desc: 'The sign value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns positive infinity if `sign >= 0`, negative infinity if `sign < 0`.',\n example: 'math.mInf(sign: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/minf/`,\n },\n {\n name: 'math.mMax',\n args: [\n {\n name: 'x',\n desc: 'The X value used in the operation.',\n type: 'Float',\n },\n {\n name: 'y',\n desc: 'The Y value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the larger of x or y.',\n example: 'math.mMax(x: r.x_value, y: r.y_value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/mmax/`,\n },\n {\n name: 'math.mMin',\n args: [\n {\n name: 'x',\n desc: 'The X value used in the operation.',\n type: 'Float',\n },\n {\n name: 'y',\n desc: 'The Y value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the smaller of x or y.',\n example: 'math.mMin(x: r.x_value, y: r.y_value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/mmin/`,\n },\n {\n name: 'math.mod',\n args: [\n {\n name: 'x',\n desc: 'The X value used in the operation.',\n type: 'Float',\n },\n {\n name: 'y',\n desc: 'The Y value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the floating-point remainder of x/y.',\n example: 'math.mod(x: r.x_value, y: r.y_value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/mod/`,\n },\n {\n name: 'math.modf',\n args: [\n {\n name: 'f',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns integer and fractional floating-point numbers that sum to f. Both values have the same sign as f.',\n example: 'math.modf(f: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/modf/`,\n },\n {\n name: 'math.NaN',\n args: [],\n package: 'math',\n desc: 'Returns an IEEE 754 NaN value.',\n example: 'math.NaN()',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/nan/`,\n },\n {\n name: 'math.nextafter',\n args: [\n {\n name: 'x',\n desc: 'The X value used in the operation.',\n type: 'Float',\n },\n {\n name: 'y',\n desc: 'The Y value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the next representable float value after x towards y.',\n example: 'math.nextafter(x: r.x_value, y: r.y_value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/nextafter/`,\n },\n {\n name: 'math.pow',\n args: [\n {\n name: 'x',\n desc: 'The X value used in the operation.',\n type: 'Float',\n },\n {\n name: 'y',\n desc: 'The Y value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the base-x exponential of y, `x**y`.',\n example: 'math.pow(x: r.x_value, y: r.y_value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/pow/`,\n },\n {\n name: 'math.pow10',\n args: [\n {\n name: 'n',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the base-10 exponential of n, `10**n`.',\n example: 'math.pow10(n: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/pow10/`,\n },\n {\n name: 'math.remainder',\n args: [\n {\n name: 'x',\n desc: 'The numerator used in the operation.',\n type: 'Float',\n },\n {\n name: 'y',\n desc: 'The denominator used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the IEEE 754 floating-point remainder of `x / y`.',\n example: 'math.remainder(x: r.numerator, y: r.denominator)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/remainder/`,\n },\n {\n name: 'math.round',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the nearest integer, rounding half away from zero.',\n example: 'math.round(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/round/`,\n },\n {\n name: 'math.roundtoeven',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the nearest integer, rounding ties to even.',\n example: 'math.roundtoeven(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/roundtoeven/`,\n },\n {\n name: 'math.signbit',\n args: [\n {\n name: 'x',\n desc: 'The value used in the evaluation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Reports whether x is negative or negative zero.',\n example: 'math.signbit(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/signbit/`,\n },\n {\n name: 'math.sin',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the sine of the radian argument x.',\n example: 'math.sin(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/sin/`,\n },\n {\n name: 'math.sincos',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the values of `math.sin(x:x)` and `math.cos(x:x)`.',\n example: 'math.sincos(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/sincos/`,\n },\n {\n name: 'math.sinh',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the hyperbolic sine of x.',\n example: 'math.sinh(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/sinh/`,\n },\n {\n name: 'math.sqrt',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the square root of x.',\n example: 'math.sqrt(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/sqrt/`,\n },\n {\n name: 'math.tan',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the tangent of the radian argument x.',\n example: 'math.tan(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/tan/`,\n },\n {\n name: 'math.tanh',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the hyperbolic tangent of x.',\n example: 'math.tanh(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/tanh/`,\n },\n {\n name: 'math.trunc',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the integer value of x.',\n example: 'math.trunc(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/trunc/`,\n },\n {\n name: 'math.y0',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the order-zero Bessel function of the second kind.',\n example: 'math.y0(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/y0/`,\n },\n {\n name: 'math.y1',\n args: [\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the order-one Bessel function of the second kind.',\n example: 'math.y1(x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/y1/`,\n },\n {\n name: 'math.yn',\n args: [\n {\n name: 'n',\n desc: 'The order number used in the operation.',\n type: 'Float',\n },\n {\n name: 'x',\n desc: 'The value used in the operation.',\n type: 'Float',\n },\n ],\n package: 'math',\n desc: 'Returns the order-n Bessel function of the second kind.',\n example: 'math.yn(n: 3, x: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/math/yn/`,\n },\n {\n name: 'max',\n args: [\n {\n name: 'column',\n desc: 'The column to use to compute the max. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Selects record with the highest `_value` from the input table.',\n example: 'max()',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/max/`,\n },\n MEAN,\n {\n name: 'median',\n args: [\n {\n name: 'column',\n desc: 'The column on which to compute the mean. Defaults to `\"_value\"`',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Returns the median `_value` of an input table. The `median()` function can only be used with float value types.',\n example: 'median(column: \"_value\")',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/median/`,\n },\n {\n name: 'min',\n args: [\n {\n name: 'column',\n desc: 'The column to use to compute the min. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Selects record with the lowest `_value` from the input table.',\n example: 'min()',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/min/`,\n },\n {\n name: 'mode',\n args: [\n {\n name: 'column',\n desc: 'The column to use to compute the mode. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Computes the mode or value that occurs most often in a specified column.',\n example: 'mode(column: \"_value\")',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/mode/`,\n },\n {\n name: 'monitor.check',\n args: [\n {\n name: 'crit',\n desc: 'Predicate function that determines `crit` status. Default is `(r) => false`.',\n type: 'Function',\n },\n {\n name: 'warn',\n desc: 'Predicate function that determines `warn` status. Default is `(r) => false`.',\n type: 'Function',\n },\n {\n name: 'info',\n desc: 'Predicate function that determines `info` status. Default is `(r) => false`.',\n type: 'Function',\n },\n {\n name: 'ok',\n desc: 'Predicate function that determines `ok` status. Default is `(r) => false`.',\n type: 'Function',\n },\n {\n name: 'messageFn',\n desc: 'A function that constructs a message to append to each row. The message is stored in the `_message` column.',\n type: 'Function',\n },\n {\n name: 'data',\n desc: 'Meta data used to identify this check.',\n type: 'Record',\n },\n ],\n package: 'influxdata/influxdb/monitor',\n desc: 'Checks input data and assigns a level (`ok`, `info`, `warn`, or `crit`) to each row based on predicate functions.',\n example: `monitor.check(\n crit: (r) => r._value > 90.0,\n warn: (r) => r._value > 80.0,\n info: (r) => r._value > 60.0,\n ok: (r) => r._value <= 20.0,\n messageFn: (r) => \"The current level is \\${r._level}\",\n data: {}\n)`,\n category: 'Transformation',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/monitor/check/`,\n },\n {\n name: 'monitor.deadman',\n args: [\n {\n name: 't',\n desc: 'The time threshold for the deadman check.',\n type: 'Time',\n },\n ],\n package: 'influxdata/influxdb/monitor',\n desc: 'Detects when a group stops reporting data. It takes a stream of tables and reports if groups have been observed since time `t`.',\n example: `monitor.deadman(t: 2019-08-30T12:30:00Z)`,\n category: 'Transformation',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/monitor/deadman/`,\n },\n {\n name: 'monitor.from',\n args: [\n {\n name: 'start',\n desc: 'The earliest time to include in results.',\n type: 'Duration | Time | Integer',\n },\n {\n name: 'stop',\n desc: 'The latest time to include in results.',\n type: 'Duration | Time | Integer',\n },\n {\n name: 'fn',\n desc: 'A single argument predicate function that evaluates `true` or `false`.',\n type: 'Function',\n },\n ],\n package: 'influxdata/influxdb/monitor',\n desc: 'Detects when a group stops reporting data. It takes a stream of tables and reports if groups have been observed since time `t`.',\n example: `monitor.from(\n start: -1h,\n stop: now(),\n fn: (r) => true\n)`,\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/monitor/from/`,\n },\n {\n name: 'monitor.logs',\n args: [\n {\n name: 'start',\n desc: 'The earliest time to include in results.',\n type: 'Duration | Time | Integer',\n },\n {\n name: 'stop',\n desc: 'The latest time to include in results.',\n type: 'Duration | Time | Integer',\n },\n {\n name: 'fn',\n desc: 'A single argument predicate function that evaluates `true` or `false`.',\n type: 'Function',\n },\n ],\n package: 'influxdata/influxdb/monitor',\n desc: 'Retrieves notification events stored in the notifications measurement in the `_monitoring` bucket.',\n example: `monitor.from(\n start: -1h,\n stop: now(),\n fn: (r) => true\n)`,\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/monitor/logs/`,\n },\n {\n name: 'monitor.notify',\n args: [\n {\n name: 'endpoint',\n desc: 'A function that constructs and sends the notification to an endpoint.',\n type: 'Function',\n },\n {\n name: 'data',\n desc: 'Notification data to append to the output.',\n type: 'Record',\n },\n ],\n package: 'influxdata/influxdb/monitor',\n desc: 'Sends a notification to an endpoint and logs it in the notifications measurement in the `_monitoring` bucket.',\n example: `monitor.notify(\n endpoint: endpoint,\n data: {}\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/monitor/notify/`,\n },\n {\n name: 'monitor.stateChanges',\n args: [\n {\n name: 'fromLevel',\n desc: 'The level to detect a change from. Defaults to `\"any\"`.',\n type: 'String',\n },\n {\n name: 'toLevel',\n desc: 'The level to detect a change to. The function output records that change to this level. Defaults to `\"any\"`.',\n type: 'String',\n },\n ],\n package: 'influxdata/influxdb/monitor',\n desc: 'Detects state changes in a stream of data with a `_level` column and outputs records that change from `fromLevel` to `toLevel`.',\n example: `monitor.stateChanges(\n fromLevel: \"any\",\n toLevel: \"any\"\n)`,\n category: 'Transformation',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/monitor/statechanges/`,\n },\n {\n name: 'monitor.stateChangesOnly',\n args: [],\n package: 'influxdata/influxdb/monitor',\n desc: 'Takes a stream of tables that contains a `_level` column and returns a stream of tables where each record represents a state change.',\n example: `monitor.stateChangesOnly()`,\n category: 'Transformation',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/monitor/statechangesonly/`,\n },\n {\n name: 'movingAverage',\n args: [\n {\n name: 'n',\n desc: 'The frequency of time windows.',\n type: 'Duration',\n },\n ],\n package: '',\n desc: 'Calculates the mean of values grouped into `n` number of points.',\n example: 'movingAverage(n: 5)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/movingaverage/`,\n },\n {\n name: 'mqtt.to',\n args: [\n {\n name: 'broker',\n desc: 'The MQTT broker connection string.',\n type: 'String',\n },\n {\n name: 'topic',\n desc: 'The MQTT topic to send data to.',\n type: 'String',\n },\n {\n name: 'message',\n desc: 'The message or payload to send to the MQTT broker. The default payload is an output table.',\n type: 'String',\n },\n {\n name: 'qos',\n desc: 'The MQTT Quality of Service (QoS) level. Values range from 0-2. Default is 0.',\n type: 'Integer',\n },\n {\n name: 'clientid',\n desc: 'The MQTT client ID.',\n type: 'String',\n },\n {\n name: 'username',\n desc: 'The username to send to the MQTT broker.',\n type: 'String',\n },\n {\n name: 'password',\n desc: 'The password to send to the MQTT broker.',\n type: 'String',\n },\n {\n name: 'name',\n desc: 'The name for the MQTT message.',\n type: 'String',\n },\n {\n name: 'timeout',\n desc: 'The MQTT connection timeout. Default is 1s.',\n type: 'Duration',\n },\n {\n name: 'timeColumn',\n desc: 'The column to use as time values in the output line protocol. Default is `\"_time\"`.',\n type: 'String',\n },\n {\n name: 'tagColumns',\n desc: 'The columns to use as tag sets in the output line protocol. Default is `[]`.',\n type: 'Array of Strings',\n },\n {\n name: 'valueColumns',\n desc: 'The columns to use as field values in the output line protocol. Default is `[\"_value\"]`.',\n type: 'Array of Strings',\n },\n ],\n package: 'experimental/mqtt',\n desc: 'Outputs data to an MQTT broker using MQTT protocol.',\n example:\n 'mqtt.to(broker: \"tcp://localhost:8883\", topic: \"example-topic\", clientid: \"exampleID\", tagColumns: [\"exampleTagKey\"], valueColumns: [\"_value\"])',\n category: 'Outputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/mqtt/to/`,\n },\n {\n name: 'now',\n args: [],\n package: '',\n desc: 'Returns the current time (UTC) or the time defined in the `now` option.',\n example: 'now()',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/misc/now/`,\n },\n {\n name: 'oee.APQ',\n args: [\n {\n name: 'runningState',\n desc: 'State value that represents a running state.',\n type: 'String',\n },\n {\n name: 'plannedTime',\n desc: 'Total time that equipment is expected to produce parts.',\n type: 'Duration | Integer',\n },\n {\n name: 'idealCycleTime',\n desc: 'Ideal minimum time to produce one part.',\n type: 'Duration | Integer',\n },\n ],\n package: 'experimental/oee',\n desc: 'Computes availability, performance, quality (APQ) and overall equipment effectiveness (OEE) in producing parts.',\n example: `oee.APQ(\n runningState: \"running\",\n plannedTime: 8h,\n idealCycleTime: 2m\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/oee/apq/`,\n },\n {\n name: 'oee.computeAPQ',\n args: [\n {\n name: 'productionEvents',\n desc: 'Production events stream that contains the production state or start and stop events.',\n type: 'Stream of Tables',\n },\n {\n name: 'partEvents',\n desc: 'Part events that contains the running totals of parts produced and parts that do not meet quality standards.',\n type: 'Stream of Tables',\n },\n {\n name: 'runningState',\n desc: 'State value that represents a running state.',\n type: 'String',\n },\n {\n name: 'plannedTime',\n desc: 'Total time that equipment is expected to produce parts.',\n type: 'Duration | Integer',\n },\n {\n name: 'idealCycleTime',\n desc: 'Ideal minimum time to produce one part.',\n type: 'Duration | Integer',\n },\n ],\n package: 'experimental/oee',\n desc: 'Computes availability, performance, and quality (APQ) and overall equipment effectiveness (OEE) using two separate input streams—production events and part events.',\n example: `oee.computeAPQ(\n productionEvents: exampleProductionScheme,\n partEvents: examplePartsStream,\n runningState: \"running\",\n plannedTime: 8h,\n idealCycleTime: 2m,\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/oee/computeapq/`,\n },\n {\n name: 'opsgenie.endpoint',\n args: [\n {\n name: 'url',\n desc: 'Opsgenie API URL. Defaults to `https://api.opsgenie.com/v2/alerts`.',\n type: 'String',\n },\n {\n name: 'apiKey',\n desc: 'Opsgenie API authorization key.',\n type: 'String',\n },\n {\n name: 'entity',\n desc: 'Alert entity used to specify the alert domain.',\n type: 'String',\n },\n ],\n package: 'contrib/sranka/opsgenie',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = opsgenie.endpoint(\n url: \"https://api.opsgenie.com/v2/alerts\",\n apiKey: \"YoUrSup3R5ecR37AuThK3y\",\n entity: \"example-entity\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/opsgenie/endpoint/`,\n },\n {\n name: 'opsgenie.sendAlert',\n args: [\n {\n name: 'url',\n desc: 'Opsgenie API URL. Defaults to `https://api.opsgenie.com/v2/alerts`.',\n type: 'String',\n },\n {\n name: 'apiKey',\n desc: 'Opsgenie API authorization key.',\n type: 'String',\n },\n {\n name: 'message',\n desc: 'Alert message text. 130 characters or less.',\n type: 'String',\n },\n {\n name: 'alias',\n desc: 'Opsgenie alias usee to de-deduplicate alerts. 250 characters or less. Defaults to `message`.',\n type: 'String',\n },\n {\n name: 'description',\n desc: 'Alert description. 15,000 characters or less.',\n type: 'String',\n },\n {\n name: 'priority',\n desc: 'Opsgenie alert priority. Valid values include: P1, P2, P3 (default), P4, and P5.',\n type: 'String',\n },\n {\n name: 'responders',\n desc: 'List of responder teams or users. Use the `user:` prefix for users and `teams:` prefix for teams.',\n type: 'Array of Strings',\n },\n {\n name: 'tags',\n desc: 'Alert tags.',\n type: 'String',\n },\n {\n name: 'entity',\n desc: 'Alert entity used to specify the alert domain.',\n type: 'String',\n },\n {\n name: 'actions',\n desc: 'List of actions available for the alert.',\n type: 'Array of strings',\n },\n {\n name: 'details',\n desc: 'Additional alert details. Must be a JSON-encoded map of key-value string pairs.',\n type: 'String',\n },\n {\n name: 'visibleTo',\n desc: 'List of teams and users the alert will be visible to without sending notifications. Use the `user:` prefix for users and `teams:` prefix for teams.',\n type: 'Array of strings',\n },\n ],\n package: 'contrib/sranka/opsgenie',\n desc: 'Sends an alert to Opsgenie.',\n example: `opsgenie.sendAlert(\n url: \"https://api.opsgenie.com/v2/alerts\",\n apiKey: \"YoUrSup3R5ecR37AuThK3y\",\n message: \"Example message\",\n alias: \"Example alias\",\n description: \"Example description\",\n priority: \"P3\",\n responders: [\"user:john@example.com\", \"team:itcrowd\"],\n tags: [\"tag1\", \"tag2\"],\n entity: \"example-entity\",\n actions: [\"action1\", \"action2\"],\n details: \"{}\",\n visibleTo: []\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/opsgenie/sendalert/`,\n },\n {\n name: 'pagerduty.actionFromSeverity',\n args: [\n {\n name: 'severity',\n desc: 'The severity to convert to a PagerDuty action.',\n type: 'String',\n },\n ],\n package: 'pagerduty',\n desc: 'Converts a severity to a PagerDuty action. `ok` converts to `resolve`. All other severities convert to `trigger`.',\n example: 'pagerduty.actionFromSeverity(severity: \"ok\")',\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/pagerduty/actionfromseverity/`,\n },\n {\n name: 'pagerduty.dedupKey',\n args: [],\n package: 'pagerduty',\n desc: 'uses the group key of an input table to generate and store a deduplication key in the `_pagerdutyDedupKey` column.',\n example: 'pagerduty.dedupKey()',\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/pagerduty/dedupkey/`,\n },\n {\n name: 'pagerduty.endpoint',\n args: [\n {\n name: 'url',\n desc: 'The PagerDuty v2 Events API URL. Defaults to `https://events.pagerduty.com/v2/enqueue`.',\n type: 'String',\n },\n ],\n package: 'pagerduty',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = pagerduty.endpoint(\n url: \"https://events.pagerduty.com/v2/enqueue\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/pagerduty/endpoint/`,\n },\n {\n name: 'pagerduty.sendEvent',\n args: [\n {\n name: 'pagerdutyURL',\n desc: 'The URL of the PagerDuty endpoint. Defaults to `https://events.pagerduty.com/v2/enqueue`.',\n type: 'String',\n },\n {\n name: 'routingKey',\n desc: 'The routing key generated from your PagerDuty integration.',\n type: 'String',\n },\n {\n name: 'client',\n desc: 'The name of the client sending the alert.',\n type: 'String',\n },\n {\n name: 'clientURL',\n desc: 'The URL of the client sending the alert.',\n type: 'String',\n },\n {\n name: 'dedupkey',\n desc: 'A per-alert ID that acts as deduplication key and allows you to acknowledge or change the severity of previous messages. Supports a maximum of 255 characters.',\n type: 'String',\n },\n {\n name: 'class',\n desc: 'The class or type of the event. Classes are user-defined.',\n type: 'String',\n },\n {\n name: 'group',\n desc: 'A logical grouping used by PagerDuty. Groups are user-defined.',\n type: 'String',\n },\n {\n name: 'severity',\n desc: 'The severity of the event. Supported severities are `\"critical\"`, `\"error\"`, `\"warning\"`, `\"info\"`.',\n type: 'String',\n },\n {\n name: 'eventAction',\n desc: 'Event type to send to PagerDuty. Valid values include `\"trigger\"`, `\"resolve\"`, `\"acknowledge\"`.',\n type: 'String',\n },\n {\n name: 'source',\n desc: 'The unique location of the affected system. For example, the hostname or fully qualified domain name (FQDN).',\n type: 'String',\n },\n {\n name: 'summary',\n desc: 'A brief text summary of the event used as the summaries or titles of associated alerts. The maximum permitted length is 1024 characters.',\n type: 'String',\n },\n {\n name: 'timestamp',\n desc: 'The time the detected event occurred in RFC3339nano format.',\n type: 'String',\n },\n ],\n package: 'pagerduty',\n desc: 'Sends an alert to PagerDuty.',\n example: `pagerduty.sendEvent(\n pagerdutyURL: \"https://events.pagerduty.com/v2/enqueue\",\n routingKey: \"ExampleRoutingKey\",\n client: \"ExampleClient\",\n clientURL: \"http://examplepagerdutyclient.com\",\n dedupkey: \"ExampleDedupKey\",\n class: \"cpu usage\",\n group: \"app-stack\",\n severity: \"ok\",\n eventAction: \"trigger\",\n source: \"monitoringtool:vendor:region\",\n summary: \"This is an example summary.\",\n timestamp: \"2016-07-17T08:42:58.315+0000\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/pagerduty/sendevent/`,\n },\n {\n name: 'pagerduty.severityFromLevel',\n args: [\n {\n name: 'level',\n desc: 'The level to convert to a PagerDuty severity.',\n type: 'String',\n },\n ],\n package: 'pagerduty',\n desc: 'Converts an InfluxDB status level to a PagerDuty severity.',\n example: 'pagerduty.severityFromLevel(level: \"crit\")',\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/pagerduty/severityfromlevel/`,\n },\n {\n name: 'pearsonr',\n args: [\n {\n name: 'x',\n desc: 'First input stream used in the operation.',\n type: 'Object',\n },\n {\n name: 'y',\n desc: 'Second input stream used in the operation.',\n type: 'Object',\n },\n {\n name: 'on',\n desc: 'List of columns on which to join.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Computes the Pearson R correlation coefficient between two streams by first joining the streams, then performing the covariance operation normalized to compute R.',\n example: 'pearsonr(x: table1, y: table2, on: [\"_time\", \"_field\"])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/pearsonr/`,\n },\n {\n name: 'pivot',\n args: [\n {\n name: 'rowKey',\n desc: 'List of columns used to uniquely identify a row for the output.',\n type: 'Array of Strings',\n },\n {\n name: 'columnKey',\n desc: 'List of columns used to pivot values onto each row identified by the rowKey.',\n type: 'Array of Strings',\n },\n {\n name: 'valueColumn',\n desc: 'The single column that contains the value to be moved around the pivot.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Collects values stored vertically (column-wise) in a table and aligns them horizontally (row-wise) into logical sets.',\n example:\n 'pivot(rowKey:[\"_time\"], columnKey: [\"_field\"], valueColumn: \"_value\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/pivot/`,\n },\n {\n name: 'prometheus.histogramQuantile',\n args: [\n {\n name: 'quantile',\n desc: 'A value between 0.0 and 1.0 indicating the desired quantile.',\n type: 'Float',\n },\n ],\n package: 'experimental/prometheus',\n desc: 'Calculates quantiles on a set of values assuming the histogram data is scraped or read from a Prometheus data source.',\n example: 'prometheus.histogramQuantile(quantile: 0.99)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/prometheus/histogramquantile/`,\n },\n {\n name: 'prometheus.scrape',\n args: [\n {\n name: 'url',\n desc: 'The URL to scrape Prometheus-formatted metrics from.',\n type: 'String',\n },\n ],\n package: 'experimental/prometheus',\n desc: 'Retrieves Prometheus-formatted metrics from a specified URL.',\n example: 'prometheus.scrape(url: \"http://localhost:9999/metrics\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/prometheus/scrape/`,\n },\n {\n name: 'pushbullet.endpoint',\n args: [\n {\n name: 'url',\n desc: 'Pushbullet API URL. Defaults to `https://api.pushbullet.com/v2/pushes`.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'Pushbullet API token to use when interacting with Pushbullet. Defaults to `\"\"`.',\n type: 'String',\n },\n ],\n package: 'pushbullet',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = pushbullet.endpoint(\n url: \"https://api.pushbullet.com/v2/pushes\",\n token: \"\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/pushbullet/endpoint/`,\n },\n {\n name: 'pushbullet.pushData',\n args: [\n {\n name: 'url',\n desc: 'Pushbullet API URL. Defaults to `https://api.pushbullet.com/v2/pushes`.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'Pushbullet API token to use when interacting with Pushbullet. Defaults to `\"\"`.',\n type: 'String',\n },\n {\n name: 'data',\n desc: 'Data to send to the Pushbullet API. The function JSON-encodes data before sending it to Pushbullet.',\n type: 'Record',\n },\n ],\n package: 'pushbullet',\n desc: 'Sends a push notification to the Pushbullet API.',\n example: `pushbullet.pushData(\n url: \"https://api.pushbullet.com/v2/pushes\",\n token: \"\",\n data: {\n \"type\": \"link\",\n \"title\": \"This is a notification!\",\n \"body\": \"This notification came from Flux.\",\n \"url\": \"http://example.com\"\n }\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/pushbullet/pushdata/`,\n },\n {\n name: 'pushbullet.pushData',\n args: [\n {\n name: 'url',\n desc: 'Pushbullet API URL. Defaults to `https://api.pushbullet.com/v2/pushes`.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'Pushbullet API token to use when interacting with Pushbullet. Defaults to `\"\"`.',\n type: 'String',\n },\n {\n name: 'title',\n desc: 'Title of the notification.',\n type: 'String',\n },\n {\n name: 'text',\n desc: 'Text to display in the notification.',\n type: 'String',\n },\n ],\n package: 'pushbullet',\n desc: 'Sends a push notification of type `note` to the Pushbullet API.',\n example: `pushbullet.pushNote(\n url: \"https://api.pushbullet.com/v2/pushes\",\n token: \"\",\n title: \"This is a push notification!\",\n text: \"This push notification came from Flux.\"\n)`,\n category: 'Outputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/pushbullet/pushnote/`,\n },\n {\n name: 'quantile',\n args: [\n {\n name: 'column',\n desc: 'The column on which to compute the quantile. Defaults to `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'q',\n desc: 'A value between 0 and 1 indicating the desired quantile.',\n type: 'Float',\n },\n {\n name: 'method',\n desc: 'Defines the method of computation. The available options are: `estimate_tdigest`, `exact_mean`, or `exact_selector`.',\n type: 'String',\n },\n {\n name: 'compression',\n desc: 'Indicates how many centroids to use when compressing the dataset. A larger number produces a more accurate result at the cost of increased memory requirements. Defaults to 1000.',\n type: 'Float',\n },\n ],\n package: '',\n desc: 'This is both an aggregate and selector function depending on the `method` used. When using the `estimate_tdigest` or `exact_mean` methods, it outputs non-null records with values that fall within the specified quantile. When using the `exact_selector` method, it outputs the non-null record with the value that represents the specified quantile.',\n example:\n 'quantile(column: \"_value\", q: 0.99, method: \"estimate_tdigest\", compression: 1000.0)',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/quantile/`,\n },\n {\n name: 'query.filterFields',\n args: [\n {\n name: 'fields',\n desc: 'Fields to filter by.',\n type: 'Array of Strings',\n },\n ],\n package: 'experimental/query',\n desc: 'Filters input data by field.',\n example: 'query.filterFields(fields: [\"field_name\"])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/query/filterfields/`,\n },\n {\n name: 'query.filterMeasurement',\n args: [\n {\n name: 'measurement',\n desc: 'Measurement to filter by.',\n type: 'String',\n },\n ],\n package: 'experimental/query',\n desc: 'Filters input data by measurement.',\n example: 'query.filterMeasurement(measurement: \"measurement_name\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/query/filtermeasurement/`,\n },\n {\n name: 'query.fromRange',\n args: [\n {\n name: 'bucket',\n desc: 'Name of the bucket to query.',\n type: 'String',\n },\n {\n name: 'start',\n desc: 'The earliest time to include in results.',\n type: 'Duration | Time | Integer',\n },\n {\n name: 'stop',\n desc: 'The latest time to include in results. Defaults to `now()`.',\n type: 'Duration | Time | Integer',\n },\n ],\n package: 'experimental/query',\n desc: 'Returns all data from a specified bucket within given time bounds.',\n example:\n 'query.fromRange(bucket: \"example-bucket\", start: v.timeRangeStart)',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/query/fromrange/`,\n },\n {\n name: 'query.inBucket',\n args: [\n {\n name: 'bucket',\n desc: 'Name of the bucket to query.',\n type: 'String',\n },\n {\n name: 'start',\n desc: 'The earliest time to include in results.',\n type: 'Duration | Time | Integer',\n },\n {\n name: 'stop',\n desc: 'The latest time to include in results. Defaults to `now()`.',\n type: 'Duration | Time | Integer',\n },\n {\n name: 'measurement',\n desc: 'Measurement to filter by.',\n type: 'String',\n },\n {\n name: 'fields',\n desc: 'Fields to filter by.',\n type: 'Array of Strings',\n },\n {\n name: 'predicate',\n desc: 'A single argument function that evaluates true or false.',\n type: 'Function',\n },\n ],\n package: 'experimental/query',\n desc: 'Queries data from a specified bucket within given time bounds, filters data by measurement, field, and optional predicate expressions.',\n example:\n 'query.inBucket(bucket: \"example-bucket\", start: v.timeRangeStart, measurement: \"measurement_name\", fields: [\"field_name\"], predicate: (r) => r.host == \"host1\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/query/inbucket/`,\n },\n RANGE,\n {\n name: 'reduce',\n args: [\n {\n name: 'fn',\n desc: 'Function to apply to each record with a reducer object. The function expects two objects: `r` and `accumulator`.',\n type: 'Function',\n },\n {\n name: 'identity',\n desc: 'Defines the reducer object and provides initial values to use when creating a reducer.',\n type: 'Object',\n },\n ],\n package: '',\n desc: 'Aggregates records in each table according to the reducer, `fn`',\n example:\n 'reduce(fn: (r, accumulator) => ({ sum: r._value + accumulator.sum }), identity: {sum: 0.0})',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/reduce/`,\n },\n {\n name: 'regexp.compile',\n args: [\n {\n name: 'v',\n desc: 'The string value to parse into a regular expression.',\n type: 'String',\n },\n ],\n package: 'regexp',\n desc: 'Parses a string into a regular expression and returns a regexp object.',\n example: 'regexp.compile(v: \"[a-zA-Z]\")',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/regexp/compile/`,\n },\n {\n name: 'regexp.findString',\n args: [\n {\n name: 'r',\n desc: 'The regular expression used to search `v`',\n type: 'Regexp',\n },\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n ],\n package: 'regexp',\n desc: 'Returns the left-most regular expression match in a string.',\n example: 'regexp.findString(r: /foo.?/, v: \"seafood fool\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/regexp/findstring/`,\n },\n {\n name: 'regexp.findStringIndex',\n args: [\n {\n name: 'r',\n desc: 'The regular expression used to search `v`',\n type: 'Regexp',\n },\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n ],\n package: 'regexp',\n desc: 'Returns a two-element array of integers defining the beginning and ending indexes of the left-most regular expression match in a string.',\n example: 'regexp.findStringIndex(r: /ab?/, v: \"tablet\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/regexp/findstringindex/`,\n },\n {\n name: 'regexp.getString',\n args: [\n {\n name: 'r',\n desc: 'The regular expression object to convert to a string.',\n type: 'Regexp',\n },\n ],\n package: 'regexp',\n desc: 'Returns the source string used to compile a regular expression.',\n example: 'regexp.getString(r: /[a-zA-Z]/)',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/regexp/getstring/`,\n },\n {\n name: 'regexp.matchRegexpString',\n args: [\n {\n name: 'r',\n desc: 'The regular expression used to search `v`',\n type: 'Regexp',\n },\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n ],\n package: 'regexp',\n desc: 'Tests if a string contains any match to a regular expression.',\n example: 'regexp.matchRegexpString(r: /(go){2}/, v: \"gogogopher\")',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/regexp/matchregexpstring/`,\n },\n {\n name: 'regexp.quoteMeta',\n args: [\n {\n name: 'v',\n desc: 'String value containing regular expression metacharacters to escape.',\n type: 'String',\n },\n ],\n package: 'regexp',\n desc: 'Escapes all regular expression metacharacters inside of a string.',\n example: 'regexp.quoteMeta(v: \".+*?()|[]{}^$\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/regexp/quotemeta/`,\n },\n {\n name: 'regexp.replaceAllString',\n args: [\n {\n name: 'r',\n desc: 'The regular expression used to search `v`',\n type: 'Regexp',\n },\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 't',\n desc: 'The replacement for matches to `r`',\n type: 'String',\n },\n ],\n package: 'regexp',\n desc: 'Replaces all regular expression matches in a string with a specified replacement.',\n example: 'regexp.replaceAllString(r: /a(x*)b/, v: \"-ab-axxb-\", t: \"T\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/regexp/replaceallstring/`,\n },\n {\n name: 'regexp.splitRegexp',\n args: [\n {\n name: 'r',\n desc: 'The regular expression used to search `v`',\n type: 'Regexp',\n },\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'i',\n desc: 'The number of substrings to return.',\n type: 'Integer',\n },\n ],\n package: 'regexp',\n desc: 'Splits a string into substrings separated by regular expression matches and returns an array of `i` substrings between matches.',\n example: 'regexp.splitRegexp(r: /a*/, v: \"abaabaccadaaae\", i: 5)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/regexp/splitregexp/`,\n },\n {\n name: 'relativeStrengthIndex',\n args: [\n {\n name: 'n',\n desc: 'The number of values to use to calculate the relative strength index (RSI).',\n type: 'Integer',\n },\n {\n name: 'columns',\n desc: 'Columns to operate on. Defaults to `[\"_value\"]`.',\n type: 'Array of Strings`',\n },\n ],\n package: '',\n desc: 'Measures the relative speed and change of values in an input table.',\n example: 'relativeStrengthIndex(n: 5)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/relativestrengthindex/`,\n },\n {\n name: 'rename',\n args: [\n {\n name: 'columns',\n desc: 'A map of columns to rename and their corresponding new names. Cannot be used with `fn`.',\n type: 'Object',\n },\n {\n name: 'fn',\n desc: 'A function mapping between old and new column names. Cannot be used with `columns`.',\n type: 'Function',\n },\n ],\n package: '',\n desc: 'Renames specified columns in a table. If a column is renamed and is part of the group key, the column name in the group key will be updated.',\n example: 'rename(columns: {host: \"server\", _field: \"my_field\"})',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/rename/`,\n },\n {\n name: 'rows.map',\n args: [\n {\n name: 'fn',\n desc: 'A single argument function to apply to each record. The return value must be a record.',\n type: 'Function',\n },\n ],\n package: 'contrib/jsternberg/rows',\n desc: 'An alternate implementation of `map()` that is faster, but more limited than `map()`.',\n example: 'rows.map( fn: (r) => ({_value: r._value * 100.0}))',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/rows/map/`,\n },\n {\n name: 'runtime.version',\n args: [],\n package: 'runtime',\n desc: 'Returns the current Flux version.',\n example: 'runtime.version()',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/runtime/version/`,\n },\n {\n name: 'sample',\n args: [\n {\n name: 'n',\n desc: 'Sample every Nth element.',\n type: 'Integer',\n },\n {\n name: 'pos',\n desc: 'The position offset from the start of results where sampling begins. `pos` must be less than `n`. If `pos` is less than 0, a random offset is used. Defaults to `-1` (random offset).',\n type: 'Integer',\n },\n ],\n package: '',\n desc: 'Selects a subset of the records from the input table.',\n example: 'sample(n:5, pos: -1)',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/sample/`,\n },\n {\n name: 'sample.data',\n args: [\n {\n name: 'set',\n desc: 'InfluxDB sample dataset to download and output.',\n type: 'String',\n },\n ],\n package: 'influxdata/influxdb/sample',\n desc: 'Downloads and outputs an InfluxDB sample dataset.',\n example: 'sample.data(set: \"usgs\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-sample/data/`,\n },\n {\n name: 'sample.list',\n args: [],\n package: 'influxdata/influxdb/sample',\n desc: 'Outputs information about available InfluxDB sample datasets.',\n example: 'sample.list()',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-sample/list/`,\n },\n {\n name: 'schema.fieldKeys',\n args: [\n {\n name: 'bucket',\n desc: 'The bucket to list field keys from.',\n type: 'String',\n },\n {\n name: 'predicate',\n desc: 'Predicate function that filters field keys. Defaults is (r) => true.',\n type: 'Function',\n },\n {\n name: 'start',\n desc: 'The oldest time to include in results. Defaults is `-30d`.',\n type: 'Duration | Time',\n },\n ],\n package: 'influxdata/influxdb/schema',\n desc: 'Returns a list of fields in a bucket.',\n example: 'schema.fieldKeys(bucket: \"example-bucket\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-schema/measurementfieldkeys/`,\n },\n {\n name: 'schema.fieldsAsCols',\n args: [],\n package: 'influxdata/influxdb/schema',\n desc: 'Aligns fields within each input table that have the same timestamp.',\n example: 'schema.fieldsAsCols()',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-schema/fieldsascols/`,\n },\n {\n name: 'schema.measurementFieldKeys',\n args: [\n {\n name: 'bucket',\n desc: 'The bucket to list field keys from.',\n type: 'String',\n },\n {\n name: 'measurement',\n desc: 'The measurement to list field keys from.',\n type: 'String',\n },\n {\n name: 'start',\n desc: 'The oldest time to include in results. Defaults is `-30d`.',\n type: 'Duration | Time',\n },\n ],\n package: 'influxdata/influxdb/schema',\n desc: 'Returns a list of fields in a measurement.',\n example:\n 'schema.measurementFieldKeys(bucket: \"example-bucket\", measurement: \"example-measurement\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-schema/measurementfieldkeys/`,\n },\n {\n name: 'schema.measurements',\n args: [\n {\n name: 'bucket',\n desc: 'The bucket from which to list measurements.',\n type: 'String',\n },\n ],\n package: 'influxdata/influxdb/schema',\n desc: 'Returns a list of measurements in a specific bucket.',\n example: 'schema.measurements(bucket: \"example-bucket\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-schema/measurements/`,\n },\n {\n name: 'schema.measurementTagKeys',\n args: [\n {\n name: 'bucket',\n desc: 'The bucket from which to return tag keys for a specific measurement.',\n type: 'String',\n },\n {\n name: 'measurement',\n desc: 'The measurement from which to return tag keys.',\n type: 'String',\n },\n ],\n package: 'influxdata/influxdb/schema',\n desc: 'Returns a list of tag keys for a specific measurement.',\n example:\n 'schema.measurementTagKeys(bucket: \"example-bucket\", measurement: \"mem\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-schema/measurementtagkeys/`,\n },\n {\n name: 'schema.measurementTagValues',\n args: [\n {\n name: 'bucket',\n desc: 'The bucket from which to return tag keys for a specific measurement.',\n type: 'String',\n },\n {\n name: 'measurement',\n desc: 'The measurement from which to return tag values.',\n type: 'String',\n },\n {\n name: 'tag',\n desc: 'The tag from which to return all unique values.',\n type: 'String',\n },\n ],\n package: 'influxdata/influxdb/schema',\n desc: 'Returns a list of tag values for a specific measurement.',\n example:\n 'schema.measurementTagValues(bucket: \"example-bucket\", measurement: \"mem\", tag: \"host\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-schema/measurementtagvalues/`,\n },\n {\n name: 'schema.tagKeys',\n args: [\n {\n name: 'bucket',\n desc: 'The bucket from which to list tag keys.',\n type: 'String',\n },\n {\n name: 'predicate',\n desc: 'The predicate function that filters tag keys. Defaults to `(r) => true.`',\n type: 'Function',\n },\n {\n name: 'start',\n desc: 'Specifies the oldest time to be included in the results. Defaults to `-30d`.',\n type: 'Duration | Time',\n },\n ],\n package: 'influxdata/influxdb/schema',\n desc: 'Returns a list of tag keys for all series that match the predicate.',\n example: 'schema.tagKeys(bucket: \"example-bucket\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-schema/tagkeys/`,\n },\n {\n name: 'schema.tagValues',\n args: [\n {\n name: 'bucket',\n desc: 'The bucket from which to list tag values.',\n type: 'String',\n },\n {\n name: 'tag',\n desc: 'The tag for which to return unique values.',\n type: 'String',\n },\n {\n name: 'predicate',\n desc: 'The predicate function that filters tag values. Defaults to `(r) => true.`',\n type: 'Function',\n },\n {\n name: 'start',\n desc: 'Specifies the oldest time to be included in the results. Defaults to `-30d`.',\n type: 'Duration | Time',\n },\n ],\n package: 'influxdata/influxdb/schema',\n desc: 'Returns a list of unique values for a given tag.',\n example: 'schema.tagValues(bucket: \"example-bucket\", tag: \"example-tag\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-schema/tagvalues/`,\n },\n {\n name: 'secrets.get',\n args: [\n {\n name: 'key',\n desc: 'The secret key to retrieve.',\n type: 'String',\n },\n ],\n package: 'influxdata/influxdb/secrets',\n desc: 'Retrieves a secret from the InfluxDB secret store.',\n example: 'secrets.get(key: \"KEY_NAME\")',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/secrets/get/`,\n },\n {\n name: 'sensu.endpoint',\n args: [\n {\n name: 'url',\n desc: 'Base URL of Sensu API without a trailing slash. Example: `http://localhost:8080`.',\n type: 'String',\n },\n {\n name: 'apiKey',\n desc: 'Sensu API Key.',\n type: 'String',\n },\n {\n name: 'handlers',\n desc: 'Sensu handlers to execute. Default is `[]`.',\n type: 'Array of Strings',\n },\n {\n name: 'namespace',\n desc: 'Sensu namespace. Default is `default`.',\n type: 'String',\n },\n {\n name: 'entityName',\n desc: 'Event source. Use alphanumeric characters, underscores (`_`), periods (`.`), and hyphens (`-`).',\n type: 'String',\n },\n ],\n package: 'contrib/sranka/sensu',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = sensu.endpoint(\n url: \"http://localhost:8080\",\n apiKey: \"mYSuP3rs3cREtApIK3Y\",\n handlers: [],\n namespace: \"default\",\n entityName: \"influxdb\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/sensu/endpoint/`,\n },\n {\n name: 'sensu.event',\n args: [\n {\n name: 'url',\n desc: 'Base URL of Sensu API without a trailing slash. Example: `http://localhost:8080`.',\n type: 'String',\n },\n {\n name: 'apiKey',\n desc: 'Sensu API Key.',\n type: 'String',\n },\n {\n name: 'checkName',\n desc: 'Check name. Use alphanumeric characters, underscores (`_`), periods (`.`), and hyphens (`-`).',\n type: 'String',\n },\n {\n name: 'text',\n desc: 'Event text. Mapped to `output` in the Sensu Events API request.',\n type: 'String',\n },\n {\n name: 'handlers',\n desc: 'Sensu handlers to execute. Default is `[]`.',\n type: 'Array of Strings',\n },\n {\n name: 'status',\n desc: 'Event status code that indicates state. Default is `0`.',\n type: 'Integer',\n },\n {\n name: 'state',\n desc: 'Event state. Default is \"passing\" for 0 status and \"failing\" for other statuses.',\n type: 'String',\n },\n {\n name: 'namespace',\n desc: 'Sensu namespace. Default is `default`.',\n type: 'String',\n },\n {\n name: 'entityName',\n desc: 'Event source. Use alphanumeric characters, underscores (`_`), periods (`.`), and hyphens (`-`).',\n type: 'String',\n },\n ],\n package: 'contrib/sranka/sensu',\n desc: 'Sends a single event to the Sensu Events API.',\n example: `sensu.event(\n url: \"http://localhost:8080\",\n apiKey: \"mYSuP3rs3cREtApIK3Y\",\n checkName: \"checkName\",\n text: \"Event output text\",\n handlers: [],\n status: 0,\n state: \"passing\",\n namespace: \"default\",\n entityName: \"influxdb\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/sensu/event/`,\n },\n {\n name: 'set',\n args: [\n {\n name: 'key',\n desc: 'The label of the column to modify or set.',\n type: 'String',\n },\n {\n name: 'value',\n desc: 'The string value to set.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Assigns a static value to each record in the input table. The key may modify an existing column or add a new column to the tables. If the modified column is part of the group key, the output tables are regrouped as needed.',\n example: 'set(key: \"_field\", value: \"my_field\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/set/`,\n },\n {\n name: 'skew',\n args: [\n {\n name: 'column',\n desc: 'The column on which to operate. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Outputs the skew of non-null records as a float.',\n example: 'skew(column: \"_value\")',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/skew/`,\n },\n {\n name: 'slack.endpoint',\n args: [\n {\n name: 'url',\n desc: 'The Slack API URL. Defaults to `https://slack.com/api/chat.postMessage`.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'The Slack API token used to interact with Slack. Defaults to `\"\"`.',\n type: 'String',\n },\n ],\n package: 'slack',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = slack.endpoint(\n url: \"https://slack.com/api/chat.postMessage\",\n token: \"mySuPerSecRetTokEn\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/slack/endpoint/`,\n },\n {\n name: 'slack.message',\n args: [\n {\n name: 'url',\n desc: 'The Slack API URL. Defaults to `https://slack.com/api/chat.postMessage`.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'The Slack API token used to interact with Slack. Defaults to `\"\"`.',\n type: 'String',\n },\n {\n name: 'channel',\n desc: 'The name of channel to post the message to.',\n type: 'String',\n },\n {\n name: 'text',\n desc: 'The text to display in the Slack message.',\n type: 'String',\n },\n {\n name: 'color',\n desc: 'The color to include with the message.',\n type: 'String',\n },\n ],\n package: 'slack',\n desc: 'Sends a single message to a Slack channel.',\n example: `slack.message(\n url: \"https://slack.com/api/chat.postMessage\",\n token: \"mySuPerSecRetTokEn\",\n channel: \"#flux\",\n text: \"This is a message from the Flux slack.message() function.\",\n color: \"good\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/slack/message/`,\n },\n {\n name: 'sleep',\n args: [\n {\n name: 'v',\n desc: 'Defines input tables.',\n type: 'Object',\n },\n {\n name: 'duration',\n desc: 'The length of time to delay execution.',\n type: 'Duration',\n },\n ],\n package: '',\n desc: 'Delays execution by a specified duration.',\n example: 'sleep(duration: 5s)',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/misc/sleep/`,\n },\n {\n name: 'sort',\n args: [\n {\n name: 'columns',\n desc: 'List of columns by which to sort. Sort precedence is determined by list order (left to right). Default is `[\"_value\"]`.',\n type: 'Array of Strings',\n },\n {\n name: 'desc',\n desc: 'Sort results in descending order. Default is `false`.',\n type: 'Boolean',\n },\n ],\n package: '',\n desc: 'Orders the records within each table. One output table is produced for each input table. The output tables will have the same schema as their corresponding input tables.',\n example: 'sort(columns: [\"_value\"], desc: false)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/sort/`,\n },\n {\n name: 'spread',\n args: [\n {\n name: 'column',\n desc: 'The column on which to operate. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Outputs the difference between the minimum and maximum values in the specified column. Only `uint`, `int`, and `float` column types can be used.',\n example: 'spread(column: \"_value\")',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/spread/`,\n },\n {\n name: 'sql.from',\n args: [\n {\n name: 'driverName',\n desc: 'The driver used to connect to the SQL database.',\n type: 'String',\n },\n {\n name: 'dataSourceName',\n desc: 'The connection string used to connect to the SQL database. The string’s form and structure depend on the driver.',\n type: 'String',\n },\n {\n name: 'query',\n desc: 'The query to run against the SQL database.',\n type: 'String',\n },\n ],\n package: 'sql',\n desc: 'Retrieves data from a SQL data source.',\n example:\n 'sql.from(driverName: \"postgres\", dataSourceName: \"postgresql://user:password@localhost\", query:\"SELECT * FROM example_table\")',\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/sql/from/`,\n },\n {\n name: 'sql.to',\n args: [\n {\n name: 'driverName',\n desc: 'The driver used to connect to the SQL database.',\n type: 'String',\n },\n {\n name: 'dataSourceName',\n desc: 'The connection string used to connect to the SQL database. The string’s form and structure depend on the driver.',\n type: 'String',\n },\n {\n name: 'table',\n desc: 'The destination table.',\n type: 'String',\n },\n {\n name: 'batchSize',\n desc: 'The number of parameters or columns that can be queued within each call to `Exec`. Defaults to `10000`.',\n type: 'Integer',\n },\n ],\n package: 'sql',\n desc: 'Writes data to a SQL database.',\n example:\n 'sql.to(driverName: \"postgres\", dataSourceName: \"postgresql://user:password@localhost\", table: \"example_table\")',\n category: 'Outputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/sql/to/`,\n },\n {\n name: 'stateCount',\n args: [\n {\n name: 'fn',\n desc: 'A single argument function that evaluates true or false to identify the state of the record.',\n type: 'Function',\n },\n {\n name: 'column',\n desc: 'The name of the column added to each record that contains the incremented state count.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Computes the number of consecutive records in a given state and stores the increment in a new column.',\n example: 'stateCount(fn: (r) => r._field == \"state\", column: \"stateCount\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/statecount/`,\n },\n {\n name: 'stateDuration',\n args: [\n {\n name: 'fn',\n desc: 'A single argument function that evaluates true or false to identify the state of the record.',\n type: 'Function',\n },\n {\n name: 'column',\n desc: 'Name of the column added to each record that contains the incremented state duration.',\n type: 'String',\n },\n {\n name: 'unit',\n desc: 'Unit of time in which the state duration is incremented.',\n type: 'Duration',\n },\n ],\n package: '',\n desc: 'Computes the duration of a given state and stores the increment in a new column.',\n example:\n 'stateDuration(fn: (r) => r._measurement == \"state\", column: \"stateDuration\", unit: 1s)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/stateduration/`,\n },\n {\n name: 'stddev',\n args: [\n {\n name: 'column',\n desc: 'The column on which to operate. Defaults to `\"_value\"`.',\n type: 'String',\n },\n {\n name: 'mode',\n desc: 'The standard deviation mode (sample or population). Defaults to `\"sample\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Computes the standard deviation of non-null records in specified column.',\n example: 'stddev(column: \"_value\", mode: \"sample\")',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/stddev/`,\n },\n {\n name: 'string',\n args: [\n {\n name: 'v',\n desc: 'The value to convert.',\n type: 'Integer | UInteger | Float | Boolean | Duration | Time',\n },\n ],\n package: '',\n desc: 'Converts a single value to a string.',\n example: 'string(v: r._value)',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/string/`,\n },\n {\n name: 'strings.compare',\n args: [\n {\n name: 'v',\n desc: 'The string value to compare.',\n type: 'String',\n },\n {\n name: 't',\n desc: 'The string value to compare against.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Compares the lexicographical order of two strings.',\n example: 'strings.compare(v: \"a\", t: \"b\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/compare/`,\n },\n {\n name: 'strings.containsAny',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'chars',\n desc: 'Characters to search for.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Reports whether a specified string contains characters from another string.',\n example: 'strings.containsAny(v: \"abc\", chars: \"and\")',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/containsany/`,\n },\n {\n name: 'strings.containsStr',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'substr',\n desc: 'The substring to search for.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Reports whether a string contains a specified substring.',\n example: 'strings.containsStr(v: \"This and that\", substr: \"and\")',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/containsstr/`,\n },\n {\n name: 'strings.countStr',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'substr',\n desc: 'The substring count.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Counts the number of non-overlapping instances of a substring appears in a string.',\n example: 'strings.countStr(v: \"Hello mellow fellow\", substr: \"ello\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/countstr/`,\n },\n {\n name: 'strings.equalFold',\n args: [\n {\n name: 'v',\n desc: 'The string value to compare.',\n type: 'String',\n },\n {\n name: 't',\n desc: 'The string value to compare against.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Reports whether two UTF-8 strings are equal under Unicode case-folding.',\n example: 'strings.equalFold(v: \"Go\", t: \"go\")',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/equalfold/`,\n },\n {\n name: 'strings.hasPrefix',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'prefix',\n desc: 'The prefix to search for.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Indicates if a string begins with a specified prefix.',\n example: 'strings.hasPrefix(v: \"go gopher\", prefix: \"go\")',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/hasprefix/`,\n },\n {\n name: 'strings.hasSuffix',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'suffix',\n desc: 'The suffix to search for.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Indicates if a string ends with a specified suffix.',\n example: 'strings.hasSuffix(v: \"gopher go\", suffix: \"go\")',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/hassuffix/`,\n },\n {\n name: 'strings.index',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'substr',\n desc: 'The substring to search for.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Returns the index of the first instance of a substring in a string. If the substring is not present, it returns `-1`.',\n example: 'strings.index(v: \"go gopher\", substr: \"go\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/index-func/`,\n },\n {\n name: 'strings.indexAny',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'chars',\n desc: 'Characters to search for.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Returns the index of the first instance of specified characters in a string. If none of the specified characters are present, it returns -1.',\n example: 'strings.indexAny(v: \"chicken\", chars: \"aeiouy\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/indexany/`,\n },\n {\n name: 'strings.isDigit',\n args: [\n {\n name: 'v',\n desc: 'The single-character string to test.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Tests if a single-character string is a digit (0-9).',\n example: 'strings.isDigit(v: \"7\")',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/isdigit/`,\n },\n {\n name: 'strings.isLetter',\n args: [\n {\n name: 'v',\n desc: 'The single-character string to test.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Tests if a single-character string is a letter (a-z, A-Z).',\n example: 'strings.isLetter(v: \"A\")',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/isletter/`,\n },\n {\n name: 'strings.isLower',\n args: [\n {\n name: 'v',\n desc: 'The single-character string to test.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Tests if a single-character string is lowercase.',\n example: 'strings.isLower(v: \"a\")',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/islower/`,\n },\n {\n name: 'strings.isUpper',\n args: [\n {\n name: 'v',\n desc: 'The single-character string to test.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Tests if a single-character string is uppercase.',\n example: 'strings.isUpper(v: \"A\")',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/isupper/`,\n },\n {\n name: 'strings.joinStr',\n args: [\n {\n name: 'arr',\n desc: 'The array of strings to concatenate.',\n type: 'Array of Strings',\n },\n {\n name: 'v',\n desc: 'The separator to use in the concatenated value.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Concatenates elements of a string array into a single string using a specified separator.',\n example: 'strings.joinStr(arr: [\"a\", \"b\", \"c\"], v: \",\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/joinstr/`,\n },\n {\n name: 'strings.lastIndex',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'substr',\n desc: 'The substring to search for.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Returns the index of the last instance of a substring in a string. If the substring is not present, the function returns -1.',\n example: 'strings.lastIndex(v: \"go gopher\", substr: \"go\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/lastindex/`,\n },\n {\n name: 'strings.lastIndexAny',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'chars',\n desc: 'Characters to search for.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Returns the index of the last instance of any specified characters in a string. If none of the specified characters are present, the function returns -1.',\n example: 'strings.lastIndexAny(v: \"chicken\", chars: \"aeiouy\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/lastindexany/`,\n },\n {\n name: 'strings.repeat',\n args: [\n {\n name: 'v',\n desc: 'The string value to repeat.',\n type: 'String',\n },\n {\n name: 'i',\n desc: 'The number of times to repeat `v`.',\n type: 'Integer',\n },\n ],\n package: 'strings',\n desc: 'Returns a string consisting of `i` copies of a specified string.',\n example: 'strings.repeat(v: \"ha\", i: 3)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/repeat/`,\n },\n {\n name: 'strings.replace',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 't',\n desc: 'The substring to replace.',\n type: 'String',\n },\n {\n name: 'u',\n desc: 'The replacement for `i` instances of `t`.',\n type: 'String',\n },\n {\n name: 'i',\n desc: 'The number of non-overlapping `t` matches to replace.',\n type: 'Integer',\n },\n ],\n package: 'strings',\n desc: 'Replaces the first `i` non-overlapping instances of a substring with a specified replacement.',\n example: 'strings.replace(v: \"oink oink oink\", t: \"oink\", u: \"moo\", i: 2)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/replace/`,\n },\n {\n name: 'strings.replaceAll',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 't',\n desc: 'The substring to replace.',\n type: 'String',\n },\n {\n name: 'u',\n desc: 'The replacement for all instances of `t`.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Replaces all non-overlapping instances of a substring with a specified replacement.',\n example: 'strings.replaceAll(v: \"oink oink oink\", t: \"oink\", u: \"moo\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/replaceall/`,\n },\n {\n name: 'strings.split',\n args: [\n {\n name: 'v',\n desc: 'The string value to split.',\n type: 'String',\n },\n {\n name: 't',\n desc: 'The string value that acts as the separator.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Splits a string on a specified separator and returns an array of substrings.',\n example: 'strings.split(v: \"a flux of foxes\", t: \" \")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/split/`,\n },\n {\n name: 'strings.splitAfter',\n args: [\n {\n name: 'v',\n desc: 'The string value to split.',\n type: 'String',\n },\n {\n name: 't',\n desc: 'The string value that acts as the separator.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Splits a string after a specified separator and returns an array of substrings.',\n example: 'strings.splitAfter(v: \"a flux of foxes\", t: \" \")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/splitafter/`,\n },\n {\n name: 'strings.splitAfterN',\n args: [\n {\n name: 'v',\n desc: 'The string value to split.',\n type: 'String',\n },\n {\n name: 't',\n desc: 'The string value that acts as the separator.',\n type: 'String',\n },\n {\n name: 'i',\n desc: 'The number of substrings to return.',\n type: 'Integer',\n },\n ],\n package: 'strings',\n desc: 'Splits a string after a specified separator and returns an array of `i` substrings.',\n example: 'strings.splitAfterN(v: \"a flux of foxes\", t: \" \", i: 2)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/splitaftern/`,\n },\n {\n name: 'strings.splitN',\n args: [\n {\n name: 'v',\n desc: 'The string value to split.',\n type: 'String',\n },\n {\n name: 't',\n desc: 'The string value that acts as the separator.',\n type: 'String',\n },\n {\n name: 'i',\n desc: 'The number of substrings to return.',\n type: 'Integer',\n },\n ],\n package: 'strings',\n desc: 'Splits a string on a specified separator and returns an array of `i` substrings.',\n example: 'strings.splitN(v: \"a flux of foxes\", t: \" \", i: 2)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/splitn/`,\n },\n {\n name: 'strings.strlen',\n args: [\n {\n name: 'v',\n desc: 'The string value to measure.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Returns the length of a string.',\n example: 'strings.strlen(v: \"a flux of foxes\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/strlen/`,\n },\n {\n name: 'strings.substring',\n args: [\n {\n name: 'v',\n desc: 'The string value to search.',\n type: 'String',\n },\n {\n name: 'start',\n desc: 'The starting index of the substring.',\n type: 'Integer',\n },\n {\n name: 'end',\n desc: 'The ending index of the substring.',\n type: 'Integer',\n },\n ],\n package: 'strings',\n desc: 'Returns a substring based on start and end parameters.',\n example: 'strings.substring(v: \"influx\", start: 0, end: 3)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/substring/`,\n },\n STRINGS_TITLE,\n {\n name: 'strings.toLower',\n args: [\n {\n name: 'v',\n desc: 'The string value to convert.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Converts a string to lower case.',\n example: 'strings.toLower(v: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/tolower/`,\n },\n {\n name: 'strings.toTitle',\n args: [\n {\n name: 'v',\n desc: 'The string value to convert.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Converts all characters in a string to title case.',\n example: 'strings.toTitle(v: \"a flux of foxes\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/totitle/`,\n },\n {\n name: 'strings.toUpper',\n args: [\n {\n name: 'v',\n desc: 'The string value to convert.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Converts a string to upper case.',\n example: 'strings.toUpper(v: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/toupper/`,\n },\n STRINGS_TRIM,\n {\n name: 'strings.trimLeft',\n args: [\n {\n name: 'v',\n desc: 'The string to remove characters from.',\n type: 'String',\n },\n {\n name: 'cutset',\n desc: 'The leading characters to remove from the string.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Removes specified leading characters from a string.',\n example: 'strings.trimLeft(v: \".abc\", cutset: \".\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/trimleft/`,\n },\n {\n name: 'strings.trimPrefix',\n args: [\n {\n name: 'v',\n desc: 'The string value to trim.',\n type: 'String',\n },\n {\n name: 'prefix',\n desc: 'The prefix to remove.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Removes a prefix from a string. Strings that do not start with the prefix are returned unchanged.',\n example: 'strings.trimPrefix(v: r._value, prefix: \"abc_\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/trimprefix/`,\n },\n {\n name: 'strings.trimRight',\n args: [\n {\n name: 'v',\n desc: 'The string to remove characters from.',\n type: 'String',\n },\n {\n name: 'cutset',\n desc: 'The trailing characters to remove from the string.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Removes specified trailing characters from a string.',\n example: 'strings.trimRight(v: \"abc.\", cutset: \".\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/trimright/`,\n },\n {\n name: 'strings.trimSpace',\n args: [\n {\n name: 'v',\n desc: 'The string value to trim.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Removes leading and trailing spaces from a string.',\n example: 'strings.trimSpace(v: r._value)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/trimspace/`,\n },\n {\n name: 'strings.trimSuffix',\n args: [\n {\n name: 'v',\n desc: 'The string value to trim.',\n type: 'String',\n },\n {\n name: 'suffix',\n desc: 'The suffix to remove.',\n type: 'String',\n },\n ],\n package: 'strings',\n desc: 'Removes a suffix from a string. Strings that do not end with the suffix are returned unchanged.',\n example: 'strings.trimSuffix(v: r._value, suffix: \"_123\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/strings/trimsuffix/`,\n },\n {\n name: 'sum',\n args: [\n {\n name: 'column',\n desc: 'The column on which to operate. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Computes the sum of non-null records in the specified column.',\n example: 'sum(column: \"_value\")',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/sum/`,\n },\n {\n name: 'system.time',\n args: [],\n package: 'system',\n desc: 'Returns the current system time.',\n example: 'system.time()',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/system/time/`,\n },\n {\n name: 'table.fill',\n args: [],\n package: 'experimental/table',\n desc: 'Adds a single row to empty tables in a stream of tables.',\n example: 'table.fill()',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/table/fill/`,\n },\n {\n name: 'tableFind',\n args: [\n {\n name: 'fn',\n desc: 'A predicate function for matching keys in a table group key.',\n type: 'Function',\n },\n ],\n package: '',\n desc: 'Extracts the first table in a stream of tables whose group key values match a predicate. If no table is found, the function errors.',\n example: 'tableFind(fn: (key) => key._field == \"fieldName\")',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/stream-table/tablefind/`,\n },\n {\n name: 'tail',\n args: [\n {\n name: 'n',\n desc: 'The maximum number of records to output.',\n type: 'Integer',\n },\n {\n name: 'offset',\n desc: 'The number of records to skip at the end of a table before limiting to `n`. Defaults to `0`.',\n type: 'Integer',\n },\n ],\n package: '',\n desc: 'Limits each output table to the last `n` records, excluding the offset.',\n example: 'tail(n: 10)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/tail/`,\n },\n {\n name: 'tasks.lastSuccess',\n args: [\n {\n name: 'orTime',\n desc: 'Default time value returned if the task has never successfully run.',\n type: 'Time',\n },\n ],\n package: 'influxdata/influxdb/tasks',\n desc: 'Returns the time of last successful run of an InfluxDB task or the value of the `orTime` parameter if the task has never successfully run.',\n example: 'tasks.lastSuccess(orTime: 2020-10-01T00:00:00Z)',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/influxdb-tasks/lastsuccess/`,\n },\n {\n name: 'teams.endpoint',\n args: [\n {\n name: 'url',\n desc: 'Incoming webhook URL.',\n type: 'String',\n },\n ],\n package: 'contrib/sranka/teams',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = teams.endpoint(\n url: \"https://outlook.office.com/webhook/example-webhook\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/teams/endpoint/`,\n },\n {\n name: 'teams.message',\n args: [\n {\n name: 'url',\n desc: 'Incoming webhook URL.',\n type: 'String',\n },\n {\n name: 'title',\n desc: 'Message card title.',\n type: 'String',\n },\n {\n name: 'text',\n desc: 'Message card text.',\n type: 'String',\n },\n {\n name: 'summary',\n desc: 'Message card summary. Default is `\"\"`. If no summary is provided, Flux generates the summary from the message text.',\n type: 'String',\n },\n ],\n package: 'contrib/sranka/teams',\n desc: 'Sends a single message to a Microsoft Teams channel using an incoming webhook.',\n example: `teams.message(\n url: \"https://outlook.office.com/webhook/example-webhook\",\n title: \"Example message title\",\n text: \"Example message text\",\n summary: \"\",\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/teams/message/`,\n },\n {\n name: 'telegram.endpoint',\n args: [\n {\n name: 'url',\n desc: 'URL of the Telegram bot endpoint. Default is `https://api.telegram.org/bot`.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'Telegram bot token.',\n type: 'String',\n },\n {\n name: 'parseMode',\n desc: 'Parse mode of the message text. Default is `\"MarkdownV2\"`.',\n type: 'String',\n },\n {\n name: 'disableWebPagePreview',\n desc: 'Disable preview of web links in the sent message. Default is `false`.',\n type: 'Boolean',\n },\n ],\n package: 'contrib/sranka/telegram',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = telegram.endpoint(\n url: \"https://api.telegram.org/bot\",\n token: \"S3crEtTel3gRamT0k3n\",\n parseMode: \"MarkdownV2\",\n disableWebPagePreview: false,\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/telegram/endpoint/`,\n },\n {\n name: 'telegram.message',\n args: [\n {\n name: 'url',\n desc: 'URL of the Telegram bot endpoint. Default is `https://api.telegram.org/bot`.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'Telegram bot token.',\n type: 'String',\n },\n {\n name: 'channel',\n desc: 'Telegram channel ID.',\n type: 'String',\n },\n {\n name: 'text',\n desc: 'Message text.',\n type: 'String',\n },\n {\n name: 'parseMode',\n desc: 'Parse mode of the message text. Default is `\"MarkdownV2\"`.',\n type: 'String',\n },\n {\n name: 'disableWebPagePreview',\n desc: 'Disable preview of web links in the sent message. Default is `false`.',\n type: 'Boolean',\n },\n {\n name: 'silent',\n desc: 'Send message silently. Default is `true`.',\n type: 'Boolean',\n },\n ],\n package: 'contrib/sranka/telegram',\n desc: 'Sends a single message to a Telegram channel using the sendMessage method of the Telegram Bot API.',\n example: `telegram.message(\n url: \"https://api.telegram.org/bot\",\n token: \"S3crEtTel3gRamT0k3n\",\n channel: \"-12345\",\n text: \"Example message text\",\n parseMode: \"MarkdownV2\",\n disableWebPagePreview: false,\n silent: true\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/telegram/message/`,\n },\n {\n name: 'testing.assertEmpty',\n args: [],\n package: 'testing',\n desc: 'Tests if an input stream is empty.',\n example: 'testing.assertEmpty()',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/testing/assertempty/`,\n },\n {\n name: 'testing.assertEquals',\n args: [\n {\n name: 'name',\n desc: 'Unique name given to the assertion.',\n type: 'String',\n },\n {\n name: 'got',\n desc: 'The stream containing data to test.',\n type: 'Stream of tables',\n },\n {\n name: 'want',\n desc: 'The stream that contains the expected data to test against.',\n type: 'Stream of tables',\n },\n ],\n package: 'testing',\n desc: 'Tests whether two streams have identical data.',\n example: 'testing.assertEquals(got: got, want: want)',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/testing/assertequals/`,\n },\n {\n name: 'testing.benchmark',\n args: [\n {\n name: 'case',\n desc: 'Test case to benchmark.',\n type: 'Function',\n },\n ],\n package: 'testing',\n desc: 'Executes a test case without comparing test output with the expected test output.',\n example: 'testing.benchmark(case: exampleTestCase)',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/testing/benchmark/`,\n },\n {\n name: 'testing.diff',\n args: [\n {\n name: 'got',\n desc: 'The stream containing data to test.',\n type: 'Stream of tables',\n },\n {\n name: 'want',\n desc: 'The stream that contains the expected data to test against.',\n type: 'Stream of tables',\n },\n {\n name: 'epsilon',\n desc: 'How far apart two float values can be, but still considered equal. Defaults to `0.000000001`.',\n type: 'Float',\n },\n ],\n package: 'testing',\n desc: 'Produces a diff between two streams.',\n example: 'testing.assertEquals(got: got, want: want)',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/testing/diff/`,\n },\n {\n name: 'testing.inspect',\n args: [\n {\n name: 'case',\n desc: 'Test case to inspect.',\n type: 'Function',\n },\n ],\n package: 'testing',\n desc: 'Returns information about a test case.',\n example: 'testing.inspect(case: exampleTestCase)',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/testing/inspect/`,\n },\n {\n name: 'testing.load',\n args: [],\n package: 'testing',\n desc: 'Loads tests data from a stream of tables.',\n example: 'testing.load()',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/testing/inspect/`,\n },\n {\n name: 'testing.loadMem',\n args: [\n {\n name: 'csv',\n desc: 'Annotated CSV data to load.',\n type: 'String',\n },\n ],\n package: 'testing',\n desc: 'Loads annotated CSV test data from memory to emulate query results returned by Flux.',\n example: 'testing.loadMem(csv: csvData)',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/testing/loadmem/`,\n },\n {\n name: 'testing.loadStorage',\n args: [\n {\n name: 'csv',\n desc: 'Annotated CSV data to load.',\n type: 'String',\n },\n ],\n package: 'testing',\n desc: 'Loads annotated CSV test data as if it were queried from InfluxDB.',\n example: 'testing.loadStorage(csv: csvData)',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/testing/loadstorage/`,\n },\n {\n name: 'testing.run',\n args: [\n {\n name: 'case',\n desc: 'Test case to run.',\n type: 'Function',\n },\n ],\n package: 'testing',\n desc: 'Executes a specified test case.',\n example: 'testing.run(case: exampleTestCase)',\n category: 'Tests',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/testing/run/`,\n },\n {\n name: 'tickscript.alert',\n args: [\n {\n name: 'check',\n desc: 'InfluxDB check data. See `tickscript.defineCheck()`.',\n type: 'Record',\n },\n {\n name: 'id',\n desc: 'Function that returns the InfluxDB check ID provided by the check record. Default is `(r) => \"${r._check_id}\"`.',\n type: 'Function',\n },\n {\n name: 'details',\n desc: 'Function to return the InfluxDB check details using data from input rows. Default is `(r) => \"\"`.',\n type: 'Function',\n },\n {\n name: 'message',\n desc: 'Function to return the InfluxDB check message using data from input rows. Default is `(r) => \"Threshold Check: ${r._check_name} is: ${r._level}\"`.',\n type: 'Function',\n },\n {\n name: 'crit',\n desc: 'Predicate function to determine crit status. Default is `(r) => false`.',\n type: 'Function',\n },\n {\n name: 'warn',\n desc: 'Predicate function to determine warn status. Default is `(r) => false`.',\n type: 'Function',\n },\n {\n name: 'info',\n desc: 'Predicate function to determine info status. Default is `(r) => false`.',\n type: 'Function',\n },\n {\n name: 'ok',\n desc: 'Predicate function to determine ok status. Default is `(r) => false`.',\n type: 'Function',\n },\n {\n name: 'topic',\n desc: 'Check topic. Default is `\"\"`.',\n type: 'String',\n },\n ],\n package: 'contrib/bonitoo-io/tickscript',\n desc: 'Identifies events of varying severity levels and writes them to the statuses measurement in the InfluxDB `_monitoring` system bucket.',\n example: `tickscript.alert(\n check,\n id: (r) => \"\\${r._check_id}\",\n details: (r) => \"\",\n message: (r) => \"Threshold Check: \\${r._check_name} is: \\${r._level}\",\n crit: (r) => false,\n warn: (r) => false,\n info: (r) => false,\n ok: (r) => true,\n topic: \"\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/tickscript/alert/`,\n },\n {\n name: 'tickscript.compute',\n args: [\n {\n name: 'column',\n desc: 'Column to operate on. Default is `_value`.',\n type: 'String',\n },\n {\n name: 'fn',\n desc: 'Aggregate or selector function to apply.',\n type: 'Function',\n },\n {\n name: 'as',\n desc: 'New column name.',\n type: 'String',\n },\n ],\n package: 'contrib/bonitoo-io/tickscript',\n desc: 'An alias for `tickscript.select()` that changes a column’s name and optionally applies an aggregate or selector function.',\n example: `tickscript.compute(\n column: \"_value\",\n fn: sum,\n as: \"example-name\"\n)`,\n category: 'Outputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/tickscript/compute/`,\n },\n {\n name: 'tickscript.deadman',\n args: [\n {\n name: 'check',\n desc: 'InfluxDB check data. See `tickscript.defineCheck()`.',\n type: 'Record',\n },\n {\n name: 'measurement',\n desc: 'Measurement name. Should match the queried measurement.',\n type: 'String',\n },\n {\n name: 'threshold',\n desc: 'Count threshold. The function assigns a `crit` status to input tables with a number of rows less than or equal to the threshold. Default is `0`.',\n type: 'Integer',\n },\n {\n name: 'id',\n desc: 'Function that returns the InfluxDB check ID provided by the check record. Default is `(r) => \"${r._check_id}\"`.',\n type: 'Function',\n },\n {\n name: 'message',\n desc: 'Function that returns the InfluxDB check message using data from input rows. Default is `(r) => \"Deadman Check: ${r._check_name} is: \" + (if r.dead then \"dead\" else \"alive\")`.',\n type: 'Function',\n },\n {\n name: 'topic',\n desc: 'Check topic. Default is `\"\"`.',\n type: 'String',\n },\n ],\n package: 'contrib/bonitoo-io/tickscript',\n desc: 'Detects low data throughput and writes a point with a critical status to the InfluxDB `_monitoring` system bucket.',\n example: `tickscript.deadman(\n check: {},\n measurement: \"example-measurement\",\n threshold: 0,\n id: (r)=>\"\\${r._check_id}\",\n message: (r) => \"Deadman Check: \\${r._check_name} is: \" + (if r.dead then \"dead\" else \"alive\"),\n topic: \"\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/tickscript/deadman/`,\n },\n {\n name: 'tickscript.defineCheck',\n args: [\n {\n name: 'id',\n desc: 'InfluxDB check ID.',\n type: 'String',\n },\n {\n name: 'name',\n desc: 'InfluxDB check name.',\n type: 'String',\n },\n {\n name: 'type',\n desc: 'InfluxDB check type. Default is `custom`. Valid types are `thresold`, `deadman`, and `custom`.',\n type: 'String',\n },\n ],\n package: 'contrib/bonitoo-io/tickscript',\n desc: 'Creates and returns a record with custom check data required by `tickscript.alert()` and `tickscript.deadman()`.',\n example: `tickscript.defineCheck(\n id: \"000000000000\",\n name: \"Example check name\",\n type: \"custom\"\n)`,\n category: 'Outputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/tickscript/definecheck/`,\n },\n {\n name: 'tickscript.groupBy',\n args: [\n {\n name: 'columns',\n desc: 'List of columns to group by.',\n type: 'Array of Strings',\n },\n ],\n package: 'contrib/bonitoo-io/tickscript',\n desc: 'Groups results by the _measurement column and other specified columns.',\n example: `tickscript.groupBy(\n columns: [\"exampleColumn\"]\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/tickscript/groupby/`,\n },\n {\n name: 'tickscript.join',\n args: [\n {\n name: 'tables',\n desc: 'Map of two streams to join.',\n type: 'Record',\n },\n {\n name: 'on',\n desc: 'List of columns to join on. Default is `[\"_time\"]`.',\n type: 'Array of Strings',\n },\n {\n name: 'measurement',\n desc: 'Measurement name to use in results.',\n type: 'String',\n },\n ],\n package: 'contrib/bonitoo-io/tickscript',\n desc: 'Merges two input streams into a single output stream based on specified columns with equal values and appends a new measurement name.',\n example: `tickscript.join(\n tables: {t1: example1, t2: example2},\n on: [\"_time\"],\n measurement: \"example-measurement\"\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/tickscript/join/`,\n },\n {\n name: 'tickscript.select',\n args: [\n {\n name: 'column',\n desc: 'Column to operate on. Default is `_value`.',\n type: 'String',\n },\n {\n name: 'fn',\n desc: 'Aggregate or selector function to apply.',\n type: 'Function',\n },\n {\n name: 'as',\n desc: 'New column name.',\n type: 'String',\n },\n ],\n package: 'contrib/bonitoo-io/tickscript',\n desc: 'Changes a column’s name and optionally applies an aggregate or selector function to values in the column.',\n example: `tickscript.select(\n column: \"_value\",\n fn: sum,\n as: \"example-name\"\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/tickscript/select/`,\n },\n {\n name: 'tickscript.selectWindow',\n args: [\n {\n name: 'column',\n desc: 'Column to operate on. Default is `_value`.',\n type: 'String',\n },\n {\n name: 'fn',\n desc: 'Aggregate or selector function to apply.',\n type: 'Function',\n },\n {\n name: 'as',\n desc: 'New column name.',\n type: 'String',\n },\n {\n name: 'every',\n desc: 'Duration of windows.',\n type: 'Duration',\n },\n {\n name: 'defaultValue',\n desc: 'Default fill value for null values in `column`. Must be the same data type as `column`.',\n type: 'String | Boolean | Float | Integer | Uinteger | Bytes',\n },\n ],\n package: 'contrib/bonitoo-io/tickscript',\n desc: 'Changes a column’s name, windows rows by time, and applies an aggregate or selector function the specified column for each window of time.',\n example: `tickscript.selectWindow(\n column: \"_value\",\n fn: sum,\n as: \"example-name\",\n every: 1m,\n defaultValue: 0.0,\n)`,\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/tickscript/selectwindow/`,\n },\n {\n name: 'time',\n args: [\n {\n name: 'v',\n desc: 'The value to convert.',\n type: 'String | Integer | UInteger',\n },\n ],\n package: '',\n desc: 'Converts a single value to a time.',\n example: 'time(v: r._value)',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/time/`,\n },\n {\n name: 'timedMovingAverage',\n args: [\n {\n name: 'every',\n desc: 'The frequency of time windows.',\n type: 'Duration',\n },\n {\n name: 'period',\n desc: 'The length of each averaged time window.',\n type: 'Duration',\n },\n {\n name: 'column',\n desc: 'The column on which to compute the moving average. Defaults to `\"_value\"`',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Calculates the mean of values in a defined time range at a specified frequency.',\n example: 'timedMovingAverage(every: 1d, period: 5d)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/timedmovingaverage/`,\n },\n {\n name: 'timeShift',\n args: [\n {\n name: 'duration',\n desc: 'The amount of time to add to each time value. May be a negative duration.',\n type: 'String',\n },\n {\n name: 'columns',\n desc: 'The list of all columns to be shifted. Defaults to `[\"_start\", \"_stop\", \"_time\"]`.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Adds a fixed duration to time columns. The output table schema is the same as the input table.',\n example: 'timeShift(duration: 10h, columns: [\"_start\", \"_stop\", \"_time\"])',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/timeshift/`,\n },\n {\n name: 'timeWeightedAvg',\n args: [\n {\n name: 'unit',\n desc: 'The time duration used when computing the time-weighted average.',\n type: 'Duration',\n },\n ],\n package: '',\n desc: 'Computes the time-weighted average of non-null records in a table using linear interpolation.',\n example: 'timeWeightedAvg(unit: 1m)',\n category: 'Aggregates',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/aggregates/timeweightedavg/`,\n },\n {\n name: 'to',\n args: [\n {\n name: 'bucket',\n desc: 'The bucket to which data is written. Mutually exclusive with `bucketID`.',\n type: 'String',\n },\n {\n name: 'bucketID',\n desc: 'The ID of the bucket to which data is written. Mutually exclusive with `bucket`.',\n type: 'String',\n },\n {\n name: 'org',\n desc: 'The organization name of the specified `bucket`. Only required when writing to a remote host. Mutually exclusive with `orgID`.',\n type: 'String',\n },\n {\n name: 'orgID',\n desc: 'The organization ID of the specified `bucket`. Only required when writing to a remote host. Mutually exclusive with `org`.',\n type: 'String',\n },\n {\n name: 'host',\n desc: 'The remote InfluxDB host to which to write. If specified, a `token` is required.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'The authorization token to use when writing to a remote host. Required when a `host` is specified.',\n type: 'String',\n },\n {\n name: 'timeColumn',\n desc: 'The time column of the output. Default is `\"_time\"`.',\n type: 'String',\n },\n {\n name: 'tagColumns',\n desc: 'The tag columns of the output. Defaults to all columns with type `string`, excluding all value columns and the `_field` column if present.',\n type: 'Array of Strings',\n },\n {\n name: 'fieldFn',\n desc: 'Function that takes a record from the input table and returns an object. For each record from the input table, `fieldFn` returns an object that maps output the field key to the output value. Default is `(r) => ({ [r._field]: r._value })`',\n type: 'Function',\n },\n ],\n package: '',\n desc: 'The `to()` function writes data to an InfluxDB v2.0 bucket.',\n example: 'to(bucket: \"example-bucket\", org: \"example-org\")',\n category: 'Outputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/outputs/to/`,\n },\n {\n name: 'toBool',\n args: [],\n package: '',\n desc: 'Converts all values in the `_value` column to a boolean.',\n example: 'toBool()',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/tobool/`,\n },\n {\n name: 'today',\n args: [],\n package: '',\n desc: 'Returns the `now()` timestamp truncated to the day unit.',\n example: 'today()',\n category: 'Miscellaneous',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/misc/today/`,\n },\n {\n name: 'toFloat',\n args: [],\n package: '',\n desc: 'Converts all values in the `_value` column to a float.',\n example: 'toFloat()',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/tofloat/`,\n },\n {\n name: 'toInt',\n args: [],\n package: '',\n desc: 'Converts all values in the `_value` column to a integer.',\n example: 'toInt()',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/toint/`,\n },\n {\n name: 'top',\n args: [\n {\n name: 'n',\n desc: 'Number of rows to return.',\n type: 'Integer',\n },\n {\n name: 'columns',\n desc: 'List of columns by which to sort. Sort precedence is determined by list order (left to right). Default is `[\"_value\"]`.',\n type: 'Array of Strings',\n },\n ],\n package: '',\n desc: 'Sorts a table by columns and keeps only the top n rows.',\n example: 'top(n:10, columns: [\"_value\"])',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/top/`,\n },\n {\n name: 'toString',\n args: [],\n package: '',\n desc: 'Converts a value to a string.',\n example: 'toString()',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/tostring/`,\n },\n {\n name: 'toTime',\n args: [],\n package: '',\n desc: 'Converts a value to a time.',\n example: 'toTime()',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/totime/`,\n },\n {\n name: 'toUInt',\n args: [],\n package: '',\n desc: 'Converts a value to an unsigned integer.',\n example: 'toUInt()',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/touint/`,\n },\n {\n name: 'tripleEMA',\n args: [\n {\n name: 'n',\n desc: 'The number of points to average.',\n type: 'Integer',\n },\n ],\n package: '',\n desc: 'Calculates the exponential moving average of values in the `_value` column grouped into `n` number of points, giving more weight to recent data at triple the rate of `exponentialMovingAverage()`.',\n example: 'tripleEMA(n: 5)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/tripleema/`,\n },\n {\n name: 'tripleExponentialDerivative',\n args: [\n {\n name: 'n',\n desc: 'The number of points to use in the calculation.',\n type: 'Integer',\n },\n ],\n package: '',\n desc: 'Calculates a triple exponential derivative (TRIX) of input tables using n points.',\n example: 'tripleExponentialDerivative(n: 5)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/tripleexponentialderivative/`,\n },\n {\n name: 'truncateTimeColumn',\n args: [\n {\n name: 'unit',\n desc: 'The unit of time to truncate to.',\n type: 'Duration',\n },\n ],\n package: '',\n desc: 'Truncates all `_time` values to a specified unit.',\n example: 'truncateTimeColumn(unit: 1m)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/truncatetimecolumn/`,\n },\n {\n name: 'uint',\n args: [\n {\n name: 'v',\n desc: 'The value to convert.',\n type: 'Boolean | Duration | Float | Integer | Numeric String | Time',\n },\n ],\n package: '',\n desc: 'Converts a single value to a uinteger.',\n example: 'uint(v: r._value)',\n category: 'Type Conversions',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/type-conversions/uint/`,\n },\n UNION,\n {\n name: 'unique',\n args: [\n {\n name: 'column',\n desc: 'The column searched for unique values. Defaults to `\"_value\"`.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Returns all rows containing unique values in a specified column.',\n example: 'unique(column: \"_value\")',\n category: 'Selectors',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/selectors/unique/`,\n },\n {\n name: 'usage.from',\n args: [\n {\n name: 'start',\n desc: 'Earliest time to include in results.',\n type: 'Time | Duration',\n },\n {\n name: 'stop',\n desc: 'Latest time to include in results.',\n type: 'Time | Duration',\n },\n {\n name: 'host',\n desc: 'InfluxDB Cloud region URL (Required if executed outside of your InfluxDB Cloud organization or region). Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'orgID',\n desc: 'InfluxDB Cloud organization ID (Required if executed outside of your InfluxDB Cloud organization or region). Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'InfluxDB Cloud authentication token (Required if executed outside of your InfluxDB Cloud organization or region). Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'raw',\n desc: 'Return raw, high resolution usage data instead of downsampled usage data. Default is `false`.',\n type: 'Boolean',\n },\n ],\n package: 'experimental/usage',\n desc: 'Returns usage data from an InfluxDB Cloud organization.',\n example: `usage.from(\n start: -30d,\n stop: now(),\n host: \"\",\n orgID: \"\",\n token: \"\",\n raw: false\n)`,\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/usage/from/`,\n },\n {\n name: 'usage.limits',\n args: [\n {\n name: 'host',\n desc: 'InfluxDB Cloud region URL (Required if executed outside of your InfluxDB Cloud organization or region). Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'orgID',\n desc: 'InfluxDB Cloud organization ID (Required if executed outside of your InfluxDB Cloud organization or region). Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'token',\n desc: 'InfluxDB Cloud authentication token (Required if executed outside of your InfluxDB Cloud organization or region). Default is `\"\"`.',\n type: 'String',\n },\n ],\n package: 'experimental/usage',\n desc: 'Returns a record containing usage limits for an InfluxDB Cloud organization.',\n example: `usage.limits(\n host: \"\",\n orgID: \"\",\n token: \"\"\n)`,\n category: 'Inputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/experimental/usage/limits/`,\n },\n {\n name: 'victorops.endpoint',\n args: [\n {\n name: 'url',\n desc: 'VictorOps REST endpoint integration URL.',\n type: 'String',\n },\n ],\n package: 'contrib/bonitoo-io/victorops',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = victorops.endpoint(\n url: \"https://alert.victorops.com/integrations/generic/00000000/alert\\${apiKey}/\\${routingKey}\",\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/victorops/endpoint/`,\n },\n {\n name: 'victorops.event',\n args: [\n {\n name: 'url',\n desc: 'VictorOps REST endpoint integration URL.',\n type: 'String',\n },\n {\n name: 'monitoringTool',\n desc: 'Monitoring agent name. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'messageType',\n desc: 'VictorOps message type (alert behavior). Valid values are `CRITICAL`, `WARNING`, and `INFO`.',\n type: 'String',\n },\n {\n name: 'entityID',\n desc: 'Incident ID. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'entityDisplayName',\n desc: 'Incident display name or summary. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'stateMessage',\n desc: 'Verbose incident message. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'timestamp',\n desc: 'Incident start time. Default is `now()`.',\n type: 'Time',\n },\n ],\n package: 'contrib/bonitoo-io/victorops',\n desc: 'Sends an alert to VictorOps (Now Splunk On-Call).',\n example: `victorops.event(\n url: \"https://alert.victorops.com/integrations/generic/00000000/alert/\\${api_key}/\\${routing_key}\",\n monitoringTool: \"\",\n messageType: \"CRITICAL\",\n entityID: \"\",\n entityDisplayName: \"\",\n stateMessage: \"\",\n timestamp: now()\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/victorops/event/`,\n },\n {\n name: 'window',\n args: [\n {\n name: 'every',\n desc: 'Duration of time between windows. Defaults to `period` value.',\n type: 'Duration',\n },\n {\n name: 'period',\n desc: 'Duration of the window. Period is the length of each interval. It can be negative, indicating the start and stop boundaries are reversed. Defaults to `every` value.',\n type: 'Duration',\n },\n {\n name: 'offset',\n desc: 'The offset duration relative to the `location` offset. It can be negative, indicating that the offset goes backwards in time. The default aligns the window boundaries with `now`.',\n type: 'Duration',\n },\n {\n name: 'timeColumn',\n desc: 'The column containing time. Defaults to `\"_time\"`.',\n type: 'String',\n },\n {\n name: 'startColumn',\n desc: 'The column containing the window start time. Defaults to `\"_start\"`.',\n type: 'String',\n },\n {\n name: 'stopColumn',\n desc: 'The column containing the window stop time. Defaults to `\"_stop\"`.',\n type: 'String',\n },\n {\n name: 'createEmpty',\n desc: 'Specifies whether empty tables should be created. Defaults to `false`.',\n type: 'Boolean',\n },\n ],\n package: '',\n desc: 'Groups records based on a time value. New columns are added to uniquely identify each window. Those columns are added to the group key of the output tables. A single input record will be placed into zero or more output tables, depending on the specific windowing function.',\n example: 'window(every: v.windowPeriod)',\n category: 'Transformations',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/transformations/window/`,\n },\n {\n name: 'yield',\n args: [\n {\n name: 'name',\n desc: 'A unique name for the yielded results.',\n type: 'String',\n },\n ],\n package: '',\n desc: 'Indicates the input tables received should be delivered as a result of the query. Yield outputs the input stream unmodified. A query may have multiple results, each identified by the name provided to the `yield()` function.',\n example: 'yield(name: \"custom-name\")',\n category: 'Outputs',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/built-in/outputs/yield/`,\n },\n {\n name: 'zenoss.endpoint',\n args: [\n {\n name: 'url',\n desc: 'Zenoss router endpoint URL.',\n type: 'String',\n },\n {\n name: 'username',\n desc: 'Zenoss username to use for HTTP BASIC authentication. Default is \"\" (no authentication).',\n type: 'String',\n },\n {\n name: 'password',\n desc: 'Zenoss password to use for HTTP BASIC authentication. Default is \"\" (no authentication).',\n type: 'String',\n },\n {\n name: 'action',\n desc: 'Zenoss router name. Default is `\"EventsRouter\"`.',\n type: 'String',\n },\n {\n name: 'method',\n desc: 'EventsRouter method. Default is `\"add_event\"`.',\n type: 'String',\n },\n {\n name: 'type',\n desc: 'Event type. Default is `\"rpc\"`.',\n type: 'String',\n },\n {\n name: 'tid',\n desc: 'Temporary request transaction ID. Default is `1`.',\n type: 'Integer',\n },\n ],\n package: 'contrib/bonitoo-io/zenoss',\n desc: 'A factory function that outputs another function. The output function requires a `mapFn` parameter. See the documentation link for a full example.',\n example: `endpoint = zenoss.endpoint(\n url: \"https://example.zenoss.io:8080/zport/dmd/evconsole_router\",\n username: \"example-user\",\n password: \"example-password\",\n action: \"EventsRouter\",\n method: \"add_event\",\n type: \"rpc\",\n tid: 1\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/zenoss/endpoint/`,\n },\n {\n name: 'zenoss.event',\n args: [\n {\n name: 'url',\n desc: 'Zenoss router endpoint URL.',\n type: 'String',\n },\n {\n name: 'username',\n desc: 'Zenoss username to use for HTTP BASIC authentication. Default is \"\" (no authentication).',\n type: 'String',\n },\n {\n name: 'password',\n desc: 'Zenoss password to use for HTTP BASIC authentication. Default is \"\" (no authentication).',\n type: 'String',\n },\n {\n name: 'action',\n desc: 'Zenoss router name. Default is `\"EventsRouter\"`.',\n type: 'String',\n },\n {\n name: 'method',\n desc: 'EventsRouter method. Default is `\"add_event\"`.',\n type: 'String',\n },\n {\n name: 'type',\n desc: 'Event type. Default is `\"rpc\"`.',\n type: 'String',\n },\n {\n name: 'tid',\n desc: 'Temporary request transaction ID. Default is `1`.',\n type: 'Integer',\n },\n {\n name: 'summary',\n desc: 'Event summary. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'device',\n desc: 'Related device. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'component',\n desc: 'Related component. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'severity',\n desc: 'Event severity level. Supported values are `Critical`, `Warning`, `Info`, and `Clear`.',\n type: 'String',\n },\n {\n name: 'eventClass',\n desc: 'Event class. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'eventClassKey',\n desc: 'Event class key. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'collector',\n desc: 'Zenoss collector. Default is `\"\"`.',\n type: 'String',\n },\n {\n name: 'message',\n desc: 'Related message. Default is `\"\"`.',\n type: 'String',\n },\n ],\n package: 'contrib/bonitoo-io/zenoss',\n desc: 'Sends an alert to Zenoss.',\n example: `zenoss.event(\n url: \"https://example.zenoss.io:8080/zport/dmd/evconsole_router\",\n username: \"example-user\",\n password: \"example-password\",\n action: \"EventsRouter\",\n method: \"add_event\",\n type: \"rpc\",\n tid: 1,\n summary: \"\",\n device: \"\",\n component: \"\",\n severity: \"Critical\",\n eventClass: \"\",\n eventClassKey: \"\",\n collector: \"\",\n message: \"\"\n)`,\n category: 'Alerting',\n link: `https://docs.influxdata.com/influxdb/${DOCS_URL_VERSION}/reference/flux/stdlib/contrib/zenoss/event/`,\n },\n]\n","import {nanoid} from 'nanoid'\n\nconst COLOR_TYPE_SCALE = 'scale'\n\n// Color Palettes\nexport const LINE_COLORS_A = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#31C0F6',\n id: nanoid(),\n name: 'Nineteen Eighty Four',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#A500A5',\n id: nanoid(),\n name: 'Nineteen Eighty Four',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#FF7E27',\n id: nanoid(),\n name: 'Nineteen Eighty Four',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_B = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#74D495',\n id: nanoid(),\n name: 'Atlantis',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#3F3FBA',\n id: nanoid(),\n name: 'Atlantis',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#FF4D9E',\n id: nanoid(),\n name: 'Atlantis',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_C = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#8F8AF4',\n id: nanoid(),\n name: 'Do Androids Dream of Electric Sheep?',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#A51414',\n id: nanoid(),\n name: 'Do Androids Dream of Electric Sheep?',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#F4CF31',\n id: nanoid(),\n name: 'Do Androids Dream of Electric Sheep?',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_D = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#FD7A5D',\n id: nanoid(),\n name: 'Delorean',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#5F1CF2',\n id: nanoid(),\n name: 'Delorean',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#4CE09A',\n id: nanoid(),\n name: 'Delorean',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_E = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#FDC44F',\n id: nanoid(),\n name: 'Cthulhu',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#007C76',\n id: nanoid(),\n name: 'Cthulhu',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#8983FF',\n id: nanoid(),\n name: 'Cthulhu',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_F = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#DA6FF1',\n id: nanoid(),\n name: 'Ectoplasm',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#00717A',\n id: nanoid(),\n name: 'Ectoplasm',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#ACFF76',\n id: nanoid(),\n name: 'Ectoplasm',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_G = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#F6F6F8',\n id: nanoid(),\n name: 'T-Max 400 Film',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#A4A8B6',\n id: nanoid(),\n name: 'T-Max 400 Film',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#545667',\n id: nanoid(),\n name: 'T-Max 400 Film',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_SOLID_RED = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#DC4E58',\n id: nanoid(),\n name: 'Solid Red',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#DC4E58',\n id: nanoid(),\n name: 'Solid Red',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#DC4E58',\n id: nanoid(),\n name: 'Solid Red',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_SOLID_BLUE = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#00A3FF',\n id: nanoid(),\n name: 'Solid Blue',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#00A3FF',\n id: nanoid(),\n name: 'Solid Blue',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#00A3FF',\n id: nanoid(),\n name: 'Solid Blue',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_SOLID_GREEN = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#34BB55',\n id: nanoid(),\n name: 'Solid Green',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#34BB55',\n id: nanoid(),\n name: 'Solid Green',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#34BB55',\n id: nanoid(),\n name: 'Solid Green',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_SOLID_YELLOW = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#FFD255',\n id: nanoid(),\n name: 'Solid Yellow',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#FFD255',\n id: nanoid(),\n name: 'Solid Yellow',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#FFD255',\n id: nanoid(),\n name: 'Solid Yellow',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_SOLID_PURPLE = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#BE2EE4',\n id: nanoid(),\n name: 'Solid Purple',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#BE2EE4',\n id: nanoid(),\n name: 'Solid Purple',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#BE2EE4',\n id: nanoid(),\n name: 'Solid Purple',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_SOLID_WHITE = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#fff',\n id: nanoid(),\n name: 'Solid White',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#fff',\n id: nanoid(),\n name: 'Solid White',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#fff',\n id: nanoid(),\n name: 'Solid White',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_BLIND_DARK = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#000000',\n id: nanoid(),\n name: 'Color Blind Friendly - Dark',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#E69F00',\n id: nanoid(),\n name: 'Color Blind Friendly - Dark',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#56B4E9',\n id: nanoid(),\n name: 'Color Blind Friendly - Dark',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#009E73',\n id: nanoid(),\n name: 'Color Blind Friendly - Dark',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#F0E442',\n id: nanoid(),\n name: 'Color Blind Friendly - Dark',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#0072B2',\n id: nanoid(),\n name: 'Color Blind Friendly - Dark',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#D55E00',\n id: nanoid(),\n name: 'Color Blind Friendly - Dark',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#CC79A7',\n id: nanoid(),\n name: 'Color Blind Friendly - Dark',\n value: 0,\n },\n]\n\nexport const LINE_COLORS_BLIND_LIGHT = [\n {\n type: COLOR_TYPE_SCALE,\n hex: '#FFFFFF',\n id: nanoid(),\n name: 'Color Blind Friendly - Light',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#E69F00',\n id: nanoid(),\n name: 'Color Blind Friendly - Light',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#56B4E9',\n id: nanoid(),\n name: 'Color Blind Friendly - Light',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#009E73',\n id: nanoid(),\n name: 'Color Blind Friendly - Light',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#F0E442',\n id: nanoid(),\n name: 'Color Blind Friendly - Light',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#0072B2',\n id: nanoid(),\n name: 'Color Blind Friendly - Light',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#D55E00',\n id: nanoid(),\n name: 'Color Blind Friendly - Light',\n value: 0,\n },\n {\n type: COLOR_TYPE_SCALE,\n hex: '#CC79A7',\n id: nanoid(),\n name: 'Color Blind Friendly - Light',\n value: 0,\n },\n]\n\nexport const DEFAULT_LINE_COLORS = LINE_COLORS_A\n\nexport const LINE_COLOR_SCALES = [\n LINE_COLORS_A,\n LINE_COLORS_B,\n LINE_COLORS_C,\n LINE_COLORS_D,\n LINE_COLORS_BLIND_LIGHT,\n LINE_COLORS_BLIND_DARK,\n LINE_COLORS_E,\n LINE_COLORS_F,\n LINE_COLORS_G,\n LINE_COLORS_SOLID_RED,\n LINE_COLORS_SOLID_BLUE,\n LINE_COLORS_SOLID_YELLOW,\n LINE_COLORS_SOLID_GREEN,\n LINE_COLORS_SOLID_PURPLE,\n LINE_COLORS_SOLID_WHITE,\n].map(colorScale => {\n const name = colorScale[0].name\n const colors = colorScale\n const id = colorScale[0].id\n\n return {name, colors, id}\n})\n","import {\n ATLANTIS,\n COLOR_BLIND_FRIENDLY_DARK,\n COLOR_BLIND_FRIENDLY_LIGHT,\n CTHULHU,\n Config,\n DELOREAN,\n DO_ANDROIDS_DREAM,\n ECTOPLASM,\n NINETEEN_EIGHTY_FOUR,\n T_MAX_400_FILM,\n} from '@influxdata/giraffe'\nimport {InfluxColors} from '@influxdata/clockface'\n\nimport {AutoRefreshStatus, CreditCardParams} from 'src/types'\n\n/**\n * UPDATE: the original integration of this had linked to a Quartz issue that has\n * since been resolved. However, removing this function caused our unit tests\n * to fail in CI since the GIT_SHA was undefined. We need to resolve that issue\n * before we can remove this function from the app\n */\nfunction formatConstant(constant: string) {\n if (!constant) {\n return ''\n }\n return constant.trim()\n}\n\n// If we don't initialize these params here, then the UI will start\n// showing a popup and cypress tests will start failing.\nexport const EMPTY_ZUORA_PARAMS: CreditCardParams = {\n id: '',\n tenantId: '',\n key: '',\n signature: '',\n token: '',\n style: '',\n submitEnabled: 'false',\n url: '',\n}\n\nexport const BALANCE_THRESHOLD_DEFAULT = 10\nexport const MINIMUM_BALANCE_THRESHOLD = 1\n\nexport const DROPDOWN_MENU_MAX_HEIGHT = 240\n\nexport const PRESENTATION_MODE_ANIMATION_DELAY = 0 // In milliseconds.\n\nexport const HTTP_UNAUTHORIZED = 401\nexport const HTTP_FORBIDDEN = 403\nexport const HTTP_NOT_FOUND = 404\n\nexport const AUTOREFRESH_DEFAULT_INTERVAL = 0 // in milliseconds\nexport const AUTOREFRESH_DEFAULT_STATUS = AutoRefreshStatus.Paused\nexport const AUTOREFRESH_DEFAULT = {\n status: AUTOREFRESH_DEFAULT_STATUS,\n interval: AUTOREFRESH_DEFAULT_INTERVAL,\n duration: null,\n inactivityTimeout: 0,\n infiniteDuration: false,\n label: '',\n}\n\nexport const LAYOUT_MARGIN = 4\nexport const DASHBOARD_LAYOUT_ROW_HEIGHT = 83.5\n\nexport const NOTIFICATION_TRANSITION = 250\nexport const FIVE_SECONDS = 5000\nexport const TEN_SECONDS = 10000\nexport const FIFTEEN_SECONDS = 15000\nexport const INDEFINITE = Infinity\n\nexport const HOMEPAGE_PATHNAME = 'me'\n\n// Resizer && Threesizer\nexport const HANDLE_VERTICAL = 'vertical'\nexport const HANDLE_HORIZONTAL = 'horizontal'\nexport const HANDLE_NONE = 'none'\nexport const HANDLE_PIXELS = 20\nexport const MIN_HANDLE_PIXELS = 20\nexport const MAX_SIZE = 1\nexport const MIN_SIZE = 0\n\nexport const VERSION = formatConstant(process.env.npm_package_version)\nexport const GIT_SHA = formatConstant(process.env.GIT_SHA)\nexport const BASE_PATH = formatConstant(process.env.STATIC_PREFIX)\nexport const API_BASE_PATH = formatConstant(process.env.API_PREFIX)\nexport const HONEYBADGER_KEY = formatConstant(process.env.HONEYBADGER_KEY)\nexport const HONEYBADGER_ENV = formatConstant(process.env.HONEYBADGER_ENV)\n\nexport const RUDDERSTACK_DATA_PLANE_URL = formatConstant(\n process.env.RUDDERSTACK_DATA_PLANE_URL\n)\nexport const RUDDERSTACK_WRITE_KEY = formatConstant(\n process.env.RUDDERSTACK_WRITE_KEY\n)\n\nexport const CLOUD = !!process.env.CLOUD_URL\nexport const CLOUD_SIGNIN_PATHNAME = '/api/v2/signin'\nexport const CLOUD_SIGNOUT_PATHNAME = '/api/v2/signout'\nexport const CLOUD_LOGIN_PATHNAME = '/login'\nexport const CLOUD_URL = formatConstant(process.env.CLOUD_URL)\nexport const CLOUD_QUARTZ_URL = 'https://cloud2.influxdata.com/login'\nexport const CLOUD_CHECKOUT_PATH = '/checkout'\nexport const CLOUD_BILLING_PATH = '/billing'\nexport const CLOUD_USAGE_PATH = '/usage'\nexport const CLOUD_LOGOUT_PATH = '/logout'\n\nexport const FLUX_RESPONSE_BYTES_LIMIT = CLOUD\n ? 27 * 1024 * 1024 // 27 MiB (desa: this was determined by looking at queries responses in the cloud app)\n : 100 * 1024 * 1024 // 100 MiB\n\nexport const VIS_SIG_DIGITS = 4\n\nexport const VIS_THEME: Partial = {\n axisColor: InfluxColors.Grey35,\n gridColor: InfluxColors.Grey35,\n gridOpacity: 1,\n tickFont: '700 12px Proxima Nova',\n tickFontColor: InfluxColors.Grey75,\n legendFont: '12px Proxima Nova',\n legendFontColor: InfluxColors.Grey55,\n legendFontBrightColor: InfluxColors.Grey75,\n legendBackgroundColor: InfluxColors.Grey5,\n legendBorder: `1px solid ${InfluxColors.Grey15}`,\n legendCrosshairColor: InfluxColors.Grey35,\n}\n\nexport const VIS_THEME_LIGHT: Partial = {\n axisColor: InfluxColors.Grey95,\n gridColor: InfluxColors.Grey95,\n gridOpacity: 1,\n tickFont: '700 12px Proxima Nova',\n tickFontColor: InfluxColors.Grey45,\n legendFont: '12px Proxima Nova',\n legendFontColor: InfluxColors.Grey35,\n legendFontBrightColor: InfluxColors.Grey65,\n legendBackgroundColor: InfluxColors.Grey95,\n legendBorder: `1px solid ${InfluxColors.Grey95}`,\n legendCrosshairColor: InfluxColors.Grey25,\n}\n\nexport const GIRAFFE_COLOR_SCHEMES = [\n {name: 'Nineteen Eighty Four', colors: NINETEEN_EIGHTY_FOUR},\n {name: 'Atlantis', colors: ATLANTIS},\n {name: 'Do Androids Dream of Electric Sheep?', colors: DO_ANDROIDS_DREAM},\n {name: 'Delorean', colors: DELOREAN},\n {name: 'Color Blind Friendly - Light', colors: COLOR_BLIND_FRIENDLY_LIGHT},\n {name: 'Color Blind Friendly - Dark', colors: COLOR_BLIND_FRIENDLY_DARK},\n {name: 'Cthulhu', colors: CTHULHU},\n {name: 'Ectoplasm', colors: ECTOPLASM},\n {name: 'T-MAX 400 Film', colors: T_MAX_400_FILM},\n]\n\nexport const QUERY_BUILDER_MODE = 'builder'\nexport const SCRIPT_EDITOR_MODE = 'advanced'\n\nexport const MARKDOWN_UNSUPPORTED_IMAGE =\n \"We don't support images in markdown for security purposes\"\n\nexport const GLOBALSEARCH_APP_ID = formatConstant(\n process.env.GLOBALSEARCH_APP_ID\n)\nexport const GLOBALSEARCH_API_KEY = formatConstant(\n process.env.GLOBALSEARCH_API_KEY\n)\n\nexport const PAYG_CREDIT_DAYS = 30\nexport const PAYG_MAX_CREDIT = 250\nexport const PAYG_CREDIT_EXPERIMENT_ID = process.env.PAYG_CREDIT_EXPERIMENT_ID\nexport const CREDIT_250_EXPERIENCE_CUTOFF_EPOCH = 1654585200000 // 7 June 2022, 7:00:00 AM GMT\n\nexport const INFLUXDATA_SUPPORT_CONTACT_UK = '+44 808-196-6148'\nexport const INFLUXDATA_SUPPORT_CONTACT_UK_TELEPHONE_LINK = 'tel:+448081966148'\nexport const INFLUXDATA_SUPPORT_CONTACT_US = '+1 855-958-1047'\nexport const INFLUXDATA_SUPPORT_CONTACT_US_TELEPHONE_LINK = 'tel:+18559581047'\n\nexport const TOOLS_URL = 'https://us-east-1-2.aws.cloud2.influxdata.com/'\n\nexport const IOX_SWITCHOVER_CREATION_DATE = '2023-01-31T00:00:00Z' // January 31, 2023, 00:00:00 GMT\n","export const DEFAULT_LIMIT = 1000\n","export const MAX_THRESHOLDS = 5\nexport const MIN_THRESHOLDS = 2\n\nexport const COLOR_TYPE_MIN = 'min'\nexport const DEFAULT_VALUE_MIN = 0\nexport const COLOR_TYPE_MAX = 'max'\nexport const DEFAULT_VALUE_MAX = 100\nexport const COLOR_TYPE_THRESHOLD = 'threshold'\n\nexport const THRESHOLD_TYPE_TEXT = 'text'\nexport const THRESHOLD_TYPE_BG = 'background'\n\nexport const BASE_THRESHOLD_ID = 'base'\n\nexport const THRESHOLD_COLORS = [\n {\n hex: '#BF3D5E',\n name: 'ruby',\n },\n {\n hex: '#DC4E58',\n name: 'fire',\n },\n {\n hex: '#F95F53',\n name: 'curacao',\n },\n {\n hex: '#F48D38',\n name: 'tiger',\n },\n {\n hex: '#FFB94A',\n name: 'pineapple',\n },\n {\n hex: '#FFD255',\n name: 'thunder',\n },\n {\n hex: '#7CE490',\n name: 'honeydew',\n },\n {\n hex: '#4ED8A0',\n name: 'rainforest',\n },\n {\n hex: '#32B08C',\n name: 'viridian',\n },\n {\n hex: '#4591ED',\n name: 'ocean',\n },\n {\n hex: '#22ADF6',\n name: 'pool',\n },\n {\n hex: '#00C9FF',\n name: 'laser',\n },\n {\n hex: '#513CC6',\n name: 'planet',\n },\n {\n hex: '#7A65F2',\n name: 'star',\n },\n {\n hex: '#9394FF',\n name: 'comet',\n },\n {\n hex: '#383846',\n name: 'pepper',\n },\n {\n hex: '#545667',\n name: 'graphite',\n },\n {\n hex: '#ffffff',\n name: 'white',\n },\n {\n hex: '#292933',\n name: 'castle',\n },\n]\n\nexport const DEFAULT_GAUGE_COLORS = [\n {\n type: COLOR_TYPE_MIN,\n hex: THRESHOLD_COLORS[11].hex,\n id: '0',\n name: THRESHOLD_COLORS[11].name,\n value: DEFAULT_VALUE_MIN,\n },\n {\n type: COLOR_TYPE_MAX,\n hex: THRESHOLD_COLORS[14].hex,\n id: '1',\n name: THRESHOLD_COLORS[14].name,\n value: DEFAULT_VALUE_MAX,\n },\n]\n\nexport const DEFAULT_THRESHOLDS_GEO_COLORS = [\n {\n type: COLOR_TYPE_MIN,\n value: DEFAULT_VALUE_MIN,\n hex: THRESHOLD_COLORS[13].hex,\n id: '0',\n name: THRESHOLD_COLORS[13].name,\n },\n {\n type: THRESHOLD_TYPE_TEXT,\n value: 50,\n hex: THRESHOLD_COLORS[13].hex,\n id: '1',\n name: THRESHOLD_COLORS[13].name,\n },\n {\n type: COLOR_TYPE_MAX,\n value: DEFAULT_VALUE_MAX,\n hex: THRESHOLD_COLORS[13].hex,\n id: '2',\n name: THRESHOLD_COLORS[13].name,\n },\n]\n\nexport const DEFAULT_THRESHOLDS_LIST_COLORS = [\n {\n type: THRESHOLD_TYPE_TEXT,\n hex: THRESHOLD_COLORS[11].hex,\n id: BASE_THRESHOLD_ID,\n name: THRESHOLD_COLORS[11].name,\n value: 0,\n },\n]\n\nexport const DEFAULT_THRESHOLDS_TABLE_COLORS = [\n {\n type: THRESHOLD_TYPE_TEXT,\n hex: THRESHOLD_COLORS[17].hex,\n id: BASE_THRESHOLD_ID,\n name: THRESHOLD_COLORS[17].name,\n value: 0,\n },\n]\n","import {SelectableDurationTimeRange} from 'src/types'\n\nexport const TIME_RANGE_FORMAT = 'YYYY-MM-DD HH:mm'\n\nexport const CUSTOM_TIME_RANGE_LABEL =\n 'Custom Time Range' as 'Custom Time Range'\n\nexport const pastHourTimeRange: SelectableDurationTimeRange = {\n seconds: 3600,\n lower: 'now() - 1h',\n upper: null,\n sql: \"time >= now() - interval '1 hour'\",\n label: 'Past 1h',\n duration: '1h',\n type: 'selectable-duration',\n windowPeriod: 10000, // 10s\n}\n\nexport const pastThirtyDaysTimeRange: SelectableDurationTimeRange = {\n seconds: 2592000,\n lower: 'now() - 30d',\n upper: null,\n sql: \"time >= now() - interval '30 days'\",\n label: 'Past 30d',\n duration: '30d',\n type: 'selectable-duration',\n windowPeriod: 3600000, // 1h\n}\n\nexport const pastFifteenMinTimeRange: SelectableDurationTimeRange = {\n seconds: 900,\n lower: 'now() - 15m',\n upper: null,\n sql: \"time >= now() - interval '15 minutes'\",\n label: 'Past 15m',\n duration: '15m',\n type: 'selectable-duration',\n windowPeriod: 10000, // 10s\n}\n\nexport const pastDayTimeRange: SelectableDurationTimeRange = {\n seconds: 86400,\n lower: 'now() - 24h',\n upper: null,\n sql: \"time >= now() - interval '1 day'\",\n label: 'Past 24h',\n duration: '24h',\n type: 'selectable-duration',\n windowPeriod: 240000, // 4m\n}\n\nexport const CUSTOM_TIME_RANGE: {label: string; type: 'custom'} = {\n label: 'Custom Time Range' as 'Custom Time Range',\n type: 'custom',\n}\n\nexport const SELECTABLE_TIME_RANGES: SelectableDurationTimeRange[] = [\n {\n seconds: 60,\n lower: 'now() - 1m',\n upper: null,\n sql: \"time >= now() - interval '1 minute'\",\n label: 'Past 1m',\n duration: '1m',\n type: 'selectable-duration',\n windowPeriod: 1000, // 1s\n },\n {\n seconds: 300,\n lower: 'now() - 5m',\n upper: null,\n sql: \"time >= now() - interval '5 minutes'\",\n label: 'Past 5m',\n duration: '5m',\n type: 'selectable-duration',\n windowPeriod: 10000, // 10s\n },\n pastFifteenMinTimeRange,\n pastHourTimeRange,\n {\n seconds: 10800,\n lower: 'now() - 3h',\n upper: null,\n sql: \"time >= now() - interval '3 hours'\",\n label: 'Past 3h',\n duration: '3h',\n type: 'selectable-duration',\n windowPeriod: 60000, // 1m\n },\n {\n seconds: 21600,\n lower: 'now() - 6h',\n upper: null,\n sql: \"time >= now() - interval '6 hours'\",\n label: 'Past 6h',\n duration: '6h',\n type: 'selectable-duration',\n windowPeriod: 60000, // 1m\n },\n {\n seconds: 43200,\n lower: 'now() - 12h',\n upper: null,\n sql: \"time >= now() - interval '12 hours'\",\n label: 'Past 12h',\n duration: '12h',\n type: 'selectable-duration',\n windowPeriod: 120000, // 2m\n },\n pastDayTimeRange,\n {\n seconds: 172800,\n lower: 'now() - 2d',\n upper: null,\n sql: \"time >= now() - interval '2 days'\",\n label: 'Past 2d',\n duration: '2d',\n type: 'selectable-duration',\n windowPeriod: 600000, // 10m\n },\n {\n seconds: 604800,\n lower: 'now() - 7d',\n upper: null,\n sql: \"time >= now() - interval '7 days'\",\n label: 'Past 7d',\n duration: '7d',\n type: 'selectable-duration',\n windowPeriod: 1800000, // 30 min\n },\n pastThirtyDaysTimeRange,\n]\n\nexport const SELECTABLE_USAGE_TIME_RANGES: SelectableDurationTimeRange[] = [\n pastDayTimeRange,\n {\n seconds: 604800,\n lower: 'now() - 7d',\n upper: null,\n sql: \"time >= now() - interval '7 days'\",\n label: 'Past 7d',\n duration: '7d',\n type: 'selectable-duration',\n windowPeriod: 1800000, // 30 min\n },\n pastThirtyDaysTimeRange,\n]\n\nexport const DEFAULT_USAGE_TIME_RANGE = pastDayTimeRange\nexport const DEFAULT_TIME_RANGE = pastHourTimeRange\n","export enum StepStatus {\n Incomplete = 'circle-thick',\n Complete = 'checkmark',\n Error = 'remove',\n}\n","// Libraries\nimport React, {useEffect, FC} from 'react'\nimport {useSelector, useDispatch} from 'react-redux'\nimport {Switch, Route} from 'react-router-dom'\nimport GetOrganizations from 'src/shared/containers/GetOrganizations'\n\n// Components\nimport {SpinnerContainer, TechnoSpinner} from '@influxdata/clockface'\n\n// Types\nimport {RemoteDataState} from 'src/types'\n\n// Actions\nimport {getFlags} from 'src/shared/thunks/flags'\n\n// Utils\nimport {activeFlags, getFlagStatus} from 'src/shared/selectors/flags'\nimport {updateReportingContext} from 'src/cloud/utils/reporting'\n\nexport const GetFlags: FC = () => {\n const dispatch = useDispatch()\n const flags = useSelector(activeFlags)\n const status = useSelector(getFlagStatus)\n\n useEffect(() => {\n if (status === RemoteDataState.NotStarted) {\n dispatch(getFlags())\n }\n }, [dispatch, status])\n\n useEffect(() => {\n updateReportingContext(\n Object.entries(flags).reduce((prev, [key, val]) => {\n prev[`flag (${key})`] = val\n\n return prev\n }, {})\n )\n }, [flags])\n\n return (\n }>\n \n \n \n \n )\n}\n","// Libraries\nimport React, {useEffect, FunctionComponent, lazy, Suspense} from 'react'\nimport {useDispatch, useSelector} from 'react-redux'\nimport {Route, Switch} from 'react-router-dom'\nimport {identify} from 'rudder-sdk-js'\n\n// Components\nimport PageSpinner from 'src/perf/components/PageSpinner'\nimport {CheckoutPage, OperatorPage} from 'src/shared/containers'\nconst NoOrgsPage = lazy(() => import('src/organizations/containers/NoOrgsPage'))\nconst NotebookTemplates = lazy(\n () => import('src/flows/components/FromTemplatePage')\n)\nconst App = lazy(() => import('src/App'))\nconst NotFound = lazy(() => import('src/shared/components/NotFound'))\n\n// Actions\nimport {getOrganizations} from 'src/organizations/actions/thunks'\nimport RouteToOrg from 'src/shared/containers/RouteToOrg'\n\n// Selectors\nimport {getAllOrgs} from 'src/resources/selectors'\nimport {\n selectCurrentIdentity,\n selectQuartzIdentityStatus,\n} from 'src/identity/selectors'\n\n// Constants\nimport {CLOUD} from 'src/shared/constants'\n\n// Utils\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\nimport {isUserOperator} from 'src/operator/utils'\nimport {updateReportingContext} from 'src/cloud/utils/reporting'\n\n// Types\nimport {PROJECT_NAME} from 'src/flows'\nimport {RemoteDataState} from 'src/types'\n\n// Thunks\nimport {getQuartzIdentityThunk} from 'src/identity/actions/thunks'\nimport {getNotebooks} from 'src/flows/actions/flowsThunks'\n\nconst GetOrganizations: FunctionComponent = () => {\n const {status: orgLoadingStatus} = useSelector(getAllOrgs)\n\n // This selector is CLOUD-only. It has default empty values in OSS.\n const {user, account, org} = useSelector(selectCurrentIdentity)\n const identityLoadingStatus = useSelector(selectQuartzIdentityStatus)\n\n const dispatch = useDispatch()\n\n useEffect(() => {\n if (orgLoadingStatus === RemoteDataState.NotStarted) {\n dispatch(getOrganizations())\n }\n }, [dispatch, orgLoadingStatus])\n\n useEffect(() => {\n if (CLOUD && identityLoadingStatus === RemoteDataState.NotStarted) {\n dispatch(getQuartzIdentityThunk())\n }\n }, [dispatch, identityLoadingStatus]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n if (\n CLOUD &&\n user.id &&\n user.email &&\n org.id &&\n account.id &&\n account.name &&\n isFlagEnabled('rudderstackReporting')\n ) {\n identify(user.id, {\n email: user.email,\n orgID: org.id,\n accountID: account.id,\n accountName: account.name,\n })\n }\n }, [user.id, user.email, org.id, account.id, account.name])\n\n useEffect(() => {\n if (CLOUD) {\n updateReportingContext({\n 'org (hide_upgrade_cta)': `${\n account.type === 'free' && account.isUpgradeable === true\n }`,\n 'org (account_type)': account.type,\n })\n }\n }, [account.type, account.isUpgradeable])\n\n useEffect(() => {\n if (CLOUD && org?.id) {\n dispatch(getNotebooks(org.id))\n }\n }, [org.id])\n\n return (\n \n }>\n {CLOUD ? (\n \n \n \n \n \n \n {CLOUD && account.isUpgradeable === true && (\n \n )}\n {CLOUD && isUserOperator(user.operatorRole) && (\n \n )}\n \n \n \n ) : (\n \n \n \n \n \n \n \n )}\n \n \n )\n}\n\nexport default GetOrganizations\n","// Libraries\nimport React, {FC, useEffect} from 'react'\nimport {connect} from 'react-redux'\nimport {RouteComponentProps} from 'react-router-dom'\n\n// Types\nimport {AppState, Organization, ResourceType} from 'src/types'\n\n// Selectors\nimport {getAll} from 'src/resources/selectors'\nimport {getOrg} from 'src/organizations/selectors'\n\ninterface StateProps {\n orgs: Organization[]\n org: {id?: string}\n}\n\ntype Props = StateProps & RouteComponentProps\n\nconst RouteToOrg: FC = ({orgs, history, org}) => {\n useEffect(() => {\n if (!orgs || !orgs.length) {\n history.push(`/no-orgs`)\n return\n }\n\n // org from local storage\n if (org && org.id) {\n history.push(`/orgs/${org.id}`)\n return\n }\n\n // else default to first org\n history.push(`/orgs/${orgs[0].id}`)\n }, [orgs, org])\n\n return <>\n}\n\nconst mstp = (state: AppState) => {\n const org = getOrg(state)\n const orgs = getAll(state, ResourceType.Orgs)\n\n return {orgs, org}\n}\n\nexport default connect(mstp)(RouteToOrg)\n","import {lazy} from 'react'\n\nexport const DataExplorerPage = lazy(\n () => import('src/dataExplorer/components/DataExplorerPage')\n)\n\nexport const TasksPage = lazy(() => import('src/tasks/containers/TasksPage'))\nexport const TaskPage = lazy(() => import('src/tasks/containers/TaskPage'))\nexport const TaskRunsPage = lazy(\n () => import('src/tasks/components/TaskRunsPage')\n)\nexport const TaskEditPage = lazy(\n () => import('src/tasks/containers/TaskEditPage')\n)\nexport const TaskImportOverlay = lazy(\n () => import('src/tasks/components/TaskImportOverlay')\n)\nexport const DashboardsIndex = lazy(\n () => import('src/dashboards/components/dashboard_index/DashboardsIndex')\n)\nexport const DashboardContainer = lazy(\n () => import('src/dashboards/components/DashboardContainer')\n)\nexport const FlowPage = lazy(() => import('src/flows/components/FlowPage'))\nexport const VersionPage = lazy(\n () => import('src/flows/components/VersionPage')\n)\nexport const BucketsIndex = lazy(\n () => import('src/buckets/containers/BucketsIndex')\n)\nexport const TokensIndex = lazy(\n () => import('src/authorizations/containers/TokensIndex')\n)\nexport const TelegrafsPage = lazy(\n () => import('src/telegrafs/containers/TelegrafsPage')\n)\nexport const ScrapersIndex = lazy(\n () => import('src/scrapers/containers/ScrapersIndex')\n)\nexport const WriteDataPage = lazy(\n () => import('src/writeData/containers/WriteDataPage')\n)\nexport const FileUploadsPage = lazy(\n () => import('src/writeData/containers/FileUploadsPage')\n)\nexport const ClientLibrariesPage = lazy(\n () => import('src/writeData/containers/ClientLibrariesPage')\n)\nexport const TelegrafPluginsPage = lazy(\n () => import('src/writeData/containers/TelegrafPluginsPage')\n)\nexport const SecretsIndex = lazy(\n () => import('src/secrets/containers/SecretsIndex')\n)\nexport const VariablesIndex = lazy(\n () => import('src/variables/containers/VariablesIndex')\n)\nexport const LabelsIndex = lazy(\n () => import('src/labels/containers/LabelsIndex')\n)\nexport const OrgProfilePage = lazy(\n () => import('src/organizations/containers/OrgProfilePage')\n)\nexport const AlertingIndex = lazy(\n () => import('src/alerting/components/AlertingIndex')\n)\nexport const AlertHistoryIndex = lazy(\n () => import('src/alerting/components/AlertHistoryIndex')\n)\nexport const CheckHistory = lazy(\n () => import('src/checks/components/CheckHistory')\n)\nexport const MembersIndex = lazy(\n () => import('src/members/containers/MembersIndex')\n)\nexport const RouteToDashboardList = lazy(\n () => import('src/dashboards/components/RouteToDashboardList')\n)\nexport const FlowsIndex = lazy(() => import('src/flows/components/FlowsIndex'))\nexport const NotFound = lazy(() => import('src/shared/components/NotFound'))\nexport const UsersPage = lazy(() => import('src/users/components/Users'))\nexport const UsagePage = lazy(() => import('src/usage/UsagePage'))\nexport const BillingPage = lazy(\n () => import('src/billing/components/BillingPage')\n)\nexport const OperatorPage = lazy(() => import('src/operator/OperatorPage'))\nexport const AccountPage = lazy(\n () => import('src/operator/account/AccountPage')\n)\nexport const UserAccountPage = lazy(() => import('src/accounts/AccountPage'))\nexport const OrgOverlay = lazy(() => import('src/operator/OrgOverlayWrapper'))\n\nexport const CheckoutPage = lazy(() => import('src/checkout/CheckoutPage'))\n\nexport const SubscriptionsLanding = lazy(\n () => import('src/writeData/subscriptions/components/SubscriptionsLanding')\n)\nexport const CreateSubscriptionForm = lazy(\n () => import('src/writeData/subscriptions/components/CreateSubscriptionPage')\n)\n\nexport const HomepageContainer = lazy(() =>\n import('src/homepageExperience/containers/HomepageContainer').then(\n module => ({default: module.HomepageContainer})\n )\n)\n\nexport const ArduinoWizard = lazy(() =>\n import('src/homepageExperience/containers/ArduinoWizard').then(module => ({\n default: module.ArduinoWizard,\n }))\n)\n\nexport const PythonWizard = lazy(() =>\n import('src/homepageExperience/containers/PythonWizard').then(module => ({\n default: module.PythonWizard,\n }))\n)\n\nexport const NodejsWizard = lazy(() =>\n import('src/homepageExperience/containers/NodejsWizard').then(module => ({\n default: module.NodejsWizard,\n }))\n)\n\nexport const GoWizard = lazy(() =>\n import('src/homepageExperience/containers/GoWizard').then(module => ({\n default: module.GoWizard,\n }))\n)\n\nexport const CliWizard = lazy(() =>\n import('src/homepageExperience/containers/CliWizard').then(module => ({\n default: module.CliWizard,\n }))\n)\n\nexport const DetailsSubscriptionPage = lazy(\n () => import('src/writeData/subscriptions/components/DetailsSubscriptionPage')\n)\n","import React, {FC, useCallback, useEffect} from 'react'\nimport {useSelector, useDispatch} from 'react-redux'\n\nimport {\n setTimeZone as setTimeZoneAction,\n setTheme as setThemeAction,\n setNavBarState as setNavbarModeAction,\n setScriptQueryBuilder as setScriptQueryBuilderAction,\n enablePresentationMode,\n disablePresentationMode,\n setFlowsCTA as setFlowsCTAAction,\n setSubscriptionsCertificateInterest as setSubscriptionsCertificateInterestAction,\n setWorkerRegistration,\n} from 'src/shared/actions/app'\nimport {\n timeZone as timeZoneFromState,\n theme as themeFromState,\n getPresentationMode as presentationModeFromState,\n scriptQueryBuilder as scriptQueryBuilderFromState,\n navbarMode as navbarModeFromState,\n getFlowsCTA,\n getSubscriptionsCertificateInterest,\n} from 'src/shared/selectors/app'\nimport {notify} from 'src/shared/actions/notifications'\nimport {PRESENTATION_MODE_ANIMATION_DELAY} from 'src/shared/constants'\nimport {presentationMode as presentationModeCopy} from 'src/shared/copy/notifications'\n\nimport {AppState, TimeZone, Theme, NavBarState, FlowsCTA} from 'src/types'\nimport {event} from 'src/cloud/utils/reporting'\n\nlet workerRegistration\nimport(\n /* webpackPreload: true */\n /* webpackChunkName: \"setup-interceptor\" */\n 'src/shared/workers/serviceWorker'\n).then(\n ({registerServiceWorker}) => (workerRegistration = registerServiceWorker())\n)\n\ninterface AppSettingContextType {\n timeZone: TimeZone\n theme: Theme\n presentationMode: boolean\n scriptQueryBuilder: boolean\n navbarMode: NavBarState\n flowsCTA: FlowsCTA\n subscriptionsCertificateInterest: boolean\n workerRegistration: Promise\n\n setTimeZone: (zone: TimeZone) => void\n setTheme: (theme: Theme) => void\n setPresentationMode: (active: boolean) => void\n setScriptQueryBuilder: (active: boolean) => void\n setNavbarMode: (mode: NavBarState) => void\n setFlowsCTA: (flowsCTA: FlowsCTA) => void\n setSubscriptionsCertificateInterest: () => void\n}\n\nconst DEFAULT_CONTEXT: AppSettingContextType = {\n timeZone: 'Local' as TimeZone,\n theme: 'dark' as Theme,\n presentationMode: false,\n scriptQueryBuilder: true,\n navbarMode: 'collapsed' as NavBarState,\n flowsCTA: {alerts: true, explorer: true, tasks: true} as FlowsCTA,\n subscriptionsCertificateInterest: false,\n workerRegistration,\n\n setTimeZone: (_zone: TimeZone) => {},\n setTheme: (_theme: Theme) => {},\n setPresentationMode: (_active: boolean) => {},\n setScriptQueryBuilder: (_active: boolean) => {},\n setNavbarMode: (_mode: NavBarState) => {},\n setFlowsCTA: (_flowsCTA: FlowsCTA) => {},\n setSubscriptionsCertificateInterest: () => {},\n}\n\nexport const AppSettingContext =\n React.createContext(DEFAULT_CONTEXT)\n\nexport const AppSettingProvider: FC = ({children}) => {\n const {\n timeZone,\n theme,\n presentationMode,\n scriptQueryBuilder,\n navbarMode,\n flowsCTA,\n subscriptionsCertificateInterest,\n } = useSelector((state: AppState) => ({\n timeZone: timeZoneFromState(state),\n theme: themeFromState(state),\n presentationMode: presentationModeFromState(state),\n scriptQueryBuilder: scriptQueryBuilderFromState(state),\n navbarMode: navbarModeFromState(state),\n flowsCTA: getFlowsCTA(state),\n subscriptionsCertificateInterest:\n getSubscriptionsCertificateInterest(state),\n }))\n const dispatch = useDispatch()\n\n const setTimeZone = useCallback(\n (_timeZone: TimeZone) => {\n dispatch(setTimeZoneAction(_timeZone))\n },\n [dispatch]\n )\n const setTheme = useCallback(\n (_theme: Theme) => {\n dispatch(setThemeAction(_theme))\n },\n [dispatch]\n )\n const setPresentationMode = useCallback(\n (_active: boolean) => {\n if (_active) {\n setTimeout(() => {\n dispatch(enablePresentationMode())\n dispatch(notify(presentationModeCopy()))\n }, PRESENTATION_MODE_ANIMATION_DELAY)\n } else {\n dispatch(disablePresentationMode())\n }\n },\n [dispatch]\n )\n const setScriptQueryBuilder = useCallback(\n (_active: boolean) => {\n dispatch(setScriptQueryBuilderAction(_active))\n },\n [dispatch]\n )\n const setNavbarMode = useCallback(\n (_mode: NavBarState) => {\n dispatch(setNavbarModeAction(_mode))\n },\n [dispatch]\n )\n const setFlowsCTA = useCallback(\n (_flowsCTA: FlowsCTA) => {\n dispatch(setFlowsCTAAction(_flowsCTA))\n },\n [dispatch]\n )\n const setSubscriptionsCertificateInterest = useCallback(() => {\n event('certificate auth interest', {}, {feature: 'subscriptions'})\n dispatch(setSubscriptionsCertificateInterestAction())\n }, [dispatch])\n\n useEffect(() => {\n dispatch(setWorkerRegistration(workerRegistration))\n }, [workerRegistration])\n\n return (\n \n {children}\n \n )\n}\n","// Libraries\nimport React, {\n FC,\n createContext,\n useEffect,\n useMemo,\n useRef,\n useContext,\n} from 'react'\nimport {useDispatch} from 'react-redux'\nimport {createLocalStorageStateHook} from 'use-local-storage-state'\nimport {normalize} from 'normalizr'\n\nimport {arrayOfBuckets} from 'src/schemas'\nimport {notify} from 'src/shared/actions/notifications'\nimport {setBuckets} from 'src/buckets/actions/creators'\n\n// Contexts\nimport {CLOUD} from 'src/shared/constants'\nimport {\n measurementSchemaAdditionSuccessful,\n measurementSchemaAdditionFailed,\n} from 'src/shared/copy/notifications'\n\n// Types\nimport {Bucket, BucketEntities, RemoteDataState} from 'src/types'\nimport {QueryScope} from 'src/shared/contexts/query'\nimport {PipeContext} from 'src/flows/context/pipe'\n\nlet MeasurementSchemaCreateRequest = null\nif (CLOUD) {\n MeasurementSchemaCreateRequest =\n require('src/client/generatedRoutes').MeasurementSchemaCreateRequest\n}\n\nexport interface ExtendedBucket extends Bucket {\n schemas: typeof MeasurementSchemaCreateRequest[]\n}\n\ninterface BucketContextType {\n loading: RemoteDataState\n buckets: Bucket[]\n addBucket: (_: Bucket) => void\n createBucket: (_: Bucket) => void\n refresh: () => void\n}\n\nconst DEFAULT_CONTEXT: BucketContextType = {\n loading: RemoteDataState.NotStarted,\n buckets: [],\n addBucket: (_: Bucket) => {},\n createBucket: (_: Bucket) => {},\n refresh: () => {},\n}\n\nexport const BucketContext = createContext(DEFAULT_CONTEXT)\n\nconst useLocalStorageState = createLocalStorageStateHook('buckets', {})\n\ninterface Props {\n omitSampleData?: boolean\n scope: QueryScope\n}\n\nexport const BucketProvider: FC = ({\n children,\n omitSampleData = false,\n scope,\n}) => {\n const cacheKey = `${scope.region};;<${scope.org}>`\n const [bucketCache, setBucketCache] = useLocalStorageState()\n const {data} = useContext(PipeContext)\n const dispatch = useDispatch()\n const buckets = bucketCache[cacheKey]?.buckets ?? []\n const lastFetch = bucketCache[cacheKey]?.lastFetch ?? 0\n const loading = bucketCache[cacheKey]?.loading ?? RemoteDataState.NotStarted\n const controller = useRef(null)\n\n useEffect(() => {\n if (controller.current) {\n return () => {\n try {\n // Cancelling active query so that there's no memory leak in this component when unmounting\n controller.current.abort()\n } catch (e) {\n // Do nothing\n }\n }\n }\n }, [controller])\n\n // TODO: load bucket creation limits on org change\n // expose limits to frontend\n\n const updateCache = (update: any): void => {\n bucketCache[cacheKey] = {\n ...bucketCache[cacheKey],\n ...update,\n }\n setBucketCache({\n ...bucketCache,\n })\n }\n\n const fetchBuckets = () => {\n if (controller.current) {\n controller.current.abort()\n controller.current = null\n } else {\n controller.current = new AbortController()\n }\n\n updateCache({\n loading: RemoteDataState.Loading,\n })\n\n const headers = {\n 'Content-Type': 'application/json',\n 'Accept-Encoding': 'gzip',\n }\n\n if (scope?.token) {\n headers['Authorization'] = `Token ${scope.token}`\n }\n\n fetch(\n `${scope?.region}/api/v2/buckets?limit=${\n CLOUD ? -1 : 100\n }&${new URLSearchParams({orgID: scope?.org})}`,\n {\n method: 'GET',\n headers,\n signal: controller.current?.signal,\n }\n )\n .then(response => {\n return response.json()\n })\n .then(response => {\n controller.current = null\n const base: any = {\n system: [],\n user: [],\n }\n\n const bucks = response.buckets.reduce((acc, curr) => {\n if (curr.type === 'system') {\n acc.system.push(curr)\n } else {\n acc.user.push(curr)\n }\n return acc\n }, base)\n\n bucks.system.sort((a, b) =>\n `${a.name}`.toLowerCase().localeCompare(`${b.name}`.toLowerCase())\n )\n bucks.user.sort((a, b) =>\n `${a.name}`.toLowerCase().localeCompare(`${b.name}`.toLowerCase())\n )\n\n const _buckets = [...bucks.user, ...bucks.system]\n updateCache({\n loading: RemoteDataState.Done,\n lastFetch: Date.now(),\n buckets: _buckets,\n })\n\n // keep the redux store in sync\n dispatch(\n setBuckets(\n RemoteDataState.Done,\n normalize(\n _buckets.filter(b => b.type !== 'sample'),\n arrayOfBuckets\n )\n )\n )\n })\n .catch(error => {\n console.error({error})\n controller.current = null\n updateCache({\n loading: RemoteDataState.Error,\n })\n })\n }\n\n // make sure to fetch buckets on mount\n useEffect(() => {\n if (Date.now() - lastFetch > 12 * 60 * 60 * 1000) {\n fetchBuckets()\n } else if (loading === RemoteDataState.NotStarted) {\n fetchBuckets()\n }\n\n return () => {\n // reset the lastFetch to trigger a fresh fetch on mount\n window.localStorage.setItem('buckets', JSON.stringify({}))\n }\n }, [])\n\n const createBucket = (bucket: ExtendedBucket) => {\n bucket.orgID = scope.org\n let schemas = []\n if (bucket.schemas && bucket.schemas.length) {\n bucket.schemaType = 'explicit'\n schemas = bucket.schemas\n } else {\n bucket.schemaType = 'implicit'\n }\n\n delete bucket.schemas\n\n const headers = {\n 'Content-Type': 'application/json',\n 'Accept-Encoding': 'gzip',\n }\n\n if (scope?.token) {\n headers['Authorization'] = `Token ${scope.token}`\n }\n\n fetch(`${scope?.region}/api/v2/buckets`, {\n method: 'POST',\n headers,\n body: JSON.stringify(bucket),\n })\n .then(response => {\n return response.json()\n })\n .then(response => {\n addBucket(response)\n\n return Promise.all(\n schemas.map(schema =>\n fetch(\n `${scope?.region}/api/v2/buckets/${response.id}/schema/measurements`,\n {\n method: 'POST',\n headers,\n body: JSON.stringify(schema),\n }\n ).then(resp => {\n if (resp.status !== 201) {\n dispatch(\n notify(\n measurementSchemaAdditionFailed(response.name, schema.name)\n )\n )\n } else {\n dispatch(\n notify(\n measurementSchemaAdditionSuccessful(\n response.name,\n schema.name\n )\n )\n )\n }\n })\n )\n )\n })\n }\n\n const addBucket = (bucket: Bucket) => {\n const bucks = buckets.reduce(\n (acc, curr) => {\n if (!acc[curr.type]) {\n acc[curr.type] = []\n }\n acc[curr.type].push(curr)\n return acc\n },\n {[bucket.type]: [bucket]}\n )\n\n bucks.system.sort((a, b) =>\n `${a.name}`.toLowerCase().localeCompare(`${b.name}`.toLowerCase())\n )\n bucks.user.sort((a, b) =>\n `${a.name}`.toLowerCase().localeCompare(`${b.name}`.toLowerCase())\n )\n\n updateCache({\n buckets: [...bucks.user, ...bucks.system],\n })\n\n refresh()\n }\n\n const refresh = () => {\n fetchBuckets()\n }\n\n const outBuckets = useMemo(\n () =>\n buckets\n .filter(b => b.type !== 'sample')\n .concat(\n omitSampleData\n ? []\n : [\n {\n type: 'sample',\n name: 'Air Sensor Data',\n id: 'airSensor',\n },\n {\n type: 'sample',\n name: 'Coinbase bitcoin price',\n id: 'bitcoin',\n },\n {\n type: 'sample',\n name: 'NOAA National Buoy Data',\n id: 'noaa',\n },\n {\n type: 'sample',\n name: 'USGS Earthquakes',\n id: 'usgs',\n },\n ]\n ),\n [buckets]\n )\n\n return useMemo(\n () => (\n \n {children}\n \n ),\n [data.bucket, loading, outBuckets]\n )\n}\n","export enum InjectionType {\n OnOwnLine = 'onOwnLine',\n SameLine = 'sameLine',\n}\n\nexport interface InjectionPosition {\n row: number\n column: number\n shouldStartWithNewLine: boolean\n shouldEndInNewLine: boolean\n}\n\nexport interface InjectionOptions {\n header?: string | null\n text: string\n type: InjectionType\n triggerSuggest?: boolean\n cbParentOnUpdateText: (t: string) => void\n}\n\nexport function calcInjectionPosition(\n editor,\n type: InjectionType\n): InjectionPosition {\n const {lineNumber, column: col} = editor.getPosition()\n let row = lineNumber\n let column = col\n\n const queryText = editor.getModel().getValue()\n const split = queryText.split('\\n')\n const getCurrentLineText = () => {\n // row is not zero indexed in monaco editor. 1..N\n return (split[row - 1] || split[split.length - 1]).trimEnd()\n }\n\n let currentLineText = getCurrentLineText()\n // column is not zero indexed in monnao editor. 1..N\n let textAheadOfCursor = currentLineText.slice(0, column - 1).trim()\n let textBehindCursor = currentLineText.slice(column - 1).trim()\n\n // if cursor has text in front of it, and should be onOwnRow\n if (type == InjectionType.OnOwnLine && textAheadOfCursor) {\n row++\n column = 1\n }\n // edge case for when user toggles to the script editor\n // this defaults the cursor to the initial position (top-left, 1:1 position)\n const [currentRange] = editor.getVisibleRanges()\n if (row === 1 && column === 1) {\n row = currentRange.endLineNumber + 1\n }\n\n if (row !== lineNumber) {\n currentLineText = getCurrentLineText()\n textAheadOfCursor = currentLineText.slice(0, column - 1).trim()\n textBehindCursor = currentLineText.slice(column - 1).trim()\n }\n\n let shouldEndInNewLine = false\n // if cursor has text behind it, and should be onOwnRow\n if (type == InjectionType.OnOwnLine && textBehindCursor) {\n shouldEndInNewLine = true\n }\n\n const cursorInMiddleOfText = textAheadOfCursor && textBehindCursor\n if (type == InjectionType.OnOwnLine && cursorInMiddleOfText) {\n row++\n shouldEndInNewLine = true\n }\n if (type == InjectionType.OnOwnLine) {\n column = 1\n }\n\n // if we asked to insert on a row out-of-range\n // then need to manually append newline to front of row\n const shouldStartWithNewLine = row > currentRange.endLineNumber\n\n return {row, column, shouldStartWithNewLine, shouldEndInNewLine}\n}\n\nexport const moveCursorAndTriggerSuggest = (\n editor,\n {row, column, shouldStartWithNewLine, shouldEndInNewLine},\n hasHeader,\n textLength\n) => {\n let columnOffset = 1\n if (shouldStartWithNewLine) {\n columnOffset++\n }\n if (shouldEndInNewLine) {\n columnOffset++\n }\n setTimeout(() => {\n editor.focus()\n editor.setPosition({\n lineNumber: hasHeader ? row + 1 : row,\n column: column + textLength - columnOffset,\n })\n editor.trigger('', 'editor.action.triggerSuggest', {})\n }, 0)\n}\n","import {FluxFunction} from 'src/types/shared'\nimport {CLOUD} from 'src/shared/constants'\nimport {FROM, UNION} from 'src/shared/constants/fluxFunctions'\n\nexport const isPipeTransformation = (func: FluxFunction) => {\n if (CLOUD) {\n return func.fluxType.startsWith('<-', 1)\n }\n return !['from', 'union'].includes(func.name)\n}\n\nexport const functionRequiresNewLine = (funcName: string): boolean => {\n switch (funcName) {\n case FROM.name:\n case UNION.name: {\n return true\n }\n default:\n return false\n }\n}\n","import React, {FC, createContext, useState, useCallback} from 'react'\nimport {EditorType, FluxFunction, FluxToolbarFunction} from 'src/types'\n\n// Helpers\nimport {\n InjectionType,\n InjectionOptions,\n calcInjectionPosition,\n moveCursorAndTriggerSuggest,\n} from 'src/shared/contexts/editor/injection'\nimport {generateImport} from 'src/shared/contexts/editor/insertFunction'\nimport {\n isPipeTransformation,\n functionRequiresNewLine,\n} from 'src/shared/utils/fluxFunctions'\nimport {getFluxExample} from 'src/shared/utils/fluxExample'\n\n// LSP\nimport {ConnectionManager} from 'src/languageSupport/languages/flux/lsp/connection'\n\n// Utils\nimport {CLOUD} from 'src/shared/constants'\n\nexport interface EditorContextType {\n editor: EditorType | null\n setEditor: (\n editor: EditorType,\n conn: React.MutableRefObject\n ) => void\n inject: (options: InjectionOptions) => void\n injectFunction: (fn, cbToParent) => void\n injectVariable: (variableName, cbToParent) => void\n}\n\nconst DEFAULT_CONTEXT: EditorContextType = {\n editor: null,\n setEditor: _ => {},\n inject: _ => {},\n injectFunction: (_, __) => {},\n injectVariable: (_, __) => {},\n}\n\nexport const EditorContext = createContext(DEFAULT_CONTEXT)\n\nexport const EditorProvider: FC = ({children}) => {\n const [editor, setEditorOnState] = useState(null)\n\n const setEditor = ed => {\n setEditorOnState(ed)\n }\n\n const inject = useCallback(\n (options: InjectionOptions) => {\n if (!editor) {\n return {}\n }\n\n const {\n header,\n text: initT,\n type,\n triggerSuggest,\n cbParentOnUpdateText,\n } = options\n const injectionPosition = calcInjectionPosition(editor, type)\n const {\n row,\n column: initC,\n shouldStartWithNewLine,\n shouldEndInNewLine,\n } = injectionPosition\n\n let text = initT.trimRight()\n if (shouldStartWithNewLine) {\n text = `\\n${text}`\n }\n if (shouldEndInNewLine) {\n text = `${text}\\n`\n }\n\n const column = type == InjectionType.OnOwnLine ? 1 : initC\n const range = new monaco.Range(row, column, row, column)\n const edits = [\n {\n range,\n text,\n },\n ]\n\n const addHeader = header && !editor.getModel().getValue().includes(header)\n if (addHeader) {\n edits.unshift({\n range: new monaco.Range(1, 1, 1, 1),\n text: `${header}\\n`,\n })\n }\n\n editor.executeEdits('', edits)\n cbParentOnUpdateText(editor.getValue())\n\n if (triggerSuggest) {\n moveCursorAndTriggerSuggest(\n editor,\n injectionPosition,\n addHeader,\n text.length\n )\n }\n },\n [editor]\n )\n\n const injectFunction = useCallback(\n (\n rawFn: FluxToolbarFunction | FluxFunction,\n cbParentOnUpdateText: (t: string) => void\n ): void => {\n const fn = CLOUD\n ? getFluxExample(rawFn as FluxFunction)\n : (rawFn as FluxFunction)\n\n const text = isPipeTransformation(fn)\n ? ` |> ${fn.example.trimRight()}`\n : `${fn.example.trimRight()}`\n\n const header = generateImport(fn as FluxFunction, editor.getValue())\n\n const type =\n isPipeTransformation(fn) || functionRequiresNewLine(fn.name)\n ? InjectionType.OnOwnLine\n : InjectionType.SameLine\n\n const options = {\n text,\n type,\n header,\n triggerSuggest: true,\n cbParentOnUpdateText,\n }\n inject(options)\n },\n [inject, editor]\n )\n\n const injectVariable = useCallback(\n (variableName: string, cbToParent: (t: string) => void) => {\n if (!editor) {\n return null\n }\n\n const options = {\n text: `v.${variableName}`,\n type: InjectionType.SameLine,\n triggerSuggest: false,\n cbParentOnUpdateText: cbToParent,\n }\n inject(options)\n },\n [editor, inject]\n )\n\n return (\n \n {children}\n \n )\n}\n\nexport {\n InjectionType,\n InjectionOptions,\n calcInjectionPosition,\n moveCursorAndTriggerSuggest,\n}\n","// Constants\nimport {CLOUD} from 'src/shared/constants'\n\n// Types\nimport {FluxFunction} from 'src/types/shared'\n\nexport const generateImport = (func: FluxFunction, script: string): string => {\n let importStatement = `import \"${func.package}\"`\n\n if (CLOUD) {\n // if package is nested, use func.path to import.\n if (func.path.includes('/')) {\n importStatement = `import \"${func.path}\"`\n }\n }\n\n if (\n !func.package ||\n func.package === 'universe' ||\n script.includes(importStatement)\n ) {\n return null\n }\n\n return importStatement\n}\n","import React, {FC, useEffect, useRef} from 'react'\nimport {useDispatch} from 'react-redux'\nimport {useSelector} from 'react-redux'\nimport {nanoid} from 'nanoid'\n\nimport {getOrg} from 'src/organizations/selectors'\nimport {fromFlux} from '@influxdata/giraffe'\nimport {FluxResult} from 'src/types/flows'\n\n// Query Helpers\nimport {\n simplify,\n updateWindowPeriod,\n sqlAsFlux,\n} from 'src/shared/contexts/query/preprocessing'\nimport {trimPartialLines} from 'src/shared/contexts/query/postprocessing'\n\n// Constants\nimport {FLUX_RESPONSE_BYTES_LIMIT} from 'src/shared/constants'\nimport {\n RATE_LIMIT_ERROR_STATUS,\n RATE_LIMIT_ERROR_TEXT,\n GATEWAY_TIMEOUT_STATUS,\n REQUEST_TIMEOUT_STATUS,\n} from 'src/cloud/constants'\nimport {getFlagValue} from 'src/shared/utils/featureFlag'\nimport {notify} from 'src/shared/actions/notifications'\nimport {resultTooLarge} from 'src/shared/copy/notifications'\n\n// Types\nimport {CancellationError, OwnBucket} from 'src/types'\nimport {RunQueryResult} from 'src/shared/apis/query'\nimport {event} from 'src/cloud/utils/reporting'\nimport {PROJECT_NAME} from 'src/flows'\nimport {LanguageType} from 'src/dataExplorer/components/resources'\n\ninterface CancelMap {\n [key: string]: () => void\n}\n\nexport enum OverrideMechanism {\n Inline = 'inject-variables-into-script',\n Extern = 'AST',\n Params = 'JSON', // TODO: code is incorrect & will need debugging\n}\n\nexport interface QueryOptions {\n overrideMechanism?: OverrideMechanism\n language?: LanguageType\n bucket?: OwnBucket\n rawBlob?: boolean\n sqlQueryModifiers?: SqlQueryModifiers\n}\n\nexport interface SqlQueryModifiers {\n prepend?: string\n append?: string\n}\n\nexport interface QueryScope {\n region?: string\n org?: string\n token?: string\n vars?: Record\n params?: Record\n task?: Record\n}\n\ninterface RequestDialect {\n annotations: string[]\n}\n\ninterface RequestBody {\n query: string\n dialect?: RequestDialect\n options?: Record\n extern?: any\n}\n\nexport interface QueryContextType {\n basic: (text: string, override?: QueryScope, options?: QueryOptions) => any\n query: (\n text: string,\n override?: QueryScope,\n options?: QueryOptions\n ) => Promise\n cancel: (id?: string) => void\n}\n\nexport const DEFAULT_CONTEXT: QueryContextType = {\n basic: (_: string, __: QueryScope, ___: QueryOptions) => {},\n query: (_: string, __: QueryScope, ___: QueryOptions) =>\n Promise.resolve({} as FluxResult),\n cancel: (_?: string) => {},\n}\n\nexport const QueryContext =\n React.createContext(DEFAULT_CONTEXT)\n\nconst buildQueryRequest = (\n org,\n text: string,\n override: QueryScope,\n options?: QueryOptions\n) => {\n const mechanism = options?.overrideMechanism ?? OverrideMechanism.Extern\n const language = options?.language ?? LanguageType.FLUX\n\n let query = text\n if (language == LanguageType.SQL) {\n query = sqlAsFlux(text, options?.bucket, options?.sqlQueryModifiers)\n } else if (mechanism === OverrideMechanism.Inline) {\n query = simplify(text, override?.vars ?? {}, override?.params ?? {})\n }\n\n const orgID = override?.org || org.id\n\n const url = `${\n override?.region || window.location.origin\n }/api/v2/query?${new URLSearchParams({orgID})}`\n\n const headers = {\n 'Content-Type': 'application/json',\n 'Accept-Encoding': 'gzip',\n }\n\n if (override?.token) {\n headers['Authorization'] = `Token ${override.token}`\n }\n\n const body: RequestBody = {\n query,\n dialect: {annotations: ['group', 'datatype', 'default']},\n }\n\n if (mechanism === OverrideMechanism.Extern) {\n const options = updateWindowPeriod(query, override, 'ast')\n if (options && Object.keys(options).length) {\n body.extern = options\n }\n }\n if (mechanism === OverrideMechanism.Params) {\n const options = updateWindowPeriod(query, override, 'json')\n if (options && Object.keys(options).length) {\n body.options = options\n }\n }\n\n return {url, body, headers}\n}\n\nconst handleQueryResponse = (response, cb) => {\n if (response.status === 200) {\n return cb(response)\n }\n if (response.status === RATE_LIMIT_ERROR_STATUS) {\n const retryAfter = response.headers.get('Retry-After')\n\n return Promise.resolve({\n type: 'RATE_LIMIT_ERROR',\n retryAfter: retryAfter ? parseInt(retryAfter) : null,\n message: RATE_LIMIT_ERROR_TEXT,\n })\n }\n\n return response.text().then(text => {\n try {\n const json = JSON.parse(text)\n const message = json.message || json.error\n const code = json.code\n\n switch (code) {\n case REQUEST_TIMEOUT_STATUS:\n event('query timeout')\n break\n case GATEWAY_TIMEOUT_STATUS:\n event('gateway timeout')\n break\n default:\n event('query error')\n }\n\n return {type: 'UNKNOWN_ERROR', message, code}\n } catch {\n return {\n type: 'UNKNOWN_ERROR',\n message: 'Failed to execute Flux query',\n }\n }\n })\n}\n\nexport const QueryProvider: FC = ({children}) => {\n const dispatch = useDispatch()\n const pending = useRef({} as CancelMap)\n const org = useSelector(getOrg)\n\n // this one cancels all pending queries when you\n // navigate away from the query provider\n useEffect(() => {\n return () => {\n Object.values(pending.current).forEach(c => c())\n }\n }, [])\n\n const runQuery = ({url, headers, body}, handleSuccess) => {\n const id = nanoid()\n const controller = new AbortController()\n\n const promise = fetch(url, {\n method: 'POST',\n headers,\n body: JSON.stringify(body),\n signal: controller.signal,\n })\n .then((res: Response): Promise => {\n return handleQueryResponse(res, handleSuccess)\n })\n .catch(e => {\n if (e.name === 'AbortError') {\n return Promise.reject(new CancellationError())\n }\n\n return Promise.reject(e)\n })\n\n pending.current[id] = () => {\n controller.abort()\n }\n\n return {\n id,\n promise,\n cancel: () => {\n cancel(id)\n },\n }\n }\n\n const basic = (text: string, override: QueryScope, options: QueryOptions) => {\n const handleUiParsing = async response => {\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n\n let csv = ''\n let bytesRead = 0\n let didTruncate = false\n let read = await reader.read()\n\n let BYTE_LIMIT =\n getFlagValue('increaseCsvLimit') ?? FLUX_RESPONSE_BYTES_LIMIT\n\n if (!window.location.pathname.includes(PROJECT_NAME.toLowerCase())) {\n BYTE_LIMIT =\n getFlagValue('dataExplorerCsvLimit') ?? FLUX_RESPONSE_BYTES_LIMIT\n }\n\n while (!read.done) {\n const text = decoder.decode(read.value)\n\n bytesRead += read.value.byteLength\n\n if (bytesRead > BYTE_LIMIT) {\n csv += trimPartialLines(text)\n didTruncate = true\n break\n } else {\n csv += text\n read = await reader.read()\n }\n }\n\n reader.cancel()\n\n return {\n type: 'SUCCESS',\n csv,\n bytesRead,\n didTruncate,\n }\n }\n\n const handleRawBlob = async response => {\n const data = await response.blob()\n return {\n type: 'SUCCESS',\n csv: data,\n bytesRead: data.size,\n didTruncate: false,\n }\n }\n\n const returnRaw = options?.rawBlob ?? false\n\n return runQuery(\n buildQueryRequest(org, text, override, options),\n returnRaw ? handleRawBlob : handleUiParsing\n )\n }\n\n const cancel = (queryID?: string) => {\n if (!queryID) {\n Object.values(pending.current).forEach(c => c())\n pending.current = {}\n return\n }\n\n if (!pending.current.hasOwnProperty(queryID)) {\n return\n }\n\n pending.current[queryID]()\n\n delete pending.current[queryID]\n }\n\n const query = (\n text: string,\n override: QueryScope,\n options: QueryOptions\n ): Promise => {\n const result = basic(text, override, options)\n\n const promise: any = result.promise.then(async raw => {\n if (raw.type !== 'SUCCESS') {\n throw new Error(raw.message)\n }\n if (raw.didTruncate) {\n dispatch(notify(resultTooLarge(raw.bytesRead)))\n }\n const parsed = await fromFlux(raw.csv)\n\n return {\n source: text,\n parsed,\n error: null,\n truncated: raw.didTruncate,\n bytes: raw.bytesRead,\n } as FluxResult\n })\n\n promise.cancel = result.cancel\n return promise\n }\n\n return (\n \n {children}\n \n )\n}\n\nexport default QueryProvider\n","/*\n Given an arbitrary text chunk of a Flux CSV, trim partial lines off of the end\n of the text.\n\n For example, given the following partial Flux response,\n\n r,baz,3\n foo,bar,baz,2\n foo,bar,b\n\n we want to trim the last incomplete line, so that the result is\n\n r,baz,3\n foo,bar,baz,2\n\n*/\nexport const trimPartialLines = (partialResp: string): string => {\n let i = partialResp.length - 1\n\n while (partialResp[i] !== '\\n') {\n if (i <= 0) {\n return partialResp\n }\n\n i -= 1\n }\n\n return partialResp.slice(0, i + 1)\n}\n","import {\n parse,\n format_from_js_file,\n} from 'src/languageSupport/languages/flux/lspUtils'\n\nimport {propertyTime} from 'src/shared/utils/getMinDurationFromAST'\nimport {isFlagEnabled} from 'src/shared/utils/featureFlag'\n\n// Types and Constants\nimport {SELECTABLE_TIME_RANGES} from 'src/shared/constants/timeRanges'\nimport {File, OwnBucket} from 'src/types'\nimport {QueryScope, SqlQueryModifiers} from 'src/shared/contexts/query'\n\nconst DESIRED_POINTS_PER_GRAPH = 360\nconst FALLBACK_WINDOW_PERIOD = 15000\n\n// Finds all instances of nodes that match with the test function\n// and returns them as an array\nexport const find = (node: File, test, acc = []) => {\n if (!node) {\n return acc\n }\n\n if (test(node)) {\n acc.push(node)\n }\n\n Object.values(node).forEach(val => {\n if (Array.isArray(val)) {\n val.forEach(_val => {\n find(_val, test, acc)\n })\n } else if (typeof val === 'object') {\n find(val, test, acc)\n }\n })\n\n return acc\n}\n\n// Removes all instances of nodes that match with the test function\n// and returns the nodes that were returned as an array\nexport const remove = (node: File, test, acc = []) => {\n if (!node) {\n return acc\n }\n\n Object.entries(node).forEach(([key, val]) => {\n if (Array.isArray(val)) {\n let ni = 0\n while (ni < val.length) {\n if (test(val[ni])) {\n acc.push(val[ni])\n val.splice(ni, 1)\n continue\n }\n remove(val[ni], test, acc)\n ni++\n }\n } else if (typeof val === 'object') {\n if (val && test(val)) {\n delete node[key]\n } else {\n remove(val, test, acc)\n }\n }\n })\n\n return acc\n}\n\nconst _addWindowPeriod = (ast, optionAST): void => {\n const NOW = Date.now()\n\n const queryRanges = find(\n ast,\n node =>\n node?.callee?.type === 'Identifier' && node?.callee?.name === 'range'\n ).map(node => {\n return (node.arguments[0]?.properties || []).reduce(\n (acc, curr) => {\n if (curr.key.name === 'start') {\n acc.start = propertyTime(ast, curr.value, NOW)\n }\n\n if (curr.key.name === 'stop') {\n acc.stop = propertyTime(ast, curr.value, NOW)\n }\n\n return acc\n },\n {\n start: '',\n stop: NOW,\n }\n )\n })\n\n const windowPeriod = find(\n optionAST,\n node => node?.type === 'Property' && node?.key?.name === 'windowPeriod'\n )\n\n if (!queryRanges.length) {\n windowPeriod.forEach(node => {\n node.value = {\n type: 'DurationLiteral',\n values: [{magnitude: FALLBACK_WINDOW_PERIOD, unit: 'ms'}],\n }\n })\n\n return\n }\n\n const starts = queryRanges.map(t => t.start)\n const stops = queryRanges.map(t => t.stop)\n const cartesianProduct = starts.map(start => stops.map(stop => [start, stop]))\n\n const durations = []\n .concat(...cartesianProduct)\n .map(([start, stop]) => stop - start)\n .filter(d => d > 0)\n\n const queryDuration = Math.min(...durations)\n const foundDuration = SELECTABLE_TIME_RANGES.find(\n tr => tr.seconds * 1000 === queryDuration\n )\n\n if (foundDuration) {\n windowPeriod.forEach(node => {\n node.value = {\n type: 'DurationLiteral',\n values: [{magnitude: foundDuration.windowPeriod, unit: 'ms'}],\n }\n })\n\n return\n }\n\n windowPeriod.forEach(node => {\n node.value = {\n type: 'DurationLiteral',\n values: [\n {\n magnitude: Math.round(queryDuration / DESIRED_POINTS_PER_GRAPH),\n unit: 'ms',\n },\n ],\n }\n })\n}\n\nconst joinOption = (\n ast: any,\n optionName: string,\n defaults: Record = {}\n) => {\n // remove and join duplicate options declared in the query\n const joinedOption = remove(\n ast,\n node =>\n node.type === 'OptionStatement' && node.assignment.id.name === optionName\n ).reduce((acc, curr) => {\n // eslint-disable-next-line no-extra-semi\n ;(curr.assignment?.init?.properties || []).reduce((_acc, _curr) => {\n if (_curr.key?.name && _curr.value?.location?.source) {\n _acc[_curr.key.name] = _curr.value.location.source\n }\n\n return _acc\n }, acc)\n\n return acc\n }, defaults)\n\n const optionVals = Object.entries(joinedOption)\n .map(([k, v]) => `${k}: ${v}`)\n .join(',\\n')\n if (!optionVals.length) {\n return null\n }\n\n return isFlagEnabled('fastFlows')\n ? parseQuery(`option ${optionName} = {\\n${optionVals}\\n}\\n`)\n : parse(`option ${optionName} = {\\n${optionVals}\\n}\\n`)\n}\n\nexport const simplify = (text, vars = {}, params = {}) => {\n try {\n const ast = isFlagEnabled('fastFlows') ? parseQuery(text) : parse(text)\n\n // find all `v.varname` references and apply\n // their default value from `vars`\n // filtering this way prevents flooding the query with all\n // variable definitions on accident and simplifies the filtering\n // logic required to support that by centralizing it here\n const referencedVars = find(\n ast,\n node => node?.type === 'MemberExpression' && node?.object?.name === 'v'\n )\n .map(node => node.property.name)\n .reduce((acc, curr) => {\n acc[curr] = vars[curr]\n return acc\n }, {})\n\n const variableOption = joinOption(ast, 'v', referencedVars)\n\n if (variableOption) {\n ast.body.unshift(variableOption.body[0])\n }\n\n // load in windowPeriod at the last second, because it needs to self reference all the things\n if (referencedVars.hasOwnProperty('windowPeriod')) {\n _addWindowPeriod(ast, variableOption)\n }\n\n // give the same treatment to parameters\n const referencedParams = find(\n ast,\n node =>\n node?.type === 'MemberExpression' && node?.object?.name === 'param'\n )\n .map(node => node.property.name)\n .reduce((acc, curr) => {\n acc[curr] = params[curr]\n return acc\n }, {})\n\n const paramOption = joinOption(ast, 'param', referencedParams)\n\n if (paramOption) {\n ast.body.unshift(paramOption.body[0])\n }\n\n // Join together any duplicate task options\n const taskOption = joinOption(ast, 'task')\n if (taskOption) {\n ast.body.unshift(taskOption.body[0])\n }\n\n // turn it back into a query\n return format_from_js_file(ast)\n } catch {\n return ''\n }\n}\n\nexport const parseQuery = (() => {\n const qs = {}\n\n return q => {\n const key = btoa(q)\n if (!qs[key]) {\n qs[key] = parse(q)\n }\n\n return qs[key]\n }\n})()\n\nexport const updateWindowPeriod = (\n query: string,\n override: QueryScope = {},\n mode: 'json' | 'ast' = 'ast'\n) => {\n const options: Record = {}\n\n if (Object.keys(override?.vars ?? {}).length) {\n options.v = override.vars\n }\n if (Object.keys(override?.params ?? {}).length) {\n options.params = override.params\n }\n if (Object.keys(override?.task ?? {}).length) {\n options.task = override.task\n }\n\n const optionTexts = Object.entries(options)\n .map(([k, v]) => {\n const vals = Object.entries(v).map(([_k, _v]) => ` ${_k}: ${_v}`)\n return `option ${k} = {${vals.join(',\\n')}}`\n })\n .join('\\n\\n')\n\n const queryAST = parse(query)\n let optionAST = parse(optionTexts)\n\n // only run this if the query need a windowPeriod\n if (\n !find(\n queryAST,\n node =>\n node?.type === 'MemberExpression' &&\n node?.object?.name === 'v' &&\n node?.property?.name === 'windowPeriod'\n ).length\n ) {\n if (mode === 'ast') {\n return optionAST\n }\n\n return options\n } else if (isFlagEnabled('dontSolveWindowPeriod')) {\n if (options?.v?.timeRangeStart && options?.v?.timeRangeStop) {\n const NOW = Date.now()\n const range = find(\n optionAST,\n node =>\n node?.type === 'OptionStatement' && node?.assignment?.id?.name === 'v'\n ).reduce(\n (acc, curr) => {\n acc.start =\n find(\n curr,\n n => n.type === 'Property' && n?.key?.name === 'timeRangeStart'\n )[0]?.value ?? acc.start\n\n acc.stop =\n find(\n curr,\n n => n.type === 'Property' && n?.key?.name === 'timeRangeStop'\n )[0]?.value ?? acc.stop\n\n return acc\n },\n {\n start: null,\n stop: null,\n }\n )\n const duration =\n propertyTime(queryAST, range.stop, NOW) -\n propertyTime(queryAST, range.start, NOW)\n const foundDuration = SELECTABLE_TIME_RANGES.find(\n tr => tr.seconds * 1000 === duration\n )\n\n if (foundDuration) {\n options.v.windowPeriod = `${foundDuration.windowPeriod} ms`\n } else {\n options.v.windowPeriod = `${Math.round(\n duration / DESIRED_POINTS_PER_GRAPH\n )} ms`\n }\n } else {\n options.v.windowPeriod = `${FALLBACK_WINDOW_PERIOD} ms`\n }\n\n // write the mutations back out into the AST\n optionAST = parse(\n Object.entries(options)\n .map(([k, v]) => {\n const vals = Object.entries(v).map(([_k, _v]) => ` ${_k}: ${_v}`)\n return `option ${k} = {${vals.join(',\\n')}}`\n })\n .join('\\n\\n')\n )\n }\n\n try {\n const _optionAST = JSON.parse(JSON.stringify(optionAST))\n // make sure there's a variable in there named windowPeriod so later logic doesnt bail\n find(\n _optionAST,\n node =>\n node?.type === 'OptionStatement' && node?.assignment?.id?.name === 'v'\n ).forEach(node => {\n if (\n find(\n node,\n n => n.type === 'Property' && n?.key?.name === 'windowPeriod'\n ).length\n ) {\n return\n }\n\n if (isFlagEnabled('dontSolveWindowPeriod')) {\n throw new Error('v.windowPeriod is used and not defined')\n }\n\n node.assignment.init.properties.push({\n type: 'Property',\n key: {\n type: 'Identifier',\n name: 'windowPeriod',\n },\n value: {\n type: 'DurationLiteral',\n values: [{magnitude: FALLBACK_WINDOW_PERIOD, unit: 'ms'}],\n },\n })\n })\n\n const substitutedAST = {\n package: '',\n type: 'Package',\n files: [queryAST, _optionAST],\n }\n\n // use the whole query to get that option set by reference\n _addWindowPeriod(substitutedAST, _optionAST)\n\n if (mode === 'ast') {\n return _optionAST\n }\n\n // TODO write window period back out to json object\n return options\n } catch (e) {\n // there's a bunch of weird errors until we replace windowPeriod\n console.error(e)\n if (mode === 'ast') {\n return optionAST\n }\n return options\n }\n}\n\nexport const sqlAsFlux = (\n text: string,\n bucket: OwnBucket,\n queryModifiers?: SqlQueryModifiers\n) => {\n return `${\n queryModifiers?.prepend ? `${queryModifiers.prepend}\\n` : ''\n }import \"experimental/iox\"\n\niox.sql(bucket: \"${bucket.name}\", query: ${JSON.stringify(text)})\n${queryModifiers?.append ? `${queryModifiers.append}` : ''}`\n}\n","// Libraries\nimport {IconFont} from '@influxdata/clockface'\n\n// Constants\nimport {FIFTEEN_SECONDS} from 'src/shared/constants'\n\n// Notifications\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n defaultWarningNotification,\n} from 'src/shared/copy/notifications'\n\n// Types\nimport {\n Notification,\n NotificationButtonElement,\n NotificationStyle,\n} from 'src/types'\n\nexport const accountDefaultSettingError = (\n accountName: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Account \"${accountName}\" was not set as the default account. The default is unchanged.`,\n})\n\nexport const accountDefaultSettingSuccess = (\n accountName: string\n): Notification => ({\n ...defaultSuccessNotification,\n message: `Account \"${accountName}\" was successfully set as the default account`,\n})\n\nexport const accountRenameError = (accountName: string): Notification => ({\n ...defaultErrorNotification,\n message: `Account \"${accountName}\" was not renamed; the rename update failed`,\n})\n\nexport const accountRenameSuccess = (\n oldAccountName: string,\n newAccountName: string\n): Notification => ({\n ...defaultSuccessNotification,\n message: `Account \"${oldAccountName}\" was successfully renamed to \"${newAccountName}\"`,\n})\n\nexport const deleteAccountWarning = (\n buttonElement: NotificationButtonElement\n): Notification => ({\n ...defaultWarningNotification,\n message: `All additional users must be removed from the current organization before this account can be deleted.\\n`,\n buttonElement,\n styles: {\n flexWrap: 'wrap',\n },\n})\n\nexport const deleteOrgDelayed = (\n supportLink: NotificationButtonElement\n): Notification => ({\n ...defaultErrorNotification,\n message:\n \"Sorry, we're experiencing a delay in deleting this org. For support, contact \",\n buttonElement: supportLink,\n})\n\nexport const deleteOrgFailed = (\n supportLink: NotificationButtonElement,\n orgName: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Sorry, we weren't able to delete ${orgName}. Please reach out to`,\n buttonElement: supportLink,\n})\n\nexport const deleteOrgSuccess = (\n orgName: string,\n accountName: string\n): Notification => ({\n ...defaultSuccessNotification,\n message: `${orgName} will be deleted from ${accountName}.`,\n})\n\nexport const deleteOrgWarning = (\n buttonElement: NotificationButtonElement\n): Notification => ({\n ...defaultWarningNotification,\n message: `All additional users must be removed from this organization before it can be deleted.\\n`,\n buttonElement,\n styles: {\n flexWrap: 'wrap',\n },\n})\n\nexport const inviteFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `invite failed`,\n})\n\nexport const invitationResentFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `Error sending invitation`,\n})\n\nexport const invitationResentSuccessful = (): Notification => ({\n ...defaultSuccessNotification,\n message: `Invitation Re-sent`,\n})\n\nexport const inviteSent = ({email, orgName}): Notification => ({\n ...defaultSuccessNotification,\n message: `Invitation sent to ${email} to join ${orgName}`,\n})\n\nexport const invitationWithdrawnFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `Error withdrawing invite, try again`,\n})\n\nexport const invitationWithdrawnSuccessful = (): Notification => ({\n ...defaultSuccessNotification,\n message: `Invitation Withdrawn`,\n})\n\nexport const marketoLoadFailure = (\n buttonElement: NotificationButtonElement\n): Notification => ({\n ...defaultErrorNotification,\n message: 'Sorry, we were unable to load the in-app contact form. ',\n buttonElement,\n})\n\nexport const marketoFormSubmitFailure = (\n buttonElement: NotificationButtonElement\n): Notification => ({\n ...defaultErrorNotification,\n message: 'Sorry, we encountered a problem submitting this form. ',\n buttonElement,\n})\n\nexport const marketoFormSubmitSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'Your account upgrade inquiry has been submitted.',\n})\n\nexport const memberAddFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to add members: \"${message}\"`,\n})\n\nexport const memberAddSuccess = (username: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Member \"${username}\" was added successfully`,\n})\n\nexport const memberRemoveFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to remove members: \"${message}\"`,\n})\n\nexport const memberRemoveSuccess = (memberName: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Member \"${memberName}\" was removed successfully`,\n})\n\nexport const orgCreateFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to create organization',\n})\n\nexport const orgCreateSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'Organization was successfully created',\n})\n\nexport const orgDetailsFetchError = (): Notification => ({\n ...defaultErrorNotification,\n message:\n 'Sorry, we had difficulty retrieving the data about this organization.',\n})\n\nexport const orgEditFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to update organization',\n})\n\nexport const orgEditSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'Organization was successfully updated',\n})\n\nexport const orgRenameFailed = (orgName): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update organization \"${orgName}\"`,\n})\n\nexport const orgRenameSuccess = (orgName: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Organization was successfully renamed \"${orgName}\"`,\n})\n\nexport const quartzOrgCreateSuccess = (\n orgName: string,\n switchToOrgLink?: NotificationButtonElement\n): Notification => {\n const notification = {\n ...defaultSuccessNotification,\n message: `Organization \"${orgName}\" created.`,\n duration: FIFTEEN_SECONDS,\n }\n\n if (switchToOrgLink) {\n notification.buttonElement = switchToOrgLink\n }\n\n return notification\n}\n\nexport const quartzOrgQuotaReached = (): Notification => ({\n ...defaultSuccessNotification,\n style: NotificationStyle.Primary,\n styles: {maxWidth: '360px'},\n icon: IconFont.Info_New,\n duration: FIFTEEN_SECONDS,\n message: `You've reached the organization quota for this account. Upgrade to add more organizations.`,\n})\n\nexport const removeUserFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `Error removing user, try again`,\n})\n\nexport const removeUserSuccessful = (): Notification => ({\n ...defaultSuccessNotification,\n message: `User Removed`,\n})\n\nexport const userProfileSaveSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'Saved changes to your profile.',\n})\n\nexport const userProfileSaveError = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to save all changes to your profile. Please try again.',\n})\n","import {Notification, NotificationStyle} from 'src/types'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\n\nexport const editCheckCodeWarning = (): Notification => ({\n ...defaultErrorNotification,\n style: NotificationStyle.Info,\n message:\n 'Changes to Check code may prevent you from editing the Check in the visual editing experience.',\n})\n\nexport const editNotificationRuleCodeWarning = (): Notification => ({\n ...defaultErrorNotification,\n style: NotificationStyle.Info,\n message:\n 'Changes to Notification Rule code may prevent you from editing the Notification Rule in the visual editing experience.',\n})\n\nexport const getChecksFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to get checks: ${message}`,\n})\n\nexport const getCheckFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to get check: ${message}`,\n})\n\nexport const getNotificationRulesFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to get notification rules: ${message}`,\n})\n\nexport const getNotificationRuleFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to get notification rule: ${message}`,\n})\n\nexport const createCheckFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to create check: ${message}`,\n})\n\nexport const updateCheckFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update check: ${message}`,\n})\n\nexport const deleteCheckFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete check: ${message}`,\n})\n\nexport const createRuleFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to create notification rule: ${message}`,\n})\n\nexport const updateRuleFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update notification rule: ${message}`,\n})\n\nexport const deleteRuleFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete notification rule: ${message}`,\n})\n\nexport const getViewFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to load resources for cell: ${message}`,\n})\n\nexport const getEndpointFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to get endpoint: ${message}`,\n})\n\nexport const getEndpointsFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to get endpoints: ${message}`,\n})\n\nexport const createEndpointFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to create endpoint: ${message}`,\n})\n\nexport const updateEndpointFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update endpoint: ${message}`,\n})\n\nexport const deleteEndpointFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete endpoint: ${message}`,\n})\n\nexport const testNotificationSuccess = (\n source: 'slack' | 'pagerduty' | 'https'\n): Notification => ({\n ...defaultSuccessNotification,\n message: `A test alert has been sent to ${source}`,\n})\n\nexport const testNotificationFailure = (\n reason: string = 'flux was invalid.'\n): Notification => ({\n ...defaultErrorNotification,\n message: `Test failed: ${reason}`,\n})\n\nexport const exportAlertToTaskSuccess = (\n source: 'slack' | 'pagerduty' | 'https'\n): Notification => ({\n ...defaultSuccessNotification,\n message: `Successfully created task for ${source} alert.`,\n})\n\nexport const exportAlertToTaskFailure = (\n source: 'slack' | 'pagerduty' | 'https'\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to create task for ${source} alert. Please check your configuration.`,\n})\n\nexport const getResourcesTokensFailure = (\n tokenType: string = 'that token'\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to fetch all resources for creating ${tokenType}`,\n})\n\nexport const getFluxPackagesFailed = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to fetch flux functions: ${message}`,\n})\n","import {IconFont} from '@influxdata/clockface'\nimport {Notification} from 'src/types'\nimport {\n defaultErrorNotification,\n defaultDeletionNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\n\n// Dashboard Notifications\n\nexport const dashboardGetFailed = (\n dashboardID: string,\n error: string\n): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.DashH,\n message: `Failed to load dashboard with id \"${dashboardID}\": ${error}`,\n})\n\nexport const dashboardsGetFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.DashH,\n message: `Failed to retrieve dashboards: ${error}`,\n})\n\nexport const dashboardUpdateFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.DashH,\n message: `Could not update dashboard: ${error}`,\n})\n\nexport const dashboardDeleted = (name: string): Notification => ({\n ...defaultSuccessNotification,\n icon: IconFont.DashH,\n message: `Dashboard ${name} deleted successfully.`,\n})\n\nexport const dashboardCreateFailed = (error: string) => ({\n ...defaultErrorNotification,\n message: `Failed to create dashboard: ${error}`,\n})\n\nexport const dashboardCreateSuccess = () => ({\n ...defaultSuccessNotification,\n message: 'Created dashboard successfully',\n})\n\nexport const dashboardDeleteFailed = (\n name: string,\n errorMessage: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete Dashboard ${name}: ${errorMessage}.`,\n})\n\nexport const dashboardCopySuccess = () => ({\n ...defaultSuccessNotification,\n message: 'Copied dashboard to the clipboard!',\n})\n\nexport const dashboardCopyFailed = () => ({\n ...defaultErrorNotification,\n message: 'Failed to copy dashboard.',\n})\n\nexport const cellAdded = (\n cellName?: string,\n dashboardName?: string\n): Notification => ({\n ...defaultSuccessNotification,\n icon: IconFont.DashH,\n message: `Added new cell ${cellName + ' '}to dashboard ${dashboardName}`,\n})\n\nexport const cellAddFailed = (\n message: string = 'unknown error'\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to add cell: ${message}`,\n})\n\nexport const cellCloneSuccess = (\n destinationDashboardID: string,\n operationType: string,\n cellName?: string\n): Notification => ({\n ...defaultSuccessNotification,\n icon: IconFont.DashH,\n message: `Cell ${\n cellName ?? ''\n } successfully ${operationType} to dashboard with id ${destinationDashboardID}`,\n})\n\nexport const cellCopyFailed = (err?: string): Notification => ({\n ...defaultErrorNotification,\n message: `Cell copy failed: ${err}`,\n})\n\nexport const cellUpdateFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update cell`,\n})\n\nexport const cellDeleted = (): Notification => ({\n ...defaultDeletionNotification,\n icon: IconFont.DashH,\n duration: 1900,\n message: `Cell deleted from dashboard.`,\n})\n\nexport const addDashboardLabelFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to add label to dashboard',\n})\n\nexport const removedDashboardLabelFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to remove label from dashboard',\n})\n\nexport const copyQuerySuccess = (cellName?: string): Notification => {\n let fromCellName = ''\n if (cellName) {\n fromCellName = ` from '${cellName}'`\n }\n return {\n ...defaultSuccessNotification,\n icon: IconFont.DashH,\n message: `The query${fromCellName} was copied to your clipboard.`,\n }\n}\n\nexport const copyQueryFailure = (cellName: string = ''): Notification => {\n let fromCellName = '.'\n if (cellName) {\n fromCellName = ` from '${cellName}.'`\n }\n return {\n ...defaultErrorNotification,\n message: `There was an error copying the query${fromCellName}. Please try again.`,\n }\n}\n\nexport const csvDownloadFailure = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to download csv.',\n})\n\nexport const oldSession = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Old user session detected. Please create a new script.',\n})\n\nexport const compositionUpdateFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Composition was not updated. Try again.',\n})\n\nexport const compositionEnded = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Composition has ended. Turn on sync, to start a new composition.',\n})\n","import {Notification} from 'src/types'\nimport {FIVE_SECONDS} from 'src/shared/constants/index'\nimport {defaultErrorNotification} from 'src/shared/copy/notifications'\n\nexport const supportRequestError = (): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message:\n 'There was a problem submitting your support request. Please wait a moment and try again.',\n})\n","import {Notification} from 'src/types'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n defaultWarningNotification,\n} from 'src/shared/copy/notifications'\n\n// Scripts\n\nexport const scriptSaveFail = (\n scriptName: string,\n reason?: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `${scriptName} failed to save${reason ? `: ${reason}` : ''}`,\n})\n\nexport const scriptSaveSuccess = (scriptName: string): Notification => ({\n ...defaultSuccessNotification,\n message: `${scriptName} has been saved`,\n})\n\nexport const deleteScriptFail = (scriptName: string): Notification => ({\n ...defaultErrorNotification,\n message: `${scriptName} failed to delete`,\n})\n\nexport const getScriptsFail = (): Notification => ({\n ...defaultErrorNotification,\n message:\n 'There was an error fetching Scripts. Please try reloading this page',\n})\n\nexport const trySmoothingData = (graphType: string): Notification => ({\n ...defaultWarningNotification,\n message: `The ${graphType} graph requires a single column of returned data. Try smoothing data, and toggle for each data field.`,\n})\n","// Libraries\nimport {binaryPrefixFormatter} from '@influxdata/giraffe'\n\n// Types\nimport {Notification, NotificationStyle} from 'src/types'\n\n// Constants\nimport {\n FIVE_SECONDS,\n TEN_SECONDS,\n FIFTEEN_SECONDS,\n INDEFINITE,\n} from 'src/shared/constants/index'\nimport {IconFont} from '@influxdata/clockface'\n\nexport const bytesFormatter = binaryPrefixFormatter({\n suffix: 'B',\n significantDigits: 2,\n trimZeros: true,\n})\n\ntype NotificationExcludingMessage = Pick<\n Notification,\n Exclude\n>\n\nconst defaultButtonElement = () => null\n\nexport const defaultErrorNotification: NotificationExcludingMessage = {\n buttonElement: defaultButtonElement,\n style: NotificationStyle.Error,\n icon: IconFont.AlertTriangle,\n duration: TEN_SECONDS,\n}\n\nexport const defaultWarningNotification: NotificationExcludingMessage = {\n buttonElement: defaultButtonElement,\n style: NotificationStyle.Warning,\n icon: IconFont.Group,\n duration: TEN_SECONDS,\n}\n\nexport const defaultSuccessNotification: NotificationExcludingMessage = {\n buttonElement: defaultButtonElement,\n style: NotificationStyle.Success,\n icon: IconFont.CheckMark_New,\n duration: FIVE_SECONDS,\n}\n\nexport const defaultDeletionNotification: NotificationExcludingMessage = {\n buttonElement: defaultButtonElement,\n style: NotificationStyle.Primary,\n icon: IconFont.Trash_New,\n duration: FIVE_SECONDS,\n}\n\n// Misc Notifications\n// ----------------------------------------------------------------------------\n\nexport const copyToClipboardSuccess = (\n text: string,\n title: string = ''\n): Notification => ({\n ...defaultSuccessNotification,\n icon: IconFont.Cube,\n type: 'copyToClipboardSuccess',\n message: `${title} '${text}' has been copied to clipboard.`,\n})\n\nexport const copyToClipboardFailed = (\n text: string,\n title: string = ''\n): Notification => ({\n ...defaultErrorNotification,\n message: `${title}'${text}' was not copied to clipboard.`,\n})\n\nexport const prohibitedDeselect = (message?: string): Notification => ({\n ...defaultErrorNotification,\n message:\n message ?? 'You must have at least one custom aggregate function selected',\n})\n\nexport const newVersion = (version: string): Notification => ({\n ...defaultSuccessNotification,\n style: NotificationStyle.Info,\n icon: IconFont.CuboUniform,\n message: `Welcome to the latest Chronograf${version}. Local settings cleared.`,\n})\n\nexport const loadLocalSettingsFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Loading local settings failed: ${error}`,\n})\n\nexport const presentationMode = (): Notification => ({\n ...defaultSuccessNotification,\n style: NotificationStyle.Primary,\n icon: IconFont.ExpandB,\n duration: 7500,\n message: 'Press ESC to exit Presentation Mode.',\n})\n\nexport const sessionTimedOut = (): Notification => ({\n ...defaultSuccessNotification,\n style: NotificationStyle.Primary,\n icon: IconFont.AlertTriangle,\n duration: FIFTEEN_SECONDS,\n message: 'Your session has timed out. Log in again to continue.',\n})\n\nexport const resultTooLarge = (bytesRead: number): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Large response truncated to first ${bytesFormatter(bytesRead)}`,\n})\n\nexport const savingNoteFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Failed to save note: ${error}`,\n})\n\nexport const invalidMapType = (): Notification => ({\n ...defaultErrorNotification,\n message: `Variables of type map accept two comma separated values per line`,\n})\n\nexport const invalidJSON = (message: string): Notification => {\n return {\n ...defaultErrorNotification,\n message: message\n ? `We couldn’t parse the JSON you entered because it failed with message:\\n'${message}'`\n : 'We couldn’t parse the JSON you entered because it isn’t valid. Please check the formatting and try again.',\n }\n}\n\nexport const missingUserInput = (\n reason: string = 'flux was invalid.'\n): Notification => ({\n ...defaultErrorNotification,\n message: `Missing user input: ${reason}`,\n})\n\nexport const autoRefreshTimeoutSuccess = (time?: string): Notification => ({\n ...defaultSuccessNotification,\n duration: INDEFINITE,\n icon: IconFont.Clock_New,\n message: `Your auto refresh settings have been reset due to inactivity ${\n time ? 'over the last' + time : ''\n }`,\n})\n","import {IconFont} from '@influxdata/clockface'\nimport {Notification} from 'src/types'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\n\nexport const deleteAnnotationSuccess = (message: string): Notification => ({\n ...defaultSuccessNotification,\n icon: IconFont.Cube,\n message: message\n ? `Successfully deleted the annotation: ${message}`\n : 'Successfully deleted the annotation',\n})\n\nexport const deleteAnnotationFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.Cube,\n message: `Failed to delete annotation: ${error}`,\n})\n\nexport const editAnnotationSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n icon: IconFont.CheckMark_New,\n message: 'Annotation updated successfully',\n})\n\nexport const editAnnotationFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.Cube,\n message: `Failed to edit annotation: ${error}`,\n})\n\nexport const createAnnotationFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.Cube,\n message: `Failed to create annotation: ${error}`,\n})\n\nexport const annotationsUnsupportedOnGraph = (\n graphType: string = 'This graph type'\n): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.Cube,\n message: `${graphType} does not support adding annotations.`,\n})\n","import {Notification} from 'src/types'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\n\nexport const authorizationsGetFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to get API tokens',\n})\n\nexport const authorizationCreateSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'API token was created successfully',\n})\n\nexport const passwordResetSuccessfully = (message: string): Notification => ({\n ...defaultSuccessNotification,\n message: `${message}\n If you haven't received an email, please ensure that the email you provided is correct.`,\n})\n\nexport const authorizationCreateFailed = (\n errorMessage?: string\n): Notification => {\n const defaultMsg = 'Failed to create API tokens'\n const message = errorMessage ? `${defaultMsg}: ${errorMessage}` : defaultMsg\n return {\n ...defaultErrorNotification,\n message,\n }\n}\n\nexport const authorizationUpdateSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'API token was updated successfully',\n})\n\nexport const authorizationUpdateFailed = (desc: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update API token: \"${desc}\"`,\n})\n\nexport const authorizationDeleteSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'API token was deleted successfully',\n})\n\nexport const authorizationDeleteFailed = (desc: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete API token: \"${desc}\"`,\n})\n\nexport const bulkAuthorizationDeleteSuccess = (\n numberOfTokens: number\n): Notification => ({\n ...defaultSuccessNotification,\n message: `${numberOfTokens} API ${\n numberOfTokens > 1 ? 'tokens were' : 'token'\n } deleted successfully`,\n})\n\nexport const bulkAuthorizationDeleteFailed = (desc: string): Notification => ({\n ...defaultErrorNotification,\n message: `We couldn't delete ${desc} tokens you selected. Please check the list and try again. If the problem persists, contact support.`,\n})\n\nexport const authorizationCopySuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'API token has been copied to clipboard',\n})\n\nexport const authorizationCopyFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to copy API token to clipboard',\n})\n","import {Notification} from 'src/types'\nimport {FIVE_SECONDS} from 'src/shared/constants/index'\nimport {defaultErrorNotification} from 'src/shared/copy/notifications'\n\n// Billing Notifications\nexport const updateBillingSettingsError = (message: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `There was an error updating your billing settings: ${message}`,\n})\n\nexport const getInvoicesError = (message: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `There was an error getting your invoices: ${message}`,\n})\n\nexport const getMarketplaceError = (message: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `There was an error getting your marketplace details: ${message}`,\n})\n\nexport const getBillingInfoError = (message: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `There was an error getting your billing info: ${message}`,\n})\n\nexport const updateBillingInfoError = (message: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `There was an error updating your billing info: ${message}`,\n})\n\nexport const billingContactIncompleteError = (): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message:\n 'Looks like your billing information is incomplete. Please complete the form before resubmitting.',\n})\n\nexport const updatePaymentMethodError = (message: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `There was an error updating your payment method: ${message}`,\n})\n\nexport const accountCancellationError = (message: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `There was an error cancelled your account: ${message}`,\n})\n\n// Checkout Notifications\nexport const submitError = (): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message:\n 'There was an error submitting the upgrade request, please try again.',\n})\n\nexport const getBillingSettingsError = (message: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `There was an error getting your billing settings: ${message}`,\n})\n\n/* Billing Notifications */\nexport const zuoraParamsGetFailure = (message): Notification => ({\n ...defaultErrorNotification,\n message,\n})\n\nexport const accountSelfDeletionFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `There was an error deleting the organization, please try again.`,\n})\n","import {Notification, NotificationButtonElement} from 'src/types'\nimport {TEN_SECONDS} from 'src/shared/constants/index'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\n\n// Buckets\nexport const getBucketsFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to fetch buckets',\n})\n\nexport const getBucketFailed = (\n bucketID: string,\n error: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to fetch bucket with id ${bucketID}: ${error}`,\n})\n\nexport const getSchemaFailed = (\n bucketName: string,\n error: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to fetch schema for bucket with id ${bucketName}: ${error}`,\n})\n\nexport const updateAggregateType = (\n message: string,\n buttonElement?: NotificationButtonElement\n): Notification => ({\n ...defaultErrorNotification,\n message,\n buttonElement,\n duration: TEN_SECONDS,\n type: 'aggregateTypeError',\n})\n\nexport const bucketRenameSuccess = (bucketName: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Bucket was successfully renamed \"${bucketName}\"`,\n})\n\nexport const bucketRenameFailed = (bucketName: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to rename bucket \"${bucketName}\"`,\n})\n\nexport const addBucketLabelFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to add label to bucket',\n})\n\nexport const removeBucketLabelFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to remove label from bucket',\n})\n\nexport const bucketDeleteFailed = (bucketName: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete bucket: \"${bucketName}\"`,\n})\n\nexport const bucketDeleteSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'Bucket was deleted successfully',\n})\n\nexport const bucketCreateSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'Bucket was successfully created',\n})\n\nexport const bucketCreateFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to create bucket: ${error}`,\n})\n\nexport const bucketUpdateSuccess = (bucketName: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Bucket \"${bucketName}\" was successfully updated`,\n})\n\nexport const bucketUpdateFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update bucket: \"${error}\"`,\n})\n\nexport const measurementSchemaAdditionSuccessful = (\n bucketName: string,\n schemaName: string\n): Notification => ({\n ...defaultSuccessNotification,\n message: `MeasurementSchema ${schemaName} has been successfully added to bucket ${bucketName}`,\n})\n\nexport const measurementSchemaUpdateSuccessful = (\n measurementName: string\n): Notification => ({\n ...defaultSuccessNotification,\n message: `MeasurementSchema ${measurementName} has been successfully updated`,\n})\n\nexport const measurementSchemaAdditionFailed = (\n bucketName: string,\n schemaName: string,\n errorMsg?: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `MeasurementSchema ${schemaName} has *not* been successfully added to bucket ${bucketName}${\n errorMsg ? `, error: ${errorMsg}` : ''\n }`,\n})\n\nexport const measurementSchemaUpdateFailed = (\n measurementName: string,\n errorMsg: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `MeasurementSchema ${measurementName} has *not* been successfully updated, error: ${errorMsg}`,\n})\n","import {Notification} from 'src/types'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\n\n// Functions\nexport const functionGetFail = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to fetch functions`,\n})\n\nexport const functionCreateFail = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to create function. Please try again`,\n})\n\nexport const functionDeleteFail = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete function. Please try again`,\n})\n\nexport const functionTriggerFail = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to trigger function run. Please try again`,\n})\n\nexport const runGetFail = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to fetch runs for this function`,\n})\n\nexport const functionUpdateFail = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to save function. Please try again`,\n})\n\nexport const copyFunctionURL = (): Notification => ({\n ...defaultSuccessNotification,\n message: `Copied function URL to clipboard`,\n duration: 2000,\n})\n","import {Notification} from 'src/types'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\n\nexport const scraperDeleteSuccess = (scraperName: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Scraper \"${scraperName}\" was successfully deleted`,\n})\n\nexport const scraperDeleteFailed = (scraperName: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete scraper: \"${scraperName}\"`,\n})\n\nexport const scraperCreateSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'Scraper was created successfully',\n})\n\nexport const scraperCreateFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to create scraper',\n})\n\nexport const scraperUpdateSuccess = (scraperName: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Scraper \"${scraperName}\" was updated successfully`,\n})\n\nexport const scraperUpdateFailed = (scraperName: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update scraper: \"${scraperName}\"`,\n})\n\nexport const telegrafGetFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to get telegraf configs',\n})\n\nexport const telegrafCreateFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to create telegraf',\n})\n\nexport const telegrafUpdateFailed = (telegrafName: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update telegraf: \"${telegrafName}\"`,\n})\n\nexport const cloneTelegrafSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: `Telegraf configuration was cloned successfully`,\n})\n\nexport const addTelegrafLabelFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to add label to telegraf config`,\n})\n\nexport const removeTelegrafLabelFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to remove label from telegraf config`,\n})\n\nexport const telegrafDeleteSuccess = (telegrafName: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Telegraf \"${telegrafName}\" was deleted successfully`,\n})\n\nexport const telegrafDeleteFailed = (telegrafName: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete telegraf: \"${telegrafName}\"`,\n})\n\nexport const getTelegrafConfigFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to get telegraf config',\n})\n\nexport const TelegrafDashboardCreated = (configs: string[]): Notification => ({\n ...defaultSuccessNotification,\n message: `Successfully created dashboards for telegraf plugin${\n configs.length > 1 ? 's' : ''\n }: ${configs.join(', ')}.`,\n})\n\nexport const TelegrafDashboardFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `Could not create dashboards for one or more plugins`,\n})\n","import {Notification, NotificationStyle} from 'src/types'\nimport {FIVE_SECONDS, TEN_SECONDS} from 'src/shared/constants/index'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\nimport {IconFont} from '@influxdata/clockface'\n\n// Constants\nimport {CLOUD} from 'src/shared/constants'\n\n// Limits\nexport const readWriteCardinalityLimitReached = (\n message: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to write data due to plan limits: ${message}`,\n duration: FIVE_SECONDS,\n type: 'readWriteCardinalityLimitReached',\n})\n\nexport const readLimitReached = (): Notification => ({\n ...defaultErrorNotification,\n message: `Exceeded query limits.`,\n duration: FIVE_SECONDS,\n type: 'readLimitReached',\n})\n\nexport const rateLimitReached = (secs?: number): Notification => {\n const retryText = ` Please try again in ${secs} seconds`\n return {\n ...defaultErrorNotification,\n message: `Exceeded rate limits.${secs ? retryText : ''} `,\n duration: FIVE_SECONDS,\n type: 'rateLimitReached',\n }\n}\n\nexport const writeLimitReached = (\n message: string,\n Button: any,\n duration?: number\n) => ({\n ...defaultErrorNotification,\n icon: CLOUD ? IconFont.AlertTriangle : defaultErrorNotification.icon,\n message,\n duration: duration ?? TEN_SECONDS,\n type: 'writeLimitReached',\n style: NotificationStyle.Secondary,\n buttonElement: () => Button,\n})\n\nexport const resourceLimitReached = (resourceName: string): Notification => ({\n ...defaultErrorNotification,\n message: `Oops. It looks like you have reached the maximum number of ${resourceName} allowed as part of your plan. If you would like to upgrade and remove this restriction, reach out to support@influxdata.com.`,\n duration: FIVE_SECONDS,\n type: 'resourceLimitReached',\n})\n\nexport const queryCancelRequest = (): Notification => ({\n ...defaultSuccessNotification,\n message: `Query cancelled.`,\n})\n","import {Notification} from 'src/types'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\n\n// Notebooks\n\nexport const notebookRunFail = (projectName: string): Notification => ({\n ...defaultErrorNotification,\n message: `${projectName} run failed`,\n})\n\nexport const panelCopyLinkSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: `Panel link copied successfully!`,\n})\n\nexport const panelCopyLinkFail = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to copy the panel link`,\n})\n\nexport const notebookCreateFail = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to create Notebook: ${error}`,\n})\n\nexport const notebookUpdateFail = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to save changes to Notebook: ${error}`,\n})\n\nexport const notebookDeleteFail = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete Notebook: ${error}`,\n})\n\nexport const notebookDeleteSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'Notebook was deleted successfully',\n})\n\nexport const csvUploaderErrorNotification = (\n message: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to upload the selected CSV: ${message}`,\n})\n\nexport const csvUploadCancelled = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'Successfully cancelled CSV Upload',\n})\n\nexport const publishNotebookSuccessful = (name: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Successfully saved this version to ${name}'s version history.`,\n})\n\nexport const publishNotebookFailed = (\n name: string,\n error: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to save this version to ${name}'s version history: ${error}`,\n})\n","export const QUICKSTART_DASHBOARD_NAME = 'InfluxDB OSS Metrics'\n","import {Notification} from 'src/types'\nimport {\n defaultSuccessNotification,\n defaultErrorNotification,\n} from 'src/shared/copy/notifications'\nimport {QUICKSTART_SCRAPER_TARGET_URL} from 'src/dataLoaders/constants/pluginConfigs'\nimport {QUICKSTART_DASHBOARD_NAME} from 'src/onboarding/constants/index'\n\n// Onboarding notifications\nexport const SetupSuccess: Notification = {\n ...defaultSuccessNotification,\n message: 'Initial user details have been successfully set',\n}\n\nexport const SetupError = (message: string): Notification => ({\n ...defaultErrorNotification,\n message: `Could not set up admin user: ${message}`,\n})\n\nexport const SigninError: Notification = {\n ...defaultErrorNotification,\n message: `Could not sign in`,\n}\n\nexport const checkStatusLoading: Notification = {\n ...defaultSuccessNotification,\n message: `Currently loading checks`,\n}\n\nexport const QuickstartScraperCreationSuccess: Notification = {\n ...defaultSuccessNotification,\n message: `The InfluxDB Scraper has been configured for ${QUICKSTART_SCRAPER_TARGET_URL}`,\n}\n\nexport const QuickstartScraperCreationError: Notification = {\n ...defaultErrorNotification,\n message: `Failed to configure InfluxDB Scraper`,\n}\n\nexport const QuickstartDashboardCreationSuccess: Notification = {\n ...defaultSuccessNotification,\n message: `The ${QUICKSTART_DASHBOARD_NAME} Dashboard has been created`,\n}\n\nexport const QuickstartDashboardCreationError: Notification = {\n ...defaultErrorNotification,\n message: `Failed to create ${QUICKSTART_DASHBOARD_NAME} Dashboard`,\n}\n\nexport const TelegrafConfigCreationSuccess: Notification = {\n ...defaultSuccessNotification,\n message: `Your configurations have been saved`,\n}\n\nexport const TelegrafConfigCreationError: Notification = {\n ...defaultErrorNotification,\n message: `Failed to save configurations`,\n}\n\nexport const TokenCreationError: Notification = {\n ...defaultErrorNotification,\n message: `Failed to create a new Telegraf API Token`,\n}\n","import {Notification} from 'src/types'\nimport {FIVE_SECONDS} from 'src/shared/constants/index'\nimport {\n defaultSuccessNotification,\n defaultErrorNotification,\n} from 'src/shared/copy/notifications'\n\n// Operator Notifications\nexport const getOrgsError = (): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message:\n 'There was an error getting the all the organizations, please try again.',\n})\n\nexport const getOrgError = (id: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Could not find organization with ID ${id}`,\n})\n\nexport const reactivateOrgSuccess = (id: string): Notification => ({\n ...defaultSuccessNotification,\n duration: FIVE_SECONDS,\n message: `Successfully reactivated organization with the ID ${id}`,\n})\n\nexport const reactivateOrgError = (id: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Could not reactivate organization with ID ${id}`,\n})\n\nexport const getLimitsError = (id: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Could not fetch limits for the organization ${id}`,\n})\n\nexport const updateLimitsError = (id: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Could not update limits for the organization ${id}`,\n})\n\nexport const updateLimitsSuccess = (id: string): Notification => ({\n ...defaultSuccessNotification,\n duration: FIVE_SECONDS,\n message: `Successfully updated limits for the organization ${id}`,\n})\n\nexport const getAccountsError = (): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: 'There was an error getting the all the accounts, please try again.',\n})\n\nexport const getAccountError = (id: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Could not get the account for ID: ${id}`,\n})\n\nexport const convertAccountError = (id: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Failed to convert the account with the ID ${id}, please try again.`,\n})\n\nexport const deleteAccountError = (id: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Failed to delete the account with the ID ${id}, please try again.`,\n})\n\nexport const removeUserAccountError = (id: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Failed to remove the user from the account with the ID ${id}, please try again.`,\n})\n","import {Notification} from 'src/types'\nimport {defaultErrorNotification} from 'src/shared/copy/notifications'\n\n// Secrets\nexport const getSecretsFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to fetch secrets',\n})\n\nexport const createSecretFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to create secret',\n})\n\nexport const upsertSecretFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to create or update secret',\n})\n\nexport const deleteSecretsFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to delete secret',\n})\n","import {Notification} from 'src/types'\nimport {defaultErrorNotification} from 'src/shared/copy/notifications'\n\nexport const subscriptionCreateFail = (message?: string): Notification => ({\n ...defaultErrorNotification,\n message: message\n ? message\n : `Failed to create Subscription, please try again.`,\n})\n\nexport const subscriptionUpdateFail = (message?: string): Notification => ({\n ...defaultErrorNotification,\n message: message\n ? message\n : `Failed to update Subscription, please try again.`,\n})\n\nexport const subscriptionStatusUpdateFail = (\n message?: string\n): Notification => ({\n ...defaultErrorNotification,\n message: message\n ? message\n : `Failed to update Subscription status, please try again.`,\n})\n\nexport const subscriptionsGetFail = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to get Subscriptions, please try again.`,\n})\n\nexport const subscriptionStatusesGetFail = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to get Subscription Statuses, please try again.`,\n})\n\nexport const subscriptionsDeleteFail = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete the Subscription, please try again.`,\n})\n","import {Notification} from 'src/types'\nimport {FIVE_SECONDS} from 'src/shared/constants/index'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\n\n// Task Notifications\n// ----------------------------------------------------------------------------\nexport const addTaskLabelFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to add label to task',\n})\n\nexport const removeTaskLabelFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to remove label from task',\n})\n\n// Labels\nexport const getLabelsFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to fetch labels',\n})\n\nexport const createLabelFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to create label: ${error}`,\n})\n\nexport const updateLabelFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update label: ${error}`,\n})\n\nexport const deleteLabelFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete label: ${error}`,\n})\n\nexport const taskNotCreated = (additionalMessage: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to create new task: ${additionalMessage}`,\n})\n\nexport const taskCreatedSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'New task created successfully',\n})\n\nexport const taskNotFound = (additionalMessage: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to find task: ${additionalMessage}`,\n})\n\nexport const tasksFetchFailed = (additionalMessage: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to get tasks from server: ${additionalMessage}`,\n})\n\nexport const taskDeleteFailed = (additionalMessage: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to delete task: ${additionalMessage}`,\n})\n\nexport const taskDeleteSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n message: 'Task was deleted successfully',\n})\n\nexport const taskCloneSuccess = (taskName: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Successfully cloned task ${taskName}`,\n})\n\nexport const taskCloneFailed = (\n taskName: string,\n additionalMessage: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to clone task ${taskName}: ${additionalMessage} `,\n})\n\nexport const taskUpdateFailed = (\n additionalMessage: string,\n taskName?: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update task ${\n taskName ? taskName : ''\n }: ${additionalMessage}`,\n})\n\nexport const taskUpdateSuccess = (taskName?: string): Notification => ({\n ...defaultSuccessNotification,\n message: `Task ${taskName ? taskName : ''} was updated successfully`,\n})\n\nexport const taskImportFailed = (errorMessage: string): Notification => ({\n ...defaultErrorNotification,\n duration: undefined,\n message: `Failed to import Task: ${errorMessage}.`,\n})\n\nexport const taskImportSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n duration: FIVE_SECONDS,\n message: `Successfully imported task.`,\n})\n\nexport const taskRunSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n duration: FIVE_SECONDS,\n message: 'Task scheduled successfully',\n})\n\nexport const taskRunFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Failed to run task: ${error}`,\n})\n\nexport const taskGetFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Failed to get runs: ${error}`,\n})\n\nexport const taskRetrySuccess = (id: string): Notification => ({\n ...defaultSuccessNotification,\n duration: FIVE_SECONDS,\n message: `Task run ${id} successfully scheduled`,\n})\n\nexport const taskRetryFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n duration: FIVE_SECONDS,\n message: `Failed to retry Task: ${error}`,\n})\n","import {Notification} from 'src/types'\nimport {INDEFINITE} from 'src/shared/constants/index'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n defaultDeletionNotification,\n} from 'src/shared/copy/notifications'\n\n// Templates\n\nexport const importDashboardSucceeded = (): Notification => ({\n ...defaultSuccessNotification,\n message: `Successfully imported dashboard.`,\n})\n\nexport const importDashboardFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to import dashboard: ${error}`,\n})\n\nexport const importTemplateFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to import template: ${error}`,\n})\n\nexport const createTemplateFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to resource as template: ${error}`,\n})\n\nexport const updateTemplateFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to update template: ${error}`,\n})\n\nexport const resourceSavedAsTemplate = (\n resourceName: string\n): Notification => ({\n ...defaultSuccessNotification,\n message: `Successfully saved ${resourceName.toLowerCase()} as template.`,\n})\n\nexport const saveResourceAsTemplateFailed = (\n resourceName: string,\n error: string\n): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to save ${resourceName.toLowerCase()} as template: ${error}`,\n})\n\nexport const communityTemplateInstallSucceeded = (\n templateName: string\n): Notification => ({\n ...defaultSuccessNotification,\n message: `We've successfully installed: ${templateName}`,\n})\n\nexport const communityTemplateInstallFailed = (): Notification => ({\n ...defaultErrorNotification,\n duration: INDEFINITE,\n message: 'There was a problem installing the template. Please try again.',\n})\n\nexport const communityTemplateDeleteSucceeded = (\n templateName: string\n): Notification => ({\n ...defaultDeletionNotification,\n message: `We've successfully deleted: ${templateName}`,\n})\n\nexport const communityTemplateDeleteFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'We were unable to delete the template. Please try again.',\n})\n\nexport const communityTemplateFetchStackFailed = (): Notification => ({\n ...defaultErrorNotification,\n message:\n 'We could not fetch your installed resources. Please reload the page to try again.',\n})\n\nexport const communityTemplateUnsupportedFormatError = (): Notification => ({\n ...defaultErrorNotification,\n message: `Please provide a link to a template file`,\n})\n\nexport const communityTemplateRenameFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `We've successfully installed your template but weren't able to name it properly. It may appear as a blank template.`,\n})\n","import {IconFont} from '@influxdata/clockface'\nimport {Notification} from 'src/types'\nimport {INDEFINITE} from 'src/shared/constants/index'\nimport {\n defaultErrorNotification,\n defaultSuccessNotification,\n} from 'src/shared/copy/notifications'\n\n// Variables & URL Queries\nexport const invalidTimeRangeValueInURLQuery = (): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.Cube,\n message: `Invalid URL query value supplied for lower or upper time range.`,\n})\n\nexport const invalidVariableNameValuePairInURLQuery = (\n name: string,\n value: string\n): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.Cube,\n message: `Invalid URL query value \"${value}\" supplied for variable name \"${name}\".`,\n})\n\nexport const getVariablesFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to fetch variables',\n})\n\nexport const getVariableFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: 'Failed to fetch variable',\n})\n\nexport const getVariableFailedWithMessage = (name, message): Notification => ({\n ...defaultErrorNotification,\n duration: INDEFINITE,\n message: `Failed to fetch variable ${name}: ${message}`,\n})\n\nexport const createVariableFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.Cube,\n message: `Failed to create variable: ${error}`,\n})\n\nexport const createVariableSuccess = (name: string): Notification => ({\n ...defaultSuccessNotification,\n icon: IconFont.Cube,\n message: `Successfully created new variable: ${name}.`,\n})\n\nexport const deleteVariableFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.Cube,\n message: `Failed to delete variable: ${error}`,\n})\n\nexport const deleteVariableSuccess = (): Notification => ({\n ...defaultSuccessNotification,\n icon: IconFont.Cube,\n message: 'Successfully deleted the variable',\n})\n\nexport const updateVariableFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.Cube,\n message: `Failed to update variable: ${error}`,\n})\n\nexport const updateVariableSuccess = (name: string): Notification => ({\n ...defaultSuccessNotification,\n icon: IconFont.Cube,\n message: `Successfully updated variable: ${name}.`,\n})\n\nexport const moveVariableFailed = (error: string): Notification => ({\n ...defaultErrorNotification,\n icon: IconFont.Cube,\n message: `Failed to move variable: ${error}`,\n})\n\nexport const addVariableLabelFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to add label to variables`,\n})\n\nexport const removeVariableLabelFailed = (): Notification => ({\n ...defaultErrorNotification,\n message: `Failed to remove label from variables`,\n})\n","/*\ntslint:disable no-console\ntslint:disable max-classes-per-file\n*/\n\n// Libraries\nimport React, {Component, ErrorInfo} from 'react'\n\n// Components\nimport DefaultErrorMessage from 'src/shared/components/DefaultErrorMessage'\n\n// Utils\nimport {\n reportErrorThroughHoneyBadger,\n parseComponentName,\n} from 'src/shared/utils/errors'\n\n// Types\nimport {ErrorMessageComponent} from 'src/types'\n\nexport function ErrorHandlingWith(Error: ErrorMessageComponent) {\n return }>(\n constructor: T\n ) => {\n class Wrapped extends constructor {\n public static get displayName(): string {\n return constructor.name\n }\n\n private error: Error = null\n\n public componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n this.error = error\n this.forceUpdate()\n\n reportErrorThroughHoneyBadger(error, {\n component: parseComponentName(errorInfo),\n })\n }\n\n public render() {\n if (this.error) {\n return \n }\n\n return super.render()\n }\n }\n\n return Wrapped\n }\n}\n\nexport const ErrorHandling = ErrorHandlingWith(DefaultErrorMessage)\n","export type CurrentPage = 'dashboard' | 'not found' | 'not set'\n\nexport type Action = ReturnType\n\nexport const setCurrentPage = (currentPage: CurrentPage) =>\n ({type: 'SET_CURRENT_PAGE', currentPage} as const)\n\n// This only exists until we have app-wide color themes.\nconst currentPage = (state: CurrentPage = 'not set', action: Action) => {\n switch (action.type) {\n case 'SET_CURRENT_PAGE': {\n return action.currentPage\n }\n\n default:\n return state\n }\n}\n\nexport default currentPage\n","import {\n AppState,\n TimeZone,\n Theme,\n NavBarState,\n VersionInfo,\n FlowsCTA,\n FluxFunction,\n} from 'src/types'\n\nimport {CLOUD, IOX_SWITCHOVER_CREATION_DATE} from 'src/shared/constants'\n\nimport {selectOrgCreationDate, isOrgIOx} from 'src/organizations/selectors'\n\nexport const timeZone = (state: AppState): TimeZone =>\n state.app.persisted.timeZone || ('Local' as TimeZone)\n\nexport const theme = (state: AppState): Theme =>\n state.app.persisted.theme || ('dark' as Theme)\n\nexport const navbarMode = (state: AppState): NavBarState =>\n state.app.persisted.navBarState || ('collapsed' as NavBarState)\n\nexport const scriptQueryBuilder = (state: AppState): boolean =>\n state.app.persisted.scriptQueryBuilder || false\n\nexport const getVersionInfo = (state: AppState): VersionInfo =>\n state.app.persisted.versionInfo || ({} as VersionInfo)\n\nexport const getPresentationMode = (state: AppState): boolean =>\n state.app.ephemeral.inPresentationMode || false\n\nexport const getFlowsCTA = (state: AppState): FlowsCTA =>\n state.app.persisted.flowsCTA ||\n ({explorer: true, tasks: true, alerts: true} as FlowsCTA)\n\nexport const getAllFluxFunctions = (state: AppState): FluxFunction[] =>\n state.fluxDocs.fluxDocs\n\nexport const getSubscriptionsCertificateInterest = (state: AppState): boolean =>\n state.app.persisted.subscriptionsCertificateInterest || false\n\nexport const selectIsNewIOxOrg = (state: AppState): boolean => {\n if (!CLOUD) {\n return false\n }\n\n const orgCreationDate = new Date(selectOrgCreationDate(state)).valueOf()\n const ioxCutoffDate = new Date(IOX_SWITCHOVER_CREATION_DATE).valueOf()\n const isIOxEnabled = isOrgIOx(state)\n\n const wasCreatedBeforeIOxCutoff = orgCreationDate < ioxCutoffDate\n\n if (!wasCreatedBeforeIOxCutoff && isIOxEnabled) {\n return true\n }\n\n return false\n}\n","import {AppState} from 'src/types'\n\n// NOTE: this selector is dependant on the timemachine\n// and currentDashboard stores being defined\nexport const currentContext = (state: AppState): string => {\n if (state.currentDashboard.id) {\n return state.currentDashboard.id\n }\n\n return ''\n}\n","import {createSelector} from 'reselect'\n\nimport {AppState, RemoteDataState} from 'src/types'\nimport {FlagMap} from 'src/shared/actions/flags'\nimport {CLOUD} from 'src/shared/constants'\n\nexport const OSS_FLAGS = {\n streamEvents: false,\n 'flow-panel--spotify': false,\n 'flow-panel--youtube': false,\n 'flow-panel--test-flux': false,\n 'flow-panel--downsample': true,\n 'flow-panel--markdown': true,\n 'flow-panel--query-builder': true,\n 'flow-panel--raw-flux': true,\n 'flow-panel--to-bucket': false,\n 'flow-panel--notification': true,\n 'flow-panel--schedule': true,\n 'flow-panel--remote': false,\n 'flow-debug-queries': false,\n 'load-data-client-libraries': true,\n 'load-data-telegraf-plugins': true,\n 'load-data-dev-tools': false,\n 'load-data-flux-sources': false,\n 'load-data-integrations': false,\n 'notification-endpoint-telegram': false,\n boardWithFlows: false,\n createWithFlows: false,\n}\n\nexport const CLOUD_FLAGS = {\n streamEvents: false,\n 'flow-panel--spotify': false,\n 'flow-panel--youtube': false,\n 'flow-panel--test-flux': false,\n 'flow-panel--downsample': true,\n 'flow-panel--markdown': true,\n 'flow-panel--query-builder': true,\n 'flow-panel--raw-flux': true,\n 'flow-panel--to-bucket': false,\n 'flow-panel--notification': true,\n 'flow-panel--remote': false,\n 'flow-panel--schedule': true,\n 'flow-debug-queries': false,\n 'load-data-client-libraries': true,\n 'load-data-telegraf-plugins': true,\n 'load-data-dev-tools': false,\n 'load-data-flux-sources': false,\n 'load-data-integrations': false,\n 'notification-endpoint-telegram': false,\n boardWithFlows: false,\n createWithFlows: false,\n}\n\nconst getConfigCatFlags = (state: AppState) => state.flags.original || {}\nconst getLocalFlagOverrides = (state: AppState) => state.flags.override || {}\n\nexport const activeFlags = createSelector(\n getConfigCatFlags,\n getLocalFlagOverrides,\n (configCatFlags, localFlagOverrides): FlagMap => {\n const localFlags = CLOUD ? CLOUD_FLAGS : OSS_FLAGS\n return {\n ...localFlags,\n ...configCatFlags,\n ...localFlagOverrides,\n }\n }\n)\n\nexport const getFlagStatus = (state: AppState) =>\n state.flags.status || RemoteDataState.NotStarted\n","import {Dispatch} from 'redux'\nimport {getFlags as getFlagsRequest} from 'src/client'\nimport {FlagMap} from 'src/shared/actions/flags'\nimport {RemoteDataState} from 'src/types'\nimport {Actions, setFlags, setPublicFlags} from 'src/shared/actions/flags'\nimport {CLOUD} from 'src/shared/constants'\n\nlet getCloudPublicFlags = null\n\nif (CLOUD) {\n getCloudPublicFlags = require('src/client/cloudPrivRoutes').getFlags\n}\n\nexport const getFlags =\n () =>\n async (dispatch: Dispatch): Promise => {\n try {\n dispatch(setFlags(RemoteDataState.Loading))\n const resp = await getFlagsRequest({})\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n dispatch(setFlags(RemoteDataState.Done, resp.data))\n\n return resp.data\n } catch (error) {\n console.error(error)\n dispatch(setFlags(RemoteDataState.Error, null))\n }\n }\n\nexport const getPublicFlags = () => async (dispatch: Dispatch) => {\n if (!CLOUD) {\n return\n }\n const resp = await getCloudPublicFlags({})\n\n if (resp.status !== 200) {\n throw new Error(resp.data.message)\n }\n\n dispatch(setPublicFlags(resp.data))\n}\n","// Libraries\nimport {isObject} from 'lodash'\n\n/*\n Find all nodes in a tree matching the `predicate` function. Each node in the\n tree is an object, which may contain objects or arrays of objects as children\n under any key.\n*/\nexport const findNodes = (\n node: any,\n predicate: (node: any) => boolean,\n acc: any[] = []\n) => {\n if (predicate(node)) {\n acc.push(node)\n }\n\n for (const value of Object.values(node)) {\n if (isObject(value)) {\n findNodes(value, predicate, acc)\n } else if (Array.isArray(value)) {\n for (const innerValue of value) {\n findNodes(innerValue, predicate, acc)\n }\n }\n }\n\n return acc\n}\n","import React from 'react'\n\nexport const convertUserInputValueToNumOrNaN = (value?: any): number =>\n value === '' ? NaN : Number(value)\n\nexport const convertUserInputToNumOrNaN = (\n event: React.ChangeEvent\n): number => convertUserInputValueToNumOrNaN(event.target.value)\n","/**\n * is the string a valid UTC time without any time zone information?\n * ie: \"2021-07-17T14:00:00.000Z\" is valid\n * if it has any timezone offset, then it is not a valid UTC time string\n *\n * @param formattedTimeStr\n */\nfunction isUtcTime(formattedTimeStr) {\n const regex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z$/\n return regex.test(formattedTimeStr)\n}\n\n/** is the time already in utc format? if so it does not need converting. */\nexport const timesNeedConverting = newTimeRange => {\n // if the time range is *already* utc, does not need converting. check just the first part, as\n // they will be formatted the same\n return !isUtcTime(newTimeRange.lower)\n}\n\n// takes in Date object and adds a duration to it.\n// To add 1 hour, value = 1, unit = 'h'\n// similarly, to add a minute. value = 1, unit = 'm'\nexport function addDurationToDate(\n input: Date,\n duration: number,\n unit?: string\n): Date {\n const result = new Date(input)\n\n switch (unit) {\n case 'm': {\n result.setMinutes(input.getMinutes() + duration)\n return result\n }\n case 'd': {\n result.setDate(input.getDate() + duration)\n return result\n }\n default: {\n result.setHours(input.getHours() + duration)\n return result\n }\n }\n}\n\n// checks whether the passed date is ISO format\nexport function isISODate(dateString: string): boolean {\n try {\n const date = new Date(dateString)\n return date.toISOString() === dateString\n } catch (error) {\n return false\n }\n}\n\nexport const convertStringToEpoch = (date: string): number => {\n const convertedDate = new Date(date)\n if (convertedDate.toDateString() === 'Invalid Date') {\n return NaN\n }\n return convertedDate.getTime()\n}\n","export const formatDownloadName = (filename: string, extension: string) => {\n return `${filename.trim().toLowerCase().replace(/\\s/g, '_')}${extension}`\n}\n\n// Future options:\n// if we want to download without converting to a blob within memory,\n// then can use the new FileSystem web API\n// https://developer.mozilla.org/en-US/docs/Web/API/File_and_Directory_Entries_API/\n// And use a FileSystem write stream, connected to the `response.body` ReadableStream\nexport const downloadBlob = (\n blob: Blob,\n filename: string,\n extension: string\n) => {\n const formattedName = formatDownloadName(filename, extension)\n\n const a = document.createElement('a')\n\n a.href = window.URL.createObjectURL(blob)\n a.target = '_blank'\n a.download = formattedName\n\n document.body.appendChild(a)\n a.click()\n a.parentNode.removeChild(a)\n}\n\nexport const downloadTextFile = (\n text: string,\n filename: string,\n extension: string,\n mimeType: string = 'text/plain'\n) => {\n const formattedName = formatDownloadName(filename, extension)\n\n const blob = new Blob([text], {type: mimeType})\n const a = document.createElement('a')\n\n a.href = window.URL.createObjectURL(blob)\n a.target = '_blank'\n a.download = formattedName\n\n document.body.appendChild(a)\n a.click()\n a.parentNode.removeChild(a)\n}\n\nexport const downloadImage = (uri: string, filename: string) => {\n const link = document.createElement('a')\n\n if (typeof link.download === 'string') {\n link.href = uri\n link.download = filename\n\n // Firefox requires the link to be in the body\n document.body.appendChild(link)\n\n link.click()\n\n document.body.removeChild(link)\n } else {\n window.open(uri)\n }\n}\n","import {\n TimeRange,\n CustomTimeRange,\n TimeRangeDirection,\n TimeZone,\n} from 'src/types'\nimport {Duration, DurationUnit} from 'src/types/ast'\nimport {TIME_RANGE_FORMAT} from 'src/shared/constants/timeRanges'\nimport {createDateTimeFormatter} from 'src/utils/datetime/formatters'\n\nexport const removeSpacesNowAndMinus = (input: string): string =>\n input.replace(/\\s/g, '').replace(/now\\(\\)-/, '')\n\nexport const isDurationWithNowParseable = (lower: string): boolean => {\n const durationRegExp = /([0-9]+)(y|mo|w|d|h|ms|s|m|us|µs|ns)/g\n if (!lower || !lower.includes('now()')) {\n return false\n }\n // warning! Using string.match(regex) here instead of regex.test(string) because regex.test() modifies the regex object, and can lead to unexpected behavior\n const removedLower = removeSpacesNowAndMinus(lower)\n\n return !!removedLower.match(durationRegExp)\n}\n\nexport const isDurationParseable = (duration: string): boolean => {\n if (typeof duration !== 'string') {\n return false\n }\n\n const durationRegExp = /^(([0-9]+)(y|mo|w|d|h|ms|s|m|us|µs|ns))+$/g\n\n // warning! Using string.match(regex) here instead of regex.test(string) because regex.test() modifies the regex object, and can lead to unexpected behavior\n\n return !!duration.match(durationRegExp)\n}\n\nexport const parseDuration = (input: string): Duration[] => {\n const result = []\n const durationRegExp = /([0-9]+)(y|mo|w|d|h|ms|s|m|us|µs|ns)/g\n\n // warning! regex.exec(string) modifies the regex it is operating on so that subsequent calls on the same string behave differently\n let match = durationRegExp.exec(input)\n\n if (!match) {\n throw new Error(`could not parse \"${input}\" as duration`)\n }\n\n while (match) {\n result.push({\n magnitude: +match[1],\n unit: match[2],\n })\n\n match = durationRegExp.exec(input)\n }\n\n return result\n}\n\nconst UNIT_TO_APPROX_MS = {\n ns: 1 / 1000000,\n µs: 1 / 1000,\n us: 1 / 1000,\n ms: 1,\n s: 1000,\n m: 1000 * 60,\n h: 1000 * 60 * 60,\n d: 1000 * 60 * 60 * 24,\n w: 1000 * 60 * 60 * 24 * 7,\n mo: 1000 * 60 * 60 * 24 * 30,\n y: 1000 * 60 * 60 * 24 * 365,\n}\n\nexport const durationToMilliseconds = (duration: Duration[]): number =>\n duration.reduce(\n (sum, {magnitude, unit}) => sum + magnitude * UNIT_TO_APPROX_MS[unit],\n 0\n )\n\n/*\n Convert an amount of milliseconds to a duration string.\n\n The returned duration string will use the largest units possible, e.g.\n\n millisecondsToDuration(9_000_000)\n\n Will return `2h30m` rather than `9000000ms`.\n*/\nexport const millisecondsToDuration = (value: number): string => {\n const unitsAndMs = Object.entries(UNIT_TO_APPROX_MS).sort(\n (a, b) => b[1] - a[1]\n ) as [DurationUnit, number][]\n\n const durations: Duration[] = []\n\n let unitIndex = 0\n let remainder = value\n\n while (unitIndex < unitsAndMs.length) {\n const [unit, unitAsMs] = unitsAndMs[unitIndex]\n const valueInUnit = remainder / unitAsMs\n\n durations.push({unit, magnitude: Math.floor(valueInUnit)})\n remainder = remainder - Math.floor(valueInUnit) * unitAsMs\n unitIndex += 1\n }\n\n return durations\n .filter(({magnitude}) => magnitude > 0)\n .reduce((s, {unit, magnitude}) => `${s}${magnitude}${unit}`, '')\n}\n\nexport const areDurationsEqual = (a: string, b: string): boolean => {\n try {\n return (\n durationToMilliseconds(parseDuration(a)) ===\n durationToMilliseconds(parseDuration(b))\n )\n } catch {\n return false\n }\n}\n\nexport const timeRangeToDuration = (timeRange: TimeRange): string => {\n if (timeRange.upper || !timeRange.lower || !timeRange.lower.includes('now')) {\n throw new Error('cannot convert time range to duration')\n }\n\n return removeSpacesNowAndMinus(timeRange.lower)\n}\n\nexport const convertTimeRangeToCustom = (\n timeRange: TimeRange\n): CustomTimeRange => {\n if (timeRange.type === 'custom') {\n return timeRange\n }\n\n const upper = new Date().toISOString()\n let lower = ''\n\n if (timeRange.type === 'selectable-duration') {\n const lowerDate = new Date()\n lowerDate.setSeconds(lowerDate.getSeconds() - timeRange.seconds)\n lower = lowerDate.toISOString()\n } else if (timeRange.type === 'duration') {\n const millisecondDuration = durationToMilliseconds(\n parseDuration(timeRangeToDuration(timeRange))\n )\n const lowerDate = new Date()\n lowerDate.setMilliseconds(lowerDate.getMilliseconds() - millisecondDuration)\n lower = lowerDate.toISOString()\n }\n\n return {\n lower,\n upper,\n type: 'custom',\n }\n}\n\nexport const getTimeRangeLabel = (\n timeRange: TimeRange,\n timeZone?: TimeZone,\n singleDirection?: TimeRangeDirection\n): string => {\n const durationRegExp = /([0-9]+)(y|mo|w|d|h|ms|s|m|us|µs|ns)/g\n if (timeRange.type === 'selectable-duration') {\n return timeRange.label\n }\n if (timeRange.type === 'duration') {\n return timeRange.lower\n }\n if (timeRange.type === 'custom') {\n const formatter = createDateTimeFormatter(TIME_RANGE_FORMAT, timeZone)\n let lower = timeRange.lower\n let upper = timeRange.upper\n if (!lower?.match(durationRegExp) && lower !== 'now()') {\n lower = formatter.format(new Date(timeRange.lower))\n }\n if (!upper?.match(durationRegExp) && upper !== 'now()') {\n upper = formatter.format(new Date(timeRange.upper))\n }\n if (singleDirection === TimeRangeDirection.Upper) {\n return upper\n } else if (singleDirection === TimeRangeDirection.Lower) {\n return lower\n }\n return `${lower} to ${upper}`\n }\n}\n","import {ErrorInfo} from 'react'\nimport HoneyBadger from 'honeybadger-js'\nimport {\n CLOUD,\n GIT_SHA,\n HONEYBADGER_KEY,\n HONEYBADGER_ENV,\n} from 'src/shared/constants'\n\nimport {getUserFlags} from 'src/shared/utils/featureFlag'\nimport {event} from 'src/cloud/utils/reporting'\n\nif (CLOUD) {\n HoneyBadger.configure({\n apiKey: HONEYBADGER_KEY,\n revision: GIT_SHA,\n environment: HONEYBADGER_ENV,\n })\n}\n\n// See https://docs.honeybadger.io/lib/javascript/guides/reporting-errors.html#additional-options\ninterface HoneyBadgerAdditionalOptions {\n component?: string\n context?: {[key: string]: any}\n cookies?: {[key: string]: any}\n name?: string\n params?: {[key: string]: any}\n}\n\nexport const reportErrorThroughHoneyBadger = (\n error: Error,\n additionalOptions?: HoneyBadgerAdditionalOptions\n): void => {\n let additionalContext = {}\n if (additionalOptions && additionalOptions.context) {\n additionalContext = {...additionalOptions.context}\n }\n\n const context = {\n ...additionalContext,\n ...getUserFlags(),\n }\n\n let options: HoneyBadgerAdditionalOptions = {}\n if (additionalOptions) {\n options = {...additionalOptions}\n\n delete options.context // already included in the above context object\n }\n\n if (CLOUD) {\n HoneyBadger.notify(error, {context, ...options})\n\n let errorType = 'generic (untagged) error'\n if (options.name) {\n errorType = options.name\n } else if (options.component) {\n errorType = options.component\n }\n\n event('ui error', {error: errorType}, {errorCount: 1})\n } else {\n console.error(error)\n }\n}\n\n/*\n Parse React's error boundary info message to provide the name of the\n component an error occured in.\n\n For example, given the following info message:\n\n The above error occurred in the component:\n in MePage (created by ErrorBoundary(MePage))\n in ErrorBoundary (created by ErrorBoundary(MePage))\n in ErrorBoundary(MePage) (created by Connect(ErrorBoundary(MePage)))\n in Connect(ErrorBoundary(MePage)) (created by RouterContext)\n in SpinnerContainer (created by SetOrg)\n ...\n\n We will extract \"MePage\" as the component name.\n*/\nexport const parseComponentName = (errorInfo: ErrorInfo): string => {\n const componentName = errorInfo.componentStack\n .trim()\n .split('\\n')\n .map(s => s.split(' ')[1])[0]\n\n return componentName\n}\n","import {FunctionComponent} from 'react'\nimport {activeFlags} from 'src/shared/selectors/flags'\nimport {clearOverrides, setOverride} from 'src/shared/actions/flags'\n\nimport {getStore} from 'src/store/configureStore'\n\nexport const isFlagEnabled = (flagName: string, equals?: string | boolean) => {\n let _equals = equals\n const flags = activeFlags(getStore().getState())\n\n if (_equals === undefined) {\n _equals = true\n }\n\n if (flags.hasOwnProperty(flagName)) {\n return flags[flagName] === _equals\n }\n\n return false\n}\n\nexport const getFlagValue = (flagName: string) => {\n const flags = activeFlags(getStore().getState())\n\n if (flags.hasOwnProperty(flagName)) {\n return flags[flagName]\n }\n\n return null\n}\n\n// type influx.toggle('myFlag') to disable / enable any feature flag\nexport const FeatureFlag: FunctionComponent<{\n name: string\n equals?: string | boolean\n}> = ({name, equals, children}) => {\n if (!isFlagEnabled(name, equals)) {\n return null\n }\n\n return children as any\n}\n\nexport const getUserFlags = () => activeFlags(getStore().getState())\n\nconst orderObject = unordered => {\n return Object.keys(unordered)\n .sort()\n .reduce((obj, key) => {\n obj[key] = unordered[key]\n return obj\n }, {})\n}\n\n/* eslint-disable no-console */\nconst list = () => {\n console.log('Currently Available Feature Flags')\n console.table(orderObject(getUserFlags()))\n}\n/* eslint-enable no-console */\n\nconst reset = () => {\n getStore().dispatch(clearOverrides())\n}\n\nexport const set = (flagName: string, value: string | boolean) => {\n getStore().dispatch(setOverride(flagName, value))\n}\n\nexport const toggle = (flagName: string): boolean => {\n const flags = getUserFlags()\n\n set(flagName, !flags[flagName])\n\n return !flags[flagName]\n}\n\n// Expose utility in dev tools console for convenience\nconst w: any = window\n\nw.influx = {toggle, list, reset, set}\n","// Utils\nimport {parseASTIM} from 'src/variables/utils/astim'\n\n// Types\nimport {QueryViewProperties, View, ViewProperties, Variable} from 'src/types'\n\nfunction isQueryViewProperties(vp: ViewProperties): vp is QueryViewProperties {\n return (vp as QueryViewProperties).queries !== undefined\n}\n\nexport const getAllUsedVars = (\n variables: Variable[],\n usedVars: Variable[],\n cache: {[name: string]: boolean}\n): Variable[] => {\n const vars = usedVars.slice()\n let varsInUse = []\n usedVars.forEach((vari: Variable) => {\n if (vari.arguments.type === 'query') {\n const queryText = vari?.arguments?.values?.query || ''\n const astim = parseASTIM(queryText)\n const usedV = variables.filter(variable =>\n astim.hasVariable(variable.name)\n )\n varsInUse = varsInUse.concat(usedV)\n }\n })\n\n varsInUse.forEach((v: Variable) => {\n if (!cache[v.name]) {\n vars.push(v)\n cache[v.name] = true\n }\n })\n\n if (vars.length !== usedVars.length) {\n return getAllUsedVars(variables, vars, cache)\n }\n\n return vars\n}\n\n/*\n Creates an initial cache of the variables used at the root level in a query\n*/\nexport const createdUsedVarsCache = (variables: Variable[]) => {\n return variables.reduce((cache, curr) => {\n cache[curr.name] = true\n return cache\n }, {})\n}\n\nexport const filterUnusedVarsBasedOnQuery = (\n variables: Variable[],\n queryTexts: string[]\n): Variable[] => {\n const astims = queryTexts.map(query => parseASTIM(query))\n const varsInUse = variables.filter(variable =>\n astims.some(astim => astim.hasVariable(variable.name))\n )\n const cachedVars = createdUsedVarsCache(varsInUse)\n\n return getAllUsedVars(variables, varsInUse, cachedVars)\n}\n\n/*\n Given a collection variables and a collection of views, return only the\n variables that are used in at least one of the view queries.\n*/\nexport const filterUnusedVars = (\n variables: Variable[],\n views: View[]\n): Variable[] => {\n const viewProperties = views.map(v => v.properties).filter(vp => !!vp)\n const queryViewProperties = viewProperties.filter(isQueryViewProperties)\n\n const queryTexts = queryViewProperties.reduce(\n (acc, vp) => [...acc, ...(vp.queries || []).map(query => query.text)],\n [] as Array\n )\n\n return filterUnusedVarsBasedOnQuery(variables, queryTexts)\n}\n","import {FluxFunction} from 'src/types/shared'\n\n// temporary solution, for the top 20 functions\n// longterm solution requires changes in the payload from the backend (flux docs)\nconst TOP_20 = {\n 'universe.filter': 'filter(fn: (r) => r._measurement == \"cpu\")',\n 'universe.range': 'range(start: -15m, stop: now())',\n 'universe.sort': 'sort(columns: [\"_value\"], desc: false)',\n 'universe.keep': 'keep(columns: [\"col1\", \"col2\"])',\n 'universe.yield': 'yield(name: \"custom-name\")',\n 'universe.map': 'map(fn: (r) => ({ r with _value: r._value * r._value }))',\n 'universe.pivot':\n 'pivot(rowKey:[\"_time\"], columnKey: [\"_field\"], valueColumn: \"_value\")',\n 'universe.last': 'last()',\n 'universe.fill': 'fill(column: \"_value\", usePrevious: true)',\n 'universe.time': 'time(v: r._value)',\n 'universe.union': 'union(tables: [table1, table2])',\n 'universe.int': 'int(v: r._value)',\n 'events.duration': `events.duration(\n unit: 1ns,\n columnName: \"duration\",\n timeColumn: \"_time\",\n stopColumn: \"_stop\",\n stop: 2020-01-01T00:00:00Z\n)`,\n 'universe.group': 'group(columns: [\"host\", \"_measurement\"], mode:\"by\")',\n 'universe.aggregateWindow':\n 'aggregateWindow(every: v.windowPeriod, fn: mean)',\n 'universe.limit': 'limit(n:10, offset: 0)',\n 'universe.now': 'now()',\n 'universe.distinct': 'distinct(column: \"host\")',\n 'universe.sum': 'sum(column: \"_value\")',\n}\n\nexport const getFluxExample = (func: FluxFunction) => {\n const {fluxParameters = [], kind, name, package: packageName} = func\n\n let example = `${packageName}.${name}`\n\n if (!!TOP_20[example]) {\n return {...func, example: TOP_20[example]}\n }\n\n if (kind.toLowerCase() === 'function') {\n let injectedParameters = ''\n for (const parameter of fluxParameters) {\n if (parameter.required) {\n // add a comma if the current injected list is not all spaces\n if (injectedParameters.trim().length !== 0) {\n injectedParameters = `${injectedParameters}, `\n }\n injectedParameters = `${injectedParameters}${parameter.name}: `\n } else {\n injectedParameters = `${injectedParameters} `\n }\n }\n injectedParameters = injectedParameters.trim().length\n ? injectedParameters.trimLeft()\n : injectedParameters.trim()\n example =\n packageName === 'universe'\n ? `${name}(${injectedParameters})`\n : `${packageName}.${name}(${injectedParameters})`\n }\n return {...func, example}\n}\n","// Libraries\nimport {get} from 'lodash'\n\n// Utils\nimport {findNodes} from 'src/shared/utils/ast'\nimport {durationToMilliseconds} from 'src/shared/utils/duration'\n\n// Types\nimport {\n Node,\n Package,\n CallExpression,\n Property,\n Expression,\n Identifier,\n ObjectExpression,\n DateTimeLiteral,\n DurationLiteral,\n} from 'src/types'\n\nexport function getMinDurationFromAST(ast: Package): number {\n // We can't take the minimum of durations of each range individually, since\n // separate ranges are potentially combined via an inner `join` call. So the\n // approach is to:\n //\n // 1. Find every possible `[start, stop]` combination for all start and stop\n // times across every `range` call\n // 2. Map each combination to a duration via `stop - start`\n // 3. Filter out the non-positive durations\n // 4. Take the minimum duration\n //\n const times = allRangeTimes(ast)\n\n if (!times.length) {\n throw new Error('no time ranges found in query')\n }\n\n const starts = times.map(t => t[0])\n const stops = times.map(t => t[1])\n const cartesianProduct = starts.map(start => stops.map(stop => [start, stop]))\n\n const durations = []\n .concat(...cartesianProduct)\n .map(([start, stop]) => stop - start)\n .filter(d => d > 0)\n\n const result = Math.min(...durations)\n\n return result\n}\n\nfunction allRangeTimes(ast: any): Array<[number, number]> {\n return findNodes(ast, isRangeNode).map(node => rangeTimes(ast, node))\n}\n\n/*\n Given a `range` call in an AST, reports the `start` and `stop` arguments the\n the call as absolute instants in time. If the `start` or `stop` argument is a\n relative duration literal, it is interpreted as relative to the current\n instant (`Date.now()`).\n*/\nfunction rangeTimes(ast: any, rangeNode: CallExpression): [number, number] {\n const now = Date.now()\n const properties: Property[] = (rangeNode.arguments[0] as ObjectExpression)\n .properties\n\n // The `start` argument is required\n const startProperty = properties.find(\n p => (p.key as Identifier).name === 'start'\n )\n\n const start = propertyTime(ast, startProperty.value, now)\n\n // The `end` argument to a `range` call is optional, and defaults to now\n const endProperty = properties.find(\n p => (p.key as Identifier).name === 'stop'\n )\n\n const end = endProperty ? propertyTime(ast, endProperty.value, now) : now\n if (isNaN(start) || isNaN(end)) {\n throw new Error('failed to analyze query')\n }\n\n return [start, end]\n}\n\nexport function propertyTime(ast: any, value: Expression, now: number): number {\n switch (value.type) {\n case 'UnaryExpression':\n return (\n now - durationToMilliseconds((value.argument as DurationLiteral).values)\n )\n\n case 'DurationLiteral':\n return now + durationToMilliseconds(value.values)\n\n case 'StringLiteral':\n case 'DateTimeLiteral':\n return Date.parse(value.value)\n\n case 'Identifier':\n return propertyTime(ast, lookupVariable(ast, value.name), now)\n\n case 'BinaryExpression':\n const leftTime = Date.parse((value.left as DateTimeLiteral).value)\n const rightDuration = durationToMilliseconds(\n (value.right as DurationLiteral).values\n )\n\n switch (value.operator) {\n case '+':\n return leftTime + rightDuration\n case '-':\n return leftTime - rightDuration\n default:\n throw new Error(`unexpected operator ${value.operator}`)\n }\n\n case 'MemberExpression':\n const objName = get(value, 'object.name')\n const propertyName = get(value, 'property.name')\n const objExpr = lookupVariable(ast, objName) as ObjectExpression\n const property = objExpr.properties.find(\n p => get(p, 'key.name') === propertyName\n )\n\n return propertyTime(ast, property.value, now)\n\n case 'CallExpression':\n if (isNowCall(value)) {\n return now\n }\n if (isTimeCall(value)) {\n const property = get(value, 'arguments[0].properties[0]value', {})\n return propertyTime(ast, property, now)\n }\n\n throw new Error('unexpected CallExpression')\n\n default:\n throw new Error(`unexpected expression type ${value.type}`)\n }\n}\n\n/*\n Find the node in the `ast` that defines the value of the variable with the\n given `name`.\n*/\nfunction lookupVariable(ast: any, name: string): Expression {\n const isDeclarator = node => {\n return (\n get(node, 'type') === 'VariableAssignment' &&\n get(node, 'id.name') === name\n )\n }\n\n const declarator = findNodes(ast, isDeclarator)\n\n if (!declarator.length) {\n throw new Error(`unable to lookup variable \"${name}\"`)\n }\n\n if (declarator.length > 1) {\n throw new Error('cannot lookup variable with duplicate declarations')\n }\n\n const init = declarator[0].init\n\n return init\n}\n\nfunction isNowCall(node: CallExpression): boolean {\n return get(node, 'callee.name') === 'now'\n}\n\nfunction isTimeCall(node: CallExpression): boolean {\n return get(node, 'callee.name') === 'time'\n}\n\nfunction isRangeNode(node: Node) {\n return (\n get(node, 'callee.type') === 'Identifier' &&\n get(node, 'callee.name') === 'range'\n )\n}\n","import {getOrg} from 'src/organizations/selectors'\nimport {getStore} from 'src/store/configureStore'\nimport {CLOUD} from 'src/shared/constants'\n\nexport const pageTitleSuffixer = (pageTitles: string[]): string => {\n const state = getStore().getState()\n const org = getOrg(state)\n const environment = CLOUD ? 'InfluxDB Cloud' : 'InfluxDB'\n const titles =\n org && org.name\n ? [...pageTitles, getOrg(state).name, environment]\n : [...pageTitles, environment]\n\n return titles.join(' | ')\n}\n","import {get} from 'lodash'\n\nexport enum SortTypes {\n String = 'string',\n Date = 'date',\n Float = 'float',\n}\n\nconst collator = new Intl.Collator('en-us', {numeric: true})\n\nfunction orderByType(data, type) {\n switch (type) {\n case SortTypes.String:\n return data?.toLowerCase() ?? ''\n case SortTypes.Date:\n return Date.parse(data)\n case SortTypes.Float:\n return parseFloat(data)\n default:\n return data\n }\n}\n\nexport function getSortedResources(\n resourceList: T[],\n sortKey: string,\n sortDirection: string,\n sortType: string\n): T[] {\n if (sortKey && sortDirection) {\n return [...resourceList].sort((item1, item2) => {\n if (sortDirection === 'desc') {\n return collator.compare(\n orderByType(get(item2, sortKey), sortType),\n orderByType(get(item1, sortKey), sortType)\n )\n }\n return collator.compare(\n orderByType(get(item1, sortKey), sortType),\n orderByType(get(item2, sortKey), sortType)\n )\n })\n }\n return resourceList\n}\n","import {ComponentStatus} from '@influxdata/clockface'\nimport {RemoteDataState} from 'src/types'\n\nexport const toComponentStatus = (status: RemoteDataState): ComponentStatus => {\n if (status === RemoteDataState.NotStarted) {\n return ComponentStatus.Disabled\n }\n\n if (status === RemoteDataState.Loading) {\n return ComponentStatus.Loading\n }\n\n if (status === RemoteDataState.Error) {\n return ComponentStatus.Error\n }\n\n return ComponentStatus.Default\n}\n","import {useRef, useState, useEffect} from 'react'\n\n/*\n Use local state with a default value. The state will be reset to the default\n any time the default is updated.\n\n It's a \"one way\" binding between the default value and state, since updating\n the default will cause the state to update, but updating the state will not\n cause the default to update.\n*/\nexport const useOneWayState = (defaultState: any) => {\n const isFirstRender = useRef(true)\n const [state, setState] = useState(defaultState)\n\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false\n\n return\n }\n\n setState(defaultState)\n }, [defaultState])\n\n return [state, setState]\n}\n","export const validateURI = (value: string): boolean => {\n const regex = /http[s]?:\\/\\//\n\n if (regex.test(value)) {\n return true\n }\n return false\n}\n","// Libraries\nimport {Table, LineInterpolation, FromFluxResult} from '@influxdata/giraffe'\nimport {S2} from 's2-geometry'\n\n// Types\nimport {Axis, LatLonColumns, XYGeom} from 'src/types'\n\nexport const HEX_DIGIT_PRECISION = 16\n\n/*\n A geom may be stored as \"line\", \"step\", \"monotoneX\", \"bar\", \"stacked\", \"stepBefore\", or \"stepAfter\", but\n we currently only support the \"line\", \"step\", \"stepBefore\", \"stepAfter\", and \"monotoneX\" geoms.\n*/\nexport const resolveGeom = (geom: XYGeom) => {\n if (\n geom === 'step' ||\n geom === 'monotoneX' ||\n geom === 'stepBefore' ||\n geom === 'stepAfter'\n ) {\n return geom\n }\n\n return 'line'\n}\n\nexport const geomToInterpolation = (geom: XYGeom): LineInterpolation => {\n const resolvedGeom = resolveGeom(geom)\n\n switch (resolvedGeom) {\n case 'step':\n return 'step'\n case 'monotoneX':\n return 'monotoneX'\n case 'stepBefore':\n return 'stepBefore'\n case 'stepAfter':\n return 'stepAfter'\n default:\n return 'linear'\n }\n}\n\nexport const NOISY_LEGEND_COLUMN_NAMES = ['_start', '_stop', 'result']\nconst NOISY_LEGEND_COLUMNS = new Set(NOISY_LEGEND_COLUMN_NAMES)\n\n/*\n Some columns (e.g. `_start` and `_stop`) appear frequently in Flux group\n keys, but rarely affect the actual grouping of data since every value in the\n response for these columns is equal. When this is the case, we hide these\n columns in the hover legend.\n*/\nexport const filterNoisyColumns = (columns: string[], table: Table): string[] =>\n columns.filter(key => {\n if (!NOISY_LEGEND_COLUMNS.has(key)) {\n return true\n }\n\n const keyData = table.getColumn(key)\n\n if (keyData === null) {\n return false\n }\n\n for (const d of keyData) {\n if (d !== keyData[0]) {\n return true\n }\n }\n\n return false\n })\n\nexport const parseXBounds = (\n bounds: Axis['bounds']\n): [number, number] | null => {\n if (\n !bounds ||\n !bounds[0] ||\n !bounds[1] ||\n isNaN(+bounds[0]) ||\n isNaN(+bounds[1])\n ) {\n return null\n }\n\n return [+bounds[0], +bounds[1]]\n}\n\nexport const parseYBounds = (\n bounds: Axis['bounds']\n): [number | null, number | null] | null => {\n if (!bounds || (!bounds[0] && !bounds[1])) {\n return null\n }\n\n const min = isNaN(parseFloat(bounds[0])) ? null : parseFloat(bounds[0])\n const max = isNaN(parseFloat(bounds[1])) ? null : parseFloat(bounds[1])\n return [min, max]\n}\n\nexport const extent = (xs: number[]): [number, number] | null => {\n if (!xs || !xs.length) {\n return null\n }\n\n let low = Infinity\n let high = -Infinity\n\n for (const x of xs) {\n if (x < low) {\n low = x\n }\n\n if (x > high) {\n high = x\n }\n }\n\n if (low === Infinity || high === -Infinity) {\n return null\n }\n\n return [low, high]\n}\n\nexport const checkResultsLength = (giraffeResult: FromFluxResult): boolean => {\n return (giraffeResult.table?.length || 0) > 0\n}\n\nexport const getNumericColumns = (table: Table): string[] => {\n const timeColumns = table.columnKeys.filter(k => {\n if (k === 'result' || k === 'table') {\n return false\n }\n\n const columnType = table.getColumnType(k)\n\n return columnType === 'time' || columnType === 'number'\n })\n\n return timeColumns\n}\n\nexport const getTimeColumns = (table: Table): string[] => {\n const timeColumns = table.columnKeys.filter(k => {\n if (k === 'result' || k === 'table') {\n return false\n }\n\n const columnType = table.getColumnType(k)\n return columnType === 'time'\n })\n\n return timeColumns\n}\n\nexport const getNumberColumns = (table: Table): string[] => {\n const numberColumnKeys = table.columnKeys.filter(k => {\n if (k === 'result' || k === 'table') {\n return false\n }\n\n const columnType = table.getColumnType(k)\n return columnType === 'number'\n })\n\n return numberColumnKeys\n}\n\nexport const getStringColumns = (table: Table): string[] => {\n const stringColumnKeys = table.columnKeys.filter(k => {\n if (k === 'result' || k === 'table') {\n return false\n }\n\n const columnType = table.getColumnType(k)\n\n return columnType === 'string'\n })\n\n return stringColumnKeys\n}\n\nexport const getGroupableColumns = (table: Table): string[] => {\n const invalidGroupColumns = new Set(['_value', '_time', 'table'])\n const groupableColumns = table.columnKeys.filter(\n name => !invalidGroupColumns.has(name)\n )\n\n return groupableColumns\n}\n\n/*\n Previously we would automatically select an x and y column setting for an\n `XYView` based on the current Flux response. We then added support for an\n explicit x and y column setting by adding `xColumn` and `yColumn` fields to\n the `XYView`.\n\n We did not migrate existing views when adding the fields, so the fields are\n considered optional. Thus to resolve the correct x and y column selections\n for an `XYView`, we need to:\n\n 1. Use the `xColumn` and `yColumn` fields if they exist\n 2. Fall back to automatically selecting and x and y column if not\n\n A `null` result from this function indicates that no valid selection could be\n made.\n*/\n\nexport const defaultXColumn = (\n table: Table,\n preferredColumnKey?: string\n): string | null => {\n const validColumnKeys = [...getTimeColumns(table), ...getNumberColumns(table)]\n if (validColumnKeys.includes(preferredColumnKey)) {\n return preferredColumnKey\n }\n for (const key of ['_time', '_stop', '_start']) {\n if (validColumnKeys.includes(key)) {\n return key\n }\n }\n\n if (validColumnKeys.length) {\n return validColumnKeys[0]\n }\n\n return null\n}\n\n/*\n See `defaultXColumn`.\n*/\nexport const defaultYColumn = (\n table: Table,\n preferredColumnKey?: string\n): string | null => {\n const validColumnKeys = [...getTimeColumns(table), ...getNumberColumns(table)]\n\n if (validColumnKeys.includes(preferredColumnKey)) {\n return preferredColumnKey\n }\n\n for (const key of validColumnKeys) {\n if (key.startsWith('_value')) {\n return key\n }\n }\n\n if (validColumnKeys.length) {\n return validColumnKeys[0]\n }\n\n return null\n}\n\nexport const defaultYSeriesColumns = (\n table: Table,\n preferredYSeriesColumns: Array\n): Array => {\n const validColumnKeys = [...getStringColumns(table)]\n let ySeriesColumns = []\n\n if (Array.isArray(preferredYSeriesColumns)) {\n ySeriesColumns = preferredYSeriesColumns.filter(columnKey =>\n validColumnKeys.includes(columnKey)\n )\n }\n if (ySeriesColumns.length === 0) {\n const defaultKey = validColumnKeys.find(\n columnKey => columnKey.startsWith('_') === false\n )\n if (defaultKey) {\n ySeriesColumns.push(defaultKey)\n }\n }\n\n return ySeriesColumns\n}\n\nexport const defaultYLabelColumns = (\n preferredYSeriesColumns: Array,\n validYSeriesColumns: Array\n): Array => {\n return Array.isArray(preferredYSeriesColumns) &&\n Array.isArray(validYSeriesColumns)\n ? preferredYSeriesColumns.filter(columnKey =>\n validYSeriesColumns.includes(columnKey)\n )\n : []\n}\n\nexport const isInDomain = (value: number, domain: number[]) =>\n value >= domain[0] && value <= domain[1]\n\nexport const clamp = (value: number, domain: number[]) => {\n if (value < domain[0]) {\n return domain[0]\n }\n\n if (value > domain[1]) {\n return domain[1]\n }\n\n return value\n}\n\nexport const getMainColumnName = (\n selectedFunctions: string[],\n upperColumn: string,\n mainColumn: string,\n lowerColumn: string\n): string => {\n const hasMainColumn = selectedFunctions.some(\n funcName => funcName === mainColumn\n )\n\n if (hasMainColumn) {\n return mainColumn\n }\n\n for (let i = 0; i < selectedFunctions.length; i += 1) {\n const func = selectedFunctions[i]\n if (func !== upperColumn && func !== lowerColumn) {\n return func\n }\n }\n return ''\n}\n\nexport enum CoordinateType {\n S2 = 'S2 cell id',\n Tags = 'Lat/long as tags',\n Fields = 'Lat/Long as fields',\n None = 'Lat/Long not provided',\n}\n\nconst getS2CellID = (s2Column: string, table: Table, index: number): string => {\n const column = table.getColumn(s2Column)\n if (!column) {\n throw new Error(\n 'Cannot retrieve s2_cell_id column - table does not conform to required structure of Table type'\n )\n }\n\n const value = column[index]\n if (typeof value !== 'string') {\n throw new Error('invalid s2_cell_id column value - value must be a string')\n }\n return value\n}\n\nconst getPrecisionTrimmingTableValue = (): bigint[] => {\n const precisionTable = [BigInt(1)]\n for (let i = 1; i <= HEX_DIGIT_PRECISION; i++) {\n precisionTable[i] = precisionTable[i - 1] * BigInt(HEX_DIGIT_PRECISION)\n }\n return precisionTable\n}\n\nconst getCoordinateFromS2 = (s2Column, table, index) => {\n const cellId = getS2CellID(s2Column, table, index)\n\n if (cellId.length > HEX_DIGIT_PRECISION) {\n throw new Error(\n 'invalid cellId length - value must not be longer than the defined hex digit precision'\n )\n }\n\n const fixed =\n BigInt('0x' + cellId) *\n getPrecisionTrimmingTableValue()[HEX_DIGIT_PRECISION - cellId.length]\n\n const geoCoordinateValue = S2.idToLatLng(fixed.toString())\n\n return {\n lat: geoCoordinateValue.lat,\n lon: geoCoordinateValue.lng,\n }\n}\n\nconst getColumnValue = (table: Table, field: string) => {\n const fieldColumn = table.getColumn('_field')\n\n if (!fieldColumn) {\n throw new Error(\n 'Cannot retrieve _field column - table does not conform to required structure of Table type'\n )\n }\n const index = fieldColumn.findIndex(val => val === field)\n if (index < 0) {\n throw new Error('Map type requires the fields to be either lat or lon')\n }\n const valueColumn = table.getColumn('_value')\n const value = valueColumn[index]\n\n return value\n}\n\nexport const parseCoordinates = coordinate =>\n parseInt(coordinate.toString(), 10)\n\nconst latLonAsTags = latLonColumns => {\n return latLonColumns?.lat?.key === 'tag' && latLonColumns?.lon?.key === 'tag'\n}\n\nconst getCoordinateColumn = (\n table: Table,\n useS2CellID: boolean,\n s2Column: string,\n latLonColumns: LatLonColumns\n): string => {\n try {\n if (useS2CellID && s2Column !== '') {\n const column = table.getColumn(s2Column || 's2_cell_id')\n if (column !== null) {\n return CoordinateType.S2\n }\n }\n if (latLonAsTags(latLonColumns)) {\n const lat = table.getColumn(latLonColumns?.lat?.column || 'lat')\n const lon = table.getColumn(latLonColumns?.lon?.column || 'lon')\n\n if (lat !== null && lon !== null) {\n return CoordinateType.Tags\n }\n }\n\n const latCoordinate = getColumnValue(\n table,\n latLonColumns?.lat?.column || 'lat'\n )\n const lonCoordinate = getColumnValue(\n table,\n latLonColumns?.lon?.column || 'lon'\n )\n\n if (latCoordinate && lonCoordinate) {\n return CoordinateType.Fields\n }\n\n return CoordinateType.None\n } catch {\n throw new Error('lat_lon_not_found')\n }\n}\n\nexport const getGeoCoordinates = (\n table: Table,\n index: number,\n useS2CellID: boolean,\n s2Column: string,\n latLonColumns: LatLonColumns\n): {lon: number; lat: number} | null => {\n const coordinateColumn = getCoordinateColumn(\n table,\n useS2CellID,\n s2Column,\n latLonColumns\n )\n\n switch (coordinateColumn) {\n case CoordinateType.S2:\n return getCoordinateFromS2(s2Column, table, index)\n case CoordinateType.Tags:\n const latColumn = table.getColumn(latLonColumns?.lat?.column || 'lat')\n const latParsed = parseCoordinates(latColumn[index])\n const lonColumn = table.getColumn(latLonColumns?.lon?.column || 'lon')\n const lonParsed = parseCoordinates(lonColumn[index])\n if (isNaN(latParsed) || isNaN(lonParsed)) {\n throw new Error('lat_lon_not_provided')\n }\n return {\n lat: latParsed,\n lon: lonParsed,\n }\n case CoordinateType.Fields:\n const latCoordinate = getColumnValue(\n table,\n latLonColumns?.lat?.column || 'lat'\n )\n const latCoordinateParsed = parseCoordinates(latCoordinate)\n const lonCoordinate = getColumnValue(\n table,\n latLonColumns?.lon?.column || 'lon'\n )\n const lonCoordinateParsed = parseCoordinates(lonCoordinate)\n if (isNaN(latCoordinateParsed) || isNaN(lonCoordinateParsed)) {\n throw new Error('lat_lon_not_provided')\n }\n return {\n lat: latCoordinateParsed,\n lon: lonCoordinateParsed,\n }\n default:\n throw new Error('lat_lon_not_provided')\n }\n}\n","import {Dispatch, Action, Middleware} from 'redux'\n\n// Trigger resize event to re-layout the React Layout plugin\nexport const resizeLayout: Middleware =\n () => (next: Dispatch) => (action: Action) => {\n next(action)\n\n if (\n action.type === 'ENABLE_PRESENTATION_MODE' ||\n action.type === 'DISABLE_PRESENTATION_MODE'\n ) {\n // Uses longer event object creation method due to IE compatibility.\n const evt = document.createEvent('HTMLEvents')\n evt.initEvent('resize', false, true)\n window.dispatchEvent(evt)\n }\n }\n","import {Middleware, Dispatch, Action} from 'redux'\n\nimport {enablePresentationMode} from 'src/shared/actions/app'\n\nexport const queryStringConfig: Middleware =\n () => (dispatch: Dispatch) => (action: Action) => {\n dispatch(action)\n\n if (new URLSearchParams(window.location.search).get('present') === 'true') {\n dispatch(enablePresentationMode())\n }\n }\n","import {combineReducers} from 'redux'\n\n// Types\nimport {ActionTypes, Action} from 'src/shared/actions/app'\nimport {AUTOREFRESH_DEFAULT_INTERVAL} from 'src/shared/constants'\nimport {TimeZone, NavBarState, Theme, VersionInfo, FlowsCTA} from 'src/types'\n\nexport interface AppState {\n ephemeral: {\n inPresentationMode: boolean\n }\n persisted: {\n autoRefresh: number\n showTemplateControlBar: boolean\n timeZone: TimeZone\n navBarState: NavBarState\n scriptQueryBuilder: boolean\n theme: Theme\n versionInfo: VersionInfo\n flowsCTA: FlowsCTA\n subscriptionsCertificateInterest: boolean\n workerRegistration: Promise\n }\n}\n\nconst initialState: AppState = {\n ephemeral: {\n inPresentationMode: false,\n },\n persisted: {\n theme: 'dark',\n autoRefresh: AUTOREFRESH_DEFAULT_INTERVAL,\n showTemplateControlBar: false,\n timeZone: 'Local',\n navBarState: 'collapsed',\n scriptQueryBuilder: true,\n versionInfo: {version: '', commit: ''},\n flowsCTA: {explorer: true, tasks: true, alerts: true},\n subscriptionsCertificateInterest: false,\n workerRegistration: null,\n },\n}\n\nconst {\n ephemeral: initialAppEphemeralState,\n persisted: initialAppPersistedState,\n} = initialState\n\nconst appEphemeralReducer = (\n state = initialAppEphemeralState,\n action: Action\n): AppState['ephemeral'] => {\n switch (action.type) {\n case ActionTypes.EnablePresentationMode: {\n return {\n ...state,\n inPresentationMode: true,\n }\n }\n\n case ActionTypes.DisablePresentationMode: {\n return {\n ...state,\n inPresentationMode: false,\n }\n }\n\n default:\n return state\n }\n}\n\nconst appPersistedReducer = (\n state = initialAppPersistedState,\n action: Action\n): AppState['persisted'] => {\n switch (action.type) {\n case 'SET_THEME': {\n return {...state, theme: action.theme}\n }\n\n case ActionTypes.SetAutoRefresh: {\n return {\n ...state,\n autoRefresh: action.payload.milliseconds,\n }\n }\n\n case ActionTypes.SetVersionInfo: {\n return {\n ...state,\n versionInfo: action.payload.versionInfo,\n }\n }\n\n case ActionTypes.SetTimeZone: {\n const {timeZone} = action.payload\n\n return {...state, timeZone}\n }\n\n case ActionTypes.SetScriptQueryBuilder: {\n return {...state, scriptQueryBuilder: action.active}\n }\n\n case ActionTypes.SetNavBarState: {\n const navBarState = action.navBarState\n return {\n ...state,\n navBarState,\n }\n }\n\n case ActionTypes.SetFlowsCTA: {\n return {\n ...state,\n flowsCTA: {\n ...state.flowsCTA,\n ...action.payload.flowsCTA,\n },\n }\n }\n\n case ActionTypes.SetSubscriptionsCertificateInterest: {\n return {\n ...state,\n subscriptionsCertificateInterest: true,\n }\n }\n\n case ActionTypes.SetWorkerRegistration: {\n return {\n ...state,\n workerRegistration: action.payload.workerRegistration,\n }\n }\n\n default:\n return state\n }\n}\n\nconst appReducer = combineReducers({\n ephemeral: appEphemeralReducer,\n persisted: appPersistedReducer,\n})\n\nexport default appReducer\n","import {\n Action,\n SET_CURRENT_DASHBOARD,\n} from 'src/shared/actions/currentDashboard'\n\nexport interface CurrentDashboardState {\n id: string\n}\n\nexport const initialState: CurrentDashboardState = {\n id: '',\n}\n\nconst reducer = (\n state: CurrentDashboardState = initialState,\n action: Action\n): CurrentDashboardState => {\n switch (action.type) {\n case SET_CURRENT_DASHBOARD:\n state.id = action.id\n return {...state}\n default:\n return state\n }\n}\n\nexport default reducer\n","import {produce} from 'immer'\nimport {nanoid} from 'nanoid'\nimport {Action} from 'src/shared/actions/notifications'\nimport {Notification} from 'src/types'\n\nexport const initialState: Notification[] = []\n\nexport const notificationsReducer = (\n state = initialState,\n action: Action\n): Notification[] =>\n produce(state, draftState => {\n switch (action.type) {\n case 'PUBLISH_NOTIFICATION': {\n const {notification} = action.payload\n const publishedNotification = {\n ...notification,\n id: nanoid(),\n }\n const matchIndex = state.findIndex(\n n =>\n (n.type && notification.type && n.type === notification.type) ||\n (n.message && n.message === notification.message)\n )\n const isUnique = matchIndex === -1\n if (isUnique) {\n draftState.unshift(publishedNotification)\n }\n return\n }\n\n case 'DISMISS_NOTIFICATION': {\n const {id} = action.payload\n return draftState.filter(n => n.id !== id)\n }\n\n case 'DISMISS_ALL_NOTIFICATIONS': {\n return []\n }\n }\n })\n","import app from 'src/shared/reducers/app'\nimport currentDashboard from 'src/shared/reducers/currentDashboard'\nimport {notificationsReducer} from 'src/shared/reducers/notifications'\n\nexport default {\n app,\n currentDashboard,\n notifications: notificationsReducer,\n}\n","// Libraries\nimport produce from 'immer'\n\nimport {CurrentIdentity} from 'src/identity/apis/auth'\nimport {RemoteDataState} from 'src/types'\n\n// Actions\nimport {\n Actions,\n SET_QUARTZ_IDENTITY,\n SET_QUARTZ_IDENTITY_STATUS,\n SET_CURRENT_BILLING_PROVIDER,\n SET_CURRENT_BILLING_PROVIDER_STATUS,\n SET_CURRENT_ORG_DETAILS,\n SET_CURRENT_ORG_DETAILS_STATUS,\n SET_CURRENT_IDENTITY_ACCOUNT_NAME,\n} from 'src/identity/actions/creators'\n\nexport const initialState: CurrentIdentity = {\n user: {\n accountCount: 0,\n email: '',\n firstName: '',\n id: '',\n lastName: '',\n operatorRole: null,\n orgCount: 0,\n },\n org: {\n clusterHost: '',\n id: '',\n name: '',\n },\n account: {\n id: 0,\n name: '',\n type: 'free',\n accountCreatedAt: '',\n paygCreditStartDate: '',\n isUpgradeable: false,\n },\n loadingStatus: {\n identityStatus: RemoteDataState.NotStarted,\n billingStatus: RemoteDataState.NotStarted,\n orgDetailsStatus: RemoteDataState.NotStarted,\n },\n}\n\nexport default (state = initialState, action: Actions): CurrentIdentity =>\n produce(state, draftState => {\n switch (action.type) {\n case SET_QUARTZ_IDENTITY: {\n const {account, org, user} = action.identity\n\n // Store account information from /identity in state.\n draftState.account.accountCreatedAt = account.accountCreatedAt\n draftState.account.id = account.id\n draftState.account.isUpgradeable = account.isUpgradeable\n draftState.account.name = account.name\n draftState.account.paygCreditStartDate = account.paygCreditStartDate\n draftState.account.type = account.type\n\n // Store org information from /identity in state.\n draftState.org.clusterHost = org.clusterHost\n draftState.org.id = org.id\n draftState.org.name = org.name\n\n // Store user information from /identity in state.\n draftState.user.accountCount = user.accountCount\n draftState.user.email = user.email\n draftState.user.firstName = user.firstName\n draftState.user.id = user.id\n draftState.user.lastName = user.lastName\n draftState.user.operatorRole = user.operatorRole\n draftState.user.orgCount = user.orgCount\n return\n }\n\n case SET_QUARTZ_IDENTITY_STATUS: {\n draftState.loadingStatus.identityStatus = action.status\n return\n }\n case SET_CURRENT_BILLING_PROVIDER: {\n draftState.account.billingProvider = action.billingProvider\n return\n }\n\n case SET_CURRENT_BILLING_PROVIDER_STATUS: {\n draftState.loadingStatus.billingStatus = action.status\n return\n }\n\n case SET_CURRENT_ORG_DETAILS: {\n draftState.org = action.org\n return\n }\n\n case SET_CURRENT_ORG_DETAILS_STATUS: {\n draftState.loadingStatus.orgDetailsStatus = action.status\n return\n }\n\n case SET_CURRENT_IDENTITY_ACCOUNT_NAME: {\n if (draftState.account.id === action.account.id) {\n draftState.account.name = action.account.name\n }\n return\n }\n }\n })\n","import {\n Actions,\n SET_FEATURE_FLAGS,\n SET_PUBLIC_FEATURE_FLAGS,\n RESET_FEATURE_FLAGS,\n CLEAR_FEATURE_FLAG_OVERRIDES,\n SET_FEATURE_FLAG_OVERRIDE,\n FlagMap,\n} from 'src/shared/actions/flags'\nimport {RemoteDataState} from 'src/types'\n\nexport interface FlagState {\n status: RemoteDataState\n original: FlagMap\n override: FlagMap\n}\n\nconst defaultState: FlagState = {\n status: RemoteDataState.NotStarted,\n original: {},\n override: {},\n}\n\nexport default (state = defaultState, action: Actions): FlagState => {\n switch (action.type) {\n case SET_FEATURE_FLAGS:\n // just setting the loading state\n if (!action.payload.flags) {\n const newState = {\n ...state,\n status: action.payload.status,\n }\n\n if (!state.hasOwnProperty('original')) {\n newState.original = defaultState.original\n }\n\n return newState\n }\n return {\n ...state,\n status: action.payload.status,\n original: action.payload.flags,\n }\n case SET_PUBLIC_FEATURE_FLAGS:\n // just setting the loading state\n if (!action.payload.flags) {\n const newState = {\n ...state,\n }\n\n if (!state.hasOwnProperty('original')) {\n newState.original = defaultState.original\n }\n\n return newState\n }\n return {\n ...state,\n original: action.payload.flags,\n }\n case RESET_FEATURE_FLAGS:\n return {\n ...defaultState,\n }\n case CLEAR_FEATURE_FLAG_OVERRIDES:\n return {\n ...state,\n override: {},\n }\n case SET_FEATURE_FLAG_OVERRIDE:\n const override = {\n ...(state.override || {}),\n ...action.payload,\n }\n return {\n ...state,\n override,\n }\n default:\n return state\n }\n}\n","import {Action, SET_IS_AUTO_FUNCTION} from 'src/shared/actions/currentExplorer'\n\nexport interface CurrentExplorerState {\n isAutoFunction: boolean\n}\n\nexport const initialState: CurrentExplorerState = {\n isAutoFunction: true,\n}\n\nconst reducer = (\n state: CurrentExplorerState = initialState,\n action: Action\n): CurrentExplorerState => {\n switch (action.type) {\n case SET_IS_AUTO_FUNCTION:\n state.isAutoFunction = action.isAutoFunction\n return {...state}\n default:\n return state\n }\n}\n\nexport default reducer\n","// Types\nimport {RemoteDataState} from 'src/types'\nimport {Fluxdocs} from 'src/client/fluxdocsdRoutes'\nimport {Action, GET_FLUX_DOCS} from 'src/shared/actions/fluxDocs'\n\nexport interface FluxDocsState {\n status: string\n fluxDocs: Fluxdocs[]\n}\n\nconst INITIAL_STATE: FluxDocsState = {\n status: RemoteDataState.NotStarted,\n fluxDocs: [],\n}\n\nexport default (state = INITIAL_STATE, action: Action): FluxDocsState => {\n switch (action.type) {\n case GET_FLUX_DOCS:\n return {...state, fluxDocs: action.payload.data}\n default:\n return state\n }\n}\n","import {\n RemoteDataState,\n ResourceState,\n TaskOptions,\n TaskSchedule,\n} from 'src/types'\n\nexport const initialState = (): ResourceState['tasks'] => ({\n allIDs: [],\n byID: {},\n status: RemoteDataState.NotStarted,\n newScript: '',\n currentTask: null,\n currentScript: '',\n searchTerm: '',\n showInactive: true,\n taskOptions: defaultOptions,\n runStatus: RemoteDataState.NotStarted,\n runs: [],\n logs: [],\n currentPage: 'TasksPage',\n})\n\nexport const defaultOptions: TaskOptions = {\n name: '',\n interval: '',\n offset: '',\n cron: '',\n taskScheduleType: TaskSchedule.unselected,\n orgID: '',\n toBucketName: '',\n toOrgName: '',\n}\n","// Libraries\nimport {get} from 'lodash'\n\n// Types\nimport {ResourceType, NormalizedState, RemoteDataState} from 'src/types'\n\nexport const setResourceAtID = (\n draftState: NormalizedState,\n action,\n resource: ResourceType\n) => {\n const {schema, status, id} = action\n\n const prevResource = get(draftState, ['byID', id], {})\n const currentResource = get(schema, ['entities', resource, id], {})\n\n if (!draftState.allIDs.includes(id)) {\n draftState.allIDs.push(id)\n }\n\n draftState.byID[id] = {...prevResource, ...currentResource, status}\n}\n\nexport const setResource = (\n draftState: NormalizedState,\n action,\n resource: ResourceType\n) => {\n const {status, schema} = action\n draftState.status = status\n if (get(schema, ['entities', resource])) {\n draftState.byID = schema.entities[resource]\n draftState.allIDs = schema.result\n }\n\n return\n}\n\nexport const addResource = (\n draftState: NormalizedState,\n action,\n resource: ResourceType\n) => {\n const {result, entities} = action.schema\n\n draftState.byID[result] = entities[resource][result]\n draftState.allIDs.push(result)\n}\n\nexport const editResource = (\n draftState: NormalizedState,\n action,\n resource: ResourceType\n) => {\n const {entities, result} = action.schema\n\n draftState.byID[result] = entities[resource][result]\n}\n\ninterface RemoveAction {\n type: string\n id: string\n}\n\nexport const removeResource = (\n draftState: NormalizedState,\n action: RemoveAction\n) => {\n const {id} = action\n delete draftState.byID[id]\n draftState.allIDs = draftState.allIDs.filter(uuid => uuid !== id)\n\n return\n}\n\nexport const setRelation = (\n draftState: NormalizedState,\n childType: ResourceType,\n childID: string,\n parentID: string\n) => {\n const resource = draftState.byID[parentID]\n\n if (!resource) {\n return\n }\n\n const child = draftState.byID[parentID][childType]\n\n if (!child) {\n return\n }\n\n draftState.byID[parentID][childType].push(childID)\n}\n","// Libraries\nimport {produce} from 'immer'\n\n// Types\nimport {\n Action,\n ADD_TASK,\n SET_TASKS,\n CLEAR_TASK,\n CLEAR_CURRENT_TASK,\n SET_RUNS,\n SET_TASK_OPTION,\n SET_ALL_TASK_OPTIONS,\n SET_NEW_SCRIPT,\n SET_CURRENT_SCRIPT,\n SET_CURRENT_TASK,\n SET_SEARCH_TERM,\n SET_SHOW_INACTIVE,\n SET_LOGS,\n EDIT_TASK,\n REMOVE_TASK,\n SET_CURRENT_TASKS_PAGE,\n} from 'src/tasks/actions/creators'\nimport {ResourceType, ResourceState, TaskSchedule, Task} from 'src/types'\n\n// Utils\nimport {initialState, defaultOptions} from 'src/tasks/reducers/helpers'\nimport {\n setResource,\n editResource,\n removeResource,\n addResource,\n} from 'src/resources/reducers/helpers'\n\ntype TasksState = ResourceState['tasks']\n\nexport default (\n state: TasksState = initialState(),\n action: Action\n): TasksState =>\n produce(state, draftState => {\n switch (action.type) {\n case SET_TASKS: {\n setResource(draftState, action, ResourceType.Tasks)\n\n return\n }\n\n case EDIT_TASK: {\n editResource(draftState, action, ResourceType.Tasks)\n\n return\n }\n\n case REMOVE_TASK: {\n removeResource(draftState, action)\n\n return\n }\n\n case ADD_TASK: {\n addResource(draftState, action, ResourceType.Tasks)\n\n return\n }\n\n case CLEAR_TASK: {\n draftState.taskOptions = {...defaultOptions}\n draftState.currentScript = ''\n draftState.newScript = ''\n\n return\n }\n\n case CLEAR_CURRENT_TASK: {\n draftState.currentScript = ''\n draftState.currentTask = null\n\n return\n }\n\n case SET_ALL_TASK_OPTIONS: {\n const {schema} = action\n const {entities, result} = schema\n const {name, every, cron, orgID, offset} = entities.tasks[result]\n let taskScheduleType = TaskSchedule.interval\n\n if (cron) {\n taskScheduleType = TaskSchedule.cron\n }\n\n draftState.taskOptions = {\n ...state.taskOptions,\n name,\n cron,\n interval: every,\n orgID,\n taskScheduleType,\n offset,\n }\n\n return\n }\n\n case SET_TASK_OPTION: {\n const {key, value} = action\n\n draftState.taskOptions[`${key}`] = value\n\n return\n }\n\n case SET_NEW_SCRIPT: {\n draftState.newScript = action.script\n\n return\n }\n\n case SET_CURRENT_SCRIPT: {\n draftState.currentScript = action.script\n\n return\n }\n\n case SET_CURRENT_TASK: {\n const {schema} = action\n const {entities, result} = schema\n\n const task = entities.tasks[result]\n\n const currentScript = task.flux || ''\n\n draftState.currentScript = currentScript\n draftState.currentTask = task\n\n return\n }\n\n case SET_SEARCH_TERM: {\n const {searchTerm} = action\n\n draftState.searchTerm = searchTerm\n\n return\n }\n\n case SET_SHOW_INACTIVE: {\n draftState.showInactive = !state.showInactive\n\n return\n }\n\n case SET_RUNS: {\n const {runs, runStatus} = action\n\n draftState.runs = runs\n draftState.runStatus = runStatus\n\n return\n }\n\n case SET_LOGS: {\n draftState.logs = action.logs\n\n return\n }\n\n case SET_CURRENT_TASKS_PAGE: {\n draftState.currentPage = action.tasksPage\n\n return\n }\n }\n })\n","import {TimeRange} from 'src/types'\nimport {Action, ActionTypes} from 'src/dashboards/actions/ranges'\n\nexport type RangeState = {\n [contextID: string]: TimeRange\n}\n\nconst initialState: RangeState = {}\n\nexport default (\n state: RangeState = initialState,\n action: Action\n): RangeState => {\n switch (action.type) {\n case ActionTypes.DeleteTimeRange: {\n const {dashboardID} = action.payload\n const {[dashboardID]: _, ...filteredRanges} = state\n\n return filteredRanges\n }\n\n case ActionTypes.RetainRangesDashboardTimeV1: {\n const {dashboardIDs} = action.payload\n const ranges = {}\n for (const key in state) {\n if (dashboardIDs.includes(key)) {\n ranges[key] = state[key]\n }\n }\n return ranges\n }\n\n case ActionTypes.SetDashboardTimeRange: {\n const {dashboardID, timeRange} = action.payload\n return {...state, [dashboardID]: timeRange}\n }\n }\n\n return state\n}\n","// Libraries\nimport {produce} from 'immer'\n\n// Types\nimport {\n RemoteDataState,\n ResourceState,\n Dashboard,\n ResourceType,\n} from 'src/types'\n\n// Actions\nimport {\n Action,\n SET_DASHBOARD,\n SET_DASHBOARD_SORT,\n REMOVE_DASHBOARD,\n SET_DASHBOARDS,\n REMOVE_DASHBOARD_LABEL,\n EDIT_DASHBOARD,\n SET_DASHBOARDS_SEARCH_TERM,\n} from 'src/dashboards/actions/creators'\nimport {\n SET_CELLS,\n REMOVE_CELL,\n SET_CELL,\n Action as CellAction,\n} from 'src/cells/actions/creators'\nimport {SET_LABEL_ON_RESOURCE} from 'src/labels/actions/creators'\n\n// Utils\nimport {\n setResource,\n setResourceAtID,\n removeResource,\n editResource,\n setRelation,\n} from 'src/resources/reducers/helpers'\n\nimport {DEFAULT_DASHBOARD_SORT_OPTIONS} from 'src/dashboards/constants'\n\ntype DashboardsState = ResourceState['dashboards']\n\nconst initialState = (): DashboardsState => ({\n byID: {},\n allIDs: [],\n status: RemoteDataState.NotStarted,\n sortOptions: DEFAULT_DASHBOARD_SORT_OPTIONS,\n searchTerm: '',\n})\n\nexport const dashboardsReducer = (\n state: DashboardsState = initialState(),\n action: Action | CellAction\n): DashboardsState => {\n return produce(state, draftState => {\n switch (action.type) {\n case SET_DASHBOARDS: {\n setResource(draftState, action, ResourceType.Dashboards)\n\n return\n }\n\n case REMOVE_DASHBOARD: {\n removeResource(draftState, action)\n\n return\n }\n\n case SET_DASHBOARD: {\n setResourceAtID(draftState, action, ResourceType.Dashboards)\n\n return\n }\n\n case SET_DASHBOARD_SORT: {\n const {sortOptions} = action\n\n draftState.sortOptions = sortOptions\n\n return\n }\n\n case EDIT_DASHBOARD: {\n editResource(draftState, action, ResourceType.Dashboards)\n\n return\n }\n\n case REMOVE_CELL: {\n const {dashboardID, id} = action\n\n const {cells} = draftState.byID[dashboardID]\n\n draftState.byID[dashboardID].cells = cells.filter(cID => cID !== id)\n\n return\n }\n\n case SET_CELL: {\n const {schema} = action\n\n const cellID = schema.result\n const cell = schema.entities.cells[cellID]\n const dashboards = draftState.byID[cell.dashboardID]\n\n if (dashboards?.cells.includes(cellID)) {\n return\n }\n\n if (draftState.byID[cell.dashboardID]) {\n draftState.byID[cell.dashboardID].cells.push(cellID)\n }\n\n return\n }\n\n case SET_CELLS: {\n const {dashboardID, schema} = action\n\n const cellIDs = schema && schema.result\n\n if (!cellIDs) {\n return\n }\n\n draftState.byID[dashboardID].cells = cellIDs\n\n return\n }\n\n case SET_LABEL_ON_RESOURCE: {\n const {resourceID, schema} = action\n const labelID = schema.result\n\n setRelation(\n draftState,\n ResourceType.Labels,\n labelID,\n resourceID\n )\n\n return\n }\n\n case REMOVE_DASHBOARD_LABEL: {\n const {dashboardID, labelID} = action\n\n const {labels} = draftState.byID[dashboardID]\n\n draftState.byID[dashboardID].labels = labels.filter(\n label => label !== labelID\n )\n\n return\n }\n\n case SET_DASHBOARDS_SEARCH_TERM: {\n const {searchTerm} = action\n draftState.searchTerm = searchTerm\n\n return\n }\n }\n })\n}\n","// Libraries\nimport {produce} from 'immer'\nimport {get} from 'lodash'\n\n// Actions\nimport {\n SET_CELLS,\n REMOVE_CELL,\n SET_CELL,\n Action,\n} from 'src/cells/actions/creators'\nimport {\n SET_DASHBOARD,\n Action as DashboardAction,\n} from 'src/dashboards/actions/creators'\nimport {SET_VIEWS_AND_CELLS} from 'src/views/actions/creators'\n\n// Types\nimport {Cell, ResourceState, RemoteDataState} from 'src/types'\n\ntype CellsState = ResourceState['cells']\n\nconst initialState = () => ({\n byID: {},\n status: RemoteDataState.NotStarted,\n})\n\nexport const cellsReducer = (\n state: CellsState = initialState(),\n action: Action | DashboardAction\n) =>\n produce(state, draftState => {\n switch (action.type) {\n case SET_DASHBOARD: {\n const {schema, status} = action\n\n draftState.status = status\n\n if (get(schema, ['entities', 'cells'])) {\n draftState.byID = schema.entities.cells\n }\n\n return\n }\n\n case SET_CELLS: {\n const {status, schema} = action\n\n draftState.status = status\n\n if (get(schema, ['entities', 'cells'])) {\n draftState.byID = schema.entities['cells']\n }\n\n return\n }\n\n case SET_VIEWS_AND_CELLS: {\n const {status, cellsArray} = action\n\n cellsArray.forEach(cellSchema => {\n draftState.status = status\n\n if (get(cellSchema, ['entities', 'cells'])) {\n draftState.byID = cellSchema.entities['cells']\n }\n })\n\n return\n }\n\n case SET_CELL: {\n const {id, schema, status} = action\n\n const cell: Cell = get(schema, ['entities', 'cells', id])\n const cellExists = !!draftState.byID[id]\n\n if (cell || !cellExists) {\n draftState.byID[id] = {...cell, status}\n } else {\n draftState.byID[id].status = status\n }\n\n return\n }\n\n case REMOVE_CELL: {\n delete draftState.byID[action.id]\n\n return\n }\n }\n })\n","// Libraries\nimport {produce} from 'immer'\n\n// Types\nimport {\n REMOVE_VIEW,\n RESET_VIEWS,\n SET_VIEW,\n SET_VIEWS,\n SET_VIEWS_AND_CELLS,\n Action,\n} from 'src/views/actions/creators'\nimport {SET_DASHBOARD} from 'src/dashboards/actions/creators'\nimport {View, RemoteDataState, ResourceState, ResourceType} from 'src/types'\n\n// Helpers\nimport {\n setResource,\n setResourceAtID,\n removeResource,\n} from 'src/resources/reducers/helpers'\n\nexport type ViewsState = ResourceState['views']\n\nconst initialState = (): ViewsState => ({\n status: RemoteDataState.NotStarted,\n byID: {},\n allIDs: [],\n})\n\nconst viewsReducer = (\n state: ViewsState = initialState(),\n action: Action\n): ViewsState =>\n produce(state, draftState => {\n switch (action.type) {\n case SET_DASHBOARD: {\n setResource(draftState, action, ResourceType.Views)\n }\n\n case SET_VIEWS: {\n setResource(draftState, action, ResourceType.Views)\n\n return\n }\n case SET_VIEWS_AND_CELLS: {\n const {viewsArray} = action\n viewsArray.forEach(view => {\n setResource(draftState, view, ResourceType.Views)\n })\n\n return\n }\n case SET_VIEW: {\n setResourceAtID(draftState, action, ResourceType.Views)\n\n return\n }\n case RESET_VIEWS: {\n return initialState()\n }\n case REMOVE_VIEW: {\n removeResource(draftState, action)\n\n return\n }\n }\n })\n\nexport default viewsReducer\n","// Libraries\nimport {produce} from 'immer'\n\n// Types\nimport {\n SET_ORGS,\n SET_ORG,\n ADD_ORG,\n REMOVE_ORG,\n Action,\n EDIT_ORG,\n} from 'src/organizations/actions/creators'\nimport {\n ResourceState,\n Organization,\n ResourceType,\n RemoteDataState,\n} from 'src/types'\n\n// Utils\nimport {\n setResource,\n addResource,\n removeResource,\n editResource,\n} from 'src/resources/reducers/helpers'\n\nconst {Orgs} = ResourceType\ntype OrgsState = ResourceState['orgs']\n\nconst initialState = (): OrgsState => ({\n byID: {},\n allIDs: [],\n status: RemoteDataState.NotStarted,\n org: null,\n})\n\nexport const orgsReducer = (\n state: OrgsState = initialState(),\n action: Action\n) =>\n produce(state, draftState => {\n switch (action.type) {\n case SET_ORGS: {\n setResource(draftState, action, Orgs)\n\n return\n }\n case ADD_ORG: {\n addResource(draftState, action, Orgs)\n\n return\n }\n\n case REMOVE_ORG: {\n removeResource(draftState, action)\n\n return\n }\n\n case EDIT_ORG: {\n editResource(draftState, action, Orgs)\n\n // NOTE: this is a normalization issue because the current org\n // is being updated, but the selected org object isn't being\n // updated. Since we have only one org at a time in this app\n // i've taken some liberties here\n if (action.schema.result === draftState.org.id) {\n draftState.org = action.schema.entities.orgs[action.schema.result]\n }\n\n return\n }\n\n case SET_ORG: {\n draftState.org = action.org\n\n return\n }\n }\n })\n","// Libraries\nimport {produce} from 'immer'\n\n// Types\nimport {ActionTypes, Actions} from 'src/overlays/actions/overlays'\nimport {OverlayParams} from 'src/types'\n\nexport type OverlayID =\n | 'add-note'\n | 'edit-note'\n | 'add-master-token'\n | 'access-token'\n | 'access-cloned-token'\n | 'add-custom-token'\n | 'add-token'\n | 'telegraf-config'\n | 'telegraf-output'\n | 'telegraf-instructions'\n | 'telegraf-wizard'\n | 'switch-organizations'\n | 'create-bucket'\n | 'asset-limit'\n | 'cardinality-limit'\n | 'write-limit'\n | 'create-annotation-stream'\n | 'update-annotation-stream'\n | 'add-annotation'\n | 'edit-annotation'\n | 'toggle-auto-refresh'\n | 'cell-copy-overlay'\n | 'bucket-schema-show'\n | 'create-rule'\n | 'create-secret'\n | 'share-overlay'\n | 'payg-support'\n | 'free-account-support'\n | 'feedback-questions'\n | 'help-bar-confirmation'\n | 'subscription-replace-certificate'\n | 'create-organization'\n | 'marketo-upgrade-account-overlay'\n | 'suspend-org-in-paid-account'\n | 'remove-member'\n\nexport interface OverlayState {\n id: OverlayID | null\n params: OverlayParams\n onClose: () => void\n}\n\nconst nullParams = {}\n\nconst defaultState: OverlayState = {\n id: null,\n params: nullParams,\n onClose: () => {},\n}\n\nexport const overlaysReducer = (\n state = defaultState,\n action: Actions\n): OverlayState =>\n produce(state, draftState => {\n switch (action.type) {\n case ActionTypes.ShowOverlay: {\n const {overlayID, overlayParams, onClose} = action.payload\n draftState.id = overlayID\n draftState.params = overlayParams\n draftState.onClose = onClose\n return\n }\n case ActionTypes.DismissOverlay: {\n draftState.id = null\n draftState.params = nullParams\n draftState.onClose = () => {}\n return\n }\n case ActionTypes.SetOverlayParams: {\n const {overlayParams} = action.payload\n draftState.params = overlayParams\n return\n }\n }\n })\n\nexport default overlaysReducer\n","// Constants\nimport {StepStatus} from 'src/shared/constants/wizard'\n\n// Types\nimport {Action} from 'src/onboarding/actions'\nimport {OnboardingRequest} from 'src/client'\n\nexport interface OnboardingState {\n stepStatuses: StepStatus[]\n setupParams: OnboardingRequest\n orgID: string\n bucketID: string\n token: string\n}\n\nconst INITIAL_STATE: OnboardingState = {\n stepStatuses: new Array(3).fill(StepStatus.Incomplete),\n setupParams: null,\n orgID: '',\n bucketID: '',\n token: '',\n}\n\nexport default (state = INITIAL_STATE, action: Action): OnboardingState => {\n switch (action.type) {\n case 'SET_SETUP_PARAMS':\n return {...state, setupParams: action.payload.setupParams}\n case 'SET_STEP_STATUS':\n const stepStatuses = [...state.stepStatuses]\n stepStatuses[action.payload.index] = action.payload.status\n return {...state, stepStatuses}\n case 'SET_ORG_ID':\n return {...state, orgID: action.payload.orgID}\n case 'SET_ONBOARDING_BUCKET_ID':\n return {...state, bucketID: action.payload.bucketID}\n case 'SET_OPERATOR_TOKEN':\n return {...state, token: action.payload.token}\n default:\n return state\n }\n}\n","import {Action} from 'src/dashboards/actions/notes'\nimport {NoteEditorMode} from 'src/types/dashboards'\n\nexport interface NoteEditorState {\n mode: NoteEditorMode\n note: string\n showNoteWhenEmpty: boolean\n isPreviewing: boolean\n viewID?: string\n}\n\nconst initialState = (): NoteEditorState => ({\n mode: NoteEditorMode.Adding,\n note: '',\n showNoteWhenEmpty: false,\n isPreviewing: false,\n})\n\nconst noteEditorReducer = (\n state: NoteEditorState = initialState(),\n action: Action\n) => {\n switch (action.type) {\n case 'RESET_NOTE_STATE': {\n return initialState()\n }\n case 'SET_NOTE_STATE': {\n const initialState = action.payload\n\n return {\n ...state,\n ...initialState,\n isPreviewing: false,\n }\n }\n\n case 'CLOSE_NOTE_EDITOR': {\n return {...state, overlayVisible: false}\n }\n\n case 'SET_IS_PREVIEWING': {\n const {isPreviewing} = action.payload\n\n return {...state, isPreviewing}\n }\n\n case 'TOGGLE_SHOW_NOTE_WHEN_EMPTY': {\n const {showNoteWhenEmpty} = state\n\n return {...state, showNoteWhenEmpty: !showNoteWhenEmpty}\n }\n\n case 'SET_NOTE': {\n const {note} = action.payload\n\n return {...state, note}\n }\n }\n\n return state\n}\n\nexport default noteEditorReducer\n","// Libraries\nimport {uniqBy, sortBy, get, isEmpty} from 'lodash'\n\n// Utils\nimport {\n createNewPlugin,\n updateConfigFields,\n isPluginInBundle,\n isPluginUniqueToBundle,\n getConfigFields,\n} from 'src/dataLoaders/utils/pluginConfigs'\nimport {getDeep} from 'src/utils/wrappers'\nimport {validateURI} from 'src/shared/utils/validateURI'\n\n// Types\nimport {Action} from 'src/dataLoaders/actions/dataLoaders'\nimport {\n DataLoaderType,\n DataLoadersState,\n ConfigurationState,\n ConfigFieldType,\n Plugin,\n} from 'src/types/dataLoaders'\nimport {QUICKSTART_SCRAPER_TARGET_URL} from 'src/dataLoaders/constants/pluginConfigs'\n\nexport const INITIAL_STATE: DataLoadersState = {\n telegrafPlugins: [],\n type: DataLoaderType.Empty,\n telegrafConfigID: null,\n pluginBundles: [],\n scraperTarget: {\n bucket: '',\n url: QUICKSTART_SCRAPER_TARGET_URL,\n name: 'Name this Scraper Target',\n },\n telegrafConfigName: 'Name this Configuration',\n telegrafConfigDescription: '',\n token: '',\n locationOnDismiss: '',\n}\n\nexport default (state = INITIAL_STATE, action: Action): DataLoadersState => {\n switch (action.type) {\n case 'CLEAR_DATA_LOADERS':\n return {...INITIAL_STATE}\n case 'SET_DATA_LOADERS_TYPE':\n return {\n ...state,\n type: action.payload.type,\n }\n case 'SET_TELEGRAF_CONFIG_ID':\n return {\n ...state,\n telegrafConfigID: action.payload.id,\n }\n case 'ADD_PLUGIN_BUNDLE':\n return {\n ...state,\n pluginBundles: [...state.pluginBundles, action.payload.bundle],\n }\n case 'REMOVE_PLUGIN_BUNDLE':\n return {\n ...state,\n pluginBundles: state.pluginBundles.filter(\n b => b !== action.payload.bundle\n ),\n }\n case 'REMOVE_BUNDLE_PLUGINS':\n return {\n ...state,\n telegrafPlugins: state.telegrafPlugins.filter(tp => {\n if (isPluginInBundle(tp.name, action.payload.bundle)) {\n return !isPluginUniqueToBundle(\n tp.name,\n action.payload.bundle,\n state.pluginBundles\n )\n }\n\n return true\n }),\n }\n case 'ADD_TELEGRAF_PLUGINS':\n return {\n ...state,\n telegrafPlugins: sortBy(\n uniqBy(\n [...state.telegrafPlugins, ...action.payload.telegrafPlugins],\n 'name'\n ),\n ['name']\n ),\n }\n\n case 'REPLACE_BUNDLE_WITH_PLUGIN':\n const telegrafPlugins = [action.payload.telegrafPlugins]\n return {\n ...state,\n telegrafPlugins,\n }\n\n case 'UPDATE_TELEGRAF_PLUGIN':\n return {\n ...state,\n telegrafPlugins: state.telegrafPlugins.map(tp => {\n if (tp.name === action.payload.plugin.name) {\n return {\n ...tp,\n plugin: action.payload.plugin,\n }\n }\n\n return tp\n }),\n }\n case 'UPDATE_TELEGRAF_PLUGIN_CONFIG':\n return {\n ...state,\n telegrafPlugins: state.telegrafPlugins.map(tp => {\n if (tp.name === action.payload.name) {\n const plugin = get(tp, 'plugin', createNewPlugin(tp))\n\n return {\n ...tp,\n plugin: updateConfigFields(\n plugin,\n action.payload.field,\n action.payload.value\n ),\n }\n }\n return tp\n }),\n }\n case 'ADD_TELEGRAF_PLUGIN_CONFIG_VALUE':\n return {\n ...state,\n telegrafPlugins: state.telegrafPlugins.map(tp => {\n if (tp.name === action.payload.pluginName) {\n const plugin = get(tp, 'plugin', createNewPlugin(tp))\n\n const config = get(plugin, ['config', action.payload.fieldName], [])\n\n const updatedConfigFieldValue: string[] = [\n ...config,\n action.payload.value,\n ]\n\n return {\n ...tp,\n plugin: updateConfigFields(\n plugin,\n action.payload.fieldName,\n updatedConfigFieldValue\n ),\n }\n }\n return tp\n }),\n }\n case 'REMOVE_TELEGRAF_PLUGIN_CONFIG_VALUE':\n return {\n ...state,\n telegrafPlugins: state.telegrafPlugins.map(tp => {\n if (tp.name === action.payload.pluginName) {\n const plugin = get(tp, 'plugin', createNewPlugin(tp))\n\n const configFieldValues = get(\n plugin,\n `config.${action.payload.fieldName}`,\n []\n )\n const filteredConfigFieldValue = configFieldValues.filter(\n v => v !== action.payload.value\n )\n\n return {\n ...tp,\n plugin: updateConfigFields(\n plugin,\n action.payload.fieldName,\n filteredConfigFieldValue\n ),\n }\n }\n return tp\n }),\n }\n case 'SET_TELEGRAF_PLUGIN_CONFIG_VALUE':\n return {\n ...state,\n telegrafPlugins: state.telegrafPlugins.map(tp => {\n if (tp.name === action.payload.pluginName) {\n const plugin = get(tp, 'plugin', createNewPlugin(tp))\n const configValues = get(\n plugin,\n `config.${action.payload.field}`,\n []\n )\n configValues[action.payload.valueIndex] = action.payload.value\n return {\n ...tp,\n plugin: updateConfigFields(plugin, action.payload.field, [\n ...configValues,\n ]),\n }\n }\n return tp\n }),\n }\n case 'SET_ACTIVE_TELEGRAF_PLUGIN':\n return {\n ...state,\n telegrafPlugins: state.telegrafPlugins.map(tp => {\n if (tp.name === action.payload.telegrafPlugin) {\n return {...tp, active: true}\n }\n return {...tp, active: false}\n }),\n }\n case 'SET_PLUGIN_CONFIGURATION_STATE':\n return {\n ...state,\n telegrafPlugins: state.telegrafPlugins.map(tp => {\n const name = get(tp, 'name')\n if (name === action.payload.telegrafPlugin) {\n const configFields = getConfigFields(name)\n if (!configFields) {\n return {...tp, configured: ConfigurationState.Configured}\n }\n\n const plugin = getDeep(tp, 'plugin', createNewPlugin(tp))\n const config = get(plugin, 'config', {})\n\n let isValidConfig = true\n\n Object.entries(configFields).forEach(\n ([fieldName, {type: fieldType, isRequired}]) => {\n if (isRequired) {\n const fieldValue = config[fieldName]\n\n switch (fieldType) {\n case ConfigFieldType.Uri:\n isValidConfig = validateURI(fieldValue as string)\n break\n case ConfigFieldType.String:\n isValidConfig = (fieldValue as string) !== ''\n break\n case ConfigFieldType.StringArray:\n isValidConfig = !!(fieldValue as string[]).length\n break\n case ConfigFieldType.UriArray:\n isValidConfig =\n !!(fieldValue as string[]).length &&\n !fieldValue.find(uri => !validateURI(uri))\n break\n }\n }\n }\n )\n\n if (!isValidConfig || isEmpty(config)) {\n return {\n ...tp,\n configured: ConfigurationState.InvalidConfiguration,\n }\n } else {\n return {...tp, configured: ConfigurationState.Configured}\n }\n }\n\n return {...tp}\n }),\n }\n case 'SET_TELEGRAF_CONFIG_NAME':\n return {\n ...state,\n telegrafConfigName: action.payload.name,\n }\n case 'SET_TELEGRAF_CONFIG_DESCRIPTION':\n return {\n ...state,\n telegrafConfigDescription: action.payload.description,\n }\n case 'SET_SCRAPER_TARGET_NAME':\n const {name} = action.payload\n return {\n ...state,\n scraperTarget: {...state.scraperTarget, name},\n }\n case 'SET_SCRAPER_TARGET_BUCKET':\n const {bucket} = action.payload\n return {\n ...state,\n scraperTarget: {...state.scraperTarget, bucket},\n }\n case 'SET_SCRAPER_TARGET_URL':\n const {url} = action.payload\n return {\n ...state,\n scraperTarget: {\n ...state.scraperTarget,\n url,\n },\n }\n case 'SET_SCRAPER_TARGET_ID':\n const {id} = action.payload\n return {\n ...state,\n scraperTarget: {\n ...state.scraperTarget,\n id,\n },\n }\n case 'SET_TOKEN':\n return {\n ...state,\n token: action.payload.token,\n }\n\n case 'SET_LOCATION_ON_DISMISS':\n return {\n ...state,\n locationOnDismiss: action.payload.locationOnDismiss,\n }\n default:\n return state\n }\n}\n","// Types\nimport {Action} from 'src/dataLoaders/actions/steps'\nimport {Substep} from 'src/types/dataLoaders'\n\nexport interface DataLoadersStepsState {\n currentStep: number\n substep?: Substep\n orgID: string\n bucketID: string\n org: string\n bucket: string\n}\n\nconst INITIAL_STATE: DataLoadersStepsState = {\n org: '',\n bucket: '',\n orgID: '',\n bucketID: '',\n currentStep: 0,\n}\n\nexport default (\n state = INITIAL_STATE,\n action: Action\n): DataLoadersStepsState => {\n switch (action.type) {\n case 'CLEAR_STEPS':\n return {...INITIAL_STATE}\n case 'INCREMENT_CURRENT_STEP_INDEX':\n return {...state, currentStep: state.currentStep + 1}\n case 'DECREMENT_CURRENT_STEP_INDEX':\n return {...state, currentStep: state.currentStep - 1}\n case 'SET_CURRENT_STEP_INDEX':\n return {...state, currentStep: action.payload.index}\n case 'SET_SUBSTEP_INDEX':\n return {\n ...state,\n currentStep: action.payload.stepIndex,\n substep: action.payload.substep,\n }\n case 'SET_BUCKET_INFO':\n return {...state, ...action.payload}\n case 'SET_BUCKET_ID':\n return {...state, bucketID: action.payload.bucketID}\n default:\n return state\n }\n}\n","// Libraries\nimport {combineReducers} from 'redux'\n\n// Reducers\nimport dataLoadersReducer from 'src/dataLoaders/reducers/dataLoaders'\nimport {DataLoadersState} from 'src/types/dataLoaders'\nimport stepsReducer, {\n DataLoadersStepsState,\n} from 'src/dataLoaders/reducers/steps'\n\nexport interface DataLoadingState {\n steps: DataLoadersStepsState\n dataLoaders: DataLoadersState\n}\n\nexport default combineReducers({\n steps: stepsReducer,\n dataLoaders: dataLoadersReducer,\n})\n","// Libraries\nimport {produce} from 'immer'\n\n// Types\nimport {VariableEditorState} from 'src/types'\nimport {\n EditorAction,\n CLEAR_VARIABLE_EDITOR,\n CHANGE_VARIABLE_EDITOR_TYPE,\n UPDATE_VARIABLE_EDITOR_NAME,\n UPDATE_VARIABLE_EDITOR_QUERY,\n UPDATE_VARIABLE_EDITOR_MAP,\n UPDATE_VARIABLE_EDITOR_CONSTANT,\n} from 'src/variables/actions/creators'\n\nexport const initialEditorState = (): VariableEditorState => ({\n name: '',\n selected: 'query',\n argsQuery: null,\n argsMap: null,\n argsConstant: null,\n})\n\nexport const variableEditorReducer = (\n state: VariableEditorState = initialEditorState(),\n action: EditorAction\n): VariableEditorState =>\n produce(state, draftState => {\n switch (action.type) {\n case CLEAR_VARIABLE_EDITOR: {\n return initialEditorState()\n }\n case CHANGE_VARIABLE_EDITOR_TYPE: {\n draftState.selected = action.editorType\n return\n }\n case UPDATE_VARIABLE_EDITOR_NAME: {\n draftState.name = action.name\n return\n }\n case UPDATE_VARIABLE_EDITOR_QUERY: {\n draftState.argsQuery = action.payload\n return\n }\n case UPDATE_VARIABLE_EDITOR_MAP: {\n draftState.argsMap = action.payload\n return\n }\n case UPDATE_VARIABLE_EDITOR_CONSTANT: {\n draftState.argsConstant = action.payload\n return\n }\n default:\n return\n }\n })\n","// Libraries\nimport {produce} from 'immer'\nimport {get} from 'lodash'\n\n// Types\nimport {\n Variable,\n RemoteDataState,\n VariablesState,\n ResourceType,\n} from 'src/types'\nimport {\n Action,\n SET_VARIABLES,\n SET_VARIABLE,\n REMOVE_VARIABLE,\n MOVE_VARIABLE,\n SELECT_VARIABLE_VALUE,\n} from 'src/variables/actions/creators'\n\n// Utils\nimport {setResource, removeResource} from 'src/resources/reducers/helpers'\n\nexport const initialState = (): VariablesState => ({\n status: RemoteDataState.NotStarted,\n byID: {},\n allIDs: [],\n values: {},\n})\n\nexport const variablesReducer = (\n state: VariablesState = initialState(),\n action: Action\n): VariablesState =>\n produce(state, draftState => {\n switch (action.type) {\n case SET_VARIABLES: {\n setResource(draftState, action, ResourceType.Variables)\n\n return\n }\n\n case SET_VARIABLE: {\n const {id, status, schema} = action\n\n const variable = get(schema, ['entities', 'variables', id])\n const variableExists = !!draftState.byID[id]\n\n if (variable) {\n draftState.byID[id] = {...variable, status}\n\n if (!variableExists) {\n draftState.allIDs.push(id)\n }\n } else {\n draftState.byID[id].status = status\n }\n\n return\n }\n\n case REMOVE_VARIABLE: {\n removeResource(draftState, action)\n\n return\n }\n\n case SELECT_VARIABLE_VALUE: {\n const {contextID, variableID, selectedValue} = action\n\n if (!draftState.values[contextID]) {\n draftState.values[contextID] = {\n status: RemoteDataState.Done,\n order: draftState.allIDs,\n values: {},\n }\n }\n\n if (!draftState.values[contextID].values[variableID]) {\n draftState.values[contextID].values[variableID] = {\n selected: [selectedValue],\n }\n\n return\n }\n\n draftState.values[contextID].values[variableID].selected = [\n selectedValue,\n ]\n\n return\n }\n\n case MOVE_VARIABLE: {\n const {contextID, newVariableOrder} = action\n\n draftState.values[contextID] = {\n ...(draftState.values[contextID] || {\n status: RemoteDataState.NotStarted,\n values: {},\n }),\n order: newVariableOrder,\n }\n\n return\n }\n }\n })\n\nexport {variableEditorReducer} from 'src/variables/reducers/editor'\n","// Libraries\nimport {produce} from 'immer'\n\n// Types\nimport {RemoteDataState, ResourceState, Label, ResourceType} from 'src/types'\nimport {\n Action,\n SET_LABELS,\n SET_LABEL,\n REMOVE_LABEL,\n} from 'src/labels/actions/creators'\n\n// Utils\nimport {\n setResource,\n setResourceAtID,\n removeResource,\n} from 'src/resources/reducers/helpers'\n\ntype LabelsState = ResourceState['labels']\n\nexport const initialState = (): LabelsState => ({\n status: RemoteDataState.NotStarted,\n byID: {},\n allIDs: [],\n})\n\nexport const labelsReducer = (\n state: LabelsState = initialState(),\n action: Action\n): LabelsState =>\n produce(state, draftState => {\n switch (action.type) {\n case SET_LABELS: {\n setResource