api_op_ListResourcePermissionStatements.go (5978B)
1 // Code generated by smithy-go-codegen DO NOT EDIT. 2 3 package signin 4 5 import ( 6 "context" 7 "fmt" 8 9 "github.com/aws/aws-sdk-go-v2/service/signin/types" 10 "github.com/aws/smithy-go/middleware" 11 "github.com/aws/smithy-go/ptr" 12 ) 13 14 // Retrieve all permission statements in the account's SignIn resource-based policy 15 func (c *Client) ListResourcePermissionStatements(ctx context.Context, params *ListResourcePermissionStatementsInput, optFns ...func(*Options)) (*ListResourcePermissionStatementsOutput, error) { 16 if params == nil { 17 params = &ListResourcePermissionStatementsInput{} 18 } 19 20 result, metadata, err := c.invokeOperation(ctx, "ListResourcePermissionStatements", params, optFns, c.addOperationListResourcePermissionStatementsMiddlewares) 21 if err != nil { 22 return nil, err 23 } 24 25 out := result.(*ListResourcePermissionStatementsOutput) 26 out.ResultMetadata = metadata 27 return out, nil 28 } 29 30 // Input for ListResourcePermissionStatements operation 31 type ListResourcePermissionStatementsInput struct { 32 33 // Maximum number of results to return 34 MaxResults *int32 35 36 // Token for pagination 37 NextToken *string 38 39 noSmithyDocumentSerde 40 } 41 42 func (in *ListResourcePermissionStatementsInput) bindEndpointParams(p *EndpointParameters) { 43 44 p.IsControlPlane = ptr.Bool(true) 45 } 46 47 // Output for ListResourcePermissionStatements operation 48 type ListResourcePermissionStatementsOutput struct { 49 50 // List of permission statement summaries 51 // 52 // This member is required. 53 PermissionStatements []types.PermissionStatementSummary 54 55 // Token for next page of results 56 NextToken *string 57 58 // Metadata pertaining to the operation's result. 59 ResultMetadata middleware.Metadata 60 61 noSmithyDocumentSerde 62 } 63 64 func (c *Client) addOperationListResourcePermissionStatementsMiddlewares(stack *middleware.Stack, options Options) (err error) { 65 err = stack.Serialize.Add(&awsRestjson1_serializeOpListResourcePermissionStatements{}, middleware.After) 66 if err != nil { 67 return err 68 } 69 err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListResourcePermissionStatements{}, middleware.After) 70 if err != nil { 71 return err 72 } 73 74 if err = addComputeContentLength(stack); err != nil { 75 return err 76 } 77 if err = addResolveEndpointMiddleware(stack, options); err != nil { 78 return err 79 } 80 if err = addComputePayloadSHA256(stack); err != nil { 81 return err 82 } 83 if err = addRecordResponseTiming(stack, options); err != nil { 84 return err 85 } 86 if err = addCredentialSource(stack, options); err != nil { 87 return err 88 } 89 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 90 return err 91 } 92 if err = addResponseErrorMiddleware(stack); err != nil { 93 return err 94 } 95 if err = addRequestResponseLogging(stack, options); err != nil { 96 return err 97 } 98 if err = addDisableHTTPSMiddleware(stack, options); err != nil { 99 return err 100 } 101 if err = addInterceptors(stack, options); err != nil { 102 return err 103 } 104 return nil 105 } 106 107 // ListResourcePermissionStatementsPaginatorOptions is the paginator options for 108 // ListResourcePermissionStatements 109 type ListResourcePermissionStatementsPaginatorOptions struct { 110 // Maximum number of results to return 111 Limit int32 112 113 // Set to true if pagination should stop if the service returns a pagination token 114 // that matches the most recent token provided to the service. 115 StopOnDuplicateToken bool 116 } 117 118 // ListResourcePermissionStatementsPaginator is a paginator for 119 // ListResourcePermissionStatements 120 type ListResourcePermissionStatementsPaginator struct { 121 options ListResourcePermissionStatementsPaginatorOptions 122 client ListResourcePermissionStatementsAPIClient 123 params *ListResourcePermissionStatementsInput 124 nextToken *string 125 firstPage bool 126 } 127 128 // NewListResourcePermissionStatementsPaginator returns a new 129 // ListResourcePermissionStatementsPaginator 130 func NewListResourcePermissionStatementsPaginator(client ListResourcePermissionStatementsAPIClient, params *ListResourcePermissionStatementsInput, optFns ...func(*ListResourcePermissionStatementsPaginatorOptions)) *ListResourcePermissionStatementsPaginator { 131 if params == nil { 132 params = &ListResourcePermissionStatementsInput{} 133 } 134 135 options := ListResourcePermissionStatementsPaginatorOptions{} 136 if params.MaxResults != nil { 137 options.Limit = *params.MaxResults 138 } 139 140 for _, fn := range optFns { 141 fn(&options) 142 } 143 144 return &ListResourcePermissionStatementsPaginator{ 145 options: options, 146 client: client, 147 params: params, 148 firstPage: true, 149 nextToken: params.NextToken, 150 } 151 } 152 153 // HasMorePages returns a boolean indicating whether more pages are available 154 func (p *ListResourcePermissionStatementsPaginator) HasMorePages() bool { 155 return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) 156 } 157 158 // NextPage retrieves the next ListResourcePermissionStatements page. 159 func (p *ListResourcePermissionStatementsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListResourcePermissionStatementsOutput, error) { 160 if !p.HasMorePages() { 161 return nil, fmt.Errorf("no more pages available") 162 } 163 164 params := *p.params 165 params.NextToken = p.nextToken 166 167 var limit *int32 168 if p.options.Limit > 0 { 169 limit = &p.options.Limit 170 } 171 params.MaxResults = limit 172 173 optFns = append([]func(*Options){ 174 addIsPaginatorUserAgent, 175 }, optFns...) 176 result, err := p.client.ListResourcePermissionStatements(ctx, ¶ms, optFns...) 177 if err != nil { 178 return nil, err 179 } 180 p.firstPage = false 181 182 prevToken := p.nextToken 183 p.nextToken = result.NextToken 184 185 if p.options.StopOnDuplicateToken && 186 prevToken != nil && 187 p.nextToken != nil && 188 *prevToken == *p.nextToken { 189 p.nextToken = nil 190 } 191 192 return result, nil 193 } 194 195 // ListResourcePermissionStatementsAPIClient is a client that implements the 196 // ListResourcePermissionStatements operation. 197 type ListResourcePermissionStatementsAPIClient interface { 198 ListResourcePermissionStatements(context.Context, *ListResourcePermissionStatementsInput, ...func(*Options)) (*ListResourcePermissionStatementsOutput, error) 199 } 200 201 var _ ListResourcePermissionStatementsAPIClient = (*Client)(nil)