UNPKG

@nova-ui/dashboards

Version:

Nova Dashboards is a framework designed to provide feature developers with a common solution for presenting data coming from various sources within a single view, as well as a set of predefined widget visualizations that are 100% configuration-driven and

122 lines 17.6 kB
// © 2022 SolarWinds Worldwide, LLC. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. import { StackComponent } from "../../components/layouts/stack/stack.component"; import { TimeframeSelectionComponent } from "../../components/time-frame-selection/timeframe-selection.component"; import { TimeseriesWidgetComponent } from "../../components/timeseries-widget/timeseries-widget.component"; import { TimeseriesChartPreset, TimeseriesScaleType, } from "../../components/timeseries-widget/types"; import { DEFAULT_PIZZAGNA_ROOT, NOVA_TIMESERIES_DATASOURCE_ADAPTER, } from "../../services/types"; import { PizzagnaLayer, WellKnownProviders, } from "../../types"; import { widgetBodyContentNodes, WIDGET_BODY, WIDGET_HEADER, WIDGET_LOADING, } from "../common/widget/components"; import { EVENT_PROXY, refresher } from "../common/widget/providers"; export const timeseriesWidget = { [PizzagnaLayer.Structure]: { [DEFAULT_PIZZAGNA_ROOT]: { id: DEFAULT_PIZZAGNA_ROOT, // base layout of the widget - all components referenced herein will be stacked in a column componentType: StackComponent.lateLoadKey, providers: { // When enabled, this provider emits the REFRESH event on the pizzagna event bus every X seconds [WellKnownProviders.Refresher]: refresher(), // event proxy manages the transmission of events between widget and dashboard [WellKnownProviders.EventProxy]: EVENT_PROXY, }, properties: { // these values reference other components in this structure nodes: ["header", "loading", "body"], }, }, // widget header header: WIDGET_HEADER, // this is the loading bar below the header loading: WIDGET_LOADING, // widget body body: { ...WIDGET_BODY, properties: { ...WIDGET_BODY.properties, elementClass: "overflow-auto", }, }, // retrieving the definitions for the body content nodes. the argument corresponds to the main content node key ...widgetBodyContentNodes("mainContent"), mainContent: { id: "mainContent", componentType: StackComponent.lateLoadKey, properties: { // these values reference other components in this configuration nodes: ["timeframeSelection", "chart"], }, }, // component that filters the widget's timeseries data by timeframe timeframeSelection: { id: "timeframeSelection", componentType: TimeframeSelectionComponent.lateLoadKey, }, // component that displays the widget's timeseries data as a line chart chart: { id: "chart", componentType: TimeseriesWidgetComponent.lateLoadKey, properties: { elementClass: "d-flex flex-column justify-content-center h-100 overflow-auto", configuration: { preset: TimeseriesChartPreset.Line, // this scales configuration defines default scale types for the chart scales: { y: { // linear numeric scale for the y axis type: TimeseriesScaleType.Linear, }, x: { // continuous time scale for the x axis type: TimeseriesScaleType.Time, }, }, }, }, providers: { // provider for mapping the timeseries data source output to the format required by the widget [WellKnownProviders.Adapter]: { providerId: NOVA_TIMESERIES_DATASOURCE_ADAPTER, properties: { componentId: "chart", propertyPath: "widgetData", series: [], }, }, }, }, }, [PizzagnaLayer.Configuration]: { [DEFAULT_PIZZAGNA_ROOT]: { id: DEFAULT_PIZZAGNA_ROOT, providers: { // default refresher configuration [WellKnownProviders.Refresher]: refresher(false, 60), }, }, // default header configuration header: { properties: { title: $localize `Empty Timeseries Widget`, }, }, }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXNlcmllcy13aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3dpZGdldC10eXBlcy90aW1lc2VyaWVzL3RpbWVzZXJpZXMtd2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxFQUFFO0FBQ0YsK0VBQStFO0FBQy9FLDRFQUE0RTtBQUM1RSw4RUFBOEU7QUFDOUUsK0VBQStFO0FBQy9FLDhFQUE4RTtBQUM5RSw0REFBNEQ7QUFDNUQsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSx1REFBdUQ7QUFDdkQsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSw0RUFBNEU7QUFDNUUsK0VBQStFO0FBQy9FLDBFQUEwRTtBQUMxRSxpRkFBaUY7QUFDakYsNkVBQTZFO0FBQzdFLGlCQUFpQjtBQUVqQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDaEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDbEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDM0csT0FBTyxFQUdILHFCQUFxQixFQUNyQixtQkFBbUIsR0FDdEIsTUFBTSwwQ0FBMEMsQ0FBQztBQUVsRCxPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLGtDQUFrQyxHQUNyQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFFSCxhQUFhLEVBQ2Isa0JBQWtCLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLGFBQWEsRUFDYixjQUFjLEdBQ2pCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUN2QixDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDckIsRUFBRSxFQUFFLHFCQUFxQjtZQUN6QiwyRkFBMkY7WUFDM0YsYUFBYSxFQUFFLGNBQWMsQ0FBQyxXQUFXO1lBQ3pDLFNBQVMsRUFBRTtnQkFDUCxnR0FBZ0c7Z0JBQ2hHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFO2dCQUMzQyw4RUFBOEU7Z0JBQzlFLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVzthQUMvQztZQUNELFVBQVUsRUFBRTtnQkFDUiw0REFBNEQ7Z0JBQzVELEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDO2FBQ3ZDO1NBQ0o7UUFDRCxnQkFBZ0I7UUFDaEIsTUFBTSxFQUFFLGFBQWE7UUFDckIsMkNBQTJDO1FBQzNDLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLGNBQWM7UUFDZCxJQUFJLEVBQUU7WUFDRixHQUFHLFdBQVc7WUFDZCxVQUFVLEVBQUU7Z0JBQ1IsR0FBRyxXQUFXLENBQUMsVUFBVTtnQkFDekIsWUFBWSxFQUFFLGVBQWU7YUFDaEM7U0FDSjtRQUVELCtHQUErRztRQUMvRyxHQUFHLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztRQUV4QyxXQUFXLEVBQUU7WUFDVCxFQUFFLEVBQUUsYUFBYTtZQUNqQixhQUFhLEVBQUUsY0FBYyxDQUFDLFdBQVc7WUFDekMsVUFBVSxFQUFFO2dCQUNSLGdFQUFnRTtnQkFDaEUsS0FBSyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDO2FBQ3pDO1NBQ0o7UUFDRCxtRUFBbUU7UUFDbkUsa0JBQWtCLEVBQUU7WUFDaEIsRUFBRSxFQUFFLG9CQUFvQjtZQUN4QixhQUFhLEVBQUUsMkJBQTJCLENBQUMsV0FBVztTQUN6RDtRQUNELHVFQUF1RTtRQUN2RSxLQUFLLEVBQUU7WUFDSCxFQUFFLEVBQUUsT0FBTztZQUNYLGFBQWEsRUFBRSx5QkFBeUIsQ0FBQyxXQUFXO1lBQ3BELFVBQVUsRUFBRTtnQkFDUixZQUFZLEVBQ1IsK0RBQStEO2dCQUNuRSxhQUFhLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLHFCQUFxQixDQUFDLElBQUk7b0JBQ2xDLHNFQUFzRTtvQkFDdEUsTUFBTSxFQUFFO3dCQUNKLENBQUMsRUFBRTs0QkFDQyxzQ0FBc0M7NEJBQ3RDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO3lCQUNUO3dCQUMzQixDQUFDLEVBQUU7NEJBQ0MsdUNBQXVDOzRCQUN2QyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTt5QkFDUDtxQkFDOUI7aUJBQ3VCO2FBQy9CO1lBQ0QsU0FBUyxFQUFFO2dCQUNQLDhGQUE4RjtnQkFDOUYsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDMUIsVUFBVSxFQUFFLGtDQUFrQztvQkFDOUMsVUFBVSxFQUFFO3dCQUNSLFdBQVcsRUFBRSxPQUFPO3dCQUNwQixZQUFZLEVBQUUsWUFBWTt3QkFDMUIsTUFBTSxFQUFFLEVBQW9DO3FCQUMvQztpQkFDc0I7YUFDOUI7U0FDSjtLQUNKO0lBQ0QsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDM0IsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQ3JCLEVBQUUsRUFBRSxxQkFBcUI7WUFDekIsU0FBUyxFQUFFO2dCQUNQLGtDQUFrQztnQkFDbEMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQzthQUN2RDtTQUNKO1FBQ0QsK0JBQStCO1FBQy9CLE1BQU0sRUFBRTtZQUNKLFVBQVUsRUFBRTtnQkFDUixLQUFLLEVBQUUsU0FBUyxDQUFBLHlCQUF5QjthQUM1QztTQUNKO0tBQ0o7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gwqkgMjAyMiBTb2xhcldpbmRzIFdvcmxkd2lkZSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0b1xuLy8gIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlXG4vLyAgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4vLyAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7IFN0YWNrQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvbGF5b3V0cy9zdGFjay9zdGFjay5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRpbWVmcmFtZVNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3RpbWUtZnJhbWUtc2VsZWN0aW9uL3RpbWVmcmFtZS1zZWxlY3Rpb24uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBUaW1lc2VyaWVzV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvdGltZXNlcmllcy13aWRnZXQvdGltZXNlcmllcy13aWRnZXQuY29tcG9uZW50XCI7XG5pbXBvcnQge1xuICAgIElUaW1lc2VyaWVzU2NhbGVDb25maWcsXG4gICAgSVRpbWVzZXJpZXNXaWRnZXRDb25maWcsXG4gICAgVGltZXNlcmllc0NoYXJ0UHJlc2V0LFxuICAgIFRpbWVzZXJpZXNTY2FsZVR5cGUsXG59IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3RpbWVzZXJpZXMtd2lkZ2V0L3R5cGVzXCI7XG5pbXBvcnQgeyBJVGltZXNlcmllc0l0ZW1Db25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRvci9jb21wb25lbnRzL3dpZGdldHMvdGltZXNlcmllcy90eXBlc1wiO1xuaW1wb3J0IHtcbiAgICBERUZBVUxUX1BJWlpBR05BX1JPT1QsXG4gICAgTk9WQV9USU1FU0VSSUVTX0RBVEFTT1VSQ0VfQURBUFRFUixcbn0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3R5cGVzXCI7XG5pbXBvcnQge1xuICAgIElQcm92aWRlckNvbmZpZ3VyYXRpb24sXG4gICAgUGl6emFnbmFMYXllcixcbiAgICBXZWxsS25vd25Qcm92aWRlcnMsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgICB3aWRnZXRCb2R5Q29udGVudE5vZGVzLFxuICAgIFdJREdFVF9CT0RZLFxuICAgIFdJREdFVF9IRUFERVIsXG4gICAgV0lER0VUX0xPQURJTkcsXG59IGZyb20gXCIuLi9jb21tb24vd2lkZ2V0L2NvbXBvbmVudHNcIjtcbmltcG9ydCB7IEVWRU5UX1BST1hZLCByZWZyZXNoZXIgfSBmcm9tIFwiLi4vY29tbW9uL3dpZGdldC9wcm92aWRlcnNcIjtcblxuZXhwb3J0IGNvbnN0IHRpbWVzZXJpZXNXaWRnZXQgPSB7XG4gICAgW1BpenphZ25hTGF5ZXIuU3RydWN0dXJlXToge1xuICAgICAgICBbREVGQVVMVF9QSVpaQUdOQV9ST09UXToge1xuICAgICAgICAgICAgaWQ6IERFRkFVTFRfUElaWkFHTkFfUk9PVCxcbiAgICAgICAgICAgIC8vIGJhc2UgbGF5b3V0IG9mIHRoZSB3aWRnZXQgLSBhbGwgY29tcG9uZW50cyByZWZlcmVuY2VkIGhlcmVpbiB3aWxsIGJlIHN0YWNrZWQgaW4gYSBjb2x1bW5cbiAgICAgICAgICAgIGNvbXBvbmVudFR5cGU6IFN0YWNrQ29tcG9uZW50LmxhdGVMb2FkS2V5LFxuICAgICAgICAgICAgcHJvdmlkZXJzOiB7XG4gICAgICAgICAgICAgICAgLy8gV2hlbiBlbmFibGVkLCB0aGlzIHByb3ZpZGVyIGVtaXRzIHRoZSBSRUZSRVNIIGV2ZW50IG9uIHRoZSBwaXp6YWduYSBldmVudCBidXMgZXZlcnkgWCBzZWNvbmRzXG4gICAgICAgICAgICAgICAgW1dlbGxLbm93blByb3ZpZGVycy5SZWZyZXNoZXJdOiByZWZyZXNoZXIoKSxcbiAgICAgICAgICAgICAgICAvLyBldmVudCBwcm94eSBtYW5hZ2VzIHRoZSB0cmFuc21pc3Npb24gb2YgZXZlbnRzIGJldHdlZW4gd2lkZ2V0IGFuZCBkYXNoYm9hcmRcbiAgICAgICAgICAgICAgICBbV2VsbEtub3duUHJvdmlkZXJzLkV2ZW50UHJveHldOiBFVkVOVF9QUk9YWSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgLy8gdGhlc2UgdmFsdWVzIHJlZmVyZW5jZSBvdGhlciBjb21wb25lbnRzIGluIHRoaXMgc3RydWN0dXJlXG4gICAgICAgICAgICAgICAgbm9kZXM6IFtcImhlYWRlclwiLCBcImxvYWRpbmdcIiwgXCJib2R5XCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gd2lkZ2V0IGhlYWRlclxuICAgICAgICBoZWFkZXI6IFdJREdFVF9IRUFERVIsXG4gICAgICAgIC8vIHRoaXMgaXMgdGhlIGxvYWRpbmcgYmFyIGJlbG93IHRoZSBoZWFkZXJcbiAgICAgICAgbG9hZGluZzogV0lER0VUX0xPQURJTkcsXG4gICAgICAgIC8vIHdpZGdldCBib2R5XG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgIC4uLldJREdFVF9CT0RZLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIC4uLldJREdFVF9CT0RZLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgZWxlbWVudENsYXNzOiBcIm92ZXJmbG93LWF1dG9cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gcmV0cmlldmluZyB0aGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBib2R5IGNvbnRlbnQgbm9kZXMuIHRoZSBhcmd1bWVudCBjb3JyZXNwb25kcyB0byB0aGUgbWFpbiBjb250ZW50IG5vZGUga2V5XG4gICAgICAgIC4uLndpZGdldEJvZHlDb250ZW50Tm9kZXMoXCJtYWluQ29udGVudFwiKSxcblxuICAgICAgICBtYWluQ29udGVudDoge1xuICAgICAgICAgICAgaWQ6IFwibWFpbkNvbnRlbnRcIixcbiAgICAgICAgICAgIGNvbXBvbmVudFR5cGU6IFN0YWNrQ29tcG9uZW50LmxhdGVMb2FkS2V5LFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIC8vIHRoZXNlIHZhbHVlcyByZWZlcmVuY2Ugb3RoZXIgY29tcG9uZW50cyBpbiB0aGlzIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgICAgICBub2RlczogW1widGltZWZyYW1lU2VsZWN0aW9uXCIsIFwiY2hhcnRcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBjb21wb25lbnQgdGhhdCBmaWx0ZXJzIHRoZSB3aWRnZXQncyB0aW1lc2VyaWVzIGRhdGEgYnkgdGltZWZyYW1lXG4gICAgICAgIHRpbWVmcmFtZVNlbGVjdGlvbjoge1xuICAgICAgICAgICAgaWQ6IFwidGltZWZyYW1lU2VsZWN0aW9uXCIsXG4gICAgICAgICAgICBjb21wb25lbnRUeXBlOiBUaW1lZnJhbWVTZWxlY3Rpb25Db21wb25lbnQubGF0ZUxvYWRLZXksXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIHRoZSB3aWRnZXQncyB0aW1lc2VyaWVzIGRhdGEgYXMgYSBsaW5lIGNoYXJ0XG4gICAgICAgIGNoYXJ0OiB7XG4gICAgICAgICAgICBpZDogXCJjaGFydFwiLFxuICAgICAgICAgICAgY29tcG9uZW50VHlwZTogVGltZXNlcmllc1dpZGdldENvbXBvbmVudC5sYXRlTG9hZEtleSxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50Q2xhc3M6XG4gICAgICAgICAgICAgICAgICAgIFwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgaC0xMDAgb3ZlcmZsb3ctYXV0b1wiLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgcHJlc2V0OiBUaW1lc2VyaWVzQ2hhcnRQcmVzZXQuTGluZSxcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBzY2FsZXMgY29uZmlndXJhdGlvbiBkZWZpbmVzIGRlZmF1bHQgc2NhbGUgdHlwZXMgZm9yIHRoZSBjaGFydFxuICAgICAgICAgICAgICAgICAgICBzY2FsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsaW5lYXIgbnVtZXJpYyBzY2FsZSBmb3IgdGhlIHkgYXhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFRpbWVzZXJpZXNTY2FsZVR5cGUuTGluZWFyLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBJVGltZXNlcmllc1NjYWxlQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgeDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVvdXMgdGltZSBzY2FsZSBmb3IgdGhlIHggYXhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFRpbWVzZXJpZXNTY2FsZVR5cGUuVGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgSVRpbWVzZXJpZXNTY2FsZUNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9IGFzIElUaW1lc2VyaWVzV2lkZ2V0Q29uZmlnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb3ZpZGVyczoge1xuICAgICAgICAgICAgICAgIC8vIHByb3ZpZGVyIGZvciBtYXBwaW5nIHRoZSB0aW1lc2VyaWVzIGRhdGEgc291cmNlIG91dHB1dCB0byB0aGUgZm9ybWF0IHJlcXVpcmVkIGJ5IHRoZSB3aWRnZXRcbiAgICAgICAgICAgICAgICBbV2VsbEtub3duUHJvdmlkZXJzLkFkYXB0ZXJdOiB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVySWQ6IE5PVkFfVElNRVNFUklFU19EQVRBU09VUkNFX0FEQVBURVIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudElkOiBcImNoYXJ0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVBhdGg6IFwid2lkZ2V0RGF0YVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWVzOiBbXSBhcyBJVGltZXNlcmllc0l0ZW1Db25maWd1cmF0aW9uW10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSBhcyBJUHJvdmlkZXJDb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIFtQaXp6YWduYUxheWVyLkNvbmZpZ3VyYXRpb25dOiB7XG4gICAgICAgIFtERUZBVUxUX1BJWlpBR05BX1JPT1RdOiB7XG4gICAgICAgICAgICBpZDogREVGQVVMVF9QSVpaQUdOQV9ST09ULFxuICAgICAgICAgICAgcHJvdmlkZXJzOiB7XG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCByZWZyZXNoZXIgY29uZmlndXJhdGlvblxuICAgICAgICAgICAgICAgIFtXZWxsS25vd25Qcm92aWRlcnMuUmVmcmVzaGVyXTogcmVmcmVzaGVyKGZhbHNlLCA2MCksXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBkZWZhdWx0IGhlYWRlciBjb25maWd1cmF0aW9uXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAkbG9jYWxpemVgRW1wdHkgVGltZXNlcmllcyBXaWRnZXRgLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9LFxufTtcbiJdfQ==