pulumiverse-scaleway 1.23.0a1736837529__py3-none-any.whl

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.

Potentially problematic release.


This version of pulumiverse-scaleway might be problematic. Click here for more details.

Files changed (205) hide show
  1. pulumiverse_scaleway/__init__.py +1065 -0
  2. pulumiverse_scaleway/_inputs.py +8688 -0
  3. pulumiverse_scaleway/_utilities.py +327 -0
  4. pulumiverse_scaleway/account_project.py +316 -0
  5. pulumiverse_scaleway/account_ssh_key.py +454 -0
  6. pulumiverse_scaleway/apple_silicon_server.py +564 -0
  7. pulumiverse_scaleway/baremetal_server.py +1579 -0
  8. pulumiverse_scaleway/block_snapshot.py +401 -0
  9. pulumiverse_scaleway/block_volume.py +527 -0
  10. pulumiverse_scaleway/cockpit.py +314 -0
  11. pulumiverse_scaleway/cockpit_alert_manager.py +401 -0
  12. pulumiverse_scaleway/cockpit_grafana_user.py +362 -0
  13. pulumiverse_scaleway/cockpit_source.py +567 -0
  14. pulumiverse_scaleway/cockpit_token.py +479 -0
  15. pulumiverse_scaleway/config/__init__.py +8 -0
  16. pulumiverse_scaleway/config/__init__.pyi +56 -0
  17. pulumiverse_scaleway/config/vars.py +78 -0
  18. pulumiverse_scaleway/container.py +1373 -0
  19. pulumiverse_scaleway/container_cron.py +458 -0
  20. pulumiverse_scaleway/container_domain.py +406 -0
  21. pulumiverse_scaleway/container_namespace.py +636 -0
  22. pulumiverse_scaleway/container_token.py +452 -0
  23. pulumiverse_scaleway/container_trigger.py +480 -0
  24. pulumiverse_scaleway/database.py +407 -0
  25. pulumiverse_scaleway/database_acl.py +332 -0
  26. pulumiverse_scaleway/database_backup.py +574 -0
  27. pulumiverse_scaleway/database_instance.py +1641 -0
  28. pulumiverse_scaleway/database_privilege.py +422 -0
  29. pulumiverse_scaleway/database_read_replica.py +528 -0
  30. pulumiverse_scaleway/database_user.py +446 -0
  31. pulumiverse_scaleway/domain_record.py +1116 -0
  32. pulumiverse_scaleway/domain_zone.py +430 -0
  33. pulumiverse_scaleway/flexible_ip.py +702 -0
  34. pulumiverse_scaleway/flexible_ip_mac_address.py +510 -0
  35. pulumiverse_scaleway/function.py +1103 -0
  36. pulumiverse_scaleway/function_cron.py +462 -0
  37. pulumiverse_scaleway/function_domain.py +370 -0
  38. pulumiverse_scaleway/function_namespace.py +580 -0
  39. pulumiverse_scaleway/function_token.py +460 -0
  40. pulumiverse_scaleway/function_trigger.py +480 -0
  41. pulumiverse_scaleway/get_account_project.py +170 -0
  42. pulumiverse_scaleway/get_account_ssh_key.py +205 -0
  43. pulumiverse_scaleway/get_availability_zones.py +139 -0
  44. pulumiverse_scaleway/get_baremetal_offer.py +245 -0
  45. pulumiverse_scaleway/get_baremetal_option.py +168 -0
  46. pulumiverse_scaleway/get_baremetal_os.py +174 -0
  47. pulumiverse_scaleway/get_baremetal_server.py +422 -0
  48. pulumiverse_scaleway/get_billing_consumptions.py +134 -0
  49. pulumiverse_scaleway/get_billing_invoices.py +154 -0
  50. pulumiverse_scaleway/get_block_snapshot.py +174 -0
  51. pulumiverse_scaleway/get_block_volume.py +188 -0
  52. pulumiverse_scaleway/get_cockpit.py +204 -0
  53. pulumiverse_scaleway/get_cockpit_plan.py +125 -0
  54. pulumiverse_scaleway/get_cockpit_source.py +262 -0
  55. pulumiverse_scaleway/get_config.py +180 -0
  56. pulumiverse_scaleway/get_container.py +522 -0
  57. pulumiverse_scaleway/get_container_namespace.py +283 -0
  58. pulumiverse_scaleway/get_database.py +187 -0
  59. pulumiverse_scaleway/get_database_acl.py +143 -0
  60. pulumiverse_scaleway/get_database_backup.py +253 -0
  61. pulumiverse_scaleway/get_database_instance.py +404 -0
  62. pulumiverse_scaleway/get_database_privilege.py +181 -0
  63. pulumiverse_scaleway/get_domain_record.py +340 -0
  64. pulumiverse_scaleway/get_domain_zone.py +201 -0
  65. pulumiverse_scaleway/get_flexible_ip.py +247 -0
  66. pulumiverse_scaleway/get_flexible_ips.py +240 -0
  67. pulumiverse_scaleway/get_function.py +365 -0
  68. pulumiverse_scaleway/get_function_namespace.py +238 -0
  69. pulumiverse_scaleway/get_iam_api_key.py +210 -0
  70. pulumiverse_scaleway/get_iam_application.py +210 -0
  71. pulumiverse_scaleway/get_iam_group.py +236 -0
  72. pulumiverse_scaleway/get_iam_ssh_key.py +212 -0
  73. pulumiverse_scaleway/get_iam_user.py +177 -0
  74. pulumiverse_scaleway/get_instance_image.py +305 -0
  75. pulumiverse_scaleway/get_instance_ip.py +204 -0
  76. pulumiverse_scaleway/get_instance_placement_group.py +212 -0
  77. pulumiverse_scaleway/get_instance_private_nic.py +226 -0
  78. pulumiverse_scaleway/get_instance_security_group.py +268 -0
  79. pulumiverse_scaleway/get_instance_server.py +502 -0
  80. pulumiverse_scaleway/get_instance_servers.py +187 -0
  81. pulumiverse_scaleway/get_instance_snapshot.py +248 -0
  82. pulumiverse_scaleway/get_instance_volume.py +215 -0
  83. pulumiverse_scaleway/get_iot_device.py +257 -0
  84. pulumiverse_scaleway/get_iot_hub.py +322 -0
  85. pulumiverse_scaleway/get_ipam_ip.py +419 -0
  86. pulumiverse_scaleway/get_ipam_ips.py +358 -0
  87. pulumiverse_scaleway/get_k8s_version.py +196 -0
  88. pulumiverse_scaleway/get_kubernetes_cluster.py +417 -0
  89. pulumiverse_scaleway/get_kubernetes_node_pool.py +436 -0
  90. pulumiverse_scaleway/get_lb_acls.py +198 -0
  91. pulumiverse_scaleway/get_lb_backend.py +486 -0
  92. pulumiverse_scaleway/get_lb_backends.py +196 -0
  93. pulumiverse_scaleway/get_lb_frontend.py +274 -0
  94. pulumiverse_scaleway/get_lb_frontends.py +196 -0
  95. pulumiverse_scaleway/get_lb_ips.py +198 -0
  96. pulumiverse_scaleway/get_lb_route.py +217 -0
  97. pulumiverse_scaleway/get_lb_routes.py +179 -0
  98. pulumiverse_scaleway/get_lbs.py +187 -0
  99. pulumiverse_scaleway/get_loadbalancer.py +339 -0
  100. pulumiverse_scaleway/get_loadbalancer_certificate.py +230 -0
  101. pulumiverse_scaleway/get_loadbalancer_ip.py +228 -0
  102. pulumiverse_scaleway/get_marketplace_image.py +147 -0
  103. pulumiverse_scaleway/get_mnq_sns.py +150 -0
  104. pulumiverse_scaleway/get_mnq_sqs.py +150 -0
  105. pulumiverse_scaleway/get_mongo_db_instance.py +324 -0
  106. pulumiverse_scaleway/get_object_bucket.py +290 -0
  107. pulumiverse_scaleway/get_object_bucket_policy.py +163 -0
  108. pulumiverse_scaleway/get_redis_cluster.py +347 -0
  109. pulumiverse_scaleway/get_registry_image.py +239 -0
  110. pulumiverse_scaleway/get_registry_image_tag.py +229 -0
  111. pulumiverse_scaleway/get_registry_namespace.py +199 -0
  112. pulumiverse_scaleway/get_secret.py +338 -0
  113. pulumiverse_scaleway/get_secret_version.py +340 -0
  114. pulumiverse_scaleway/get_tem_domain.py +378 -0
  115. pulumiverse_scaleway/get_vpc.py +246 -0
  116. pulumiverse_scaleway/get_vpc_gateway_network.py +287 -0
  117. pulumiverse_scaleway/get_vpc_private_network.py +282 -0
  118. pulumiverse_scaleway/get_vpc_public_gateway.py +304 -0
  119. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +305 -0
  120. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +382 -0
  121. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +199 -0
  122. pulumiverse_scaleway/get_vpc_public_pat_rule.py +313 -0
  123. pulumiverse_scaleway/get_vpc_routes.py +208 -0
  124. pulumiverse_scaleway/get_vpcs.py +174 -0
  125. pulumiverse_scaleway/get_web_host_offer.py +192 -0
  126. pulumiverse_scaleway/get_webhosting.py +332 -0
  127. pulumiverse_scaleway/iam_api_key.py +620 -0
  128. pulumiverse_scaleway/iam_application.py +417 -0
  129. pulumiverse_scaleway/iam_group.py +566 -0
  130. pulumiverse_scaleway/iam_group_membership.py +323 -0
  131. pulumiverse_scaleway/iam_policy.py +773 -0
  132. pulumiverse_scaleway/iam_ssh_key.py +455 -0
  133. pulumiverse_scaleway/iam_user.py +513 -0
  134. pulumiverse_scaleway/inference_deployment.py +822 -0
  135. pulumiverse_scaleway/instance_image.py +750 -0
  136. pulumiverse_scaleway/instance_ip.py +483 -0
  137. pulumiverse_scaleway/instance_ip_reverse_dns.py +308 -0
  138. pulumiverse_scaleway/instance_placement_group.py +479 -0
  139. pulumiverse_scaleway/instance_private_nic.py +555 -0
  140. pulumiverse_scaleway/instance_security_group.py +720 -0
  141. pulumiverse_scaleway/instance_security_group_rules.py +439 -0
  142. pulumiverse_scaleway/instance_server.py +2006 -0
  143. pulumiverse_scaleway/instance_snapshot.py +669 -0
  144. pulumiverse_scaleway/instance_user_data.py +435 -0
  145. pulumiverse_scaleway/instance_volume.py +535 -0
  146. pulumiverse_scaleway/iot_device.py +750 -0
  147. pulumiverse_scaleway/iot_hub.py +896 -0
  148. pulumiverse_scaleway/iot_network.py +472 -0
  149. pulumiverse_scaleway/iot_route.py +660 -0
  150. pulumiverse_scaleway/ipam_ip.py +757 -0
  151. pulumiverse_scaleway/ipam_ip_reverse_dns.py +318 -0
  152. pulumiverse_scaleway/job_definition.py +692 -0
  153. pulumiverse_scaleway/kubernetes_cluster.py +1538 -0
  154. pulumiverse_scaleway/kubernetes_node_pool.py +1255 -0
  155. pulumiverse_scaleway/loadbalancer.py +1061 -0
  156. pulumiverse_scaleway/loadbalancer_acl.py +520 -0
  157. pulumiverse_scaleway/loadbalancer_backend.py +1588 -0
  158. pulumiverse_scaleway/loadbalancer_certificate.py +460 -0
  159. pulumiverse_scaleway/loadbalancer_frontend.py +829 -0
  160. pulumiverse_scaleway/loadbalancer_ip.py +514 -0
  161. pulumiverse_scaleway/loadbalancer_route.py +523 -0
  162. pulumiverse_scaleway/mnq_nats_account.py +334 -0
  163. pulumiverse_scaleway/mnq_nats_credentials.py +330 -0
  164. pulumiverse_scaleway/mnq_sns.py +306 -0
  165. pulumiverse_scaleway/mnq_sns_credentials.py +413 -0
  166. pulumiverse_scaleway/mnq_sns_topic.py +659 -0
  167. pulumiverse_scaleway/mnq_sns_topic_subscription.py +699 -0
  168. pulumiverse_scaleway/mnq_sqs.py +304 -0
  169. pulumiverse_scaleway/mnq_sqs_credentials.py +413 -0
  170. pulumiverse_scaleway/mnq_sqs_queue.py +800 -0
  171. pulumiverse_scaleway/mongo_db_instance.py +907 -0
  172. pulumiverse_scaleway/mongo_db_snapshot.py +521 -0
  173. pulumiverse_scaleway/object_bucket.py +874 -0
  174. pulumiverse_scaleway/object_bucket_acl.py +596 -0
  175. pulumiverse_scaleway/object_bucket_lock_configuration.py +395 -0
  176. pulumiverse_scaleway/object_bucket_policy.py +673 -0
  177. pulumiverse_scaleway/object_bucket_website_configuration.py +534 -0
  178. pulumiverse_scaleway/object_item.py +776 -0
  179. pulumiverse_scaleway/outputs.py +11808 -0
  180. pulumiverse_scaleway/provider.py +327 -0
  181. pulumiverse_scaleway/pulumi-plugin.json +6 -0
  182. pulumiverse_scaleway/py.typed +0 -0
  183. pulumiverse_scaleway/redis_cluster.py +1201 -0
  184. pulumiverse_scaleway/registry_namespace.py +458 -0
  185. pulumiverse_scaleway/sdb_database.py +432 -0
  186. pulumiverse_scaleway/secret.py +663 -0
  187. pulumiverse_scaleway/secret_version.py +487 -0
  188. pulumiverse_scaleway/tem_domain.py +1030 -0
  189. pulumiverse_scaleway/tem_domain_validation.py +303 -0
  190. pulumiverse_scaleway/tem_webhook.py +640 -0
  191. pulumiverse_scaleway/vpc.py +536 -0
  192. pulumiverse_scaleway/vpc_gateway_network.py +866 -0
  193. pulumiverse_scaleway/vpc_private_network.py +734 -0
  194. pulumiverse_scaleway/vpc_public_gateway.py +789 -0
  195. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +933 -0
  196. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +514 -0
  197. pulumiverse_scaleway/vpc_public_gateway_ip.py +457 -0
  198. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +306 -0
  199. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +591 -0
  200. pulumiverse_scaleway/vpc_route.py +577 -0
  201. pulumiverse_scaleway/webhosting.py +805 -0
  202. pulumiverse_scaleway-1.23.0a1736837529.dist-info/METADATA +77 -0
  203. pulumiverse_scaleway-1.23.0a1736837529.dist-info/RECORD +205 -0
  204. pulumiverse_scaleway-1.23.0a1736837529.dist-info/WHEEL +5 -0
  205. pulumiverse_scaleway-1.23.0a1736837529.dist-info/top_level.txt +1 -0
