Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Async iterator pagination #157

Merged
merged 17 commits into from
Jul 19, 2024
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions plugins/iam/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand Down Expand Up @@ -468,7 +468,7 @@ Properties:
- Maximum number of items to be returned in a response; at most 1000
- **`UserName` (string)**
- User name
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -481,7 +481,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -498,7 +498,7 @@ Properties:
- Filter results by path prefix
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -515,7 +515,7 @@ Properties:
- Filter results by path prefix
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -532,7 +532,7 @@ Properties:
- Filter results by path prefix
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -547,7 +547,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -562,7 +562,7 @@ Properties:
- Maximum number of items to be returned in a response; at most 1000
- **`PathPrefix` (string)**
- Filter results by path prefix
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -577,7 +577,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -592,7 +592,7 @@ Properties:
- Maximum number of items to be returned in a response; at most 1000
- **`PathPrefix` (string)**
- Filter results by path prefix
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -607,7 +607,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -622,7 +622,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -643,7 +643,7 @@ Properties:
- Filter results by how they are used; can be one of: `PermissionsPolicy`, `PermissionsBoundary`
- **`Scope` (string)**
- Filter results by how they are managed; can be one of: `All`, `AWS`, `Local` (customer managed)
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -658,7 +658,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -673,7 +673,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -688,7 +688,7 @@ Properties:
- Maximum number of items to be returned in a response; at most 1000
- **`PathPrefix` (string)**
- Filter results by path prefix
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -703,7 +703,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -718,7 +718,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -733,7 +733,7 @@ Properties:
- Maximum number of items to be returned in a response; at most 1000
- **`PathPrefix` (string)**
- Filter results by path prefix
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand All @@ -748,7 +748,7 @@ Properties:
- Pagination cursor
- **`MaxItems` (number)**
- Maximum number of items to be returned in a response; at most 1000
- **`paginate` (boolean)**
- **`paginate` (boolean, string)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


