@pulumiverse/grafana 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/alerting/contactPoint.d.ts +1 -1
  2. package/alerting/contactPoint.js +1 -1
  3. package/alerting/messageTemplate.d.ts +2 -2
  4. package/alerting/messageTemplate.js +2 -2
  5. package/alerting/muteTiming.d.ts +2 -2
  6. package/alerting/muteTiming.js +2 -2
  7. package/alerting/notificationPolicy.d.ts +2 -2
  8. package/alerting/notificationPolicy.js +2 -2
  9. package/alerting/ruleGroup.d.ts +1 -1
  10. package/alerting/ruleGroup.js +1 -1
  11. package/cloud/getAccessPolicies.d.ts +50 -0
  12. package/cloud/getAccessPolicies.js +46 -0
  13. package/cloud/getAccessPolicies.js.map +1 -0
  14. package/cloud/getProviderAwsAccount.d.ts +92 -0
  15. package/cloud/getProviderAwsAccount.js +74 -0
  16. package/cloud/getProviderAwsAccount.js.map +1 -0
  17. package/cloud/getProviderAwsCloudwatchScrapeJob.d.ts +211 -0
  18. package/cloud/getProviderAwsCloudwatchScrapeJob.js +160 -0
  19. package/cloud/getProviderAwsCloudwatchScrapeJob.js.map +1 -0
  20. package/cloud/getProviderAwsCloudwatchScrapeJobs.d.ts +66 -0
  21. package/cloud/getProviderAwsCloudwatchScrapeJobs.js +54 -0
  22. package/cloud/getProviderAwsCloudwatchScrapeJobs.js.map +1 -0
  23. package/cloud/index.d.ts +18 -0
  24. package/cloud/index.js +23 -1
  25. package/cloud/index.js.map +1 -1
  26. package/cloud/providerAwsAccount.d.ts +103 -0
  27. package/cloud/providerAwsAccount.js +96 -0
  28. package/cloud/providerAwsAccount.js.map +1 -0
  29. package/cloud/providerAwsCloudwatchScrapeJob.d.ts +192 -0
  30. package/cloud/providerAwsCloudwatchScrapeJob.js +139 -0
  31. package/cloud/providerAwsCloudwatchScrapeJob.js.map +1 -0
  32. package/config/vars.d.ts +19 -0
  33. package/config/vars.js +24 -0
  34. package/config/vars.js.map +1 -1
  35. package/connectionsMetricsEndpointScrapeJob.d.ts +151 -0
  36. package/connectionsMetricsEndpointScrapeJob.js +101 -0
  37. package/connectionsMetricsEndpointScrapeJob.js.map +1 -0
  38. package/contactPoint.d.ts +1 -1
  39. package/contactPoint.js +1 -1
  40. package/dashboardPermissionItem.d.ts +3 -3
  41. package/dataSource.d.ts +9 -0
  42. package/dataSource.js +9 -0
  43. package/dataSource.js.map +1 -1
  44. package/dataSourcePermissionItem.d.ts +3 -3
  45. package/enterprise/dataSourcePermissionItem.d.ts +3 -3
  46. package/enterprise/roleAssignmentItem.d.ts +3 -3
  47. package/folderPermissionItem.d.ts +3 -3
  48. package/getConnectionsMetricsEndpointScrapeJob.d.ts +79 -0
  49. package/getConnectionsMetricsEndpointScrapeJob.js +50 -0
  50. package/getConnectionsMetricsEndpointScrapeJob.js.map +1 -0
  51. package/getLibraryPanels.d.ts +114 -0
  52. package/getLibraryPanels.js +102 -0
  53. package/getLibraryPanels.js.map +1 -0
  54. package/getOncallUser.d.ts +1 -1
  55. package/getTeam.d.ts +1 -0
  56. package/getTeam.js.map +1 -1
  57. package/getUser.d.ts +2 -0
  58. package/getUser.js +2 -0
  59. package/getUser.js.map +1 -1
  60. package/getUsers.d.ts +2 -0
  61. package/getUsers.js +2 -0
  62. package/getUsers.js.map +1 -1
  63. package/index.d.ts +9 -0
  64. package/index.js +14 -3
  65. package/index.js.map +1 -1
  66. package/machineLearningHoliday.d.ts +42 -0
  67. package/machineLearningHoliday.js +42 -0
  68. package/machineLearningHoliday.js.map +1 -1
  69. package/machineLearningJob.d.ts +137 -9
  70. package/machineLearningJob.js +125 -0
  71. package/machineLearningJob.js.map +1 -1
  72. package/machineLearningOutlierDetector.d.ts +64 -6
  73. package/machineLearningOutlierDetector.js +55 -0
  74. package/machineLearningOutlierDetector.js.map +1 -1
  75. package/machinelearning/alert.d.ts +236 -0
  76. package/machinelearning/alert.js +138 -0
  77. package/machinelearning/alert.js.map +1 -0
  78. package/machinelearning/holiday.d.ts +42 -0
  79. package/machinelearning/holiday.js +42 -0
  80. package/machinelearning/holiday.js.map +1 -1
  81. package/machinelearning/index.d.ts +3 -0
  82. package/machinelearning/index.js +6 -1
  83. package/machinelearning/index.js.map +1 -1
  84. package/machinelearning/job.d.ts +137 -9
  85. package/machinelearning/job.js +125 -0
  86. package/machinelearning/job.js.map +1 -1
  87. package/machinelearning/outlierDetector.d.ts +64 -6
  88. package/machinelearning/outlierDetector.js +55 -0
  89. package/machinelearning/outlierDetector.js.map +1 -1
  90. package/messageTemplate.d.ts +2 -2
  91. package/messageTemplate.js +2 -2
  92. package/muteTiming.d.ts +2 -2
  93. package/muteTiming.js +2 -2
  94. package/notificationPolicy.d.ts +2 -2
  95. package/notificationPolicy.js +2 -2
  96. package/oncall/escalation.d.ts +18 -6
  97. package/oncall/escalation.js +2 -0
  98. package/oncall/escalation.js.map +1 -1
  99. package/oncall/getUser.d.ts +1 -1
  100. package/oncall/getUsers.d.ts +20 -0
  101. package/oncall/getUsers.js +24 -0
  102. package/oncall/getUsers.js.map +1 -0
  103. package/oncall/index.d.ts +3 -0
  104. package/oncall/index.js +4 -1
  105. package/oncall/index.js.map +1 -1
  106. package/oncall/integration.d.ts +1 -1
  107. package/oncall/integration.js +1 -1
  108. package/oncall/onCallShift.d.ts +12 -0
  109. package/oncall/onCallShift.js +2 -0
  110. package/oncall/onCallShift.js.map +1 -1
  111. package/oncallEscalation.d.ts +18 -6
  112. package/oncallEscalation.js +2 -0
  113. package/oncallEscalation.js.map +1 -1
  114. package/oncallIntegration.d.ts +1 -1
  115. package/oncallIntegration.js +1 -1
  116. package/oncallOnCallShift.d.ts +12 -0
  117. package/oncallOnCallShift.js +2 -0
  118. package/oncallOnCallShift.js.map +1 -1
  119. package/organization.d.ts +1 -0
  120. package/organization.js +1 -0
  121. package/organization.js.map +1 -1
  122. package/oss/dashboardPermissionItem.d.ts +3 -3
  123. package/oss/dataSource.d.ts +9 -0
  124. package/oss/dataSource.js +9 -0
  125. package/oss/dataSource.js.map +1 -1
  126. package/oss/folderPermissionItem.d.ts +3 -3
  127. package/oss/getTeam.d.ts +1 -0
  128. package/oss/getTeam.js.map +1 -1
  129. package/oss/getUser.d.ts +2 -0
  130. package/oss/getUser.js +2 -0
  131. package/oss/getUser.js.map +1 -1
  132. package/oss/getUsers.d.ts +2 -0
  133. package/oss/getUsers.js +2 -0
  134. package/oss/getUsers.js.map +1 -1
  135. package/oss/organization.d.ts +1 -0
  136. package/oss/organization.js +1 -0
  137. package/oss/organization.js.map +1 -1
  138. package/oss/serviceAccountPermissionItem.d.ts +3 -3
  139. package/oss/ssoSettings.d.ts +56 -4
  140. package/oss/ssoSettings.js +43 -1
  141. package/oss/ssoSettings.js.map +1 -1
  142. package/oss/team.d.ts +8 -0
  143. package/oss/team.js +2 -0
  144. package/oss/team.js.map +1 -1
  145. package/oss/user.d.ts +1 -0
  146. package/oss/user.js +1 -0
  147. package/oss/user.js.map +1 -1
  148. package/package.json +2 -2
  149. package/provider.d.ts +38 -0
  150. package/provider.js +5 -1
  151. package/provider.js.map +1 -1
  152. package/roleAssignmentItem.d.ts +3 -3
  153. package/ruleGroup.d.ts +1 -1
  154. package/ruleGroup.js +1 -1
  155. package/serviceAccountPermissionItem.d.ts +3 -3
  156. package/slo/slo.d.ts +14 -2
  157. package/slo/slo.js +5 -0
  158. package/slo/slo.js.map +1 -1
  159. package/slo.d.ts +14 -2
  160. package/slo.js +5 -0
  161. package/slo.js.map +1 -1
  162. package/ssoSettings.d.ts +56 -4
  163. package/ssoSettings.js +43 -1
  164. package/ssoSettings.js.map +1 -1
  165. package/team.d.ts +8 -0
  166. package/team.js +2 -0
  167. package/team.js.map +1 -1
  168. package/types/input.d.ts +894 -10
  169. package/types/output.d.ts +837 -14
  170. package/user.d.ts +1 -0
  171. package/user.js +1 -0
  172. package/user.js.map +1 -1
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.Alert = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * ## Example Usage
10
+ *
11
+ * ### Forecast Alert
12
+ *
13
+ * This alert uses a forecast.
14
+ *
15
+ * ```typescript
16
+ * import * as pulumi from "@pulumi/pulumi";
17
+ * import * as grafana from "@pulumiverse/grafana";
18
+ *
19
+ * const testAlertJob = new grafana.machinelearning.Job("test_alert_job", {
20
+ * name: "Test Job",
21
+ * metric: "tf_test_alert_job",
22
+ * datasourceType: "prometheus",
23
+ * datasourceUid: "abcd12345",
24
+ * queryParams: {
25
+ * expr: "grafanacloud_grafana_instance_active_user_count",
26
+ * },
27
+ * });
28
+ * const testJobAlert = new grafana.machinelearning.Alert("test_job_alert", {
29
+ * jobId: testAlertJob.id,
30
+ * title: "Test Alert",
31
+ * anomalyCondition: "any",
32
+ * threshold: ">0.8",
33
+ * window: "15m",
34
+ * noDataState: "OK",
35
+ * });
36
+ * ```
37
+ *
38
+ * ### Outlier Alert
39
+ *
40
+ * This alert uses an outlier detector.
41
+ *
42
+ * ```typescript
43
+ * import * as pulumi from "@pulumi/pulumi";
44
+ * import * as grafana from "@pulumiverse/grafana";
45
+ *
46
+ * const testAlertOutlierDetector = new grafana.machinelearning.OutlierDetector("test_alert_outlier_detector", {
47
+ * name: "Test Outlier",
48
+ * metric: "tf_test_alert_outlier",
49
+ * datasourceType: "prometheus",
50
+ * datasourceUid: "AbCd12345",
51
+ * queryParams: {
52
+ * expr: "grafanacloud_grafana_instance_active_user_count",
53
+ * },
54
+ * interval: 300,
55
+ * algorithm: {
56
+ * name: "dbscan",
57
+ * sensitivity: 0.5,
58
+ * config: {
59
+ * epsilon: 1,
60
+ * },
61
+ * },
62
+ * });
63
+ * const testOutlierAlert = new grafana.machinelearning.Alert("test_outlier_alert", {
64
+ * outlierId: testAlertOutlierDetector.id,
65
+ * title: "Test Alert",
66
+ * window: "1h",
67
+ * });
68
+ * ```
69
+ *
70
+ * ## Import
71
+ *
72
+ * ```sh
73
+ * $ pulumi import grafana:machineLearning/alert:Alert name "{{ id }}"
74
+ * ```
75
+ */
76
+ class Alert extends pulumi.CustomResource {
77
+ /**
78
+ * Get an existing Alert resource's state with the given name, ID, and optional extra
79
+ * properties used to qualify the lookup.
80
+ *
81
+ * @param name The _unique_ name of the resulting resource.
82
+ * @param id The _unique_ provider ID of the resource to lookup.
83
+ * @param state Any extra arguments used during the lookup.
84
+ * @param opts Optional settings to control the behavior of the CustomResource.
85
+ */
86
+ static get(name, id, state, opts) {
87
+ return new Alert(name, state, Object.assign(Object.assign({}, opts), { id: id }));
88
+ }
89
+ /**
90
+ * Returns true if the given object is an instance of Alert. This is designed to work even
91
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
92
+ */
93
+ static isInstance(obj) {
94
+ if (obj === undefined || obj === null) {
95
+ return false;
96
+ }
97
+ return obj['__pulumiType'] === Alert.__pulumiType;
98
+ }
99
+ constructor(name, argsOrState, opts) {
100
+ let resourceInputs = {};
101
+ opts = opts || {};
102
+ if (opts.id) {
103
+ const state = argsOrState;
104
+ resourceInputs["annotations"] = state ? state.annotations : undefined;
105
+ resourceInputs["anomalyCondition"] = state ? state.anomalyCondition : undefined;
106
+ resourceInputs["for"] = state ? state.for : undefined;
107
+ resourceInputs["jobId"] = state ? state.jobId : undefined;
108
+ resourceInputs["labels"] = state ? state.labels : undefined;
109
+ resourceInputs["noDataState"] = state ? state.noDataState : undefined;
110
+ resourceInputs["outlierId"] = state ? state.outlierId : undefined;
111
+ resourceInputs["threshold"] = state ? state.threshold : undefined;
112
+ resourceInputs["title"] = state ? state.title : undefined;
113
+ resourceInputs["window"] = state ? state.window : undefined;
114
+ }
115
+ else {
116
+ const args = argsOrState;
117
+ if ((!args || args.title === undefined) && !opts.urn) {
118
+ throw new Error("Missing required property 'title'");
119
+ }
120
+ resourceInputs["annotations"] = args ? args.annotations : undefined;
121
+ resourceInputs["anomalyCondition"] = args ? args.anomalyCondition : undefined;
122
+ resourceInputs["for"] = args ? args.for : undefined;
123
+ resourceInputs["jobId"] = args ? args.jobId : undefined;
124
+ resourceInputs["labels"] = args ? args.labels : undefined;
125
+ resourceInputs["noDataState"] = args ? args.noDataState : undefined;
126
+ resourceInputs["outlierId"] = args ? args.outlierId : undefined;
127
+ resourceInputs["threshold"] = args ? args.threshold : undefined;
128
+ resourceInputs["title"] = args ? args.title : undefined;
129
+ resourceInputs["window"] = args ? args.window : undefined;
130
+ }
131
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
132
+ super(Alert.__pulumiType, name, resourceInputs, opts);
133
+ }
134
+ }
135
+ exports.Alert = Alert;
136
+ /** @internal */
137
+ Alert.__pulumiType = 'grafana:machineLearning/alert:Alert';
138
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../machinelearning/alert.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,48 @@ import * as outputs from "../types/output";
6
6
  *
