pulumiverse-scaleway 1.35.0a1761031391__py3-none-any.whl → 1.39.0a1764841480__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.
Files changed (109) hide show
  1. pulumiverse_scaleway/__init__.py +38 -0
  2. pulumiverse_scaleway/_inputs.py +271 -166
  3. pulumiverse_scaleway/audittrail/__init__.py +10 -0
  4. pulumiverse_scaleway/audittrail/get_event.py +410 -0
  5. pulumiverse_scaleway/audittrail/outputs.py +234 -0
  6. pulumiverse_scaleway/baremetal_server.py +159 -0
  7. pulumiverse_scaleway/billing/get_consumptions.py +4 -0
  8. pulumiverse_scaleway/block/snapshot.py +78 -0
  9. pulumiverse_scaleway/block_snapshot.py +78 -0
  10. pulumiverse_scaleway/cockpit_grafana_user.py +0 -42
  11. pulumiverse_scaleway/database_instance.py +105 -55
  12. pulumiverse_scaleway/database_user.py +6 -6
  13. pulumiverse_scaleway/databases/_inputs.py +97 -3
  14. pulumiverse_scaleway/databases/get_instance.py +12 -1
  15. pulumiverse_scaleway/databases/instance.py +105 -55
  16. pulumiverse_scaleway/databases/outputs.py +127 -2
  17. pulumiverse_scaleway/databases/user.py +6 -6
  18. pulumiverse_scaleway/datawarehouse/__init__.py +13 -0
  19. pulumiverse_scaleway/datawarehouse/_inputs.py +149 -0
  20. pulumiverse_scaleway/datawarehouse/database.py +338 -0
  21. pulumiverse_scaleway/datawarehouse/deployment.py +821 -0
  22. pulumiverse_scaleway/datawarehouse/outputs.py +113 -0
  23. pulumiverse_scaleway/datawarehouse/user.py +451 -0
  24. pulumiverse_scaleway/domain/record.py +4 -4
  25. pulumiverse_scaleway/domain_record.py +4 -4
  26. pulumiverse_scaleway/edge_services_cache_stage.py +30 -0
  27. pulumiverse_scaleway/edge_services_dns_stage.py +28 -0
  28. pulumiverse_scaleway/elasticmetal/get_offer.py +2 -0
  29. pulumiverse_scaleway/elasticmetal/get_server.py +12 -1
  30. pulumiverse_scaleway/elasticmetal/server.py +159 -0
  31. pulumiverse_scaleway/file_filesystem.py +39 -35
  32. pulumiverse_scaleway/get_baremetal_offer.py +2 -0
  33. pulumiverse_scaleway/get_baremetal_server.py +12 -1
  34. pulumiverse_scaleway/get_billing_consumptions.py +4 -0
  35. pulumiverse_scaleway/get_database_instance.py +12 -1
  36. pulumiverse_scaleway/get_instance_ip.py +14 -2
  37. pulumiverse_scaleway/get_instance_server.py +13 -83
  38. pulumiverse_scaleway/get_k8s_version.py +12 -1
  39. pulumiverse_scaleway/get_kubernetes_cluster.py +34 -1
  40. pulumiverse_scaleway/get_loadbalancer.py +12 -1
  41. pulumiverse_scaleway/get_loadbalancer_certificate.py +60 -0
  42. pulumiverse_scaleway/iam/__init__.py +1 -0
  43. pulumiverse_scaleway/iam/get_policy.py +293 -0
  44. pulumiverse_scaleway/iam/outputs.py +52 -0
  45. pulumiverse_scaleway/inference/deployment.py +36 -0
  46. pulumiverse_scaleway/inference/model.py +7 -7
  47. pulumiverse_scaleway/inference_deployment.py +36 -0
  48. pulumiverse_scaleway/instance/_inputs.py +155 -144
  49. pulumiverse_scaleway/instance/get_ip.py +14 -2
  50. pulumiverse_scaleway/instance/get_server.py +13 -83
  51. pulumiverse_scaleway/instance/image.py +94 -40
  52. pulumiverse_scaleway/instance/outputs.py +164 -167
  53. pulumiverse_scaleway/instance/server.py +116 -244
  54. pulumiverse_scaleway/instance/user_data.py +4 -4
  55. pulumiverse_scaleway/instance/volume.py +14 -0
  56. pulumiverse_scaleway/instance_image.py +94 -40
  57. pulumiverse_scaleway/instance_server.py +116 -244
  58. pulumiverse_scaleway/instance_user_data.py +4 -4
  59. pulumiverse_scaleway/instance_volume.py +14 -0
  60. pulumiverse_scaleway/iot/device.py +0 -38
  61. pulumiverse_scaleway/iot/hub.py +11 -11
  62. pulumiverse_scaleway/iot/route.py +20 -20
  63. pulumiverse_scaleway/iot_device.py +0 -38
  64. pulumiverse_scaleway/iot_hub.py +11 -11
  65. pulumiverse_scaleway/iot_route.py +20 -20
  66. pulumiverse_scaleway/ipam/_inputs.py +6 -6
  67. pulumiverse_scaleway/ipam/ip.py +35 -7
  68. pulumiverse_scaleway/ipam/ip_reverse_dns.py +70 -0
  69. pulumiverse_scaleway/ipam/outputs.py +4 -4
  70. pulumiverse_scaleway/ipam_ip.py +35 -7
  71. pulumiverse_scaleway/ipam_ip_reverse_dns.py +70 -0
  72. pulumiverse_scaleway/key_manager_key.py +134 -25
  73. pulumiverse_scaleway/kubernetes/cluster.py +290 -4
  74. pulumiverse_scaleway/kubernetes/get_cluster.py +34 -1
  75. pulumiverse_scaleway/kubernetes/get_version.py +12 -1
  76. pulumiverse_scaleway/kubernetes/pool.py +7 -7
  77. pulumiverse_scaleway/kubernetes_cluster.py +290 -4
  78. pulumiverse_scaleway/kubernetes_node_pool.py +7 -7
  79. pulumiverse_scaleway/loadbalancer.py +55 -1
  80. pulumiverse_scaleway/loadbalancers/__init__.py +1 -0
  81. pulumiverse_scaleway/loadbalancers/_inputs.py +13 -13
  82. pulumiverse_scaleway/loadbalancers/get_certificate.py +60 -0
  83. pulumiverse_scaleway/loadbalancers/get_load_balancer.py +12 -1
  84. pulumiverse_scaleway/loadbalancers/load_balancer.py +55 -1
  85. pulumiverse_scaleway/loadbalancers/outputs.py +9 -9
  86. pulumiverse_scaleway/loadbalancers/private_network.py +505 -0
  87. pulumiverse_scaleway/mongo_db_instance.py +14 -14
  88. pulumiverse_scaleway/mongodb/instance.py +14 -14
  89. pulumiverse_scaleway/network/gateway_network.py +7 -7
  90. pulumiverse_scaleway/object/__init__.py +1 -0
  91. pulumiverse_scaleway/object/bucket_policy.py +0 -64
  92. pulumiverse_scaleway/object/get.py +290 -0
  93. pulumiverse_scaleway/object/item.py +37 -7
  94. pulumiverse_scaleway/object_bucket_policy.py +0 -64
  95. pulumiverse_scaleway/object_item.py +37 -7
  96. pulumiverse_scaleway/observability/__init__.py +1 -0
  97. pulumiverse_scaleway/observability/get_grafana.py +103 -0
  98. pulumiverse_scaleway/observability/get_sources.py +6 -6
  99. pulumiverse_scaleway/observability/grafana_user.py +0 -42
  100. pulumiverse_scaleway/observability/outputs.py +2 -2
  101. pulumiverse_scaleway/outputs.py +304 -182
  102. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  103. pulumiverse_scaleway/tem/domain.py +42 -0
  104. pulumiverse_scaleway/tem_domain.py +42 -0
  105. pulumiverse_scaleway/vpc_gateway_network.py +7 -7
  106. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/METADATA +1 -1
  107. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/RECORD +109 -96
  108. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/WHEEL +0 -0
  109. {pulumiverse_scaleway-1.35.0a1761031391.dist-info → pulumiverse_scaleway-1.39.0a1764841480.dist-info}/top_level.txt +0 -0
