@pulumiverse/grafana 0.2.1-alpha.1709570924

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 (252) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +54 -0
  3. package/annotation.d.ts +151 -0
  4. package/annotation.js +79 -0
  5. package/annotation.js.map +1 -0
  6. package/apiKey.d.ts +77 -0
  7. package/apiKey.js +80 -0
  8. package/apiKey.js.map +1 -0
  9. package/cloudAccessPolicy.d.ts +156 -0
  10. package/cloudAccessPolicy.js +115 -0
  11. package/cloudAccessPolicy.js.map +1 -0
  12. package/cloudAccessPolicyToken.d.ts +151 -0
  13. package/cloudAccessPolicyToken.js +108 -0
  14. package/cloudAccessPolicyToken.js.map +1 -0
  15. package/cloudApiKey.d.ts +102 -0
  16. package/cloudApiKey.js +85 -0
  17. package/cloudApiKey.js.map +1 -0
  18. package/cloudPluginInstallation.d.ts +96 -0
  19. package/cloudPluginInstallation.js +86 -0
  20. package/cloudPluginInstallation.js.map +1 -0
  21. package/cloudStack.d.ts +291 -0
  22. package/cloudStack.js +142 -0
  23. package/cloudStack.js.map +1 -0
  24. package/cloudStackApiKey.d.ts +52 -0
  25. package/cloudStackApiKey.js +67 -0
  26. package/cloudStackApiKey.js.map +1 -0
  27. package/cloudStackServiceAccount.d.ts +97 -0
  28. package/cloudStackServiceAccount.js +80 -0
  29. package/cloudStackServiceAccount.js.map +1 -0
  30. package/cloudStackServiceAccountToken.d.ts +78 -0
  31. package/cloudStackServiceAccountToken.js +93 -0
  32. package/cloudStackServiceAccountToken.js.map +1 -0
  33. package/config/index.d.ts +1 -0
  34. package/config/index.js +21 -0
  35. package/config/index.js.map +1 -0
  36. package/config/vars.d.ts +89 -0
  37. package/config/vars.js +131 -0
  38. package/config/vars.js.map +1 -0
  39. package/contactPoint.d.ts +310 -0
  40. package/contactPoint.js +119 -0
  41. package/contactPoint.js.map +1 -0
  42. package/dashboard.d.ts +154 -0
  43. package/dashboard.js +94 -0
  44. package/dashboard.js.map +1 -0
  45. package/dashboardPermission.d.ts +131 -0
  46. package/dashboardPermission.js +97 -0
  47. package/dashboardPermission.js.map +1 -0
  48. package/dataSource.d.ts +294 -0
  49. package/dataSource.js +164 -0
  50. package/dataSource.js.map +1 -0
  51. package/dataSourcePermission.d.ts +124 -0
  52. package/dataSourcePermission.js +109 -0
  53. package/dataSourcePermission.js.map +1 -0
  54. package/folder.d.ts +127 -0
  55. package/folder.js +95 -0
  56. package/folder.js.map +1 -0
  57. package/folderPermission.d.ts +106 -0
  58. package/folderPermission.js +91 -0
  59. package/folderPermission.js.map +1 -0
  60. package/getCloudIps.d.ts +56 -0
  61. package/getCloudIps.js +41 -0
  62. package/getCloudIps.js.map +1 -0
  63. package/getCloudOrganization.d.ts +37 -0
  64. package/getCloudOrganization.js +21 -0
  65. package/getCloudOrganization.js.map +1 -0
  66. package/getCloudStack.d.ts +130 -0
  67. package/getCloudStack.js +25 -0
  68. package/getCloudStack.js.map +1 -0
  69. package/getDashboard.d.ts +134 -0
  70. package/getDashboard.js +81 -0
  71. package/getDashboard.js.map +1 -0
  72. package/getDashboards.d.ts +74 -0
  73. package/getDashboards.js +36 -0
  74. package/getDashboards.js.map +1 -0
  75. package/getDataSource.d.ts +156 -0
  76. package/getDataSource.js +95 -0
  77. package/getDataSource.js.map +1 -0
  78. package/getFolder.d.ts +82 -0
  79. package/getFolder.js +59 -0
  80. package/getFolder.js.map +1 -0
  81. package/getFolders.d.ts +61 -0
  82. package/getFolders.js +61 -0
  83. package/getFolders.js.map +1 -0
  84. package/getLibraryPanel.d.ts +108 -0
  85. package/getLibraryPanel.js +28 -0
  86. package/getLibraryPanel.js.map +1 -0
  87. package/getOnCallSlackChannel.d.ts +66 -0
  88. package/getOnCallSlackChannel.js +47 -0
  89. package/getOnCallSlackChannel.js.map +1 -0
  90. package/getOncallAction.d.ts +46 -0
  91. package/getOncallAction.js +31 -0
  92. package/getOncallAction.js.map +1 -0
  93. package/getOncallEscalationChain.d.ts +62 -0
  94. package/getOncallEscalationChain.js +47 -0
  95. package/getOncallEscalationChain.js.map +1 -0
  96. package/getOncallOutgoingWebhook.d.ts +62 -0
  97. package/getOncallOutgoingWebhook.js +47 -0
  98. package/getOncallOutgoingWebhook.js.map +1 -0
  99. package/getOncallSchedule.d.ts +68 -0
  100. package/getOncallSchedule.js +49 -0
  101. package/getOncallSchedule.js.map +1 -0
  102. package/getOncallTeam.d.ts +60 -0
  103. package/getOncallTeam.js +43 -0
  104. package/getOncallTeam.js.map +1 -0
  105. package/getOncallUser.d.ts +70 -0
  106. package/getOncallUser.js +47 -0
  107. package/getOncallUser.js.map +1 -0
  108. package/getOncallUserGroup.d.ts +54 -0
  109. package/getOncallUserGroup.js +47 -0
  110. package/getOncallUserGroup.js.map +1 -0
  111. package/getOrganization.d.ts +94 -0
  112. package/getOrganization.js +67 -0
  113. package/getOrganization.js.map +1 -0
  114. package/getOrganizationPreferences.d.ts +62 -0
  115. package/getOrganizationPreferences.js +43 -0
  116. package/getOrganizationPreferences.js.map +1 -0
  117. package/getRole.d.ts +147 -0
  118. package/getRole.js +95 -0
  119. package/getRole.js.map +1 -0
  120. package/getSlos.d.ts +31 -0
  121. package/getSlos.js +31 -0
  122. package/getSlos.js.map +1 -0
  123. package/getSyntheticMonitoringProbe.d.ts +88 -0
  124. package/getSyntheticMonitoringProbe.js +47 -0
  125. package/getSyntheticMonitoringProbe.js.map +1 -0
  126. package/getSyntheticMonitoringProbes.d.ts +64 -0
  127. package/getSyntheticMonitoringProbes.js +44 -0
  128. package/getSyntheticMonitoringProbes.js.map +1 -0
  129. package/getTeam.d.ts +83 -0
  130. package/getTeam.js +67 -0
  131. package/getTeam.js.map +1 -0
  132. package/getUser.d.ts +128 -0
  133. package/getUser.js +84 -0
  134. package/getUser.js.map +1 -0
  135. package/getUsers.d.ts +61 -0
  136. package/getUsers.js +61 -0
  137. package/getUsers.js.map +1 -0
  138. package/index.d.ts +228 -0
  139. package/index.js +353 -0
  140. package/index.js.map +1 -0
  141. package/libraryPanel.d.ts +193 -0
  142. package/libraryPanel.js +103 -0
  143. package/libraryPanel.js.map +1 -0
  144. package/machineLearningHoliday.d.ts +103 -0
  145. package/machineLearningHoliday.js +62 -0
  146. package/machineLearningHoliday.js.map +1 -0
  147. package/machineLearningJob.d.ts +201 -0
  148. package/machineLearningJob.js +83 -0
  149. package/machineLearningJob.js.map +1 -0
  150. package/machineLearningOutlierDetector.d.ts +159 -0
  151. package/machineLearningOutlierDetector.js +84 -0
  152. package/machineLearningOutlierDetector.js.map +1 -0
  153. package/messageTemplate.d.ts +86 -0
  154. package/messageTemplate.js +80 -0
  155. package/messageTemplate.js.map +1 -0
  156. package/muteTiming.d.ts +106 -0
  157. package/muteTiming.js +95 -0
  158. package/muteTiming.js.map +1 -0
  159. package/notificationPolicy.d.ts +186 -0
  160. package/notificationPolicy.js +141 -0
  161. package/notificationPolicy.js.map +1 -0
  162. package/oncallEscalation.d.ts +227 -0
  163. package/oncallEscalation.js +124 -0
  164. package/oncallEscalation.js.map +1 -0
  165. package/oncallEscalationChain.d.ts +80 -0
  166. package/oncallEscalationChain.js +71 -0
  167. package/oncallEscalationChain.js.map +1 -0
  168. package/oncallIntegration.d.ts +116 -0
  169. package/oncallIntegration.js +75 -0
  170. package/oncallIntegration.js.map +1 -0
  171. package/oncallOnCallShift.d.ts +237 -0
  172. package/oncallOnCallShift.js +97 -0
  173. package/oncallOnCallShift.js.map +1 -0
  174. package/oncallOutgoingWebhook.d.ts +152 -0
  175. package/oncallOutgoingWebhook.js +88 -0
  176. package/oncallOutgoingWebhook.js.map +1 -0
  177. package/oncallRoute.d.ts +175 -0
  178. package/oncallRoute.js +116 -0
  179. package/oncallRoute.js.map +1 -0
  180. package/oncallSchedule.d.ts +187 -0
  181. package/oncallSchedule.js +109 -0
  182. package/oncallSchedule.js.map +1 -0
  183. package/organization.d.ts +193 -0
  184. package/organization.js +96 -0
  185. package/organization.js.map +1 -0
  186. package/organizationPreference.d.ts +125 -0
  187. package/organizationPreference.js +76 -0
  188. package/organizationPreference.js.map +1 -0
  189. package/package.json +30 -0
  190. package/package.json.bak +29 -0
  191. package/package.json.dev +29 -0
  192. package/playlist.d.ts +72 -0
  193. package/playlist.js +65 -0
  194. package/playlist.js.map +1 -0
  195. package/provider.d.ts +166 -0
  196. package/provider.js +64 -0
  197. package/provider.js.map +1 -0
  198. package/report.d.ts +241 -0
  199. package/report.js +110 -0
  200. package/report.js.map +1 -0
  201. package/role.d.ts +210 -0
  202. package/role.js +109 -0
  203. package/role.js.map +1 -0
  204. package/roleAssignment.d.ts +131 -0
  205. package/roleAssignment.js +95 -0
  206. package/roleAssignment.js.map +1 -0
  207. package/ruleGroup.d.ts +203 -0
  208. package/ruleGroup.js +174 -0
  209. package/ruleGroup.js.map +1 -0
  210. package/scripts/install-pulumi-plugin.js +21 -0
  211. package/serviceAccount.d.ts +102 -0
  212. package/serviceAccount.js +73 -0
  213. package/serviceAccount.js.map +1 -0
  214. package/serviceAccountPermission.d.ts +110 -0
  215. package/serviceAccountPermission.js +95 -0
  216. package/serviceAccountPermission.js.map +1 -0
  217. package/serviceAccountToken.d.ts +72 -0
  218. package/serviceAccountToken.js +85 -0
  219. package/serviceAccountToken.js.map +1 -0
  220. package/slo.d.ts +131 -0
  221. package/slo.js +77 -0
  222. package/slo.js.map +1 -0
  223. package/syntheticMonitoringCheck.d.ts +555 -0
  224. package/syntheticMonitoringCheck.js +464 -0
  225. package/syntheticMonitoringCheck.js.map +1 -0
  226. package/syntheticMonitoringInstallation.d.ts +112 -0
  227. package/syntheticMonitoringInstallation.js +95 -0
  228. package/syntheticMonitoringInstallation.js.map +1 -0
  229. package/syntheticMonitoringProbe.d.ts +164 -0
  230. package/syntheticMonitoringProbe.js +108 -0
  231. package/syntheticMonitoringProbe.js.map +1 -0
  232. package/team.d.ts +165 -0
  233. package/team.js +89 -0
  234. package/team.js.map +1 -0
  235. package/teamExternalGroup.d.ts +84 -0
  236. package/teamExternalGroup.js +81 -0
  237. package/teamExternalGroup.js.map +1 -0
  238. package/types/index.d.ts +3 -0
  239. package/types/index.js +11 -0
  240. package/types/index.js.map +1 -0
  241. package/types/input.d.ts +1914 -0
  242. package/types/input.js +5 -0
  243. package/types/input.js.map +1 -0
  244. package/types/output.d.ts +2011 -0
  245. package/types/output.js +5 -0
  246. package/types/output.js.map +1 -0
  247. package/user.d.ts +132 -0
  248. package/user.js +95 -0
  249. package/user.js.map +1 -0
  250. package/utilities.d.ts +4 -0
  251. package/utilities.js +69 -0
  252. package/utilities.js.map +1 -0
