Skip to content

Commit d75b60c

Browse files
authored
feat(iam): add more filtering options for ListAPIKeys (#43)
1 parent 0eb580a commit d75b60c

File tree

6 files changed

+138
-0
lines changed

6 files changed

+138
-0
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# This file was automatically generated. DO NOT EDIT.
22
# If you have any remark or suggestion do not hesitate to open an issue.
3+
from .types import ListAPIKeysRequestBearerType
34
from .types import ListAPIKeysRequestOrderBy
45
from .types import ListApplicationsRequestOrderBy
56
from .types import ListGroupsRequestOrderBy
@@ -31,6 +32,7 @@
3132
from .api import IamV1Alpha1API
3233

3334
__all__ = [
35+
"ListAPIKeysRequestBearerType",
3436
"ListAPIKeysRequestOrderBy",
3537
"ListApplicationsRequestOrderBy",
3638
"ListGroupsRequestOrderBy",

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
validate_path_param,
1414
)
1515
from .types import (
16+
ListAPIKeysRequestBearerType,
1617
ListAPIKeysRequestOrderBy,
1718
ListApplicationsRequestOrderBy,
1819
ListGroupsRequestOrderBy,
@@ -1472,6 +1473,11 @@ async def list_api_keys(
14721473
application_id: Optional[str] = None,
14731474
user_id: Optional[str] = None,
14741475
editable: Optional[bool] = None,
1476+
expirable: Optional[bool] = None,
1477+
access_key: Optional[str] = None,
1478+
description: Optional[str] = None,
1479+
bearer_id: Optional[str] = None,
1480+
bearer_type: ListAPIKeysRequestBearerType = ListAPIKeysRequestBearerType.UNKNOWN_BEARER_TYPE,
14751481
) -> ListAPIKeysResponse:
14761482
"""
14771483
List API keys
@@ -1486,6 +1492,11 @@ async def list_api_keys(
14861492
14871493
One-of ('bearer'): at most one of 'application_id', 'user_id' could be set.
14881494
:param editable: Filter out editable API keys or not
1495+
:param expirable: Filter out expirable API keys or not
1496+
:param access_key: Filter out by access key
1497+
:param description: Filter out by description
1498+
:param bearer_id: Filter out by bearer ID
1499+
:param bearer_type: Filter out by type of bearer
14891500
:return: :class:`ListAPIKeysResponse <ListAPIKeysResponse>`
14901501
14911502
Usage:
@@ -1498,7 +1509,12 @@ async def list_api_keys(
14981509
"GET",
14991510
f"/iam/v1alpha1/api-keys",
15001511
params={
1512+
"access_key": access_key,
1513+
"bearer_id": bearer_id,
1514+
"bearer_type": bearer_type,
1515+
"description": description,
15011516
"editable": editable,
1517+
"expirable": expirable,
15021518
"order_by": order_by,
15031519
"organization_id": organization_id
15041520
or self.client.default_organization_id,
@@ -1526,6 +1542,11 @@ async def list_api_keys_all(
15261542
application_id: Optional[str] = None,
15271543
user_id: Optional[str] = None,
15281544
editable: Optional[bool] = None,
1545+
expirable: Optional[bool] = None,
1546+
access_key: Optional[str] = None,
1547+
description: Optional[str] = None,
1548+
bearer_id: Optional[str] = None,
1549+
bearer_type: Optional[ListAPIKeysRequestBearerType] = None,
15291550
) -> List[APIKey]:
15301551
"""
15311552
List API keys
@@ -1540,6 +1561,11 @@ async def list_api_keys_all(
15401561
15411562
One-of ('bearer'): at most one of 'application_id', 'user_id' could be set.
15421563
:param editable: Filter out editable API keys or not
1564+
:param expirable: Filter out expirable API keys or not
1565+
:param access_key: Filter out by access key
1566+
:param description: Filter out by description
1567+
:param bearer_id: Filter out by bearer ID
1568+
:param bearer_type: Filter out by type of bearer
15431569
:return: :class:`List[ListAPIKeysResponse] <List[ListAPIKeysResponse]>`
15441570
15451571
Usage:
@@ -1560,6 +1586,11 @@ async def list_api_keys_all(
15601586
"application_id": application_id,
15611587
"user_id": user_id,
15621588
"editable": editable,
1589+
"expirable": expirable,
1590+
"access_key": access_key,
1591+
"description": description,
1592+
"bearer_id": bearer_id,
1593+
"bearer_type": bearer_type,
15631594
},
15641595
)
15651596

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

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@
88
from typing import List, Optional
99

1010

11+
class ListAPIKeysRequestBearerType(str, Enum):
12+
UNKNOWN_BEARER_TYPE = "unknown_bearer_type"
13+
USER = "user"
14+
APPLICATION = "application"
15+
16+
def __str__(self) -> str:
17+
return str(self.value)
18+
19+
1120
class ListAPIKeysRequestOrderBy(str, Enum):
1221
CREATED_AT_ASC = "created_at_asc"
1322
CREATED_AT_DESC = "created_at_desc"
@@ -1341,20 +1350,47 @@ class ListAPIKeysRequest:
13411350
ID of an application bearer.
13421351
13431352
One-of ('bearer'): at most one of 'application_id', 'user_id' could be set.
1353+
:deprecated
13441354
"""
13451355

13461356
user_id: Optional[str]
13471357
"""
13481358
ID of a user bearer.
13491359
13501360
One-of ('bearer'): at most one of 'application_id', 'user_id' could be set.
1361+
:deprecated
13511362
"""
13521363

13531364
editable: Optional[bool]
13541365
"""
13551366
Filter out editable API keys or not
13561367
"""
13571368

1369+
expirable: Optional[bool]
1370+
"""
1371+
Filter out expirable API keys or not
1372+
"""
1373+
1374+
access_key: Optional[str]
1375+
"""
1376+
Filter out by access key
1377+
"""
1378+
1379+
description: Optional[str]
1380+
"""
1381+
Filter out by description
1382+
"""
1383+
1384+
bearer_id: Optional[str]
1385+
"""
1386+
Filter out by bearer ID
1387+
"""
1388+
1389+
bearer_type: Optional[ListAPIKeysRequestBearerType]
1390+
"""
1391+
Filter out by type of bearer
1392+
"""
1393+
13581394

13591395
@dataclass
13601396
class CreateAPIKeyRequest:

scaleway/scaleway/iam/v1alpha1/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# This file was automatically generated. DO NOT EDIT.
22
# If you have any remark or suggestion do not hesitate to open an issue.
3+
from .types import ListAPIKeysRequestBearerType
34
from .types import ListAPIKeysRequestOrderBy
45
from .types import ListApplicationsRequestOrderBy
56
from .types import ListGroupsRequestOrderBy
@@ -31,6 +32,7 @@
3132
from .api import IamV1Alpha1API
3233

3334
__all__ = [
35+
"ListAPIKeysRequestBearerType",
3436
"ListAPIKeysRequestOrderBy",
3537
"ListApplicationsRequestOrderBy",
3638
"ListGroupsRequestOrderBy",

scaleway/scaleway/iam/v1alpha1/api.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
validate_path_param,
1414
)
1515
from .types import (
16+
ListAPIKeysRequestBearerType,
1617
ListAPIKeysRequestOrderBy,
1718
ListApplicationsRequestOrderBy,
1819
ListGroupsRequestOrderBy,
@@ -1472,6 +1473,11 @@ def list_api_keys(
14721473
application_id: Optional[str] = None,
14731474
user_id: Optional[str] = None,
14741475
editable: Optional[bool] = None,
1476+
expirable: Optional[bool] = None,
1477+
access_key: Optional[str] = None,
1478+
description: Optional[str] = None,
1479+
bearer_id: Optional[str] = None,
1480+
bearer_type: ListAPIKeysRequestBearerType = ListAPIKeysRequestBearerType.UNKNOWN_BEARER_TYPE,
14751481
) -> ListAPIKeysResponse:
14761482
"""
14771483
List API keys
@@ -1486,6 +1492,11 @@ def list_api_keys(
14861492
14871493
One-of ('bearer'): at most one of 'application_id', 'user_id' could be set.
14881494
:param editable: Filter out editable API keys or not
1495+
:param expirable: Filter out expirable API keys or not
1496+
:param access_key: Filter out by access key
1497+
:param description: Filter out by description
1498+
:param bearer_id: Filter out by bearer ID
1499+
:param bearer_type: Filter out by type of bearer
14891500
:return: :class:`ListAPIKeysResponse <ListAPIKeysResponse>`
14901501
14911502
Usage:
@@ -1498,7 +1509,12 @@ def list_api_keys(
14981509
"GET",
14991510
f"/iam/v1alpha1/api-keys",
15001511
params={
1512+
"access_key": access_key,
1513+
"bearer_id": bearer_id,
1514+
"bearer_type": bearer_type,
1515+
"description": description,
15011516
"editable": editable,
1517+
"expirable": expirable,
15021518
"order_by": order_by,
15031519
"organization_id": organization_id
15041520
or self.client.default_organization_id,
@@ -1526,6 +1542,11 @@ def list_api_keys_all(
15261542
application_id: Optional[str] = None,
15271543
user_id: Optional[str] = None,
15281544
editable: Optional[bool] = None,
1545+
expirable: Optional[bool] = None,
1546+
access_key: Optional[str] = None,
1547+
description: Optional[str] = None,
1548+
bearer_id: Optional[str] = None,
1549+
bearer_type: Optional[ListAPIKeysRequestBearerType] = None,
15291550
) -> List[APIKey]:
15301551
"""
15311552
List API keys
@@ -1540,6 +1561,11 @@ def list_api_keys_all(
15401561
15411562
One-of ('bearer'): at most one of 'application_id', 'user_id' could be set.
15421563
:param editable: Filter out editable API keys or not
1564+
:param expirable: Filter out expirable API keys or not
1565+
:param access_key: Filter out by access key
1566+
:param description: Filter out by description
1567+
:param bearer_id: Filter out by bearer ID
1568+
:param bearer_type: Filter out by type of bearer
15431569
:return: :class:`List[ListAPIKeysResponse] <List[ListAPIKeysResponse]>`
15441570
15451571
Usage:
@@ -1560,6 +1586,11 @@ def list_api_keys_all(
15601586
"application_id": application_id,
15611587
"user_id": user_id,
15621588
"editable": editable,
1589+
"expirable": expirable,
1590+
"access_key": access_key,
1591+
"description": description,
1592+
"bearer_id": bearer_id,
1593+
"bearer_type": bearer_type,
15631594
},
15641595
)
15651596

scaleway/scaleway/iam/v1alpha1/types.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@
88
from typing import List, Optional
99

1010

11+
class ListAPIKeysRequestBearerType(str, Enum):
12+
UNKNOWN_BEARER_TYPE = "unknown_bearer_type"
13+
USER = "user"
14+
APPLICATION = "application"
15+
16+
def __str__(self) -> str:
17+
return str(self.value)
18+
19+
1120
class ListAPIKeysRequestOrderBy(str, Enum):
1221
CREATED_AT_ASC = "created_at_asc"
1322
CREATED_AT_DESC = "created_at_desc"
@@ -1341,20 +1350,47 @@ class ListAPIKeysRequest:
13411350
ID of an application bearer.
13421351
13431352
One-of ('bearer'): at most one of 'application_id', 'user_id' could be set.
1353+
:deprecated
13441354
"""
13451355

13461356
user_id: Optional[str]
13471357
"""
13481358
ID of a user bearer.
13491359
13501360
One-of ('bearer'): at most one of 'application_id', 'user_id' could be set.
1361+
:deprecated
13511362
"""
13521363

13531364
editable: Optional[bool]
13541365
"""
13551366
Filter out editable API keys or not
13561367
"""
13571368

1369+
expirable: Optional[bool]
1370+
"""
1371+
Filter out expirable API keys or not
1372+
"""
1373+
1374+
access_key: Optional[str]
1375+
"""
1376+
Filter out by access key
1377+
"""
1378+
1379+
description: Optional[str]
1380+
"""
1381+
Filter out by description
1382+
"""
1383+
1384+
bearer_id: Optional[str]
1385+
"""
1386+
Filter out by bearer ID
1387+
"""
1388+
1389+
bearer_type: Optional[ListAPIKeysRequestBearerType]
1390+
"""
1391+
Filter out by type of bearer
1392+
"""
1393+
13581394

13591395
@dataclass
13601396
class CreateAPIKeyRequest:

0 commit comments

Comments
 (0)