7
7
  * To use a holiday in a job, use its id in the `holidays` attribute of a `grafana.machineLearning.Job`:
8
8
  *
9
+ * ### iCal Holiday
10
+ *
11
+ * This holiday uses an iCal file to define the holidays.
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as grafana from "@pulumiverse/grafana";
16
+ *
17
+ * const ical = new grafana.machinelearning.Holiday("ical", {
18
+ * name: "My iCal holiday",
19
+ * description: "My Holiday",
20
+ * icalUrl: "https://calendar.google.com/calendar/ical/en.uk%23holiday%40group.v.calendar.google.com/public/basic.ics",
21
+ * icalTimezone: "Europe/London",
22
+ * });
23
+ * ```
24
+ *
25
+ * ### Custom Periods Holiday
26
+ *
27
+ * This holiday uses custom periods to define the holidays.
28
+ *
29
+ * ```typescript
30
+ * import * as pulumi from "@pulumi/pulumi";
31
+ * import * as grafana from "@pulumiverse/grafana";
32
+ *
33
+ * const customPeriods = new grafana.machinelearning.Holiday("custom_periods", {
34
+ * name: "My custom periods holiday",
35
+ * description: "My Holiday",
36
+ * customPeriods: [
37
+ * {
38
+ * name: "First of January",
39
+ * startTime: "2023-01-01T00:00:00Z",
40
+ * endTime: "2023-01-02T00:00:00Z",
41
+ * },
42
+ * {
43
+ * name: "First of Feburary",
44
+ * startTime: "2023-02-01T00:00:00Z",
45
+ * endTime: "2023-02-02T00:00:00Z",
46
+ * },
47
+ * ],
48
+ * });
49
+ * ```
50
+ *
9
51
  * ## Import
10
52
  *
11
53
  * ```sh
