1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package elasticsearchservice 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/elasticsearchservice/types" 11 "github.com/aws/smithy-go/middleware" 12 smithyhttp "github.com/aws/smithy-go/transport/http" 13) 14 15// Lists all the inbound cross-cluster search connections for a destination domain. 16func (c *Client) DescribeInboundCrossClusterSearchConnections(ctx context.Context, params *DescribeInboundCrossClusterSearchConnectionsInput, optFns ...func(*Options)) (*DescribeInboundCrossClusterSearchConnectionsOutput, error) { 17 if params == nil { 18 params = &DescribeInboundCrossClusterSearchConnectionsInput{} 19 } 20 21 result, metadata, err := c.invokeOperation(ctx, "DescribeInboundCrossClusterSearchConnections", params, optFns, addOperationDescribeInboundCrossClusterSearchConnectionsMiddlewares) 22 if err != nil { 23 return nil, err 24 } 25 26 out := result.(*DescribeInboundCrossClusterSearchConnectionsOutput) 27 out.ResultMetadata = metadata 28 return out, nil 29} 30 31// Container for the parameters to the DescribeInboundCrossClusterSearchConnections 32// operation. 33type DescribeInboundCrossClusterSearchConnectionsInput struct { 34 35 // A list of filters used to match properties for inbound cross-cluster search 36 // connection. Available Filter names for this operation are: 37 // 38 // * 39 // cross-cluster-search-connection-id 40 // 41 // * source-domain-info.domain-name 42 // 43 // * 44 // source-domain-info.owner-id 45 // 46 // * source-domain-info.region 47 // 48 // * 49 // destination-domain-info.domain-name 50 Filters []types.Filter 51 52 // Set this value to limit the number of results returned. If not specified, 53 // defaults to 100. 54 MaxResults int32 55 56 // NextToken is sent in case the earlier API call results contain the NextToken. It 57 // is used for pagination. 58 NextToken *string 59} 60 61// The result of a DescribeInboundCrossClusterSearchConnections request. Contains 62// the list of connections matching the filter criteria. 63type DescribeInboundCrossClusterSearchConnectionsOutput struct { 64 65 // Consists of list of InboundCrossClusterSearchConnection matching the specified 66 // filter criteria. 67 CrossClusterSearchConnections []types.InboundCrossClusterSearchConnection 68 69 // If more results are available and NextToken is present, make the next request to 70 // the same API with the received NextToken to paginate the remaining results. 71 NextToken *string 72 73 // Metadata pertaining to the operation's result. 74 ResultMetadata middleware.Metadata 75} 76 77func addOperationDescribeInboundCrossClusterSearchConnectionsMiddlewares(stack *middleware.Stack, options Options) (err error) { 78 err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeInboundCrossClusterSearchConnections{}, middleware.After) 79 if err != nil { 80 return err 81 } 82 err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeInboundCrossClusterSearchConnections{}, 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 = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeInboundCrossClusterSearchConnections(options.Region), middleware.Before); err != nil { 123 return err 124 } 125 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 126 return err 127 } 128 if err = addResponseErrorMiddleware(stack); err != nil { 129 return err 130 } 131 if err = addRequestResponseLogging(stack, options); err != nil { 132 return err 133 } 134 return nil 135} 136 137// DescribeInboundCrossClusterSearchConnectionsAPIClient is a client that 138// implements the DescribeInboundCrossClusterSearchConnections operation. 139type DescribeInboundCrossClusterSearchConnectionsAPIClient interface { 140 DescribeInboundCrossClusterSearchConnections(context.Context, *DescribeInboundCrossClusterSearchConnectionsInput, ...func(*Options)) (*DescribeInboundCrossClusterSearchConnectionsOutput, error) 141} 142 143var _ DescribeInboundCrossClusterSearchConnectionsAPIClient = (*Client)(nil) 144 145// DescribeInboundCrossClusterSearchConnectionsPaginatorOptions is the paginator 146// options for DescribeInboundCrossClusterSearchConnections 147type DescribeInboundCrossClusterSearchConnectionsPaginatorOptions struct { 148 // Set this value to limit the number of results returned. If not specified, 149 // defaults to 100. 150 Limit int32 151 152 // Set to true if pagination should stop if the service returns a pagination token 153 // that matches the most recent token provided to the service. 154 StopOnDuplicateToken bool 155} 156 157// DescribeInboundCrossClusterSearchConnectionsPaginator is a paginator for 158// DescribeInboundCrossClusterSearchConnections 159type DescribeInboundCrossClusterSearchConnectionsPaginator struct { 160 options DescribeInboundCrossClusterSearchConnectionsPaginatorOptions 161 client DescribeInboundCrossClusterSearchConnectionsAPIClient 162 params *DescribeInboundCrossClusterSearchConnectionsInput 163 nextToken *string 164 firstPage bool 165} 166 167// NewDescribeInboundCrossClusterSearchConnectionsPaginator returns a new 168// DescribeInboundCrossClusterSearchConnectionsPaginator 169func NewDescribeInboundCrossClusterSearchConnectionsPaginator(client DescribeInboundCrossClusterSearchConnectionsAPIClient, params *DescribeInboundCrossClusterSearchConnectionsInput, optFns ...func(*DescribeInboundCrossClusterSearchConnectionsPaginatorOptions)) *DescribeInboundCrossClusterSearchConnectionsPaginator { 170 options := DescribeInboundCrossClusterSearchConnectionsPaginatorOptions{} 171 if params.MaxResults != 0 { 172 options.Limit = params.MaxResults 173 } 174 175 for _, fn := range optFns { 176 fn(&options) 177 } 178 179 if params == nil { 180 params = &DescribeInboundCrossClusterSearchConnectionsInput{} 181 } 182 183 return &DescribeInboundCrossClusterSearchConnectionsPaginator{ 184 options: options, 185 client: client, 186 params: params, 187 firstPage: true, 188 } 189} 190 191// HasMorePages returns a boolean indicating whether more pages are available 192func (p *DescribeInboundCrossClusterSearchConnectionsPaginator) HasMorePages() bool { 193 return p.firstPage || p.nextToken != nil 194} 195 196// NextPage retrieves the next DescribeInboundCrossClusterSearchConnections page. 197func (p *DescribeInboundCrossClusterSearchConnectionsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*DescribeInboundCrossClusterSearchConnectionsOutput, error) { 198 if !p.HasMorePages() { 199 return nil, fmt.Errorf("no more pages available") 200 } 201 202 params := *p.params 203 params.NextToken = p.nextToken 204 205 params.MaxResults = p.options.Limit 206 207 result, err := p.client.DescribeInboundCrossClusterSearchConnections(ctx, ¶ms, optFns...) 208 if err != nil { 209 return nil, err 210 } 211 p.firstPage = false 212 213 prevToken := p.nextToken 214 p.nextToken = result.NextToken 215 216 if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { 217 p.nextToken = nil 218 } 219 220 return result, nil 221} 222 223func newServiceMetadataMiddleware_opDescribeInboundCrossClusterSearchConnections(region string) *awsmiddleware.RegisterServiceMetadata { 224 return &awsmiddleware.RegisterServiceMetadata{ 225 Region: region, 226 ServiceID: ServiceID, 227 SigningName: "es", 228 OperationName: "DescribeInboundCrossClusterSearchConnections", 229 } 230} 231