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,660 @@
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
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['IotRouteArgs', 'IotRoute']
20
+
21
+ @pulumi.input_type
22
+ class IotRouteArgs:
23
+ def __init__(__self__, *,
24
+ hub_id: pulumi.Input[str],
25
+ topic: pulumi.Input[str],
26
+ database: Optional[pulumi.Input['IotRouteDatabaseArgs']] = None,
27
+ name: Optional[pulumi.Input[str]] = None,
28
+ region: Optional[pulumi.Input[str]] = None,
29
+ rest: Optional[pulumi.Input['IotRouteRestArgs']] = None,
30
+ s3: Optional[pulumi.Input['IotRouteS3Args']] = None):
31
+ """
32
+ The set of arguments for constructing a IotRoute resource.
33
+ :param pulumi.Input[str] hub_id: The hub ID to which the Route will be attached to.
34
+ :param pulumi.Input[str] topic: The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).
35
+ :param pulumi.Input['IotRouteDatabaseArgs'] database: Configuration block for the database routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Database-Route) for a better understanding of the parameters.
36
+ :param pulumi.Input[str] name: The name of the IoT Route you want to create (e.g. `my-route`).
37
+ :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the Route is attached to.
38
+ :param pulumi.Input['IotRouteRestArgs'] rest: Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-REST-Route) for a better understanding of the parameters.
39
+ :param pulumi.Input['IotRouteS3Args'] s3: Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Scaleway-Object-Storage-Route) for a better understanding of the parameters.
40
+ """
41
+ pulumi.set(__self__, "hub_id", hub_id)
42
+ pulumi.set(__self__, "topic", topic)
43
+ if database is not None:
44
+ pulumi.set(__self__, "database", database)
45
+ if name is not None:
46
+ pulumi.set(__self__, "name", name)
47
+ if region is not None:
48
+ pulumi.set(__self__, "region", region)
49
+ if rest is not None:
50
+ pulumi.set(__self__, "rest", rest)
51
+ if s3 is not None:
52
+ pulumi.set(__self__, "s3", s3)
53
+
54
+ @property
55
+ @pulumi.getter(name="hubId")
56
+ def hub_id(self) -> pulumi.Input[str]:
57
+ """
58
+ The hub ID to which the Route will be attached to.
59
+ """
60
+ return pulumi.get(self, "hub_id")
61
+
62
+ @hub_id.setter
63
+ def hub_id(self, value: pulumi.Input[str]):
64
+ pulumi.set(self, "hub_id", value)
65
+
66
+ @property
67
+ @pulumi.getter
68
+ def topic(self) -> pulumi.Input[str]:
69
+ """
70
+ The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).
71
+ """
72
+ return pulumi.get(self, "topic")
73
+
74
+ @topic.setter
75
+ def topic(self, value: pulumi.Input[str]):
76
+ pulumi.set(self, "topic", value)
77
+
78
+ @property
79
+ @pulumi.getter
80
+ def database(self) -> Optional[pulumi.Input['IotRouteDatabaseArgs']]:
81
+ """
82
+ Configuration block for the database routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Database-Route) for a better understanding of the parameters.
83
+ """
84
+ return pulumi.get(self, "database")
85
+
86
+ @database.setter
87
+ def database(self, value: Optional[pulumi.Input['IotRouteDatabaseArgs']]):
88
+ pulumi.set(self, "database", value)
89
+
90
+ @property
91
+ @pulumi.getter
92
+ def name(self) -> Optional[pulumi.Input[str]]:
93
+ """
94
+ The name of the IoT Route you want to create (e.g. `my-route`).
95
+ """
96
+ return pulumi.get(self, "name")
97
+
98
+ @name.setter
99
+ def name(self, value: Optional[pulumi.Input[str]]):
100
+ pulumi.set(self, "name", value)
101
+
102
+ @property
103
+ @pulumi.getter
104
+ def region(self) -> Optional[pulumi.Input[str]]:
105
+ """
106
+ (Defaults to provider `region`) The region in which the Route is attached to.
107
+ """
108
+ return pulumi.get(self, "region")
109
+
110
+ @region.setter
111
+ def region(self, value: Optional[pulumi.Input[str]]):
112
+ pulumi.set(self, "region", value)
113
+
114
+ @property
115
+ @pulumi.getter
116
+ def rest(self) -> Optional[pulumi.Input['IotRouteRestArgs']]:
117
+ """
118
+ Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-REST-Route) for a better understanding of the parameters.
119
+ """
120
+ return pulumi.get(self, "rest")
121
+
122
+ @rest.setter
123
+ def rest(self, value: Optional[pulumi.Input['IotRouteRestArgs']]):
124
+ pulumi.set(self, "rest", value)
125
+
126
+ @property
127
+ @pulumi.getter
128
+ def s3(self) -> Optional[pulumi.Input['IotRouteS3Args']]:
129
+ """
130
+ Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Scaleway-Object-Storage-Route) for a better understanding of the parameters.
131
+ """
132
+ return pulumi.get(self, "s3")
133
+
134
+ @s3.setter
135
+ def s3(self, value: Optional[pulumi.Input['IotRouteS3Args']]):
136
+ pulumi.set(self, "s3", value)
137
+
138
+
139
+ @pulumi.input_type
140
+ class _IotRouteState:
141
+ def __init__(__self__, *,
142
+ created_at: Optional[pulumi.Input[str]] = None,
143
+ database: Optional[pulumi.Input['IotRouteDatabaseArgs']] = None,
144
+ hub_id: Optional[pulumi.Input[str]] = None,
145
+ name: Optional[pulumi.Input[str]] = None,
146
+ region: Optional[pulumi.Input[str]] = None,
147
+ rest: Optional[pulumi.Input['IotRouteRestArgs']] = None,
148
+ s3: Optional[pulumi.Input['IotRouteS3Args']] = None,
149
+ topic: Optional[pulumi.Input[str]] = None):
150
+ """
151
+ Input properties used for looking up and filtering IotRoute resources.
152
+ :param pulumi.Input[str] created_at: The date and time the Route was created.
153
+ :param pulumi.Input['IotRouteDatabaseArgs'] database: Configuration block for the database routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Database-Route) for a better understanding of the parameters.
154
+ :param pulumi.Input[str] hub_id: The hub ID to which the Route will be attached to.
155
+ :param pulumi.Input[str] name: The name of the IoT Route you want to create (e.g. `my-route`).
156
+ :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the Route is attached to.
157
+ :param pulumi.Input['IotRouteRestArgs'] rest: Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-REST-Route) for a better understanding of the parameters.
158
+ :param pulumi.Input['IotRouteS3Args'] s3: Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Scaleway-Object-Storage-Route) for a better understanding of the parameters.
159
+ :param pulumi.Input[str] topic: The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).
160
+ """
161
+ if created_at is not None:
162
+ pulumi.set(__self__, "created_at", created_at)
163
+ if database is not None:
164
+ pulumi.set(__self__, "database", database)
165
+ if hub_id is not None:
166
+ pulumi.set(__self__, "hub_id", hub_id)
167
+ if name is not None:
168
+ pulumi.set(__self__, "name", name)
169
+ if region is not None:
170
+ pulumi.set(__self__, "region", region)
171
+ if rest is not None:
172
+ pulumi.set(__self__, "rest", rest)
173
+ if s3 is not None:
174
+ pulumi.set(__self__, "s3", s3)
175
+ if topic is not None:
176
+ pulumi.set(__self__, "topic", topic)
177
+
178
+ @property
179
+ @pulumi.getter(name="createdAt")
180
+ def created_at(self) -> Optional[pulumi.Input[str]]:
181
+ """
182
+ The date and time the Route was created.
183
+ """
184
+ return pulumi.get(self, "created_at")
185
+
186
+ @created_at.setter
187
+ def created_at(self, value: Optional[pulumi.Input[str]]):
188
+ pulumi.set(self, "created_at", value)
189
+
190
+ @property
191
+ @pulumi.getter
192
+ def database(self) -> Optional[pulumi.Input['IotRouteDatabaseArgs']]:
193
+ """
194
+ Configuration block for the database routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Database-Route) for a better understanding of the parameters.
195
+ """
196
+ return pulumi.get(self, "database")
197
+
198
+ @database.setter
199
+ def database(self, value: Optional[pulumi.Input['IotRouteDatabaseArgs']]):
200
+ pulumi.set(self, "database", value)
201
+
202
+ @property
203
+ @pulumi.getter(name="hubId")
204
+ def hub_id(self) -> Optional[pulumi.Input[str]]:
205
+ """
206
+ The hub ID to which the Route will be attached to.
207
+ """
208
+ return pulumi.get(self, "hub_id")
209
+
210
+ @hub_id.setter
211
+ def hub_id(self, value: Optional[pulumi.Input[str]]):
212
+ pulumi.set(self, "hub_id", value)
213
+
214
+ @property
215
+ @pulumi.getter
216
+ def name(self) -> Optional[pulumi.Input[str]]:
217
+ """
218
+ The name of the IoT Route you want to create (e.g. `my-route`).
219
+ """
220
+ return pulumi.get(self, "name")
221
+
222
+ @name.setter
223
+ def name(self, value: Optional[pulumi.Input[str]]):
224
+ pulumi.set(self, "name", value)
225
+
226
+ @property
227
+ @pulumi.getter
228
+ def region(self) -> Optional[pulumi.Input[str]]:
229
+ """
230
+ (Defaults to provider `region`) The region in which the Route is attached to.
231
+ """
232
+ return pulumi.get(self, "region")
233
+
234
+ @region.setter
235
+ def region(self, value: Optional[pulumi.Input[str]]):
236
+ pulumi.set(self, "region", value)
237
+
238
+ @property
239
+ @pulumi.getter
240
+ def rest(self) -> Optional[pulumi.Input['IotRouteRestArgs']]:
241
+ """
242
+ Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-REST-Route) for a better understanding of the parameters.
243
+ """
244
+ return pulumi.get(self, "rest")
245
+
246
+ @rest.setter
247
+ def rest(self, value: Optional[pulumi.Input['IotRouteRestArgs']]):
248
+ pulumi.set(self, "rest", value)
249
+
250
+ @property
251
+ @pulumi.getter
252
+ def s3(self) -> Optional[pulumi.Input['IotRouteS3Args']]:
253
+ """
254
+ Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Scaleway-Object-Storage-Route) for a better understanding of the parameters.
255
+ """
256
+ return pulumi.get(self, "s3")
257
+
258
+ @s3.setter
259
+ def s3(self, value: Optional[pulumi.Input['IotRouteS3Args']]):
260
+ pulumi.set(self, "s3", value)
261
+
262
+ @property
263
+ @pulumi.getter
264
+ def topic(self) -> Optional[pulumi.Input[str]]:
265
+ """
266
+ The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).
267
+ """
268
+ return pulumi.get(self, "topic")
269
+
270
+ @topic.setter
271
+ def topic(self, value: Optional[pulumi.Input[str]]):
272
+ pulumi.set(self, "topic", value)
273
+
274
+
275
+ class IotRoute(pulumi.CustomResource):
276
+ @overload
277
+ def __init__(__self__,
278
+ resource_name: str,
279
+ opts: Optional[pulumi.ResourceOptions] = None,
280
+ database: Optional[pulumi.Input[Union['IotRouteDatabaseArgs', 'IotRouteDatabaseArgsDict']]] = None,
281
+ hub_id: Optional[pulumi.Input[str]] = None,
282
+ name: Optional[pulumi.Input[str]] = None,
283
+ region: Optional[pulumi.Input[str]] = None,
284
+ rest: Optional[pulumi.Input[Union['IotRouteRestArgs', 'IotRouteRestArgsDict']]] = None,
285
+ s3: Optional[pulumi.Input[Union['IotRouteS3Args', 'IotRouteS3ArgsDict']]] = None,
286
+ topic: Optional[pulumi.Input[str]] = None,
287
+ __props__=None):
288
+ """
289
+ ## Example Usage
290
+
291
+ ### Database Route
292
+
293
+ ```python
294
+ import pulumi
295
+ import pulumiverse_scaleway as scaleway
296
+
297
+ main_iot_hub = scaleway.IotHub("main",
298
+ name="main",
299
+ product_plan="plan_shared")
300
+ iot = scaleway.DatabaseInstance("iot",
301
+ name="iot",
302
+ node_type="db-dev-s",
303
+ engine="PostgreSQL-12",
304
+ user_name="root",
305
+ password="T3stP4ssw0rdD0N0tUs3!")
306
+ main = scaleway.IotRoute("main",
307
+ name="default",
308
+ hub_id=main_iot_hub.id,
309
+ topic="#",
310
+ database={
311
+ "query": \"\"\"INSERT INTO measurements(
312
+ \\x09push_time,
313
+ \\x09report_time,
314
+ \\x09station_id,
315
+ \\x09temperature,
316
+ \\x09humidity
317
+ ) VALUES (
318
+ \\x09NOW(),
319
+ \\x09TIMESTAMP 'epoch' + (($PAYLOAD::jsonb->'last_reported')::integer * INTERVAL '1 second'),
320
+ \\x09($PAYLOAD::jsonb->'station_id')::uuid,
321
+ \\x09($PAYLOAD::jsonb->'temperature')::decimal,
322
+ \\x09($PAYLOAD::jsonb->'humidity'):decimal:
323
+ );
324
+ \"\"\",
325
+ "host": iot.endpoint_ip,
326
+ "port": iot.endpoint_port,
327
+ "dbname": "rdb",
328
+ "username": iot.user_name,
329
+ "password": iot.password,
330
+ })
331
+ ```
332
+
333
+ ### S3 Route
334
+
335
+ ```python
336
+ import pulumi
337
+ import pulumiverse_scaleway as scaleway
338
+
339
+ main_iot_hub = scaleway.IotHub("main",
340
+ name="main",
341
+ product_plan="plan_shared")
342
+ main_object_bucket = scaleway.ObjectBucket("main",
343
+ region="fr-par",
344
+ name="my_awesome-bucket")
345
+ main = scaleway.IotRoute("main",
346
+ name="main",
347
+ hub_id=main_iot_hub.id,
348
+ topic="#",
349
+ s3={
350
+ "bucket_region": main_object_bucket.region,
351
+ "bucket_name": main_object_bucket.name,
352
+ "object_prefix": "foo",
353
+ "strategy": "per_topic",
354
+ })
355
+ ```
356
+
357
+ ### Rest Route
358
+
359
+ ```python
360
+ import pulumi
361
+ import pulumiverse_scaleway as scaleway
362
+
363
+ main_iot_hub = scaleway.IotHub("main",
364
+ name="main",
365
+ product_plan="plan_shared")
366
+ main = scaleway.IotRoute("main",
367
+ name="main",
368
+ hub_id=main_iot_hub.id,
369
+ topic="#",
370
+ rest={
371
+ "verb": "get",
372
+ "uri": "http://scaleway.com",
373
+ "headers": {
374
+ "X-awesome-header": "my-awesome-value",
375
+ },
376
+ })
377
+ ```
378
+
379
+ ## Import
380
+
381
+ IoT Routes can be imported using the `{region}/{id}`, e.g.
382
+
383
+ bash
384
+
385
+ ```sh
386
+ $ pulumi import scaleway:index/iotRoute:IotRoute route01 fr-par/11111111-1111-1111-1111-111111111111
387
+ ```
388
+
389
+ :param str resource_name: The name of the resource.
390
+ :param pulumi.ResourceOptions opts: Options for the resource.
391
+ :param pulumi.Input[Union['IotRouteDatabaseArgs', 'IotRouteDatabaseArgsDict']] database: Configuration block for the database routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Database-Route) for a better understanding of the parameters.
392
+ :param pulumi.Input[str] hub_id: The hub ID to which the Route will be attached to.
393
+ :param pulumi.Input[str] name: The name of the IoT Route you want to create (e.g. `my-route`).
394
+ :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the Route is attached to.
395
+ :param pulumi.Input[Union['IotRouteRestArgs', 'IotRouteRestArgsDict']] rest: Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-REST-Route) for a better understanding of the parameters.
396
+ :param pulumi.Input[Union['IotRouteS3Args', 'IotRouteS3ArgsDict']] s3: Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Scaleway-Object-Storage-Route) for a better understanding of the parameters.
397
+ :param pulumi.Input[str] topic: The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).
398
+ """
399
+ ...
400
+ @overload
401
+ def __init__(__self__,
402
+ resource_name: str,
403
+ args: IotRouteArgs,
404
+ opts: Optional[pulumi.ResourceOptions] = None):
405
+ """
406
+ ## Example Usage
407
+
408
+ ### Database Route
409
+
410
+ ```python
411
+ import pulumi
412
+ import pulumiverse_scaleway as scaleway
413
+
414
+ main_iot_hub = scaleway.IotHub("main",
415
+ name="main",
416
+ product_plan="plan_shared")
417
+ iot = scaleway.DatabaseInstance("iot",
418
+ name="iot",
419
+ node_type="db-dev-s",
420
+ engine="PostgreSQL-12",
421
+ user_name="root",
422
+ password="T3stP4ssw0rdD0N0tUs3!")
423
+ main = scaleway.IotRoute("main",
424
+ name="default",
425
+ hub_id=main_iot_hub.id,
426
+ topic="#",
427
+ database={
428
+ "query": \"\"\"INSERT INTO measurements(
429
+ \\x09push_time,
430
+ \\x09report_time,
431
+ \\x09station_id,
432
+ \\x09temperature,
433
+ \\x09humidity
434
+ ) VALUES (
435
+ \\x09NOW(),
436
+ \\x09TIMESTAMP 'epoch' + (($PAYLOAD::jsonb->'last_reported')::integer * INTERVAL '1 second'),
437
+ \\x09($PAYLOAD::jsonb->'station_id')::uuid,
438
+ \\x09($PAYLOAD::jsonb->'temperature')::decimal,
439
+ \\x09($PAYLOAD::jsonb->'humidity'):decimal:
440
+ );
441
+ \"\"\",
442
+ "host": iot.endpoint_ip,
443
+ "port": iot.endpoint_port,
444
+ "dbname": "rdb",
445
+ "username": iot.user_name,
446
+ "password": iot.password,
447
+ })
448
+ ```
449
+
450
+ ### S3 Route
451
+
452
+ ```python
453
+ import pulumi
454
+ import pulumiverse_scaleway as scaleway
455
+
456
+ main_iot_hub = scaleway.IotHub("main",
457
+ name="main",
458
+ product_plan="plan_shared")
459
+ main_object_bucket = scaleway.ObjectBucket("main",
460
+ region="fr-par",
461
+ name="my_awesome-bucket")
462
+ main = scaleway.IotRoute("main",
463
+ name="main",
464
+ hub_id=main_iot_hub.id,
465
+ topic="#",
466
+ s3={
467
+ "bucket_region": main_object_bucket.region,
468
+ "bucket_name": main_object_bucket.name,
469
+ "object_prefix": "foo",
470
+ "strategy": "per_topic",
471
+ })
472
+ ```
473
+
474
+ ### Rest Route
475
+
476
+ ```python
477
+ import pulumi
478
+ import pulumiverse_scaleway as scaleway
479
+
480
+ main_iot_hub = scaleway.IotHub("main",
481
+ name="main",
482
+ product_plan="plan_shared")
483
+ main = scaleway.IotRoute("main",
484
+ name="main",
485
+ hub_id=main_iot_hub.id,
486
+ topic="#",
487
+ rest={
488
+ "verb": "get",
489
+ "uri": "http://scaleway.com",
490
+ "headers": {
491
+ "X-awesome-header": "my-awesome-value",
492
+ },
493
+ })
494
+ ```
495
+
496
+ ## Import
497
+
498
+ IoT Routes can be imported using the `{region}/{id}`, e.g.
499
+
500
+ bash
501
+
502
+ ```sh
503
+ $ pulumi import scaleway:index/iotRoute:IotRoute route01 fr-par/11111111-1111-1111-1111-111111111111
504
+ ```
505
+
506
+ :param str resource_name: The name of the resource.
507
+ :param IotRouteArgs args: The arguments to use to populate this resource's properties.
508
+ :param pulumi.ResourceOptions opts: Options for the resource.
509
+ """
510
+ ...
511
+ def __init__(__self__, resource_name: str, *args, **kwargs):
512
+ resource_args, opts = _utilities.get_resource_args_opts(IotRouteArgs, pulumi.ResourceOptions, *args, **kwargs)
513
+ if resource_args is not None:
514
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
515
+ else:
516
+ __self__._internal_init(resource_name, *args, **kwargs)
517
+
518
+ def _internal_init(__self__,
519
+ resource_name: str,
520
+ opts: Optional[pulumi.ResourceOptions] = None,
521
+ database: Optional[pulumi.Input[Union['IotRouteDatabaseArgs', 'IotRouteDatabaseArgsDict']]] = None,
522
+ hub_id: Optional[pulumi.Input[str]] = None,
523
+ name: Optional[pulumi.Input[str]] = None,
524
+ region: Optional[pulumi.Input[str]] = None,
525
+ rest: Optional[pulumi.Input[Union['IotRouteRestArgs', 'IotRouteRestArgsDict']]] = None,
526
+ s3: Optional[pulumi.Input[Union['IotRouteS3Args', 'IotRouteS3ArgsDict']]] = None,
527
+ topic: Optional[pulumi.Input[str]] = None,
528
+ __props__=None):
529
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
530
+ if not isinstance(opts, pulumi.ResourceOptions):
531
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
532
+ if opts.id is None:
533
+ if __props__ is not None:
534
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
535
+ __props__ = IotRouteArgs.__new__(IotRouteArgs)
536
+
537
+ __props__.__dict__["database"] = database
538
+ if hub_id is None and not opts.urn:
539
+ raise TypeError("Missing required property 'hub_id'")
540
+ __props__.__dict__["hub_id"] = hub_id
541
+ __props__.__dict__["name"] = name
542
+ __props__.__dict__["region"] = region
543
+ __props__.__dict__["rest"] = rest
544
+ __props__.__dict__["s3"] = s3
545
+ if topic is None and not opts.urn:
546
+ raise TypeError("Missing required property 'topic'")
547
+ __props__.__dict__["topic"] = topic
548
+ __props__.__dict__["created_at"] = None
549
+ super(IotRoute, __self__).__init__(
550
+ 'scaleway:index/iotRoute:IotRoute',
551
+ resource_name,
552
+ __props__,
553
+ opts)
554
+
555
+ @staticmethod
556
+ def get(resource_name: str,
557
+ id: pulumi.Input[str],
558
+ opts: Optional[pulumi.ResourceOptions] = None,
559
+ created_at: Optional[pulumi.Input[str]] = None,
560
+ database: Optional[pulumi.Input[Union['IotRouteDatabaseArgs', 'IotRouteDatabaseArgsDict']]] = None,
561
+ hub_id: Optional[pulumi.Input[str]] = None,
562
+ name: Optional[pulumi.Input[str]] = None,
563
+ region: Optional[pulumi.Input[str]] = None,
564
+ rest: Optional[pulumi.Input[Union['IotRouteRestArgs', 'IotRouteRestArgsDict']]] = None,
565
+ s3: Optional[pulumi.Input[Union['IotRouteS3Args', 'IotRouteS3ArgsDict']]] = None,
566
+ topic: Optional[pulumi.Input[str]] = None) -> 'IotRoute':
567
+ """
568
+ Get an existing IotRoute resource's state with the given name, id, and optional extra
569
+ properties used to qualify the lookup.
570
+
571
+ :param str resource_name: The unique name of the resulting resource.
572
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
573
+ :param pulumi.ResourceOptions opts: Options for the resource.
574
+ :param pulumi.Input[str] created_at: The date and time the Route was created.
575
+ :param pulumi.Input[Union['IotRouteDatabaseArgs', 'IotRouteDatabaseArgsDict']] database: Configuration block for the database routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Database-Route) for a better understanding of the parameters.
576
+ :param pulumi.Input[str] hub_id: The hub ID to which the Route will be attached to.
577
+ :param pulumi.Input[str] name: The name of the IoT Route you want to create (e.g. `my-route`).
578
+ :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the Route is attached to.
579
+ :param pulumi.Input[Union['IotRouteRestArgs', 'IotRouteRestArgsDict']] rest: Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-REST-Route) for a better understanding of the parameters.
580
+ :param pulumi.Input[Union['IotRouteS3Args', 'IotRouteS3ArgsDict']] s3: Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Scaleway-Object-Storage-Route) for a better understanding of the parameters.
581
+ :param pulumi.Input[str] topic: The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).
582
+ """
583
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
584
+
585
+ __props__ = _IotRouteState.__new__(_IotRouteState)
586
+
587
+ __props__.__dict__["created_at"] = created_at
588
+ __props__.__dict__["database"] = database
589
+ __props__.__dict__["hub_id"] = hub_id
590
+ __props__.__dict__["name"] = name
591
+ __props__.__dict__["region"] = region
592
+ __props__.__dict__["rest"] = rest
593
+ __props__.__dict__["s3"] = s3
594
+ __props__.__dict__["topic"] = topic
595
+ return IotRoute(resource_name, opts=opts, __props__=__props__)
596
+
597
+ @property
598
+ @pulumi.getter(name="createdAt")
599
+ def created_at(self) -> pulumi.Output[str]:
600
+ """
601
+ The date and time the Route was created.
602
+ """
603
+ return pulumi.get(self, "created_at")
604
+
605
+ @property
606
+ @pulumi.getter
607
+ def database(self) -> pulumi.Output[Optional['outputs.IotRouteDatabase']]:
608
+ """
609
+ Configuration block for the database routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Database-Route) for a better understanding of the parameters.
610
+ """
611
+ return pulumi.get(self, "database")
612
+
613
+ @property
614
+ @pulumi.getter(name="hubId")
615
+ def hub_id(self) -> pulumi.Output[str]:
616
+ """
617
+ The hub ID to which the Route will be attached to.
618
+ """
619
+ return pulumi.get(self, "hub_id")
620
+
621
+ @property
622
+ @pulumi.getter
623
+ def name(self) -> pulumi.Output[str]:
624
+ """
625
+ The name of the IoT Route you want to create (e.g. `my-route`).
626
+ """
627
+ return pulumi.get(self, "name")
628
+
629
+ @property
630
+ @pulumi.getter
631
+ def region(self) -> pulumi.Output[str]:
632
+ """
633
+ (Defaults to provider `region`) The region in which the Route is attached to.
634
+ """
635
+ return pulumi.get(self, "region")
636
+
637
+ @property
638
+ @pulumi.getter
639
+ def rest(self) -> pulumi.Output[Optional['outputs.IotRouteRest']]:
640
+ """
641
+ Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-REST-Route) for a better understanding of the parameters.
642
+ """
643
+ return pulumi.get(self, "rest")
644
+
645
+ @property
646
+ @pulumi.getter
647
+ def s3(self) -> pulumi.Output[Optional['outputs.IotRouteS3']]:
648
+ """
649
+ Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/scaleway-iothub-route/#-Scaleway-Object-Storage-Route) for a better understanding of the parameters.
650
+ """
651
+ return pulumi.get(self, "s3")
652
+
653
+ @property
654
+ @pulumi.getter
655
+ def topic(self) -> pulumi.Output[str]:
656
+ """
657
+ The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).
658
+ """
659
+ return pulumi.get(self, "topic")
660
+