Skip to content
This repository was archived by the owner on Jun 2, 2026. It is now read-only.

Commit 2589b22

Browse files
authored
Merge pull request #33 from fopina/feat/paginated_iterators
List method iterators
2 parents fe1a8ef + f9292ce commit 2589b22

69 files changed

Lines changed: 3596 additions & 70 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

defectdojo_api_generated/api/announcements_api.py

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,25 @@
1010
Do not edit the class manually.
1111
""" # noqa: E501
1212

13-
from typing import Any, Dict, List, Optional, Tuple, Union
13+
from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Tuple, Union
1414

1515
from pydantic import Field, StrictBool, StrictFloat, StrictInt, StrictStr
1616
from typing_extensions import Annotated
1717

1818
from defectdojo_api_generated.api_client import ApiClient, RequestSerialized
1919
from defectdojo_api_generated.api_response import ApiResponse
20+
from defectdojo_api_generated.helpers import IteratorResult, get_all_pages
2021
from defectdojo_api_generated.models.announcement import Announcement
2122
from defectdojo_api_generated.models.announcement_request import AnnouncementRequest
2223
from defectdojo_api_generated.models.paginated_announcement_list import PaginatedAnnouncementList
2324
from defectdojo_api_generated.models.paginated_delete_preview_list import PaginatedDeletePreviewList
2425
from defectdojo_api_generated.models.patched_announcement_request import PatchedAnnouncementRequest
2526
from defectdojo_api_generated.rest import RESTResponseType
2627

28+
if TYPE_CHECKING:
29+
"""placeholder for IteratorResult types if any"""
30+
from defectdojo_api_generated.models import Announcement, DeletePreview
31+
2732

2833
class AnnouncementsApi:
2934
"""NOTE: This class is auto generated by OpenAPI Generator
@@ -523,6 +528,28 @@ def _announcements_delete_preview_list_serialize(
523528
_request_auth=_request_auth,
524529
)
525530

