1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package chime 4 5import ( 6 "context" 7 "fmt" 8 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" 9 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" 10 "github.com/aws/aws-sdk-go-v2/service/chime/types" 11 "github.com/aws/smithy-go/middleware" 12 smithyhttp "github.com/aws/smithy-go/transport/http" 13) 14 15// Lists all channel memberships in a channel. The x-amz-chime-bearer request 16// header is mandatory. Use the AppInstanceUserArn of the user that makes the API 17// call as the value in the header. 18func (c *Client) ListChannelMemberships(ctx context.Context, params *ListChannelMembershipsInput, optFns ...func(*Options)) (*ListChannelMembershipsOutput, error) { 19 if params == nil { 20 params = &ListChannelMembershipsInput{} 21 } 22 23 result, metadata, err := c.invokeOperation(ctx, "ListChannelMemberships", params, optFns, c.addOperationListChannelMembershipsMiddlewares) 24 if err != nil { 25 return nil, err 26 } 27 28 out := result.(*ListChannelMembershipsOutput) 29 out.ResultMetadata = metadata 30 return out, nil 31} 32 33type ListChannelMembershipsInput struct { 34 35 // The maximum number of channel memberships that you want returned. 36 // 37 // This member is required. 38 ChannelArn *string 39 40 // The AppInstanceUserArn of the user that makes the API call. 41 ChimeBearer *string 42 43 // The maximum number of channel memberships that you want returned. 44 MaxResults *int32 45 46 // The token passed by previous API calls until all requested channel memberships 47 // are returned. 48 NextToken *string 49 50 // The membership type of a user, DEFAULT or HIDDEN. Default members are always 51 // returned as part of ListChannelMemberships. Hidden members are only returned if 52 // the type filter in ListChannelMemberships equals HIDDEN. Otherwise hidden 53 // members are not returned. 54 Type types.ChannelMembershipType 55 56 noSmithyDocumentSerde 57} 58 59type ListChannelMembershipsOutput struct { 60 61 // The ARN of the channel. 62 ChannelArn *string 63 64 // The information for the requested channel memberships. 65 ChannelMemberships []types.ChannelMembershipSummary 66 67 // The token passed by previous API calls until all requested channel memberships 68 // are returned. 69 NextToken *string 70 71 // Metadata pertaining to the operation's result. 72 ResultMetadata middleware.Metadata 73 74 noSmithyDocumentSerde 75} 76 77func (c *Client) addOperationListChannelMembershipsMiddlewares(stack *middleware.Stack, options Options) (err error) { 78 err = stack.Serialize.Add(&awsRestjson1_serializeOpListChannelMemberships{}, middleware.After) 79 if err != nil { 80 return err 81 } 82 err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListChannelMemberships{}, middleware.After) 83 if err != nil { 84 return err 85 } 86 if err = addSetLoggerMiddleware(stack, options); err != nil { 87 return err 88 } 89 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 90 return err 91 } 92 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 93 return err 94 } 95 if err = addResolveEndpointMiddleware(stack, options); err != nil { 96 return err 97 } 98 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 99 return err 100 } 101 if err = addRetryMiddlewares(stack, options); err != nil { 102 return err 103 } 104 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 105 return err 106 } 107 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 108 return err 109 } 110 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 111 return err 112 } 113 if err = addClientUserAgent(stack); err != nil { 114 return err 115 } 116 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 117 return err 118 } 119 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 120 return err 121 } 122 if err = addEndpointPrefix_opListChannelMembershipsMiddleware(stack); err != nil { 123 return err 124 } 125 if err = addOpListChannelMembershipsValidationMiddleware(stack); err != nil { 126 return err 127 } 128 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListChannelMemberships(options.Region), middleware.Before); err != nil { 129 return err 130 } 131 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 132 return err 133 } 134 if err = addResponseErrorMiddleware(stack); err != nil { 135 return err 136 } 137 if err = addRequestResponseLogging(stack, options); err != nil { 138 return err 139 } 140 return nil 141} 142 143type endpointPrefix_opListChannelMembershipsMiddleware struct { 144} 145 146func (*endpointPrefix_opListChannelMembershipsMiddleware) ID() string { 147 return "EndpointHostPrefix" 148} 149 150func (m *endpointPrefix_opListChannelMembershipsMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( 151 out middleware.SerializeOutput, metadata middleware.Metadata, err error, 152) { 153 if smithyhttp.GetHostnameImmutable(ctx) || smithyhttp.IsEndpointHostPrefixDisabled(ctx) { 154 return next.HandleSerialize(ctx, in) 155 } 156 157 req, ok := in.Request.(*smithyhttp.Request) 158 if !ok { 159 return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) 160 } 161 162 req.URL.Host = "messaging-" + req.URL.Host 163 164 return next.HandleSerialize(ctx, in) 165} 166func addEndpointPrefix_opListChannelMembershipsMiddleware(stack *middleware.Stack) error { 167 return stack.Serialize.Insert(&endpointPrefix_opListChannelMembershipsMiddleware{}, `OperationSerializer`, middleware.After) 168} 169 170// ListChannelMembershipsAPIClient is a client that implements the 171// ListChannelMemberships operation. 172type ListChannelMembershipsAPIClient interface { 173 ListChannelMemberships(context.Context, *ListChannelMembershipsInput, ...func(*Options)) (*ListChannelMembershipsOutput, error) 174} 175 176var _ ListChannelMembershipsAPIClient = (*Client)(nil) 177 178// ListChannelMembershipsPaginatorOptions is the paginator options for 179// ListChannelMemberships 180type ListChannelMembershipsPaginatorOptions struct { 181 // The maximum number of channel memberships that you want returned. 182 Limit int32 183 184 // Set to true if pagination should stop if the service returns a pagination token 185 // that matches the most recent token provided to the service. 186 StopOnDuplicateToken bool 187} 188 189// ListChannelMembershipsPaginator is a paginator for ListChannelMemberships 190type ListChannelMembershipsPaginator struct { 191 options ListChannelMembershipsPaginatorOptions 192 client ListChannelMembershipsAPIClient 193 params *ListChannelMembershipsInput 194 nextToken *string 195 firstPage bool 196} 197 198// NewListChannelMembershipsPaginator returns a new ListChannelMembershipsPaginator 199func NewListChannelMembershipsPaginator(client ListChannelMembershipsAPIClient, params *ListChannelMembershipsInput, optFns ...func(*ListChannelMembershipsPaginatorOptions)) *ListChannelMembershipsPaginator { 200 if params == nil { 201 params = &ListChannelMembershipsInput{} 202 } 203 204 options := ListChannelMembershipsPaginatorOptions{} 205 if params.MaxResults != nil { 206 options.Limit = *params.MaxResults 207 } 208 209 for _, fn := range optFns { 210 fn(&options) 211 } 212 213 return &ListChannelMembershipsPaginator{ 214 options: options, 215 client: client, 216 params: params, 217 firstPage: true, 218 } 219} 220 221// HasMorePages returns a boolean indicating whether more pages are available 222func (p *ListChannelMembershipsPaginator) HasMorePages() bool { 223 return p.firstPage || p.nextToken != nil 224} 225 226// NextPage retrieves the next ListChannelMemberships page. 227func (p *ListChannelMembershipsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListChannelMembershipsOutput, error) { 228 if !p.HasMorePages() { 229 return nil, fmt.Errorf("no more pages available") 230 } 231 232 params := *p.params 233 params.NextToken = p.nextToken 234 235 var limit *int32 236 if p.options.Limit > 0 { 237 limit = &p.options.Limit 238 } 239 params.MaxResults = limit 240 241 result, err := p.client.ListChannelMemberships(ctx, ¶ms, optFns...) 242 if err != nil { 243 return nil, err 244 } 245 p.firstPage = false 246 247 prevToken := p.nextToken 248 p.nextToken = result.NextToken 249 250 if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { 251 p.nextToken = nil 252 } 253 254 return result, nil 255} 256 257func newServiceMetadataMiddleware_opListChannelMemberships(region string) *awsmiddleware.RegisterServiceMetadata { 258 return &awsmiddleware.RegisterServiceMetadata{ 259 Region: region, 260 ServiceID: ServiceID, 261 SigningName: "chime", 262 OperationName: "ListChannelMemberships", 263 } 264} 265