@@ -164,6 +164,36 @@ def get_loadbalancer_certificate(certificate_id: Optional[_builtins.str] = None,
164
164
 
165
165
  ## Examples
166
166
 
167
+ ### Let's Encrypt
168
+
169
+ ```python
170
+ import pulumi
171
+ import pulumi_scaleway as scaleway
172
+ import pulumi_std as std
173
+ import pulumiverse_scaleway as scaleway
174
+
175
+ main = scaleway.loadbalancers.Ip("main")
176
+ main_load_balancer = scaleway.loadbalancers.LoadBalancer("main",
177
+ ip_id=main.id,
178
+ name="data-test-lb-cert",
179
+ type="LB-S")
180
+ main_certificate = scaleway.loadbalancers.Certificate("main",
181
+ lb_id=main_load_balancer.id,
182
+ name="data-test-lb-cert",
183
+ letsencrypt={
184
+ "common_name": pulumi.Output.all(
185
+ ip_address=main_load_balancer.ip_address,
186
+ region=main_load_balancer.region
187
+ ).apply(lambda resolved_outputs: f"{std.index.replace(text=resolved_outputs['ip_address'],
188
+ search='.',
189
+ replace='-')['result']}.lb.{resolved_outputs['region']}.scw.cloud")
190
+ ,
191
+ })
192
+ by_id = scaleway.loadbalancers.get_certificate_output(certificate_id=main_certificate.id)
193
+ by_name = scaleway.loadbalancers.get_certificate_output(name=main_certificate.name,
194
+ lb_id=main_load_balancer.id)
195
+ ```
196
+
167
197
 
168
198
  :param _builtins.str certificate_id: The certificate ID.
169
199
  - Only one of `name` and `certificate_id` should be specified.
@@ -205,6 +235,36 @@ def get_loadbalancer_certificate_output(certificate_id: Optional[pulumi.Input[Op
205
235
 
206
236
  ## Examples
207
237
 
238
+ ### Let's Encrypt
239
+
240
+ ```python
241
+ import pulumi
242
+ import pulumi_scaleway as scaleway
243
+ import pulumi_std as std
244
+ import pulumiverse_scaleway as scaleway
245
+
246
+ main = scaleway.loadbalancers.Ip("main")
247
+ main_load_balancer = scaleway.loadbalancers.LoadBalancer("main",
248
+ ip_id=main.id,
249
+ name="data-test-lb-cert",
250
+ type="LB-S")
251
+ main_certificate = scaleway.loadbalancers.Certificate("main",
252
+ lb_id=main_load_balancer.id,
253
+ name="data-test-lb-cert",
254
+ letsencrypt={
255
+ "common_name": pulumi.Output.all(
256
+ ip_address=main_load_balancer.ip_address,
257
+ region=main_load_balancer.region
258
+ ).apply(lambda resolved_outputs: f"{std.index.replace(text=resolved_outputs['ip_address'],
259
+ search='.',
260
+ replace='-')['result']}.lb.{resolved_outputs['region']}.scw.cloud")
261
+ ,
262
+ })
263
+ by_id = scaleway.loadbalancers.get_certificate_output(certificate_id=main_certificate.id)
264
+ by_name = scaleway.loadbalancers.get_certificate_output(name=main_certificate.name,
265
+ lb_id=main_load_balancer.id)
266
+ ```
267
+
208
268
 
209
269
  :param _builtins.str certificate_id: The certificate ID.
210
270
  - Only one of `name` and `certificate_id` should be specified.
@@ -11,6 +11,7 @@ from .application import *
11
11
  from .get_api_key import *
12
12
  from .get_application import *
13
13
  from .get_group import *
14
+ from .get_policy import *
14
15
  from .get_ssh_key import *
15
16
  from .get_user import *
16
17
  from .group import *
@@ -0,0 +1,293 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
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
+
18
+ __all__ = [
19
+ 'GetPolicyResult',
20
+ 'AwaitableGetPolicyResult',
21
+ 'get_policy',
22
+ 'get_policy_output',
23
+ ]
24
+
25
+ @pulumi.output_type
26
+ class GetPolicyResult:
27
+ """
28
+ A collection of values returned by getPolicy.
29
+ """
30
+ def __init__(__self__, application_id=None, created_at=None, description=None, editable=None, group_id=None, id=None, name=None, no_principal=None, organization_id=None, policy_id=None, rules=None, tags=None, updated_at=None, user_id=None):
31
+ if application_id and not isinstance(application_id, str):
32
+ raise TypeError("Expected argument 'application_id' to be a str")
33
+ pulumi.set(__self__, "application_id", application_id)
34
+ if created_at and not isinstance(created_at, str):
35
+ raise TypeError("Expected argument 'created_at' to be a str")
36
+ pulumi.set(__self__, "created_at", created_at)
37
+ if description and not isinstance(description, str):
38
+ raise TypeError("Expected argument 'description' to be a str")
39
+ pulumi.set(__self__, "description", description)
40
+ if editable and not isinstance(editable, bool):
41
+ raise TypeError("Expected argument 'editable' to be a bool")
42
+ pulumi.set(__self__, "editable", editable)
43
+ if group_id and not isinstance(group_id, str):
44
+ raise TypeError("Expected argument 'group_id' to be a str")
45
+ pulumi.set(__self__, "group_id", group_id)
46
+ if id and not isinstance(id, str):
47
+ raise TypeError("Expected argument 'id' to be a str")
48
+ pulumi.set(__self__, "id", id)
49
+ if name and not isinstance(name, str):
50
+ raise TypeError("Expected argument 'name' to be a str")
51
+ pulumi.set(__self__, "name", name)
52
+ if no_principal and not isinstance(no_principal, bool):
53
+ raise TypeError("Expected argument 'no_principal' to be a bool")
54
+ pulumi.set(__self__, "no_principal", no_principal)
55
+ if organization_id and not isinstance(organization_id, str):
56
+ raise TypeError("Expected argument 'organization_id' to be a str")
57
+ pulumi.set(__self__, "organization_id", organization_id)
58
+ if policy_id and not isinstance(policy_id, str):
59
+ raise TypeError("Expected argument 'policy_id' to be a str")
60
+ pulumi.set(__self__, "policy_id", policy_id)
61
+ if rules and not isinstance(rules, list):
62
+ raise TypeError("Expected argument 'rules' to be a list")
63
+ pulumi.set(__self__, "rules", rules)
64
+ if tags and not isinstance(tags, list):
65
+ raise TypeError("Expected argument 'tags' to be a list")
66
+ pulumi.set(__self__, "tags", tags)
67
+ if updated_at and not isinstance(updated_at, str):
68
+ raise TypeError("Expected argument 'updated_at' to be a str")
69
+ pulumi.set(__self__, "updated_at", updated_at)
70
+ if user_id and not isinstance(user_id, str):
71
+ raise TypeError("Expected argument 'user_id' to be a str")
72
+ pulumi.set(__self__, "user_id", user_id)
73
+
74
+ @_builtins.property
75
+ @pulumi.getter(name="applicationId")
76
+ def application_id(self) -> _builtins.str:
77
+ """
78
+ ID of the application the policy is linked to
79
+ """
80
+ return pulumi.get(self, "application_id")
81
+
82
+ @_builtins.property
83
+ @pulumi.getter(name="createdAt")
84
+ def created_at(self) -> _builtins.str:
85
+ """
86
+ The date and time of the creation of the policy.
87
+ """
88
+ return pulumi.get(self, "created_at")
89
+
90
+ @_builtins.property
91
+ @pulumi.getter
92
+ def description(self) -> _builtins.str:
93
+ """
94
+ The description of the IAM policy.
95
+ """
96
+ return pulumi.get(self, "description")
97
+
98
+ @_builtins.property
99
+ @pulumi.getter
100
+ def editable(self) -> _builtins.bool:
101
+ """
102
+ Whether the policy is editable.
103
+ """
104
+ return pulumi.get(self, "editable")
105
+
106
+ @_builtins.property
107
+ @pulumi.getter(name="groupId")
108
+ def group_id(self) -> _builtins.str:
109
+ """
110
+ ID of the group the policy is linked to
111
+ """
112
+ return pulumi.get(self, "group_id")
113
+
114
+ @_builtins.property
115
+ @pulumi.getter
116
+ def id(self) -> _builtins.str:
117
+ """
118
+ The provider-assigned unique ID for this managed resource.
119
+ """
120
+ return pulumi.get(self, "id")
121
+
122
+ @_builtins.property
123
+ @pulumi.getter
124
+ def name(self) -> Optional[_builtins.str]:
125
+ return pulumi.get(self, "name")
126
+
127
+ @_builtins.property
128
+ @pulumi.getter(name="noPrincipal")
129
+ def no_principal(self) -> _builtins.bool:
130
+ """
131
+ If the policy doesn't apply to a principal.
132
+ """
133
+ return pulumi.get(self, "no_principal")
134
+
135
+ @_builtins.property
136
+ @pulumi.getter(name="organizationId")
137
+ def organization_id(self) -> _builtins.str:
138
+ """
139
+ ID of organization scoped to the rule.
140
+ """
141
+ return pulumi.get(self, "organization_id")
142
+
143
+ @_builtins.property
144
+ @pulumi.getter(name="policyId")
145
+ def policy_id(self) -> Optional[_builtins.str]:
146
+ return pulumi.get(self, "policy_id")
147
+
148
+ @_builtins.property
149
+ @pulumi.getter
150
+ def rules(self) -> Sequence['outputs.GetPolicyRuleResult']:
151
+ """
152
+ List of rules in the policy.
153
+ """
154
+ return pulumi.get(self, "rules")
155
+
156
+ @_builtins.property
157
+ @pulumi.getter
158
+ def tags(self) -> Sequence[_builtins.str]:
159
+ """
160
+ The tags associated with the IAM policy.
161
+ """
162
+ return pulumi.get(self, "tags")
163
+
164
+ @_builtins.property
165
+ @pulumi.getter(name="updatedAt")
166
+ def updated_at(self) -> _builtins.str:
167
+ """
168
+ The date and time of the last update of the policy.
169
+ """
170
+ return pulumi.get(self, "updated_at")
171
+
172
+ @_builtins.property
173
+ @pulumi.getter(name="userId")
174
+ def user_id(self) -> _builtins.str:
175
+ """
176
+ ID of the user the policy is linked to
177
+ """
178
+ return pulumi.get(self, "user_id")
179
+
180
+
181
+ class AwaitableGetPolicyResult(GetPolicyResult):
182
+ # pylint: disable=using-constant-test
183
+ def __await__(self):
184
+ if False:
185
+ yield self
186
+ return GetPolicyResult(
187
+ application_id=self.application_id,
188
+ created_at=self.created_at,
189
+ description=self.description,
190
+ editable=self.editable,
191
+ group_id=self.group_id,
192
+ id=self.id,
193
+ name=self.name,
194
+ no_principal=self.no_principal,
195
+ organization_id=self.organization_id,
196
+ policy_id=self.policy_id,
197
+ rules=self.rules,
198
+ tags=self.tags,
199
+ updated_at=self.updated_at,
200
+ user_id=self.user_id)
201
+
202
+
203
+ def get_policy(name: Optional[_builtins.str] = None,
204
+ policy_id: Optional[_builtins.str] = None,
205
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPolicyResult:
206
+ """
207
+ Use this data source to get information on an existing IAM policy based on its ID.
208
+ For more information refer to the [IAM API documentation](https://developers.scaleway.com/en/products/iam/api/).
209
+
210
+ ## Example Usage
211
+
212
+ ```python
213
+ import pulumi
214
+ import pulumi_scaleway as scaleway
215
+
216
+ # Get policy by id
217
+ find_by_id = scaleway.iam.get_policy(policy_id="11111111-1111-1111-1111-111111111111")
218
+ # Get policy by name
219
+ find_by_name = scaleway.iam.get_policy(name="my_policy")
220
+ ```
221
+
222
+
223
+ :param _builtins.str name: The name of the IAM policy.
224
+ :param _builtins.str policy_id: The ID of the IAM policy.
225
+
226
+ > **Note** You must specify at least one: `name` and/or `policy_id`.
227
+ """
228
+ __args__ = dict()
229
+ __args__['name'] = name
230
+ __args__['policyId'] = policy_id
231
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
232
+ __ret__ = pulumi.runtime.invoke('scaleway:iam/getPolicy:getPolicy', __args__, opts=opts, typ=GetPolicyResult).value
233
+
234
+ return AwaitableGetPolicyResult(
235
+ application_id=pulumi.get(__ret__, 'application_id'),
236
+ created_at=pulumi.get(__ret__, 'created_at'),
237
+ description=pulumi.get(__ret__, 'description'),
238
+ editable=pulumi.get(__ret__, 'editable'),
239
+ group_id=pulumi.get(__ret__, 'group_id'),
240
+ id=pulumi.get(__ret__, 'id'),
241
+ name=pulumi.get(__ret__, 'name'),
242
+ no_principal=pulumi.get(__ret__, 'no_principal'),
243
+ organization_id=pulumi.get(__ret__, 'organization_id'),
244
+ policy_id=pulumi.get(__ret__, 'policy_id'),
245
+ rules=pulumi.get(__ret__, 'rules'),
246
+ tags=pulumi.get(__ret__, 'tags'),
247
+ updated_at=pulumi.get(__ret__, 'updated_at'),
248
+ user_id=pulumi.get(__ret__, 'user_id'))
249
+ def get_policy_output(name: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
250
+ policy_id: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
251
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetPolicyResult]:
252
+ """
253
+ Use this data source to get information on an existing IAM policy based on its ID.
254
+ For more information refer to the [IAM API documentation](https://developers.scaleway.com/en/products/iam/api/).
255
+
256
+ ## Example Usage
257
+
258
+ ```python
259
+ import pulumi
260
+ import pulumi_scaleway as scaleway
261
+
262
+ # Get policy by id
263
+ find_by_id = scaleway.iam.get_policy(policy_id="11111111-1111-1111-1111-111111111111")
264
+ # Get policy by name
265
+ find_by_name = scaleway.iam.get_policy(name="my_policy")
266
+ ```
267
+
268
+
269
+ :param _builtins.str name: The name of the IAM policy.
270
+ :param _builtins.str policy_id: The ID of the IAM policy.
271
+
272
+ > **Note** You must specify at least one: `name` and/or `policy_id`.
273
+ """
274
+ __args__ = dict()
275
+ __args__['name'] = name
276
+ __args__['policyId'] = policy_id
277
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
278
+ __ret__ = pulumi.runtime.invoke_output('scaleway:iam/getPolicy:getPolicy', __args__, opts=opts, typ=GetPolicyResult)
279
+ return __ret__.apply(lambda __response__: GetPolicyResult(
280
+ application_id=pulumi.get(__response__, 'application_id'),
281
+ created_at=pulumi.get(__response__, 'created_at'),
282
+ description=pulumi.get(__response__, 'description'),
283
+ editable=pulumi.get(__response__, 'editable'),
284
+ group_id=pulumi.get(__response__, 'group_id'),
285
+ id=pulumi.get(__response__, 'id'),
286
+ name=pulumi.get(__response__, 'name'),
287
+ no_principal=pulumi.get(__response__, 'no_principal'),
288
+ organization_id=pulumi.get(__response__, 'organization_id'),
289
+ policy_id=pulumi.get(__response__, 'policy_id'),
290
+ rules=pulumi.get(__response__, 'rules'),
291
+ tags=pulumi.get(__response__, 'tags'),
292
+ updated_at=pulumi.get(__response__, 'updated_at'),
293
+ user_id=pulumi.get(__response__, 'user_id')))
@@ -16,6 +16,7 @@ from .. import _utilities
16
16
 
17
17
  __all__ = [
18
18
  'PolicyRule',
19
+ 'GetPolicyRuleResult',
19
20
  ]
20
21
 
21
22
  @pulumi.output_type
@@ -109,3 +110,54 @@ class PolicyRule(dict):
109
110
  return pulumi.get(self, "project_ids")
110
111
 
111
112
 
113
+ @pulumi.output_type
114
+ class GetPolicyRuleResult(dict):
115
+ def __init__(__self__, *,
116
+ condition: _builtins.str,
117
+ organization_id: _builtins.str,
118
+ permission_set_names: Sequence[_builtins.str],
119
+ project_ids: Sequence[_builtins.str]):
120
+ """
121
+ :param _builtins.str condition: The condition of the rule.
122
+ :param _builtins.str organization_id: ID of organization scoped to the rule.
123
+ :param Sequence[_builtins.str] permission_set_names: Names of permission sets bound to the rule.
124
+ :param Sequence[_builtins.str] project_ids: List of project IDs scoped to the rule.
125
+ """
126
+ pulumi.set(__self__, "condition", condition)
127
+ pulumi.set(__self__, "organization_id", organization_id)
128
+ pulumi.set(__self__, "permission_set_names", permission_set_names)
129
+ pulumi.set(__self__, "project_ids", project_ids)
130
+
131
+ @_builtins.property
132
+ @pulumi.getter
133
+ def condition(self) -> _builtins.str:
134
+ """
135
+ The condition of the rule.
136
+ """
137
+ return pulumi.get(self, "condition")
138
+
139
+ @_builtins.property
140
+ @pulumi.getter(name="organizationId")
141
+ def organization_id(self) -> _builtins.str:
142
+ """
143
+ ID of organization scoped to the rule.
144
+ """
145
+ return pulumi.get(self, "organization_id")
146
+
147
+ @_builtins.property
148
+ @pulumi.getter(name="permissionSetNames")
149
+ def permission_set_names(self) -> Sequence[_builtins.str]:
150
+ """
151
+ Names of permission sets bound to the rule.
152
+ """
153
+ return pulumi.get(self, "permission_set_names")
154
+
155
+ @_builtins.property
156
+ @pulumi.getter(name="projectIds")
157
+ def project_ids(self) -> Sequence[_builtins.str]:
158
+ """
159
+ List of project IDs scoped to the rule.
160
+ """
161
+ return pulumi.get(self, "project_ids")
162
+
163
+
@@ -554,6 +554,24 @@ class Deployment(pulumi.CustomResource):
554
554
 
555
555
  ## Example Usage
556
556
 
557
+ ### Basic
558
+
559
+ ```python
560
+ import pulumi
561
+ import pulumi_scaleway as scaleway
562
+ import pulumiverse_scaleway as scaleway
563
+
564
+ my_model = scaleway.inference.get_model(name="meta/llama-3.1-8b-instruct:fp8")
565
+ deployment = scaleway.inference.Deployment("deployment",
566
+ name="tf-inference-deployment",
567
+ node_type="L4",
568
+ model_name=my_model.id,
569
+ public_endpoint={
570
+ "is_enabled": True,
571
+ },
572
+ accept_eula=True)
573
+ ```
574
+
557
575
  ## Import
558
576
 
559
577
  Functions can be imported using, `{region}/{id}`, as shown below:
@@ -592,6 +610,24 @@ class Deployment(pulumi.CustomResource):
592
610
 
593
611
  ## Example Usage
594
612
 
613
+ ### Basic
614
+
615
+ ```python
616
+ import pulumi
617
+ import pulumi_scaleway as scaleway
618
+ import pulumiverse_scaleway as scaleway
619
+
620
+ my_model = scaleway.inference.get_model(name="meta/llama-3.1-8b-instruct:fp8")
621
+ deployment = scaleway.inference.Deployment("deployment",
622
+ name="tf-inference-deployment",
623
+ node_type="L4",
624
+ model_name=my_model.id,
625
+ public_endpoint={
626
+ "is_enabled": True,
627
+ },
628
+ accept_eula=True)
629
+ ```
630
+
595
631
  ## Import
596
632
 
597
633
  Functions can be imported using, `{region}/{id}`, as shown below:
@@ -28,7 +28,7 @@ class ModelArgs:
28
28
  secret: Optional[pulumi.Input[_builtins.str]] = None):
29
29
  """
30
30
  The set of arguments for constructing a Model resource.
31
- :param pulumi.Input[_builtins.str] url: The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., https://huggingface.co/agentica-org/DeepCoder-14B-Preview). The URL must be publicly accessible or require valid credentials via `secret`
31
+ :param pulumi.Input[_builtins.str] url: The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., <https://huggingface.co/agentica-org/DeepCoder-14B-Preview>). The URL must be publicly accessible or require valid credentials via `secret`
32
32
  :param pulumi.Input[_builtins.str] name: The name of the model. This must be unique within the project.
33
33
  :param pulumi.Input[_builtins.str] project_id: `project_id`) The ID of the project the deployment is associated with.
34
34
  :param pulumi.Input[_builtins.str] region: `region`) The region in which the deployment is created.
@@ -48,7 +48,7 @@ class ModelArgs:
48
48
  @pulumi.getter
49
49
  def url(self) -> pulumi.Input[_builtins.str]:
50
50
  """
51
- The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., https://huggingface.co/agentica-org/DeepCoder-14B-Preview). The URL must be publicly accessible or require valid credentials via `secret`
51
+ The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., <https://huggingface.co/agentica-org/DeepCoder-14B-Preview>). The URL must be publicly accessible or require valid credentials via `secret`
52
52
  """
53
53
  return pulumi.get(self, "url")
54
54
 
@@ -137,7 +137,7 @@ class _ModelState:
137
137
  :param pulumi.Input[_builtins.str] status: The current status of the model (e.g., ready, error, etc.).
138
138
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags associated with the model.
139
139
  :param pulumi.Input[_builtins.str] updated_at: The date and time of the last update of the model
140
- :param pulumi.Input[_builtins.str] url: The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., https://huggingface.co/agentica-org/DeepCoder-14B-Preview). The URL must be publicly accessible or require valid credentials via `secret`
140
+ :param pulumi.Input[_builtins.str] url: The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., <https://huggingface.co/agentica-org/DeepCoder-14B-Preview>). The URL must be publicly accessible or require valid credentials via `secret`
141
141
  """
142
142
  if created_at is not None:
143
143
  pulumi.set(__self__, "created_at", created_at)
@@ -328,7 +328,7 @@ class _ModelState:
328
328
  @pulumi.getter
329
329
  def url(self) -> Optional[pulumi.Input[_builtins.str]]:
330
330
  """
331
- The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., https://huggingface.co/agentica-org/DeepCoder-14B-Preview). The URL must be publicly accessible or require valid credentials via `secret`
331
+ The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., <https://huggingface.co/agentica-org/DeepCoder-14B-Preview>). The URL must be publicly accessible or require valid credentials via `secret`
332
332
  """
333
333
  return pulumi.get(self, "url")
334
334
 
@@ -402,7 +402,7 @@ class Model(pulumi.CustomResource):
402
402
  :param pulumi.Input[_builtins.str] project_id: `project_id`) The ID of the project the deployment is associated with.
403
403
  :param pulumi.Input[_builtins.str] region: `region`) The region in which the deployment is created.
404
404
  :param pulumi.Input[_builtins.str] secret: Authentication token used to pull the model from a private or gated URL (e.g., a Hugging Face access token with read permission).
405
- :param pulumi.Input[_builtins.str] url: The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., https://huggingface.co/agentica-org/DeepCoder-14B-Preview). The URL must be publicly accessible or require valid credentials via `secret`
405
+ :param pulumi.Input[_builtins.str] url: The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., <https://huggingface.co/agentica-org/DeepCoder-14B-Preview>). The URL must be publicly accessible or require valid credentials via `secret`
406
406
  """
407
407
  ...
408
408
  @overload
@@ -548,7 +548,7 @@ class Model(pulumi.CustomResource):
548
548
  :param pulumi.Input[_builtins.str] status: The current status of the model (e.g., ready, error, etc.).
549
549
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags associated with the model.
550
550
  :param pulumi.Input[_builtins.str] updated_at: The date and time of the last update of the model
551
- :param pulumi.Input[_builtins.str] url: The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., https://huggingface.co/agentica-org/DeepCoder-14B-Preview). The URL must be publicly accessible or require valid credentials via `secret`
551
+ :param pulumi.Input[_builtins.str] url: The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., <https://huggingface.co/agentica-org/DeepCoder-14B-Preview>). The URL must be publicly accessible or require valid credentials via `secret`
552
552
  """
553
553
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
554
554
 
@@ -678,7 +678,7 @@ class Model(pulumi.CustomResource):
678
678
  @pulumi.getter
679
679
  def url(self) -> pulumi.Output[_builtins.str]:
680
680
  """
681
- The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., https://huggingface.co/agentica-org/DeepCoder-14B-Preview). The URL must be publicly accessible or require valid credentials via `secret`
681
+ The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., <https://huggingface.co/agentica-org/DeepCoder-14B-Preview>). The URL must be publicly accessible or require valid credentials via `secret`
682
682
  """
683
683
  return pulumi.get(self, "url")
684
684
 
@@ -559,6 +559,24 @@ class InferenceDeployment(pulumi.CustomResource):
559
559
 
560
560
  ## Example Usage
561
561
 
562
+ ### Basic
563
+
564
+ ```python
565
+ import pulumi
566
+ import pulumi_scaleway as scaleway
567
+ import pulumiverse_scaleway as scaleway
568
+
569
+ my_model = scaleway.inference.get_model(name="meta/llama-3.1-8b-instruct:fp8")
570
+ deployment = scaleway.inference.Deployment("deployment",
571
+ name="tf-inference-deployment",
572
+ node_type="L4",
573
+ model_name=my_model.id,
574
+ public_endpoint={
575
+ "is_enabled": True,
576
+ },
577
+ accept_eula=True)
578
+ ```
579
+
562
580
  ## Import
563
581
 
564
582
  Functions can be imported using, `{region}/{id}`, as shown below:
@@ -597,6 +615,24 @@ class InferenceDeployment(pulumi.CustomResource):
597
615
 
598
616
  ## Example Usage
599
617
 
618
+ ### Basic
619
+
620
+ ```python
621
+ import pulumi
622
+ import pulumi_scaleway as scaleway
623
+ import pulumiverse_scaleway as scaleway
624
+
625
+ my_model = scaleway.inference.get_model(name="meta/llama-3.1-8b-instruct:fp8")
626
+ deployment = scaleway.inference.Deployment("deployment",
627
+ name="tf-inference-deployment",
628
+ node_type="L4",
629
+ model_name=my_model.id,
630
+ public_endpoint={
631
+ "is_enabled": True,
632
+ },
633
+ accept_eula=True)
634
+ ```
635
+
600
636
  ## Import
601
637
 
602
638
  Functions can be imported using, `{region}/{id}`, as shown below: