pulumiverse-scaleway 1.16.0__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 +1073 -0
  2. pulumiverse_scaleway/_inputs.py +8665 -0
  3. pulumiverse_scaleway/_utilities.py +327 -0
  4. pulumiverse_scaleway/account_project.py +316 -0
  5. pulumiverse_scaleway/account_ssh_key.py +450 -0
  6. pulumiverse_scaleway/apple_silicon_server.py +564 -0
  7. pulumiverse_scaleway/baremetal_server.py +1390 -0
  8. pulumiverse_scaleway/block_snapshot.py +391 -0
  9. pulumiverse_scaleway/block_volume.py +521 -0
  10. pulumiverse_scaleway/cockpit.py +299 -0
  11. pulumiverse_scaleway/cockpit_alert_manager.py +345 -0
  12. pulumiverse_scaleway/cockpit_grafana_user.py +326 -0
  13. pulumiverse_scaleway/cockpit_source.py +481 -0
  14. pulumiverse_scaleway/cockpit_token.py +461 -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 +1387 -0
  19. pulumiverse_scaleway/container_cron.py +493 -0
  20. pulumiverse_scaleway/container_domain.py +400 -0
  21. pulumiverse_scaleway/container_namespace.py +589 -0
  22. pulumiverse_scaleway/container_token.py +454 -0
  23. pulumiverse_scaleway/container_trigger.py +478 -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 +1636 -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/documentdb_database.py +450 -0
  32. pulumiverse_scaleway/documentdb_instance.py +812 -0
  33. pulumiverse_scaleway/documentdb_private_network_endpoint.py +352 -0
  34. pulumiverse_scaleway/documentdb_privilege.py +402 -0
  35. pulumiverse_scaleway/documentdb_read_replica.py +405 -0
  36. pulumiverse_scaleway/documentdb_user.py +442 -0
  37. pulumiverse_scaleway/domain_record.py +1074 -0
  38. pulumiverse_scaleway/domain_zone.py +458 -0
  39. pulumiverse_scaleway/flexible_ip.py +702 -0
  40. pulumiverse_scaleway/flexible_ip_mac_address.py +510 -0
  41. pulumiverse_scaleway/function.py +1145 -0
  42. pulumiverse_scaleway/function_cron.py +480 -0
  43. pulumiverse_scaleway/function_domain.py +361 -0
  44. pulumiverse_scaleway/function_namespace.py +533 -0
  45. pulumiverse_scaleway/function_token.py +462 -0
  46. pulumiverse_scaleway/function_trigger.py +478 -0
  47. pulumiverse_scaleway/get_account_project.py +164 -0
  48. pulumiverse_scaleway/get_account_ssh_key.py +201 -0
  49. pulumiverse_scaleway/get_availability_zones.py +131 -0
  50. pulumiverse_scaleway/get_baremetal_offer.py +245 -0
  51. pulumiverse_scaleway/get_baremetal_option.py +168 -0
  52. pulumiverse_scaleway/get_baremetal_os.py +174 -0
  53. pulumiverse_scaleway/get_baremetal_server.py +411 -0
  54. pulumiverse_scaleway/get_billing_consumptions.py +134 -0
  55. pulumiverse_scaleway/get_billing_invoices.py +154 -0
  56. pulumiverse_scaleway/get_block_snapshot.py +170 -0
  57. pulumiverse_scaleway/get_block_volume.py +186 -0
  58. pulumiverse_scaleway/get_cockpit.py +179 -0
  59. pulumiverse_scaleway/get_cockpit_plan.py +113 -0
  60. pulumiverse_scaleway/get_config.py +180 -0
  61. pulumiverse_scaleway/get_container.py +502 -0
  62. pulumiverse_scaleway/get_container_namespace.py +262 -0
  63. pulumiverse_scaleway/get_database.py +187 -0
  64. pulumiverse_scaleway/get_database_acl.py +143 -0
  65. pulumiverse_scaleway/get_database_backup.py +253 -0
  66. pulumiverse_scaleway/get_database_instance.py +404 -0
  67. pulumiverse_scaleway/get_database_privilege.py +181 -0
  68. pulumiverse_scaleway/get_documentdb_database.py +198 -0
  69. pulumiverse_scaleway/get_documentdb_instance.py +245 -0
  70. pulumiverse_scaleway/get_documentdb_load_balancer_endpoint.py +198 -0
  71. pulumiverse_scaleway/get_domain_record.py +334 -0
  72. pulumiverse_scaleway/get_domain_zone.py +225 -0
  73. pulumiverse_scaleway/get_flexible_ip.py +247 -0
  74. pulumiverse_scaleway/get_flexible_ips.py +240 -0
  75. pulumiverse_scaleway/get_function.py +357 -0
  76. pulumiverse_scaleway/get_function_namespace.py +227 -0
  77. pulumiverse_scaleway/get_iam_api_key.py +210 -0
  78. pulumiverse_scaleway/get_iam_application.py +210 -0
  79. pulumiverse_scaleway/get_iam_group.py +236 -0
  80. pulumiverse_scaleway/get_iam_ssh_key.py +212 -0
  81. pulumiverse_scaleway/get_iam_user.py +157 -0
  82. pulumiverse_scaleway/get_instance_image.py +305 -0
  83. pulumiverse_scaleway/get_instance_ip.py +204 -0
  84. pulumiverse_scaleway/get_instance_placement_group.py +212 -0
  85. pulumiverse_scaleway/get_instance_private_nic.py +215 -0
  86. pulumiverse_scaleway/get_instance_security_group.py +268 -0
  87. pulumiverse_scaleway/get_instance_server.py +502 -0
  88. pulumiverse_scaleway/get_instance_servers.py +187 -0
  89. pulumiverse_scaleway/get_instance_snapshot.py +248 -0
  90. pulumiverse_scaleway/get_instance_volume.py +215 -0
  91. pulumiverse_scaleway/get_iot_device.py +257 -0
  92. pulumiverse_scaleway/get_iot_hub.py +322 -0
  93. pulumiverse_scaleway/get_ipam_ip.py +419 -0
  94. pulumiverse_scaleway/get_ipam_ips.py +358 -0
  95. pulumiverse_scaleway/get_k8s_version.py +196 -0
  96. pulumiverse_scaleway/get_kubernetes_cluster.py +417 -0
  97. pulumiverse_scaleway/get_kubernetes_node_pool.py +436 -0
  98. pulumiverse_scaleway/get_lb_acls.py +198 -0
  99. pulumiverse_scaleway/get_lb_backend.py +486 -0
  100. pulumiverse_scaleway/get_lb_backends.py +196 -0
  101. pulumiverse_scaleway/get_lb_frontend.py +274 -0
  102. pulumiverse_scaleway/get_lb_frontends.py +196 -0
  103. pulumiverse_scaleway/get_lb_ips.py +198 -0
  104. pulumiverse_scaleway/get_lb_route.py +217 -0
  105. pulumiverse_scaleway/get_lb_routes.py +179 -0
  106. pulumiverse_scaleway/get_lbs.py +187 -0
  107. pulumiverse_scaleway/get_loadbalancer.py +339 -0
  108. pulumiverse_scaleway/get_loadbalancer_certificate.py +230 -0
  109. pulumiverse_scaleway/get_loadbalancer_ip.py +222 -0
  110. pulumiverse_scaleway/get_marketplace_image.py +147 -0
  111. pulumiverse_scaleway/get_mnq_sqs.py +150 -0
  112. pulumiverse_scaleway/get_object_bucket.py +278 -0
  113. pulumiverse_scaleway/get_object_bucket_policy.py +157 -0
  114. pulumiverse_scaleway/get_redis_cluster.py +347 -0
  115. pulumiverse_scaleway/get_registry_image.py +239 -0
  116. pulumiverse_scaleway/get_registry_namespace.py +199 -0
  117. pulumiverse_scaleway/get_secret.py +290 -0
  118. pulumiverse_scaleway/get_secret_version.py +303 -0
  119. pulumiverse_scaleway/get_tem_domain.py +367 -0
  120. pulumiverse_scaleway/get_vpc.py +246 -0
  121. pulumiverse_scaleway/get_vpc_gateway_network.py +287 -0
  122. pulumiverse_scaleway/get_vpc_private_network.py +282 -0
  123. pulumiverse_scaleway/get_vpc_public_gateway.py +304 -0
  124. pulumiverse_scaleway/get_vpc_public_gateway_dhcp.py +305 -0
  125. pulumiverse_scaleway/get_vpc_public_gateway_dhcp_reservation.py +382 -0
  126. pulumiverse_scaleway/get_vpc_public_gateway_ip.py +199 -0
  127. pulumiverse_scaleway/get_vpc_public_pat_rule.py +313 -0
  128. pulumiverse_scaleway/get_vpc_routes.py +208 -0
  129. pulumiverse_scaleway/get_vpcs.py +174 -0
  130. pulumiverse_scaleway/get_web_host_offer.py +192 -0
  131. pulumiverse_scaleway/get_webhosting.py +332 -0
  132. pulumiverse_scaleway/iam_api_key.py +620 -0
  133. pulumiverse_scaleway/iam_application.py +417 -0
  134. pulumiverse_scaleway/iam_group.py +566 -0
  135. pulumiverse_scaleway/iam_group_membership.py +323 -0
  136. pulumiverse_scaleway/iam_policy.py +727 -0
  137. pulumiverse_scaleway/iam_ssh_key.py +455 -0
  138. pulumiverse_scaleway/iam_user.py +466 -0
  139. pulumiverse_scaleway/instance_image.py +750 -0
  140. pulumiverse_scaleway/instance_ip.py +483 -0
  141. pulumiverse_scaleway/instance_ip_reverse_dns.py +308 -0
  142. pulumiverse_scaleway/instance_placement_group.py +479 -0
  143. pulumiverse_scaleway/instance_private_nic.py +454 -0
  144. pulumiverse_scaleway/instance_security_group.py +720 -0
  145. pulumiverse_scaleway/instance_security_group_rules.py +439 -0
  146. pulumiverse_scaleway/instance_server.py +1907 -0
  147. pulumiverse_scaleway/instance_snapshot.py +669 -0
  148. pulumiverse_scaleway/instance_user_data.py +435 -0
  149. pulumiverse_scaleway/instance_volume.py +535 -0
  150. pulumiverse_scaleway/iot_device.py +750 -0
  151. pulumiverse_scaleway/iot_hub.py +896 -0
  152. pulumiverse_scaleway/iot_network.py +425 -0
  153. pulumiverse_scaleway/iot_route.py +660 -0
  154. pulumiverse_scaleway/ipam_ip.py +666 -0
  155. pulumiverse_scaleway/ipam_ip_reverse_dns.py +318 -0
  156. pulumiverse_scaleway/job_definition.py +692 -0
  157. pulumiverse_scaleway/kubernetes_cluster.py +1538 -0
  158. pulumiverse_scaleway/kubernetes_node_pool.py +1255 -0
  159. pulumiverse_scaleway/loadbalancer.py +1095 -0
  160. pulumiverse_scaleway/loadbalancer_acl.py +520 -0
  161. pulumiverse_scaleway/loadbalancer_backend.py +1588 -0
  162. pulumiverse_scaleway/loadbalancer_certificate.py +460 -0
  163. pulumiverse_scaleway/loadbalancer_frontend.py +829 -0
  164. pulumiverse_scaleway/loadbalancer_ip.py +514 -0
  165. pulumiverse_scaleway/loadbalancer_route.py +523 -0
  166. pulumiverse_scaleway/mnq_nats_account.py +334 -0
  167. pulumiverse_scaleway/mnq_nats_credentials.py +328 -0
  168. pulumiverse_scaleway/mnq_sns.py +306 -0
  169. pulumiverse_scaleway/mnq_sns_credentials.py +413 -0
  170. pulumiverse_scaleway/mnq_sns_topic.py +659 -0
  171. pulumiverse_scaleway/mnq_sns_topic_subscription.py +699 -0
  172. pulumiverse_scaleway/mnq_sqs.py +304 -0
  173. pulumiverse_scaleway/mnq_sqs_credentials.py +413 -0
  174. pulumiverse_scaleway/mnq_sqs_queue.py +800 -0
  175. pulumiverse_scaleway/object_bucket.py +888 -0
  176. pulumiverse_scaleway/object_bucket_acl.py +592 -0
  177. pulumiverse_scaleway/object_bucket_lock_configuration.py +393 -0
  178. pulumiverse_scaleway/object_bucket_policy.py +671 -0
  179. pulumiverse_scaleway/object_bucket_website_configuration.py +532 -0
  180. pulumiverse_scaleway/object_item.py +711 -0
  181. pulumiverse_scaleway/outputs.py +11663 -0
  182. pulumiverse_scaleway/provider.py +327 -0
  183. pulumiverse_scaleway/pulumi-plugin.json +6 -0
  184. pulumiverse_scaleway/py.typed +0 -0
  185. pulumiverse_scaleway/redis_cluster.py +1166 -0
  186. pulumiverse_scaleway/registry_namespace.py +458 -0
  187. pulumiverse_scaleway/sdb_database.py +428 -0
  188. pulumiverse_scaleway/secret.py +560 -0
  189. pulumiverse_scaleway/secret_version.py +482 -0
  190. pulumiverse_scaleway/tem_domain.py +950 -0
  191. pulumiverse_scaleway/tem_domain_validation.py +303 -0
  192. pulumiverse_scaleway/vpc.py +536 -0
  193. pulumiverse_scaleway/vpc_gateway_network.py +866 -0
  194. pulumiverse_scaleway/vpc_private_network.py +734 -0
  195. pulumiverse_scaleway/vpc_public_gateway.py +789 -0
  196. pulumiverse_scaleway/vpc_public_gateway_dhcp.py +933 -0
  197. pulumiverse_scaleway/vpc_public_gateway_dhcp_reservation.py +514 -0
  198. pulumiverse_scaleway/vpc_public_gateway_ip.py +457 -0
  199. pulumiverse_scaleway/vpc_public_gateway_ip_reverse_dns.py +306 -0
  200. pulumiverse_scaleway/vpc_public_gateway_pat_rule.py +591 -0
  201. pulumiverse_scaleway/webhosting.py +805 -0
  202. pulumiverse_scaleway-1.16.0.dist-info/METADATA +69 -0
  203. pulumiverse_scaleway-1.16.0.dist-info/RECORD +205 -0
  204. pulumiverse_scaleway-1.16.0.dist-info/WHEEL +5 -0
  205. pulumiverse_scaleway-1.16.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,727 @@
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__ = ['IamPolicyArgs', 'IamPolicy']
20
+
21
+ @pulumi.input_type
22
+ class IamPolicyArgs:
23
+ def __init__(__self__, *,
24
+ rules: pulumi.Input[Sequence[pulumi.Input['IamPolicyRuleArgs']]],
25
+ application_id: Optional[pulumi.Input[str]] = None,
26
+ description: Optional[pulumi.Input[str]] = None,
27
+ group_id: Optional[pulumi.Input[str]] = None,
28
+ name: Optional[pulumi.Input[str]] = None,
29
+ no_principal: Optional[pulumi.Input[bool]] = None,
30
+ organization_id: Optional[pulumi.Input[str]] = None,
31
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
32
+ user_id: Optional[pulumi.Input[str]] = None):
33
+ """
34
+ The set of arguments for constructing a IamPolicy resource.
35
+ :param pulumi.Input[Sequence[pulumi.Input['IamPolicyRuleArgs']]] rules: List of rules in the policy.
36
+ :param pulumi.Input[str] application_id: ID of the application the policy will be linked to
37
+ :param pulumi.Input[str] description: The description of the IAM policy.
38
+ :param pulumi.Input[str] group_id: ID of the group the policy will be linked to
39
+ :param pulumi.Input[str] name: The name of the IAM policy.
40
+ :param pulumi.Input[bool] no_principal: If the policy doesn't apply to a principal.
41
+
42
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
43
+ :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the policy is associated with.
44
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the IAM policy.
45
+ :param pulumi.Input[str] user_id: ID of the user the policy will be linked to
46
+ """
47
+ pulumi.set(__self__, "rules", rules)
48
+ if application_id is not None:
49
+ pulumi.set(__self__, "application_id", application_id)
50
+ if description is not None:
51
+ pulumi.set(__self__, "description", description)
52
+ if group_id is not None:
53
+ pulumi.set(__self__, "group_id", group_id)
54
+ if name is not None:
55
+ pulumi.set(__self__, "name", name)
56
+ if no_principal is not None:
57
+ pulumi.set(__self__, "no_principal", no_principal)
58
+ if organization_id is not None:
59
+ pulumi.set(__self__, "organization_id", organization_id)
60
+ if tags is not None:
61
+ pulumi.set(__self__, "tags", tags)
62
+ if user_id is not None:
63
+ pulumi.set(__self__, "user_id", user_id)
64
+
65
+ @property
66
+ @pulumi.getter
67
+ def rules(self) -> pulumi.Input[Sequence[pulumi.Input['IamPolicyRuleArgs']]]:
68
+ """
69
+ List of rules in the policy.
70
+ """
71
+ return pulumi.get(self, "rules")
72
+
73
+ @rules.setter
74
+ def rules(self, value: pulumi.Input[Sequence[pulumi.Input['IamPolicyRuleArgs']]]):
75
+ pulumi.set(self, "rules", value)
76
+
77
+ @property
78
+ @pulumi.getter(name="applicationId")
79
+ def application_id(self) -> Optional[pulumi.Input[str]]:
80
+ """
81
+ ID of the application the policy will be linked to
82
+ """
83
+ return pulumi.get(self, "application_id")
84
+
85
+ @application_id.setter
86
+ def application_id(self, value: Optional[pulumi.Input[str]]):
87
+ pulumi.set(self, "application_id", value)
88
+
89
+ @property
90
+ @pulumi.getter
91
+ def description(self) -> Optional[pulumi.Input[str]]:
92
+ """
93
+ The description of the IAM policy.
94
+ """
95
+ return pulumi.get(self, "description")
96
+
97
+ @description.setter
98
+ def description(self, value: Optional[pulumi.Input[str]]):
99
+ pulumi.set(self, "description", value)
100
+
101
+ @property
102
+ @pulumi.getter(name="groupId")
103
+ def group_id(self) -> Optional[pulumi.Input[str]]:
104
+ """
105
+ ID of the group the policy will be linked to
106
+ """
107
+ return pulumi.get(self, "group_id")
108
+
109
+ @group_id.setter
110
+ def group_id(self, value: Optional[pulumi.Input[str]]):
111
+ pulumi.set(self, "group_id", value)
112
+
113
+ @property
114
+ @pulumi.getter
115
+ def name(self) -> Optional[pulumi.Input[str]]:
116
+ """
117
+ The name of the IAM policy.
118
+ """
119
+ return pulumi.get(self, "name")
120
+
121
+ @name.setter
122
+ def name(self, value: Optional[pulumi.Input[str]]):
123
+ pulumi.set(self, "name", value)
124
+
125
+ @property
126
+ @pulumi.getter(name="noPrincipal")
127
+ def no_principal(self) -> Optional[pulumi.Input[bool]]:
128
+ """
129
+ If the policy doesn't apply to a principal.
130
+
131
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
132
+ """
133
+ return pulumi.get(self, "no_principal")
134
+
135
+ @no_principal.setter
136
+ def no_principal(self, value: Optional[pulumi.Input[bool]]):
137
+ pulumi.set(self, "no_principal", value)
138
+
139
+ @property
140
+ @pulumi.getter(name="organizationId")
141
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
142
+ """
143
+ `organization_id`) The ID of the organization the policy is associated with.
144
+ """
145
+ return pulumi.get(self, "organization_id")
146
+
147
+ @organization_id.setter
148
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
149
+ pulumi.set(self, "organization_id", value)
150
+
151
+ @property
152
+ @pulumi.getter
153
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
154
+ """
155
+ The tags associated with the IAM policy.
156
+ """
157
+ return pulumi.get(self, "tags")
158
+
159
+ @tags.setter
160
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
161
+ pulumi.set(self, "tags", value)
162
+
163
+ @property
164
+ @pulumi.getter(name="userId")
165
+ def user_id(self) -> Optional[pulumi.Input[str]]:
166
+ """
167
+ ID of the user the policy will be linked to
168
+ """
169
+ return pulumi.get(self, "user_id")
170
+
171
+ @user_id.setter
172
+ def user_id(self, value: Optional[pulumi.Input[str]]):
173
+ pulumi.set(self, "user_id", value)
174
+
175
+
176
+ @pulumi.input_type
177
+ class _IamPolicyState:
178
+ def __init__(__self__, *,
179
+ application_id: Optional[pulumi.Input[str]] = None,
180
+ created_at: Optional[pulumi.Input[str]] = None,
181
+ description: Optional[pulumi.Input[str]] = None,
182
+ editable: Optional[pulumi.Input[bool]] = None,
183
+ group_id: Optional[pulumi.Input[str]] = None,
184
+ name: Optional[pulumi.Input[str]] = None,
185
+ no_principal: Optional[pulumi.Input[bool]] = None,
186
+ organization_id: Optional[pulumi.Input[str]] = None,
187
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input['IamPolicyRuleArgs']]]] = None,
188
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
189
+ updated_at: Optional[pulumi.Input[str]] = None,
190
+ user_id: Optional[pulumi.Input[str]] = None):
191
+ """
192
+ Input properties used for looking up and filtering IamPolicy resources.
193
+ :param pulumi.Input[str] application_id: ID of the application the policy will be linked to
194
+ :param pulumi.Input[str] created_at: The date and time of the creation of the policy.
195
+ :param pulumi.Input[str] description: The description of the IAM policy.
196
+ :param pulumi.Input[bool] editable: Whether the policy is editable.
197
+ :param pulumi.Input[str] group_id: ID of the group the policy will be linked to
198
+ :param pulumi.Input[str] name: The name of the IAM policy.
199
+ :param pulumi.Input[bool] no_principal: If the policy doesn't apply to a principal.
200
+
201
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
202
+ :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the policy is associated with.
203
+ :param pulumi.Input[Sequence[pulumi.Input['IamPolicyRuleArgs']]] rules: List of rules in the policy.
204
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the IAM policy.
205
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the policy.
206
+ :param pulumi.Input[str] user_id: ID of the user the policy will be linked to
207
+ """
208
+ if application_id is not None:
209
+ pulumi.set(__self__, "application_id", application_id)
210
+ if created_at is not None:
211
+ pulumi.set(__self__, "created_at", created_at)
212
+ if description is not None:
213
+ pulumi.set(__self__, "description", description)
214
+ if editable is not None:
215
+ pulumi.set(__self__, "editable", editable)
216
+ if group_id is not None:
217
+ pulumi.set(__self__, "group_id", group_id)
218
+ if name is not None:
219
+ pulumi.set(__self__, "name", name)
220
+ if no_principal is not None:
221
+ pulumi.set(__self__, "no_principal", no_principal)
222
+ if organization_id is not None:
223
+ pulumi.set(__self__, "organization_id", organization_id)
224
+ if rules is not None:
225
+ pulumi.set(__self__, "rules", rules)
226
+ if tags is not None:
227
+ pulumi.set(__self__, "tags", tags)
228
+ if updated_at is not None:
229
+ pulumi.set(__self__, "updated_at", updated_at)
230
+ if user_id is not None:
231
+ pulumi.set(__self__, "user_id", user_id)
232
+
233
+ @property
234
+ @pulumi.getter(name="applicationId")
235
+ def application_id(self) -> Optional[pulumi.Input[str]]:
236
+ """
237
+ ID of the application the policy will be linked to
238
+ """
239
+ return pulumi.get(self, "application_id")
240
+
241
+ @application_id.setter
242
+ def application_id(self, value: Optional[pulumi.Input[str]]):
243
+ pulumi.set(self, "application_id", value)
244
+
245
+ @property
246
+ @pulumi.getter(name="createdAt")
247
+ def created_at(self) -> Optional[pulumi.Input[str]]:
248
+ """
249
+ The date and time of the creation of the policy.
250
+ """
251
+ return pulumi.get(self, "created_at")
252
+
253
+ @created_at.setter
254
+ def created_at(self, value: Optional[pulumi.Input[str]]):
255
+ pulumi.set(self, "created_at", value)
256
+
257
+ @property
258
+ @pulumi.getter
259
+ def description(self) -> Optional[pulumi.Input[str]]:
260
+ """
261
+ The description of the IAM policy.
262
+ """
263
+ return pulumi.get(self, "description")
264
+
265
+ @description.setter
266
+ def description(self, value: Optional[pulumi.Input[str]]):
267
+ pulumi.set(self, "description", value)
268
+
269
+ @property
270
+ @pulumi.getter
271
+ def editable(self) -> Optional[pulumi.Input[bool]]:
272
+ """
273
+ Whether the policy is editable.
274
+ """
275
+ return pulumi.get(self, "editable")
276
+
277
+ @editable.setter
278
+ def editable(self, value: Optional[pulumi.Input[bool]]):
279
+ pulumi.set(self, "editable", value)
280
+
281
+ @property
282
+ @pulumi.getter(name="groupId")
283
+ def group_id(self) -> Optional[pulumi.Input[str]]:
284
+ """
285
+ ID of the group the policy will be linked to
286
+ """
287
+ return pulumi.get(self, "group_id")
288
+
289
+ @group_id.setter
290
+ def group_id(self, value: Optional[pulumi.Input[str]]):
291
+ pulumi.set(self, "group_id", value)
292
+
293
+ @property
294
+ @pulumi.getter
295
+ def name(self) -> Optional[pulumi.Input[str]]:
296
+ """
297
+ The name of the IAM policy.
298
+ """
299
+ return pulumi.get(self, "name")
300
+
301
+ @name.setter
302
+ def name(self, value: Optional[pulumi.Input[str]]):
303
+ pulumi.set(self, "name", value)
304
+
305
+ @property
306
+ @pulumi.getter(name="noPrincipal")
307
+ def no_principal(self) -> Optional[pulumi.Input[bool]]:
308
+ """
309
+ If the policy doesn't apply to a principal.
310
+
311
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
312
+ """
313
+ return pulumi.get(self, "no_principal")
314
+
315
+ @no_principal.setter
316
+ def no_principal(self, value: Optional[pulumi.Input[bool]]):
317
+ pulumi.set(self, "no_principal", value)
318
+
319
+ @property
320
+ @pulumi.getter(name="organizationId")
321
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
322
+ """
323
+ `organization_id`) The ID of the organization the policy is associated with.
324
+ """
325
+ return pulumi.get(self, "organization_id")
326
+
327
+ @organization_id.setter
328
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
329
+ pulumi.set(self, "organization_id", value)
330
+
331
+ @property
332
+ @pulumi.getter
333
+ def rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['IamPolicyRuleArgs']]]]:
334
+ """
335
+ List of rules in the policy.
336
+ """
337
+ return pulumi.get(self, "rules")
338
+
339
+ @rules.setter
340
+ def rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['IamPolicyRuleArgs']]]]):
341
+ pulumi.set(self, "rules", value)
342
+
343
+ @property
344
+ @pulumi.getter
345
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
346
+ """
347
+ The tags associated with the IAM policy.
348
+ """
349
+ return pulumi.get(self, "tags")
350
+
351
+ @tags.setter
352
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
353
+ pulumi.set(self, "tags", value)
354
+
355
+ @property
356
+ @pulumi.getter(name="updatedAt")
357
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
358
+ """
359
+ The date and time of the last update of the policy.
360
+ """
361
+ return pulumi.get(self, "updated_at")
362
+
363
+ @updated_at.setter
364
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
365
+ pulumi.set(self, "updated_at", value)
366
+
367
+ @property
368
+ @pulumi.getter(name="userId")
369
+ def user_id(self) -> Optional[pulumi.Input[str]]:
370
+ """
371
+ ID of the user the policy will be linked to
372
+ """
373
+ return pulumi.get(self, "user_id")
374
+
375
+ @user_id.setter
376
+ def user_id(self, value: Optional[pulumi.Input[str]]):
377
+ pulumi.set(self, "user_id", value)
378
+
379
+
380
+ class IamPolicy(pulumi.CustomResource):
381
+ @overload
382
+ def __init__(__self__,
383
+ resource_name: str,
384
+ opts: Optional[pulumi.ResourceOptions] = None,
385
+ application_id: Optional[pulumi.Input[str]] = None,
386
+ description: Optional[pulumi.Input[str]] = None,
387
+ group_id: Optional[pulumi.Input[str]] = None,
388
+ name: Optional[pulumi.Input[str]] = None,
389
+ no_principal: Optional[pulumi.Input[bool]] = None,
390
+ organization_id: Optional[pulumi.Input[str]] = None,
391
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IamPolicyRuleArgs', 'IamPolicyRuleArgsDict']]]]] = None,
392
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
393
+ user_id: Optional[pulumi.Input[str]] = None,
394
+ __props__=None):
395
+ """
396
+ Creates and manages Scaleway IAM Policies. For more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#path-policies-create-a-new-policy).
397
+
398
+ > You can find a detailed list of all permission sets available at Scaleway in the permission sets [reference page](https://www.scaleway.com/en/docs/identity-and-access-management/iam/reference-content/permission-sets/).
399
+
400
+ ## Example Usage
401
+
402
+ ### Create a policy for an organization's project
403
+
404
+ ```python
405
+ import pulumi
406
+ import pulumi_scaleway as scaleway
407
+ import pulumiverse_scaleway as scaleway
408
+
409
+ default = scaleway.get_account_project(name="default")
410
+ app = scaleway.IamApplication("app", name="my app")
411
+ object_read_only = scaleway.IamPolicy("object_read_only",
412
+ name="my policy",
413
+ description="gives app readonly access to object storage in project",
414
+ application_id=app.id,
415
+ rules=[{
416
+ "project_ids": [default.id],
417
+ "permission_set_names": ["ObjectStorageReadOnly"],
418
+ }])
419
+ ```
420
+
421
+ ### Create a policy for all current and future projects in an organization
422
+
423
+ ```python
424
+ import pulumi
425
+ import pulumiverse_scaleway as scaleway
426
+
427
+ app = scaleway.IamApplication("app", name="my app")
428
+ object_read_only = scaleway.IamPolicy("object_read_only",
429
+ name="my policy",
430
+ description="gives app readonly access to object storage in project",
431
+ application_id=app.id,
432
+ rules=[{
433
+ "organization_id": app.organization_id,
434
+ "permission_set_names": ["ObjectStorageReadOnly"],
435
+ }])
436
+ ```
437
+
438
+ ## Import
439
+
440
+ Policies can be imported using the `{id}`, e.g.
441
+
442
+ bash
443
+
444
+ ```sh
445
+ $ pulumi import scaleway:index/iamPolicy:IamPolicy main 11111111-1111-1111-1111-111111111111
446
+ ```
447
+
448
+ :param str resource_name: The name of the resource.
449
+ :param pulumi.ResourceOptions opts: Options for the resource.
450
+ :param pulumi.Input[str] application_id: ID of the application the policy will be linked to
451
+ :param pulumi.Input[str] description: The description of the IAM policy.
452
+ :param pulumi.Input[str] group_id: ID of the group the policy will be linked to
453
+ :param pulumi.Input[str] name: The name of the IAM policy.
454
+ :param pulumi.Input[bool] no_principal: If the policy doesn't apply to a principal.
455
+
456
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
457
+ :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the policy is associated with.
458
+ :param pulumi.Input[Sequence[pulumi.Input[Union['IamPolicyRuleArgs', 'IamPolicyRuleArgsDict']]]] rules: List of rules in the policy.
459
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the IAM policy.
460
+ :param pulumi.Input[str] user_id: ID of the user the policy will be linked to
461
+ """
462
+ ...
463
+ @overload
464
+ def __init__(__self__,
465
+ resource_name: str,
466
+ args: IamPolicyArgs,
467
+ opts: Optional[pulumi.ResourceOptions] = None):
468
+ """
469
+ Creates and manages Scaleway IAM Policies. For more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#path-policies-create-a-new-policy).
470
+
471
+ > You can find a detailed list of all permission sets available at Scaleway in the permission sets [reference page](https://www.scaleway.com/en/docs/identity-and-access-management/iam/reference-content/permission-sets/).
472
+
473
+ ## Example Usage
474
+
475
+ ### Create a policy for an organization's project
476
+
477
+ ```python
478
+ import pulumi
479
+ import pulumi_scaleway as scaleway
480
+ import pulumiverse_scaleway as scaleway
481
+
482
+ default = scaleway.get_account_project(name="default")
483
+ app = scaleway.IamApplication("app", name="my app")
484
+ object_read_only = scaleway.IamPolicy("object_read_only",
485
+ name="my policy",
486
+ description="gives app readonly access to object storage in project",
487
+ application_id=app.id,
488
+ rules=[{
489
+ "project_ids": [default.id],
490
+ "permission_set_names": ["ObjectStorageReadOnly"],
491
+ }])
492
+ ```
493
+
494
+ ### Create a policy for all current and future projects in an organization
495
+
496
+ ```python
497
+ import pulumi
498
+ import pulumiverse_scaleway as scaleway
499
+
500
+ app = scaleway.IamApplication("app", name="my app")
501
+ object_read_only = scaleway.IamPolicy("object_read_only",
502
+ name="my policy",
503
+ description="gives app readonly access to object storage in project",
504
+ application_id=app.id,
505
+ rules=[{
506
+ "organization_id": app.organization_id,
507
+ "permission_set_names": ["ObjectStorageReadOnly"],
508
+ }])
509
+ ```
510
+
511
+ ## Import
512
+
513
+ Policies can be imported using the `{id}`, e.g.
514
+
515
+ bash
516
+
517
+ ```sh
518
+ $ pulumi import scaleway:index/iamPolicy:IamPolicy main 11111111-1111-1111-1111-111111111111
519
+ ```
520
+
521
+ :param str resource_name: The name of the resource.
522
+ :param IamPolicyArgs args: The arguments to use to populate this resource's properties.
523
+ :param pulumi.ResourceOptions opts: Options for the resource.
524
+ """
525
+ ...
526
+ def __init__(__self__, resource_name: str, *args, **kwargs):
527
+ resource_args, opts = _utilities.get_resource_args_opts(IamPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
528
+ if resource_args is not None:
529
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
530
+ else:
531
+ __self__._internal_init(resource_name, *args, **kwargs)
532
+
533
+ def _internal_init(__self__,
534
+ resource_name: str,
535
+ opts: Optional[pulumi.ResourceOptions] = None,
536
+ application_id: Optional[pulumi.Input[str]] = None,
537
+ description: Optional[pulumi.Input[str]] = None,
538
+ group_id: Optional[pulumi.Input[str]] = None,
539
+ name: Optional[pulumi.Input[str]] = None,
540
+ no_principal: Optional[pulumi.Input[bool]] = None,
541
+ organization_id: Optional[pulumi.Input[str]] = None,
542
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IamPolicyRuleArgs', 'IamPolicyRuleArgsDict']]]]] = None,
543
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
544
+ user_id: Optional[pulumi.Input[str]] = None,
545
+ __props__=None):
546
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
547
+ if not isinstance(opts, pulumi.ResourceOptions):
548
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
549
+ if opts.id is None:
550
+ if __props__ is not None:
551
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
552
+ __props__ = IamPolicyArgs.__new__(IamPolicyArgs)
553
+
554
+ __props__.__dict__["application_id"] = application_id
555
+ __props__.__dict__["description"] = description
556
+ __props__.__dict__["group_id"] = group_id
557
+ __props__.__dict__["name"] = name
558
+ __props__.__dict__["no_principal"] = no_principal
559
+ __props__.__dict__["organization_id"] = organization_id
560
+ if rules is None and not opts.urn:
561
+ raise TypeError("Missing required property 'rules'")
562
+ __props__.__dict__["rules"] = rules
563
+ __props__.__dict__["tags"] = tags
564
+ __props__.__dict__["user_id"] = user_id
565
+ __props__.__dict__["created_at"] = None
566
+ __props__.__dict__["editable"] = None
567
+ __props__.__dict__["updated_at"] = None
568
+ super(IamPolicy, __self__).__init__(
569
+ 'scaleway:index/iamPolicy:IamPolicy',
570
+ resource_name,
571
+ __props__,
572
+ opts)
573
+
574
+ @staticmethod
575
+ def get(resource_name: str,
576
+ id: pulumi.Input[str],
577
+ opts: Optional[pulumi.ResourceOptions] = None,
578
+ application_id: Optional[pulumi.Input[str]] = None,
579
+ created_at: Optional[pulumi.Input[str]] = None,
580
+ description: Optional[pulumi.Input[str]] = None,
581
+ editable: Optional[pulumi.Input[bool]] = None,
582
+ group_id: Optional[pulumi.Input[str]] = None,
583
+ name: Optional[pulumi.Input[str]] = None,
584
+ no_principal: Optional[pulumi.Input[bool]] = None,
585
+ organization_id: Optional[pulumi.Input[str]] = None,
586
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IamPolicyRuleArgs', 'IamPolicyRuleArgsDict']]]]] = None,
587
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
588
+ updated_at: Optional[pulumi.Input[str]] = None,
589
+ user_id: Optional[pulumi.Input[str]] = None) -> 'IamPolicy':
590
+ """
591
+ Get an existing IamPolicy resource's state with the given name, id, and optional extra
592
+ properties used to qualify the lookup.
593
+
594
+ :param str resource_name: The unique name of the resulting resource.
595
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
596
+ :param pulumi.ResourceOptions opts: Options for the resource.
597
+ :param pulumi.Input[str] application_id: ID of the application the policy will be linked to
598
+ :param pulumi.Input[str] created_at: The date and time of the creation of the policy.
599
+ :param pulumi.Input[str] description: The description of the IAM policy.
600
+ :param pulumi.Input[bool] editable: Whether the policy is editable.
601
+ :param pulumi.Input[str] group_id: ID of the group the policy will be linked to
602
+ :param pulumi.Input[str] name: The name of the IAM policy.
603
+ :param pulumi.Input[bool] no_principal: If the policy doesn't apply to a principal.
604
+
605
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
606
+ :param pulumi.Input[str] organization_id: `organization_id`) The ID of the organization the policy is associated with.
607
+ :param pulumi.Input[Sequence[pulumi.Input[Union['IamPolicyRuleArgs', 'IamPolicyRuleArgsDict']]]] rules: List of rules in the policy.
608
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the IAM policy.
609
+ :param pulumi.Input[str] updated_at: The date and time of the last update of the policy.
610
+ :param pulumi.Input[str] user_id: ID of the user the policy will be linked to
611
+ """
612
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
613
+
614
+ __props__ = _IamPolicyState.__new__(_IamPolicyState)
615
+
616
+ __props__.__dict__["application_id"] = application_id
617
+ __props__.__dict__["created_at"] = created_at
618
+ __props__.__dict__["description"] = description
619
+ __props__.__dict__["editable"] = editable
620
+ __props__.__dict__["group_id"] = group_id
621
+ __props__.__dict__["name"] = name
622
+ __props__.__dict__["no_principal"] = no_principal
623
+ __props__.__dict__["organization_id"] = organization_id
624
+ __props__.__dict__["rules"] = rules
625
+ __props__.__dict__["tags"] = tags
626
+ __props__.__dict__["updated_at"] = updated_at
627
+ __props__.__dict__["user_id"] = user_id
628
+ return IamPolicy(resource_name, opts=opts, __props__=__props__)
629
+
630
+ @property
631
+ @pulumi.getter(name="applicationId")
632
+ def application_id(self) -> pulumi.Output[Optional[str]]:
633
+ """
634
+ ID of the application the policy will be linked to
635
+ """
636
+ return pulumi.get(self, "application_id")
637
+
638
+ @property
639
+ @pulumi.getter(name="createdAt")
640
+ def created_at(self) -> pulumi.Output[str]:
641
+ """
642
+ The date and time of the creation of the policy.
643
+ """
644
+ return pulumi.get(self, "created_at")
645
+
646
+ @property
647
+ @pulumi.getter
648
+ def description(self) -> pulumi.Output[Optional[str]]:
649
+ """
650
+ The description of the IAM policy.
651
+ """
652
+ return pulumi.get(self, "description")
653
+
654
+ @property
655
+ @pulumi.getter
656
+ def editable(self) -> pulumi.Output[bool]:
657
+ """
658
+ Whether the policy is editable.
659
+ """
660
+ return pulumi.get(self, "editable")
661
+
662
+ @property
663
+ @pulumi.getter(name="groupId")
664
+ def group_id(self) -> pulumi.Output[Optional[str]]:
665
+ """
666
+ ID of the group the policy will be linked to
667
+ """
668
+ return pulumi.get(self, "group_id")
669
+
670
+ @property
671
+ @pulumi.getter
672
+ def name(self) -> pulumi.Output[str]:
673
+ """
674
+ The name of the IAM policy.
675
+ """
676
+ return pulumi.get(self, "name")
677
+
678
+ @property
679
+ @pulumi.getter(name="noPrincipal")
680
+ def no_principal(self) -> pulumi.Output[Optional[bool]]:
681
+ """
682
+ If the policy doesn't apply to a principal.
683
+
684
+ > **Important** Only one of `user_id`, `group_id`, `application_id` and `no_principal` may be set.
685
+ """
686
+ return pulumi.get(self, "no_principal")
687
+
688
+ @property
689
+ @pulumi.getter(name="organizationId")
690
+ def organization_id(self) -> pulumi.Output[str]:
691
+ """
692
+ `organization_id`) The ID of the organization the policy is associated with.
693
+ """
694
+ return pulumi.get(self, "organization_id")
695
+
696
+ @property
697
+ @pulumi.getter
698
+ def rules(self) -> pulumi.Output[Sequence['outputs.IamPolicyRule']]:
699
+ """
700
+ List of rules in the policy.
701
+ """
702
+ return pulumi.get(self, "rules")
703
+
704
+ @property
705
+ @pulumi.getter
706
+ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
707
+ """
708
+ The tags associated with the IAM policy.
709
+ """
710
+ return pulumi.get(self, "tags")
711
+
712
+ @property
713
+ @pulumi.getter(name="updatedAt")
714
+ def updated_at(self) -> pulumi.Output[str]:
715
+ """
716
+ The date and time of the last update of the policy.
717
+ """
718
+ return pulumi.get(self, "updated_at")
719
+
720
+ @property
721
+ @pulumi.getter(name="userId")
722
+ def user_id(self) -> pulumi.Output[Optional[str]]:
723
+ """
724
+ ID of the user the policy will be linked to
725
+ """
726
+ return pulumi.get(self, "user_id")
727
+