@@ -10,6 +10,48 @@ const utilities = require("../utilities");
10
10
  *
11
11
  * To use a holiday in a job, use its id in the `holidays` attribute of a `grafana.machineLearning.Job`:
12
12
  *
13
+ * ### iCal Holiday
14
+ *
15
+ * This holiday uses an iCal file to define the holidays.
16
+ *
17
+ * ```typescript
18
+ * import * as pulumi from "@pulumi/pulumi";
19
+ * import * as grafana from "@pulumiverse/grafana";
20
+ *
21
+ * const ical = new grafana.machinelearning.Holiday("ical", {
22
+ * name: "My iCal holiday",
23
+ * description: "My Holiday",
24
+ * icalUrl: "https://calendar.google.com/calendar/ical/en.uk%23holiday%40group.v.calendar.google.com/public/basic.ics",
25
+ * icalTimezone: "Europe/London",
26
+ * });
27
+ * ```
28
+ *
29
+ * ### Custom Periods Holiday
30
+ *
31
+ * This holiday uses custom periods to define the holidays.
32
+ *
33
+ * ```typescript
34
+ * import * as pulumi from "@pulumi/pulumi";
35
+ * import * as grafana from "@pulumiverse/grafana";
36
+ *
37
+ * const customPeriods = new grafana.machinelearning.Holiday("custom_periods", {
38
+ * name: "My custom periods holiday",
39
+ * description: "My Holiday",
40
+ * customPeriods: [
41
+ * {
42
+ * name: "First of January",
43
+ * startTime: "2023-01-01T00:00:00Z",
44
+ * endTime: "2023-01-02T00:00:00Z",
45
+ * },
46
+ * {
47
+ * name: "First of Feburary",
48
+ * startTime: "2023-02-01T00:00:00Z",
49
+ * endTime: "2023-02-02T00:00:00Z",
50
+ * },
51
+ * ],
52
+ * });
53
+ * ```
54
+ *
13
55
  * ## Import
