From 5bfe554e73eabcb636103b3826bb699440e1cb24 Mon Sep 17 00:00:00 2001 From: awstools Date: Wed, 20 Sep 2023 19:23:45 +0000 Subject: [PATCH] feat(client-servicediscovery): Adds a new DiscoverInstancesRevision API and also adds InstanceRevision field to the DiscoverInstances API response. --- clients/client-servicediscovery/README.md | 8 + .../src/ServiceDiscovery.ts | 23 +++ .../src/ServiceDiscoveryClient.ts | 6 + .../src/commands/DiscoverInstancesCommand.ts | 7 +- .../DiscoverInstancesRevisionCommand.ts | 162 ++++++++++++++++++ .../src/commands/GetOperationCommand.ts | 2 +- .../src/commands/index.ts | 1 + .../src/models/models_0.ts | 79 +++++++-- .../src/protocols/Aws_json1_1.ts | 84 +++++++++ .../aws-models/servicediscovery.json | 119 ++++++++++--- 10 files changed, 446 insertions(+), 45 deletions(-) create mode 100644 clients/client-servicediscovery/src/commands/DiscoverInstancesRevisionCommand.ts diff --git a/clients/client-servicediscovery/README.md b/clients/client-servicediscovery/README.md index 761a061af855..24399e7ee87f 100644 --- a/clients/client-servicediscovery/README.md +++ b/clients/client-servicediscovery/README.md @@ -273,6 +273,14 @@ DiscoverInstances [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) + +
+ +DiscoverInstancesRevision + + +[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) +
diff --git a/clients/client-servicediscovery/src/ServiceDiscovery.ts b/clients/client-servicediscovery/src/ServiceDiscovery.ts index 5862c9727512..6342b29e651e 100644 --- a/clients/client-servicediscovery/src/ServiceDiscovery.ts +++ b/clients/client-servicediscovery/src/ServiceDiscovery.ts @@ -42,6 +42,11 @@ import { DiscoverInstancesCommandInput, DiscoverInstancesCommandOutput, } from "./commands/DiscoverInstancesCommand"; +import { + DiscoverInstancesRevisionCommand, + DiscoverInstancesRevisionCommandInput, + DiscoverInstancesRevisionCommandOutput, +} from "./commands/DiscoverInstancesRevisionCommand"; import { GetInstanceCommand, GetInstanceCommandInput, GetInstanceCommandOutput } from "./commands/GetInstanceCommand"; import { GetInstancesHealthStatusCommand, @@ -131,6 +136,7 @@ const commands = { DeleteServiceCommand, DeregisterInstanceCommand, DiscoverInstancesCommand, + DiscoverInstancesRevisionCommand, GetInstanceCommand, GetInstancesHealthStatusCommand, GetNamespaceCommand, @@ -273,6 +279,23 @@ export interface ServiceDiscovery { cb: (err: any, data?: DiscoverInstancesCommandOutput) => void ): void; + /** + * @see {@link DiscoverInstancesRevisionCommand} + */ + discoverInstancesRevision( + args: DiscoverInstancesRevisionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + discoverInstancesRevision( + args: DiscoverInstancesRevisionCommandInput, + cb: (err: any, data?: DiscoverInstancesRevisionCommandOutput) => void + ): void; + discoverInstancesRevision( + args: DiscoverInstancesRevisionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DiscoverInstancesRevisionCommandOutput) => void + ): void; + /** * @see {@link GetInstanceCommand} */ diff --git a/clients/client-servicediscovery/src/ServiceDiscoveryClient.ts b/clients/client-servicediscovery/src/ServiceDiscoveryClient.ts index 6314daf4a873..325dbc80b02e 100644 --- a/clients/client-servicediscovery/src/ServiceDiscoveryClient.ts +++ b/clients/client-servicediscovery/src/ServiceDiscoveryClient.ts @@ -67,6 +67,10 @@ import { DeleteNamespaceCommandInput, DeleteNamespaceCommandOutput } from "./com import { DeleteServiceCommandInput, DeleteServiceCommandOutput } from "./commands/DeleteServiceCommand"; import { DeregisterInstanceCommandInput, DeregisterInstanceCommandOutput } from "./commands/DeregisterInstanceCommand"; import { DiscoverInstancesCommandInput, DiscoverInstancesCommandOutput } from "./commands/DiscoverInstancesCommand"; +import { + DiscoverInstancesRevisionCommandInput, + DiscoverInstancesRevisionCommandOutput, +} from "./commands/DiscoverInstancesRevisionCommand"; import { GetInstanceCommandInput, GetInstanceCommandOutput } from "./commands/GetInstanceCommand"; import { GetInstancesHealthStatusCommandInput, @@ -126,6 +130,7 @@ export type ServiceInputTypes = | DeleteServiceCommandInput | DeregisterInstanceCommandInput | DiscoverInstancesCommandInput + | DiscoverInstancesRevisionCommandInput | GetInstanceCommandInput | GetInstancesHealthStatusCommandInput | GetNamespaceCommandInput @@ -157,6 +162,7 @@ export type ServiceOutputTypes = | DeleteServiceCommandOutput | DeregisterInstanceCommandOutput | DiscoverInstancesCommandOutput + | DiscoverInstancesRevisionCommandOutput | GetInstanceCommandOutput | GetInstancesHealthStatusCommandOutput | GetNamespaceCommandOutput diff --git a/clients/client-servicediscovery/src/commands/DiscoverInstancesCommand.ts b/clients/client-servicediscovery/src/commands/DiscoverInstancesCommand.ts index b0e0698c7e00..7ca7b91b0217 100644 --- a/clients/client-servicediscovery/src/commands/DiscoverInstancesCommand.ts +++ b/clients/client-servicediscovery/src/commands/DiscoverInstancesCommand.ts @@ -37,8 +37,10 @@ export interface DiscoverInstancesCommandOutput extends DiscoverInstancesRespons /** * @public *

Discovers registered instances for a specified namespace and service. You can use - * DiscoverInstances to discover instances for any type of namespace. For public and - * private DNS namespaces, you can also use DNS queries to discover instances.

+ * DiscoverInstances to discover instances for any type of namespace. + * DiscoverInstances returns a randomized list of instances allowing customers to + * distribute traffic evenly across instances. For public and private DNS namespaces, you can also + * use DNS queries to discover instances.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -71,6 +73,7 @@ export interface DiscoverInstancesCommandOutput extends DiscoverInstancesRespons * // }, * // }, * // ], + * // InstancesRevision: Number("long"), * // }; * * ``` diff --git a/clients/client-servicediscovery/src/commands/DiscoverInstancesRevisionCommand.ts b/clients/client-servicediscovery/src/commands/DiscoverInstancesRevisionCommand.ts new file mode 100644 index 000000000000..7d046afaafa5 --- /dev/null +++ b/clients/client-servicediscovery/src/commands/DiscoverInstancesRevisionCommand.ts @@ -0,0 +1,162 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@smithy/types"; + +import { DiscoverInstancesRevisionRequest, DiscoverInstancesRevisionResponse } from "../models/models_0"; +import { de_DiscoverInstancesRevisionCommand, se_DiscoverInstancesRevisionCommand } from "../protocols/Aws_json1_1"; +import { ServiceDiscoveryClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ServiceDiscoveryClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DiscoverInstancesRevisionCommand}. + */ +export interface DiscoverInstancesRevisionCommandInput extends DiscoverInstancesRevisionRequest {} +/** + * @public + * + * The output of {@link DiscoverInstancesRevisionCommand}. + */ +export interface DiscoverInstancesRevisionCommandOutput extends DiscoverInstancesRevisionResponse, __MetadataBearer {} + +/** + * @public + *

Discovers the increasing revision associated with an instance.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ServiceDiscoveryClient, DiscoverInstancesRevisionCommand } from "@aws-sdk/client-servicediscovery"; // ES Modules import + * // const { ServiceDiscoveryClient, DiscoverInstancesRevisionCommand } = require("@aws-sdk/client-servicediscovery"); // CommonJS import + * const client = new ServiceDiscoveryClient(config); + * const input = { // DiscoverInstancesRevisionRequest + * NamespaceName: "STRING_VALUE", // required + * ServiceName: "STRING_VALUE", // required + * }; + * const command = new DiscoverInstancesRevisionCommand(input); + * const response = await client.send(command); + * // { // DiscoverInstancesRevisionResponse + * // InstancesRevision: Number("long"), + * // }; + * + * ``` + * + * @param DiscoverInstancesRevisionCommandInput - {@link DiscoverInstancesRevisionCommandInput} + * @returns {@link DiscoverInstancesRevisionCommandOutput} + * @see {@link DiscoverInstancesRevisionCommandInput} for command's `input` shape. + * @see {@link DiscoverInstancesRevisionCommandOutput} for command's `response` shape. + * @see {@link ServiceDiscoveryClientResolvedConfig | config} for ServiceDiscoveryClient's `config` shape. + * + * @throws {@link InvalidInput} (client fault) + *

One or more specified values aren't valid. For example, a required value might be missing, a + * numeric value might be outside the allowed range, or a string value might exceed length + * constraints.

+ * + * @throws {@link NamespaceNotFound} (client fault) + *

No namespace exists with the specified ID.

+ * + * @throws {@link RequestLimitExceeded} (client fault) + *

The operation can't be completed because you've reached the quota for the number of + * requests. For more information, see Cloud Map API request throttling quota in the + * Cloud Map Developer Guide.

+ * + * @throws {@link ServiceNotFound} (client fault) + *

No service exists with the specified ID.

+ * + * @throws {@link ServiceDiscoveryServiceException} + *

Base exception class for all service exceptions from ServiceDiscovery service.

+ * + */ +export class DiscoverInstancesRevisionCommand extends $Command< + DiscoverInstancesRevisionCommandInput, + DiscoverInstancesRevisionCommandOutput, + ServiceDiscoveryClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DiscoverInstancesRevisionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ServiceDiscoveryClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, DiscoverInstancesRevisionCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ServiceDiscoveryClient"; + const commandName = "DiscoverInstancesRevisionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: DiscoverInstancesRevisionCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DiscoverInstancesRevisionCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_DiscoverInstancesRevisionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-servicediscovery/src/commands/GetOperationCommand.ts b/clients/client-servicediscovery/src/commands/GetOperationCommand.ts index 296aafa90914..541ea4696184 100644 --- a/clients/client-servicediscovery/src/commands/GetOperationCommand.ts +++ b/clients/client-servicediscovery/src/commands/GetOperationCommand.ts @@ -37,7 +37,7 @@ export interface GetOperationCommandOutput extends GetOperationResponse, __Metad /** * @public *

Gets information about any operation that returns an operation ID in the response, such as a - * CreateService request.

+ * CreateHttpNamespace request.

* *

To get a list of operations that match specified criteria, see ListOperations.

*
diff --git a/clients/client-servicediscovery/src/commands/index.ts b/clients/client-servicediscovery/src/commands/index.ts index 7e605dbc8471..d043c7303815 100644 --- a/clients/client-servicediscovery/src/commands/index.ts +++ b/clients/client-servicediscovery/src/commands/index.ts @@ -7,6 +7,7 @@ export * from "./DeleteNamespaceCommand"; export * from "./DeleteServiceCommand"; export * from "./DeregisterInstanceCommand"; export * from "./DiscoverInstancesCommand"; +export * from "./DiscoverInstancesRevisionCommand"; export * from "./GetInstanceCommand"; export * from "./GetInstancesHealthStatusCommand"; export * from "./GetNamespaceCommand"; diff --git a/clients/client-servicediscovery/src/models/models_0.ts b/clients/client-servicediscovery/src/models/models_0.ts index 1c954353c201..d5bbc4d3e163 100644 --- a/clients/client-servicediscovery/src/models/models_0.ts +++ b/clients/client-servicediscovery/src/models/models_0.ts @@ -347,7 +347,8 @@ export interface CreatePublicDnsNamespaceRequest { * @public *

The name that you want to assign to this namespace.

* - *

Do not include sensitive information in the name. The name is publicly available using DNS queries.

+ *

Do not include sensitive information in the name. The name is publicly available using DNS + * queries.

*
*/ Name: string | undefined; @@ -900,10 +901,12 @@ export interface CreateServiceRequest { * @public *

The name that you want to assign to the service.

* - *

Do not include sensitive information in the name if the namespace is discoverable by public DNS queries.

+ *

Do not include sensitive information in the name if the namespace is discoverable by public + * DNS queries.

*
- *

If you want Cloud Map to create an SRV record when you register an instance and you're using a - * system that requires a specific SRV format, such as HAProxy, specify the following for Name:

+ *

If you want Cloud Map to create an SRV record when you register an instance + * and you're using a system that requires a specific SRV format, such as HAProxy, specify the following for + * Name:

*
    *
  • *

    Start the name with an underscore (_), such as _exampleservice.

    @@ -1528,6 +1531,14 @@ export interface DiscoverInstancesResponse { * instance.

    */ Instances?: HttpInstanceSummary[]; + + /** + * @public + *

    The increasing revision associated to the response Instances list. If a new instance is + * registered or deregistered, the InstancesRevision updates. The health status updates + * don't update InstancesRevision.

    + */ + InstancesRevision?: number; } /** @@ -1554,6 +1565,38 @@ export class RequestLimitExceeded extends __BaseException { } } +/** + * @public + */ +export interface DiscoverInstancesRevisionRequest { + /** + * @public + *

    The HttpName name of the namespace. It's found in the + * HttpProperties member of the Properties member of the + * namespace.

    + */ + NamespaceName: string | undefined; + + /** + * @public + *

    The name of the service that you specified when you registered the instance.

    + */ + ServiceName: string | undefined; +} + +/** + * @public + */ +export interface DiscoverInstancesRevisionResponse { + /** + * @public + *

    The increasing revision associated to the response Instances list. If a new instance is + * registered or deregistered, the InstancesRevision updates. The health status updates + * don't update InstancesRevision.

    + */ + InstancesRevision?: number; +} + /** * @public *

    A complex type that contains information about changes to the Route 53 DNS records that @@ -1680,8 +1723,8 @@ export interface Instance { *

  • *
* - *

Do not include sensitive information in the attributes if the namespace is discoverable by public DNS - * queries.

+ *

Do not include sensitive information in the attributes if the namespace is discoverable by + * public DNS queries.

*
*

Supported attribute keys include the following:

*
@@ -2436,20 +2479,19 @@ export interface NamespaceFilter { /** * @public *

Specify the operator that you want to use to determine whether a namespace matches the - * specified value. Valid values for Condition are one of the following.

+ * specified value. Valid values for Condition are one of the following.

*
    *
  • *

    * EQ: When you specify EQ for Condition, you can - * specify only one value. EQ is supported for TYPE, NAME, - * and HTTP_NAME. EQ is the default condition and can be - * omitted.

    + * specify only one value. EQ is supported for TYPE, NAME, + * and HTTP_NAME. EQ is the default condition and can be omitted.

    *
  • *
  • *

    * BEGINS_WITH: When you specify BEGINS_WITH for - * Condition, you can specify only one value. BEGINS_WITH is supported - * for TYPE, NAME, and HTTP_NAME.

    + * Condition, you can specify only one value. BEGINS_WITH is supported + * for TYPE, NAME, and HTTP_NAME.

    *
  • *
*/ @@ -3205,9 +3247,10 @@ export interface RegisterInstanceRequest { * * * - *

Do not include sensitive information in InstanceId if the namespace is discoverable by public DNS - * queries and any Type member of DnsRecord for the service contains SRV because - * the InstanceId is discoverable by public DNS queries.

+ *

Do not include sensitive information in InstanceId if the namespace is + * discoverable by public DNS queries and any Type member of DnsRecord + * for the service contains SRV because the InstanceId is discoverable by + * public DNS queries.

*
*/ InstanceId: string | undefined; @@ -3236,8 +3279,8 @@ export interface RegisterInstanceRequest { * * * - *

Do not include sensitive information in the attributes if the namespace is discoverable by public DNS - * queries.

+ *

Do not include sensitive information in the attributes if the namespace is discoverable by + * public DNS queries.

*
*

Supported attribute keys include the following:

*
@@ -3262,7 +3305,7 @@ export interface RegisterInstanceRequest { * it doesn't associate the health check with the alias record.

* *
  • - *

    Auto naming currently doesn't support creating alias records that route traffic to + *

    Cloud Map currently doesn't support creating alias records that route traffic to * Amazon Web Services resources other than Elastic Load Balancing load balancers.

    *
  • *
  • diff --git a/clients/client-servicediscovery/src/protocols/Aws_json1_1.ts b/clients/client-servicediscovery/src/protocols/Aws_json1_1.ts index ae23c57437d6..611f0529e47b 100644 --- a/clients/client-servicediscovery/src/protocols/Aws_json1_1.ts +++ b/clients/client-servicediscovery/src/protocols/Aws_json1_1.ts @@ -41,6 +41,10 @@ import { DeleteNamespaceCommandInput, DeleteNamespaceCommandOutput } from "../co import { DeleteServiceCommandInput, DeleteServiceCommandOutput } from "../commands/DeleteServiceCommand"; import { DeregisterInstanceCommandInput, DeregisterInstanceCommandOutput } from "../commands/DeregisterInstanceCommand"; import { DiscoverInstancesCommandInput, DiscoverInstancesCommandOutput } from "../commands/DiscoverInstancesCommand"; +import { + DiscoverInstancesRevisionCommandInput, + DiscoverInstancesRevisionCommandOutput, +} from "../commands/DiscoverInstancesRevisionCommand"; import { GetInstanceCommandInput, GetInstanceCommandOutput } from "../commands/GetInstanceCommand"; import { GetInstancesHealthStatusCommandInput, @@ -88,6 +92,7 @@ import { DeleteServiceRequest, DeregisterInstanceRequest, DiscoverInstancesRequest, + DiscoverInstancesRevisionRequest, DnsConfig, DnsConfigChange, DnsRecord, @@ -266,6 +271,26 @@ export const se_DiscoverInstancesCommand = async ( return buildHttpRpcRequest(context, headers, "/", resolvedHostname, body); }; +/** + * serializeAws_json1_1DiscoverInstancesRevisionCommand + */ +export const se_DiscoverInstancesRevisionCommand = async ( + input: DiscoverInstancesRevisionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("DiscoverInstancesRevision"); + let body: any; + body = JSON.stringify(_json(input)); + let { hostname: resolvedHostname } = await context.endpoint(); + if (context.disableHostPrefix !== true) { + resolvedHostname = "data-" + resolvedHostname; + if (!__isValidHostname(resolvedHostname)) { + throw new Error("ValidationError: prefixed hostname must be hostname compatible."); + } + } + return buildHttpRpcRequest(context, headers, "/", resolvedHostname, body); +}; + /** * serializeAws_json1_1GetInstanceCommand */ @@ -952,6 +977,61 @@ const de_DiscoverInstancesCommandError = async ( } }; +/** + * deserializeAws_json1_1DiscoverInstancesRevisionCommand + */ +export const de_DiscoverInstancesRevisionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DiscoverInstancesRevisionCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: DiscoverInstancesRevisionCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1DiscoverInstancesRevisionCommandError + */ +const de_DiscoverInstancesRevisionCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InvalidInput": + case "com.amazonaws.servicediscovery#InvalidInput": + throw await de_InvalidInputRes(parsedOutput, context); + case "NamespaceNotFound": + case "com.amazonaws.servicediscovery#NamespaceNotFound": + throw await de_NamespaceNotFoundRes(parsedOutput, context); + case "RequestLimitExceeded": + case "com.amazonaws.servicediscovery#RequestLimitExceeded": + throw await de_RequestLimitExceededRes(parsedOutput, context); + case "ServiceNotFound": + case "com.amazonaws.servicediscovery#ServiceNotFound": + throw await de_ServiceNotFoundRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_json1_1GetInstanceCommand */ @@ -2136,6 +2216,8 @@ const se_CreateServiceRequest = (input: CreateServiceRequest, context: __SerdeCo // se_DiscoverInstancesRequest omitted. +// se_DiscoverInstancesRevisionRequest omitted. + // se_DnsConfig omitted. // se_DnsConfigChange omitted. @@ -2298,6 +2380,8 @@ const de_CreateServiceResponse = (output: any, context: __SerdeContext): CreateS // de_DiscoverInstancesResponse omitted. +// de_DiscoverInstancesRevisionResponse omitted. + // de_DnsConfig omitted. // de_DnsProperties omitted. diff --git a/codegen/sdk-codegen/aws-models/servicediscovery.json b/codegen/sdk-codegen/aws-models/servicediscovery.json index 6b533375acd1..7b80a2178951 100644 --- a/codegen/sdk-codegen/aws-models/servicediscovery.json +++ b/codegen/sdk-codegen/aws-models/servicediscovery.json @@ -323,7 +323,7 @@ "Name": { "target": "com.amazonaws.servicediscovery#NamespaceNamePublic", "traits": { - "smithy.api#documentation": "

    The name that you want to assign to this namespace.

    \n \n

    Do not include sensitive information in the name. The name is publicly available using DNS queries.

    \n
    ", + "smithy.api#documentation": "

    The name that you want to assign to this namespace.

    \n \n

    Do not include sensitive information in the name. The name is publicly available using DNS\n queries.

    \n
    ", "smithy.api#required": {} } }, @@ -420,7 +420,7 @@ "output": { "Service": { "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita", - "CreateDate": 1587081768.334, + "CreateDate": 1.587081768334e9, "CreatorRequestId": "567c1193-6b00-4308-bd57-ad38a8822d25", "DnsConfig": { "DnsRecords": [ @@ -447,7 +447,7 @@ "Name": { "target": "com.amazonaws.servicediscovery#ServiceName", "traits": { - "smithy.api#documentation": "

    The name that you want to assign to the service.

    \n \n

    Do not include sensitive information in the name if the namespace is discoverable by public DNS queries.

    \n
    \n

    If you want Cloud Map to create an SRV record when you register an instance and you're using a\n system that requires a specific SRV format, such as HAProxy, specify the following for Name:

    \n
      \n
    • \n

      Start the name with an underscore (_), such as _exampleservice.

      \n
    • \n
    • \n

      End the name with ._protocol, such as ._tcp.

      \n
    • \n
    \n

    When you register an instance, Cloud Map creates an SRV record and assigns a\n name to the record by concatenating the service name and the namespace name (for example,

    \n

    \n _exampleservice._tcp.example.com).

    \n \n

    For services that are accessible by DNS queries, you can't create multiple services with\n names that differ only by case (such as EXAMPLE and example). Otherwise, these services have the\n same DNS name and can't be distinguished. However, if you use a namespace that's only accessible\n by API calls, then you can create services that with names that differ only by case.

    \n
    ", + "smithy.api#documentation": "

    The name that you want to assign to the service.

    \n \n

    Do not include sensitive information in the name if the namespace is discoverable by public\n DNS queries.

    \n
    \n

    If you want Cloud Map to create an SRV record when you register an instance\n and you're using a system that requires a specific SRV format, such as HAProxy, specify the following for\n Name:

    \n
      \n
    • \n

      Start the name with an underscore (_), such as _exampleservice.

      \n
    • \n
    • \n

      End the name with ._protocol, such as ._tcp.

      \n
    • \n
    \n

    When you register an instance, Cloud Map creates an SRV record and assigns a\n name to the record by concatenating the service name and the namespace name (for example,

    \n

    \n _exampleservice._tcp.example.com).

    \n \n

    For services that are accessible by DNS queries, you can't create multiple services with\n names that differ only by case (such as EXAMPLE and example). Otherwise, these services have the\n same DNS name and can't be distinguished. However, if you use a namespace that's only accessible\n by API calls, then you can create services that with names that differ only by case.

    \n
    ", "smithy.api#required": {} } }, @@ -772,7 +772,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Discovers registered instances for a specified namespace and service. You can use\n DiscoverInstances to discover instances for any type of namespace. For public and\n private DNS namespaces, you can also use DNS queries to discover instances.

    ", + "smithy.api#documentation": "

    Discovers registered instances for a specified namespace and service. You can use\n DiscoverInstances to discover instances for any type of namespace.\n DiscoverInstances returns a randomized list of instances allowing customers to\n distribute traffic evenly across instances. For public and private DNS namespaces, you can also\n use DNS queries to discover instances.

    ", "smithy.api#endpoint": { "hostPrefix": "data-" }, @@ -858,6 +858,77 @@ "traits": { "smithy.api#documentation": "

    A complex type that contains one HttpInstanceSummary for each registered\n instance.

    " } + }, + "InstancesRevision": { + "target": "com.amazonaws.servicediscovery#Revision", + "traits": { + "smithy.api#documentation": "

    The increasing revision associated to the response Instances list. If a new instance is\n registered or deregistered, the InstancesRevision updates. The health status updates\n don't update InstancesRevision.

    " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.servicediscovery#DiscoverInstancesRevision": { + "type": "operation", + "input": { + "target": "com.amazonaws.servicediscovery#DiscoverInstancesRevisionRequest" + }, + "output": { + "target": "com.amazonaws.servicediscovery#DiscoverInstancesRevisionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.servicediscovery#InvalidInput" + }, + { + "target": "com.amazonaws.servicediscovery#NamespaceNotFound" + }, + { + "target": "com.amazonaws.servicediscovery#RequestLimitExceeded" + }, + { + "target": "com.amazonaws.servicediscovery#ServiceNotFound" + } + ], + "traits": { + "smithy.api#documentation": "

    Discovers the increasing revision associated with an instance.

    ", + "smithy.api#endpoint": { + "hostPrefix": "data-" + } + } + }, + "com.amazonaws.servicediscovery#DiscoverInstancesRevisionRequest": { + "type": "structure", + "members": { + "NamespaceName": { + "target": "com.amazonaws.servicediscovery#NamespaceName", + "traits": { + "smithy.api#documentation": "

    The HttpName name of the namespace. It's found in the\n HttpProperties member of the Properties member of the\n namespace.

    ", + "smithy.api#required": {} + } + }, + "ServiceName": { + "target": "com.amazonaws.servicediscovery#ServiceName", + "traits": { + "smithy.api#documentation": "

    The name of the service that you specified when you registered the instance.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.servicediscovery#DiscoverInstancesRevisionResponse": { + "type": "structure", + "members": { + "InstancesRevision": { + "target": "com.amazonaws.servicediscovery#Revision", + "traits": { + "smithy.api#documentation": "

    The increasing revision associated to the response Instances list. If a new instance is\n registered or deregistered, the InstancesRevision updates. The health status updates\n don't update InstancesRevision.

    " + } } }, "traits": { @@ -1287,7 +1358,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Gets information about any operation that returns an operation ID in the response, such as a\n CreateService request.

    \n \n

    To get a list of operations that match specified criteria, see ListOperations.

    \n
    ", + "smithy.api#documentation": "

    Gets information about any operation that returns an operation ID in the response, such as a\n CreateHttpNamespace request.

    \n \n

    To get a list of operations that match specified criteria, see ListOperations.

    \n
    ", "smithy.api#examples": [ { "title": "Example: Get operation result", @@ -1297,14 +1368,14 @@ }, "output": { "Operation": { - "CreateDate": 1587055860.121, + "CreateDate": 1.587055860121e9, "Id": "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd", "Status": "SUCCESS", "Targets": { "NAMESPACE": "ns-ylexjili4cdxy3xm" }, "Type": "CREATE_NAMESPACE", - "UpdateDate": 1587055900.469 + "UpdateDate": 1.587055900469e9 } } } @@ -1600,7 +1671,7 @@ "Attributes": { "target": "com.amazonaws.servicediscovery#Attributes", "traits": { - "smithy.api#documentation": "

    A string map that contains the following information for the service that you specify in\n ServiceId:

    \n
      \n
    • \n

      The attributes that apply to the records that are defined in the service.

      \n
    • \n
    • \n

      For each attribute, the applicable value.

      \n
    • \n
    \n \n

    Do not include sensitive information in the attributes if the namespace is discoverable by public DNS\n queries.

    \n
    \n

    Supported attribute keys include the following:

    \n
    \n
    AWS_ALIAS_DNS_NAME
    \n
    \n

    If you want Cloud Map to create a Route 53 alias record that routes traffic to an Elastic Load Balancing\n load balancer, specify the DNS name that's associated with the load balancer. For information\n about how to get the DNS name, see AliasTarget->DNSName in the Route 53 API Reference.

    \n

    Note the following:

    \n
      \n
    • \n

      The configuration for the service that's specified by ServiceId must\n include settings for an A record, an AAAA record, or both.

      \n
    • \n
    • \n

      In the service that's specified by ServiceId, the value of\n RoutingPolicy must be WEIGHTED.

      \n
    • \n
    • \n

      If the service that's specified by ServiceId includes\n HealthCheckConfig settings, Cloud Map creates the health check, but it won't\n associate the health check with the alias record.

      \n
    • \n
    • \n

      Auto naming currently doesn't support creating alias records that route traffic to\n Amazon Web Services resources other than ELB load balancers.

      \n
    • \n
    • \n

      If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for\n any of the AWS_INSTANCE attributes.

      \n
    • \n
    \n
    \n
    AWS_EC2_INSTANCE_ID
    \n
    \n

    \n HTTP namespaces only. The Amazon EC2 instance ID for the instance. The\n AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.

    \n
    \n
    AWS_INIT_HEALTH_STATUS
    \n
    \n

    If the service configuration includes HealthCheckCustomConfig, you can\n optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom\n health check, HEALTHY or UNHEALTHY. If you don't specify a value for\n AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

    \n
    \n
    AWS_INSTANCE_CNAME
    \n
    \n

    If the service configuration includes a CNAME record, the domain name that\n you want Route 53 to return in response to DNS queries (for example,\n example.com).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an CNAME record.

    \n
    \n
    AWS_INSTANCE_IPV4
    \n
    \n

    If the service configuration includes an A record, the IPv4 address that you\n want Route 53 to return in response to DNS queries (for example, 192.0.2.44).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an A record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

    \n
    \n
    AWS_INSTANCE_IPV6
    \n
    \n

    If the service configuration includes an AAAA record, the IPv6 address that\n you want Route 53 to return in response to DNS queries (for example,\n 2001:0db8:85a3:0000:0000:abcd:0001:2345).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an AAAA record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

    \n
    \n
    AWS_INSTANCE_PORT
    \n
    \n

    If the service includes an SRV record, the value that you want Route 53 to\n return for the port.

    \n

    If the service includes HealthCheckConfig, the port on the endpoint that you\n want Route 53 to send requests to.

    \n

    This value is required if you specified settings for an SRV record or a\n Route 53 health check when you created the service.

    \n
    \n
    " + "smithy.api#documentation": "

    A string map that contains the following information for the service that you specify in\n ServiceId:

    \n
      \n
    • \n

      The attributes that apply to the records that are defined in the service.

      \n
    • \n
    • \n

      For each attribute, the applicable value.

      \n
    • \n
    \n \n

    Do not include sensitive information in the attributes if the namespace is discoverable by\n public DNS queries.

    \n
    \n

    Supported attribute keys include the following:

    \n
    \n
    AWS_ALIAS_DNS_NAME
    \n
    \n

    If you want Cloud Map to create a Route 53 alias record that routes traffic to an Elastic Load Balancing\n load balancer, specify the DNS name that's associated with the load balancer. For information\n about how to get the DNS name, see AliasTarget->DNSName in the Route 53 API Reference.

    \n

    Note the following:

    \n
      \n
    • \n

      The configuration for the service that's specified by ServiceId must\n include settings for an A record, an AAAA record, or both.

      \n
    • \n
    • \n

      In the service that's specified by ServiceId, the value of\n RoutingPolicy must be WEIGHTED.

      \n
    • \n
    • \n

      If the service that's specified by ServiceId includes\n HealthCheckConfig settings, Cloud Map creates the health check, but it won't\n associate the health check with the alias record.

      \n
    • \n
    • \n

      Auto naming currently doesn't support creating alias records that route traffic to\n Amazon Web Services resources other than ELB load balancers.

      \n
    • \n
    • \n

      If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for\n any of the AWS_INSTANCE attributes.

      \n
    • \n
    \n
    \n
    AWS_EC2_INSTANCE_ID
    \n
    \n

    \n HTTP namespaces only. The Amazon EC2 instance ID for the instance. The\n AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.

    \n
    \n
    AWS_INIT_HEALTH_STATUS
    \n
    \n

    If the service configuration includes HealthCheckCustomConfig, you can\n optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom\n health check, HEALTHY or UNHEALTHY. If you don't specify a value for\n AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

    \n
    \n
    AWS_INSTANCE_CNAME
    \n
    \n

    If the service configuration includes a CNAME record, the domain name that\n you want Route 53 to return in response to DNS queries (for example,\n example.com).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an CNAME record.

    \n
    \n
    AWS_INSTANCE_IPV4
    \n
    \n

    If the service configuration includes an A record, the IPv4 address that you\n want Route 53 to return in response to DNS queries (for example, 192.0.2.44).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an A record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

    \n
    \n
    AWS_INSTANCE_IPV6
    \n
    \n

    If the service configuration includes an AAAA record, the IPv6 address that\n you want Route 53 to return in response to DNS queries (for example,\n 2001:0db8:85a3:0000:0000:abcd:0001:2345).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an AAAA record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

    \n
    \n
    AWS_INSTANCE_PORT
    \n
    \n

    If the service includes an SRV record, the value that you want Route 53 to\n return for the port.

    \n

    If the service includes HealthCheckConfig, the port on the endpoint that you\n want Route 53 to send requests to.

    \n

    This value is required if you specified settings for an SRV record or a\n Route 53 health check when you created the service.

    \n
    \n
    " } } }, @@ -1811,7 +1882,7 @@ "Namespaces": [ { "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-a3ccy2e7e3a7rile", - "CreateDate": 1585354387.357, + "CreateDate": 1.585354387357e9, "Id": "ns-a3ccy2e7e3a7rile", "Name": "local", "Properties": { @@ -1826,7 +1897,7 @@ }, { "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-pocfyjtrsmwtvcxx", - "CreateDate": 1586468974.698, + "CreateDate": 1.586468974698e9, "Description": "My second namespace", "Id": "ns-pocfyjtrsmwtvcxx", "Name": "My-second-namespace", @@ -1840,7 +1911,7 @@ }, { "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-ylexjili4cdxy3xm", - "CreateDate": 1587055896.798, + "CreateDate": 1.587055896798e9, "Id": "ns-ylexjili4cdxy3xm", "Name": "example.com", "Properties": { @@ -1934,10 +2005,7 @@ { "Name": "STATUS", "Condition": "IN", - "Values": [ - "PENDING", - "SUCCESS" - ] + "Values": ["PENDING", "SUCCESS"] } ] }, @@ -2035,7 +2103,7 @@ "Services": [ { "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita", - "CreateDate": 1587081768.334, + "CreateDate": 1.587081768334e9, "DnsConfig": { "DnsRecords": [ { @@ -2294,7 +2362,7 @@ "Condition": { "target": "com.amazonaws.servicediscovery#FilterCondition", "traits": { - "smithy.api#documentation": "

    Specify the operator that you want to use to determine whether a namespace matches the\n specified value. Valid values for Condition are one of the following.

    \n
      \n
    • \n

      \n EQ: When you specify EQ for Condition, you can\n specify only one value. EQ is supported for TYPE, NAME,\n and HTTP_NAME. EQ is the default condition and can be\n omitted.

      \n
    • \n
    • \n

      \n BEGINS_WITH: When you specify BEGINS_WITH for\n Condition, you can specify only one value. BEGINS_WITH is supported\n for TYPE, NAME, and HTTP_NAME.

      \n
    • \n
    " + "smithy.api#documentation": "

    Specify the operator that you want to use to determine whether a namespace matches the\n specified value. Valid values for Condition are one of the following.

    \n
      \n
    • \n

      \n EQ: When you specify EQ for Condition, you can\n specify only one value. EQ is supported for TYPE, NAME,\n and HTTP_NAME. EQ is the default condition and can be omitted.

      \n
    • \n
    • \n

      \n BEGINS_WITH: When you specify BEGINS_WITH for\n Condition, you can specify only one value. BEGINS_WITH is supported\n for TYPE, NAME, and HTTP_NAME.

      \n
    • \n
    " } } }, @@ -3039,7 +3107,7 @@ "InstanceId": { "target": "com.amazonaws.servicediscovery#InstanceId", "traits": { - "smithy.api#documentation": "

    An identifier that you want to associate with the instance. Note the following:

    \n
      \n
    • \n

      If the service that's specified by ServiceId includes settings for an\n SRV record, the value of InstanceId is automatically included as\n part of the value for the SRV record. For more information, see DnsRecord >\n Type.

      \n
    • \n
    • \n

      You can use this value to update an existing instance.

      \n
    • \n
    • \n

      To register a new instance, you must specify a value that's unique among instances that\n you register by using the same service.

      \n
    • \n
    • \n

      If you specify an existing InstanceId and ServiceId, Cloud Map\n updates the existing DNS records, if any. If there's also an existing health check, Cloud Map\n deletes the old health check and creates a new one.

      \n \n

      The health check isn't deleted immediately, so it will still appear for a while if you\n submit a ListHealthChecks request, for example.

      \n
      \n
    • \n
    \n \n

    Do not include sensitive information in InstanceId if the namespace is discoverable by public DNS\n queries and any Type member of DnsRecord for the service contains SRV because\n the InstanceId is discoverable by public DNS queries.

    \n
    ", + "smithy.api#documentation": "

    An identifier that you want to associate with the instance. Note the following:

    \n
      \n
    • \n

      If the service that's specified by ServiceId includes settings for an\n SRV record, the value of InstanceId is automatically included as\n part of the value for the SRV record. For more information, see DnsRecord >\n Type.

      \n
    • \n
    • \n

      You can use this value to update an existing instance.

      \n
    • \n
    • \n

      To register a new instance, you must specify a value that's unique among instances that\n you register by using the same service.

      \n
    • \n
    • \n

      If you specify an existing InstanceId and ServiceId, Cloud Map\n updates the existing DNS records, if any. If there's also an existing health check, Cloud Map\n deletes the old health check and creates a new one.

      \n \n

      The health check isn't deleted immediately, so it will still appear for a while if you\n submit a ListHealthChecks request, for example.

      \n
      \n
    • \n
    \n \n

    Do not include sensitive information in InstanceId if the namespace is\n discoverable by public DNS queries and any Type member of DnsRecord\n for the service contains SRV because the InstanceId is discoverable by\n public DNS queries.

    \n
    ", "smithy.api#required": {} } }, @@ -3053,7 +3121,7 @@ "Attributes": { "target": "com.amazonaws.servicediscovery#Attributes", "traits": { - "smithy.api#documentation": "

    A string map that contains the following information for the service that you specify in\n ServiceId:

    \n
      \n
    • \n

      The attributes that apply to the records that are defined in the service.

      \n
    • \n
    • \n

      For each attribute, the applicable value.

      \n
    • \n
    \n \n

    Do not include sensitive information in the attributes if the namespace is discoverable by public DNS\n queries.

    \n
    \n

    Supported attribute keys include the following:

    \n
    \n
    AWS_ALIAS_DNS_NAME
    \n
    \n

    If you want Cloud Map to create an Amazon Route 53 alias record that routes traffic to an\n Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For\n information about how to get the DNS name, see \"DNSName\" in the topic AliasTarget in the Route 53 API Reference.

    \n

    Note the following:

    \n
      \n
    • \n

      The configuration for the service that's specified by ServiceId must\n include settings for an A record, an AAAA record, or both.

      \n
    • \n
    • \n

      In the service that's specified by ServiceId, the value of\n RoutingPolicy must be WEIGHTED.

      \n
    • \n
    • \n

      If the service that's specified by ServiceId includes\n HealthCheckConfig settings, Cloud Map will create the Route 53 health check, but\n it doesn't associate the health check with the alias record.

      \n
    • \n
    • \n

      Auto naming currently doesn't support creating alias records that route traffic to\n Amazon Web Services resources other than Elastic Load Balancing load balancers.

      \n
    • \n
    • \n

      If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for\n any of the AWS_INSTANCE attributes.

      \n
    • \n
    \n
    \n
    AWS_EC2_INSTANCE_ID
    \n
    \n

    \n HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the\n AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that\n can be specified is AWS_INIT_HEALTH_STATUS. When the\n AWS_EC2_INSTANCE_ID attribute is specified, then the\n AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4\n address.

    \n
    \n
    AWS_INIT_HEALTH_STATUS
    \n
    \n

    If the service configuration includes HealthCheckCustomConfig, you can\n optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom\n health check, HEALTHY or UNHEALTHY. If you don't specify a value for\n AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

    \n
    \n
    AWS_INSTANCE_CNAME
    \n
    \n

    If the service configuration includes a CNAME record, the domain name that\n you want Route 53 to return in response to DNS queries (for example,\n example.com).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an CNAME record.

    \n
    \n
    AWS_INSTANCE_IPV4
    \n
    \n

    If the service configuration includes an A record, the IPv4 address that you\n want Route 53 to return in response to DNS queries (for example, 192.0.2.44).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an A record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

    \n
    \n
    AWS_INSTANCE_IPV6
    \n
    \n

    If the service configuration includes an AAAA record, the IPv6 address that\n you want Route 53 to return in response to DNS queries (for example,\n 2001:0db8:85a3:0000:0000:abcd:0001:2345).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an AAAA record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

    \n
    \n
    AWS_INSTANCE_PORT
    \n
    \n

    If the service includes an SRV record, the value that you want Route 53 to\n return for the port.

    \n

    If the service includes HealthCheckConfig, the port on the endpoint that you\n want Route 53 to send requests to.

    \n

    This value is required if you specified settings for an SRV record or a\n Route 53 health check when you created the service.

    \n
    \n
    Custom attributes
    \n
    \n

    You can add up to 30 custom attributes. For each key-value pair, the maximum length of\n the attribute name is 255 characters, and the maximum length of the attribute value is 1,024\n characters. The total size of all provided attributes (sum of all keys and values) must not\n exceed 5,000 characters.

    \n
    \n
    ", + "smithy.api#documentation": "

    A string map that contains the following information for the service that you specify in\n ServiceId:

    \n
      \n
    • \n

      The attributes that apply to the records that are defined in the service.

      \n
    • \n
    • \n

      For each attribute, the applicable value.

      \n
    • \n
    \n \n

    Do not include sensitive information in the attributes if the namespace is discoverable by\n public DNS queries.

    \n
    \n

    Supported attribute keys include the following:

    \n
    \n
    AWS_ALIAS_DNS_NAME
    \n
    \n

    If you want Cloud Map to create an Amazon Route 53 alias record that routes traffic to an\n Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For\n information about how to get the DNS name, see \"DNSName\" in the topic AliasTarget in the Route 53 API Reference.

    \n

    Note the following:

    \n
      \n
    • \n

      The configuration for the service that's specified by ServiceId must\n include settings for an A record, an AAAA record, or both.

      \n
    • \n
    • \n

      In the service that's specified by ServiceId, the value of\n RoutingPolicy must be WEIGHTED.

      \n
    • \n
    • \n

      If the service that's specified by ServiceId includes\n HealthCheckConfig settings, Cloud Map will create the Route 53 health check, but\n it doesn't associate the health check with the alias record.

      \n
    • \n
    • \n

      Cloud Map currently doesn't support creating alias records that route traffic to\n Amazon Web Services resources other than Elastic Load Balancing load balancers.

      \n
    • \n
    • \n

      If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for\n any of the AWS_INSTANCE attributes.

      \n
    • \n
    \n
    \n
    AWS_EC2_INSTANCE_ID
    \n
    \n

    \n HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the\n AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that\n can be specified is AWS_INIT_HEALTH_STATUS. When the\n AWS_EC2_INSTANCE_ID attribute is specified, then the\n AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4\n address.

    \n
    \n
    AWS_INIT_HEALTH_STATUS
    \n
    \n

    If the service configuration includes HealthCheckCustomConfig, you can\n optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom\n health check, HEALTHY or UNHEALTHY. If you don't specify a value for\n AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

    \n
    \n
    AWS_INSTANCE_CNAME
    \n
    \n

    If the service configuration includes a CNAME record, the domain name that\n you want Route 53 to return in response to DNS queries (for example,\n example.com).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an CNAME record.

    \n
    \n
    AWS_INSTANCE_IPV4
    \n
    \n

    If the service configuration includes an A record, the IPv4 address that you\n want Route 53 to return in response to DNS queries (for example, 192.0.2.44).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an A record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

    \n
    \n
    AWS_INSTANCE_IPV6
    \n
    \n

    If the service configuration includes an AAAA record, the IPv6 address that\n you want Route 53 to return in response to DNS queries (for example,\n 2001:0db8:85a3:0000:0000:abcd:0001:2345).

    \n

    This value is required if the service specified by ServiceId includes\n settings for an AAAA record. If the service includes settings for an\n SRV record, you must specify a value for AWS_INSTANCE_IPV4,\n AWS_INSTANCE_IPV6, or both.

    \n
    \n
    AWS_INSTANCE_PORT
    \n
    \n

    If the service includes an SRV record, the value that you want Route 53 to\n return for the port.

    \n

    If the service includes HealthCheckConfig, the port on the endpoint that you\n want Route 53 to send requests to.

    \n

    This value is required if you specified settings for an SRV record or a\n Route 53 health check when you created the service.

    \n
    \n
    Custom attributes
    \n
    \n

    You can add up to 30 custom attributes. For each key-value pair, the maximum length of\n the attribute name is 255 characters, and the maximum length of the attribute value is 1,024\n characters. The total size of all provided attributes (sum of all keys and values) must not\n exceed 5,000 characters.

    \n
    \n
    ", "smithy.api#required": {} } } @@ -3158,6 +3226,9 @@ } } }, + "com.amazonaws.servicediscovery#Revision": { + "type": "long" + }, "com.amazonaws.servicediscovery#Route53AutoNaming_v20170314": { "type": "service", "version": "2017-03-14", @@ -3186,6 +3257,9 @@ { "target": "com.amazonaws.servicediscovery#DiscoverInstances" }, + { + "target": "com.amazonaws.servicediscovery#DiscoverInstancesRevision" + }, { "target": "com.amazonaws.servicediscovery#GetInstance" }, @@ -4833,10 +4907,7 @@ "documentation": "This example removes the \"Department\" and \"Project\" tags from a resource.", "input": { "ResourceARN": "arn:aws:servicediscovery:us-east-1:123456789012:namespace/ns-ylexjili4cdxy3xm", - "TagKeys": [ - "Project", - "Department" - ] + "TagKeys": ["Project", "Department"] }, "output": {} } @@ -5232,4 +5303,4 @@ } } } -} \ No newline at end of file +}