@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,464 @@
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.SyntheticMonitoringCheck = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
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/monitor-public-endpoints/checks/)
16
+ *
17
+ * ## Example Usage
18
+ * ### DNS Basic
19
+ *
20
+ * ```typescript
21
+ * import * as pulumi from "@pulumi/pulumi";
22
+ * import * as grafana from "@pulumi/grafana";
23
+ * import * as grafana from "@pulumiverse/grafana";
24
+ *
25
+ * const main = grafana.getSyntheticMonitoringProbes({});
26
+ * const dns = new grafana.SyntheticMonitoringCheck("dns", {
27
+ * job: "DNS Defaults",
28
+ * target: "grafana.com",
29
+ * enabled: false,
30
+ * probes: [main.then(main => main.probes?.Atlanta)],
31
+ * labels: {
32
+ * foo: "bar",
33
+ * },
34
+ * settings: {
35
+ * dns: {},
36
+ * },
37
+ * });
38
+ * ```
39
+ * ### DNS Complex
40
+ *
41
+ * ```typescript
42
+ * import * as pulumi from "@pulumi/pulumi";
43
+ * import * as grafana from "@pulumi/grafana";
44
+ * import * as grafana from "@pulumiverse/grafana";
45
+ *
46
+ * const main = grafana.getSyntheticMonitoringProbes({});
47
+ * const dns = new grafana.SyntheticMonitoringCheck("dns", {
48
+ * job: "DNS Updated",
49
+ * target: "grafana.net",
50
+ * enabled: false,
51
+ * probes: [
52
+ * main.then(main => main.probes?.Frankfurt),
53
+ * main.then(main => main.probes?.London),
54
+ * ],
55
+ * labels: {
56
+ * foo: "baz",
57
+ * },
58
+ * settings: {
59
+ * dns: {
60
+ * ipVersion: "Any",
61
+ * server: "8.8.4.4",
62
+ * port: 8600,
63
+ * recordType: "CNAME",
64
+ * protocol: "TCP",
65
+ * validRCodes: [
66
+ * "NOERROR",
67
+ * "NOTAUTH",
68
+ * ],
69
+ * validateAnswerRrs: {
70
+ * failIfMatchesRegexps: [".+-bad-stuff*"],
71
+ * failIfNotMatchesRegexps: [".+-good-stuff*"],
72
+ * },
73
+ * validateAuthorityRrs: {
74
+ * failIfMatchesRegexps: [".+-bad-stuff*"],
75
+ * failIfNotMatchesRegexps: [".+-good-stuff*"],
76
+ * },
77
+ * validateAdditionalRrs: [{
78
+ * failIfMatchesRegexps: [".+-bad-stuff*"],
79
+ * failIfNotMatchesRegexps: [".+-good-stuff*"],
80
+ * }],
81
+ * },
82
+ * },
83
+ * });
84
+ * ```
85
+ * ### HTTP Basic
86
+ *
87
+ * ```typescript
88
+ * import * as pulumi from "@pulumi/pulumi";
89
+ * import * as grafana from "@pulumi/grafana";
90
+ * import * as grafana from "@pulumiverse/grafana";
91
+ *
92
+ * const main = grafana.getSyntheticMonitoringProbes({});
93
+ * const http = new grafana.SyntheticMonitoringCheck("http", {
94
+ * job: "HTTP Defaults",
95
+ * target: "https://grafana.com",
96
+ * enabled: false,
97
+ * probes: [main.then(main => main.probes?.Atlanta)],
98
+ * labels: {
99
+ * foo: "bar",
100
+ * },
101
+ * settings: {
102
+ * http: {},
103
+ * },
104
+ * });
105
+ * ```
106
+ * ### HTTP Complex
107
+ *
108
+ * ```typescript
109
+ * import * as pulumi from "@pulumi/pulumi";
110
+ * import * as grafana from "@pulumi/grafana";
111
+ * import * as grafana from "@pulumiverse/grafana";
112
+ *
113
+ * const main = grafana.getSyntheticMonitoringProbes({});
114
+ * const http = new grafana.SyntheticMonitoringCheck("http", {
115
+ * job: "HTTP Defaults",
116
+ * target: "https://grafana.org",
117
+ * enabled: false,
118
+ * probes: [
119
+ * main.then(main => main.probes?.Bangalore),
120
+ * main.then(main => main.probes?.Mumbai),
121
+ * ],
122
+ * labels: {
123
+ * foo: "bar",
124
+ * },
125
+ * settings: {
126
+ * http: {
127
+ * ipVersion: "V6",
128
+ * method: "TRACE",
129
+ * body: "and spirit",
130
+ * noFollowRedirects: true,
131
+ * bearerToken: "asdfjkl;",
132
+ * proxyUrl: "https://almost-there",
133
+ * failIfSsl: true,
134
+ * failIfNotSsl: true,
135
+ * cacheBustingQueryParamName: "pineapple",
136
+ * tlsConfig: {
137
+ * serverName: "grafana.org",
138
+ * clientCert: `-----BEGIN CERTIFICATE-----
139
+ * MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
140
+ * RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
141
+ * MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
142
+ * 0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
143
+ * h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
144
+ * BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
145
+ * iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
146
+ * a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
147
+ * FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
148
+ * qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
149
+ * FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
150
+ * Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
151
+ * 6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
152
+ * UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
153
+ * yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
154
+ * e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
155
+ * XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
156
+ * tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
157
+ * QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
158
+ * tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
159
+ * prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
160
+ * 5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
161
+ * l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
162
+ * 7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
163
+ * vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
164
+ * -----END CERTIFICATE-----
165
+ * `,
166
+ * },
167
+ * headers: ["Content-Type: multipart/form-data; boundary=something"],
168
+ * basicAuth: {
169
+ * username: "open",
170
+ * password: "sesame",
171
+ * },
172
+ * validStatusCodes: [
173
+ * 200,
174
+ * 201,
175
+ * ],
176
+ * validHttpVersions: [
177
+ * "HTTP/1.0",
178
+ * "HTTP/1.1",
179
+ * "HTTP/2.0",
180
+ * ],
181
+ * failIfBodyMatchesRegexps: ["*bad stuff*"],
182
+ * failIfBodyNotMatchesRegexps: ["*good stuff*"],
183
+ * failIfHeaderMatchesRegexps: [{
184
+ * header: "Content-Type",
185
+ * regexp: "application/soap*",
186
+ * allowMissing: true,
187
+ * }],
188
+ * },
189
+ * },
190
+ * });
191
+ * ```
192
+ * ### Ping Basic
193
+ *
194
+ * ```typescript
195
+ * import * as pulumi from "@pulumi/pulumi";
196
+ * import * as grafana from "@pulumi/grafana";
197
+ * import * as grafana from "@pulumiverse/grafana";
198
+ *
199
+ * const main = grafana.getSyntheticMonitoringProbes({});
200
+ * const ping = new grafana.SyntheticMonitoringCheck("ping", {
201
+ * job: "Ping Defaults",
202
+ * target: "grafana.com",
203
+ * enabled: false,
204
+ * probes: [main.then(main => main.probes?.Atlanta)],
205
+ * labels: {
206
+ * foo: "bar",
207
+ * },
208
+ * settings: {
209
+ * ping: {},
210
+ * },
211
+ * });
212
+ * ```
213
+ * ### Ping Complex
214
+ *
215
+ * ```typescript
216
+ * import * as pulumi from "@pulumi/pulumi";
217
+ * import * as grafana from "@pulumi/grafana";
218
+ * import * as grafana from "@pulumiverse/grafana";
219
+ *
220
+ * const main = grafana.getSyntheticMonitoringProbes({});
221
+ * const ping = new grafana.SyntheticMonitoringCheck("ping", {
222
+ * job: "Ping Updated",
223
+ * target: "grafana.net",
224
+ * enabled: false,
225
+ * probes: [
226
+ * main.then(main => main.probes?.Frankfurt),
227
+ * main.then(main => main.probes?.London),
228
+ * ],
229
+ * labels: {
230
+ * foo: "baz",
231
+ * },
232
+ * settings: {
233
+ * ping: {
234
+ * ipVersion: "Any",
235
+ * payloadSize: 20,
236
+ * dontFragment: true,
237
+ * },
238
+ * },
239
+ * });
240
+ * ```
241
+ * ### TCP Basic
242
+ *
243
+ * ```typescript
244
+ * import * as pulumi from "@pulumi/pulumi";
245
+ * import * as grafana from "@pulumi/grafana";
246
+ * import * as grafana from "@pulumiverse/grafana";
247
+ *
248
+ * const main = grafana.getSyntheticMonitoringProbes({});
249
+ * const tcp = new grafana.SyntheticMonitoringCheck("tcp", {
250
+ * job: "TCP Defaults",
251
+ * target: "grafana.com:80",
252
+ * enabled: false,
253
+ * probes: [main.then(main => main.probes?.Atlanta)],
254
+ * labels: {
255
+ * foo: "bar",
256
+ * },
257
+ * settings: {
258
+ * tcp: {},
259
+ * },
260
+ * });
261
+ * ```
262
+ * ### TCP Complex
263
+ *
264
+ * ```typescript
265
+ * import * as pulumi from "@pulumi/pulumi";
266
+ * import * as grafana from "@pulumi/grafana";
267
+ * import * as grafana from "@pulumiverse/grafana";
268
+ *
269
+ * const main = grafana.getSyntheticMonitoringProbes({});
270
+ * const tcp = new grafana.SyntheticMonitoringCheck("tcp", {
271
+ * job: "TCP Defaults",
272
+ * target: "grafana.com:443",
273
+ * enabled: false,
274
+ * probes: [
275
+ * main.then(main => main.probes?.Frankfurt),
276
+ * main.then(main => main.probes?.London),
277
+ * ],
278
+ * labels: {
279
+ * foo: "baz",
280
+ * },
281
+ * settings: {
282
+ * tcp: {
283
+ * ipVersion: "V6",
284
+ * tls: true,
285
+ * queryResponses: [
286
+ * {
287
+ * send: "howdy",
288
+ * expect: "hi",
289
+ * },
290
+ * {
291
+ * send: "like this",
292
+ * expect: "like that",
293
+ * startTls: true,
294
+ * },
295
+ * ],
296
+ * tlsConfig: {
297
+ * serverName: "grafana.com",
298
+ * caCert: `-----BEGIN CERTIFICATE-----
299
+ * MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
300
+ * RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
301
+ * MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
302
+ * 0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
303
+ * h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
304
+ * BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
305
+ * iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
306
+ * a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
307
+ * FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
308
+ * qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
309
+ * FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
310
+ * Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
311
+ * 6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
312
+ * UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
313
+ * yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
314
+ * e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
315
+ * XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
316
+ * tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
317
+ * QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
318
+ * tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
319
+ * prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
320
+ * 5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
321
+ * l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
322
+ * 7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
323
+ * vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
324
+ * -----END CERTIFICATE-----
325
+ * `,
326
+ * },
327
+ * },
328
+ * },
329
+ * });
330
+ * ```
331
+ * ### Traceroute Basic
332
+ *
333
+ * ```typescript
334
+ * import * as pulumi from "@pulumi/pulumi";
335
+ * import * as grafana from "@pulumi/grafana";
336
+ * import * as grafana from "@pulumiverse/grafana";
337
+ *
338
+ * const main = grafana.getSyntheticMonitoringProbes({});
339
+ * const traceroute = new grafana.SyntheticMonitoringCheck("traceroute", {
340
+ * job: "Traceroute defaults",
341
+ * target: "grafana.com",
342
+ * enabled: false,
343
+ * frequency: 120000,
344
+ * timeout: 30000,
345
+ * probes: [main.then(main => main.probes?.Atlanta)],
346
+ * labels: {
347
+ * foo: "bar",
348
+ * },
349
+ * settings: {
350
+ * traceroute: {},
351
+ * },
352
+ * });
353
+ * ```
354
+ * ### Traceroute Complex
355
+ *
356
+ * ```typescript
357
+ * import * as pulumi from "@pulumi/pulumi";
358
+ * import * as grafana from "@pulumi/grafana";
359
+ * import * as grafana from "@pulumiverse/grafana";
360
+ *
361
+ * const main = grafana.getSyntheticMonitoringProbes({});
362
+ * const traceroute = new grafana.SyntheticMonitoringCheck("traceroute", {
363
+ * job: "Traceroute complex",
364
+ * target: "grafana.net",
365
+ * enabled: false,
366
+ * frequency: 120000,
367
+ * timeout: 30000,
368
+ * probes: [
369
+ * main.then(main => main.probes?.Frankfurt),
370
+ * main.then(main => main.probes?.London),
371
+ * ],
372
+ * labels: {
373
+ * foo: "baz",
374
+ * },
375
+ * settings: {
376
+ * traceroute: {
377
+ * maxHops: 25,
378
+ * maxUnknownHops: 10,
379
+ * ptrLookup: false,
380
+ * },
381
+ * },
382
+ * });
383
+ * ```
384
+ *
385
+ * ## Import
386
+ *
387
+ * ```sh
388
+ * $ pulumi import grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck check {{check-id}}
389
+ * ```
390
+ */
391
+ class SyntheticMonitoringCheck extends pulumi.CustomResource {
392
+ /**
393
+ * Get an existing SyntheticMonitoringCheck resource's state with the given name, ID, and optional extra
394
+ * properties used to qualify the lookup.
395
+ *
396
+ * @param name The _unique_ name of the resulting resource.
397
+ * @param id The _unique_ provider ID of the resource to lookup.
398
+ * @param state Any extra arguments used during the lookup.
399
+ * @param opts Optional settings to control the behavior of the CustomResource.
400
+ */
401
+ static get(name, id, state, opts) {
402
+ return new SyntheticMonitoringCheck(name, state, Object.assign(Object.assign({}, opts), { id: id }));
403
+ }
404
+ /**
405
+ * Returns true if the given object is an instance of SyntheticMonitoringCheck. This is designed to work even
406
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
407
+ */
408
+ static isInstance(obj) {
409
+ if (obj === undefined || obj === null) {
410
+ return false;
411
+ }
412
+ return obj['__pulumiType'] === SyntheticMonitoringCheck.__pulumiType;
413
+ }
414
+ constructor(name, argsOrState, opts) {
415
+ let resourceInputs = {};
416
+ opts = opts || {};
417
+ if (opts.id) {
418
+ const state = argsOrState;
419
+ resourceInputs["alertSensitivity"] = state ? state.alertSensitivity : undefined;
420
+ resourceInputs["basicMetricsOnly"] = state ? state.basicMetricsOnly : undefined;
421
+ resourceInputs["enabled"] = state ? state.enabled : undefined;
422
+ resourceInputs["frequency"] = state ? state.frequency : undefined;
423
+ resourceInputs["job"] = state ? state.job : undefined;
424
+ resourceInputs["labels"] = state ? state.labels : undefined;
425
+ resourceInputs["probes"] = state ? state.probes : undefined;
426
+ resourceInputs["settings"] = state ? state.settings : undefined;
427
+ resourceInputs["target"] = state ? state.target : undefined;
428
+ resourceInputs["tenantId"] = state ? state.tenantId : undefined;
429
+ resourceInputs["timeout"] = state ? state.timeout : undefined;
430
+ }
431
+ else {
432
+ const args = argsOrState;
433
+ if ((!args || args.job === undefined) && !opts.urn) {
434
+ throw new Error("Missing required property 'job'");
435
+ }
436
+ if ((!args || args.probes === undefined) && !opts.urn) {
437
+ throw new Error("Missing required property 'probes'");
438
+ }
439
+ if ((!args || args.settings === undefined) && !opts.urn) {
440
+ throw new Error("Missing required property 'settings'");
441
+ }
442
+ if ((!args || args.target === undefined) && !opts.urn) {
443
+ throw new Error("Missing required property 'target'");
444
+ }
445
+ resourceInputs["alertSensitivity"] = args ? args.alertSensitivity : undefined;
446
+ resourceInputs["basicMetricsOnly"] = args ? args.basicMetricsOnly : undefined;
447
+ resourceInputs["enabled"] = args ? args.enabled : undefined;
448
+ resourceInputs["frequency"] = args ? args.frequency : undefined;
449
+ resourceInputs["job"] = args ? args.job : undefined;
450
+ resourceInputs["labels"] = args ? args.labels : undefined;
451
+ resourceInputs["probes"] = args ? args.probes : undefined;
452
+ resourceInputs["settings"] = args ? args.settings : undefined;
453
+ resourceInputs["target"] = args ? args.target : undefined;
454
+ resourceInputs["timeout"] = args ? args.timeout : undefined;
455
+ resourceInputs["tenantId"] = undefined /*out*/;
456
+ }
457
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
458
+ super(SyntheticMonitoringCheck.__pulumiType, name, resourceInputs, opts);
459
+ }
460
+ }
461
+ exports.SyntheticMonitoringCheck = SyntheticMonitoringCheck;
462
+ /** @internal */
463
+ SyntheticMonitoringCheck.__pulumiType = 'grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck';
464
+ //# sourceMappingURL=syntheticMonitoringCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntheticMonitoringCheck.js","sourceRoot":"","sources":["../syntheticMonitoringCheck.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
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/monitor-public-endpoints/installation/)
10
+ * * [API documentation](https://github.com/grafana/synthetic-monitoring-api-go-client/blob/main/docs/API.md#apiv1registerinstall)
11
+ *
12
+ * ## Example Usage
13
+ *
14
+ * ```typescript
15
+ * import * as pulumi from "@pulumi/pulumi";
16
+ * import * as grafana from "@pulumiverse/grafana";
17
+ *
18
+ * const smStackCloudStack = new grafana.CloudStack("smStackCloudStack", {
19
+ * slug: "<stack-slug>",
20
+ * regionSlug: "us",
21
+ * });
22
+ * const metricsPublish = new grafana.CloudApiKey("metricsPublish", {
23
+ * role: "MetricsPublisher",
24
+ * cloudOrgSlug: "<org-slug>",
25
+ * });
26
+ * const smStackSyntheticMonitoringInstallation = new grafana.SyntheticMonitoringInstallation("smStackSyntheticMonitoringInstallation", {stackId: smStackCloudStack.id});
27
+ * // Create a new provider instance to interact with Synthetic Monitoring
28
+ * const sm = new grafana.Provider("sm", {
29
+ * smAccessToken: smStackSyntheticMonitoringInstallation.smAccessToken,
30
+ * smUrl: smStackSyntheticMonitoringInstallation.stackSmApiUrl,
31
+ * });
32
+ * ```
33
+ */
34
+ export declare class SyntheticMonitoringInstallation extends pulumi.CustomResource {
35
+ /**
36
+ * Get an existing SyntheticMonitoringInstallation resource's state with the given name, ID, and optional extra
37
+ * properties used to qualify the lookup.
38
+ *
39
+ * @param name The _unique_ name of the resulting resource.
40
+ * @param id The _unique_ provider ID of the resource to lookup.
41
+ * @param state Any extra arguments used during the lookup.
42
+ * @param opts Optional settings to control the behavior of the CustomResource.
43
+ */
44
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: SyntheticMonitoringInstallationState, opts?: pulumi.CustomResourceOptions): SyntheticMonitoringInstallation;
45
+ /**
46
+ * Returns true if the given object is an instance of SyntheticMonitoringInstallation. This is designed to work even
47
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
48
+ */
49
+ static isInstance(obj: any): obj is SyntheticMonitoringInstallation;
50
+ /**
51
+ * The Cloud API Key with the `MetricsPublisher` role used to publish metrics to the SM API
52
+ */
53
+ readonly metricsPublisherKey: pulumi.Output<string>;
54
+ /**
55
+ * Generated token to access the SM API.
56
+ */
57
+ readonly smAccessToken: pulumi.Output<string>;
58
+ /**
59
+ * The ID or slug of the stack to install SM on.
60
+ */
61
+ readonly stackId: pulumi.Output<string>;
62
+ /**
63
+ * 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/monitor-public-endpoints/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.
64
+ */
65
+ readonly stackSmApiUrl: pulumi.Output<string>;
66
+ /**
67
+ * Create a SyntheticMonitoringInstallation resource with the given unique name, arguments, and options.
68
+ *
69
+ * @param name The _unique_ name of the resource.
70
+ * @param args The arguments to use to populate this resource's properties.
71
+ * @param opts A bag of options that control this resource's behavior.
72
+ */
73
+ constructor(name: string, args: SyntheticMonitoringInstallationArgs, opts?: pulumi.CustomResourceOptions);
74
+ }
75
+ /**
76
+ * Input properties used for looking up and filtering SyntheticMonitoringInstallation resources.
77
+ */
78
+ export interface SyntheticMonitoringInstallationState {
79
+ /**
80
+ * The Cloud API Key with the `MetricsPublisher` role used to publish metrics to the SM API
81
+ */
82
+ metricsPublisherKey?: pulumi.Input<string>;
83
+ /**
84
+ * Generated token to access the SM API.
85
+ */
86
+ smAccessToken?: pulumi.Input<string>;
87
+ /**
88
+ * The ID or slug of the stack to install SM on.
89
+ */
90
+ stackId?: pulumi.Input<string>;
91
+ /**
92
+ * 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/monitor-public-endpoints/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.
93
+ */
94
+ stackSmApiUrl?: pulumi.Input<string>;
95
+ }
96
+ /**
97
+ * The set of arguments for constructing a SyntheticMonitoringInstallation resource.
98
+ */
99
+ export interface SyntheticMonitoringInstallationArgs {
100
+ /**
101
+ * The Cloud API Key with the `MetricsPublisher` role used to publish metrics to the SM API
102
+ */
103
+ metricsPublisherKey: pulumi.Input<string>;
104
+ /**
105
+ * The ID or slug of the stack to install SM on.
106
+ */
107
+ stackId: pulumi.Input<string>;
108
+ /**
109
+ * 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/monitor-public-endpoints/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.
110
+ */
111
+ stackSmApiUrl?: pulumi.Input<string>;
112
+ }
@@ -0,0 +1,95 @@
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.SyntheticMonitoringInstallation = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
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/monitor-public-endpoints/installation/)
16
+ * * [API documentation](https://github.com/grafana/synthetic-monitoring-api-go-client/blob/main/docs/API.md#apiv1registerinstall)
17
+ *
18
+ * ## Example Usage
19
+ *
20
+ * ```typescript
21
+ * import * as pulumi from "@pulumi/pulumi";
22
+ * import * as grafana from "@pulumiverse/grafana";
23
+ *
24
+ * const smStackCloudStack = new grafana.CloudStack("smStackCloudStack", {
25
+ * slug: "<stack-slug>",
26
+ * regionSlug: "us",
27
+ * });
28
+ * const metricsPublish = new grafana.CloudApiKey("metricsPublish", {
29
+ * role: "MetricsPublisher",
30
+ * cloudOrgSlug: "<org-slug>",
31
+ * });
32
+ * const smStackSyntheticMonitoringInstallation = new grafana.SyntheticMonitoringInstallation("smStackSyntheticMonitoringInstallation", {stackId: smStackCloudStack.id});
33
+ * // Create a new provider instance to interact with Synthetic Monitoring
34
+ * const sm = new grafana.Provider("sm", {
35
+ * smAccessToken: smStackSyntheticMonitoringInstallation.smAccessToken,
36
+ * smUrl: smStackSyntheticMonitoringInstallation.stackSmApiUrl,
37
+ * });
38
+ * ```
39
+ */
40
+ class SyntheticMonitoringInstallation extends pulumi.CustomResource {
41
+ /**
42
+ * Get an existing SyntheticMonitoringInstallation resource's state with the given name, ID, and optional extra
43
+ * properties used to qualify the lookup.
44
+ *
45
+ * @param name The _unique_ name of the resulting resource.
46
+ * @param id The _unique_ provider ID of the resource to lookup.
47
+ * @param state Any extra arguments used during the lookup.
48
+ * @param opts Optional settings to control the behavior of the CustomResource.
49
+ */
50
+ static get(name, id, state, opts) {
51
+ return new SyntheticMonitoringInstallation(name, state, Object.assign(Object.assign({}, opts), { id: id }));
52
+ }
53
+ /**
54
+ * Returns true if the given object is an instance of SyntheticMonitoringInstallation. This is designed to work even
55
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
56
+ */
57
+ static isInstance(obj) {
58
+ if (obj === undefined || obj === null) {
59
+ return false;
60
+ }
61
+ return obj['__pulumiType'] === SyntheticMonitoringInstallation.__pulumiType;
62
+ }
63
+ constructor(name, argsOrState, opts) {
64
+ let resourceInputs = {};
65
+ opts = opts || {};
66
+ if (opts.id) {
67
+ const state = argsOrState;
68
+ resourceInputs["metricsPublisherKey"] = state ? state.metricsPublisherKey : undefined;
69
+ resourceInputs["smAccessToken"] = state ? state.smAccessToken : undefined;
70
+ resourceInputs["stackId"] = state ? state.stackId : undefined;
71
+ resourceInputs["stackSmApiUrl"] = state ? state.stackSmApiUrl : undefined;
72
+ }
73
+ else {
74
+ const args = argsOrState;
75
+ if ((!args || args.metricsPublisherKey === undefined) && !opts.urn) {
76
+ throw new Error("Missing required property 'metricsPublisherKey'");
77
+ }
78
+ if ((!args || args.stackId === undefined) && !opts.urn) {
79
+ throw new Error("Missing required property 'stackId'");
80
+ }
81
+ resourceInputs["metricsPublisherKey"] = (args === null || args === void 0 ? void 0 : args.metricsPublisherKey) ? pulumi.secret(args.metricsPublisherKey) : undefined;
82
+ resourceInputs["stackId"] = args ? args.stackId : undefined;
83
+ resourceInputs["stackSmApiUrl"] = args ? args.stackSmApiUrl : undefined;
84
+ resourceInputs["smAccessToken"] = undefined /*out*/;
85
+ }
86
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
87
+ const secretOpts = { additionalSecretOutputs: ["metricsPublisherKey"] };
88
+ opts = pulumi.mergeOptions(opts, secretOpts);
89
+ super(SyntheticMonitoringInstallation.__pulumiType, name, resourceInputs, opts);
90
+ }
91
+ }
92
+ exports.SyntheticMonitoringInstallation = SyntheticMonitoringInstallation;
93
+ /** @internal */
94
+ SyntheticMonitoringInstallation.__pulumiType = 'grafana:index/syntheticMonitoringInstallation:SyntheticMonitoringInstallation';
95
+ //# sourceMappingURL=syntheticMonitoringInstallation.js.map