@pulumiverse/grafana 0.5.0 → 0.5.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 (256) hide show
  1. package/annotation.d.ts +28 -3
  2. package/annotation.js +25 -0
  3. package/annotation.js.map +1 -1
  4. package/apiKey.d.ts +18 -0
  5. package/apiKey.js +18 -0
  6. package/apiKey.js.map +1 -1
  7. package/cloudAccessPolicy.d.ts +57 -15
  8. package/cloudAccessPolicy.js +51 -0
  9. package/cloudAccessPolicy.js.map +1 -1
  10. package/cloudAccessPolicyToken.d.ts +54 -9
  11. package/cloudAccessPolicyToken.js +51 -0
  12. package/cloudAccessPolicyToken.js.map +1 -1
  13. package/cloudApiKey.d.ts +35 -6
  14. package/cloudApiKey.js +32 -0
  15. package/cloudApiKey.js.map +1 -1
  16. package/cloudOrgMember.d.ts +9 -0
  17. package/cloudOrgMember.js +9 -0
  18. package/cloudOrgMember.js.map +1 -1
  19. package/cloudPluginInstallation.d.ts +32 -0
  20. package/cloudPluginInstallation.js +32 -0
  21. package/cloudPluginInstallation.js.map +1 -1
  22. package/cloudStack.d.ts +49 -38
  23. package/cloudStack.js +30 -0
  24. package/cloudStack.js.map +1 -1
  25. package/cloudStackServiceAccount.d.ts +36 -3
  26. package/cloudStackServiceAccount.js +33 -0
  27. package/cloudStackServiceAccount.js.map +1 -1
  28. package/cloudStackServiceAccountToken.d.ts +28 -0
  29. package/cloudStackServiceAccountToken.js +28 -0
  30. package/cloudStackServiceAccountToken.js.map +1 -1
  31. package/contactPoint.d.ts +44 -9
  32. package/contactPoint.js +38 -0
  33. package/contactPoint.js.map +1 -1
  34. package/dashboard.d.ts +44 -16
  35. package/dashboard.js +37 -0
  36. package/dashboard.js.map +1 -1
  37. package/dashboardPermission.d.ts +55 -3
  38. package/dashboardPermission.js +52 -0
  39. package/dashboardPermission.js.map +1 -1
  40. package/dashboardPermissionItem.d.ts +48 -0
  41. package/dashboardPermissionItem.js +48 -0
  42. package/dashboardPermissionItem.js.map +1 -1
  43. package/dashboardPublic.d.ts +73 -12
  44. package/dashboardPublic.js +67 -0
  45. package/dashboardPublic.js.map +1 -1
  46. package/dataSource.d.ts +102 -36
  47. package/dataSource.js +78 -0
  48. package/dataSource.js.map +1 -1
  49. package/dataSourceConfig.d.ts +69 -18
  50. package/dataSourceConfig.js +63 -0
  51. package/dataSourceConfig.js.map +1 -1
  52. package/dataSourcePermission.d.ts +66 -3
  53. package/dataSourcePermission.js +63 -0
  54. package/dataSourcePermission.js.map +1 -1
  55. package/dataSourcePermissionItem.d.ts +61 -0
  56. package/dataSourcePermissionItem.js +61 -0
  57. package/dataSourcePermissionItem.js.map +1 -1
  58. package/folder.d.ts +43 -9
  59. package/folder.js +37 -0
  60. package/folder.js.map +1 -1
  61. package/folderPermission.d.ts +49 -0
  62. package/folderPermission.js +49 -0
  63. package/folderPermission.js.map +1 -1
  64. package/folderPermissionItem.d.ts +47 -0
  65. package/folderPermissionItem.js +47 -0
  66. package/folderPermissionItem.js.map +1 -1
  67. package/getCloudIps.d.ts +43 -0
  68. package/getCloudIps.js +28 -0
  69. package/getCloudIps.js.map +1 -1
  70. package/getCloudOrganization.d.ts +37 -0
  71. package/getCloudOrganization.js +28 -0
  72. package/getCloudOrganization.js.map +1 -1
  73. package/getCloudStack.d.ts +84 -0
  74. package/getCloudStack.js +6 -0
  75. package/getCloudStack.js.map +1 -1
  76. package/getDashboard.d.ts +114 -0
  77. package/getDashboard.js +64 -0
  78. package/getDashboard.js.map +1 -1
  79. package/getDashboards.d.ts +56 -0
  80. package/getDashboards.js +14 -0
  81. package/getDashboards.js.map +1 -1
  82. package/getDataSource.d.ts +118 -0
  83. package/getDataSource.js +76 -0
  84. package/getDataSource.js.map +1 -1
  85. package/getFolder.d.ts +71 -0
  86. package/getFolder.js +44 -0
  87. package/getFolder.js.map +1 -1
  88. package/getFolders.d.ts +60 -0
  89. package/getFolders.js +48 -0
  90. package/getFolders.js.map +1 -1
  91. package/getLibraryPanel.d.ts +65 -0
  92. package/getLibraryPanel.js +6 -0
  93. package/getLibraryPanel.js.map +1 -1
  94. package/getOnCallSlackChannel.d.ts +44 -0
  95. package/getOnCallSlackChannel.js +32 -0
  96. package/getOnCallSlackChannel.js.map +1 -1
  97. package/getOncallAction.d.ts +21 -0
  98. package/getOncallAction.js +12 -0
  99. package/getOncallAction.js.map +1 -1
  100. package/getOncallEscalationChain.d.ts +41 -0
  101. package/getOncallEscalationChain.js +32 -0
  102. package/getOncallEscalationChain.js.map +1 -1
  103. package/getOncallIntegration.d.ts +44 -0
  104. package/getOncallIntegration.js +32 -0
  105. package/getOncallIntegration.js.map +1 -1
  106. package/getOncallOutgoingWebhook.d.ts +41 -0
  107. package/getOncallOutgoingWebhook.js +32 -0
  108. package/getOncallOutgoingWebhook.js.map +1 -1
  109. package/getOncallSchedule.d.ts +46 -0
  110. package/getOncallSchedule.js +34 -0
  111. package/getOncallSchedule.js.map +1 -1
  112. package/getOncallTeam.d.ts +37 -0
  113. package/getOncallTeam.js +28 -0
  114. package/getOncallTeam.js.map +1 -1
  115. package/getOncallUser.d.ts +47 -0
  116. package/getOncallUser.js +32 -0
  117. package/getOncallUser.js.map +1 -1
  118. package/getOncallUserGroup.d.ts +32 -0
  119. package/getOncallUserGroup.js +32 -0
  120. package/getOncallUserGroup.js.map +1 -1
  121. package/getOrganization.d.ts +70 -0
  122. package/getOrganization.js +52 -0
  123. package/getOrganization.js.map +1 -1
  124. package/getOrganizationPreferences.d.ts +53 -0
  125. package/getOrganizationPreferences.js +30 -0
  126. package/getOrganizationPreferences.js.map +1 -1
  127. package/getRole.d.ts +118 -0
  128. package/getRole.js +82 -0
  129. package/getRole.js.map +1 -1
  130. package/getServiceAccount.d.ts +32 -0
  131. package/getServiceAccount.js +8 -0
  132. package/getServiceAccount.js.map +1 -1
  133. package/getSlos.d.ts +17 -0
  134. package/getSlos.js +14 -0
  135. package/getSlos.js.map +1 -1
  136. package/getSyntheticMonitoringProbe.d.ts +62 -0
  137. package/getSyntheticMonitoringProbe.js +32 -0
  138. package/getSyntheticMonitoringProbe.js.map +1 -1
  139. package/getSyntheticMonitoringProbes.d.ts +40 -0
  140. package/getSyntheticMonitoringProbes.js +28 -0
  141. package/getSyntheticMonitoringProbes.js.map +1 -1
  142. package/getTeam.d.ts +50 -0
  143. package/getTeam.js +50 -0
  144. package/getTeam.js.map +1 -1
  145. package/getUser.d.ts +99 -0
  146. package/getUser.js +66 -0
  147. package/getUser.js.map +1 -1
  148. package/getUsers.d.ts +51 -0
  149. package/getUsers.js +48 -0
  150. package/getUsers.js.map +1 -1
  151. package/libraryPanel.d.ts +43 -12
  152. package/libraryPanel.js +37 -0
  153. package/libraryPanel.js.map +1 -1
  154. package/machineLearningHoliday.d.ts +14 -3
  155. package/machineLearningHoliday.js +11 -0
  156. package/machineLearningHoliday.js.map +1 -1
  157. package/machineLearningJob.d.ts +18 -12
  158. package/machineLearningJob.js +9 -0
  159. package/machineLearningJob.js.map +1 -1
  160. package/machineLearningOutlierDetector.d.ts +22 -12
  161. package/machineLearningOutlierDetector.js +13 -0
  162. package/machineLearningOutlierDetector.js.map +1 -1
  163. package/messageTemplate.d.ts +32 -0
  164. package/messageTemplate.js +32 -0
  165. package/messageTemplate.js.map +1 -1
  166. package/muteTiming.d.ts +51 -0
  167. package/muteTiming.js +51 -0
  168. package/muteTiming.js.map +1 -1
  169. package/notificationPolicy.d.ts +98 -9
  170. package/notificationPolicy.js +92 -0
  171. package/notificationPolicy.js.map +1 -1
  172. package/oncallEscalation.d.ts +81 -41
  173. package/oncallEscalation.js +52 -0
  174. package/oncallEscalation.js.map +1 -1
  175. package/oncallEscalationChain.d.ts +25 -6
  176. package/oncallEscalationChain.js +22 -0
  177. package/oncallEscalationChain.js.map +1 -1
  178. package/oncallIntegration.d.ts +16 -15
  179. package/oncallIntegration.js +10 -0
  180. package/oncallIntegration.js.map +1 -1
  181. package/oncallOnCallShift.d.ts +30 -27
  182. package/oncallOnCallShift.js +9 -0
  183. package/oncallOnCallShift.js.map +1 -1
  184. package/oncallOutgoingWebhook.d.ts +34 -21
  185. package/oncallOutgoingWebhook.js +22 -0
  186. package/oncallOutgoingWebhook.js.map +1 -1
  187. package/oncallRoute.d.ts +49 -3
  188. package/oncallRoute.js +46 -0
  189. package/oncallRoute.js.map +1 -1
  190. package/oncallSchedule.d.ts +49 -9
  191. package/oncallSchedule.js +43 -0
  192. package/oncallSchedule.js.map +1 -1
  193. package/organization.d.ts +94 -39
  194. package/organization.js +37 -0
  195. package/organization.js.map +1 -1
  196. package/organizationPreference.d.ts +31 -9
  197. package/organizationPreference.js +25 -0
  198. package/organizationPreference.js.map +1 -1
  199. package/package.json +2 -2
  200. package/package.json.dev +1 -1
  201. package/playlist.d.ts +41 -0
  202. package/playlist.js +41 -0
  203. package/playlist.js.map +1 -1
  204. package/report.d.ts +56 -15
  205. package/report.js +41 -0
  206. package/report.js.map +1 -1
  207. package/role.d.ts +58 -15
  208. package/role.js +46 -0
  209. package/role.js.map +1 -1
  210. package/roleAssignment.d.ts +48 -0
  211. package/roleAssignment.js +48 -0
  212. package/roleAssignment.js.map +1 -1
  213. package/roleAssignmentItem.d.ts +51 -0
  214. package/roleAssignmentItem.js +51 -0
  215. package/roleAssignmentItem.js.map +1 -1
  216. package/ruleGroup.d.ts +117 -9
  217. package/ruleGroup.js +111 -0
  218. package/ruleGroup.js.map +1 -1
  219. package/serviceAccount.d.ts +33 -3
  220. package/serviceAccount.js +30 -0
  221. package/serviceAccount.js.map +1 -1
  222. package/serviceAccountPermission.d.ts +50 -0
  223. package/serviceAccountPermission.js +50 -0
  224. package/serviceAccountPermission.js.map +1 -1
  225. package/serviceAccountPermissionItem.d.ts +44 -0
  226. package/serviceAccountPermissionItem.js +44 -0
  227. package/serviceAccountPermissionItem.js.map +1 -1
  228. package/serviceAccountToken.d.ts +27 -9
  229. package/serviceAccountToken.js +24 -0
  230. package/serviceAccountToken.js.map +1 -1
  231. package/slo.d.ts +39 -27
  232. package/slo.js +15 -0
  233. package/slo.js.map +1 -1
  234. package/ssoSettings.d.ts +75 -3
  235. package/ssoSettings.js +72 -0
  236. package/ssoSettings.js.map +1 -1
  237. package/syntheticMonitoringCheck.d.ts +431 -36
  238. package/syntheticMonitoringCheck.js +413 -0
  239. package/syntheticMonitoringCheck.js.map +1 -1
  240. package/syntheticMonitoringInstallation.d.ts +75 -24
  241. package/syntheticMonitoringInstallation.js +69 -0
  242. package/syntheticMonitoringInstallation.js.map +1 -1
  243. package/syntheticMonitoringProbe.d.ts +39 -6
  244. package/syntheticMonitoringProbe.js +36 -0
  245. package/syntheticMonitoringProbe.js.map +1 -1
  246. package/team.d.ts +33 -0
  247. package/team.js +33 -0
  248. package/team.js.map +1 -1
  249. package/teamExternalGroup.d.ts +31 -0
  250. package/teamExternalGroup.js +31 -0
  251. package/teamExternalGroup.js.map +1 -1
  252. package/types/input.d.ts +123 -123
  253. package/types/output.d.ts +123 -123
  254. package/user.d.ts +33 -3
  255. package/user.js +30 -0
  256. package/user.js.map +1 -1
