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 outbound cross-cluster search connections for a source domain. 16func (c *Client) DescribeOutboundCrossClusterSearchConnections(ctx context.Context, params *DescribeOutboundCrossClusterSearchConnectionsInput, optFns ...func(*Options)) (*DescribeOutboundCrossClusterSearchConnectionsOutput, error) { 17 if params == nil { 18 params = &DescribeOutboundCrossClusterSearchConnectionsInput{} 19 } 20 21 result, metadata, err := c.invokeOperation(ctx, "DescribeOutboundCrossClusterSearchConnections", params, optFns, addOperationDescribeOutboundCrossClusterSearchConnectionsMiddlewares) 22 if err != nil { 23 return nil, err 24 } 25 26 out := result.(*DescribeOutboundCrossClusterSearchConnectionsOutput) 27 out.ResultMetadata = metadata 28 return out, nil 29} 30 31// Container for the parameters to the 32// DescribeOutboundCrossClusterSearchConnections operation. 33type DescribeOutboundCrossClusterSearchConnectionsInput struct { 34 35 // A list of filters used to match properties for outbound cross-cluster search 36 // connection. Available Filter names for this operation are: 37 // 38 // * 39 // cross-cluster-search-connection-id 40 // 41 // * destination-domain-info.domain-name 42 // 43 // * 44 // destination-domain-info.owner-id 45 // 46 // * destination-domain-info.region 47 // 48 // * 49 // source-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 DescribeOutboundCrossClusterSearchConnections request. Contains 62// the list of connections matching the filter criteria. 63type DescribeOutboundCrossClusterSearchConnectionsOutput struct { 64 65 // Consists of list of OutboundCrossClusterSearchConnection matching the specified 66 // filter criteria. 67 CrossClusterSearchConnections []types.OutboundCrossClusterSearchConnection 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 addOperationDescribeOutboundCrossClusterSearchConnectionsMiddlewares(stack *middleware.Stack, options Options) (err error) { 78 err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeOutboundCrossClusterSearchConnections{}, middleware.After) 79 if err != nil { 80 return err 81 } 82 err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeOutboundCrossClusterSearchConnections{}, 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_opDescribeOutboundCrossClusterSearchConnections(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// DescribeOutboundCrossClusterSearchConnectionsAPIClient is a client that 138// implements the DescribeOutboundCrossClusterSearchConnections operation. 139type DescribeOutboundCrossClusterSearchConnectionsAPIClient interface { 140 DescribeOutboundCrossClusterSearchConnections(context.Context, *DescribeOutboundCrossClusterSearchConnectionsInput, ...func(*Options)) (*DescribeOutboundCrossClusterSearchConnectionsOutput, error) 141} 142 143var _ DescribeOutboundCrossClusterSearchConnectionsAPIClient = (*Client)(nil) 144 145// DescribeOutboundCrossClusterSearchConnectionsPaginatorOptions is the paginator 146// options for DescribeOutboundCrossClusterSearchConnections 147type DescribeOutboundCrossClusterSearchConnectionsPaginatorOptions 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// DescribeOutboundCrossClusterSearchConnectionsPaginator is a paginator for 158// DescribeOutboundCrossClusterSearchConnections 159type DescribeOutboundCrossClusterSearchConnectionsPaginator struct { 160 options DescribeOutboundCrossClusterSearchConnectionsPaginatorOptions 161 client DescribeOutboundCrossClusterSearchConnectionsAPIClient 162 params *DescribeOutboundCrossClusterSearchConnectionsInput 163 nextToken *string 164 firstPage bool 165} 166 167// NewDescribeOutboundCrossClusterSearchConnectionsPaginator returns a new 168// DescribeOutboundCrossClusterSearchConnectionsPaginator 169func NewDescribeOutboundCrossClusterSearchConnectionsPaginator(client DescribeOutboundCrossClusterSearchConnectionsAPIClient, params *DescribeOutboundCrossClusterSearchConnectionsInput, optFns ...func(*DescribeOutboundCrossClusterSearchConnectionsPaginatorOptions)) *DescribeOutboundCrossClusterSearchConnectionsPaginator { 170 options := DescribeOutboundCrossClusterSearchConnectionsPaginatorOptions{} 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 = &DescribeOutboundCrossClusterSearchConnectionsInput{} 181 } 182 183 return &DescribeOutboundCrossClusterSearchConnectionsPaginator{ 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 *DescribeOutboundCrossClusterSearchConnectionsPaginator) HasMorePages() bool { 193 return p.firstPage || p.nextToken != nil 194} 195 196// NextPage retrieves the next DescribeOutboundCrossClusterSearchConnections page. 197func (p *DescribeOutboundCrossClusterSearchConnectionsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*DescribeOutboundCrossClusterSearchConnectionsOutput, 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.DescribeOutboundCrossClusterSearchConnections(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_opDescribeOutboundCrossClusterSearchConnections(region string) *awsmiddleware.RegisterServiceMetadata { 224 return &awsmiddleware.RegisterServiceMetadata{ 225 Region: region, 226 ServiceID: ServiceID, 227 SigningName: "es", 228 OperationName: "DescribeOutboundCrossClusterSearchConnections", 229 } 230} 231