@@ -0,0 +1,85 @@
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.ServiceAccountToken = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * **Note:** This resource is available only with Grafana 9.1+.
10
+ *
11
+ * * [Official documentation](https://grafana.com/docs/grafana/latest/administration/service-accounts/)
12
+ * * [HTTP API](https://grafana.com/docs/grafana/latest/developers/http_api/serviceaccount/#service-account-api)
13
+ *
14
+ * ## Example Usage
15
+ *
16
+ * ```typescript
17
+ * import * as pulumi from "@pulumi/pulumi";
18
+ * import * as grafana from "@pulumiverse/grafana";
19
+ *
20
+ * const foo = new grafana.ServiceAccountToken("foo", {serviceAccountId: "1"});
21
+ * const bar = new grafana.ServiceAccountToken("bar", {
22
+ * serviceAccountId: "1",
23
+ * secondsToLive: 30,
24
+ * });
25
+ * export const serviceAccountTokenFooKeyOnly = foo.key;
26
+ * export const serviceAccountTokenBar = bar;
27
+ * ```
28
+ */
29
+ class ServiceAccountToken extends pulumi.CustomResource {
30
+ /**
31
+ * Get an existing ServiceAccountToken resource's state with the given name, ID, and optional extra
32
+ * properties used to qualify the lookup.
33
+ *
34
+ * @param name The _unique_ name of the resulting resource.
35
+ * @param id The _unique_ provider ID of the resource to lookup.
36
+ * @param state Any extra arguments used during the lookup.
37
+ * @param opts Optional settings to control the behavior of the CustomResource.
38
+ */
39
+ static get(name, id, state, opts) {
40
+ return new ServiceAccountToken(name, state, Object.assign(Object.assign({}, opts), { id: id }));
41
+ }
42
+ /**
43
+ * Returns true if the given object is an instance of ServiceAccountToken. This is designed to work even
44
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
45
+ */
46
+ static isInstance(obj) {
47
+ if (obj === undefined || obj === null) {
48
+ return false;
49
+ }
50
+ return obj['__pulumiType'] === ServiceAccountToken.__pulumiType;
51
+ }
52
+ constructor(name, argsOrState, opts) {
53
+ let resourceInputs = {};
54
+ opts = opts || {};
55
+ if (opts.id) {
56
+ const state = argsOrState;
57
+ resourceInputs["expiration"] = state ? state.expiration : undefined;
58
+ resourceInputs["hasExpired"] = state ? state.hasExpired : undefined;
59
+ resourceInputs["key"] = state ? state.key : undefined;
60
+ resourceInputs["name"] = state ? state.name : undefined;
61
+ resourceInputs["secondsToLive"] = state ? state.secondsToLive : undefined;
62
+ resourceInputs["serviceAccountId"] = state ? state.serviceAccountId : undefined;
63
+ }
64
+ else {
65
+ const args = argsOrState;
66
+ if ((!args || args.serviceAccountId === undefined) && !opts.urn) {
67
+ throw new Error("Missing required property 'serviceAccountId'");
68
+ }
69
+ resourceInputs["name"] = args ? args.name : undefined;
70
+ resourceInputs["secondsToLive"] = args ? args.secondsToLive : undefined;
71
+ resourceInputs["serviceAccountId"] = args ? args.serviceAccountId : undefined;
72
+ resourceInputs["expiration"] = undefined /*out*/;
73
+ resourceInputs["hasExpired"] = undefined /*out*/;
74
+ resourceInputs["key"] = undefined /*out*/;
75
+ }
76
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
77
+ const secretOpts = { additionalSecretOutputs: ["key"] };
78
+ opts = pulumi.mergeOptions(opts, secretOpts);
79
+ super(ServiceAccountToken.__pulumiType, name, resourceInputs, opts);
80
+ }
81
+ }
82
+ exports.ServiceAccountToken = ServiceAccountToken;
83
+ /** @internal */
84
+ ServiceAccountToken.__pulumiType = 'grafana:index/serviceAccountToken:ServiceAccountToken';
85
+ //# sourceMappingURL=serviceAccountToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serviceAccountToken.js","sourceRoot":"","sources":["../serviceAccountToken.ts"],"names":[],"mappings":"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"}
package/slo.d.ts ADDED
@@ -0,0 +1,131 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ /**
5
+ * Resource manages Grafana SLOs.
6
+ *
7
+ * * [Official documentation](https://grafana.com/docs/grafana-cloud/alerting-and-irm/slo/)
8
+ * * [API documentation](https://grafana.com/docs/grafana-cloud/alerting-and-irm/slo/api/)
9
+ * * [Additional Information On Alerting Rule Annotations and Labels](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#templating/)
10
+ *
11
+ * ## Example Usage
12
+ */
13
+ export declare class SLO extends pulumi.CustomResource {
14
+ /**
15
+ * Get an existing SLO resource's state with the given name, ID, and optional extra
16
+ * properties used to qualify the lookup.
17
+ *
18
+ * @param name The _unique_ name of the resulting resource.
19
+ * @param id The _unique_ provider ID of the resource to lookup.
20
+ * @param state Any extra arguments used during the lookup.
21
+ * @param opts Optional settings to control the behavior of the CustomResource.
22
+ */
23
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: SLOState, opts?: pulumi.CustomResourceOptions): SLO;
24
+ /**
25
+ * Returns true if the given object is an instance of SLO. This is designed to work even
26
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
27
+ */
28
+ static isInstance(obj: any): obj is SLO;
29
+ /**
30
+ * Configures the alerting rules that will be generated for each
31
+ * time window associated with the SLO. Grafana SLOs can generate
32
+ * alerts when the short-term error budget burn is very high, the
33
+ * long-term error budget burn rate is high, or when the remaining
34
+ * error budget is below a certain threshold. Annotations and Labels support templating.
35
+ */
36
+ readonly alertings: pulumi.Output<outputs.SLOAlerting[] | undefined>;
37
+ /**
38
+ * Description is a free-text field that can provide more context to an SLO.
39
+ */
40
+ readonly description: pulumi.Output<string>;
41
+ /**
42
+ * Labels to attach only to Fast Burn alerts.
43
+ */
44
+ readonly labels: pulumi.Output<outputs.SLOLabel[] | undefined>;
45
+ /**
46
+ * Name should be a short description of your indicator. Consider names like "API Availability"
47
+ */
48
+ readonly name: pulumi.Output<string>;
49
+ /**
50
+ * Over each rolling time window, the remaining error budget will be calculated, and separate alerts can be generated for each time window based on the SLO burn rate or remaining error budget.
51
+ */
52
+ readonly objectives: pulumi.Output<outputs.SLOObjective[]>;
53
+ /**
54
+ * Freeform Query Field
55
+ */
56
+ readonly queries: pulumi.Output<outputs.SLOQuery[]>;
57
+ /**
58
+ * Create a SLO resource with the given unique name, arguments, and options.
59
+ *
60
+ * @param name The _unique_ name of the resource.
61
+ * @param args The arguments to use to populate this resource's properties.
62
+ * @param opts A bag of options that control this resource's behavior.
63
+ */
64
+ constructor(name: string, args: SLOArgs, opts?: pulumi.CustomResourceOptions);
65
+ }
66
+ /**
67
+ * Input properties used for looking up and filtering SLO resources.
68
+ */
69
+ export interface SLOState {
70
+ /**
71
+ * Configures the alerting rules that will be generated for each
72
+ * time window associated with the SLO. Grafana SLOs can generate
73
+ * alerts when the short-term error budget burn is very high, the
74
+ * long-term error budget burn rate is high, or when the remaining
75
+ * error budget is below a certain threshold. Annotations and Labels support templating.
76
+ */
77
+ alertings?: pulumi.Input<pulumi.Input<inputs.SLOAlerting>[]>;
78
+ /**
79
+ * Description is a free-text field that can provide more context to an SLO.
80
+ */
81
+ description?: pulumi.Input<string>;
82
+ /**
83
+ * Labels to attach only to Fast Burn alerts.
84
+ */
85
+ labels?: pulumi.Input<pulumi.Input<inputs.SLOLabel>[]>;
86
+ /**
87
+ * Name should be a short description of your indicator. Consider names like "API Availability"
88
+ */
89
+ name?: pulumi.Input<string>;
90
+ /**
91
+ * Over each rolling time window, the remaining error budget will be calculated, and separate alerts can be generated for each time window based on the SLO burn rate or remaining error budget.
92
+ */
93
+ objectives?: pulumi.Input<pulumi.Input<inputs.SLOObjective>[]>;
94
+ /**
95
+ * Freeform Query Field
96
+ */
97
+ queries?: pulumi.Input<pulumi.Input<inputs.SLOQuery>[]>;
98
+ }
99
+ /**
100
+ * The set of arguments for constructing a SLO resource.
101
+ */
102
+ export interface SLOArgs {
103
+ /**
104
+ * Configures the alerting rules that will be generated for each
105
+ * time window associated with the SLO. Grafana SLOs can generate
106
+ * alerts when the short-term error budget burn is very high, the
107
+ * long-term error budget burn rate is high, or when the remaining
108
+ * error budget is below a certain threshold. Annotations and Labels support templating.
109
+ */
110
+ alertings?: pulumi.Input<pulumi.Input<inputs.SLOAlerting>[]>;
111
+ /**
112
+ * Description is a free-text field that can provide more context to an SLO.
113
+ */
114
+ description: pulumi.Input<string>;
115
+ /**
116
+ * Labels to attach only to Fast Burn alerts.
117
+ */
118
+ labels?: pulumi.Input<pulumi.Input<inputs.SLOLabel>[]>;
119
+ /**
120
+ * Name should be a short description of your indicator. Consider names like "API Availability"
121
+ */
122
+ name?: pulumi.Input<string>;
123
+ /**
124
+ * Over each rolling time window, the remaining error budget will be calculated, and separate alerts can be generated for each time window based on the SLO burn rate or remaining error budget.
125
+ */
126
+ objectives: pulumi.Input<pulumi.Input<inputs.SLOObjective>[]>;
127
+ /**
128
+ * Freeform Query Field
129
+ */
130
+ queries: pulumi.Input<pulumi.Input<inputs.SLOQuery>[]>;
131
+ }
package/slo.js ADDED
@@ -0,0 +1,77 @@
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.SLO = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * Resource manages Grafana SLOs.
10
+ *
11
+ * * [Official documentation](https://grafana.com/docs/grafana-cloud/alerting-and-irm/slo/)
12
+ * * [API documentation](https://grafana.com/docs/grafana-cloud/alerting-and-irm/slo/api/)
13
+ * * [Additional Information On Alerting Rule Annotations and Labels](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#templating/)
14
+ *
15
+ * ## Example Usage
16
+ */
17
+ class SLO extends pulumi.CustomResource {
18
+ /**
19
+ * Get an existing SLO resource's state with the given name, ID, and optional extra
20
+ * properties used to qualify the lookup.
21
+ *
22
+ * @param name The _unique_ name of the resulting resource.
23
+ * @param id The _unique_ provider ID of the resource to lookup.
24
+ * @param state Any extra arguments used during the lookup.
25
+ * @param opts Optional settings to control the behavior of the CustomResource.
26
+ */
27
+ static get(name, id, state, opts) {
28
+ return new SLO(name, state, Object.assign(Object.assign({}, opts), { id: id }));
29
+ }
30
+ /**
31
+ * Returns true if the given object is an instance of SLO. This is designed to work even
32
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
33
+ */
34
+ static isInstance(obj) {
35
+ if (obj === undefined || obj === null) {
36
+ return false;
37
+ }
38
+ return obj['__pulumiType'] === SLO.__pulumiType;
39
+ }
40
+ constructor(name, argsOrState, opts) {
41
+ let resourceInputs = {};
42
+ opts = opts || {};
43
+ if (opts.id) {
44
+ const state = argsOrState;
45
+ resourceInputs["alertings"] = state ? state.alertings : undefined;
46
+ resourceInputs["description"] = state ? state.description : undefined;
47
+ resourceInputs["labels"] = state ? state.labels : undefined;
48
+ resourceInputs["name"] = state ? state.name : undefined;
49
+ resourceInputs["objectives"] = state ? state.objectives : undefined;
50
+ resourceInputs["queries"] = state ? state.queries : undefined;
51
+ }
52
+ else {
53
+ const args = argsOrState;
54
+ if ((!args || args.description === undefined) && !opts.urn) {
55
+ throw new Error("Missing required property 'description'");
56
+ }
57
+ if ((!args || args.objectives === undefined) && !opts.urn) {
58
+ throw new Error("Missing required property 'objectives'");
59
+ }
60
+ if ((!args || args.queries === undefined) && !opts.urn) {
61
+ throw new Error("Missing required property 'queries'");
62
+ }
63
+ resourceInputs["alertings"] = args ? args.alertings : undefined;
64
+ resourceInputs["description"] = args ? args.description : undefined;
65
+ resourceInputs["labels"] = args ? args.labels : undefined;
66
+ resourceInputs["name"] = args ? args.name : undefined;
67
+ resourceInputs["objectives"] = args ? args.objectives : undefined;
68
+ resourceInputs["queries"] = args ? args.queries : undefined;
69
+ }
70
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
71
+ super(SLO.__pulumiType, name, resourceInputs, opts);
72
+ }
73
+ }
74
+ exports.SLO = SLO;
75
+ /** @internal */
76
+ SLO.__pulumiType = 'grafana:index/sLO:SLO';
77
+ //# sourceMappingURL=slo.js.map
package/slo.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slo.js","sourceRoot":"","sources":["../slo.ts"],"names":[],"mappings":"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"}