Expand Down
2 changes: 1 addition & 1 deletion plugins/iam/src/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const PolicyName = { ...str, required, comment: 'Name of the policy' }
const RoleName = { ...str, required, comment: 'Name of the role' }
const Tags = { ...arr, comment: 'List of tags to attach to the resource', ref: userGuide + 'id_tags.html' }
const UserName = { ...str, required, comment: 'User name' }
const valPaginate = { type: 'boolean', comment: 'Enable automatic result pagination; use this instead of making your own individual pagination requests' }
const valPaginate = { type: [ 'boolean', 'string' ], comment: 'Enable automatic result pagination; use this instead of making your own individual pagination requests' }
const InstanceProfileName = { ...str, required, comment: 'Name of the instance profile' }
const PathPrefix = { ...str, comment: 'Filter results by path prefix' }
const AWSServiceName = { ...str, required, comment: 'The service principal to which this role is attached; use `CustomSuffix` to prevent duplication errors during multiple requests for the same service' }
Expand Down
40 changes: 20 additions & 20 deletions plugins/iam/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ declare interface AwsLiteIAM {
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroup.html IAM: GetGroup}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#GetGroup IAM: GetGroup}
*/
GetGroup: (input: { GroupName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<GetGroupResponse>
GetGroup: (input: { GroupName: string, Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<GetGroupResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetInstanceProfile.html IAM: GetInstanceProfile}
Expand Down Expand Up @@ -317,115 +317,115 @@ declare interface AwsLiteIAM {
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html IAM: ListAccessKeys}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListAccessKeys IAM: ListAccessKeys}
*/
ListAccessKeys: (input: { Marker?: string, MaxItems?: number, UserName?: string, paginate?: boolean }) => Promise<ListAccessKeysResponse>
ListAccessKeys: (input: { Marker?: string, MaxItems?: number, UserName?: string, paginate?: boolean | string }) => Promise<ListAccessKeysResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccountAliases.html IAM: ListAccountAliases}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListAccountAliases IAM: ListAccountAliases}
*/
ListAccountAliases: (input: { Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListAccountAliasesResponse>
ListAccountAliases: (input: { Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListAccountAliasesResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html IAM: ListAttachedGroupPolicies}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListAttachedGroupPolicies IAM: ListAttachedGroupPolicies}
*/
ListAttachedGroupPolicies: (input: { GroupName: string, Marker?: string, PathPrefix?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListAttachedGroupPoliciesResponse>
ListAttachedGroupPolicies: (input: { GroupName: string, Marker?: string, PathPrefix?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListAttachedGroupPoliciesResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html IAM: ListAttachedRolePolicies}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListAttachedRolePolicies IAM: ListAttachedRolePolicies}
*/
ListAttachedRolePolicies: (input: { RoleName: string, Marker?: string, PathPrefix?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListAttachedRolePoliciesResponse>
ListAttachedRolePolicies: (input: { RoleName: string, Marker?: string, PathPrefix?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListAttachedRolePoliciesResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html IAM: ListAttachedUserPolicies}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListAttachedUserPolicies IAM: ListAttachedUserPolicies}
*/
ListAttachedUserPolicies: (input: { UserName: string, Marker?: string, PathPrefix?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListAttachedUserPoliciesResponse>
ListAttachedUserPolicies: (input: { UserName: string, Marker?: string, PathPrefix?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListAttachedUserPoliciesResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html IAM: ListGroupPolicies}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListGroupPolicies IAM: ListGroupPolicies}
*/
ListGroupPolicies: (input: { GroupName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListGroupPoliciesResponse>
ListGroupPolicies: (input: { GroupName: string, Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListGroupPoliciesResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroups.html IAM: ListGroups}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListGroups IAM: ListGroups}
*/
ListGroups: (input: { Marker?: string, MaxItems?: number, PathPrefix?: string, paginate?: boolean }) => Promise<ListGroupsResponse>
ListGroups: (input: { Marker?: string, MaxItems?: number, PathPrefix?: string, paginate?: boolean | string }) => Promise<ListGroupsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupsForUser.html IAM: ListGroupsForUser}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListGroupsForUser IAM: ListGroupsForUser}
*/
ListGroupsForUser: (input: { UserName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListGroupsForUserResponse>
ListGroupsForUser: (input: { UserName: string, Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListGroupsForUserResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfiles.html IAM: ListInstanceProfiles}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListInstanceProfiles IAM: ListInstanceProfiles}
*/
ListInstanceProfiles: (input: { Marker?: string, MaxItems?: number, PathPrefix?: string, paginate?: boolean }) => Promise<ListInstanceProfilesResponse>
ListInstanceProfiles: (input: { Marker?: string, MaxItems?: number, PathPrefix?: string, paginate?: boolean | string }) => Promise<ListInstanceProfilesResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfilesForRole.html IAM: ListInstanceProfilesForRole}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListInstanceProfilesForRole IAM: ListInstanceProfilesForRole}
*/
ListInstanceProfilesForRole: (input: { RoleName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListInstanceProfilesForRoleResponse>
ListInstanceProfilesForRole: (input: { RoleName: string, Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListInstanceProfilesForRoleResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfileTags.html IAM: ListInstanceProfileTags}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListInstanceProfileTags IAM: ListInstanceProfileTags}
*/
ListInstanceProfileTags: (input: { InstanceProfileName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListInstanceProfileTagsResponse>
ListInstanceProfileTags: (input: { InstanceProfileName: string, Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListInstanceProfileTagsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html IAM: ListPolicies}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListPolicies IAM: ListPolicies}
*/
ListPolicies: (input: { Marker?: string, MaxItems?: number, OnlyAttached?: boolean, PathPrefix?: string, PolicyUsageFilter?: string, Scope?: string, paginate?: boolean }) => Promise<ListPoliciesResponse>
ListPolicies: (input: { Marker?: string, MaxItems?: number, OnlyAttached?: boolean, PathPrefix?: string, PolicyUsageFilter?: string, Scope?: string, paginate?: boolean | string }) => Promise<ListPoliciesResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyTags.html IAM: ListPolicyTags}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListPolicyTags IAM: ListPolicyTags}
*/
ListPolicyTags: (input: { PolicyArn: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListPolicyTagsResponse>
ListPolicyTags: (input: { PolicyArn: string, Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListPolicyTagsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html IAM: ListRolePolicies}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListRolePolicies IAM: ListRolePolicies}
*/
ListRolePolicies: (input: { RoleName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListRolePoliciesResponse>
ListRolePolicies: (input: { RoleName: string, Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListRolePoliciesResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html IAM: ListRoles}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListRoles IAM: ListRoles}
*/
ListRoles: (input: { Marker?: string, MaxItems?: number, PathPrefix?: string, paginate?: boolean }) => Promise<ListRolesResponse>
ListRoles: (input: { Marker?: string, MaxItems?: number, PathPrefix?: string, paginate?: boolean | string }) => Promise<ListRolesResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoleTags.html IAM: ListRoleTags}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListRoleTags IAM: ListRoleTags}
*/
ListRoleTags: (input: { RoleName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListRoleTagsResponse>
ListRoleTags: (input: { RoleName: string, Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListRoleTagsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html IAM: ListUserPolicies}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListUserPolicies IAM: ListUserPolicies}
*/
ListUserPolicies: (input: { UserName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListUserPoliciesResponse>
ListUserPolicies: (input: { UserName: string, Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListUserPoliciesResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html IAM: ListUsers}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListUsers IAM: ListUsers}
*/
ListUsers: (input: { Marker?: string, MaxItems?: number, PathPrefix?: string, paginate?: boolean }) => Promise<ListUsersResponse>
ListUsers: (input: { Marker?: string, MaxItems?: number, PathPrefix?: string, paginate?: boolean | string }) => Promise<ListUsersResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserTags.html IAM: ListUserTags}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/iam/readme.md#ListUserTags IAM: ListUserTags}
*/
ListUserTags: (input: { UserName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListUserTagsResponse>
ListUserTags: (input: { UserName: string, Marker?: string, MaxItems?: number, paginate?: boolean | string }) => Promise<ListUserTagsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html IAM: PutGroupPolicy}
Expand Down
Loading