14
56
  *
15
57
  * ```sh
@@ -1 +1 @@
1
- {"version":3,"file":"holiday.js","sourceRoot":"","sources":["../../machinelearning/holiday.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAGzC,0CAA0C;AAE1C;;;;;;;;;;GAUG;AACH,MAAa,OAAQ,SAAQ,MAAM,CAAC,cAAc;IAC9C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAoB,EAAE,IAAmC;QAClH,OAAO,IAAI,OAAO,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC9D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC;IACxD,CAAC;IA+BD,YAAY,IAAY,EAAE,WAAwC,EAAE,IAAmC;QACnG,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAuC,CAAC;YACtD,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3D;aAAM;YACH,MAAM,IAAI,GAAG,WAAsC,CAAC;YACpD,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SACzD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,6DAA6D,EAAE,CAAC,EAAE,CAAC;QACzG,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;;AA/EL,0BAgFC;AAlEG,gBAAgB;AACO,oBAAY,GAAG,yCAAyC,CAAC"}
1
+ {"version":3,"file":"holiday.js","sourceRoot":"","sources":["../../machinelearning/holiday.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAGzC,0CAA0C;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAa,OAAQ,SAAQ,MAAM,CAAC,cAAc;IAC9C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAoB,EAAE,IAAmC;QAClH,OAAO,IAAI,OAAO,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC9D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC;IACxD,CAAC;IA+BD,YAAY,IAAY,EAAE,WAAwC,EAAE,IAAmC;QACnG,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAuC,CAAC;YACtD,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3D;aAAM;YACH,MAAM,IAAI,GAAG,WAAsC,CAAC;YACpD,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SACzD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,6DAA6D,EAAE,CAAC,EAAE,CAAC;QACzG,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;;AA/EL,0BAgFC;AAlEG,gBAAgB;AACO,oBAAY,GAAG,yCAAyC,CAAC"}
@@ -1,3 +1,6 @@
1
+ export { AlertArgs, AlertState } from "./alert";
2
+ export type Alert = import("./alert").Alert;
3
+ export declare const Alert: typeof import("./alert").Alert;
1
4
  export { HolidayArgs, HolidayState } from "./holiday";
2
5
  export type Holiday = import("./holiday").Holiday;
3
6
  export declare const Holiday: typeof import("./holiday").Holiday;
@@ -2,9 +2,11 @@
2
2
  // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
3
  // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.OutlierDetector = exports.Job = exports.Holiday = void 0;
5
+ exports.OutlierDetector = exports.Job = exports.Holiday = exports.Alert = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("../utilities");
8
+ exports.Alert = null;
9
+ utilities.lazyLoad(exports, ["Alert"], () => require("./alert"));
8
10
  exports.Holiday = null;
9
11
  utilities.lazyLoad(exports, ["Holiday"], () => require("./holiday"));
10
12
  exports.Job = null;
@@ -15,6 +17,8 @@ const _module = {
15
17
  version: utilities.getVersion(),
16
18
  construct: (name, type, urn) => {
17
19
  switch (type) {
20
+ case "grafana:machineLearning/alert:Alert":
21
+ return new exports.Alert(name, undefined, { urn });
18
22
  case "grafana:machineLearning/holiday:Holiday":
19
23
  return new exports.Holiday(name, undefined, { urn });
20
24
  case "grafana:machineLearning/job:Job":
@@ -26,6 +30,7 @@ const _module = {
26
30
  }
27
31
  },
28
32
  };
33
+ pulumi.runtime.registerResourceModule("grafana", "machineLearning/alert", _module);
29
34
  pulumi.runtime.registerResourceModule("grafana", "machineLearning/holiday", _module);
30
35
  pulumi.runtime.registerResourceModule("grafana", "machineLearning/job", _module);
31
36
  pulumi.runtime.registerResourceModule("grafana", "machineLearning/outlierDetector", _module);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../machinelearning/index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAK7B,QAAA,OAAO,GAAuC,IAAW,CAAC;AACvE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAIxD,QAAA,GAAG,GAA+B,IAAW,CAAC;AAC3D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAIhD,QAAA,eAAe,GAAuD,IAAW,CAAC;AAC/F,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAGrF,MAAM,OAAO,GAAG;IACZ,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;IAC/B,SAAS,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAmB,EAAE;QACpE,QAAQ,IAAI,EAAE;YACV,KAAK,yCAAyC;gBAC1C,OAAO,IAAI,eAAO,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACrD,KAAK,iCAAiC;gBAClC,OAAO,IAAI,WAAG,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACjD,KAAK,yDAAyD;gBAC1D,OAAO,IAAI,uBAAe,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAC7D;gBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;SACxD;IACL,CAAC;CACJ,CAAC;AACF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAA;AACpF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAA;AAChF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,iCAAiC,EAAE,OAAO,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../machinelearning/index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAK7B,QAAA,KAAK,GAAmC,IAAW,CAAC;AACjE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAIpD,QAAA,OAAO,GAAuC,IAAW,CAAC;AACvE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAIxD,QAAA,GAAG,GAA+B,IAAW,CAAC;AAC3D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAIhD,QAAA,eAAe,GAAuD,IAAW,CAAC;AAC/F,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAGrF,MAAM,OAAO,GAAG;IACZ,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;IAC/B,SAAS,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAmB,EAAE;QACpE,QAAQ,IAAI,EAAE;YACV,KAAK,qCAAqC;gBACtC,OAAO,IAAI,aAAK,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACnD,KAAK,yCAAyC;gBAC1C,OAAO,IAAI,eAAO,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACrD,KAAK,iCAAiC;gBAClC,OAAO,IAAI,WAAG,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACjD,KAAK,yDAAyD;gBAC1D,OAAO,IAAI,uBAAe,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAC7D;gBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;SACxD;IACL,CAAC;CACJ,CAAC;AACF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAA;AAClF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAA;AACpF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAA;AAChF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,iCAAiC,EAAE,OAAO,CAAC,CAAA"}
@@ -2,6 +2,131 @@ import * as pulumi from "@pulumi/pulumi";
2
2
  /**
3
3
  * A job defines the queries and model parameters for a machine learning task.
4
4
  *
5
+ * ## Example Usage
6
+ *
7
+ * ### Basic Forecast
8
+ *
9
+ * This forecast uses a Prometheus datasource, where the source query is defined in the `expr` field of the `queryParams` attribute.
10
+ *
11
+ * Other datasources are supported, but the structure `queryParams` may differ.
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as grafana from "@pulumiverse/grafana";
16
+ *
17
+ * const foo = new grafana.oss.DataSource("foo", {
18
+ * type: "prometheus",
19
+ * name: "prometheus-ds-test",
20
+ * uid: "prometheus-ds-test-uid",
21
+ * url: "https://my-instance.com",
22
+ * basicAuthEnabled: true,
23
+ * basicAuthUsername: "username",
24
+ * jsonDataEncoded: JSON.stringify({
25
+ * httpMethod: "POST",
26
+ * prometheusType: "Mimir",
27
+ * prometheusVersion: "2.4.0",
28
+ * }),
29
+ * secureJsonDataEncoded: JSON.stringify({
30
+ * basicAuthPassword: "password",
31
+ * }),
32
+ * });
33
+ * const testJob = new grafana.machinelearning.Job("test_job", {
34
+ * name: "Test Job",
35
+ * metric: "tf_test_job",
36
+ * datasourceType: "prometheus",
37
+ * datasourceUid: foo.uid,
38
+ * queryParams: {
39
+ * expr: "grafanacloud_grafana_instance_active_user_count",
40
+ * },
41
+ * });
42
+ * ```
43
+ *
44
+ * ### Tuned Forecast
45
+ *
46
+ * This forecast has tuned hyperparameters to improve the accuracy of the model.
47
+ *
48
+ * ```typescript
49
+ * import * as pulumi from "@pulumi/pulumi";
50
+ * import * as grafana from "@pulumiverse/grafana";
51
+ *
52
+ * const foo = new grafana.oss.DataSource("foo", {
53
+ * type: "prometheus",
54
+ * name: "prometheus-ds-test",
55
+ * uid: "prometheus-ds-test-uid",
56
+ * url: "https://my-instance.com",
57
+ * basicAuthEnabled: true,
58
+ * basicAuthUsername: "username",
59
+ * jsonDataEncoded: JSON.stringify({
60
+ * httpMethod: "POST",
61
+ * prometheusType: "Mimir",
62
+ * prometheusVersion: "2.4.0",
63
+ * }),
64
+ * secureJsonDataEncoded: JSON.stringify({
65
+ * basicAuthPassword: "password",
66
+ * }),
67
+ * });
68
+ * const testJob = new grafana.machinelearning.Job("test_job", {
69
+ * name: "Test Job",
70
+ * metric: "tf_test_job",
71
+ * datasourceType: "prometheus",
72
+ * datasourceUid: foo.uid,
73
+ * queryParams: {
74
+ * expr: "grafanacloud_grafana_instance_active_user_count",
75
+ * },
76
+ * hyperParams: {
77
+ * daily_seasonality: "15",
78
+ * weekly_seasonality: "10",
79
+ * },
80
+ * customLabels: {
81
+ * example_label: "example_value",
82
+ * },
83
+ * });
84
+ * ```
85
+ *
86
+ * ### Forecast with Holidays
87
+ *
88
+ * This forecast has holidays which will be taken into account when training the model.
89
+ *
90
+ * ```typescript
91
+ * import * as pulumi from "@pulumi/pulumi";
92
+ * import * as grafana from "@pulumiverse/grafana";
93
+ *
94
+ * const foo = new grafana.oss.DataSource("foo", {
95
+ * type: "prometheus",
96
+ * name: "prometheus-ds-test",
97
+ * uid: "prometheus-ds-test-uid",
98
+ * url: "https://my-instance.com",
99
+ * basicAuthEnabled: true,
100
+ * basicAuthUsername: "username",
101
+ * jsonDataEncoded: JSON.stringify({
102
+ * httpMethod: "POST",
103
+ * prometheusType: "Mimir",
104
+ * prometheusVersion: "2.4.0",
105
+ * }),
106
+ * secureJsonDataEncoded: JSON.stringify({
107
+ * basicAuthPassword: "password",
108
+ * }),
109
+ * });
110
+ * const testHoliday = new grafana.machinelearning.Holiday("test_holiday", {
111
+ * name: "Test Holiday",
112
+ * customPeriods: [{
113
+ * name: "First of January",
114
+ * startTime: "2023-01-01T00:00:00Z",
115
+ * endTime: "2023-01-02T00:00:00Z",
116
+ * }],
117
+ * });
118
+ * const testJob = new grafana.machinelearning.Job("test_job", {
119
+ * name: "Test Job",
120
+ * metric: "tf_test_job",
121
+ * datasourceType: "prometheus",
122
+ * datasourceUid: foo.uid,
123
+ * queryParams: {
124
+ * expr: "grafanacloud_grafana_instance_active_user_count",
125
+ * },
126
+ * holidays: [testHoliday.id],
127
+ * });
128
+ * ```
129
+ *
5
130
  * ## Import
