Skip to content

Commit 5bfe554

Browse files
author
awstools
committed
feat(client-servicediscovery): Adds a new DiscoverInstancesRevision API and also adds InstanceRevision field to the DiscoverInstances API response.
1 parent f2b4b67 commit 5bfe554

File tree

10 files changed

+446
-45
lines changed

10 files changed

+446
-45
lines changed

clients/client-servicediscovery/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,14 @@ DiscoverInstances
273273

274274
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-servicediscovery/classes/discoverinstancescommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-servicediscovery/interfaces/discoverinstancescommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-servicediscovery/interfaces/discoverinstancescommandoutput.html)
275275

276+
</details>
277+
<details>
278+
<summary>
279+
DiscoverInstancesRevision
280+
</summary>
281+
282+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-servicediscovery/classes/discoverinstancesrevisioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-servicediscovery/interfaces/discoverinstancesrevisioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-servicediscovery/interfaces/discoverinstancesrevisioncommandoutput.html)
283+
276284
</details>
277285
<details>
278286
<summary>

clients/client-servicediscovery/src/ServiceDiscovery.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ import {
4242
DiscoverInstancesCommandInput,
4343
DiscoverInstancesCommandOutput,
4444
} from "./commands/DiscoverInstancesCommand";
45+
import {
46+
DiscoverInstancesRevisionCommand,
47+
DiscoverInstancesRevisionCommandInput,
48+
DiscoverInstancesRevisionCommandOutput,
49+
} from "./commands/DiscoverInstancesRevisionCommand";
4550
import { GetInstanceCommand, GetInstanceCommandInput, GetInstanceCommandOutput } from "./commands/GetInstanceCommand";
4651
import {
4752
GetInstancesHealthStatusCommand,
@@ -131,6 +136,7 @@ const commands = {
131136
DeleteServiceCommand,
132137
DeregisterInstanceCommand,
133138
DiscoverInstancesCommand,
139+
DiscoverInstancesRevisionCommand,
134140
GetInstanceCommand,
135141
GetInstancesHealthStatusCommand,
136142
GetNamespaceCommand,
@@ -273,6 +279,23 @@ export interface ServiceDiscovery {
273279
cb: (err: any, data?: DiscoverInstancesCommandOutput) => void
274280
): void;
275281

282+
/**
283+
* @see {@link DiscoverInstancesRevisionCommand}
284+
*/
285+
discoverInstancesRevision(
286+
args: DiscoverInstancesRevisionCommandInput,
287+
options?: __HttpHandlerOptions
288+
): Promise<DiscoverInstancesRevisionCommandOutput>;
289+
discoverInstancesRevision(
290+
args: DiscoverInstancesRevisionCommandInput,
291+
cb: (err: any, data?: DiscoverInstancesRevisionCommandOutput) => void
292+
): void;
293+
discoverInstancesRevision(
294+
args: DiscoverInstancesRevisionCommandInput,
295+
options: __HttpHandlerOptions,
296+
cb: (err: any, data?: DiscoverInstancesRevisionCommandOutput) => void
297+
): void;
298+
276299
/**
277300
* @see {@link GetInstanceCommand}
278301
*/

clients/client-servicediscovery/src/ServiceDiscoveryClient.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ import { DeleteNamespaceCommandInput, DeleteNamespaceCommandOutput } from "./com
6767
import { DeleteServiceCommandInput, DeleteServiceCommandOutput } from "./commands/DeleteServiceCommand";
6868
import { DeregisterInstanceCommandInput, DeregisterInstanceCommandOutput } from "./commands/DeregisterInstanceCommand";
6969
import { DiscoverInstancesCommandInput, DiscoverInstancesCommandOutput } from "./commands/DiscoverInstancesCommand";
70+
import {
71+
DiscoverInstancesRevisionCommandInput,
72+
DiscoverInstancesRevisionCommandOutput,
73+
} from "./commands/DiscoverInstancesRevisionCommand";
7074
import { GetInstanceCommandInput, GetInstanceCommandOutput } from "./commands/GetInstanceCommand";
7175
import {
7276
GetInstancesHealthStatusCommandInput,
@@ -126,6 +130,7 @@ export type ServiceInputTypes =
126130
| DeleteServiceCommandInput
127131
| DeregisterInstanceCommandInput
128132
| DiscoverInstancesCommandInput
133+
| DiscoverInstancesRevisionCommandInput
129134
| GetInstanceCommandInput
130135
| GetInstancesHealthStatusCommandInput
131136
| GetNamespaceCommandInput
@@ -157,6 +162,7 @@ export type ServiceOutputTypes =
157162
| DeleteServiceCommandOutput
158163
| DeregisterInstanceCommandOutput
159164
| DiscoverInstancesCommandOutput
165+
| DiscoverInstancesRevisionCommandOutput
160166
| GetInstanceCommandOutput
161167
| GetInstancesHealthStatusCommandOutput
162168
| GetNamespaceCommandOutput

clients/client-servicediscovery/src/commands/DiscoverInstancesCommand.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@ export interface DiscoverInstancesCommandOutput extends DiscoverInstancesRespons
3737
/**
3838
* @public
3939
* <p>Discovers registered instances for a specified namespace and service. You can use
40-
* <code>DiscoverInstances</code> to discover instances for any type of namespace. For public and
41-
* private DNS namespaces, you can also use DNS queries to discover instances.</p>
40+
* <code>DiscoverInstances</code> to discover instances for any type of namespace.
41+
* <code>DiscoverInstances</code> returns a randomized list of instances allowing customers to
42+
* distribute traffic evenly across instances. For public and private DNS namespaces, you can also
43+
* use DNS queries to discover instances.</p>
4244
* @example
4345
* Use a bare-bones client and the command you need to make an API call.
4446
* ```javascript
@@ -71,6 +73,7 @@ export interface DiscoverInstancesCommandOutput extends DiscoverInstancesRespons
7173
* // },
7274
* // },
7375
* // ],
76+
* // InstancesRevision: Number("long"),
7477
* // };
7578
*
7679
* ```
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
// smithy-typescript generated code
2+
import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
3+
import { getSerdePlugin } from "@smithy/middleware-serde";
4+
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
5+
import { Command as $Command } from "@smithy/smithy-client";
6+
import {
7+
FinalizeHandlerArguments,
8+
Handler,
9+
HandlerExecutionContext,
10+
HttpHandlerOptions as __HttpHandlerOptions,
11+
MetadataBearer as __MetadataBearer,
12+
MiddlewareStack,
13+
SerdeContext as __SerdeContext,
14+
} from "@smithy/types";
15+
16+
import { DiscoverInstancesRevisionRequest, DiscoverInstancesRevisionResponse } from "../models/models_0";
17+
import { de_DiscoverInstancesRevisionCommand, se_DiscoverInstancesRevisionCommand } from "../protocols/Aws_json1_1";
18+
import { ServiceDiscoveryClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ServiceDiscoveryClient";
19+
20+
/**
21+
* @public
22+
*/
23+
export { __MetadataBearer, $Command };
24+
/**
25+
* @public
26+
*
27+
* The input for {@link DiscoverInstancesRevisionCommand}.
28+
*/
29+
export interface DiscoverInstancesRevisionCommandInput extends DiscoverInstancesRevisionRequest {}
30+
/**
31+
* @public
32+
*
33+
* The output of {@link DiscoverInstancesRevisionCommand}.
34+
*/
35+
export interface DiscoverInstancesRevisionCommandOutput extends DiscoverInstancesRevisionResponse, __MetadataBearer {}
36+
37+
/**
38+
* @public
39+
* <p>Discovers the increasing revision associated with an instance.</p>
40+
* @example
41+
* Use a bare-bones client and the command you need to make an API call.
42+
* ```javascript
43+
* import { ServiceDiscoveryClient, DiscoverInstancesRevisionCommand } from "@aws-sdk/client-servicediscovery"; // ES Modules import
44+
* // const { ServiceDiscoveryClient, DiscoverInstancesRevisionCommand } = require("@aws-sdk/client-servicediscovery"); // CommonJS import
45+
* const client = new ServiceDiscoveryClient(config);
46+
* const input = { // DiscoverInstancesRevisionRequest
47+
* NamespaceName: "STRING_VALUE", // required
48+
* ServiceName: "STRING_VALUE", // required
49+
* };
50+
* const command = new DiscoverInstancesRevisionCommand(input);
51+
* const response = await client.send(command);
52+
* // { // DiscoverInstancesRevisionResponse
53+
* // InstancesRevision: Number("long"),
54+
* // };
55+
*
56+
* ```
57+
*
58+
* @param DiscoverInstancesRevisionCommandInput - {@link DiscoverInstancesRevisionCommandInput}
59+
* @returns {@link DiscoverInstancesRevisionCommandOutput}
60+
* @see {@link DiscoverInstancesRevisionCommandInput} for command's `input` shape.
61+
* @see {@link DiscoverInstancesRevisionCommandOutput} for command's `response` shape.
62+
* @see {@link ServiceDiscoveryClientResolvedConfig | config} for ServiceDiscoveryClient's `config` shape.
63+
*
64+
* @throws {@link InvalidInput} (client fault)
65+
* <p>One or more specified values aren't valid. For example, a required value might be missing, a
66+
* numeric value might be outside the allowed range, or a string value might exceed length
67+
* constraints.</p>
68+
*
69+
* @throws {@link NamespaceNotFound} (client fault)
70+
* <p>No namespace exists with the specified ID.</p>
71+
*
72+
* @throws {@link RequestLimitExceeded} (client fault)
73+
* <p>The operation can't be completed because you've reached the quota for the number of
74+
* requests. For more information, see <a href="https://docs.aws.amazon.com/cloud-map/latest/dg/throttling.html">Cloud Map API request throttling quota</a> in the
75+
* <i>Cloud Map Developer Guide</i>.</p>
76+
*
77+
* @throws {@link ServiceNotFound} (client fault)
78+
* <p>No service exists with the specified ID.</p>
79+
*
80+
* @throws {@link ServiceDiscoveryServiceException}
81+
* <p>Base exception class for all service exceptions from ServiceDiscovery service.</p>
82+
*
83+
*/
84+
export class DiscoverInstancesRevisionCommand extends $Command<
85+
DiscoverInstancesRevisionCommandInput,
86+
DiscoverInstancesRevisionCommandOutput,
87+
ServiceDiscoveryClientResolvedConfig
88+
> {
89+
// Start section: command_properties
90+
// End section: command_properties
91+
92+
public static getEndpointParameterInstructions(): EndpointParameterInstructions {
93+
return {
94+
UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
95+
Endpoint: { type: "builtInParams", name: "endpoint" },
96+
Region: { type: "builtInParams", name: "region" },
97+
UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
98+
};
99+
}
100+
101+
/**
102+
* @public
103+
*/
104+
constructor(readonly input: DiscoverInstancesRevisionCommandInput) {
105+
// Start section: command_constructor
106+
super();
107+
// End section: command_constructor
108+
}
109+
110+
/**
111+
* @internal
112+
*/
113+
resolveMiddleware(
114+
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
115+
configuration: ServiceDiscoveryClientResolvedConfig,
116+
options?: __HttpHandlerOptions
117+
): Handler<DiscoverInstancesRevisionCommandInput, DiscoverInstancesRevisionCommandOutput> {
118+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
119+
this.middlewareStack.use(
120+
getEndpointPlugin(configuration, DiscoverInstancesRevisionCommand.getEndpointParameterInstructions())
121+
);
122+
123+
const stack = clientStack.concat(this.middlewareStack);
124+
125+
const { logger } = configuration;
126+
const clientName = "ServiceDiscoveryClient";
127+
const commandName = "DiscoverInstancesRevisionCommand";
128+
const handlerExecutionContext: HandlerExecutionContext = {
129+
logger,
130+
clientName,
131+
commandName,
132+
inputFilterSensitiveLog: (_: any) => _,
133+
outputFilterSensitiveLog: (_: any) => _,
134+
};
135+
const { requestHandler } = configuration;
136+
return stack.resolve(
137+
(request: FinalizeHandlerArguments<any>) =>
138+
requestHandler.handle(request.request as __HttpRequest, options || {}),
139+
handlerExecutionContext
140+
);
141+
}
142+
143+
/**
144+
* @internal
145+
*/
146+
private serialize(input: DiscoverInstancesRevisionCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
147+
return se_DiscoverInstancesRevisionCommand(input, context);
148+
}
149+
150+
/**
151+
* @internal
152+
*/
153+
private deserialize(
154+
output: __HttpResponse,
155+
context: __SerdeContext
156+
): Promise<DiscoverInstancesRevisionCommandOutput> {
157+
return de_DiscoverInstancesRevisionCommand(output, context);
158+
}
159+
160+
// Start section: command_body_extra
161+
// End section: command_body_extra
162+
}

clients/client-servicediscovery/src/commands/GetOperationCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export interface GetOperationCommandOutput extends GetOperationResponse, __Metad
3737
/**
3838
* @public
3939
* <p>Gets information about any operation that returns an operation ID in the response, such as a
40-
* <code>CreateService</code> request.</p>
40+
* <code>CreateHttpNamespace</code> request.</p>
4141
* <note>
4242
* <p>To get a list of operations that match specified criteria, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_ListOperations.html">ListOperations</a>.</p>
4343
* </note>

clients/client-servicediscovery/src/commands/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export * from "./DeleteNamespaceCommand";
77
export * from "./DeleteServiceCommand";
88
export * from "./DeregisterInstanceCommand";
99
export * from "./DiscoverInstancesCommand";
10+
export * from "./DiscoverInstancesRevisionCommand";
1011
export * from "./GetInstanceCommand";
1112
export * from "./GetInstancesHealthStatusCommand";
1213
export * from "./GetNamespaceCommand";

0 commit comments

Comments
 (0)