@@ -0,0 +1,362 @@
1
+ # coding=utf-8
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
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+
17
+ __all__ = ['CockpitGrafanaUserArgs', 'CockpitGrafanaUser']
18
+
19
+ @pulumi.input_type
20
+ class CockpitGrafanaUserArgs:
21
+ def __init__(__self__, *,
22
+ login: pulumi.Input[str],
23
+ role: pulumi.Input[str],
24
+ project_id: Optional[pulumi.Input[str]] = None):
25
+ """
26
+ The set of arguments for constructing a CockpitGrafanaUser resource.
27
+ :param pulumi.Input[str] login: The username of the Grafana user. The `admin` user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.
28
+ :param pulumi.Input[str] role: The role assigned to the Grafana user. Must be `editor` or `viewer`.
29
+ :param pulumi.Input[str] project_id: ) The ID of the Project the Cockpit is associated with.
30
+ """
31
+ pulumi.set(__self__, "login", login)
32
+ pulumi.set(__self__, "role", role)
33
+ if project_id is not None:
34
+ pulumi.set(__self__, "project_id", project_id)
35
+
36
+ @property
37
+ @pulumi.getter
38
+ def login(self) -> pulumi.Input[str]:
39
+ """
40
+ The username of the Grafana user. The `admin` user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.
41
+ """
42
+ return pulumi.get(self, "login")
43
+
44
+ @login.setter
45
+ def login(self, value: pulumi.Input[str]):
46
+ pulumi.set(self, "login", value)
47
+
48
+ @property
49
+ @pulumi.getter
50
+ def role(self) -> pulumi.Input[str]:
51
+ """
52
+ The role assigned to the Grafana user. Must be `editor` or `viewer`.
53
+ """
54
+ return pulumi.get(self, "role")
55
+
56
+ @role.setter
57
+ def role(self, value: pulumi.Input[str]):
58
+ pulumi.set(self, "role", value)
59
+
60
+ @property
61
+ @pulumi.getter(name="projectId")
62
+ def project_id(self) -> Optional[pulumi.Input[str]]:
63
+ """
64
+ ) The ID of the Project the Cockpit is associated with.
65
+ """
66
+ return pulumi.get(self, "project_id")
67
+
68
+ @project_id.setter
69
+ def project_id(self, value: Optional[pulumi.Input[str]]):
70
+ pulumi.set(self, "project_id", value)
71
+
72
+
73
+ @pulumi.input_type
74
+ class _CockpitGrafanaUserState:
75
+ def __init__(__self__, *,
76
+ grafana_url: Optional[pulumi.Input[str]] = None,
77
+ login: Optional[pulumi.Input[str]] = None,
78
+ password: Optional[pulumi.Input[str]] = None,
79
+ project_id: Optional[pulumi.Input[str]] = None,
80
+ role: Optional[pulumi.Input[str]] = None):
81
+ """
82
+ Input properties used for looking up and filtering CockpitGrafanaUser resources.
83
+ :param pulumi.Input[str] grafana_url: URL for Grafana.
84
+ :param pulumi.Input[str] login: The username of the Grafana user. The `admin` user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.
85
+ :param pulumi.Input[str] password: The password of the Grafana user.
86
+ :param pulumi.Input[str] project_id: ) The ID of the Project the Cockpit is associated with.
87
+ :param pulumi.Input[str] role: The role assigned to the Grafana user. Must be `editor` or `viewer`.
88
+ """
89
+ if grafana_url is not None:
90
+ pulumi.set(__self__, "grafana_url", grafana_url)
91
+ if login is not None:
92
+ pulumi.set(__self__, "login", login)
93
+ if password is not None:
94
+ pulumi.set(__self__, "password", password)
95
+ if project_id is not None:
96
+ pulumi.set(__self__, "project_id", project_id)
97
+ if role is not None:
98
+ pulumi.set(__self__, "role", role)
99
+
100
+ @property
101
+ @pulumi.getter(name="grafanaUrl")
102
+ def grafana_url(self) -> Optional[pulumi.Input[str]]:
103
+ """
104
+ URL for Grafana.
105
+ """
106
+ return pulumi.get(self, "grafana_url")
107
+
108
+ @grafana_url.setter
109
+ def grafana_url(self, value: Optional[pulumi.Input[str]]):
110
+ pulumi.set(self, "grafana_url", value)
111
+
112
+ @property
113
+ @pulumi.getter
114
+ def login(self) -> Optional[pulumi.Input[str]]:
115
+ """
116
+ The username of the Grafana user. The `admin` user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.
117
+ """
118
+ return pulumi.get(self, "login")
119
+
120
+ @login.setter
121
+ def login(self, value: Optional[pulumi.Input[str]]):
122
+ pulumi.set(self, "login", value)
123
+
124
+ @property
125
+ @pulumi.getter
126
+ def password(self) -> Optional[pulumi.Input[str]]:
127
+ """
128
+ The password of the Grafana user.
129
+ """
130
+ return pulumi.get(self, "password")
131
+
132
+ @password.setter
133
+ def password(self, value: Optional[pulumi.Input[str]]):
134
+ pulumi.set(self, "password", value)
135
+
136
+ @property
137
+ @pulumi.getter(name="projectId")
138
+ def project_id(self) -> Optional[pulumi.Input[str]]:
139
+ """
140
+ ) The ID of the Project the Cockpit is associated with.
141
+ """
142
+ return pulumi.get(self, "project_id")
143
+
144
+ @project_id.setter
145
+ def project_id(self, value: Optional[pulumi.Input[str]]):
146
+ pulumi.set(self, "project_id", value)
147
+
148
+ @property
149
+ @pulumi.getter
150
+ def role(self) -> Optional[pulumi.Input[str]]:
151
+ """
152
+ The role assigned to the Grafana user. Must be `editor` or `viewer`.
153
+ """
154
+ return pulumi.get(self, "role")
155
+
156
+ @role.setter
157
+ def role(self, value: Optional[pulumi.Input[str]]):
158
+ pulumi.set(self, "role", value)
159
+
160
+
161
+ class CockpitGrafanaUser(pulumi.CustomResource):
162
+ @overload
163
+ def __init__(__self__,
164
+ resource_name: str,
165
+ opts: Optional[pulumi.ResourceOptions] = None,
166
+ login: Optional[pulumi.Input[str]] = None,
167
+ project_id: Optional[pulumi.Input[str]] = None,
168
+ role: Optional[pulumi.Input[str]] = None,
169
+ __props__=None):
170
+ """
171
+ The `CockpitGrafanaUser` resource allows you to create and manage [Grafana users](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#grafana-users) in Scaleway Cockpit.
172
+
173
+ Refer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.
174
+
175
+ ## Example Usage
176
+
177
+ ### Create a Grafana user
178
+
179
+ The following command allows you to create a Grafana user within a specific Scaleway Project.
180
+
181
+ ```python
182
+ import pulumi
183
+ import pulumiverse_scaleway as scaleway
184
+
185
+ project = scaleway.AccountProject("project", name="test project grafana user")
186
+ main = scaleway.CockpitGrafanaUser("main",
187
+ project_id=project.id,
188
+ login="my-awesome-user",
189
+ role="editor")
190
+ ```
191
+
192
+ ## Import
193
+
194
+ This section explains how to import Grafana users using the ID of the Project associated with Cockpit, and the Grafana user ID in the `{project_id}/{grafana_user_id}` format.
195
+
196
+ bash
197
+
198
+ ```sh
199
+ $ pulumi import scaleway:index/cockpitGrafanaUser:CockpitGrafanaUser main 11111111-1111-1111-1111-111111111111/2
200
+ ```
201
+
202
+ :param str resource_name: The name of the resource.
203
+ :param pulumi.ResourceOptions opts: Options for the resource.
204
+ :param pulumi.Input[str] login: The username of the Grafana user. The `admin` user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.
205
+ :param pulumi.Input[str] project_id: ) The ID of the Project the Cockpit is associated with.
206
+ :param pulumi.Input[str] role: The role assigned to the Grafana user. Must be `editor` or `viewer`.
207
+ """
208
+ ...
209
+ @overload
210
+ def __init__(__self__,
211
+ resource_name: str,
212
+ args: CockpitGrafanaUserArgs,
213
+ opts: Optional[pulumi.ResourceOptions] = None):
214
+ """
215
+ The `CockpitGrafanaUser` resource allows you to create and manage [Grafana users](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#grafana-users) in Scaleway Cockpit.
216
+
217
+ Refer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.
218
+
219
+ ## Example Usage
220
+
221
+ ### Create a Grafana user
222
+
223
+ The following command allows you to create a Grafana user within a specific Scaleway Project.
224
+
225
+ ```python
226
+ import pulumi
227
+ import pulumiverse_scaleway as scaleway
228
+
229
+ project = scaleway.AccountProject("project", name="test project grafana user")
230
+ main = scaleway.CockpitGrafanaUser("main",
231
+ project_id=project.id,
232
+ login="my-awesome-user",
233
+ role="editor")
234
+ ```
235
+
236
+ ## Import
237
+
238
+ This section explains how to import Grafana users using the ID of the Project associated with Cockpit, and the Grafana user ID in the `{project_id}/{grafana_user_id}` format.
239
+
240
+ bash
241
+
242
+ ```sh
243
+ $ pulumi import scaleway:index/cockpitGrafanaUser:CockpitGrafanaUser main 11111111-1111-1111-1111-111111111111/2
244
+ ```
245
+
246
+ :param str resource_name: The name of the resource.
247
+ :param CockpitGrafanaUserArgs args: The arguments to use to populate this resource's properties.
248
+ :param pulumi.ResourceOptions opts: Options for the resource.
249
+ """
250
+ ...
251
+ def __init__(__self__, resource_name: str, *args, **kwargs):
252
+ resource_args, opts = _utilities.get_resource_args_opts(CockpitGrafanaUserArgs, pulumi.ResourceOptions, *args, **kwargs)
253
+ if resource_args is not None:
254
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
255
+ else:
256
+ __self__._internal_init(resource_name, *args, **kwargs)
257
+
258
+ def _internal_init(__self__,
259
+ resource_name: str,
260
+ opts: Optional[pulumi.ResourceOptions] = None,
261
+ login: Optional[pulumi.Input[str]] = None,
262
+ project_id: Optional[pulumi.Input[str]] = None,
263
+ role: Optional[pulumi.Input[str]] = None,
264
+ __props__=None):
265
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
266
+ if not isinstance(opts, pulumi.ResourceOptions):
267
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
268
+ if opts.id is None:
269
+ if __props__ is not None:
270
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
271
+ __props__ = CockpitGrafanaUserArgs.__new__(CockpitGrafanaUserArgs)
272
+
273
+ if login is None and not opts.urn:
274
+ raise TypeError("Missing required property 'login'")
275
+ __props__.__dict__["login"] = login
276
+ __props__.__dict__["project_id"] = project_id
277
+ if role is None and not opts.urn:
278
+ raise TypeError("Missing required property 'role'")
279
+ __props__.__dict__["role"] = role
280
+ __props__.__dict__["grafana_url"] = None
281
+ __props__.__dict__["password"] = None
282
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password"])
283
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
284
+ super(CockpitGrafanaUser, __self__).__init__(
285
+ 'scaleway:index/cockpitGrafanaUser:CockpitGrafanaUser',
286
+ resource_name,
287
+ __props__,
288
+ opts)
289
+
290
+ @staticmethod
291
+ def get(resource_name: str,
292
+ id: pulumi.Input[str],
293
+ opts: Optional[pulumi.ResourceOptions] = None,
294
+ grafana_url: Optional[pulumi.Input[str]] = None,
295
+ login: Optional[pulumi.Input[str]] = None,
296
+ password: Optional[pulumi.Input[str]] = None,
297
+ project_id: Optional[pulumi.Input[str]] = None,
298
+ role: Optional[pulumi.Input[str]] = None) -> 'CockpitGrafanaUser':
299
+ """
300
+ Get an existing CockpitGrafanaUser resource's state with the given name, id, and optional extra
301
+ properties used to qualify the lookup.
302
+
303
+ :param str resource_name: The unique name of the resulting resource.
304
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
305
+ :param pulumi.ResourceOptions opts: Options for the resource.
306
+ :param pulumi.Input[str] grafana_url: URL for Grafana.
307
+ :param pulumi.Input[str] login: The username of the Grafana user. The `admin` user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.
308
+ :param pulumi.Input[str] password: The password of the Grafana user.
309
+ :param pulumi.Input[str] project_id: ) The ID of the Project the Cockpit is associated with.
310
+ :param pulumi.Input[str] role: The role assigned to the Grafana user. Must be `editor` or `viewer`.
311
+ """
312
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
313
+
314
+ __props__ = _CockpitGrafanaUserState.__new__(_CockpitGrafanaUserState)
315
+
316
+ __props__.__dict__["grafana_url"] = grafana_url
317
+ __props__.__dict__["login"] = login
318
+ __props__.__dict__["password"] = password
319
+ __props__.__dict__["project_id"] = project_id
320
+ __props__.__dict__["role"] = role
321
+ return CockpitGrafanaUser(resource_name, opts=opts, __props__=__props__)
322
+
323
+ @property
324
+ @pulumi.getter(name="grafanaUrl")
325
+ def grafana_url(self) -> pulumi.Output[str]:
326
+ """
327
+ URL for Grafana.
328
+ """
329
+ return pulumi.get(self, "grafana_url")
330
+
331
+ @property
332
+ @pulumi.getter
333
+ def login(self) -> pulumi.Output[str]:
334
+ """
335
+ The username of the Grafana user. The `admin` user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.
336
+ """
337
+ return pulumi.get(self, "login")
338
+
339
+ @property
340
+ @pulumi.getter
341
+ def password(self) -> pulumi.Output[str]:
342
+ """
343
+ The password of the Grafana user.
344
+ """
345
+ return pulumi.get(self, "password")
346
+
347
+ @property
348
+ @pulumi.getter(name="projectId")
349
+ def project_id(self) -> pulumi.Output[str]:
350
+ """
351
+ ) The ID of the Project the Cockpit is associated with.
352
+ """
353
+ return pulumi.get(self, "project_id")
354
+
355
+ @property
356
+ @pulumi.getter
357
+ def role(self) -> pulumi.Output[str]:
358
+ """
359
+ The role assigned to the Grafana user. Must be `editor` or `viewer`.
360
+ """
361
+ return pulumi.get(self, "role")
362
+