6
131
  *
7
132
  * ```sh
@@ -47,13 +172,14 @@ export declare class Job extends pulumi.CustomResource {
47
172
  */
48
173
  readonly holidays: pulumi.Output<string[] | undefined>;
49
174
  /**
50
- * The hyperparameters used to fine tune the algorithm. See https://grafana.com/docs/grafana-cloud/machine-learning/models/ for the full list of available hyperparameters. Defaults to `map[]`.
175
+ * The hyperparameters used to fine tune the algorithm. See https://grafana.com/docs/grafana-cloud/machine-learning/models/
176
+ * for the full list of available hyperparameters.
51
177
  */
52
178
  readonly hyperParams: pulumi.Output<{
53
179
  [key: string]: string;
54
180
  } | undefined>;
55
181
  /**
56
- * The data interval in seconds to train the data on. Defaults to `300`.
182
+ * The data interval in seconds to train the data on.
57
183
  */
58
184
  readonly interval: pulumi.Output<number | undefined>;
59
185
  /**
@@ -71,7 +197,7 @@ export declare class Job extends pulumi.CustomResource {
71
197
  [key: string]: string;
72
198
  }>;
73
199
  /**
74
- * The data interval in seconds to train the data on. Defaults to `7776000`.
200
+ * The data interval in seconds to train the data on.
75
201
  */
76
202
  readonly trainingWindow: pulumi.Output<number | undefined>;
77
203
  /**
@@ -110,13 +236,14 @@ export interface JobState {
110
236
  */
111
237
  holidays?: pulumi.Input<pulumi.Input<string>[]>;
112
238
  /**
113
- * The hyperparameters used to fine tune the algorithm. See https://grafana.com/docs/grafana-cloud/machine-learning/models/ for the full list of available hyperparameters. Defaults to `map[]`.
239
+ * The hyperparameters used to fine tune the algorithm. See https://grafana.com/docs/grafana-cloud/machine-learning/models/
240
+ * for the full list of available hyperparameters.
114
241
  */
115
242
  hyperParams?: pulumi.Input<{
116
243
  [key: string]: pulumi.Input<string>;
117
244
  }>;
118
245
  /**
119
- * The data interval in seconds to train the data on. Defaults to `300`.
246
+ * The data interval in seconds to train the data on.
120
247
  */
121
248
  interval?: pulumi.Input<number>;
122
249
  /**
@@ -134,7 +261,7 @@ export interface JobState {
134
261
  [key: string]: pulumi.Input<string>;
135
262
  }>;
136
263
  /**
137
- * The data interval in seconds to train the data on. Defaults to `7776000`.
264
+ * The data interval in seconds to train the data on.
138
265
  */
139
266
  trainingWindow?: pulumi.Input<number>;
140
267
  }
@@ -165,13 +292,14 @@ export interface JobArgs {
165
292
  */
166
293
  holidays?: pulumi.Input<pulumi.Input<string>[]>;
167
294
  /**
168
- * The hyperparameters used to fine tune the algorithm. See https://grafana.com/docs/grafana-cloud/machine-learning/models/ for the full list of available hyperparameters. Defaults to `map[]`.
295
+ * The hyperparameters used to fine tune the algorithm. See https://grafana.com/docs/grafana-cloud/machine-learning/models/
296
+ * for the full list of available hyperparameters.
169
297
  */
170
298
  hyperParams?: pulumi.Input<{
171
299
  [key: string]: pulumi.Input<string>;
172
300
  }>;
173
301
  /**
174
- * The data interval in seconds to train the data on. Defaults to `300`.
302
+ * The data interval in seconds to train the data on.
175
303
  */
176
304
  interval?: pulumi.Input<number>;
177
305
  /**
@@ -189,7 +317,7 @@ export interface JobArgs {
189
317
  [key: string]: pulumi.Input<string>;
190
318
  }>;
191
319
  /**
192
- * The data interval in seconds to train the data on. Defaults to `7776000`.
320
+ * The data interval in seconds to train the data on.
193
321
  */
194
322
  trainingWindow?: pulumi.Input<number>;
195
323
  }
@@ -8,6 +8,131 @@ const utilities = require("../utilities");
8
8
  /**
9
9
  * A job defines the queries and model parameters for a machine learning task.
10
10
  *
11
+ * ## Example Usage
12
+ *
13
+ * ### Basic Forecast
14
+ *
15
+ * This forecast uses a Prometheus datasource, where the source query is defined in the `expr` field of the `queryParams` attribute.
16
+ *
17
+ * Other datasources are supported, but the structure `queryParams` may differ.
18
+ *
19
+ * ```typescript
20
+ * import * as pulumi from "@pulumi/pulumi";
21
+ * import * as grafana from "@pulumiverse/grafana";
22
+ *
23
+ * const foo = new grafana.oss.DataSource("foo", {
24
+ * type: "prometheus",
25
+ * name: "prometheus-ds-test",
26
+ * uid: "prometheus-ds-test-uid",
27
+ * url: "https://my-instance.com",
28
+ * basicAuthEnabled: true,
29
+ * basicAuthUsername: "username",
30
+ * jsonDataEncoded: JSON.stringify({
31
+ * httpMethod: "POST",
32
+ * prometheusType: "Mimir",
33
+ * prometheusVersion: "2.4.0",
34
+ * }),
35
+ * secureJsonDataEncoded: JSON.stringify({
36
+ * basicAuthPassword: "password",
37
+ * }),
38
+ * });
39
+ * const testJob = new grafana.machinelearning.Job("test_job", {
40
+ * name: "Test Job",
41
+ * metric: "tf_test_job",
42
+ * datasourceType: "prometheus",
43
+ * datasourceUid: foo.uid,
44
+ * queryParams: {
45
+ * expr: "grafanacloud_grafana_instance_active_user_count",
46
+ * },
47
+ * });
48
+ * ```
49
+ *
50
+ * ### Tuned Forecast
51
+ *
52
+ * This forecast has tuned hyperparameters to improve the accuracy of the model.
53
+ *
54
+ * ```typescript
55
+ * import * as pulumi from "@pulumi/pulumi";
56
+ * import * as grafana from "@pulumiverse/grafana";
57
+ *
58
+ * const foo = new grafana.oss.DataSource("foo", {
59
+ * type: "prometheus",
60
+ * name: "prometheus-ds-test",
61
+ * uid: "prometheus-ds-test-uid",
62
+ * url: "https://my-instance.com",
63
+ * basicAuthEnabled: true,
64
+ * basicAuthUsername: "username",
65
+ * jsonDataEncoded: JSON.stringify({
66
+ * httpMethod: "POST",
67
+ * prometheusType: "Mimir",
68
+ * prometheusVersion: "2.4.0",
69
+ * }),
70
+ * secureJsonDataEncoded: JSON.stringify({
71
+ * basicAuthPassword: "password",
72
+ * }),
73
+ * });
74
+ * const testJob = new grafana.machinelearning.Job("test_job", {
75
+ * name: "Test Job",
76
+ * metric: "tf_test_job",
77
+ * datasourceType: "prometheus",
78
+ * datasourceUid: foo.uid,
79
+ * queryParams: {
80
+ * expr: "grafanacloud_grafana_instance_active_user_count",
81
+ * },
82
+ * hyperParams: {
83
+ * daily_seasonality: "15",
84
+ * weekly_seasonality: "10",
85
+ * },
86
+ * customLabels: {
87
+ * example_label: "example_value",
88
+ * },
89
+ * });
90
+ * ```
91
+ *
92
+ * ### Forecast with Holidays
93
+ *
94
+ * This forecast has holidays which will be taken into account when training the model.
95
+ *
96
+ * ```typescript
97
+ * import * as pulumi from "@pulumi/pulumi";
98
+ * import * as grafana from "@pulumiverse/grafana";
99
+ *
100
+ * const foo = new grafana.oss.DataSource("foo", {
101
+ * type: "prometheus",
102
+ * name: "prometheus-ds-test",
103
+ * uid: "prometheus-ds-test-uid",
104
+ * url: "https://my-instance.com",
105
+ * basicAuthEnabled: true,
106
+ * basicAuthUsername: "username",
107
+ * jsonDataEncoded: JSON.stringify({
108
+ * httpMethod: "POST",
109
+ * prometheusType: "Mimir",
110
+ * prometheusVersion: "2.4.0",
111
+ * }),
112
+ * secureJsonDataEncoded: JSON.stringify({
113
+ * basicAuthPassword: "password",
114
+ * }),
115
+ * });
116
+ * const testHoliday = new grafana.machinelearning.Holiday("test_holiday", {
117
+ * name: "Test Holiday",
118
+ * customPeriods: [{
119
+ * name: "First of January",
120
+ * startTime: "2023-01-01T00:00:00Z",
121
+ * endTime: "2023-01-02T00:00:00Z",
122
+ * }],
123
+ * });
124
+ * const testJob = new grafana.machinelearning.Job("test_job", {
125
+ * name: "Test Job",
126
+ * metric: "tf_test_job",
127
+ * datasourceType: "prometheus",
128
+ * datasourceUid: foo.uid,
129
+ * queryParams: {
130
+ * expr: "grafanacloud_grafana_instance_active_user_count",
131
+ * },
132
+ * holidays: [testHoliday.id],
133
+ * });
134
+ * ```
135
+ *
11
136
  * ## Import
12
137
  *
13
138
  * ```sh
@@ -1 +1 @@
1
- {"version":3,"file":"job.js","sourceRoot":"","sources":["../../machinelearning/job.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAE1C;;;;;;;;GAQG;AACH,MAAa,GAAI,SAAQ,MAAM,CAAC,cAAc;IAC1C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAgB,EAAE,IAAmC;QAC9G,OAAO,IAAI,GAAG,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC1D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC;IACpD,CAAC;IAuDD,YAAY,IAAY,EAAE,WAAgC,EAAE,IAAmC;QAC3F,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAmC,CAAC;YAClD,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,cAAc,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;SAC/E;aAAM;YACH,MAAM,IAAI,GAAG,WAAkC,CAAC;YAChD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC3D,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;aACjE;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACzD;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC9D;YACD,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;SAC7E;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,qDAAqD,EAAE,CAAC,EAAE,CAAC;QACjG,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;;AA/HL,kBAgIC;AAlHG,gBAAgB;AACO,gBAAY,GAAG,iCAAiC,CAAC"}
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../../machinelearning/job.ts"],"names":[],"mappings":"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"}