Skip to content

Commit a2a3444

Browse files
authored
feat(iam): add support for Managed, Deletable and Editable property (scaleway#685)
1 parent 2dfca82 commit a2a3444

File tree

4 files changed

+184
-40
lines changed

4 files changed

+184
-40
lines changed

scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ def unmarshal_APIKey(data: Any) -> APIKey:
130130
if field is not None:
131131
args["editable"] = field
132132

133+
field = data.get("managed", None)
134+
if field is not None:
135+
args["managed"] = field
136+
133137
field = data.get("creation_ip", None)
134138
if field is not None:
135139
args["creation_ip"] = field
@@ -201,6 +205,14 @@ def unmarshal_Application(data: Any) -> Application:
201205
if field is not None:
202206
args["editable"] = field
203207

208+
field = data.get("deletable", None)
209+
if field is not None:
210+
args["deletable"] = field
211+
212+
field = data.get("managed", None)
213+
if field is not None:
214+
args["managed"] = field
215+
204216
field = data.get("nb_api_keys", None)
205217
if field is not None:
206218
args["nb_api_keys"] = field
@@ -260,6 +272,18 @@ def unmarshal_Group(data: Any) -> Group:
260272
if field is not None:
261273
args["tags"] = field
262274

275+
field = data.get("editable", None)
276+
if field is not None:
277+
args["editable"] = field
278+
279+
field = data.get("deletable", None)
280+
if field is not None:
281+
args["deletable"] = field
282+
283+
field = data.get("managed", None)
284+
if field is not None:
285+
args["managed"] = field
286+
263287
field = data.get("created_at", None)
264288
if field is not None:
265289
args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field
@@ -348,21 +372,17 @@ def unmarshal_Policy(data: Any) -> Policy:
348372
if field is not None:
349373
args["organization_id"] = field
350374

351-
field = data.get("created_at", None)
375+
field = data.get("editable", None)
352376
if field is not None:
353-
args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field
354-
else:
355-
args["created_at"] = None
377+
args["editable"] = field
356378

357-
field = data.get("updated_at", None)
379+
field = data.get("deletable", None)
358380
if field is not None:
359-
args["updated_at"] = parser.isoparse(field) if isinstance(field, str) else field
360-
else:
361-
args["updated_at"] = None
381+
args["deletable"] = field
362382

363-
field = data.get("editable", None)
383+
field = data.get("managed", None)
364384
if field is not None:
365-
args["editable"] = field
385+
args["managed"] = field
366386

367387
field = data.get("nb_rules", None)
368388
if field is not None:
@@ -376,6 +396,18 @@ def unmarshal_Policy(data: Any) -> Policy:
376396
if field is not None:
377397
args["nb_permission_sets"] = field
378398

399+
field = data.get("created_at", None)
400+
if field is not None:
401+
args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field
402+
else:
403+
args["created_at"] = None
404+
405+
field = data.get("updated_at", None)
406+
if field is not None:
407+
args["updated_at"] = parser.isoparse(field) if isinstance(field, str) else field
408+
else:
409+
args["updated_at"] = None
410+
379411
field = data.get("tags", None)
380412
if field is not None:
381413
args["tags"] = field

scaleway-async/scaleway_async/iam/v1alpha1/types.py

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,11 @@ class APIKey:
287287
Defines whether or not the API key is editable.
288288
"""
289289

290+
managed: bool
291+
"""
292+
Defines whether or not the API key is managed.
293+
"""
294+
290295
creation_ip: str
291296
"""
292297
IP address of the device that created the API key.
@@ -344,6 +349,16 @@ class Application:
344349
Defines whether or not the application is editable.
345350
"""
346351

352+
deletable: bool
353+
"""
354+
Defines whether or not the application is deletable.
355+
"""
356+
357+
managed: bool
358+
"""
359+
Defines whether or not the application is managed.
360+
"""
361+
347362
nb_api_keys: int
348363
"""
349364
Number of API keys attributed to the application.
@@ -402,6 +417,21 @@ class Group:
402417
Tags associated to the group.
403418
"""
404419

420+
editable: bool
421+
"""
422+
Defines whether or not the group is editable.
423+
"""
424+
425+
deletable: bool
426+
"""
427+
Defines whether or not the group is deletable.
428+
"""
429+
430+
managed: bool
431+
"""
432+
Defines whether or not the group is managed.
433+
"""
434+
405435
created_at: Optional[datetime]
406436
"""
407437
Date and time of group creation.
@@ -511,11 +541,31 @@ class Policy:
511541
Organization ID of the policy.
512542
"""
513543

544+
created_at: Optional[datetime]
545+
"""
546+
Date and time of policy creation.
547+
"""
548+
549+
updated_at: Optional[datetime]
550+
"""
551+
Date and time of last policy update.
552+
"""
553+
514554
editable: bool
515555
"""
516556
Defines whether or not a policy is editable.
517557
"""
518558

559+
deletable: bool
560+
"""
561+
Defines whether or not a policy is deletable.
562+
"""
563+
564+
managed: bool
565+
"""
566+
Defines whether or not a policy is managed.
567+
"""
568+
519569
nb_rules: int
520570
"""
521571
Number of rules of the policy.
@@ -536,16 +586,6 @@ class Policy:
536586
Tags associated with the policy.
537587
"""
538588

539-
created_at: Optional[datetime]
540-
"""
541-
Date and time of policy creation.
542-
"""
543-
544-
updated_at: Optional[datetime]
545-
"""
546-
Date and time of last policy update.
547-
"""
548-
549589
user_id: Optional[str]
550590

551591
group_id: Optional[str]

scaleway/scaleway/iam/v1alpha1/marshalling.py

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ def unmarshal_APIKey(data: Any) -> APIKey:
130130
if field is not None:
131131
args["editable"] = field
132132

133+
field = data.get("managed", None)
134+
if field is not None:
135+
args["managed"] = field
136+
133137
field = data.get("creation_ip", None)
134138
if field is not None:
135139
args["creation_ip"] = field
@@ -201,6 +205,14 @@ def unmarshal_Application(data: Any) -> Application:
201205
if field is not None:
202206
args["editable"] = field
203207

208+
field = data.get("deletable", None)
209+
if field is not None:
210+
args["deletable"] = field
211+
212+
field = data.get("managed", None)
213+
if field is not None:
214+
args["managed"] = field
215+
204216
field = data.get("nb_api_keys", None)
205217
if field is not None:
206218
args["nb_api_keys"] = field
@@ -260,6 +272,18 @@ def unmarshal_Group(data: Any) -> Group:
260272
if field is not None:
261273
args["tags"] = field
262274

275+
field = data.get("editable", None)
276+
if field is not None:
277+
args["editable"] = field
278+
279+
field = data.get("deletable", None)
280+
if field is not None:
281+
args["deletable"] = field
282+
283+
field = data.get("managed", None)
284+
if field is not None:
285+
args["managed"] = field
286+
263287
field = data.get("created_at", None)
264288
if field is not None:
265289
args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field
@@ -348,21 +372,17 @@ def unmarshal_Policy(data: Any) -> Policy:
348372
if field is not None:
349373
args["organization_id"] = field
350374

351-
field = data.get("created_at", None)
375+
field = data.get("editable", None)
352376
if field is not None:
353-
args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field
354-
else:
355-
args["created_at"] = None
377+
args["editable"] = field
356378

357-
field = data.get("updated_at", None)
379+
field = data.get("deletable", None)
358380
if field is not None:
359-
args["updated_at"] = parser.isoparse(field) if isinstance(field, str) else field
360-
else:
361-
args["updated_at"] = None
381+
args["deletable"] = field
362382

363-
field = data.get("editable", None)
383+
field = data.get("managed", None)
364384
if field is not None:
365-
args["editable"] = field
385+
args["managed"] = field
366386

367387
field = data.get("nb_rules", None)
368388
if field is not None:
@@ -376,6 +396,18 @@ def unmarshal_Policy(data: Any) -> Policy:
376396
if field is not None:
377397
args["nb_permission_sets"] = field
378398

399+
field = data.get("created_at", None)
400+
if field is not None:
401+
args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field
402+
else:
403+
args["created_at"] = None
404+
405+
field = data.get("updated_at", None)
406+
if field is not None:
407+
args["updated_at"] = parser.isoparse(field) if isinstance(field, str) else field
408+
else:
409+
args["updated_at"] = None
410+
379411
field = data.get("tags", None)
380412
if field is not None:
381413
args["tags"] = field

scaleway/scaleway/iam/v1alpha1/types.py

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,11 @@ class APIKey:
287287
Defines whether or not the API key is editable.
288288
"""
289289

290+
managed: bool
291+
"""
292+
Defines whether or not the API key is managed.
293+
"""
294+
290295
creation_ip: str
291296
"""
292297
IP address of the device that created the API key.
@@ -344,6 +349,16 @@ class Application:
344349
Defines whether or not the application is editable.
345350
"""
346351

352+
deletable: bool
353+
"""
354+
Defines whether or not the application is deletable.
355+
"""
356+
357+
managed: bool
358+
"""
359+
Defines whether or not the application is managed.
360+
"""
361+
347362
nb_api_keys: int
348363
"""
349364
Number of API keys attributed to the application.
@@ -402,6 +417,21 @@ class Group:
402417
Tags associated to the group.
403418
"""
404419

420+
editable: bool
421+
"""
422+
Defines whether or not the group is editable.
423+
"""
424+
425+
deletable: bool
426+
"""
427+
Defines whether or not the group is deletable.
428+
"""
429+
430+
managed: bool
431+
"""
432+
Defines whether or not the group is managed.
433+
"""
434+
405435
created_at: Optional[datetime]
406436
"""
407437
Date and time of group creation.
@@ -511,11 +541,31 @@ class Policy:
511541
Organization ID of the policy.
512542
"""
513543

544+
created_at: Optional[datetime]
545+
"""
546+
Date and time of policy creation.
547+
"""
548+
549+
updated_at: Optional[datetime]
550+
"""
551+
Date and time of last policy update.
552+
"""
553+
514554
editable: bool
515555
"""
516556
Defines whether or not a policy is editable.
517557
"""
518558

559+
deletable: bool
560+
"""
561+
Defines whether or not a policy is deletable.
562+
"""
563+
564+
managed: bool
565+
"""
566+
Defines whether or not a policy is managed.
567+
"""
568+
519569
nb_rules: int
520570
"""
521571
Number of rules of the policy.
@@ -536,16 +586,6 @@ class Policy:
536586
Tags associated with the policy.
537587
"""
538588

539-
created_at: Optional[datetime]
540-
"""
541-
Date and time of policy creation.
542-
"""
543-
544-
updated_at: Optional[datetime]
545-
"""
546-
Date and time of last policy update.
547-
"""
548-
549589
user_id: Optional[str]
550590

551591
group_id: Optional[str]

0 commit comments

Comments
 (0)