1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package servicediscovery 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/servicediscovery/types" 11 "github.com/aws/smithy-go/middleware" 12 smithyhttp "github.com/aws/smithy-go/transport/http" 13) 14 15// Discovers registered instances for a specified namespace and service. You can 16// use DiscoverInstances to discover instances for any type of namespace. For 17// public and private DNS namespaces, you can also use DNS queries to discover 18// instances. 19func (c *Client) DiscoverInstances(ctx context.Context, params *DiscoverInstancesInput, optFns ...func(*Options)) (*DiscoverInstancesOutput, error) { 20 if params == nil { 21 params = &DiscoverInstancesInput{} 22 } 23 24 result, metadata, err := c.invokeOperation(ctx, "DiscoverInstances", params, optFns, addOperationDiscoverInstancesMiddlewares) 25 if err != nil { 26 return nil, err 27 } 28 29 out := result.(*DiscoverInstancesOutput) 30 out.ResultMetadata = metadata 31 return out, nil 32} 33 34type DiscoverInstancesInput struct { 35 36 // The name of the namespace that you specified when you registered the instance. 37 // 38 // This member is required. 39 NamespaceName *string 40 41 // The name of the service that you specified when you registered the instance. 42 // 43 // This member is required. 44 ServiceName *string 45 46 // The health status of the instances that you want to discover. 47 HealthStatus types.HealthStatusFilter 48 49 // The maximum number of instances that you want AWS Cloud Map to return in the 50 // response to a DiscoverInstances request. If you don't specify a value for 51 // MaxResults, AWS Cloud Map returns up to 100 instances. 52 MaxResults *int32 53 54 // Opportunistic filters to scope the results based on custom attributes. If there 55 // are instances that match both the filters specified in both the QueryParameters 56 // parameter and this parameter, they are returned. Otherwise, these filters are 57 // ignored and only instances that match the filters specified in the 58 // QueryParameters parameter are returned. 59 OptionalParameters map[string]string 60 61 // Filters to scope the results based on custom attributes for the instance. For 62 // example, {version=v1, az=1a}. Only instances that match all the specified 63 // key-value pairs will be returned. 64 QueryParameters map[string]string 65} 66 67type DiscoverInstancesOutput struct { 68 69 // A complex type that contains one HttpInstanceSummary for each registered 70 // instance. 71 Instances []types.HttpInstanceSummary 72 73 // Metadata pertaining to the operation's result. 74 ResultMetadata middleware.Metadata 75} 76 77func addOperationDiscoverInstancesMiddlewares(stack *middleware.Stack, options Options) (err error) { 78 err = stack.Serialize.Add(&awsAwsjson11_serializeOpDiscoverInstances{}, middleware.After) 79 if err != nil { 80 return err 81 } 82 err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDiscoverInstances{}, 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_opDiscoverInstancesMiddleware(stack); err != nil { 123 return err 124 } 125 if err = addOpDiscoverInstancesValidationMiddleware(stack); err != nil { 126 return err 127 } 128 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDiscoverInstances(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_opDiscoverInstancesMiddleware struct { 144} 145 146func (*endpointPrefix_opDiscoverInstancesMiddleware) ID() string { 147 return "EndpointHostPrefix" 148} 149 150func (m *endpointPrefix_opDiscoverInstancesMiddleware) 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 = "data-" + req.URL.Host 163 164 return next.HandleSerialize(ctx, in) 165} 166func addEndpointPrefix_opDiscoverInstancesMiddleware(stack *middleware.Stack) error { 167 return stack.Serialize.Insert(&endpointPrefix_opDiscoverInstancesMiddleware{}, `OperationSerializer`, middleware.After) 168} 169 170func newServiceMetadataMiddleware_opDiscoverInstances(region string) *awsmiddleware.RegisterServiceMetadata { 171 return &awsmiddleware.RegisterServiceMetadata{ 172 Region: region, 173 ServiceID: ServiceID, 174 SigningName: "servicediscovery", 175 OperationName: "DiscoverInstances", 176 } 177} 178