EVOLUTION-MANAGER
Edit File: cloudwatchPlugin.4d0490a94b199a11f40c.js
(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{Z209:function(e,t,a){"use strict";a.r(t);var n=a("KHwQ"),r=a.n(n),s=a("txxJ"),i=a("LvDl"),o=a.n(i),c=function(){function e(e,t,a,n){e.init=function(){var t=e.target;t.namespace=t.namespace||"",t.metricName=t.metricName||"",t.statistics=t.statistics||["Average"],t.dimensions=t.dimensions||{},t.period=t.period||"",t.region=t.region||"default",t.id=t.id||"",t.expression=t.expression||"",e.regionSegment=a.getSegmentForValue(e.target.region,"select region"),e.namespaceSegment=a.getSegmentForValue(e.target.namespace,"select namespace"),e.metricSegment=a.getSegmentForValue(e.target.metricName,"select metric"),e.dimSegments=o.a.reduce(e.target.dimensions,function(e,t,n){return e.push(a.newKey(n)),e.push(a.newOperator("=")),e.push(a.newKeyValue(t)),e},[]),e.statSegments=o.a.map(e.target.statistics,function(e){return a.getSegmentForValue(e)}),e.ensurePlusButton(e.statSegments),e.ensurePlusButton(e.dimSegments),e.removeDimSegment=a.newSegment({fake:!0,value:"-- remove dimension --"}),e.removeStatSegment=a.newSegment({fake:!0,value:"-- remove stat --"}),o.a.isEmpty(e.target.region)&&(e.target.region="default"),e.onChange||(e.onChange=function(){})},e.getStatSegments=function(){return Promise.resolve(o.a.flatten([r.a.copy(e.removeStatSegment),o.a.map(e.datasource.standardStatistics,function(e){return a.getSegmentForValue(e)}),a.getSegmentForValue("pNN.NN")]))},e.statSegmentChanged=function(t,a){t.value===e.removeStatSegment.value?e.statSegments.splice(a,1):t.type="value",e.target.statistics=o.a.reduce(e.statSegments,function(e,t){return t.fake||e.push(t.value),e},[]),e.ensurePlusButton(e.statSegments),e.onChange()},e.ensurePlusButton=function(e){var t=e.length,n=e[Math.max(t-1,0)];n&&"plus-button"===n.type||e.push(a.newPlusButton())},e.getDimSegments=function(t,a){if("operator"===t.type)return Promise.resolve([]);var n=e.target,s=Promise.resolve([]);if("key"===t.type||"plus-button"===t.type)s=e.datasource.getDimensionKeys(e.target.namespace,e.target.region);else if("value"===t.type){var i=e.dimSegments[a-2].value;delete n.dimensions[i],s=e.datasource.getDimensionValues(n.region,n.namespace,n.metricName,i,n.dimensions)}return s.then(e.transformToSegments(!0)).then(function(a){return"key"===t.type&&a.splice(0,0,r.a.copy(e.removeDimSegment)),a})},e.dimSegmentChanged=function(t,n){e.dimSegments[n]=t,t.value===e.removeDimSegment.value?e.dimSegments.splice(n,3):"plus-button"===t.type&&(e.dimSegments.push(a.newOperator("=")),e.dimSegments.push(a.newFake("select dimension value","value","query-segment-value")),t.type="key",t.cssClass="query-segment-key"),e.syncDimSegmentsWithModel(),e.ensurePlusButton(e.dimSegments),e.onChange()},e.syncDimSegmentsWithModel=function(){for(var t={},a=e.dimSegments.length,n=0;n<a-2;n+=3){var r=e.dimSegments[n],s=e.dimSegments[n+2];s.fake||(t[r.value]=s.value)}e.target.dimensions=t},e.getRegions=function(){return e.datasource.metricFindQuery("regions()").then(function(e){return e.unshift({text:"default"}),e}).then(e.transformToSegments(!0))},e.getNamespaces=function(){return e.datasource.metricFindQuery("namespaces()").then(e.transformToSegments(!0))},e.getMetrics=function(){return e.datasource.metricFindQuery("metrics("+e.target.namespace+","+e.target.region+")").then(e.transformToSegments(!0))},e.regionChanged=function(){e.target.region=e.regionSegment.value,e.onChange()},e.namespaceChanged=function(){e.target.namespace=e.namespaceSegment.value,e.onChange()},e.metricChanged=function(){e.target.metricName=e.metricSegment.value,e.onChange()},e.transformToSegments=function(e){return function(n){var r=o.a.map(n,function(e){return a.newSegment({value:e.text,expandable:e.expandable})});return e&&o.a.each(t.variables,function(e){r.unshift(a.newSegment({type:"template",value:"$"+e.name,expandable:!0}))}),r}},e.init()}return e.$inject=["$scope","templateSrv","uiSegmentSrv","datasourceSrv"],e}();s.c.directive("cloudwatchQueryParameter",function(){return{templateUrl:"public/app/plugins/datasource/cloudwatch/partials/query.parameter.html",controller:c,restrict:"E",scope:{target:"=",datasource:"=",onChange:"&"}}});var l,u=a("Obii"),m=a("mrSG"),p=a("q1tI"),d=a.n(p),g=a("kDLi"),f=a("WnbS"),h=a("sGFA"),v=[{label:"Access & secret key",value:"keys"},{label:"Credentials file",value:"credentials"},{label:"ARN",value:"arn"}],b=function(e){function t(t){var a=e.call(this,t)||this;return a.loadRegionsPromise=null,a.state={regions:[]},a}return Object(m.__extends)(t,e),t.prototype.componentDidMount=function(){this.loadRegionsPromise=Object(h.a)(this.loadRegions()),this.loadRegionsPromise.promise.catch(function(e){e.isCanceled&&console.warn("Cloud Watch ConfigEditor has unmounted, intialization was canceled")})},t.prototype.componentWillUnmount=function(){this.loadRegionsPromise&&this.loadRegionsPromise.cancel()},t.prototype.loadRegions=function(){return Object(m.__awaiter)(this,void 0,void 0,function(){var e=this;return Object(m.__generator)(this,function(t){switch(t.label){case 0:return[4,Object(f.a)().loadDatasource(this.props.options.name).then(function(e){return e.getRegions()}).then(function(t){e.setState({regions:t.map(function(e){return{value:e.value,label:e.text}})})},function(t){e.setState({regions:["ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-southeast-1","ap-southeast-2","ca-central-1","cn-north-1","cn-northwest-1","eu-central-1","eu-north-1","eu-west-1","eu-west-2","eu-west-3","me-south-1","sa-east-1","us-east-1","us-east-2","us-gov-east-1","us-gov-west-1","us-iso-east-1","us-isob-east-1","us-west-1","us-west-2"].map(function(e){return{value:e,label:e}})})})];case 1:return t.sent(),[2]}})})},t.prototype.render=function(){var e=this.state.regions,t=this.props.options,a=t.secureJsonData||{};return d.a.createElement(d.a.Fragment,null,d.a.createElement("h3",{className:"page-heading"},"CloudWatch Details"),d.a.createElement("div",{className:"gf-form-group"},d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(g.FormLabel,{className:"width-14"},"Auth Provider"),d.a.createElement(g.Select,{className:"width-30",value:v.find(function(e){return e.value===t.jsonData.authType}),options:v,defaultValue:t.jsonData.authType,onChange:Object(u.onUpdateDatasourceJsonDataOptionSelect)(this.props,"authType")}))),"credentials"===t.jsonData.authType&&d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(g.FormLabel,{className:"width-14",tooltip:"Credentials profile name, as specified in ~/.aws/credentials, leave blank for default."},"Credentials Profile Name"),d.a.createElement("div",{className:"width-30"},d.a.createElement(g.Input,{className:"width-30",placeholder:"default",value:t.jsonData.database,onChange:Object(u.onUpdateDatasourceOption)(this.props,"database")})))),"keys"===t.jsonData.authType&&d.a.createElement("div",null,t.secureJsonFields.accessKey?d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(g.FormLabel,{className:"width-14"},"Access Key ID"),d.a.createElement(g.Input,{className:"width-25",placeholder:"Configured",disabled:!0})),d.a.createElement("div",{className:"gf-form"},d.a.createElement("div",{className:"max-width-30 gf-form-inline"},d.a.createElement(g.Button,{variant:"secondary",type:"button",onClick:Object(u.onUpdateDatasourceResetOption)(this.props,"accessKey")},"Reset")))):d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(g.FormLabel,{className:"width-14"},"Access Key ID"),d.a.createElement("div",{className:"width-30"},d.a.createElement(g.Input,{className:"width-30",value:a.accessKey||"",onChange:Object(u.onUpdateDatasourceSecureJsonDataOption)(this.props,"accessKey")})))),t.secureJsonFields.secretKey?d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(g.FormLabel,{className:"width-14"},"Secret Access Key"),d.a.createElement(g.Input,{className:"width-25",placeholder:"Configured",disabled:!0})),d.a.createElement("div",{className:"gf-form"},d.a.createElement("div",{className:"max-width-30 gf-form-inline"},d.a.createElement(g.Button,{variant:"secondary",type:"button",onClick:Object(u.onUpdateDatasourceResetOption)(this.props,"secretKey")},"Reset")))):d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(g.FormLabel,{className:"width-14"},"Secret Access Key"),d.a.createElement("div",{className:"width-30"},d.a.createElement(g.Input,{className:"width-30",value:a.secretKey||"",onChange:Object(u.onUpdateDatasourceSecureJsonDataOption)(this.props,"secretKey")}))))),"arn"===t.jsonData.authType&&d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(g.FormLabel,{className:"width-14",tooltip:"ARN of Assume Role"},"Assume Role ARN"),d.a.createElement("div",{className:"width-30"},d.a.createElement(g.Input,{className:"width-30",placeholder:"arn:aws:iam:*",value:t.jsonData.assumeRoleArn||"",onChange:Object(u.onUpdateDatasourceJsonDataOption)(this.props,"assumeRoleArn")})))),d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(g.FormLabel,{className:"width-14",tooltip:"Specify the region, such as for US West (Oregon) use ` us-west-2 ` as the region."},"Default Region"),d.a.createElement(g.Select,{className:"width-30",value:e.find(function(e){return e.value===t.jsonData.defaultRegion}),options:e,defaultValue:t.jsonData.defaultRegion,onChange:Object(u.onUpdateDatasourceJsonDataOptionSelect)(this.props,"defaultRegion")}))),d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(g.FormLabel,{className:"width-14",tooltip:"Namespaces of Custom Metrics."},"Custom Metrics"),d.a.createElement(g.Input,{className:"width-30",placeholder:"Namespace1,Namespace2",value:t.jsonData.customMetricsNamespaces||"",onChange:Object(u.onUpdateDatasourceJsonDataOption)(this.props,"customMetricsNamespaces")})))))},t}(p.PureComponent),y=a("bY+8"),S=((l={})[g.EventsWithValidation.onBlur]=[{rule:function(e){return new RegExp(/^$|^[a-z][a-zA-Z0-9_]*$/).test(e)},errorMessage:"Invalid format. Only alphanumeric characters and underscores are allowed"}],l),E=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={showMeta:!1},t}return Object(m.__extends)(t,e),t.getDerivedStateFromProps=function(e,t){var a=e.query;return a.namespace||(a.namespace=""),a.metricName||(a.metricName=""),a.expression||(a.expression=""),a.dimensions||(a.dimensions={}),a.region||(a.region="default"),a.id||(a.id=""),a.alias||(a.alias=""),a.statistics&&a.statistics.length||(a.statistics=["Average"]),a.hasOwnProperty("matchExact")||(a.matchExact=!0),t},t.prototype.onChange=function(e){var t=this.props,a=t.onChange,n=t.onRunQuery;a(e),n()},t.prototype.render=function(){var e=this,t=this.props,a=t.data,n=t.query,r=t.onRunQuery,s=this.state.showMeta,i=a&&Object.values(a).length&&"Done"===a.state;return d.a.createElement(d.a.Fragment,null,d.a.createElement(y.d,Object(m.__assign)({},this.props)),n.statistics.length<=1&&d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(y.c,{label:"Id",tooltip:"Id can include numbers, letters, and underscore, and must start with a lowercase letter."},d.a.createElement(g.Input,{className:"gf-form-input width-8",onBlur:r,onChange:function(t){return e.onChange(Object(m.__assign)(Object(m.__assign)({},n),{id:t.target.value}))},validationEvents:S,value:n.id||""}))),d.a.createElement("div",{className:"gf-form gf-form--grow"},d.a.createElement(y.c,{className:"gf-form--grow",label:"Expression",tooltip:"Optionally you can add an expression here. Please note that if a math expression that is referencing other queries is being used, it will not be possible to create an alert rule based on this query"},d.a.createElement(g.Input,{className:"gf-form-input",onBlur:r,value:n.expression||"",onChange:function(t){return e.onChange(Object(m.__assign)(Object(m.__assign)({},n),{expression:t.target.value}))}})))),d.a.createElement("div",{className:"gf-form-inline"},d.a.createElement("div",{className:"gf-form"},d.a.createElement(y.c,{label:"Period",tooltip:"Minimum interval between points in seconds"},d.a.createElement(g.Input,{className:"gf-form-input width-8",value:n.period||"",placeholder:"auto",onBlur:r,onChange:function(t){return e.onChange(Object(m.__assign)(Object(m.__assign)({},n),{period:t.target.value}))}}))),d.a.createElement("div",{className:"gf-form"},d.a.createElement(y.c,{label:"Alias",tooltip:"Alias replacement variables: {{metric}}, {{stat}}, {{namespace}}, {{region}}, {{period}}, {{label}}, {{YOUR_DIMENSION_NAME}}"},d.a.createElement(y.a,{value:n.alias,onChange:function(t){return e.onChange(Object(m.__assign)(Object(m.__assign)({},n),{alias:t}))}})),d.a.createElement(g.Switch,{label:"Match Exact",labelClass:"query-keyword",tooltip:"Only show metrics that exactly match all defined dimension names.",checked:n.matchExact,onChange:function(){return e.onChange(Object(m.__assign)(Object(m.__assign)({},n),{matchExact:!n.matchExact}))}}),d.a.createElement("label",{className:"gf-form-label"},d.a.createElement("a",{onClick:function(){return i&&e.setState({showMeta:!s})}},d.a.createElement("i",{className:"fa fa-caret-"+(s?"down":"right")})," ",s?"Hide":"Show"," Query Preview"))),d.a.createElement("div",{className:"gf-form gf-form--grow"},d.a.createElement("div",{className:"gf-form-label gf-form-label--grow"})),s&&i&&d.a.createElement("table",{className:"filter-table form-inline"},d.a.createElement("thead",null,d.a.createElement("tr",null,d.a.createElement("th",null,"Metric Data Query ID"),d.a.createElement("th",null,"Metric Data Query Expression"),d.a.createElement("th",null,"Period"),d.a.createElement("th",null))),d.a.createElement("tbody",null,a.series[0].meta.gmdMeta.map(function(e){var t=e.ID,a=e.Expression,n=e.Period;return d.a.createElement("tr",{key:t},d.a.createElement("td",null,t),d.a.createElement("td",null,a),d.a.createElement("td",null,n))})))))},t}(p.PureComponent),N=a("3SGO"),_=a("UvM7"),O=a("GQ3c"),w=a("iODs"),j=a("PbtU"),x=function(e){var t=e.region;return d.a.createElement("p",null,"Please visit the ",d.a.createElement("a",{target:"_blank",className:"text-link",href:"https://"+t+".console.aws.amazon.com/servicequotas/home?region="+t+"#!/services/monitoring/quotas/L-5E141212"},"AWS Service Quotas console")," to request a quota increase or see our ",d.a.createElement("a",{target:"_blank",className:"text-link",href:"https://grafana.com/docs/features/datasources/cloudwatch/#service-quotas"},"documentation")," to learn more.")},D=function(e,t){void 0===t&&(t=7e3);var a=Object(i.memoize)(function(){for(var a=[],n=0;n<arguments.length;n++)a[n]=arguments[n];return Object(i.debounce)(e,t,{leading:!0})},function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return JSON.stringify(e)});return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return a.apply(void 0,Object(m.__spread)(e)).apply(void 0,Object(m.__spread)(e))}},C=function(e,t){return w.b.dispatch(Object(N.b)(Object(_.a)("CloudWatch request limit reached in "+t+" for data source "+e,"",d.a.createElement(x,{region:t},null))))},R=function(e,t){return w.b.dispatch(Object(N.b)(Object(_.a)(e,t)))},A=function(e){function t(t,a,n,r){var s=e.call(this,t)||this;return s.backendSrv=a,s.templateSrv=n,s.timeSrv=r,s.type="cloudwatch",s.proxyUrl=t.url,s.defaultRegion=t.jsonData.defaultRegion,s.datasourceName=t.name,s.standardStatistics=["Average","Maximum","Minimum","Sum","SampleCount"],s.debouncedAlert=D(C,O.AppNotificationTimeout.Error),s.debouncedCustomAlert=D(R,O.AppNotificationTimeout.Error),s}return t.$inject=["instanceSettings","backendSrv","templateSrv","timeSrv"],Object(m.__extends)(t,e),t.prototype.query=function(e){var t=this;e=r.a.copy(e);var a=o.a.filter(e.targets,function(e){return(""!==e.id||!0!==e.hide)&&(!!e.region&&!!e.namespace&&!!e.metricName&&!o.a.isEmpty(e.statistics)||e.expression.length>0)}).map(function(a){if(a.region=t.replace(t.getActualRegion(a.region),e.scopedVars,!0,"region"),a.namespace=t.replace(a.namespace,e.scopedVars,!0,"namespace"),a.metricName=t.replace(a.metricName,e.scopedVars,!0,"metric name"),a.dimensions=t.convertDimensionFormat(a.dimensions,e.scopedVars),a.statistics=a.statistics.map(function(a){return t.replace(a,e.scopedVars,!0,"statistics")}),a.period=String(t.getPeriod(a,e)),a.id=t.templateSrv.replace(a.id,e.scopedVars),a.expression=t.templateSrv.replace(a.expression,e.scopedVars),a.statistics.some(function(e){if(0===e.indexOf("p")){var t=/^p\d{2}(?:\.\d{1,2})?$/.exec(e);return!t||t[0]!==e}return!1}))throw{message:"Invalid extended statistics"};return o.a.extend({refId:a.refId,intervalMs:e.intervalMs,maxDataPoints:e.maxDataPoints,datasourceId:t.id,type:"timeSeriesQuery"},a)});if(o.a.isEmpty(a))return Promise.resolve({data:[]});var n={from:e.range.from.valueOf().toString(),to:e.range.to.valueOf().toString(),queries:a};return this.performTimeSeriesQuery(n,e.range)},Object.defineProperty(t.prototype,"variables",{get:function(){return this.templateSrv.variables.map(function(e){return"$"+e.name})},enumerable:!0,configurable:!0}),t.prototype.getPeriod=function(e,t){var a=this.templateSrv.replace(e.period,t.scopedVars);return a&&"auto"!==a.toLowerCase()&&(a=/^\d+$/.test(a)?parseInt(a,10):j.a.interval_to_seconds(a))<1&&(a=1),a||""},t.prototype.buildCloudwatchConsoleUrl=function(e,t,a,n,r){var s=e.region,i=e.namespace,o=e.metricName,c=e.dimensions,l=e.statistics,u=e.expression,p={view:"timeSeries",stacked:!1,title:n,start:t,end:a,region:s=this.getActualRegion(s)},d=r&&r.length&&r.every(function(e){var t=e.Expression;return/SEARCH().*/.test(t)});if(!d&&u)return"";if(d){var g=r&&r.length?r.map(function(e){return{expression:e.Expression}}):[{expression:u}];p=Object(m.__assign)(Object(m.__assign)({},p),{metrics:g})}else p=Object(m.__assign)(Object(m.__assign)({},p),{metrics:Object(m.__spread)(l.map(function(e){return Object(m.__spread)([i,o],Object.entries(c).reduce(function(e,t){var a=Object(m.__read)(t,2),n=a[0],r=a[1];return Object(m.__spread)(e,[n,r[0]])},[]),[{stat:e,period:r.length?r[0].Period:60}])}))});return"https://"+s+".console.aws.amazon.com/cloudwatch/deeplink.js?region="+s+"#metricsV2:graph="+encodeURIComponent(JSON.stringify(p))},t.prototype.performTimeSeriesQuery=function(e,t){var a=this,n=t.from,r=t.to;return this.awsRequest("/api/tsdb/query",e).then(function(t){return t.results?Object.values(e.queries).reduce(function(e,s){var i=e.data,o=e.error,c=t.results[s.refId];if(!c)return{data:i,error:o};var l=a.buildCloudwatchConsoleUrl(s,n.toISOString(),r.toISOString(),s.refId,c.meta.gmdMeta);return{error:o||c.error?{message:c.error}:null,data:Object(m.__spread)(i,c.series.map(function(e){var t,a,n=e.name,r=e.points,i=Object(u.toDataFrame)({target:n,datapoints:r,refId:s.refId,meta:c.meta});if(l)try{for(var o=Object(m.__values)(i.fields),p=o.next();!p.done;p=o.next()){p.value.config.links=[{url:l,title:"View in CloudWatch console",targetBlank:!0}]}}catch(e){t={error:e}}finally{try{p&&!p.done&&(a=o.return)&&a.call(o)}finally{if(t)throw t.error}}return i}))}},{data:[],error:null}):{data:[]}}).catch(function(t){if(void 0===t&&(t={data:{error:""}}),/^Throttling:.*/.test(t.data.message)){var n=Object.keys(t.data.results);Object.values(e.queries).reduce(function(e,t){var a=t.refId,r=t.region;return!n.includes(a)||e.includes(r)?e:Object(m.__spread)(e,[r])},[]).forEach(function(e){return a.debouncedAlert(a.datasourceName,a.getActualRegion(e))})}throw t.data&&"Metric request error"===t.data.message&&t.data.error&&(t.data.message=t.data.error),t})},t.prototype.transformSuggestDataFromTable=function(e){return o.a.map(e.results.metricFindQuery.tables[0].rows,function(e){return{text:e[0],value:e[1],label:e[1]}})},t.prototype.doMetricQueryRequest=function(e,t){var a=this,n=this.timeSrv.timeRange();return this.awsRequest("/api/tsdb/query",{from:n.from.valueOf().toString(),to:n.to.valueOf().toString(),queries:[o.a.extend({refId:"metricFindQuery",intervalMs:1,maxDataPoints:1,datasourceId:this.id,type:"metricFindQuery",subtype:e},t)]}).then(function(e){return a.transformSuggestDataFromTable(e)})},t.prototype.getRegions=function(){return this.doMetricQueryRequest("regions",null).then(function(e){return Object(m.__spread)([{label:"default",value:"default",text:"default"}],e)})},t.prototype.getNamespaces=function(){return this.doMetricQueryRequest("namespaces",null)},t.prototype.getMetrics=function(e,t){return Object(m.__awaiter)(this,void 0,void 0,function(){return Object(m.__generator)(this,function(a){return e?[2,this.doMetricQueryRequest("metrics",{region:this.templateSrv.replace(this.getActualRegion(t)),namespace:this.templateSrv.replace(e)})]:[2,[]]})})},t.prototype.getDimensionKeys=function(e,t){return Object(m.__awaiter)(this,void 0,void 0,function(){return Object(m.__generator)(this,function(a){return e?[2,this.doMetricQueryRequest("dimension_keys",{region:this.templateSrv.replace(this.getActualRegion(t)),namespace:this.templateSrv.replace(e)})]:[2,[]]})})},t.prototype.getDimensionValues=function(e,t,a,n,r){return Object(m.__awaiter)(this,void 0,void 0,function(){return Object(m.__generator)(this,function(s){switch(s.label){case 0:return t&&a?[4,this.doMetricQueryRequest("dimension_values",{region:this.templateSrv.replace(this.getActualRegion(e)),namespace:this.templateSrv.replace(t),metricName:this.templateSrv.replace(a.trim()),dimensionKey:this.templateSrv.replace(n),dimensions:this.convertDimensionFormat(r,{})})]:[2,[]];case 1:return[2,s.sent()]}})})},t.prototype.getEbsVolumeIds=function(e,t){return this.doMetricQueryRequest("ebs_volume_ids",{region:this.templateSrv.replace(this.getActualRegion(e)),instanceId:this.templateSrv.replace(t)})},t.prototype.getEc2InstanceAttribute=function(e,t,a){return this.doMetricQueryRequest("ec2_instance_attribute",{region:this.templateSrv.replace(this.getActualRegion(e)),attributeName:this.templateSrv.replace(t),filters:a})},t.prototype.getResourceARNs=function(e,t,a){return this.doMetricQueryRequest("resource_arns",{region:this.templateSrv.replace(this.getActualRegion(e)),resourceType:this.templateSrv.replace(t),tags:a})},t.prototype.metricFindQuery=function(e){return Object(m.__awaiter)(this,void 0,void 0,function(){var t,a,n,r,s,i,o,c,l,u,p,d,g,f,h;return Object(m.__generator)(this,function(m){return e.match(/^regions\(\)/)?[2,this.getRegions()]:e.match(/^namespaces\(\)/)?[2,this.getNamespaces()]:(s=e.match(/^metrics\(([^\)]+?)(,\s?([^,]+?))?\)/))?(a=s[1],t=s[3],[2,this.getMetrics(a,t)]):(i=e.match(/^dimension_keys\(([^\)]+?)(,\s?([^,]+?))?\)/))?(a=i[1],t=i[3],[2,this.getDimensionKeys(a,t)]):(o=e.match(/^dimension_values\(([^,]+?),\s?([^,]+?),\s?([^,]+?),\s?([^,]+?)(,\s?(.+))?\)/))?(t=o[1],a=o[2],n=o[3],c=o[4],r={},o[6]&&(r=JSON.parse(this.templateSrv.replace(o[6]))),[2,this.getDimensionValues(t,a,n,c,r)]):(l=e.match(/^ebs_volume_ids\(([^,]+?),\s?([^,]+?)\)/))?(t=l[1],u=l[2],[2,this.getEbsVolumeIds(t,u)]):(p=e.match(/^ec2_instance_attribute\(([^,]+?),\s?([^,]+?),\s?(.+?)\)/))?(t=p[1],d=p[2],r=JSON.parse(this.templateSrv.replace(p[3])),[2,this.getEc2InstanceAttribute(t,d,r)]):(g=e.match(/^resource_arns\(([^,]+?),\s?([^,]+?),\s?(.+?)\)/))?(t=g[1],f=g[2],h=JSON.parse(this.templateSrv.replace(g[3])),[2,this.getResourceARNs(t,f,h)]):e.match(/^statistics\(\)/)?[2,this.standardStatistics.map(function(e){return{value:e,label:e,text:e}})]:[2,Promise.resolve([])]})})},t.prototype.annotationQuery=function(e){var t=this,a=e.annotation,n=o.a.map(a.statistics,function(e){return t.templateSrv.replace(e)}),r=a.prefixMatching?"":"300",s=a.period||r;s=parseInt(s,10);var i={prefixMatching:a.prefixMatching,region:this.templateSrv.replace(this.getActualRegion(a.region)),namespace:this.templateSrv.replace(a.namespace),metricName:this.templateSrv.replace(a.metricName),dimensions:this.convertDimensionFormat(a.dimensions,{}),statistics:n,period:s,actionPrefix:a.actionPrefix||"",alarmNamePrefix:a.alarmNamePrefix||""};return this.awsRequest("/api/tsdb/query",{from:e.range.from.valueOf().toString(),to:e.range.to.valueOf().toString(),queries:[o.a.extend({refId:"annotationQuery",intervalMs:1,maxDataPoints:1,datasourceId:this.id,type:"annotationQuery"},i)]}).then(function(e){return o.a.map(e.results.annotationQuery.tables[0].rows,function(e){return{annotation:a,time:Date.parse(e[0]),title:e[1],tags:[e[2]],text:e[3]}})})},t.prototype.targetContainsTemplate=function(e){var t=this;return this.templateSrv.variableExists(e.region)||this.templateSrv.variableExists(e.namespace)||this.templateSrv.variableExists(e.metricName)||o.a.find(e.dimensions,function(e,a){return t.templateSrv.variableExists(a)||t.templateSrv.variableExists(e)})},t.prototype.testDatasource=function(){var e=this.defaultRegion;return this.getDimensionValues(e,"AWS/Billing","EstimatedCharges","ServiceName",{}).then(function(){return{status:"success",message:"Data source is working"}})},t.prototype.awsRequest=function(e,t){var a={method:"POST",url:e,data:t};return this.backendSrv.datasourceRequest(a).then(function(e){return e.data})},t.prototype.getDefaultRegion=function(){return this.defaultRegion},t.prototype.getActualRegion=function(e){return"default"===e||o.a.isEmpty(e)?this.getDefaultRegion():e},t.prototype.convertToCloudWatchTime=function(e,t){return o.a.isString(e)&&(e=u.dateMath.parse(e,t)),Math.round(e.valueOf()/1e3)},t.prototype.convertDimensionFormat=function(e,t){var a=this;return Object.entries(e).reduce(function(e,n){var r,s,i,o,c=Object(m.__read)(n,2),l=c[0],u=c[1];if(l=a.replace(l,t,!0,"dimension keys"),Array.isArray(u))return Object(m.__assign)(Object(m.__assign)({},e),((r={})[l]=u,r));var p=a.templateSrv.variables.find(function(e){return e.name===a.templateSrv.getVariableName(u)});if(p){if(p.multi){var d=a.templateSrv.replace(u,t,"pipe").split("|");return Object(m.__assign)(Object(m.__assign)({},e),((s={})[l]=d,s))}return Object(m.__assign)(Object(m.__assign)({},e),((i={})[l]=[a.templateSrv.replace(u,t)],i))}return Object(m.__assign)(Object(m.__assign)({},e),((o={})[l]=[u],o))},{})},t.prototype.replace=function(e,t,a,n){var r=this;if(a){var s=this.templateSrv.variables.find(function(t){return t.name===r.templateSrv.getVariableName(e)});s&&s.multi&&this.debouncedCustomAlert("CloudWatch templating error","Multi template variables are not supported for "+(n||e))}return this.templateSrv.replace(e,t)},t}(u.DataSourceApi),M=function(){function e(){o.a.defaultsDeep(this.annotation,{namespace:"",metricName:"",expression:"",dimensions:{},region:"default",id:"",alias:"",statistics:["Average"],matchExact:!0,prefixMatching:!1,actionPrefix:"",alarmNamePrefix:""}),this.onChange=this.onChange.bind(this)}return e.prototype.onChange=function(e){Object.assign(this.annotation,e)},e.templateUrl="partials/annotations.editor.html",e}();a.d(t,"plugin",function(){return P});var P=new u.DataSourcePlugin(A).setConfigEditor(b).setQueryEditor(E).setExploreQueryField(E).setAnnotationQueryCtrl(M)},sGFA:function(e,t,a){"use strict";a.d(t,"a",function(){return n});var n=function(e){var t=!1;return{promise:new Promise(function(a,n){e.then(function(e){return t?n({isCanceled:!0}):a(e)}),e.catch(function(e){return n(t?{isCanceled:!0}:e)})}),cancel:function(){t=!0}}}}}]); //# sourceMappingURL=cloudwatchPlugin.4d0490a94b199a11f40c.js.map