1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package dax
4
5import (
6	"context"
7	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
8	"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
9	"github.com/aws/aws-sdk-go-v2/service/dax/types"
10	"github.com/aws/smithy-go/middleware"
11	smithyhttp "github.com/aws/smithy-go/transport/http"
12)
13
14// Returns information about all provisioned DAX clusters if no cluster identifier
15// is specified, or about a specific DAX cluster if a cluster identifier is
16// supplied. If the cluster is in the CREATING state, only cluster level
17// information will be displayed until all of the nodes are successfully
18// provisioned. If the cluster is in the DELETING state, only cluster level
19// information will be displayed. If nodes are currently being added to the DAX
20// cluster, node endpoint information and creation time for the additional nodes
21// will not be displayed until they are completely provisioned. When the DAX
22// cluster state is available, the cluster is ready for use. If nodes are currently
23// being removed from the DAX cluster, no endpoint information for the removed
24// nodes is displayed.
25func (c *Client) DescribeClusters(ctx context.Context, params *DescribeClustersInput, optFns ...func(*Options)) (*DescribeClustersOutput, error) {
26	if params == nil {
27		params = &DescribeClustersInput{}
28	}
29
30	result, metadata, err := c.invokeOperation(ctx, "DescribeClusters", params, optFns, addOperationDescribeClustersMiddlewares)
31	if err != nil {
32		return nil, err
33	}
34
35	out := result.(*DescribeClustersOutput)
36	out.ResultMetadata = metadata
37	return out, nil
38}
39
40type DescribeClustersInput struct {
41
42	// The names of the DAX clusters being described.
43	ClusterNames []string
44
45	// The maximum number of results to include in the response. If more results exist
46	// than the specified MaxResults value, a token is included in the response so that
47	// the remaining results can be retrieved. The value for MaxResults must be between
48	// 20 and 100.
49	MaxResults *int32
50
51	// An optional token returned from a prior request. Use this token for pagination
52	// of results from this action. If this parameter is specified, the response
53	// includes only results beyond the token, up to the value specified by MaxResults.
54	NextToken *string
55}
56
57type DescribeClustersOutput struct {
58
59	// The descriptions of your DAX clusters, in response to a DescribeClusters
60	// request.
61	Clusters []types.Cluster
62
63	// Provides an identifier to allow retrieval of paginated results.
64	NextToken *string
65
66	// Metadata pertaining to the operation's result.
67	ResultMetadata middleware.Metadata
68}
69
70func addOperationDescribeClustersMiddlewares(stack *middleware.Stack, options Options) (err error) {
71	err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeClusters{}, middleware.After)
72	if err != nil {
73		return err
74	}
75	err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeClusters{}, middleware.After)
76	if err != nil {
77		return err
78	}
79	if err = addSetLoggerMiddleware(stack, options); err != nil {
80		return err
81	}
82	if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
83		return err
84	}
85	if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
86		return err
87	}
88	if err = addResolveEndpointMiddleware(stack, options); err != nil {
89		return err
90	}
91	if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
92		return err
93	}
94	if err = addRetryMiddlewares(stack, options); err != nil {
95		return err
96	}
97	if err = addHTTPSignerV4Middleware(stack, options); err != nil {
98		return err
99	}
100	if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
101		return err
102	}
103	if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
104		return err
105	}
106	if err = addClientUserAgent(stack); err != nil {
107		return err
108	}
109	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
110		return err
111	}
112	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
113		return err
114	}
115	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeClusters(options.Region), middleware.Before); err != nil {
116		return err
117	}
118	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
119		return err
120	}
121	if err = addResponseErrorMiddleware(stack); err != nil {
122		return err
123	}
124	if err = addRequestResponseLogging(stack, options); err != nil {
125		return err
126	}
127	return nil
128}
129
130func newServiceMetadataMiddleware_opDescribeClusters(region string) *awsmiddleware.RegisterServiceMetadata {
131	return &awsmiddleware.RegisterServiceMetadata{
132		Region:        region,
133		ServiceID:     ServiceID,
134		SigningName:   "dax",
135		OperationName: "DescribeClusters",
136	}
137}
138