531+
def announcements_delete_preview_list_iterator(
532+
self,
533+
id: Annotated[StrictInt, Field(description='A unique integer value identifying this announcement.')],
534+
limit: Annotated[Optional[StrictInt], Field(description='Number of results to return per page.')] = None,
535+
offset: Annotated[
536+
Optional[StrictInt], Field(description='The initial index from which to return the results.')
537+
] = None,
538+
_request_timeout: Union[
539+
None,
540+
Annotated[StrictFloat, Field(gt=0)],
541+
Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]],
542+
] = None,
543+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
544+
_content_type: Optional[StrictStr] = None,
545+
_headers: Optional[Dict[StrictStr, Any]] = None,
546+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
547+
) -> 'Generator[IteratorResult[DeletePreview, PaginatedDeletePreviewList], None, None]':
548+
_params = locals()
549+
for page in get_all_pages(self.api_client, AnnouncementsApi.announcements_delete_preview_list, **_params):
550+
for result in page.results:
551+
yield IteratorResult(result=result, page=page)
552+
526553
def announcements_destroy(
527554
self,
528555
id: Annotated[StrictInt, Field(description='A unique integer value identifying this announcement.')],
@@ -1031,6 +1058,35 @@ def _announcements_list_serialize(
10311058
_request_auth=_request_auth,
10321059
)
10331060

1061+
def announcements_list_iterator(
1062+
self,
1063+
dismissable: Optional[StrictBool] = None,
1064+
limit: Annotated[Optional[StrictInt], Field(description='Number of results to return per page.')] = None,
1065+
message: Optional[StrictStr] = None,
1066+
offset: Annotated[
1067+
Optional[StrictInt], Field(description='The initial index from which to return the results.')
1068+
] = None,
1069+
style: Annotated[
1070+
Optional[StrictStr],
1071+
Field(
1072+
description='The style of banner to display. (info, success, warning, danger) * `info` - Info * `success` - Success * `warning` - Warning * `danger` - Danger'
1073+
),
1074+
] = None,
1075+
_request_timeout: Union[
1076+
None,
1077+
Annotated[StrictFloat, Field(gt=0)],
1078+
Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]],
1079+
] = None,
1080+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
1081+
_content_type: Optional[StrictStr] = None,
1082+
_headers: Optional[Dict[StrictStr, Any]] = None,
1083+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1084+
) -> 'Generator[IteratorResult[Announcement, PaginatedAnnouncementList], None, None]':
1085+
_params = locals()
1086+
for page in get_all_pages(self.api_client, AnnouncementsApi.announcements_list, **_params):
1087+
for result in page.results:
1088+
yield IteratorResult(result=result, page=page)
1089+
10341090
def announcements_partial_update(
10351091
self,
10361092
id: Annotated[StrictInt, Field(description='A unique integer value identifying this announcement.')],

defectdojo_api_generated/api/api_token_auth_api.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
Do not edit the class manually.
1111
""" # noqa: E501
1212

13-
from typing import Any, Dict, List, Optional, Tuple, Union
13+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
1414

1515
from pydantic import Field, StrictFloat, StrictInt, StrictStr
1616
from typing_extensions import Annotated
@@ -20,6 +20,9 @@
2020
from defectdojo_api_generated.models.auth_token import AuthToken
2121
from defectdojo_api_generated.rest import RESTResponseType
2222

23+
if TYPE_CHECKING:
24+
"""placeholder for IteratorResult types if any"""
25+
2326

2427
class ApiTokenAuthApi:
2528
"""NOTE: This class is auto generated by OpenAPI Generator

defectdojo_api_generated/api/configuration_permissions_api.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,22 @@
1010
Do not edit the class manually.
1111
""" # noqa: E501
1212

13-
from typing import Any, Dict, List, Optional, Tuple, Union
13+
from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Tuple, Union
1414

1515
from pydantic import Field, StrictFloat, StrictInt, StrictStr
1616
from typing_extensions import Annotated
1717

1818
from defectdojo_api_generated.api_client import ApiClient, RequestSerialized
1919
from defectdojo_api_generated.api_response import ApiResponse
20+
from defectdojo_api_generated.helpers import IteratorResult, get_all_pages
2021
from defectdojo_api_generated.models.configuration_permission import ConfigurationPermission
2122
from defectdojo_api_generated.models.paginated_configuration_permission_list import PaginatedConfigurationPermissionList
2223
from defectdojo_api_generated.rest import RESTResponseType
2324

25+
if TYPE_CHECKING:
26+
"""placeholder for IteratorResult types if any"""
27+
from defectdojo_api_generated.models import ConfigurationPermission
28+
2429

2530
class ConfigurationPermissionsApi:
2631
"""NOTE: This class is auto generated by OpenAPI Generator
@@ -324,6 +329,32 @@ def _configuration_permissions_list_serialize(
324329
_request_auth=_request_auth,
325330
)
326331

332+
def configuration_permissions_list_iterator(
333+
self,
334+
codename: Optional[StrictStr] = None,
335+
id: Optional[StrictInt] = None,
336+
limit: Annotated[Optional[StrictInt], Field(description='Number of results to return per page.')] = None,
337+
name: Optional[StrictStr] = None,
338+
offset: Annotated[
339+
Optional[StrictInt], Field(description='The initial index from which to return the results.')
340+
] = None,
341+
_request_timeout: Union[
342+
None,
343+
Annotated[StrictFloat, Field(gt=0)],
344+
Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]],
345+
] = None,
346+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
347+
_content_type: Optional[StrictStr] = None,
348+
_headers: Optional[Dict[StrictStr, Any]] = None,
349+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
350+
) -> 'Generator[IteratorResult[ConfigurationPermission, PaginatedConfigurationPermissionList], None, None]':
351+
_params = locals()
352+
for page in get_all_pages(
353+
self.api_client, ConfigurationPermissionsApi.configuration_permissions_list, **_params
354+
):
355+
for result in page.results:
356+
yield IteratorResult(result=result, page=page)
357+
327358
def configuration_permissions_retrieve(
328359
self,
329360
id: Annotated[StrictInt, Field(description='A unique integer value identifying this permission.')],

defectdojo_api_generated/api/credential_mappings_api.py

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,25 @@
1010
Do not edit the class manually.
1111
""" # noqa: E501
1212

13-
from typing import Any, Dict, List, Optional, Tuple, Union
13+
from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Tuple, Union
1414

1515
from pydantic import Field, StrictBool, StrictFloat, StrictInt, StrictStr
1616
from typing_extensions import Annotated
1717

1818
from defectdojo_api_generated.api_client import ApiClient, RequestSerialized
1919
from defectdojo_api_generated.api_response import ApiResponse
20+
from defectdojo_api_generated.helpers import IteratorResult, get_all_pages
2021
from defectdojo_api_generated.models.credential_mapping import CredentialMapping
2122
from defectdojo_api_generated.models.credential_mapping_request import CredentialMappingRequest
2223
from defectdojo_api_generated.models.paginated_credential_mapping_list import PaginatedCredentialMappingList
2324
from defectdojo_api_generated.models.paginated_delete_preview_list import PaginatedDeletePreviewList
2425
from defectdojo_api_generated.models.patched_credential_mapping_request import PatchedCredentialMappingRequest
2526
from defectdojo_api_generated.rest import RESTResponseType
2627

28+
if TYPE_CHECKING:
29+
"""placeholder for IteratorResult types if any"""
30+
from defectdojo_api_generated.models import CredentialMapping, DeletePreview
31+
2732

2833
class CredentialMappingsApi:
2934
"""NOTE: This class is auto generated by OpenAPI Generator
@@ -523,6 +528,30 @@ def _credential_mappings_delete_preview_list_serialize(
523528
_request_auth=_request_auth,
524529
)
525530

531+
def credential_mappings_delete_preview_list_iterator(
532+
self,
533+
id: Annotated[StrictInt, Field(description='A unique integer value identifying this cred_ mapping.')],
534+
limit: Annotated[Optional[StrictInt], Field(description='Number of results to return per page.')] = None,
535+
offset: Annotated[
536+
Optional[StrictInt], Field(description='The initial index from which to return the results.')
537+
] = None,
538+
_request_timeout: Union[
539+
None,
540+
Annotated[StrictFloat, Field(gt=0)],
541+
Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]],
542+
] = None,
543+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
544+
_content_type: Optional[StrictStr] = None,
545+
_headers: Optional[Dict[StrictStr, Any]] = None,
546+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
547+
) -> 'Generator[IteratorResult[DeletePreview, PaginatedDeletePreviewList], None, None]':
548+
_params = locals()
549+
for page in get_all_pages(
550+
self.api_client, CredentialMappingsApi.credential_mappings_delete_preview_list, **_params
551+
):
552+
for result in page.results:
553+
yield IteratorResult(result=result, page=page)
554+
526555
def credential_mappings_destroy(
527556
self,
528557
id: Annotated[StrictInt, Field(description='A unique integer value identifying this cred_ mapping.')],
@@ -1080,6 +1109,34 @@ def _credential_mappings_list_serialize(
10801109
_request_auth=_request_auth,
10811110
)
10821111

1112+
def credential_mappings_list_iterator(
1113+
self,
1114+
cred_id: Optional[StrictInt] = None,
1115+
engagement: Optional[StrictInt] = None,
1116+
finding: Optional[StrictInt] = None,
1117+
is_authn_provider: Optional[StrictBool] = None,
1118+
limit: Annotated[Optional[StrictInt], Field(description='Number of results to return per page.')] = None,
1119+
offset: Annotated[
1120+
Optional[StrictInt], Field(description='The initial index from which to return the results.')
1121+
] = None,
1122+
product: Optional[StrictInt] = None,
1123+
test: Optional[StrictInt] = None,
1124+
url: Optional[StrictStr] = None,
1125+
_request_timeout: Union[
1126+
None,
1127+
Annotated[StrictFloat, Field(gt=0)],
1128+
Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]],
1129+
] = None,
1130+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
1131+
_content_type: Optional[StrictStr] = None,
1132+
_headers: Optional[Dict[StrictStr, Any]] = None,
1133+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1134+
) -> 'Generator[IteratorResult[CredentialMapping, PaginatedCredentialMappingList], None, None]':
1135+
_params = locals()
1136+
for page in get_all_pages(self.api_client, CredentialMappingsApi.credential_mappings_list, **_params):
1137+
for result in page.results:
1138+
yield IteratorResult(result=result, page=page)
1139+
10831140
def credential_mappings_partial_update(
10841141
self,
10851142
id: Annotated[StrictInt, Field(description='A unique integer value identifying this cred_ mapping.')],

defectdojo_api_generated/api/credentials_api.py

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,25 @@
1010
Do not edit the class manually.
1111
""" # noqa: E501
1212

13-
from typing import Any, Dict, List, Optional, Tuple, Union
13+
from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Tuple, Union
1414

1515
from pydantic import Field, StrictFloat, StrictInt, StrictStr
1616
from typing_extensions import Annotated
1717

1818
from defectdojo_api_generated.api_client import ApiClient, RequestSerialized
1919
from defectdojo_api_generated.api_response import ApiResponse
20+
from defectdojo_api_generated.helpers import IteratorResult, get_all_pages
2021
from defectdojo_api_generated.models.credential import Credential
2122
from defectdojo_api_generated.models.credential_request import CredentialRequest
2223
from defectdojo_api_generated.models.paginated_credential_list import PaginatedCredentialList
2324
from defectdojo_api_generated.models.paginated_delete_preview_list import PaginatedDeletePreviewList
2425
from defectdojo_api_generated.models.patched_credential_request import PatchedCredentialRequest
2526
from defectdojo_api_generated.rest import RESTResponseType
2627

28+
if TYPE_CHECKING:
29+
"""placeholder for IteratorResult types if any"""
30+
from defectdojo_api_generated.models import Credential, DeletePreview
31+
2732

2833
class CredentialsApi:
2934
"""NOTE: This class is auto generated by OpenAPI Generator
@@ -523,6 +528,28 @@ def _credentials_delete_preview_list_serialize(
523528
_request_auth=_request_auth,
524529
)
525530

531+
def credentials_delete_preview_list_iterator(
532+
self,
533+
id: Annotated[StrictInt, Field(description='A unique integer value identifying this cred_ user.')],
534+
limit: Annotated[Optional[StrictInt], Field(description='Number of results to return per page.')] = None,
535+
offset: Annotated[
536+
Optional[StrictInt], Field(description='The initial index from which to return the results.')
537+
] = None,
538+
_request_timeout: Union[
539+
None,
540+
Annotated[StrictFloat, Field(gt=0)],
541+
Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]],
542+
] = None,
543+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
544+
_content_type: Optional[StrictStr] = None,
545+
_headers: Optional[Dict[StrictStr, Any]] = None,
546+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
547+
) -> 'Generator[IteratorResult[DeletePreview, PaginatedDeletePreviewList], None, None]':
548+
_params = locals()
549+
for page in get_all_pages(self.api_client, CredentialsApi.credentials_delete_preview_list, **_params):
550+
for result in page.results:
551+
yield IteratorResult(result=result, page=page)
552+
526553
def credentials_destroy(
527554
self,
528555
id: Annotated[StrictInt, Field(description='A unique integer value identifying this cred_ user.')],
@@ -995,6 +1022,31 @@ def _credentials_list_serialize(
9951022
_request_auth=_request_auth,
9961023
)
9971024

1025+
def credentials_list_iterator(
1026+
self,
1027+
limit: Annotated[Optional[StrictInt], Field(description='Number of results to return per page.')] = None,
1028+
offset: Annotated[
1029+
Optional[StrictInt], Field(description='The initial index from which to return the results.')
1030+
] = None,
1031+
prefetch: Annotated[
1032+
Optional[List[StrictStr]],
1033+
Field(description='List of fields for which to prefetch model instances and add those to the response'),
1034+
] = None,
1035+
_request_timeout: Union[
1036+
None,
1037+
Annotated[StrictFloat, Field(gt=0)],
1038+
Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]],
1039+
] = None,
1040+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
1041+
_content_type: Optional[StrictStr] = None,
1042+
_headers: Optional[Dict[StrictStr, Any]] = None,
1043+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1044+
) -> 'Generator[IteratorResult[Credential, PaginatedCredentialList], None, None]':
1045+
_params = locals()
1046+
for page in get_all_pages(self.api_client, CredentialsApi.credentials_list, **_params):
1047+
for result in page.results:
1048+
yield IteratorResult(result=result, page=page)
1049+
9981050
def credentials_partial_update(
9991051
self,
10001052
id: Annotated[StrictInt, Field(description='A unique integer value identifying this cred_ user.')],

0 commit comments

Comments
 (0)