From 594c589036f0d702e92dfb3daec680971534290a Mon Sep 17 00:00:00 2001 From: awstools Date: Tue, 3 Sep 2024 18:15:03 +0000 Subject: [PATCH] feat(client-elastic-load-balancing-v2): This release adds support for configuring TCP idle timeout on NLB and GWLB listeners. --- .../README.md | 16 ++ .../src/ElasticLoadBalancingV2.ts | 46 ++++ .../src/ElasticLoadBalancingV2Client.ts | 12 + .../DescribeListenerAttributesCommand.ts | 94 ++++++++ .../ModifyListenerAttributesCommand.ts | 103 +++++++++ .../src/commands/index.ts | 2 + .../src/models/models_0.ts | 80 ++++++- .../src/protocols/Aws_query.ts | 208 ++++++++++++++++++ .../aws-models/elastic-load-balancing-v2.json | 164 +++++++++++++- 9 files changed, 721 insertions(+), 4 deletions(-) create mode 100644 clients/client-elastic-load-balancing-v2/src/commands/DescribeListenerAttributesCommand.ts create mode 100644 clients/client-elastic-load-balancing-v2/src/commands/ModifyListenerAttributesCommand.ts diff --git a/clients/client-elastic-load-balancing-v2/README.md b/clients/client-elastic-load-balancing-v2/README.md index 674f8e7a24c6..7a16077d6c5a 100644 --- a/clients/client-elastic-load-balancing-v2/README.md +++ b/clients/client-elastic-load-balancing-v2/README.md @@ -359,6 +359,14 @@ DescribeAccountLimits [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/elastic-load-balancing-v2/command/DescribeAccountLimitsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-elastic-load-balancing-v2/Interface/DescribeAccountLimitsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-elastic-load-balancing-v2/Interface/DescribeAccountLimitsCommandOutput/) + +
+ +DescribeListenerAttributes + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/elastic-load-balancing-v2/command/DescribeListenerAttributesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-elastic-load-balancing-v2/Interface/DescribeListenerAttributesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-elastic-load-balancing-v2/Interface/DescribeListenerAttributesCommandOutput/) +
@@ -495,6 +503,14 @@ ModifyListener [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/elastic-load-balancing-v2/command/ModifyListenerCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-elastic-load-balancing-v2/Interface/ModifyListenerCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-elastic-load-balancing-v2/Interface/ModifyListenerCommandOutput/) +
+
+ +ModifyListenerAttributes + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/elastic-load-balancing-v2/command/ModifyListenerAttributesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-elastic-load-balancing-v2/Interface/ModifyListenerAttributesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-elastic-load-balancing-v2/Interface/ModifyListenerAttributesCommandOutput/) +
diff --git a/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2.ts b/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2.ts index 81a7102c1a36..1348304880c8 100644 --- a/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2.ts +++ b/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2.ts @@ -70,6 +70,11 @@ import { DescribeAccountLimitsCommandInput, DescribeAccountLimitsCommandOutput, } from "./commands/DescribeAccountLimitsCommand"; +import { + DescribeListenerAttributesCommand, + DescribeListenerAttributesCommandInput, + DescribeListenerAttributesCommandOutput, +} from "./commands/DescribeListenerAttributesCommand"; import { DescribeListenerCertificatesCommand, DescribeListenerCertificatesCommandInput, @@ -150,6 +155,11 @@ import { GetTrustStoreRevocationContentCommandInput, GetTrustStoreRevocationContentCommandOutput, } from "./commands/GetTrustStoreRevocationContentCommand"; +import { + ModifyListenerAttributesCommand, + ModifyListenerAttributesCommandInput, + ModifyListenerAttributesCommandOutput, +} from "./commands/ModifyListenerAttributesCommand"; import { ModifyListenerCommand, ModifyListenerCommandInput, @@ -227,6 +237,7 @@ const commands = { DeleteTrustStoreCommand, DeregisterTargetsCommand, DescribeAccountLimitsCommand, + DescribeListenerAttributesCommand, DescribeListenerCertificatesCommand, DescribeListenersCommand, DescribeLoadBalancerAttributesCommand, @@ -244,6 +255,7 @@ const commands = { GetTrustStoreCaCertificatesBundleCommand, GetTrustStoreRevocationContentCommand, ModifyListenerCommand, + ModifyListenerAttributesCommand, ModifyLoadBalancerAttributesCommand, ModifyRuleCommand, ModifyTargetGroupCommand, @@ -509,6 +521,23 @@ export interface ElasticLoadBalancingV2 { cb: (err: any, data?: DescribeAccountLimitsCommandOutput) => void ): void; + /** + * @see {@link DescribeListenerAttributesCommand} + */ + describeListenerAttributes( + args: DescribeListenerAttributesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeListenerAttributes( + args: DescribeListenerAttributesCommandInput, + cb: (err: any, data?: DescribeListenerAttributesCommandOutput) => void + ): void; + describeListenerAttributes( + args: DescribeListenerAttributesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeListenerAttributesCommandOutput) => void + ): void; + /** * @see {@link DescribeListenerCertificatesCommand} */ @@ -789,6 +818,23 @@ export interface ElasticLoadBalancingV2 { cb: (err: any, data?: ModifyListenerCommandOutput) => void ): void; + /** + * @see {@link ModifyListenerAttributesCommand} + */ + modifyListenerAttributes( + args: ModifyListenerAttributesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + modifyListenerAttributes( + args: ModifyListenerAttributesCommandInput, + cb: (err: any, data?: ModifyListenerAttributesCommandOutput) => void + ): void; + modifyListenerAttributes( + args: ModifyListenerAttributesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ModifyListenerAttributesCommandOutput) => void + ): void; + /** * @see {@link ModifyLoadBalancerAttributesCommand} */ diff --git a/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2Client.ts b/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2Client.ts index 96223f74b46c..10799cfbea1b 100644 --- a/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2Client.ts +++ b/clients/client-elastic-load-balancing-v2/src/ElasticLoadBalancingV2Client.ts @@ -81,6 +81,10 @@ import { DescribeAccountLimitsCommandInput, DescribeAccountLimitsCommandOutput, } from "./commands/DescribeAccountLimitsCommand"; +import { + DescribeListenerAttributesCommandInput, + DescribeListenerAttributesCommandOutput, +} from "./commands/DescribeListenerAttributesCommand"; import { DescribeListenerCertificatesCommandInput, DescribeListenerCertificatesCommandOutput, @@ -133,6 +137,10 @@ import { GetTrustStoreRevocationContentCommandInput, GetTrustStoreRevocationContentCommandOutput, } from "./commands/GetTrustStoreRevocationContentCommand"; +import { + ModifyListenerAttributesCommandInput, + ModifyListenerAttributesCommandOutput, +} from "./commands/ModifyListenerAttributesCommand"; import { ModifyListenerCommandInput, ModifyListenerCommandOutput } from "./commands/ModifyListenerCommand"; import { ModifyLoadBalancerAttributesCommandInput, @@ -190,6 +198,7 @@ export type ServiceInputTypes = | DeleteTrustStoreCommandInput | DeregisterTargetsCommandInput | DescribeAccountLimitsCommandInput + | DescribeListenerAttributesCommandInput | DescribeListenerCertificatesCommandInput | DescribeListenersCommandInput | DescribeLoadBalancerAttributesCommandInput @@ -206,6 +215,7 @@ export type ServiceInputTypes = | GetResourcePolicyCommandInput | GetTrustStoreCaCertificatesBundleCommandInput | GetTrustStoreRevocationContentCommandInput + | ModifyListenerAttributesCommandInput | ModifyListenerCommandInput | ModifyLoadBalancerAttributesCommandInput | ModifyRuleCommandInput @@ -241,6 +251,7 @@ export type ServiceOutputTypes = | DeleteTrustStoreCommandOutput | DeregisterTargetsCommandOutput | DescribeAccountLimitsCommandOutput + | DescribeListenerAttributesCommandOutput | DescribeListenerCertificatesCommandOutput | DescribeListenersCommandOutput | DescribeLoadBalancerAttributesCommandOutput @@ -257,6 +268,7 @@ export type ServiceOutputTypes = | GetResourcePolicyCommandOutput | GetTrustStoreCaCertificatesBundleCommandOutput | GetTrustStoreRevocationContentCommandOutput + | ModifyListenerAttributesCommandOutput | ModifyListenerCommandOutput | ModifyLoadBalancerAttributesCommandOutput | ModifyRuleCommandOutput diff --git a/clients/client-elastic-load-balancing-v2/src/commands/DescribeListenerAttributesCommand.ts b/clients/client-elastic-load-balancing-v2/src/commands/DescribeListenerAttributesCommand.ts new file mode 100644 index 000000000000..0d165897dfc9 --- /dev/null +++ b/clients/client-elastic-load-balancing-v2/src/commands/DescribeListenerAttributesCommand.ts @@ -0,0 +1,94 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + ElasticLoadBalancingV2ClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../ElasticLoadBalancingV2Client"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { DescribeListenerAttributesInput, DescribeListenerAttributesOutput } from "../models/models_0"; +import { de_DescribeListenerAttributesCommand, se_DescribeListenerAttributesCommand } from "../protocols/Aws_query"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DescribeListenerAttributesCommand}. + */ +export interface DescribeListenerAttributesCommandInput extends DescribeListenerAttributesInput {} +/** + * @public + * + * The output of {@link DescribeListenerAttributesCommand}. + */ +export interface DescribeListenerAttributesCommandOutput extends DescribeListenerAttributesOutput, __MetadataBearer {} + +/** + *

Describes the attributes for the specified listener.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ElasticLoadBalancingV2Client, DescribeListenerAttributesCommand } from "@aws-sdk/client-elastic-load-balancing-v2"; // ES Modules import + * // const { ElasticLoadBalancingV2Client, DescribeListenerAttributesCommand } = require("@aws-sdk/client-elastic-load-balancing-v2"); // CommonJS import + * const client = new ElasticLoadBalancingV2Client(config); + * const input = { // DescribeListenerAttributesInput + * ListenerArn: "STRING_VALUE", // required + * }; + * const command = new DescribeListenerAttributesCommand(input); + * const response = await client.send(command); + * // { // DescribeListenerAttributesOutput + * // Attributes: [ // ListenerAttributes + * // { // ListenerAttribute + * // Key: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param DescribeListenerAttributesCommandInput - {@link DescribeListenerAttributesCommandInput} + * @returns {@link DescribeListenerAttributesCommandOutput} + * @see {@link DescribeListenerAttributesCommandInput} for command's `input` shape. + * @see {@link DescribeListenerAttributesCommandOutput} for command's `response` shape. + * @see {@link ElasticLoadBalancingV2ClientResolvedConfig | config} for ElasticLoadBalancingV2Client's `config` shape. + * + * @throws {@link ListenerNotFoundException} (client fault) + *

The specified listener does not exist.

+ * + * @throws {@link ElasticLoadBalancingV2ServiceException} + *

Base exception class for all service exceptions from ElasticLoadBalancingV2 service.

+ * + * @public + */ +export class DescribeListenerAttributesCommand extends $Command + .classBuilder< + DescribeListenerAttributesCommandInput, + DescribeListenerAttributesCommandOutput, + ElasticLoadBalancingV2ClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ElasticLoadBalancingV2ClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("ElasticLoadBalancing_v10", "DescribeListenerAttributes", {}) + .n("ElasticLoadBalancingV2Client", "DescribeListenerAttributesCommand") + .f(void 0, void 0) + .ser(se_DescribeListenerAttributesCommand) + .de(de_DescribeListenerAttributesCommand) + .build() {} diff --git a/clients/client-elastic-load-balancing-v2/src/commands/ModifyListenerAttributesCommand.ts b/clients/client-elastic-load-balancing-v2/src/commands/ModifyListenerAttributesCommand.ts new file mode 100644 index 000000000000..68b99ebd20dd --- /dev/null +++ b/clients/client-elastic-load-balancing-v2/src/commands/ModifyListenerAttributesCommand.ts @@ -0,0 +1,103 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + ElasticLoadBalancingV2ClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../ElasticLoadBalancingV2Client"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ModifyListenerAttributesInput, ModifyListenerAttributesOutput } from "../models/models_0"; +import { de_ModifyListenerAttributesCommand, se_ModifyListenerAttributesCommand } from "../protocols/Aws_query"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ModifyListenerAttributesCommand}. + */ +export interface ModifyListenerAttributesCommandInput extends ModifyListenerAttributesInput {} +/** + * @public + * + * The output of {@link ModifyListenerAttributesCommand}. + */ +export interface ModifyListenerAttributesCommandOutput extends ModifyListenerAttributesOutput, __MetadataBearer {} + +/** + *

Modifies the specified attributes of the specified listener.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ElasticLoadBalancingV2Client, ModifyListenerAttributesCommand } from "@aws-sdk/client-elastic-load-balancing-v2"; // ES Modules import + * // const { ElasticLoadBalancingV2Client, ModifyListenerAttributesCommand } = require("@aws-sdk/client-elastic-load-balancing-v2"); // CommonJS import + * const client = new ElasticLoadBalancingV2Client(config); + * const input = { // ModifyListenerAttributesInput + * ListenerArn: "STRING_VALUE", // required + * Attributes: [ // ListenerAttributes // required + * { // ListenerAttribute + * Key: "STRING_VALUE", + * Value: "STRING_VALUE", + * }, + * ], + * }; + * const command = new ModifyListenerAttributesCommand(input); + * const response = await client.send(command); + * // { // ModifyListenerAttributesOutput + * // Attributes: [ // ListenerAttributes + * // { // ListenerAttribute + * // Key: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param ModifyListenerAttributesCommandInput - {@link ModifyListenerAttributesCommandInput} + * @returns {@link ModifyListenerAttributesCommandOutput} + * @see {@link ModifyListenerAttributesCommandInput} for command's `input` shape. + * @see {@link ModifyListenerAttributesCommandOutput} for command's `response` shape. + * @see {@link ElasticLoadBalancingV2ClientResolvedConfig | config} for ElasticLoadBalancingV2Client's `config` shape. + * + * @throws {@link InvalidConfigurationRequestException} (client fault) + *

The requested configuration is not valid.

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

The specified listener does not exist.

+ * + * @throws {@link ElasticLoadBalancingV2ServiceException} + *

Base exception class for all service exceptions from ElasticLoadBalancingV2 service.

+ * + * @public + */ +export class ModifyListenerAttributesCommand extends $Command + .classBuilder< + ModifyListenerAttributesCommandInput, + ModifyListenerAttributesCommandOutput, + ElasticLoadBalancingV2ClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ElasticLoadBalancingV2ClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("ElasticLoadBalancing_v10", "ModifyListenerAttributes", {}) + .n("ElasticLoadBalancingV2Client", "ModifyListenerAttributesCommand") + .f(void 0, void 0) + .ser(se_ModifyListenerAttributesCommand) + .de(de_ModifyListenerAttributesCommand) + .build() {} diff --git a/clients/client-elastic-load-balancing-v2/src/commands/index.ts b/clients/client-elastic-load-balancing-v2/src/commands/index.ts index 5184d38d0e09..394a3515c90d 100644 --- a/clients/client-elastic-load-balancing-v2/src/commands/index.ts +++ b/clients/client-elastic-load-balancing-v2/src/commands/index.ts @@ -15,6 +15,7 @@ export * from "./DeleteTargetGroupCommand"; export * from "./DeleteTrustStoreCommand"; export * from "./DeregisterTargetsCommand"; export * from "./DescribeAccountLimitsCommand"; +export * from "./DescribeListenerAttributesCommand"; export * from "./DescribeListenerCertificatesCommand"; export * from "./DescribeListenersCommand"; export * from "./DescribeLoadBalancerAttributesCommand"; @@ -31,6 +32,7 @@ export * from "./DescribeTrustStoresCommand"; export * from "./GetResourcePolicyCommand"; export * from "./GetTrustStoreCaCertificatesBundleCommand"; export * from "./GetTrustStoreRevocationContentCommand"; +export * from "./ModifyListenerAttributesCommand"; export * from "./ModifyListenerCommand"; export * from "./ModifyLoadBalancerAttributesCommand"; export * from "./ModifyRuleCommand"; diff --git a/clients/client-elastic-load-balancing-v2/src/models/models_0.ts b/clients/client-elastic-load-balancing-v2/src/models/models_0.ts index f594c365fc5b..e815ac1564e9 100644 --- a/clients/client-elastic-load-balancing-v2/src/models/models_0.ts +++ b/clients/client-elastic-load-balancing-v2/src/models/models_0.ts @@ -3566,6 +3566,54 @@ export interface DescribeAccountLimitsOutput { NextMarker?: string; } +/** + * @public + */ +export interface DescribeListenerAttributesInput { + /** + *

The Amazon Resource Name (ARN) of the listener.

+ * @public + */ + ListenerArn: string | undefined; +} + +/** + *

Information about a listener attribute.

+ * @public + */ +export interface ListenerAttribute { + /** + *

The name of the attribute.

+ *

The following attribute is supported by Network Load Balancers, and Gateway Load Balancers.

+ *
    + *
  • + *

    + * tcp.idle_timeout.seconds - The tcp idle timeout value, in seconds. The + * valid range is 60-6000 seconds. The default is 350 seconds.

    + *
  • + *
+ * @public + */ + Key?: string; + + /** + *

The value of the attribute.

+ * @public + */ + Value?: string; +} + +/** + * @public + */ +export interface DescribeListenerAttributesOutput { + /** + *

Information about the listener attributes.

+ * @public + */ + Attributes?: ListenerAttribute[]; +} + /** * @public */ @@ -5023,6 +5071,34 @@ export interface ModifyListenerOutput { Listeners?: Listener[]; } +/** + * @public + */ +export interface ModifyListenerAttributesInput { + /** + *

The Amazon Resource Name (ARN) of the listener.

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

The listener attributes.

+ * @public + */ + Attributes: ListenerAttribute[] | undefined; +} + +/** + * @public + */ +export interface ModifyListenerAttributesOutput { + /** + *

Information about the listener attributes.

+ * @public + */ + Attributes?: ListenerAttribute[]; +} + /** * @public */ @@ -5186,7 +5262,7 @@ export interface ModifyTargetGroupAttributesInput { TargetGroupArn: string | undefined; /** - *

The attributes.

+ *

The target group attributes.

* @public */ Attributes: TargetGroupAttribute[] | undefined; @@ -5197,7 +5273,7 @@ export interface ModifyTargetGroupAttributesInput { */ export interface ModifyTargetGroupAttributesOutput { /** - *

Information about the attributes.

+ *

Information about the target group attributes.

* @public */ Attributes?: TargetGroupAttribute[]; diff --git a/clients/client-elastic-load-balancing-v2/src/protocols/Aws_query.ts b/clients/client-elastic-load-balancing-v2/src/protocols/Aws_query.ts index cc4eca1bfec0..ca7f4319b4c9 100644 --- a/clients/client-elastic-load-balancing-v2/src/protocols/Aws_query.ts +++ b/clients/client-elastic-load-balancing-v2/src/protocols/Aws_query.ts @@ -49,6 +49,10 @@ import { DescribeAccountLimitsCommandInput, DescribeAccountLimitsCommandOutput, } from "../commands/DescribeAccountLimitsCommand"; +import { + DescribeListenerAttributesCommandInput, + DescribeListenerAttributesCommandOutput, +} from "../commands/DescribeListenerAttributesCommand"; import { DescribeListenerCertificatesCommandInput, DescribeListenerCertificatesCommandOutput, @@ -101,6 +105,10 @@ import { GetTrustStoreRevocationContentCommandInput, GetTrustStoreRevocationContentCommandOutput, } from "../commands/GetTrustStoreRevocationContentCommand"; +import { + ModifyListenerAttributesCommandInput, + ModifyListenerAttributesCommandOutput, +} from "../commands/ModifyListenerAttributesCommand"; import { ModifyListenerCommandInput, ModifyListenerCommandOutput } from "../commands/ModifyListenerCommand"; import { ModifyLoadBalancerAttributesCommandInput, @@ -174,6 +182,8 @@ import { DeregisterTargetsOutput, DescribeAccountLimitsInput, DescribeAccountLimitsOutput, + DescribeListenerAttributesInput, + DescribeListenerAttributesOutput, DescribeListenerCertificatesInput, DescribeListenerCertificatesOutput, DescribeListenersInput, @@ -230,6 +240,7 @@ import { InvalidTargetException, Limit, Listener, + ListenerAttribute, ListenerNotFoundException, LoadBalancer, LoadBalancerAddress, @@ -237,6 +248,8 @@ import { LoadBalancerNotFoundException, LoadBalancerState, Matcher, + ModifyListenerAttributesInput, + ModifyListenerAttributesOutput, ModifyListenerInput, ModifyListenerOutput, ModifyLoadBalancerAttributesInput, @@ -591,6 +604,23 @@ export const se_DescribeAccountLimitsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryDescribeListenerAttributesCommand + */ +export const se_DescribeListenerAttributesCommand = async ( + input: DescribeListenerAttributesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_DescribeListenerAttributesInput(input, context), + [_A]: _DLA, + [_V]: _, + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryDescribeListenerCertificatesCommand */ @@ -880,6 +910,23 @@ export const se_ModifyListenerCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryModifyListenerAttributesCommand + */ +export const se_ModifyListenerAttributesCommand = async ( + input: ModifyListenerAttributesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_ModifyListenerAttributesInput(input, context), + [_A]: _MLA, + [_V]: _, + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryModifyLoadBalancerAttributesCommand */ @@ -1421,6 +1468,26 @@ export const de_DescribeAccountLimitsCommand = async ( return response; }; +/** + * deserializeAws_queryDescribeListenerAttributesCommand + */ +export const de_DescribeListenerAttributesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_DescribeListenerAttributesOutput(data.DescribeListenerAttributesResult, context); + const response: DescribeListenerAttributesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + /** * deserializeAws_queryDescribeListenerCertificatesCommand */ @@ -1761,6 +1828,26 @@ export const de_ModifyListenerCommand = async ( return response; }; +/** + * deserializeAws_queryModifyListenerAttributesCommand + */ +export const de_ModifyListenerAttributesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ModifyListenerAttributesOutput(data.ModifyListenerAttributesResult, context); + const response: ModifyListenerAttributesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + /** * deserializeAws_queryModifyLoadBalancerAttributesCommand */ @@ -3703,6 +3790,17 @@ const se_DescribeAccountLimitsInput = (input: DescribeAccountLimitsInput, contex return entries; }; +/** + * serializeAws_queryDescribeListenerAttributesInput + */ +const se_DescribeListenerAttributesInput = (input: DescribeListenerAttributesInput, context: __SerdeContext): any => { + const entries: any = {}; + if (input[_LA] != null) { + entries[_LA] = input[_LA]; + } + return entries; +}; + /** * serializeAws_queryDescribeListenerCertificatesInput */ @@ -4193,6 +4291,39 @@ const se_ListenerArns = (input: string[], context: __SerdeContext): any => { return entries; }; +/** + * serializeAws_queryListenerAttribute + */ +const se_ListenerAttribute = (input: ListenerAttribute, context: __SerdeContext): any => { + const entries: any = {}; + if (input[_K] != null) { + entries[_K] = input[_K]; + } + if (input[_Val] != null) { + entries[_Val] = input[_Val]; + } + return entries; +}; + +/** + * serializeAws_queryListenerAttributes + */ +const se_ListenerAttributes = (input: ListenerAttribute[], context: __SerdeContext): any => { + const entries: any = {}; + let counter = 1; + for (const entry of input) { + if (entry === null) { + continue; + } + const memberEntries = se_ListenerAttribute(entry, context); + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value; + }); + counter++; + } + return entries; +}; + /** * serializeAws_queryListOfDescribeTargetHealthIncludeOptions */ @@ -4307,6 +4438,27 @@ const se_Matcher = (input: Matcher, context: __SerdeContext): any => { return entries; }; +/** + * serializeAws_queryModifyListenerAttributesInput + */ +const se_ModifyListenerAttributesInput = (input: ModifyListenerAttributesInput, context: __SerdeContext): any => { + const entries: any = {}; + if (input[_LA] != null) { + entries[_LA] = input[_LA]; + } + if (input[_At] != null) { + const memberEntries = se_ListenerAttributes(input[_At], context); + if (input[_At]?.length === 0) { + entries.Attributes = []; + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Attributes.${key}`; + entries[loc] = value; + }); + } + return entries; +}; + /** * serializeAws_queryModifyListenerInput */ @@ -5852,6 +6004,22 @@ const de_DescribeAccountLimitsOutput = (output: any, context: __SerdeContext): D return contents; }; +/** + * deserializeAws_queryDescribeListenerAttributesOutput + */ +const de_DescribeListenerAttributesOutput = ( + output: any, + context: __SerdeContext +): DescribeListenerAttributesOutput => { + const contents: any = {}; + if (output.Attributes === "") { + contents[_At] = []; + } else if (output[_At] != null && output[_At][_m] != null) { + contents[_At] = de_ListenerAttributes(__getArrayIfSingleItem(output[_At][_m]), context); + } + return contents; +}; + /** * deserializeAws_queryDescribeListenerCertificatesOutput */ @@ -6466,6 +6634,31 @@ const de_Listener = (output: any, context: __SerdeContext): Listener => { return contents; }; +/** + * deserializeAws_queryListenerAttribute + */ +const de_ListenerAttribute = (output: any, context: __SerdeContext): ListenerAttribute => { + const contents: any = {}; + if (output[_K] != null) { + contents[_K] = __expectString(output[_K]); + } + if (output[_Val] != null) { + contents[_Val] = __expectString(output[_Val]); + } + return contents; +}; + +/** + * deserializeAws_queryListenerAttributes + */ +const de_ListenerAttributes = (output: any, context: __SerdeContext): ListenerAttribute[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_ListenerAttribute(entry, context); + }); +}; + /** * deserializeAws_queryListenerNotFoundException */ @@ -6670,6 +6863,19 @@ const de_Matcher = (output: any, context: __SerdeContext): Matcher => { return contents; }; +/** + * deserializeAws_queryModifyListenerAttributesOutput + */ +const de_ModifyListenerAttributesOutput = (output: any, context: __SerdeContext): ModifyListenerAttributesOutput => { + const contents: any = {}; + if (output.Attributes === "") { + contents[_At] = []; + } else if (output[_At] != null && output[_At][_m] != null) { + contents[_At] = de_ListenerAttributes(__getArrayIfSingleItem(output[_At][_m]), context); + } + return contents; +}; + /** * deserializeAws_queryModifyListenerOutput */ @@ -7849,6 +8055,7 @@ const _D = "Description"; const _DA = "DefaultActions"; const _DAL = "DescribeAccountLimits"; const _DL = "DeleteListener"; +const _DLA = "DescribeListenerAttributes"; const _DLB = "DeleteLoadBalancer"; const _DLBA = "DescribeLoadBalancerAttributes"; const _DLBe = "DescribeLoadBalancers"; @@ -7917,6 +8124,7 @@ const _MA = "MutualAuthentication"; const _MB = "MessageBody"; const _MIE = "MitigationInEffect"; const _ML = "ModifyListener"; +const _MLA = "ModifyListenerAttributes"; const _MLBA = "ModifyLoadBalancerAttributes"; const _MR = "ModifyRule"; const _MTG = "ModifyTargetGroup"; diff --git a/codegen/sdk-codegen/aws-models/elastic-load-balancing-v2.json b/codegen/sdk-codegen/aws-models/elastic-load-balancing-v2.json index 0319baa3a9f9..324ded3eeaf3 100644 --- a/codegen/sdk-codegen/aws-models/elastic-load-balancing-v2.json +++ b/codegen/sdk-codegen/aws-models/elastic-load-balancing-v2.json @@ -2210,6 +2210,63 @@ "smithy.api#output": {} } }, + "com.amazonaws.elasticloadbalancingv2#DescribeListenerAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.elasticloadbalancingv2#DescribeListenerAttributesInput" + }, + "output": { + "target": "com.amazonaws.elasticloadbalancingv2#DescribeListenerAttributesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.elasticloadbalancingv2#ListenerNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Describes the attributes for the specified listener.

", + "smithy.api#examples": [ + { + "title": "Describe listener attributes", + "documentation": "This example describes the attributes of the specified listener.", + "input": { + "ListenerArn": "aws:elasticloadbalancing:us-east-1:123456789012:listener/net/my-listener/73e2d6bc24d8a067/d5dc06411fa5bcea" + }, + "output": {} + } + ] + } + }, + "com.amazonaws.elasticloadbalancingv2#DescribeListenerAttributesInput": { + "type": "structure", + "members": { + "ListenerArn": { + "target": "com.amazonaws.elasticloadbalancingv2#ListenerArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the listener.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.elasticloadbalancingv2#DescribeListenerAttributesOutput": { + "type": "structure", + "members": { + "Attributes": { + "target": "com.amazonaws.elasticloadbalancingv2#ListenerAttributes", + "traits": { + "smithy.api#documentation": "

Information about the listener attributes.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.elasticloadbalancingv2#DescribeListenerCertificates": { "type": "operation", "input": { @@ -3788,6 +3845,9 @@ { "target": "com.amazonaws.elasticloadbalancingv2#DescribeAccountLimits" }, + { + "target": "com.amazonaws.elasticloadbalancingv2#DescribeListenerAttributes" + }, { "target": "com.amazonaws.elasticloadbalancingv2#DescribeListenerCertificates" }, @@ -3839,6 +3899,9 @@ { "target": "com.amazonaws.elasticloadbalancingv2#ModifyListener" }, + { + "target": "com.amazonaws.elasticloadbalancingv2#ModifyListenerAttributes" + }, { "target": "com.amazonaws.elasticloadbalancingv2#ModifyLoadBalancerAttributes" }, @@ -5576,6 +5639,45 @@ "target": "com.amazonaws.elasticloadbalancingv2#ListenerArn" } }, + "com.amazonaws.elasticloadbalancingv2#ListenerAttribute": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.elasticloadbalancingv2#ListenerAttributeKey", + "traits": { + "smithy.api#documentation": "

The name of the attribute.

\n

The following attribute is supported by Network Load Balancers, and Gateway Load Balancers.

\n
    \n
  • \n

    \n tcp.idle_timeout.seconds - The tcp idle timeout value, in seconds. The \n valid range is 60-6000 seconds. The default is 350 seconds.

    \n
  • \n
" + } + }, + "Value": { + "target": "com.amazonaws.elasticloadbalancingv2#ListenerAttributeValue", + "traits": { + "smithy.api#documentation": "

The value of the attribute.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Information about a listener attribute.

" + } + }, + "com.amazonaws.elasticloadbalancingv2#ListenerAttributeKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9._]+$" + } + }, + "com.amazonaws.elasticloadbalancingv2#ListenerAttributeValue": { + "type": "string" + }, + "com.amazonaws.elasticloadbalancingv2#ListenerAttributes": { + "type": "list", + "member": { + "target": "com.amazonaws.elasticloadbalancingv2#ListenerAttribute" + } + }, "com.amazonaws.elasticloadbalancingv2#ListenerNotFoundException": { "type": "structure", "members": { @@ -6095,6 +6197,64 @@ ] } }, + "com.amazonaws.elasticloadbalancingv2#ModifyListenerAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.elasticloadbalancingv2#ModifyListenerAttributesInput" + }, + "output": { + "target": "com.amazonaws.elasticloadbalancingv2#ModifyListenerAttributesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.elasticloadbalancingv2#InvalidConfigurationRequestException" + }, + { + "target": "com.amazonaws.elasticloadbalancingv2#ListenerNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the specified attributes of the specified listener.

" + } + }, + "com.amazonaws.elasticloadbalancingv2#ModifyListenerAttributesInput": { + "type": "structure", + "members": { + "ListenerArn": { + "target": "com.amazonaws.elasticloadbalancingv2#ListenerArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the listener.

", + "smithy.api#required": {} + } + }, + "Attributes": { + "target": "com.amazonaws.elasticloadbalancingv2#ListenerAttributes", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The listener attributes.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.elasticloadbalancingv2#ModifyListenerAttributesOutput": { + "type": "structure", + "members": { + "Attributes": { + "target": "com.amazonaws.elasticloadbalancingv2#ListenerAttributes", + "traits": { + "smithy.api#documentation": "

Information about the listener attributes.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.elasticloadbalancingv2#ModifyListenerInput": { "type": "structure", "members": { @@ -6595,7 +6755,7 @@ "target": "com.amazonaws.elasticloadbalancingv2#TargetGroupAttributes", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "

The attributes.

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

The target group attributes.

", "smithy.api#required": {} } } @@ -6610,7 +6770,7 @@ "Attributes": { "target": "com.amazonaws.elasticloadbalancingv2#TargetGroupAttributes", "traits": { - "smithy.api#documentation": "

Information about the attributes.

" + "smithy.api#documentation": "

Information about the target group attributes.

" } } },