@@ -5,6 +5,419 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.SyntheticMonitoringCheck = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("./utilities");
8
+ /**
9
+ * Synthetic Monitoring checks are tests that run on selected probes at defined
10
+ * intervals and report metrics and logs back to your Grafana Cloud account. The
11
+ * target for checks can be a domain name, a server, or a website, depending on
12
+ * what information you would like to gather about your endpoint. You can define
13
+ * multiple checks for a single endpoint to check different capabilities.
14
+ *
15
+ * * [Official documentation](https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/create-checks/checks/)
16
+ *
17
+ * ## Example Usage
18
+ *
19
+ * ### DNS Basic
20
+ *
21
+ * <!--Start PulumiCodeChooser -->
22
+ * ```typescript
23
+ * import * as pulumi from "@pulumi/pulumi";
24
+ * import * as grafana from "@pulumi/grafana";
25
+ * import * as grafana from "@pulumiverse/grafana";
26
+ *
27
+ * const main = grafana.getSyntheticMonitoringProbes({});
28
+ * const dns = new grafana.SyntheticMonitoringCheck("dns", {
29
+ * job: "DNS Defaults",
30
+ * target: "grafana.com",
31
+ * enabled: false,
32
+ * probes: [main.then(main => main.probes?.Atlanta)],
33
+ * labels: {
34
+ * foo: "bar",
35
+ * },
36
+ * settings: {
37
+ * dns: {},
38
+ * },
39
+ * });
40
+ * ```
41
+ * <!--End PulumiCodeChooser -->
42
+ *
43
+ * ### DNS Complex
44
+ *
45
+ * <!--Start PulumiCodeChooser -->
46
+ * ```typescript
47
+ * import * as pulumi from "@pulumi/pulumi";
48
+ * import * as grafana from "@pulumi/grafana";
49
+ * import * as grafana from "@pulumiverse/grafana";
50
+ *
51
+ * const main = grafana.getSyntheticMonitoringProbes({});
52
+ * const dns = new grafana.SyntheticMonitoringCheck("dns", {
53
+ * job: "DNS Updated",
54
+ * target: "grafana.net",
55
+ * enabled: false,
56
+ * probes: [
57
+ * main.then(main => main.probes?.Frankfurt),
58
+ * main.then(main => main.probes?.London),
59
+ * ],
60
+ * labels: {
61
+ * foo: "baz",
62
+ * },
63
+ * settings: {
64
+ * dns: {
65
+ * ipVersion: "Any",
66
+ * server: "8.8.4.4",
67
+ * port: 8600,
68
+ * recordType: "CNAME",
69
+ * protocol: "TCP",
70
+ * validRCodes: [
71
+ * "NOERROR",
72
+ * "NOTAUTH",
73
+ * ],
74
+ * validateAnswerRrs: {
75
+ * failIfMatchesRegexps: [".+-bad-stuff*"],
76
+ * failIfNotMatchesRegexps: [".+-good-stuff*"],
77
+ * },
78
+ * validateAuthorityRrs: {
79
+ * failIfMatchesRegexps: [".+-bad-stuff*"],
80
+ * failIfNotMatchesRegexps: [".+-good-stuff*"],
81
+ * },
82
+ * validateAdditionalRrs: [{
83
+ * failIfMatchesRegexps: [".+-bad-stuff*"],
84
+ * failIfNotMatchesRegexps: [".+-good-stuff*"],
85
+ * }],
86
+ * },
87
+ * },
88
+ * });
89
+ * ```
90
+ * <!--End PulumiCodeChooser -->
91
+ *
92
+ * ### HTTP Basic
93
+ *
94
+ * <!--Start PulumiCodeChooser -->
95
+ * ```typescript
96
+ * import * as pulumi from "@pulumi/pulumi";
97
+ * import * as grafana from "@pulumi/grafana";
98
+ * import * as grafana from "@pulumiverse/grafana";
99
+ *
100
+ * const main = grafana.getSyntheticMonitoringProbes({});
101
+ * const http = new grafana.SyntheticMonitoringCheck("http", {
102
+ * job: "HTTP Defaults",
103
+ * target: "https://grafana.com",
104
+ * enabled: false,
105
+ * probes: [main.then(main => main.probes?.Atlanta)],
106
+ * labels: {
107
+ * foo: "bar",
108
+ * },
109
+ * settings: {
110
+ * http: {},
111
+ * },
112
+ * });
113
+ * ```
114
+ * <!--End PulumiCodeChooser -->
115
+ *
116
+ * ### HTTP Complex
117
+ *
118
+ * <!--Start PulumiCodeChooser -->
119
+ * ```typescript
120
+ * import * as pulumi from "@pulumi/pulumi";
121
+ * import * as grafana from "@pulumi/grafana";
122
+ * import * as grafana from "@pulumiverse/grafana";
123
+ *
124
+ * const main = grafana.getSyntheticMonitoringProbes({});
125
+ * const http = new grafana.SyntheticMonitoringCheck("http", {
126
+ * job: "HTTP Defaults",
127
+ * target: "https://grafana.org",
128
+ * enabled: false,
129
+ * probes: [
130
+ * main.then(main => main.probes?.Bangalore),
131
+ * main.then(main => main.probes?.Mumbai),
132
+ * ],
133
+ * labels: {
134
+ * foo: "bar",
135
+ * },
136
+ * settings: {
137
+ * http: {
138
+ * ipVersion: "V6",
139
+ * method: "TRACE",
140
+ * body: "and spirit",
141
+ * noFollowRedirects: true,
142
+ * bearerToken: "asdfjkl;",
143
+ * proxyUrl: "https://almost-there",
144
+ * failIfSsl: true,
145
+ * failIfNotSsl: true,
146
+ * cacheBustingQueryParamName: "pineapple",
147
+ * tlsConfig: {
148
+ * serverName: "grafana.org",
149
+ * clientCert: `-----BEGIN CERTIFICATE-----
150
+ * MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
151
+ * RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
152
+ * MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
153
+ * 0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
154
+ * h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
155
+ * BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
156
+ * iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
157
+ * a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
158
+ * FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
159
+ * qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
160
+ * FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
161
+ * Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
162
+ * 6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
163
+ * UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
164
+ * yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
165
+ * e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
166
+ * XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
167
+ * tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
168
+ * QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
169
+ * tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
170
+ * prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
171
+ * 5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
172
+ * l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
173
+ * 7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
174
+ * vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
175
+ * -----END CERTIFICATE-----
176
+ * `,
177
+ * },
178
+ * headers: ["Content-Type: multipart/form-data; boundary=something"],
179
+ * basicAuth: {
180
+ * username: "open",
181
+ * password: "sesame",
182
+ * },
183
+ * validStatusCodes: [
184
+ * 200,
185
+ * 201,
186
+ * ],
187
+ * validHttpVersions: [
188
+ * "HTTP/1.0",
189
+ * "HTTP/1.1",
190
+ * "HTTP/2.0",
191
+ * ],
192
+ * failIfBodyMatchesRegexps: [".*bad stuff.*"],
193
+ * failIfBodyNotMatchesRegexps: [".*good stuff.*"],
194
+ * failIfHeaderMatchesRegexps: [{
195
+ * header: "Content-Type",
196
+ * regexp: "application/soap*",
197
+ * allowMissing: true,
198
+ * }],
199
+ * },
200
+ * },
201
+ * });
202
+ * ```
203
+ * <!--End PulumiCodeChooser -->
204
+ *
205
+ * ### Ping Basic
206
+ *
207
+ * <!--Start PulumiCodeChooser -->
208
+ * ```typescript
209
+ * import * as pulumi from "@pulumi/pulumi";
210
+ * import * as grafana from "@pulumi/grafana";
211
+ * import * as grafana from "@pulumiverse/grafana";
212
+ *
213
+ * const main = grafana.getSyntheticMonitoringProbes({});
214
+ * const ping = new grafana.SyntheticMonitoringCheck("ping", {
215
+ * job: "Ping Defaults",
216
+ * target: "grafana.com",
217
+ * enabled: false,
218
+ * probes: [main.then(main => main.probes?.Atlanta)],
219
+ * labels: {
220
+ * foo: "bar",
221
+ * },
222
+ * settings: {
223
+ * ping: {},
224
+ * },
225
+ * });
226
+ * ```
227
+ * <!--End PulumiCodeChooser -->
228
+ *
229
+ * ### Ping Complex
230
+ *
231
+ * <!--Start PulumiCodeChooser -->
232
+ * ```typescript
233
+ * import * as pulumi from "@pulumi/pulumi";
234
+ * import * as grafana from "@pulumi/grafana";
235
+ * import * as grafana from "@pulumiverse/grafana";
236
+ *
237
+ * const main = grafana.getSyntheticMonitoringProbes({});
238
+ * const ping = new grafana.SyntheticMonitoringCheck("ping", {
239
+ * job: "Ping Updated",
240
+ * target: "grafana.net",
241
+ * enabled: false,
242
+ * probes: [
243
+ * main.then(main => main.probes?.Frankfurt),
244
+ * main.then(main => main.probes?.London),
245
+ * ],
246
+ * labels: {
247
+ * foo: "baz",
248
+ * },
249
+ * settings: {
250
+ * ping: {
251
+ * ipVersion: "Any",
252
+ * payloadSize: 20,
253
+ * dontFragment: true,
254
+ * },
255
+ * },
256
+ * });
257
+ * ```
258
+ * <!--End PulumiCodeChooser -->
259
+ *
260
+ * ### TCP Basic
261
+ *
262
+ * <!--Start PulumiCodeChooser -->
263
+ * ```typescript
264
+ * import * as pulumi from "@pulumi/pulumi";
265
+ * import * as grafana from "@pulumi/grafana";
266
+ * import * as grafana from "@pulumiverse/grafana";
267
+ *
268
+ * const main = grafana.getSyntheticMonitoringProbes({});
269
+ * const tcp = new grafana.SyntheticMonitoringCheck("tcp", {
270
+ * job: "TCP Defaults",
271
+ * target: "grafana.com:80",
272
+ * enabled: false,
273
+ * probes: [main.then(main => main.probes?.Atlanta)],
274
+ * labels: {
275
+ * foo: "bar",
276
+ * },
277
+ * settings: {
278
+ * tcp: {},
279
+ * },
280
+ * });
281
+ * ```
282
+ * <!--End PulumiCodeChooser -->
283
+ *
284
+ * ### TCP Complex
285
+ *
286
+ * <!--Start PulumiCodeChooser -->
287
+ * ```typescript
288
+ * import * as pulumi from "@pulumi/pulumi";
289
+ * import * as grafana from "@pulumi/grafana";
290
+ * import * as grafana from "@pulumiverse/grafana";
291
+ *
292
+ * const main = grafana.getSyntheticMonitoringProbes({});
293
+ * const tcp = new grafana.SyntheticMonitoringCheck("tcp", {
294
+ * job: "TCP Defaults",
295
+ * target: "grafana.com:443",
296
+ * enabled: false,
297
+ * probes: [
298
+ * main.then(main => main.probes?.Frankfurt),
299
+ * main.then(main => main.probes?.London),
300
+ * ],
301
+ * labels: {
302
+ * foo: "baz",
303
+ * },
304
+ * settings: {
305
+ * tcp: {
306
+ * ipVersion: "V6",
307
+ * tls: true,
308
+ * queryResponses: [
309
+ * {
310
+ * send: "howdy",
311
+ * expect: "hi",
312
+ * },
313
+ * {
314
+ * send: "like this",
315
+ * expect: "like that",
316
+ * startTls: true,
317
+ * },
318
+ * ],
319
+ * tlsConfig: {
320
+ * serverName: "grafana.com",
321
+ * caCert: `-----BEGIN CERTIFICATE-----
322
+ * MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
323
+ * RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
324
+ * MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
325
+ * 0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
326
+ * h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
327
+ * BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
328
+ * iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
329
+ * a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
330
+ * FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
331
+ * qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
332
+ * FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
333
+ * Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
334
+ * 6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
335
+ * UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
336
+ * yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
337
+ * e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
338
+ * XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
339
+ * tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
340
+ * QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
341
+ * tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
342
+ * prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
343
+ * 5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
344
+ * l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
345
+ * 7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
346
+ * vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
347
+ * -----END CERTIFICATE-----
348
+ * `,
349
+ * },
350
+ * },
351
+ * },
352
+ * });
353
+ * ```
354
+ * <!--End PulumiCodeChooser -->
355
+ *
356
+ * ### Traceroute Basic
357
+ *
358
+ * <!--Start PulumiCodeChooser -->
359
+ * ```typescript
360
+ * import * as pulumi from "@pulumi/pulumi";
361
+ * import * as grafana from "@pulumi/grafana";
362
+ * import * as grafana from "@pulumiverse/grafana";
363
+ *
364
+ * const main = grafana.getSyntheticMonitoringProbes({});
365
+ * const traceroute = new grafana.SyntheticMonitoringCheck("traceroute", {
366
+ * job: "Traceroute defaults",
367
+ * target: "grafana.com",
368
+ * enabled: false,
369
+ * frequency: 120000,
370
+ * timeout: 30000,
371
+ * probes: [main.then(main => main.probes?.Atlanta)],
372
+ * labels: {
373
+ * foo: "bar",
374
+ * },
375
+ * settings: {
376
+ * traceroute: {},
377
+ * },
378
+ * });
379
+ * ```
380
+ * <!--End PulumiCodeChooser -->
381
+ *
382
+ * ### Traceroute Complex
383
+ *
384
+ * <!--Start PulumiCodeChooser -->
385
+ * ```typescript
386
+ * import * as pulumi from "@pulumi/pulumi";
387
+ * import * as grafana from "@pulumi/grafana";
388
+ * import * as grafana from "@pulumiverse/grafana";
389
+ *
390
+ * const main = grafana.getSyntheticMonitoringProbes({});
391
+ * const traceroute = new grafana.SyntheticMonitoringCheck("traceroute", {
392
+ * job: "Traceroute complex",
393
+ * target: "grafana.net",
394
+ * enabled: false,
395
+ * frequency: 120000,
396
+ * timeout: 30000,
397
+ * probes: [
398
+ * main.then(main => main.probes?.Frankfurt),
399
+ * main.then(main => main.probes?.London),
400
+ * ],
401
+ * labels: {
402
+ * foo: "baz",
403
+ * },
404
+ * settings: {
405
+ * traceroute: {
406
+ * maxHops: 25,
407
+ * maxUnknownHops: 10,
408
+ * ptrLookup: false,
409
+ * },
410
+ * },
411
+ * });
412
+ * ```
413
+ * <!--End PulumiCodeChooser -->
414
+ *
415
+ * ## Import
416
+ *
417
+ * ```sh
418
+ * $ pulumi import grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck name "{{ id }}"
419
+ * ```
420
+ */
8
421
  class SyntheticMonitoringCheck extends pulumi.CustomResource {
9
422
  /**
10
423
  * Get an existing SyntheticMonitoringCheck resource's state with the given name, ID, and optional extra
@@ -1 +1 @@
1
- {"version":3,"file":"syntheticMonitoringCheck.js","sourceRoot":"","sources":["../syntheticMonitoringCheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syntheticMonitoringCheck.js","sourceRoot":"","sources":["../syntheticMonitoringCheck.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,73 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * Sets up Synthetic Monitoring on a Grafana cloud stack and generates a token.
4
+ * Once a Grafana Cloud stack is created, a user can either use this resource or go into the UI to install synthetic monitoring.
5
+ * This resource cannot be imported but it can be used on an existing Synthetic Monitoring installation without issues.
6
+ *
7
+ * **Note that this resource must be used on a provider configured with Grafana Cloud credentials.**
8
+ *
9
+ * * [Official documentation](https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/set-up/)
10
+ * * [API documentation](https://github.com/grafana/synthetic-monitoring-api-go-client/blob/main/docs/API.md#apiv1registerinstall)
11
+ *
12
+ * Required access policy scopes:
13
+ *
14
+ * * stacks:read
15
+ *
16
+ * ## Example Usage
17
+ *
18
+ * <!--Start PulumiCodeChooser -->
19
+ * ```typescript
20
+ * import * as pulumi from "@pulumi/pulumi";
21
+ * import * as grafana from "@pulumi/grafana";
22
+ * import * as grafana from "@pulumiverse/grafana";
23
+ *
24
+ * const config = new pulumi.Config();
25
+ * const cloudAccessPolicyToken = config.requireObject("cloudAccessPolicyToken");
26
+ * const stackSlug = config.requireObject("stackSlug");
27
+ * const cloudRegion = config.get("cloudRegion") || "us";
28
+ * // Step 1: Create a stack
29
+ * const cloud = new grafana.Provider("cloud", {cloudAccessPolicyToken: cloudAccessPolicyToken});
30
+ * const smStackCloudStack = new grafana.CloudStack("smStackCloudStack", {
31
+ * slug: stackSlug,
32
+ * regionSlug: cloudRegion,
33
+ * }, {
34
+ * provider: grafana.cloud,
35
+ * });
36
+ * // Step 2: Install Synthetic Monitoring on the stack
37
+ * const smMetricsPublishCloudAccessPolicy = new grafana.CloudAccessPolicy("smMetricsPublishCloudAccessPolicy", {
38
+ * region: cloudRegion,
39
+ * scopes: [
40
+ * "metrics:write",
41
+ * "stacks:read",
42
+ * ],
43
+ * realms: [{
44
+ * type: "stack",
45
+ * identifier: smStackCloudStack.id,
46
+ * }],
47
+ * }, {
48
+ * provider: grafana.cloud,
49
+ * });
50
+ * const smMetricsPublishCloudAccessPolicyToken = new grafana.CloudAccessPolicyToken("smMetricsPublishCloudAccessPolicyToken", {
51
+ * region: cloudRegion,
52
+ * accessPolicyId: smMetricsPublishCloudAccessPolicy.policyId,
53
+ * }, {
54
+ * provider: grafana.cloud,
55
+ * });
56
+ * const smStackSyntheticMonitoringInstallation = new grafana.SyntheticMonitoringInstallation("smStackSyntheticMonitoringInstallation", {
57
+ * stackId: smStackCloudStack.id,
58
+ * metricsPublisherKey: smMetricsPublishCloudAccessPolicyToken.token,
59
+ * }, {
60
+ * provider: grafana.cloud,
61
+ * });
62
+ * // Step 3: Interact with Synthetic Monitoring
63
+ * const sm = new grafana.Provider("sm", {
64
+ * smAccessToken: smStackSyntheticMonitoringInstallation.smAccessToken,
65
+ * smUrl: smStackSyntheticMonitoringInstallation.stackSmApiUrl,
66
+ * });
67
+ * const main = grafana.getSyntheticMonitoringProbes({});
68
+ * ```
69
+ * <!--End PulumiCodeChooser -->
70
+ */
2
71
  export declare class SyntheticMonitoringInstallation extends pulumi.CustomResource {
3
72
  /**
4
73
  * Get an existing SyntheticMonitoringInstallation resource's state with the given name, ID, and optional extra
@@ -16,10 +85,7 @@ export declare class SyntheticMonitoringInstallation extends pulumi.CustomResour
16
85
  */
17
86
  static isInstance(obj: any): obj is SyntheticMonitoringInstallation;
18
87
  /**
19
- * The [Grafana Cloud access
20
- * policy](https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/) with
21
- * the following scopes: `stacks:read`, `metrics:write`, `logs:write`, `traces:write`. This is used to publish metrics and
22
- * logs to Grafana Cloud stack.
88
+ * The [Grafana Cloud access policy](https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/) with the following scopes: `stacks:read`, `metrics:write`, `logs:write`, `traces:write`. This is used to publish metrics and logs to Grafana Cloud stack.
23
89
  */
24
90
  readonly metricsPublisherKey: pulumi.Output<string>;
25
91
  /**
@@ -31,10 +97,7 @@ export declare class SyntheticMonitoringInstallation extends pulumi.CustomResour
31
97
  */
32
98
  readonly stackId: pulumi.Output<string>;
33
99
  /**
34
- * The URL of the SM API to install SM on. This depends on the stack region, find the list of API URLs here:
35
- * https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/set-up/set-up-private-probes/#probe-api-server-url.
36
- * A static mapping exists in the provider but it may not contain all the regions. If it does contain the stack's region,
37
- * this field is computed automatically and readable.
100
+ * The URL of the SM API to install SM on. This depends on the stack region, find the list of API URLs here: https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/set-up/set-up-private-probes/#probe-api-server-url. A static mapping exists in the provider but it may not contain all the regions. If it does contain the stack's region, this field is computed automatically and readable.
38
101
  */
39
102
  readonly stackSmApiUrl: pulumi.Output<string>;
40
103
  /**
@@ -51,10 +114,7 @@ export declare class SyntheticMonitoringInstallation extends pulumi.CustomResour
51
114
  */
52
115
  export interface SyntheticMonitoringInstallationState {
53
116
  /**
54
- * The [Grafana Cloud access
55
- * policy](https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/) with
56
- * the following scopes: `stacks:read`, `metrics:write`, `logs:write`, `traces:write`. This is used to publish metrics and
57
- * logs to Grafana Cloud stack.
117
+ * The [Grafana Cloud access policy](https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/) with the following scopes: `stacks:read`, `metrics:write`, `logs:write`, `traces:write`. This is used to publish metrics and logs to Grafana Cloud stack.
58
118
  */
59
119
  metricsPublisherKey?: pulumi.Input<string>;
60
120
  /**
@@ -66,10 +126,7 @@ export interface SyntheticMonitoringInstallationState {
66
126
  */
67
127
  stackId?: pulumi.Input<string>;
68
128
  /**
69
- * The URL of the SM API to install SM on. This depends on the stack region, find the list of API URLs here:
70
- * https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/set-up/set-up-private-probes/#probe-api-server-url.
71
- * A static mapping exists in the provider but it may not contain all the regions. If it does contain the stack's region,
72
- * this field is computed automatically and readable.
129
+ * The URL of the SM API to install SM on. This depends on the stack region, find the list of API URLs here: https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/set-up/set-up-private-probes/#probe-api-server-url. A static mapping exists in the provider but it may not contain all the regions. If it does contain the stack's region, this field is computed automatically and readable.
73
130
  */
74
131
  stackSmApiUrl?: pulumi.Input<string>;
75
132
  }
@@ -78,10 +135,7 @@ export interface SyntheticMonitoringInstallationState {
78
135
  */
79
136
  export interface SyntheticMonitoringInstallationArgs {
80
137
  /**
81
- * The [Grafana Cloud access
82
- * policy](https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/) with
83
- * the following scopes: `stacks:read`, `metrics:write`, `logs:write`, `traces:write`. This is used to publish metrics and
84
- * logs to Grafana Cloud stack.
138
+ * The [Grafana Cloud access policy](https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/) with the following scopes: `stacks:read`, `metrics:write`, `logs:write`, `traces:write`. This is used to publish metrics and logs to Grafana Cloud stack.
85
139
  */
86
140
  metricsPublisherKey: pulumi.Input<string>;
87
141
  /**
@@ -89,10 +143,7 @@ export interface SyntheticMonitoringInstallationArgs {
89
143
  */
90
144
  stackId: pulumi.Input<string>;
91
145
  /**
92
- * The URL of the SM API to install SM on. This depends on the stack region, find the list of API URLs here:
93
- * https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/set-up/set-up-private-probes/#probe-api-server-url.
94
- * A static mapping exists in the provider but it may not contain all the regions. If it does contain the stack's region,
95
- * this field is computed automatically and readable.
146
+ * The URL of the SM API to install SM on. This depends on the stack region, find the list of API URLs here: https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/set-up/set-up-private-probes/#probe-api-server-url. A static mapping exists in the provider but it may not contain all the regions. If it does contain the stack's region, this field is computed automatically and readable.
96
147
  */
97
148
  stackSmApiUrl?: pulumi.Input<string>;
98
149
  }
@@ -5,6 +5,75 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.SyntheticMonitoringInstallation = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("./utilities");
8
+ /**
9
+ * Sets up Synthetic Monitoring on a Grafana cloud stack and generates a token.
10
+ * Once a Grafana Cloud stack is created, a user can either use this resource or go into the UI to install synthetic monitoring.
11
+ * This resource cannot be imported but it can be used on an existing Synthetic Monitoring installation without issues.
12
+ *
13
+ * **Note that this resource must be used on a provider configured with Grafana Cloud credentials.**
14
+ *
15
+ * * [Official documentation](https://grafana.com/docs/grafana-cloud/testing/synthetic-monitoring/set-up/)
16
+ * * [API documentation](https://github.com/grafana/synthetic-monitoring-api-go-client/blob/main/docs/API.md#apiv1registerinstall)
17
+ *
18
+ * Required access policy scopes:
19
+ *
20
+ * * stacks:read
21
+ *
22
+ * ## Example Usage
23
+ *
24
+ * <!--Start PulumiCodeChooser -->
25
+ * ```typescript
26
+ * import * as pulumi from "@pulumi/pulumi";
27
+ * import * as grafana from "@pulumi/grafana";
28
+ * import * as grafana from "@pulumiverse/grafana";
29
+ *
30
+ * const config = new pulumi.Config();
31
+ * const cloudAccessPolicyToken = config.requireObject("cloudAccessPolicyToken");
32
+ * const stackSlug = config.requireObject("stackSlug");
33
+ * const cloudRegion = config.get("cloudRegion") || "us";
34
+ * // Step 1: Create a stack
35
+ * const cloud = new grafana.Provider("cloud", {cloudAccessPolicyToken: cloudAccessPolicyToken});
36
+ * const smStackCloudStack = new grafana.CloudStack("smStackCloudStack", {
37
+ * slug: stackSlug,
38
+ * regionSlug: cloudRegion,
39
+ * }, {
40
+ * provider: grafana.cloud,
41
+ * });
42
+ * // Step 2: Install Synthetic Monitoring on the stack
43
+ * const smMetricsPublishCloudAccessPolicy = new grafana.CloudAccessPolicy("smMetricsPublishCloudAccessPolicy", {
44
+ * region: cloudRegion,
45
+ * scopes: [
46
+ * "metrics:write",
47
+ * "stacks:read",
48
+ * ],
49
+ * realms: [{
50
+ * type: "stack",
51
+ * identifier: smStackCloudStack.id,
52
+ * }],
53
+ * }, {
54
+ * provider: grafana.cloud,
55
+ * });
56
+ * const smMetricsPublishCloudAccessPolicyToken = new grafana.CloudAccessPolicyToken("smMetricsPublishCloudAccessPolicyToken", {
57
+ * region: cloudRegion,
58
+ * accessPolicyId: smMetricsPublishCloudAccessPolicy.policyId,
59
+ * }, {
60
+ * provider: grafana.cloud,
61
+ * });
62
+ * const smStackSyntheticMonitoringInstallation = new grafana.SyntheticMonitoringInstallation("smStackSyntheticMonitoringInstallation", {
63
+ * stackId: smStackCloudStack.id,
64
+ * metricsPublisherKey: smMetricsPublishCloudAccessPolicyToken.token,
65
+ * }, {
66
+ * provider: grafana.cloud,
67
+ * });
68
+ * // Step 3: Interact with Synthetic Monitoring
69
+ * const sm = new grafana.Provider("sm", {
70
+ * smAccessToken: smStackSyntheticMonitoringInstallation.smAccessToken,
71
+ * smUrl: smStackSyntheticMonitoringInstallation.stackSmApiUrl,
72
+ * });
73
+ * const main = grafana.getSyntheticMonitoringProbes({});
74
+ * ```
75
+ * <!--End PulumiCodeChooser -->
76
+ */
8
77
  class SyntheticMonitoringInstallation extends pulumi.CustomResource {
9
78
  /**
10
79
  * Get an existing SyntheticMonitoringInstallation resource's state with the given name, ID, and optional extra
@@ -1 +1 @@
1
- {"version":3,"file":"syntheticMonitoringInstallation.js","sourceRoot":"","sources":["../syntheticMonitoringInstallation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syntheticMonitoringInstallation.js","sourceRoot":"","sources":["../syntheticMonitoringInstallation.ts"],"names":[],"mappings":"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"}