From 8acc64ccc93e5e6c55371784906c1168425dc86d Mon Sep 17 00:00:00 2001 From: awstools Date: Thu, 20 Jul 2023 18:25:53 +0000 Subject: [PATCH] feat(client-route53resolver): This release adds support for Route 53 On Outposts, a new feature that allows customers to run Route 53 Resolver and Resolver endpoints locally on their Outposts. --- clients/client-route53resolver/README.md | 40 ++ .../src/Route53Resolver.ts | 115 +++ .../src/Route53ResolverClient.ts | 27 + ...sociateResolverEndpointIpAddressCommand.ts | 2 + .../commands/CreateOutpostResolverCommand.ts | 183 +++++ .../commands/CreateResolverEndpointCommand.ts | 4 + .../commands/DeleteOutpostResolverCommand.ts | 175 +++++ .../commands/DeleteResolverEndpointCommand.ts | 2 + ...sociateResolverEndpointIpAddressCommand.ts | 2 + .../src/commands/GetOutpostResolverCommand.ts | 171 +++++ .../commands/GetResolverEndpointCommand.ts | 2 + .../commands/ListOutpostResolversCommand.ts | 175 +++++ .../ListResolverEndpointIpAddressesCommand.ts | 2 +- .../commands/ListResolverEndpointsCommand.ts | 2 + .../commands/UpdateOutpostResolverCommand.ts | 181 +++++ .../commands/UpdateResolverEndpointCommand.ts | 2 + .../src/commands/index.ts | 5 + .../src/endpoint/ruleset.ts | 34 +- .../src/models/models_0.ts | 319 ++++++++- .../ListOutpostResolversPaginator.ts | 50 ++ .../src/pagination/index.ts | 1 + .../src/protocols/Aws_json1_1.ts | 432 +++++++++++ .../aws-models/route53resolver.json | 677 ++++++++++++++++-- 23 files changed, 2511 insertions(+), 92 deletions(-) create mode 100644 clients/client-route53resolver/src/commands/CreateOutpostResolverCommand.ts create mode 100644 clients/client-route53resolver/src/commands/DeleteOutpostResolverCommand.ts create mode 100644 clients/client-route53resolver/src/commands/GetOutpostResolverCommand.ts create mode 100644 clients/client-route53resolver/src/commands/ListOutpostResolversCommand.ts create mode 100644 clients/client-route53resolver/src/commands/UpdateOutpostResolverCommand.ts create mode 100644 clients/client-route53resolver/src/pagination/ListOutpostResolversPaginator.ts diff --git a/clients/client-route53resolver/README.md b/clients/client-route53resolver/README.md index 2c3faf95674a..1d646b1b4134 100644 --- a/clients/client-route53resolver/README.md +++ b/clients/client-route53resolver/README.md @@ -284,6 +284,14 @@ CreateFirewallRuleGroup [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/classes/createfirewallrulegroupcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/createfirewallrulegroupcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/createfirewallrulegroupcommandoutput.html) + +
+ +CreateOutpostResolver + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/classes/createoutpostresolvercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/createoutpostresolvercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/createoutpostresolvercommandoutput.html) +
@@ -332,6 +340,14 @@ DeleteFirewallRuleGroup [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/classes/deletefirewallrulegroupcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/deletefirewallrulegroupcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/deletefirewallrulegroupcommandoutput.html) +
+
+ +DeleteOutpostResolver + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/classes/deleteoutpostresolvercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/deleteoutpostresolvercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/deleteoutpostresolvercommandoutput.html) +
@@ -428,6 +444,14 @@ GetFirewallRuleGroupPolicy [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/classes/getfirewallrulegrouppolicycommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/getfirewallrulegrouppolicycommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/getfirewallrulegrouppolicycommandoutput.html) +
+
+ +GetOutpostResolver + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/classes/getoutpostresolvercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/getoutpostresolvercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/getoutpostresolvercommandoutput.html) +
@@ -556,6 +580,14 @@ ListFirewallRules [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/classes/listfirewallrulescommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/listfirewallrulescommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/listfirewallrulescommandoutput.html) +
+
+ +ListOutpostResolvers + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/classes/listoutpostresolverscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/listoutpostresolverscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/listoutpostresolverscommandoutput.html) +
@@ -700,6 +732,14 @@ UpdateFirewallRuleGroupAssociation [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/classes/updatefirewallrulegroupassociationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/updatefirewallrulegroupassociationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/updatefirewallrulegroupassociationcommandoutput.html) +
+
+ +UpdateOutpostResolver + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/classes/updateoutpostresolvercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/updateoutpostresolvercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-route53resolver/interfaces/updateoutpostresolvercommandoutput.html) +
diff --git a/clients/client-route53resolver/src/Route53Resolver.ts b/clients/client-route53resolver/src/Route53Resolver.ts index da1278ab60d3..5d4c204dfcba 100644 --- a/clients/client-route53resolver/src/Route53Resolver.ts +++ b/clients/client-route53resolver/src/Route53Resolver.ts @@ -37,6 +37,11 @@ import { CreateFirewallRuleGroupCommandInput, CreateFirewallRuleGroupCommandOutput, } from "./commands/CreateFirewallRuleGroupCommand"; +import { + CreateOutpostResolverCommand, + CreateOutpostResolverCommandInput, + CreateOutpostResolverCommandOutput, +} from "./commands/CreateOutpostResolverCommand"; import { CreateResolverEndpointCommand, CreateResolverEndpointCommandInput, @@ -67,6 +72,11 @@ import { DeleteFirewallRuleGroupCommandInput, DeleteFirewallRuleGroupCommandOutput, } from "./commands/DeleteFirewallRuleGroupCommand"; +import { + DeleteOutpostResolverCommand, + DeleteOutpostResolverCommandInput, + DeleteOutpostResolverCommandOutput, +} from "./commands/DeleteOutpostResolverCommand"; import { DeleteResolverEndpointCommand, DeleteResolverEndpointCommandInput, @@ -127,6 +137,11 @@ import { GetFirewallRuleGroupPolicyCommandInput, GetFirewallRuleGroupPolicyCommandOutput, } from "./commands/GetFirewallRuleGroupPolicyCommand"; +import { + GetOutpostResolverCommand, + GetOutpostResolverCommandInput, + GetOutpostResolverCommandOutput, +} from "./commands/GetOutpostResolverCommand"; import { GetResolverConfigCommand, GetResolverConfigCommandInput, @@ -207,6 +222,11 @@ import { ListFirewallRulesCommandInput, ListFirewallRulesCommandOutput, } from "./commands/ListFirewallRulesCommand"; +import { + ListOutpostResolversCommand, + ListOutpostResolversCommandInput, + ListOutpostResolversCommandOutput, +} from "./commands/ListOutpostResolversCommand"; import { ListResolverConfigsCommand, ListResolverConfigsCommandInput, @@ -293,6 +313,11 @@ import { UpdateFirewallRuleGroupAssociationCommandInput, UpdateFirewallRuleGroupAssociationCommandOutput, } from "./commands/UpdateFirewallRuleGroupAssociationCommand"; +import { + UpdateOutpostResolverCommand, + UpdateOutpostResolverCommandInput, + UpdateOutpostResolverCommandOutput, +} from "./commands/UpdateOutpostResolverCommand"; import { UpdateResolverConfigCommand, UpdateResolverConfigCommandInput, @@ -323,12 +348,14 @@ const commands = { CreateFirewallDomainListCommand, CreateFirewallRuleCommand, CreateFirewallRuleGroupCommand, + CreateOutpostResolverCommand, CreateResolverEndpointCommand, CreateResolverQueryLogConfigCommand, CreateResolverRuleCommand, DeleteFirewallDomainListCommand, DeleteFirewallRuleCommand, DeleteFirewallRuleGroupCommand, + DeleteOutpostResolverCommand, DeleteResolverEndpointCommand, DeleteResolverQueryLogConfigCommand, DeleteResolverRuleCommand, @@ -341,6 +368,7 @@ const commands = { GetFirewallRuleGroupCommand, GetFirewallRuleGroupAssociationCommand, GetFirewallRuleGroupPolicyCommand, + GetOutpostResolverCommand, GetResolverConfigCommand, GetResolverDnssecConfigCommand, GetResolverEndpointCommand, @@ -357,6 +385,7 @@ const commands = { ListFirewallRuleGroupAssociationsCommand, ListFirewallRuleGroupsCommand, ListFirewallRulesCommand, + ListOutpostResolversCommand, ListResolverConfigsCommand, ListResolverDnssecConfigsCommand, ListResolverEndpointIpAddressesCommand, @@ -375,6 +404,7 @@ const commands = { UpdateFirewallDomainsCommand, UpdateFirewallRuleCommand, UpdateFirewallRuleGroupAssociationCommand, + UpdateOutpostResolverCommand, UpdateResolverConfigCommand, UpdateResolverDnssecConfigCommand, UpdateResolverEndpointCommand, @@ -501,6 +531,23 @@ export interface Route53Resolver { cb: (err: any, data?: CreateFirewallRuleGroupCommandOutput) => void ): void; + /** + * @see {@link CreateOutpostResolverCommand} + */ + createOutpostResolver( + args: CreateOutpostResolverCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createOutpostResolver( + args: CreateOutpostResolverCommandInput, + cb: (err: any, data?: CreateOutpostResolverCommandOutput) => void + ): void; + createOutpostResolver( + args: CreateOutpostResolverCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateOutpostResolverCommandOutput) => void + ): void; + /** * @see {@link CreateResolverEndpointCommand} */ @@ -603,6 +650,23 @@ export interface Route53Resolver { cb: (err: any, data?: DeleteFirewallRuleGroupCommandOutput) => void ): void; + /** + * @see {@link DeleteOutpostResolverCommand} + */ + deleteOutpostResolver( + args: DeleteOutpostResolverCommandInput, + options?: __HttpHandlerOptions + ): Promise; + deleteOutpostResolver( + args: DeleteOutpostResolverCommandInput, + cb: (err: any, data?: DeleteOutpostResolverCommandOutput) => void + ): void; + deleteOutpostResolver( + args: DeleteOutpostResolverCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteOutpostResolverCommandOutput) => void + ): void; + /** * @see {@link DeleteResolverEndpointCommand} */ @@ -807,6 +871,23 @@ export interface Route53Resolver { cb: (err: any, data?: GetFirewallRuleGroupPolicyCommandOutput) => void ): void; + /** + * @see {@link GetOutpostResolverCommand} + */ + getOutpostResolver( + args: GetOutpostResolverCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getOutpostResolver( + args: GetOutpostResolverCommandInput, + cb: (err: any, data?: GetOutpostResolverCommandOutput) => void + ): void; + getOutpostResolver( + args: GetOutpostResolverCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetOutpostResolverCommandOutput) => void + ): void; + /** * @see {@link GetResolverConfigCommand} */ @@ -1076,6 +1157,23 @@ export interface Route53Resolver { cb: (err: any, data?: ListFirewallRulesCommandOutput) => void ): void; + /** + * @see {@link ListOutpostResolversCommand} + */ + listOutpostResolvers( + args: ListOutpostResolversCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listOutpostResolvers( + args: ListOutpostResolversCommandInput, + cb: (err: any, data?: ListOutpostResolversCommandOutput) => void + ): void; + listOutpostResolvers( + args: ListOutpostResolversCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListOutpostResolversCommandOutput) => void + ): void; + /** * @see {@link ListResolverConfigsCommand} */ @@ -1370,6 +1468,23 @@ export interface Route53Resolver { cb: (err: any, data?: UpdateFirewallRuleGroupAssociationCommandOutput) => void ): void; + /** + * @see {@link UpdateOutpostResolverCommand} + */ + updateOutpostResolver( + args: UpdateOutpostResolverCommandInput, + options?: __HttpHandlerOptions + ): Promise; + updateOutpostResolver( + args: UpdateOutpostResolverCommandInput, + cb: (err: any, data?: UpdateOutpostResolverCommandOutput) => void + ): void; + updateOutpostResolver( + args: UpdateOutpostResolverCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateOutpostResolverCommandOutput) => void + ): void; + /** * @see {@link UpdateResolverConfigCommand} */ diff --git a/clients/client-route53resolver/src/Route53ResolverClient.ts b/clients/client-route53resolver/src/Route53ResolverClient.ts index 883b45e889f3..c016511742ec 100644 --- a/clients/client-route53resolver/src/Route53ResolverClient.ts +++ b/clients/client-route53resolver/src/Route53ResolverClient.ts @@ -74,6 +74,10 @@ import { CreateFirewallRuleGroupCommandInput, CreateFirewallRuleGroupCommandOutput, } from "./commands/CreateFirewallRuleGroupCommand"; +import { + CreateOutpostResolverCommandInput, + CreateOutpostResolverCommandOutput, +} from "./commands/CreateOutpostResolverCommand"; import { CreateResolverEndpointCommandInput, CreateResolverEndpointCommandOutput, @@ -92,6 +96,10 @@ import { DeleteFirewallRuleGroupCommandInput, DeleteFirewallRuleGroupCommandOutput, } from "./commands/DeleteFirewallRuleGroupCommand"; +import { + DeleteOutpostResolverCommandInput, + DeleteOutpostResolverCommandOutput, +} from "./commands/DeleteOutpostResolverCommand"; import { DeleteResolverEndpointCommandInput, DeleteResolverEndpointCommandOutput, @@ -134,6 +142,7 @@ import { GetFirewallRuleGroupPolicyCommandInput, GetFirewallRuleGroupPolicyCommandOutput, } from "./commands/GetFirewallRuleGroupPolicyCommand"; +import { GetOutpostResolverCommandInput, GetOutpostResolverCommandOutput } from "./commands/GetOutpostResolverCommand"; import { GetResolverConfigCommandInput, GetResolverConfigCommandOutput } from "./commands/GetResolverConfigCommand"; import { GetResolverDnssecConfigCommandInput, @@ -189,6 +198,10 @@ import { ListFirewallRuleGroupsCommandOutput, } from "./commands/ListFirewallRuleGroupsCommand"; import { ListFirewallRulesCommandInput, ListFirewallRulesCommandOutput } from "./commands/ListFirewallRulesCommand"; +import { + ListOutpostResolversCommandInput, + ListOutpostResolversCommandOutput, +} from "./commands/ListOutpostResolversCommand"; import { ListResolverConfigsCommandInput, ListResolverConfigsCommandOutput, @@ -249,6 +262,10 @@ import { UpdateFirewallRuleGroupAssociationCommandInput, UpdateFirewallRuleGroupAssociationCommandOutput, } from "./commands/UpdateFirewallRuleGroupAssociationCommand"; +import { + UpdateOutpostResolverCommandInput, + UpdateOutpostResolverCommandOutput, +} from "./commands/UpdateOutpostResolverCommand"; import { UpdateResolverConfigCommandInput, UpdateResolverConfigCommandOutput, @@ -283,12 +300,14 @@ export type ServiceInputTypes = | CreateFirewallDomainListCommandInput | CreateFirewallRuleCommandInput | CreateFirewallRuleGroupCommandInput + | CreateOutpostResolverCommandInput | CreateResolverEndpointCommandInput | CreateResolverQueryLogConfigCommandInput | CreateResolverRuleCommandInput | DeleteFirewallDomainListCommandInput | DeleteFirewallRuleCommandInput | DeleteFirewallRuleGroupCommandInput + | DeleteOutpostResolverCommandInput | DeleteResolverEndpointCommandInput | DeleteResolverQueryLogConfigCommandInput | DeleteResolverRuleCommandInput @@ -301,6 +320,7 @@ export type ServiceInputTypes = | GetFirewallRuleGroupAssociationCommandInput | GetFirewallRuleGroupCommandInput | GetFirewallRuleGroupPolicyCommandInput + | GetOutpostResolverCommandInput | GetResolverConfigCommandInput | GetResolverDnssecConfigCommandInput | GetResolverEndpointCommandInput @@ -317,6 +337,7 @@ export type ServiceInputTypes = | ListFirewallRuleGroupAssociationsCommandInput | ListFirewallRuleGroupsCommandInput | ListFirewallRulesCommandInput + | ListOutpostResolversCommandInput | ListResolverConfigsCommandInput | ListResolverDnssecConfigsCommandInput | ListResolverEndpointIpAddressesCommandInput @@ -335,6 +356,7 @@ export type ServiceInputTypes = | UpdateFirewallDomainsCommandInput | UpdateFirewallRuleCommandInput | UpdateFirewallRuleGroupAssociationCommandInput + | UpdateOutpostResolverCommandInput | UpdateResolverConfigCommandInput | UpdateResolverDnssecConfigCommandInput | UpdateResolverEndpointCommandInput @@ -351,12 +373,14 @@ export type ServiceOutputTypes = | CreateFirewallDomainListCommandOutput | CreateFirewallRuleCommandOutput | CreateFirewallRuleGroupCommandOutput + | CreateOutpostResolverCommandOutput | CreateResolverEndpointCommandOutput | CreateResolverQueryLogConfigCommandOutput | CreateResolverRuleCommandOutput | DeleteFirewallDomainListCommandOutput | DeleteFirewallRuleCommandOutput | DeleteFirewallRuleGroupCommandOutput + | DeleteOutpostResolverCommandOutput | DeleteResolverEndpointCommandOutput | DeleteResolverQueryLogConfigCommandOutput | DeleteResolverRuleCommandOutput @@ -369,6 +393,7 @@ export type ServiceOutputTypes = | GetFirewallRuleGroupAssociationCommandOutput | GetFirewallRuleGroupCommandOutput | GetFirewallRuleGroupPolicyCommandOutput + | GetOutpostResolverCommandOutput | GetResolverConfigCommandOutput | GetResolverDnssecConfigCommandOutput | GetResolverEndpointCommandOutput @@ -385,6 +410,7 @@ export type ServiceOutputTypes = | ListFirewallRuleGroupAssociationsCommandOutput | ListFirewallRuleGroupsCommandOutput | ListFirewallRulesCommandOutput + | ListOutpostResolversCommandOutput | ListResolverConfigsCommandOutput | ListResolverDnssecConfigsCommandOutput | ListResolverEndpointIpAddressesCommandOutput @@ -403,6 +429,7 @@ export type ServiceOutputTypes = | UpdateFirewallDomainsCommandOutput | UpdateFirewallRuleCommandOutput | UpdateFirewallRuleGroupAssociationCommandOutput + | UpdateOutpostResolverCommandOutput | UpdateResolverConfigCommandOutput | UpdateResolverDnssecConfigCommandOutput | UpdateResolverEndpointCommandOutput diff --git a/clients/client-route53resolver/src/commands/AssociateResolverEndpointIpAddressCommand.ts b/clients/client-route53resolver/src/commands/AssociateResolverEndpointIpAddressCommand.ts index 43b152958a45..b637a2003490 100644 --- a/clients/client-route53resolver/src/commands/AssociateResolverEndpointIpAddressCommand.ts +++ b/clients/client-route53resolver/src/commands/AssociateResolverEndpointIpAddressCommand.ts @@ -83,6 +83,8 @@ export interface AssociateResolverEndpointIpAddressCommandOutput * // CreationTime: "STRING_VALUE", * // ModificationTime: "STRING_VALUE", * // ResolverEndpointType: "IPV6" || "IPV4" || "DUALSTACK", + * // OutpostArn: "STRING_VALUE", + * // PreferredInstanceType: "STRING_VALUE", * // }, * // }; * diff --git a/clients/client-route53resolver/src/commands/CreateOutpostResolverCommand.ts b/clients/client-route53resolver/src/commands/CreateOutpostResolverCommand.ts new file mode 100644 index 000000000000..1f23cc213b23 --- /dev/null +++ b/clients/client-route53resolver/src/commands/CreateOutpostResolverCommand.ts @@ -0,0 +1,183 @@ +// 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 { CreateOutpostResolverRequest, CreateOutpostResolverResponse } from "../models/models_0"; +import { de_CreateOutpostResolverCommand, se_CreateOutpostResolverCommand } from "../protocols/Aws_json1_1"; +import { Route53ResolverClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Route53ResolverClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link CreateOutpostResolverCommand}. + */ +export interface CreateOutpostResolverCommandInput extends CreateOutpostResolverRequest {} +/** + * @public + * + * The output of {@link CreateOutpostResolverCommand}. + */ +export interface CreateOutpostResolverCommandOutput extends CreateOutpostResolverResponse, __MetadataBearer {} + +/** + * @public + *

Creates an Route 53 Resolver on an Outpost.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { Route53ResolverClient, CreateOutpostResolverCommand } from "@aws-sdk/client-route53resolver"; // ES Modules import + * // const { Route53ResolverClient, CreateOutpostResolverCommand } = require("@aws-sdk/client-route53resolver"); // CommonJS import + * const client = new Route53ResolverClient(config); + * const input = { // CreateOutpostResolverRequest + * CreatorRequestId: "STRING_VALUE", // required + * Name: "STRING_VALUE", // required + * InstanceCount: Number("int"), + * PreferredInstanceType: "STRING_VALUE", // required + * OutpostArn: "STRING_VALUE", // required + * Tags: [ // TagList + * { // Tag + * Key: "STRING_VALUE", // required + * Value: "STRING_VALUE", // required + * }, + * ], + * }; + * const command = new CreateOutpostResolverCommand(input); + * const response = await client.send(command); + * // { // CreateOutpostResolverResponse + * // OutpostResolver: { // OutpostResolver + * // Arn: "STRING_VALUE", + * // CreationTime: "STRING_VALUE", + * // ModificationTime: "STRING_VALUE", + * // CreatorRequestId: "STRING_VALUE", + * // Id: "STRING_VALUE", + * // InstanceCount: Number("int"), + * // PreferredInstanceType: "STRING_VALUE", + * // Name: "STRING_VALUE", + * // Status: "CREATING" || "OPERATIONAL" || "UPDATING" || "DELETING" || "ACTION_NEEDED" || "FAILED_CREATION" || "FAILED_DELETION", + * // StatusMessage: "STRING_VALUE", + * // OutpostArn: "STRING_VALUE", + * // }, + * // }; + * + * ``` + * + * @param CreateOutpostResolverCommandInput - {@link CreateOutpostResolverCommandInput} + * @returns {@link CreateOutpostResolverCommandOutput} + * @see {@link CreateOutpostResolverCommandInput} for command's `input` shape. + * @see {@link CreateOutpostResolverCommandOutput} for command's `response` shape. + * @see {@link Route53ResolverClientResolvedConfig | config} for Route53ResolverClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

The current account doesn't have the IAM permissions required to perform the specified Resolver operation.

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

We encountered an unknown error. Try again in a few minutes.

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

The specified resource doesn't exist.

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

Fulfilling the request would cause one or more quotas to be exceeded.

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

The request was throttled. Try again in a few minutes.

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

You have provided an invalid command. Supported values are ADD, + * REMOVE, or REPLACE a domain.

+ * + * @throws {@link Route53ResolverServiceException} + *

Base exception class for all service exceptions from Route53Resolver service.

+ * + */ +export class CreateOutpostResolverCommand extends $Command< + CreateOutpostResolverCommandInput, + CreateOutpostResolverCommandOutput, + Route53ResolverClientResolvedConfig +> { + // 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: CreateOutpostResolverCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: Route53ResolverClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, CreateOutpostResolverCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "Route53ResolverClient"; + const commandName = "CreateOutpostResolverCommand"; + 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: CreateOutpostResolverCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_CreateOutpostResolverCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_CreateOutpostResolverCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-route53resolver/src/commands/CreateResolverEndpointCommand.ts b/clients/client-route53resolver/src/commands/CreateResolverEndpointCommand.ts index 82025c8794af..7641a7e77fa0 100644 --- a/clients/client-route53resolver/src/commands/CreateResolverEndpointCommand.ts +++ b/clients/client-route53resolver/src/commands/CreateResolverEndpointCommand.ts @@ -74,6 +74,8 @@ export interface CreateResolverEndpointCommandOutput extends CreateResolverEndpo * }, * ], * ResolverEndpointType: "IPV6" || "IPV4" || "DUALSTACK", + * OutpostArn: "STRING_VALUE", + * PreferredInstanceType: "STRING_VALUE", * }; * const command = new CreateResolverEndpointCommand(input); * const response = await client.send(command); @@ -94,6 +96,8 @@ export interface CreateResolverEndpointCommandOutput extends CreateResolverEndpo * // CreationTime: "STRING_VALUE", * // ModificationTime: "STRING_VALUE", * // ResolverEndpointType: "IPV6" || "IPV4" || "DUALSTACK", + * // OutpostArn: "STRING_VALUE", + * // PreferredInstanceType: "STRING_VALUE", * // }, * // }; * diff --git a/clients/client-route53resolver/src/commands/DeleteOutpostResolverCommand.ts b/clients/client-route53resolver/src/commands/DeleteOutpostResolverCommand.ts new file mode 100644 index 000000000000..65e33610874e --- /dev/null +++ b/clients/client-route53resolver/src/commands/DeleteOutpostResolverCommand.ts @@ -0,0 +1,175 @@ +// 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 { DeleteOutpostResolverRequest, DeleteOutpostResolverResponse } from "../models/models_0"; +import { de_DeleteOutpostResolverCommand, se_DeleteOutpostResolverCommand } from "../protocols/Aws_json1_1"; +import { Route53ResolverClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Route53ResolverClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DeleteOutpostResolverCommand}. + */ +export interface DeleteOutpostResolverCommandInput extends DeleteOutpostResolverRequest {} +/** + * @public + * + * The output of {@link DeleteOutpostResolverCommand}. + */ +export interface DeleteOutpostResolverCommandOutput extends DeleteOutpostResolverResponse, __MetadataBearer {} + +/** + * @public + *

Deletes a Resolver on the Outpost.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { Route53ResolverClient, DeleteOutpostResolverCommand } from "@aws-sdk/client-route53resolver"; // ES Modules import + * // const { Route53ResolverClient, DeleteOutpostResolverCommand } = require("@aws-sdk/client-route53resolver"); // CommonJS import + * const client = new Route53ResolverClient(config); + * const input = { // DeleteOutpostResolverRequest + * Id: "STRING_VALUE", // required + * }; + * const command = new DeleteOutpostResolverCommand(input); + * const response = await client.send(command); + * // { // DeleteOutpostResolverResponse + * // OutpostResolver: { // OutpostResolver + * // Arn: "STRING_VALUE", + * // CreationTime: "STRING_VALUE", + * // ModificationTime: "STRING_VALUE", + * // CreatorRequestId: "STRING_VALUE", + * // Id: "STRING_VALUE", + * // InstanceCount: Number("int"), + * // PreferredInstanceType: "STRING_VALUE", + * // Name: "STRING_VALUE", + * // Status: "CREATING" || "OPERATIONAL" || "UPDATING" || "DELETING" || "ACTION_NEEDED" || "FAILED_CREATION" || "FAILED_DELETION", + * // StatusMessage: "STRING_VALUE", + * // OutpostArn: "STRING_VALUE", + * // }, + * // }; + * + * ``` + * + * @param DeleteOutpostResolverCommandInput - {@link DeleteOutpostResolverCommandInput} + * @returns {@link DeleteOutpostResolverCommandOutput} + * @see {@link DeleteOutpostResolverCommandInput} for command's `input` shape. + * @see {@link DeleteOutpostResolverCommandOutput} for command's `response` shape. + * @see {@link Route53ResolverClientResolvedConfig | config} for Route53ResolverClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

The current account doesn't have the IAM permissions required to perform the specified Resolver operation.

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

The requested state transition isn't valid. For example, you can't delete a firewall + * domain list if it is in the process of being deleted, or you can't import domains into a + * domain list that is in the process of being deleted.

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

We encountered an unknown error. Try again in a few minutes.

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

The specified resource doesn't exist.

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

The request was throttled. Try again in a few minutes.

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

You have provided an invalid command. Supported values are ADD, + * REMOVE, or REPLACE a domain.

+ * + * @throws {@link Route53ResolverServiceException} + *

Base exception class for all service exceptions from Route53Resolver service.

+ * + */ +export class DeleteOutpostResolverCommand extends $Command< + DeleteOutpostResolverCommandInput, + DeleteOutpostResolverCommandOutput, + Route53ResolverClientResolvedConfig +> { + // 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: DeleteOutpostResolverCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: Route53ResolverClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, DeleteOutpostResolverCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "Route53ResolverClient"; + const commandName = "DeleteOutpostResolverCommand"; + 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: DeleteOutpostResolverCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DeleteOutpostResolverCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_DeleteOutpostResolverCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-route53resolver/src/commands/DeleteResolverEndpointCommand.ts b/clients/client-route53resolver/src/commands/DeleteResolverEndpointCommand.ts index 8f462c6f1e17..d5bf09e18567 100644 --- a/clients/client-route53resolver/src/commands/DeleteResolverEndpointCommand.ts +++ b/clients/client-route53resolver/src/commands/DeleteResolverEndpointCommand.ts @@ -77,6 +77,8 @@ export interface DeleteResolverEndpointCommandOutput extends DeleteResolverEndpo * // CreationTime: "STRING_VALUE", * // ModificationTime: "STRING_VALUE", * // ResolverEndpointType: "IPV6" || "IPV4" || "DUALSTACK", + * // OutpostArn: "STRING_VALUE", + * // PreferredInstanceType: "STRING_VALUE", * // }, * // }; * diff --git a/clients/client-route53resolver/src/commands/DisassociateResolverEndpointIpAddressCommand.ts b/clients/client-route53resolver/src/commands/DisassociateResolverEndpointIpAddressCommand.ts index e7a15650cfd9..d19b244ded6f 100644 --- a/clients/client-route53resolver/src/commands/DisassociateResolverEndpointIpAddressCommand.ts +++ b/clients/client-route53resolver/src/commands/DisassociateResolverEndpointIpAddressCommand.ts @@ -84,6 +84,8 @@ export interface DisassociateResolverEndpointIpAddressCommandOutput * // CreationTime: "STRING_VALUE", * // ModificationTime: "STRING_VALUE", * // ResolverEndpointType: "IPV6" || "IPV4" || "DUALSTACK", + * // OutpostArn: "STRING_VALUE", + * // PreferredInstanceType: "STRING_VALUE", * // }, * // }; * diff --git a/clients/client-route53resolver/src/commands/GetOutpostResolverCommand.ts b/clients/client-route53resolver/src/commands/GetOutpostResolverCommand.ts new file mode 100644 index 000000000000..7c39b9b112ca --- /dev/null +++ b/clients/client-route53resolver/src/commands/GetOutpostResolverCommand.ts @@ -0,0 +1,171 @@ +// 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 { GetOutpostResolverRequest, GetOutpostResolverResponse } from "../models/models_0"; +import { de_GetOutpostResolverCommand, se_GetOutpostResolverCommand } from "../protocols/Aws_json1_1"; +import { Route53ResolverClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Route53ResolverClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link GetOutpostResolverCommand}. + */ +export interface GetOutpostResolverCommandInput extends GetOutpostResolverRequest {} +/** + * @public + * + * The output of {@link GetOutpostResolverCommand}. + */ +export interface GetOutpostResolverCommandOutput extends GetOutpostResolverResponse, __MetadataBearer {} + +/** + * @public + *

Gets information about a specified Resolver on the Outpost, such as its instance count and + * type, name, and the current status of the Resolver.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { Route53ResolverClient, GetOutpostResolverCommand } from "@aws-sdk/client-route53resolver"; // ES Modules import + * // const { Route53ResolverClient, GetOutpostResolverCommand } = require("@aws-sdk/client-route53resolver"); // CommonJS import + * const client = new Route53ResolverClient(config); + * const input = { // GetOutpostResolverRequest + * Id: "STRING_VALUE", // required + * }; + * const command = new GetOutpostResolverCommand(input); + * const response = await client.send(command); + * // { // GetOutpostResolverResponse + * // OutpostResolver: { // OutpostResolver + * // Arn: "STRING_VALUE", + * // CreationTime: "STRING_VALUE", + * // ModificationTime: "STRING_VALUE", + * // CreatorRequestId: "STRING_VALUE", + * // Id: "STRING_VALUE", + * // InstanceCount: Number("int"), + * // PreferredInstanceType: "STRING_VALUE", + * // Name: "STRING_VALUE", + * // Status: "CREATING" || "OPERATIONAL" || "UPDATING" || "DELETING" || "ACTION_NEEDED" || "FAILED_CREATION" || "FAILED_DELETION", + * // StatusMessage: "STRING_VALUE", + * // OutpostArn: "STRING_VALUE", + * // }, + * // }; + * + * ``` + * + * @param GetOutpostResolverCommandInput - {@link GetOutpostResolverCommandInput} + * @returns {@link GetOutpostResolverCommandOutput} + * @see {@link GetOutpostResolverCommandInput} for command's `input` shape. + * @see {@link GetOutpostResolverCommandOutput} for command's `response` shape. + * @see {@link Route53ResolverClientResolvedConfig | config} for Route53ResolverClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

The current account doesn't have the IAM permissions required to perform the specified Resolver operation.

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

We encountered an unknown error. Try again in a few minutes.

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

The specified resource doesn't exist.

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

The request was throttled. Try again in a few minutes.

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

You have provided an invalid command. Supported values are ADD, + * REMOVE, or REPLACE a domain.

+ * + * @throws {@link Route53ResolverServiceException} + *

Base exception class for all service exceptions from Route53Resolver service.

+ * + */ +export class GetOutpostResolverCommand extends $Command< + GetOutpostResolverCommandInput, + GetOutpostResolverCommandOutput, + Route53ResolverClientResolvedConfig +> { + // 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: GetOutpostResolverCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: Route53ResolverClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, GetOutpostResolverCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "Route53ResolverClient"; + const commandName = "GetOutpostResolverCommand"; + 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: GetOutpostResolverCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_GetOutpostResolverCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_GetOutpostResolverCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-route53resolver/src/commands/GetResolverEndpointCommand.ts b/clients/client-route53resolver/src/commands/GetResolverEndpointCommand.ts index 064b91c9ee95..a67cfc13152a 100644 --- a/clients/client-route53resolver/src/commands/GetResolverEndpointCommand.ts +++ b/clients/client-route53resolver/src/commands/GetResolverEndpointCommand.ts @@ -66,6 +66,8 @@ export interface GetResolverEndpointCommandOutput extends GetResolverEndpointRes * // CreationTime: "STRING_VALUE", * // ModificationTime: "STRING_VALUE", * // ResolverEndpointType: "IPV6" || "IPV4" || "DUALSTACK", + * // OutpostArn: "STRING_VALUE", + * // PreferredInstanceType: "STRING_VALUE", * // }, * // }; * diff --git a/clients/client-route53resolver/src/commands/ListOutpostResolversCommand.ts b/clients/client-route53resolver/src/commands/ListOutpostResolversCommand.ts new file mode 100644 index 000000000000..885134845735 --- /dev/null +++ b/clients/client-route53resolver/src/commands/ListOutpostResolversCommand.ts @@ -0,0 +1,175 @@ +// 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 { ListOutpostResolversRequest, ListOutpostResolversResponse } from "../models/models_0"; +import { de_ListOutpostResolversCommand, se_ListOutpostResolversCommand } from "../protocols/Aws_json1_1"; +import { Route53ResolverClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Route53ResolverClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link ListOutpostResolversCommand}. + */ +export interface ListOutpostResolversCommandInput extends ListOutpostResolversRequest {} +/** + * @public + * + * The output of {@link ListOutpostResolversCommand}. + */ +export interface ListOutpostResolversCommandOutput extends ListOutpostResolversResponse, __MetadataBearer {} + +/** + * @public + *

Lists all the Resolvers on Outposts that were created using the current Amazon Web Services account.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { Route53ResolverClient, ListOutpostResolversCommand } from "@aws-sdk/client-route53resolver"; // ES Modules import + * // const { Route53ResolverClient, ListOutpostResolversCommand } = require("@aws-sdk/client-route53resolver"); // CommonJS import + * const client = new Route53ResolverClient(config); + * const input = { // ListOutpostResolversRequest + * OutpostArn: "STRING_VALUE", + * MaxResults: Number("int"), + * NextToken: "STRING_VALUE", + * }; + * const command = new ListOutpostResolversCommand(input); + * const response = await client.send(command); + * // { // ListOutpostResolversResponse + * // OutpostResolvers: [ // OutpostResolverList + * // { // OutpostResolver + * // Arn: "STRING_VALUE", + * // CreationTime: "STRING_VALUE", + * // ModificationTime: "STRING_VALUE", + * // CreatorRequestId: "STRING_VALUE", + * // Id: "STRING_VALUE", + * // InstanceCount: Number("int"), + * // PreferredInstanceType: "STRING_VALUE", + * // Name: "STRING_VALUE", + * // Status: "CREATING" || "OPERATIONAL" || "UPDATING" || "DELETING" || "ACTION_NEEDED" || "FAILED_CREATION" || "FAILED_DELETION", + * // StatusMessage: "STRING_VALUE", + * // OutpostArn: "STRING_VALUE", + * // }, + * // ], + * // NextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListOutpostResolversCommandInput - {@link ListOutpostResolversCommandInput} + * @returns {@link ListOutpostResolversCommandOutput} + * @see {@link ListOutpostResolversCommandInput} for command's `input` shape. + * @see {@link ListOutpostResolversCommandOutput} for command's `response` shape. + * @see {@link Route53ResolverClientResolvedConfig | config} for Route53ResolverClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

The current account doesn't have the IAM permissions required to perform the specified Resolver operation.

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

We encountered an unknown error. Try again in a few minutes.

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

The specified resource doesn't exist.

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

The request was throttled. Try again in a few minutes.

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

You have provided an invalid command. Supported values are ADD, + * REMOVE, or REPLACE a domain.

+ * + * @throws {@link Route53ResolverServiceException} + *

Base exception class for all service exceptions from Route53Resolver service.

+ * + */ +export class ListOutpostResolversCommand extends $Command< + ListOutpostResolversCommandInput, + ListOutpostResolversCommandOutput, + Route53ResolverClientResolvedConfig +> { + // 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: ListOutpostResolversCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: Route53ResolverClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, ListOutpostResolversCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "Route53ResolverClient"; + const commandName = "ListOutpostResolversCommand"; + 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: ListOutpostResolversCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_ListOutpostResolversCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_ListOutpostResolversCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-route53resolver/src/commands/ListResolverEndpointIpAddressesCommand.ts b/clients/client-route53resolver/src/commands/ListResolverEndpointIpAddressesCommand.ts index ad69c13b7682..41588708b880 100644 --- a/clients/client-route53resolver/src/commands/ListResolverEndpointIpAddressesCommand.ts +++ b/clients/client-route53resolver/src/commands/ListResolverEndpointIpAddressesCommand.ts @@ -64,7 +64,7 @@ export interface ListResolverEndpointIpAddressesCommandOutput * // SubnetId: "STRING_VALUE", * // Ip: "STRING_VALUE", * // Ipv6: "STRING_VALUE", - * // Status: "CREATING" || "FAILED_CREATION" || "ATTACHING" || "ATTACHED" || "REMAP_DETACHING" || "REMAP_ATTACHING" || "DETACHING" || "FAILED_RESOURCE_GONE" || "DELETING" || "DELETE_FAILED_FAS_EXPIRED" || "UPDATING", + * // Status: "CREATING" || "FAILED_CREATION" || "ATTACHING" || "ATTACHED" || "REMAP_DETACHING" || "REMAP_ATTACHING" || "DETACHING" || "FAILED_RESOURCE_GONE" || "DELETING" || "DELETE_FAILED_FAS_EXPIRED" || "UPDATING" || "UPDATE_FAILED", * // StatusMessage: "STRING_VALUE", * // CreationTime: "STRING_VALUE", * // ModificationTime: "STRING_VALUE", diff --git a/clients/client-route53resolver/src/commands/ListResolverEndpointsCommand.ts b/clients/client-route53resolver/src/commands/ListResolverEndpointsCommand.ts index 4050c8b3d281..e5a9cb59217b 100644 --- a/clients/client-route53resolver/src/commands/ListResolverEndpointsCommand.ts +++ b/clients/client-route53resolver/src/commands/ListResolverEndpointsCommand.ts @@ -77,6 +77,8 @@ export interface ListResolverEndpointsCommandOutput extends ListResolverEndpoint * // CreationTime: "STRING_VALUE", * // ModificationTime: "STRING_VALUE", * // ResolverEndpointType: "IPV6" || "IPV4" || "DUALSTACK", + * // OutpostArn: "STRING_VALUE", + * // PreferredInstanceType: "STRING_VALUE", * // }, * // ], * // }; diff --git a/clients/client-route53resolver/src/commands/UpdateOutpostResolverCommand.ts b/clients/client-route53resolver/src/commands/UpdateOutpostResolverCommand.ts new file mode 100644 index 000000000000..796d0704ee5a --- /dev/null +++ b/clients/client-route53resolver/src/commands/UpdateOutpostResolverCommand.ts @@ -0,0 +1,181 @@ +// 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 { UpdateOutpostResolverRequest, UpdateOutpostResolverResponse } from "../models/models_0"; +import { de_UpdateOutpostResolverCommand, se_UpdateOutpostResolverCommand } from "../protocols/Aws_json1_1"; +import { Route53ResolverClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Route53ResolverClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link UpdateOutpostResolverCommand}. + */ +export interface UpdateOutpostResolverCommandInput extends UpdateOutpostResolverRequest {} +/** + * @public + * + * The output of {@link UpdateOutpostResolverCommand}. + */ +export interface UpdateOutpostResolverCommandOutput extends UpdateOutpostResolverResponse, __MetadataBearer {} + +/** + * @public + *

You can use UpdateOutpostResolver to update the instance count, type, or name of a Resolver on an Outpost.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { Route53ResolverClient, UpdateOutpostResolverCommand } from "@aws-sdk/client-route53resolver"; // ES Modules import + * // const { Route53ResolverClient, UpdateOutpostResolverCommand } = require("@aws-sdk/client-route53resolver"); // CommonJS import + * const client = new Route53ResolverClient(config); + * const input = { // UpdateOutpostResolverRequest + * Id: "STRING_VALUE", // required + * Name: "STRING_VALUE", + * InstanceCount: Number("int"), + * PreferredInstanceType: "STRING_VALUE", + * }; + * const command = new UpdateOutpostResolverCommand(input); + * const response = await client.send(command); + * // { // UpdateOutpostResolverResponse + * // OutpostResolver: { // OutpostResolver + * // Arn: "STRING_VALUE", + * // CreationTime: "STRING_VALUE", + * // ModificationTime: "STRING_VALUE", + * // CreatorRequestId: "STRING_VALUE", + * // Id: "STRING_VALUE", + * // InstanceCount: Number("int"), + * // PreferredInstanceType: "STRING_VALUE", + * // Name: "STRING_VALUE", + * // Status: "CREATING" || "OPERATIONAL" || "UPDATING" || "DELETING" || "ACTION_NEEDED" || "FAILED_CREATION" || "FAILED_DELETION", + * // StatusMessage: "STRING_VALUE", + * // OutpostArn: "STRING_VALUE", + * // }, + * // }; + * + * ``` + * + * @param UpdateOutpostResolverCommandInput - {@link UpdateOutpostResolverCommandInput} + * @returns {@link UpdateOutpostResolverCommandOutput} + * @see {@link UpdateOutpostResolverCommandInput} for command's `input` shape. + * @see {@link UpdateOutpostResolverCommandOutput} for command's `response` shape. + * @see {@link Route53ResolverClientResolvedConfig | config} for Route53ResolverClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

The current account doesn't have the IAM permissions required to perform the specified Resolver operation.

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

The requested state transition isn't valid. For example, you can't delete a firewall + * domain list if it is in the process of being deleted, or you can't import domains into a + * domain list that is in the process of being deleted.

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

We encountered an unknown error. Try again in a few minutes.

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

The specified resource doesn't exist.

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

Fulfilling the request would cause one or more quotas to be exceeded.

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

The request was throttled. Try again in a few minutes.

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

You have provided an invalid command. Supported values are ADD, + * REMOVE, or REPLACE a domain.

+ * + * @throws {@link Route53ResolverServiceException} + *

Base exception class for all service exceptions from Route53Resolver service.

+ * + */ +export class UpdateOutpostResolverCommand extends $Command< + UpdateOutpostResolverCommandInput, + UpdateOutpostResolverCommandOutput, + Route53ResolverClientResolvedConfig +> { + // 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: UpdateOutpostResolverCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: Route53ResolverClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, UpdateOutpostResolverCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "Route53ResolverClient"; + const commandName = "UpdateOutpostResolverCommand"; + 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: UpdateOutpostResolverCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_UpdateOutpostResolverCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_UpdateOutpostResolverCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-route53resolver/src/commands/UpdateResolverEndpointCommand.ts b/clients/client-route53resolver/src/commands/UpdateResolverEndpointCommand.ts index bc111c306282..7161028a0f95 100644 --- a/clients/client-route53resolver/src/commands/UpdateResolverEndpointCommand.ts +++ b/clients/client-route53resolver/src/commands/UpdateResolverEndpointCommand.ts @@ -74,6 +74,8 @@ export interface UpdateResolverEndpointCommandOutput extends UpdateResolverEndpo * // CreationTime: "STRING_VALUE", * // ModificationTime: "STRING_VALUE", * // ResolverEndpointType: "IPV6" || "IPV4" || "DUALSTACK", + * // OutpostArn: "STRING_VALUE", + * // PreferredInstanceType: "STRING_VALUE", * // }, * // }; * diff --git a/clients/client-route53resolver/src/commands/index.ts b/clients/client-route53resolver/src/commands/index.ts index 63b5a45e39d3..ab257f3604ab 100644 --- a/clients/client-route53resolver/src/commands/index.ts +++ b/clients/client-route53resolver/src/commands/index.ts @@ -6,12 +6,14 @@ export * from "./AssociateResolverRuleCommand"; export * from "./CreateFirewallDomainListCommand"; export * from "./CreateFirewallRuleCommand"; export * from "./CreateFirewallRuleGroupCommand"; +export * from "./CreateOutpostResolverCommand"; export * from "./CreateResolverEndpointCommand"; export * from "./CreateResolverQueryLogConfigCommand"; export * from "./CreateResolverRuleCommand"; export * from "./DeleteFirewallDomainListCommand"; export * from "./DeleteFirewallRuleCommand"; export * from "./DeleteFirewallRuleGroupCommand"; +export * from "./DeleteOutpostResolverCommand"; export * from "./DeleteResolverEndpointCommand"; export * from "./DeleteResolverQueryLogConfigCommand"; export * from "./DeleteResolverRuleCommand"; @@ -24,6 +26,7 @@ export * from "./GetFirewallDomainListCommand"; export * from "./GetFirewallRuleGroupAssociationCommand"; export * from "./GetFirewallRuleGroupCommand"; export * from "./GetFirewallRuleGroupPolicyCommand"; +export * from "./GetOutpostResolverCommand"; export * from "./GetResolverConfigCommand"; export * from "./GetResolverDnssecConfigCommand"; export * from "./GetResolverEndpointCommand"; @@ -40,6 +43,7 @@ export * from "./ListFirewallDomainsCommand"; export * from "./ListFirewallRuleGroupAssociationsCommand"; export * from "./ListFirewallRuleGroupsCommand"; export * from "./ListFirewallRulesCommand"; +export * from "./ListOutpostResolversCommand"; export * from "./ListResolverConfigsCommand"; export * from "./ListResolverDnssecConfigsCommand"; export * from "./ListResolverEndpointIpAddressesCommand"; @@ -58,6 +62,7 @@ export * from "./UpdateFirewallConfigCommand"; export * from "./UpdateFirewallDomainsCommand"; export * from "./UpdateFirewallRuleCommand"; export * from "./UpdateFirewallRuleGroupAssociationCommand"; +export * from "./UpdateOutpostResolverCommand"; export * from "./UpdateResolverConfigCommand"; export * from "./UpdateResolverDnssecConfigCommand"; export * from "./UpdateResolverEndpointCommand"; diff --git a/clients/client-route53resolver/src/endpoint/ruleset.ts b/clients/client-route53resolver/src/endpoint/ruleset.ts index 165d715b5587..907b8c71b9e7 100644 --- a/clients/client-route53resolver/src/endpoint/ruleset.ts +++ b/clients/client-route53resolver/src/endpoint/ruleset.ts @@ -6,27 +6,25 @@ import { RuleSetObject } from "@smithy/types"; or see "smithy.rules#endpointRuleSet" in codegen/sdk-codegen/aws-models/route53resolver.json */ -const s="required", -t="fn", -u="argv", -v="ref"; +const q="required", +r="fn", +s="argv", +t="ref"; const a="isSet", b="tree", c="error", d="endpoint", e="PartitionResult", -f="stringEquals", -g={[s]:false,"type":"String"}, -h={[s]:true,"default":false,"type":"Boolean"}, -i={[v]:"Endpoint"}, -j={[t]:"booleanEquals",[u]:[{[v]:"UseFIPS"},true]}, -k={[t]:"booleanEquals",[u]:[{[v]:"UseDualStack"},true]}, -l={}, -m={[v]:"Region"}, -n={[t]:"booleanEquals",[u]:[true,{[t]:"getAttr",[u]:[{[v]:e},"supportsFIPS"]}]}, -o={[t]:"booleanEquals",[u]:[true,{[t]:"getAttr",[u]:[{[v]:e},"supportsDualStack"]}]}, -p=[j], -q=[k], -r=[m]; -const _data={version:"1.0",parameters:{Region:g,UseDualStack:h,UseFIPS:h,Endpoint:g},rules:[{conditions:[{[t]:a,[u]:[i]}],type:b,rules:[{conditions:p,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:c},{type:b,rules:[{conditions:q,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:c},{endpoint:{url:i,properties:l,headers:l},type:d}]}]},{type:b,rules:[{conditions:[{[t]:a,[u]:r}],type:b,rules:[{conditions:[{[t]:"aws.partition",[u]:r,assign:e}],type:b,rules:[{conditions:[j,k],type:b,rules:[{conditions:[n,o],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://route53resolver-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:l,headers:l},type:d}]}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:c}]},{conditions:p,type:b,rules:[{conditions:[n],type:b,rules:[{type:b,rules:[{conditions:[{[t]:f,[u]:[m,"us-gov-east-1"]}],endpoint:{url:"https://route53resolver.us-gov-east-1.amazonaws.com",properties:l,headers:l},type:d},{conditions:[{[t]:f,[u]:[m,"us-gov-west-1"]}],endpoint:{url:"https://route53resolver.us-gov-west-1.amazonaws.com",properties:l,headers:l},type:d},{endpoint:{url:"https://route53resolver-fips.{Region}.{PartitionResult#dnsSuffix}",properties:l,headers:l},type:d}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:c}]},{conditions:q,type:b,rules:[{conditions:[o],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://route53resolver.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:l,headers:l},type:d}]}]},{error:"DualStack is enabled but this partition does not support DualStack",type:c}]},{type:b,rules:[{endpoint:{url:"https://route53resolver.{Region}.{PartitionResult#dnsSuffix}",properties:l,headers:l},type:d}]}]}]},{error:"Invalid Configuration: Missing Region",type:c}]}]}; +f={[q]:false,"type":"String"}, +g={[q]:true,"default":false,"type":"Boolean"}, +h={[t]:"Endpoint"}, +i={[r]:"booleanEquals",[s]:[{[t]:"UseFIPS"},true]}, +j={[r]:"booleanEquals",[s]:[{[t]:"UseDualStack"},true]}, +k={}, +l={[r]:"booleanEquals",[s]:[true,{[r]:"getAttr",[s]:[{[t]:e},"supportsFIPS"]}]}, +m={[r]:"booleanEquals",[s]:[true,{[r]:"getAttr",[s]:[{[t]:e},"supportsDualStack"]}]}, +n=[i], +o=[j], +p=[{[t]:"Region"}]; +const _data={version:"1.0",parameters:{Region:f,UseDualStack:g,UseFIPS:g,Endpoint:f},rules:[{conditions:[{[r]:a,[s]:[h]}],type:b,rules:[{conditions:n,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:c},{type:b,rules:[{conditions:o,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:c},{endpoint:{url:h,properties:k,headers:k},type:d}]}]},{type:b,rules:[{conditions:[{[r]:a,[s]:p}],type:b,rules:[{conditions:[{[r]:"aws.partition",[s]:p,assign:e}],type:b,rules:[{conditions:[i,j],type:b,rules:[{conditions:[l,m],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://route53resolver-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:k,headers:k},type:d}]}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:c}]},{conditions:n,type:b,rules:[{conditions:[l],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://route53resolver-fips.{Region}.{PartitionResult#dnsSuffix}",properties:k,headers:k},type:d}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:c}]},{conditions:o,type:b,rules:[{conditions:[m],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://route53resolver.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:k,headers:k},type:d}]}]},{error:"DualStack is enabled but this partition does not support DualStack",type:c}]},{type:b,rules:[{endpoint:{url:"https://route53resolver.{Region}.{PartitionResult#dnsSuffix}",properties:k,headers:k},type:d}]}]}]},{error:"Invalid Configuration: Missing Region",type:c}]}]}; export const ruleSet: RuleSetObject = _data; diff --git a/clients/client-route53resolver/src/models/models_0.ts b/clients/client-route53resolver/src/models/models_0.ts index bff32eed4a37..b4d83300e0da 100644 --- a/clients/client-route53resolver/src/models/models_0.ts +++ b/clients/client-route53resolver/src/models/models_0.ts @@ -603,6 +603,18 @@ export interface ResolverEndpoint { *

*/ ResolverEndpointType?: ResolverEndpointType | string; + + /** + *

The ARN (Amazon Resource Name) for the Outpost.

+ */ + OutpostArn?: string; + + /** + *

+ * The Amazon EC2 instance type. + *

+ */ + PreferredInstanceType?: string; } /** @@ -1430,6 +1442,167 @@ export interface CreateFirewallRuleGroupResponse { FirewallRuleGroup?: FirewallRuleGroup; } +/** + * @public + */ +export interface CreateOutpostResolverRequest { + /** + *

A unique string that identifies the request + * and that allows failed requests to be retried without the risk of running the operation twice.

+ *

+ * CreatorRequestId can be any unique string, for example, a date/time stamp.

+ */ + CreatorRequestId: string | undefined; + + /** + *

A friendly name that lets you easily find a configuration in the + * Resolver dashboard in the Route 53 console.

+ */ + Name: string | undefined; + + /** + *

Number of Amazon EC2 instances for the + * Resolver on Outpost. + * The default and minimal value is 4.

+ */ + InstanceCount?: number; + + /** + *

+ * The Amazon EC2 instance type. If you specify this, you must also specify a value for the OutpostArn. + *

+ */ + PreferredInstanceType: string | undefined; + + /** + *

The Amazon Resource Name (ARN) of the Outpost. If you specify this, you must also specify a value for the PreferredInstanceType.

+ */ + OutpostArn: string | undefined; + + /** + *

+ * A string that helps identify the Route 53 Resolvers on Outpost. + *

+ */ + Tags?: Tag[]; +} + +/** + * @public + * @enum + */ +export const OutpostResolverStatus = { + ACTION_NEEDED: "ACTION_NEEDED", + CREATING: "CREATING", + DELETING: "DELETING", + FAILED_CREATION: "FAILED_CREATION", + FAILED_DELETION: "FAILED_DELETION", + OPERATIONAL: "OPERATIONAL", + UPDATING: "UPDATING", +} as const; + +/** + * @public + */ +export type OutpostResolverStatus = (typeof OutpostResolverStatus)[keyof typeof OutpostResolverStatus]; + +/** + * @public + *

A complex type that contains settings for an existing Resolver on an Outpost.

+ */ +export interface OutpostResolver { + /** + *

The ARN (Amazon Resource Name) for the Resolver on an Outpost.

+ */ + Arn?: string; + + /** + *

The date and time that the Outpost Resolver was created, in Unix time format and Coordinated Universal Time (UTC).

+ */ + CreationTime?: string; + + /** + *

The date and time that the Outpost Resolver was modified, in Unix time format and Coordinated Universal Time (UTC).

+ */ + ModificationTime?: string; + + /** + *

A unique string that identifies the request that created the Resolver endpoint. + * The CreatorRequestId allows failed requests to be retried without the risk of running the operation twice.

+ */ + CreatorRequestId?: string; + + /** + *

The ID of the Resolver on Outpost.

+ */ + Id?: string; + + /** + *

Amazon EC2 instance count for the Resolver on the Outpost.

+ */ + InstanceCount?: number; + + /** + *

+ * The Amazon EC2 instance type. + *

+ */ + PreferredInstanceType?: string; + + /** + *

Name of the Resolver.

+ */ + Name?: string; + + /** + *

Status of the Resolver.

+ */ + Status?: OutpostResolverStatus | string; + + /** + *

A detailed description of the Resolver.

+ */ + StatusMessage?: string; + + /** + *

The ARN (Amazon Resource Name) for the Outpost.

+ */ + OutpostArn?: string; +} + +/** + * @public + */ +export interface CreateOutpostResolverResponse { + /** + *

Information about the CreateOutpostResolver + * request, including the status of the request.

+ */ + OutpostResolver?: OutpostResolver; +} + +/** + * @public + *

Fulfilling the request would cause one or more quotas to be exceeded.

+ */ +export class ServiceQuotaExceededException extends __BaseException { + readonly name: "ServiceQuotaExceededException" = "ServiceQuotaExceededException"; + readonly $fault: "client" = "client"; + Message?: string; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ServiceQuotaExceededException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ServiceQuotaExceededException.prototype); + this.Message = opts.Message; + } +} + /** * @public *

In a @@ -1508,12 +1681,23 @@ export interface CreateResolverEndpointRequest { /** *

- * For the endpoint type you can choose either IPv4, IPv6. or dual-stack. + * For the endpoint type you can choose either IPv4, IPv6, or dual-stack. * A dual-stack endpoint means that it will resolve via both IPv4 and IPv6. This * endpoint type is applied to all IP addresses. *

*/ ResolverEndpointType?: ResolverEndpointType | string; + + /** + *

The Amazon Resource Name (ARN) of the Outpost. If you specify this, you must also specify a + * value for the PreferredInstanceType.

+ */ + OutpostArn?: string; + + /** + *

The instance type. If you specify this, you must also specify a value for the OutpostArn.

+ */ + PreferredInstanceType?: string; } /** @@ -1777,7 +1961,7 @@ export interface CreateResolverRuleRequest { DomainName: string | undefined; /** - *

The IPs that you want Resolver to forward DNS queries to. You can specify only IPv4 addresses. Separate IP addresses with a space.

+ *

The IPs that you want Resolver to forward DNS queries to. You can specify either Ipv4 or Ipv6 addresses but not both in the same rule. Separate IP addresses with a space.

*

* TargetIps is available only when the value of Rule type is FORWARD.

*/ @@ -1875,7 +2059,7 @@ export interface ResolverRule { /** *

An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to. Typically, - * these are the IP addresses of DNS resolvers on your network. Specify IPv4 addresses. IPv6 is not supported.

+ * these are the IP addresses of DNS resolvers on your network.

*/ TargetIps?: TargetAddress[]; @@ -1981,6 +2165,27 @@ export interface DeleteFirewallRuleGroupResponse { FirewallRuleGroup?: FirewallRuleGroup; } +/** + * @public + */ +export interface DeleteOutpostResolverRequest { + /** + *

A unique string that identifies the Resolver on the Outpost.

+ */ + Id: string | undefined; +} + +/** + * @public + */ +export interface DeleteOutpostResolverResponse { + /** + *

Information about the DeleteOutpostResolver + * request, including the status of the request.

+ */ + OutpostResolver?: OutpostResolver; +} + /** * @public */ @@ -2685,6 +2890,27 @@ export interface GetFirewallRuleGroupPolicyResponse { FirewallRuleGroupPolicy?: string; } +/** + * @public + */ +export interface GetOutpostResolverRequest { + /** + *

The ID of the Resolver on the Outpost.

+ */ + Id: string | undefined; +} + +/** + * @public + */ +export interface GetOutpostResolverResponse { + /** + *

Information about the GetOutpostResolver + * request, including the status of the request.

+ */ + OutpostResolver?: OutpostResolver; +} + /** * @public */ @@ -3149,6 +3375,7 @@ export const IpAddressStatus = { FailedResourceGone: "FAILED_RESOURCE_GONE", RemapAttaching: "REMAP_ATTACHING", RemapDetaching: "REMAP_DETACHING", + UpdateFailed: "UPDATE_FAILED", Updating: "UPDATING", } as const; @@ -3505,6 +3732,46 @@ export interface ListFirewallRulesResponse { FirewallRules?: FirewallRule[]; } +/** + * @public + */ +export interface ListOutpostResolversRequest { + /** + *

The Amazon Resource Name (ARN) of the Outpost.

+ */ + OutpostArn?: string; + + /** + *

The maximum number of Resolvers on the Outpost that you want to return in the response to a + * ListOutpostResolver request. If you don't specify a value for + * MaxResults, the request returns up to 100 Resolvers.

+ */ + MaxResults?: number; + + /** + *

For the first ListOutpostResolver request, omit this value.

+ *

+ */ + NextToken?: string; +} + +/** + * @public + */ +export interface ListOutpostResolversResponse { + /** + *

The Resolvers on Outposts that were created by using the current Amazon Web Services account, + * and that match the specified filters, if any.

+ */ + OutpostResolvers?: OutpostResolver[]; + + /** + *

If more than MaxResults Resolvers match the specified criteria, you can submit another + * ListOutpostResolver request to get the next group of results. In the next request, specify the value of NextToken from the previous response.

+ */ + NextToken?: string; +} + /** * @public */ @@ -4189,11 +4456,6 @@ export interface PutResolverQueryLogConfigPolicyRequest { * *
  • *

    - * route53resolver:ListResolverQueryLogConfigAssociations - *

    - *
  • - *
  • - *

    * route53resolver:ListResolverQueryLogConfigs *

    *
  • @@ -4646,6 +4908,43 @@ export interface UpdateFirewallRuleGroupAssociationResponse { FirewallRuleGroupAssociation?: FirewallRuleGroupAssociation; } +/** + * @public + */ +export interface UpdateOutpostResolverRequest { + /** + *

    A unique string that identifies Resolver on an Outpost.

    + */ + Id: string | undefined; + + /** + *

    Name of the Resolver on the Outpost.

    + */ + Name?: string; + + /** + *

    The Amazon EC2 instance count for a Resolver on the Outpost.

    + */ + InstanceCount?: number; + + /** + *

    + * Amazon EC2 instance type. + *

    + */ + PreferredInstanceType?: string; +} + +/** + * @public + */ +export interface UpdateOutpostResolverResponse { + /** + *

    The response to an UpdateOutpostResolver request.

    + */ + OutpostResolver?: OutpostResolver; +} + /** * @public */ @@ -4761,12 +5060,14 @@ export interface UpdateResolverEndpointRequest { *

    * Specifies the endpoint type for what type of IP address the endpoint uses to forward DNS queries. *

    + *

    Updating to IPV6 type isn't currently supported.

    */ ResolverEndpointType?: ResolverEndpointType | string; /** *

    - * Updates the Resolver endpoint type to IpV4, Ipv6, or dual-stack. + * Specifies the IPv6 address when you update the Resolver endpoint from IPv4 to dual-stack. + * If you don't specify an IPv6 address, one will be automatically chosen from your subnet. *

    */ UpdateIpAddresses?: UpdateIpAddress[]; diff --git a/clients/client-route53resolver/src/pagination/ListOutpostResolversPaginator.ts b/clients/client-route53resolver/src/pagination/ListOutpostResolversPaginator.ts new file mode 100644 index 000000000000..22777c7f5111 --- /dev/null +++ b/clients/client-route53resolver/src/pagination/ListOutpostResolversPaginator.ts @@ -0,0 +1,50 @@ +// smithy-typescript generated code +import { Paginator } from "@smithy/types"; + +import { + ListOutpostResolversCommand, + ListOutpostResolversCommandInput, + ListOutpostResolversCommandOutput, +} from "../commands/ListOutpostResolversCommand"; +import { Route53ResolverClient } from "../Route53ResolverClient"; +import { Route53ResolverPaginationConfiguration } from "./Interfaces"; + +/** + * @internal + */ +const makePagedClientRequest = async ( + client: Route53ResolverClient, + input: ListOutpostResolversCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListOutpostResolversCommand(input), ...args); +}; +/** + * @public + */ +export async function* paginateListOutpostResolvers( + config: Route53ResolverPaginationConfiguration, + input: ListOutpostResolversCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListOutpostResolversCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof Route53ResolverClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected Route53Resolver | Route53ResolverClient"); + } + yield page; + const prevToken = token; + token = page.NextToken; + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-route53resolver/src/pagination/index.ts b/clients/client-route53resolver/src/pagination/index.ts index 3ddd4172dc4a..6685f3106d8d 100644 --- a/clients/client-route53resolver/src/pagination/index.ts +++ b/clients/client-route53resolver/src/pagination/index.ts @@ -6,6 +6,7 @@ export * from "./ListFirewallDomainsPaginator"; export * from "./ListFirewallRuleGroupAssociationsPaginator"; export * from "./ListFirewallRuleGroupsPaginator"; export * from "./ListFirewallRulesPaginator"; +export * from "./ListOutpostResolversPaginator"; export * from "./ListResolverConfigsPaginator"; export * from "./ListResolverDnssecConfigsPaginator"; export * from "./ListResolverEndpointIpAddressesPaginator"; diff --git a/clients/client-route53resolver/src/protocols/Aws_json1_1.ts b/clients/client-route53resolver/src/protocols/Aws_json1_1.ts index 7f244dce20ee..7c12aeada35b 100644 --- a/clients/client-route53resolver/src/protocols/Aws_json1_1.ts +++ b/clients/client-route53resolver/src/protocols/Aws_json1_1.ts @@ -40,6 +40,10 @@ import { CreateFirewallRuleGroupCommandInput, CreateFirewallRuleGroupCommandOutput, } from "../commands/CreateFirewallRuleGroupCommand"; +import { + CreateOutpostResolverCommandInput, + CreateOutpostResolverCommandOutput, +} from "../commands/CreateOutpostResolverCommand"; import { CreateResolverEndpointCommandInput, CreateResolverEndpointCommandOutput, @@ -58,6 +62,10 @@ import { DeleteFirewallRuleGroupCommandInput, DeleteFirewallRuleGroupCommandOutput, } from "../commands/DeleteFirewallRuleGroupCommand"; +import { + DeleteOutpostResolverCommandInput, + DeleteOutpostResolverCommandOutput, +} from "../commands/DeleteOutpostResolverCommand"; import { DeleteResolverEndpointCommandInput, DeleteResolverEndpointCommandOutput, @@ -100,6 +108,7 @@ import { GetFirewallRuleGroupPolicyCommandInput, GetFirewallRuleGroupPolicyCommandOutput, } from "../commands/GetFirewallRuleGroupPolicyCommand"; +import { GetOutpostResolverCommandInput, GetOutpostResolverCommandOutput } from "../commands/GetOutpostResolverCommand"; import { GetResolverConfigCommandInput, GetResolverConfigCommandOutput } from "../commands/GetResolverConfigCommand"; import { GetResolverDnssecConfigCommandInput, @@ -155,6 +164,10 @@ import { ListFirewallRuleGroupsCommandOutput, } from "../commands/ListFirewallRuleGroupsCommand"; import { ListFirewallRulesCommandInput, ListFirewallRulesCommandOutput } from "../commands/ListFirewallRulesCommand"; +import { + ListOutpostResolversCommandInput, + ListOutpostResolversCommandOutput, +} from "../commands/ListOutpostResolversCommand"; import { ListResolverConfigsCommandInput, ListResolverConfigsCommandOutput, @@ -215,6 +228,10 @@ import { UpdateFirewallRuleGroupAssociationCommandInput, UpdateFirewallRuleGroupAssociationCommandOutput, } from "../commands/UpdateFirewallRuleGroupAssociationCommand"; +import { + UpdateOutpostResolverCommandInput, + UpdateOutpostResolverCommandOutput, +} from "../commands/UpdateOutpostResolverCommand"; import { UpdateResolverConfigCommandInput, UpdateResolverConfigCommandOutput, @@ -238,12 +255,14 @@ import { CreateFirewallDomainListRequest, CreateFirewallRuleGroupRequest, CreateFirewallRuleRequest, + CreateOutpostResolverRequest, CreateResolverEndpointRequest, CreateResolverQueryLogConfigRequest, CreateResolverRuleRequest, DeleteFirewallDomainListRequest, DeleteFirewallRuleGroupRequest, DeleteFirewallRuleRequest, + DeleteOutpostResolverRequest, DeleteResolverEndpointRequest, DeleteResolverQueryLogConfigRequest, DeleteResolverRuleRequest, @@ -257,6 +276,7 @@ import { GetFirewallRuleGroupAssociationRequest, GetFirewallRuleGroupPolicyRequest, GetFirewallRuleGroupRequest, + GetOutpostResolverRequest, GetResolverConfigRequest, GetResolverDnssecConfigRequest, GetResolverEndpointRequest, @@ -282,6 +302,7 @@ import { ListFirewallRuleGroupAssociationsRequest, ListFirewallRuleGroupsRequest, ListFirewallRulesRequest, + ListOutpostResolversRequest, ListResolverConfigsRequest, ListResolverDnssecConfigsRequest, ListResolverEndpointIpAddressesRequest, @@ -299,6 +320,7 @@ import { ResourceInUseException, ResourceNotFoundException, ResourceUnavailableException, + ServiceQuotaExceededException, Tag, TagResourceRequest, TargetAddress, @@ -310,6 +332,7 @@ import { UpdateFirewallRuleGroupAssociationRequest, UpdateFirewallRuleRequest, UpdateIpAddress, + UpdateOutpostResolverRequest, UpdateResolverConfigRequest, UpdateResolverDnssecConfigRequest, UpdateResolverEndpointRequest, @@ -409,6 +432,19 @@ export const se_CreateFirewallRuleGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1CreateOutpostResolverCommand + */ +export const se_CreateOutpostResolverCommand = async ( + input: CreateOutpostResolverCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("CreateOutpostResolver"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1CreateResolverEndpointCommand */ @@ -487,6 +523,19 @@ export const se_DeleteFirewallRuleGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1DeleteOutpostResolverCommand + */ +export const se_DeleteOutpostResolverCommand = async ( + input: DeleteOutpostResolverCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("DeleteOutpostResolver"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1DeleteResolverEndpointCommand */ @@ -643,6 +692,19 @@ export const se_GetFirewallRuleGroupPolicyCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1GetOutpostResolverCommand + */ +export const se_GetOutpostResolverCommand = async ( + input: GetOutpostResolverCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("GetOutpostResolver"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1GetResolverConfigCommand */ @@ -851,6 +913,19 @@ export const se_ListFirewallRulesCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1ListOutpostResolversCommand + */ +export const se_ListOutpostResolversCommand = async ( + input: ListOutpostResolversCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListOutpostResolvers"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1ListResolverConfigsCommand */ @@ -1085,6 +1160,19 @@ export const se_UpdateFirewallRuleGroupAssociationCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1UpdateOutpostResolverCommand + */ +export const se_UpdateOutpostResolverCommand = async ( + input: UpdateOutpostResolverCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("UpdateOutpostResolver"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1UpdateResolverConfigCommand */ @@ -1576,6 +1664,67 @@ const de_CreateFirewallRuleGroupCommandError = async ( } }; +/** + * deserializeAws_json1_1CreateOutpostResolverCommand + */ +export const de_CreateOutpostResolverCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CreateOutpostResolverCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: CreateOutpostResolverCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1CreateOutpostResolverCommandError + */ +const de_CreateOutpostResolverCommandError = 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 "AccessDeniedException": + case "com.amazonaws.route53resolver#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "InternalServiceErrorException": + case "com.amazonaws.route53resolver#InternalServiceErrorException": + throw await de_InternalServiceErrorExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.route53resolver#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ServiceQuotaExceededException": + case "com.amazonaws.route53resolver#ServiceQuotaExceededException": + throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.route53resolver#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + case "ValidationException": + case "com.amazonaws.route53resolver#ValidationException": + throw await de_ValidationExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_json1_1CreateResolverEndpointCommand */ @@ -1948,6 +2097,67 @@ const de_DeleteFirewallRuleGroupCommandError = async ( } }; +/** + * deserializeAws_json1_1DeleteOutpostResolverCommand + */ +export const de_DeleteOutpostResolverCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DeleteOutpostResolverCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: DeleteOutpostResolverCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1DeleteOutpostResolverCommandError + */ +const de_DeleteOutpostResolverCommandError = 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 "AccessDeniedException": + case "com.amazonaws.route53resolver#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.route53resolver#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); + case "InternalServiceErrorException": + case "com.amazonaws.route53resolver#InternalServiceErrorException": + throw await de_InternalServiceErrorExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.route53resolver#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.route53resolver#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + case "ValidationException": + case "com.amazonaws.route53resolver#ValidationException": + throw await de_ValidationExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_json1_1DeleteResolverEndpointCommand */ @@ -2644,6 +2854,64 @@ const de_GetFirewallRuleGroupPolicyCommandError = async ( } }; +/** + * deserializeAws_json1_1GetOutpostResolverCommand + */ +export const de_GetOutpostResolverCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_GetOutpostResolverCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: GetOutpostResolverCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1GetOutpostResolverCommandError + */ +const de_GetOutpostResolverCommandError = 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 "AccessDeniedException": + case "com.amazonaws.route53resolver#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "InternalServiceErrorException": + case "com.amazonaws.route53resolver#InternalServiceErrorException": + throw await de_InternalServiceErrorExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.route53resolver#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.route53resolver#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + case "ValidationException": + case "com.amazonaws.route53resolver#ValidationException": + throw await de_ValidationExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_json1_1GetResolverConfigCommand */ @@ -3566,6 +3834,64 @@ const de_ListFirewallRulesCommandError = async ( } }; +/** + * deserializeAws_json1_1ListOutpostResolversCommand + */ +export const de_ListOutpostResolversCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_ListOutpostResolversCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: ListOutpostResolversCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1ListOutpostResolversCommandError + */ +const de_ListOutpostResolversCommandError = 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 "AccessDeniedException": + case "com.amazonaws.route53resolver#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "InternalServiceErrorException": + case "com.amazonaws.route53resolver#InternalServiceErrorException": + throw await de_InternalServiceErrorExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.route53resolver#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.route53resolver#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + case "ValidationException": + case "com.amazonaws.route53resolver#ValidationException": + throw await de_ValidationExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_json1_1ListResolverConfigsCommand */ @@ -4649,6 +4975,70 @@ const de_UpdateFirewallRuleGroupAssociationCommandError = async ( } }; +/** + * deserializeAws_json1_1UpdateOutpostResolverCommand + */ +export const de_UpdateOutpostResolverCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_UpdateOutpostResolverCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: UpdateOutpostResolverCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1UpdateOutpostResolverCommandError + */ +const de_UpdateOutpostResolverCommandError = 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 "AccessDeniedException": + case "com.amazonaws.route53resolver#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.route53resolver#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); + case "InternalServiceErrorException": + case "com.amazonaws.route53resolver#InternalServiceErrorException": + throw await de_InternalServiceErrorExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.route53resolver#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ServiceQuotaExceededException": + case "com.amazonaws.route53resolver#ServiceQuotaExceededException": + throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.route53resolver#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + case "ValidationException": + case "com.amazonaws.route53resolver#ValidationException": + throw await de_ValidationExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_json1_1UpdateResolverConfigCommand */ @@ -5104,6 +5494,22 @@ const de_ResourceUnavailableExceptionRes = async ( return __decorateServiceException(exception, body); }; +/** + * deserializeAws_json1_1ServiceQuotaExceededExceptionRes + */ +const de_ServiceQuotaExceededExceptionRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new ServiceQuotaExceededException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + /** * deserializeAws_json1_1ThrottlingExceptionRes */ @@ -5210,6 +5616,8 @@ const se_CreateFirewallRuleRequest = (input: CreateFirewallRuleRequest, context: }); }; +// se_CreateOutpostResolverRequest omitted. + // se_CreateResolverEndpointRequest omitted. /** @@ -5235,6 +5643,8 @@ const se_CreateResolverQueryLogConfigRequest = ( // se_DeleteFirewallRuleRequest omitted. +// se_DeleteOutpostResolverRequest omitted. + // se_DeleteResolverEndpointRequest omitted. // se_DeleteResolverQueryLogConfigRequest omitted. @@ -5267,6 +5677,8 @@ const se_CreateResolverQueryLogConfigRequest = ( // se_GetFirewallRuleGroupRequest omitted. +// se_GetOutpostResolverRequest omitted. + // se_GetResolverConfigRequest omitted. // se_GetResolverDnssecConfigRequest omitted. @@ -5305,6 +5717,8 @@ const se_CreateResolverQueryLogConfigRequest = ( // se_ListFirewallRulesRequest omitted. +// se_ListOutpostResolversRequest omitted. + // se_ListResolverConfigsRequest omitted. // se_ListResolverDnssecConfigsRequest omitted. @@ -5359,6 +5773,8 @@ const se_CreateResolverQueryLogConfigRequest = ( // se_UpdateIpAddresses omitted. +// se_UpdateOutpostResolverRequest omitted. + // se_UpdateResolverConfigRequest omitted. // se_UpdateResolverDnssecConfigRequest omitted. @@ -5385,6 +5801,8 @@ const se_CreateResolverQueryLogConfigRequest = ( // de_CreateFirewallRuleResponse omitted. +// de_CreateOutpostResolverResponse omitted. + // de_CreateResolverEndpointResponse omitted. // de_CreateResolverQueryLogConfigResponse omitted. @@ -5397,6 +5815,8 @@ const se_CreateResolverQueryLogConfigRequest = ( // de_DeleteFirewallRuleResponse omitted. +// de_DeleteOutpostResolverResponse omitted. + // de_DeleteResolverEndpointResponse omitted. // de_DeleteResolverQueryLogConfigResponse omitted. @@ -5447,6 +5867,8 @@ const se_CreateResolverQueryLogConfigRequest = ( // de_GetFirewallRuleGroupResponse omitted. +// de_GetOutpostResolverResponse omitted. + // de_GetResolverConfigResponse omitted. // de_GetResolverDnssecConfigResponse omitted. @@ -5497,6 +5919,8 @@ const se_CreateResolverQueryLogConfigRequest = ( // de_ListFirewallRulesResponse omitted. +// de_ListOutpostResolversResponse omitted. + // de_ListResolverConfigsResponse omitted. // de_ListResolverDnssecConfigsResponse omitted. @@ -5515,6 +5939,10 @@ const se_CreateResolverQueryLogConfigRequest = ( // de_ListTagsForResourceResponse omitted. +// de_OutpostResolver omitted. + +// de_OutpostResolverList omitted. + // de_PutFirewallRuleGroupPolicyResponse omitted. // de_PutResolverQueryLogConfigPolicyResponse omitted. @@ -5559,6 +5987,8 @@ const se_CreateResolverQueryLogConfigRequest = ( // de_SecurityGroupIds omitted. +// de_ServiceQuotaExceededException omitted. + // de_Tag omitted. // de_TagList omitted. @@ -5583,6 +6013,8 @@ const se_CreateResolverQueryLogConfigRequest = ( // de_UpdateFirewallRuleResponse omitted. +// de_UpdateOutpostResolverResponse omitted. + // de_UpdateResolverConfigResponse omitted. // de_UpdateResolverDnssecConfigResponse omitted. diff --git a/codegen/sdk-codegen/aws-models/route53resolver.json b/codegen/sdk-codegen/aws-models/route53resolver.json index d19e5fcbc1bd..d8c930da6a49 100644 --- a/codegen/sdk-codegen/aws-models/route53resolver.json +++ b/codegen/sdk-codegen/aws-models/route53resolver.json @@ -776,6 +776,100 @@ "smithy.api#output": {} } }, + "com.amazonaws.route53resolver#CreateOutpostResolver": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53resolver#CreateOutpostResolverRequest" + }, + "output": { + "target": "com.amazonaws.route53resolver#CreateOutpostResolverResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53resolver#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53resolver#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.route53resolver#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53resolver#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.route53resolver#ThrottlingException" + }, + { + "target": "com.amazonaws.route53resolver#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

    Creates an Route 53 Resolver on an Outpost.

    " + } + }, + "com.amazonaws.route53resolver#CreateOutpostResolverRequest": { + "type": "structure", + "members": { + "CreatorRequestId": { + "target": "com.amazonaws.route53resolver#CreatorRequestId", + "traits": { + "smithy.api#documentation": "

    A unique string that identifies the request \n\t\tand that allows failed requests to be retried without the risk of running the operation twice.

    \n

    \n CreatorRequestId can be any unique string, for example, a date/time stamp.

    ", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.route53resolver#OutpostResolverName", + "traits": { + "smithy.api#documentation": "

    A friendly name that lets you easily find a configuration in the \n\t\tResolver dashboard in the Route 53 console.

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

    Number of Amazon EC2 instances for the\n\t\tResolver on Outpost. \n\t\tThe default and minimal value is 4.

    " + } + }, + "PreferredInstanceType": { + "target": "com.amazonaws.route53resolver#OutpostInstanceType", + "traits": { + "smithy.api#documentation": "

    \n\t\tThe Amazon EC2 instance type. If you specify this, you must also specify a value for the OutpostArn.\n\t

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

    The Amazon Resource Name (ARN) of the Outpost. If you specify this, you must also specify a value for the PreferredInstanceType.

    ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.route53resolver#TagList", + "traits": { + "smithy.api#documentation": "

    \n\t\t\tA string that helps identify the Route 53 Resolvers on Outpost.\n\t\t

    " + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53resolver#CreateOutpostResolverResponse": { + "type": "structure", + "members": { + "OutpostResolver": { + "target": "com.amazonaws.route53resolver#OutpostResolver", + "traits": { + "smithy.api#documentation": "

    Information about the CreateOutpostResolver\n\t\trequest, including the status of the request.

    " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.route53resolver#CreateResolverEndpoint": { "type": "operation", "input": { @@ -857,7 +951,19 @@ "ResolverEndpointType": { "target": "com.amazonaws.route53resolver#ResolverEndpointType", "traits": { - "smithy.api#documentation": "

    \n\t\t\tFor the endpoint type you can choose either IPv4, IPv6. or dual-stack.\n\t\t\tA dual-stack endpoint means that it will resolve via both IPv4 and IPv6. This\n\t\t\tendpoint type is applied to all IP addresses.\n\t\t

    " + "smithy.api#documentation": "

    \n\t\t\tFor the endpoint type you can choose either IPv4, IPv6, or dual-stack.\n\t\t\tA dual-stack endpoint means that it will resolve via both IPv4 and IPv6. This\n\t\t\tendpoint type is applied to all IP addresses.\n\t\t

    " + } + }, + "OutpostArn": { + "target": "com.amazonaws.route53resolver#OutpostArn", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Outpost. If you specify this, you must also specify a\n\t\t\tvalue for the PreferredInstanceType.

    " + } + }, + "PreferredInstanceType": { + "target": "com.amazonaws.route53resolver#OutpostInstanceType", + "traits": { + "smithy.api#documentation": "

    The instance type. If you specify this, you must also specify a value for the OutpostArn.

    " } } }, @@ -1038,7 +1144,7 @@ "TargetIps": { "target": "com.amazonaws.route53resolver#TargetList", "traits": { - "smithy.api#documentation": "

    The IPs that you want Resolver to forward DNS queries to. You can specify only IPv4 addresses. Separate IP addresses with a space.

    \n

    \n TargetIps is available only when the value of Rule type is FORWARD.

    " + "smithy.api#documentation": "

    The IPs that you want Resolver to forward DNS queries to. You can specify either Ipv4 or Ipv6 addresses but not both in the same rule. Separate IP addresses with a space.

    \n

    \n TargetIps is available only when the value of Rule type is FORWARD.

    " } }, "ResolverEndpointId": { @@ -1262,6 +1368,67 @@ "smithy.api#output": {} } }, + "com.amazonaws.route53resolver#DeleteOutpostResolver": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53resolver#DeleteOutpostResolverRequest" + }, + "output": { + "target": "com.amazonaws.route53resolver#DeleteOutpostResolverResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53resolver#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53resolver#ConflictException" + }, + { + "target": "com.amazonaws.route53resolver#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.route53resolver#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53resolver#ThrottlingException" + }, + { + "target": "com.amazonaws.route53resolver#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

    Deletes a Resolver on the Outpost.

    " + } + }, + "com.amazonaws.route53resolver#DeleteOutpostResolverRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.route53resolver#ResourceId", + "traits": { + "smithy.api#documentation": "

    A unique string that identifies the Resolver on the Outpost.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53resolver#DeleteOutpostResolverResponse": { + "type": "structure", + "members": { + "OutpostResolver": { + "target": "com.amazonaws.route53resolver#OutpostResolver", + "traits": { + "smithy.api#documentation": "

    Information about the DeleteOutpostResolver \n\t\trequest, including the status of the request.

    " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.route53resolver#DeleteResolverEndpoint": { "type": "operation", "input": { @@ -2673,6 +2840,64 @@ "smithy.api#output": {} } }, + "com.amazonaws.route53resolver#GetOutpostResolver": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53resolver#GetOutpostResolverRequest" + }, + "output": { + "target": "com.amazonaws.route53resolver#GetOutpostResolverResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53resolver#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53resolver#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.route53resolver#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53resolver#ThrottlingException" + }, + { + "target": "com.amazonaws.route53resolver#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

    Gets information about a specified Resolver on the Outpost, such as its instance count and\n\t\t\ttype, name, and the current status of the Resolver.

    " + } + }, + "com.amazonaws.route53resolver#GetOutpostResolverRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.route53resolver#ResourceId", + "traits": { + "smithy.api#documentation": "

    The ID of the Resolver on the Outpost.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53resolver#GetOutpostResolverResponse": { + "type": "structure", + "members": { + "OutpostResolver": { + "target": "com.amazonaws.route53resolver#OutpostResolver", + "traits": { + "smithy.api#documentation": "

    Information about the GetOutpostResolver\n\t\trequest, including the status of the request.

    " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.route53resolver#GetResolverConfig": { "type": "operation", "input": { @@ -3291,6 +3516,9 @@ "smithy.api#output": {} } }, + "com.amazonaws.route53resolver#InstanceCount": { + "type": "integer" + }, "com.amazonaws.route53resolver#InternalServiceErrorException": { "type": "structure", "members": { @@ -3535,6 +3763,12 @@ "traits": { "smithy.api#enumValue": "UPDATING" } + }, + "UpdateFailed": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATE_FAILED" + } } } }, @@ -4121,6 +4355,87 @@ "smithy.api#output": {} } }, + "com.amazonaws.route53resolver#ListOutpostResolvers": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53resolver#ListOutpostResolversRequest" + }, + "output": { + "target": "com.amazonaws.route53resolver#ListOutpostResolversResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53resolver#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53resolver#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.route53resolver#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53resolver#ThrottlingException" + }, + { + "target": "com.amazonaws.route53resolver#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

    Lists all the Resolvers on Outposts that were created using the current Amazon Web Services account.

    ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "OutpostResolvers", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.route53resolver#ListOutpostResolversRequest": { + "type": "structure", + "members": { + "OutpostArn": { + "target": "com.amazonaws.route53resolver#OutpostArn", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Outpost.

    " + } + }, + "MaxResults": { + "target": "com.amazonaws.route53resolver#MaxResults", + "traits": { + "smithy.api#documentation": "

    The maximum number of Resolvers on the Outpost that you want to return in the response to a\n\t\t\t\tListOutpostResolver request. If you don't specify a value for\n\t\t\t\tMaxResults, the request returns up to 100 Resolvers.

    " + } + }, + "NextToken": { + "target": "com.amazonaws.route53resolver#NextToken", + "traits": { + "smithy.api#documentation": "

    For the first ListOutpostResolver request, omit this value.

    \n

    " + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53resolver#ListOutpostResolversResponse": { + "type": "structure", + "members": { + "OutpostResolvers": { + "target": "com.amazonaws.route53resolver#OutpostResolverList", + "traits": { + "smithy.api#documentation": "

    The Resolvers on Outposts that were created by using the current Amazon Web Services account, \n\t\tand that match the specified filters, if any.

    " + } + }, + "NextToken": { + "target": "com.amazonaws.route53resolver#NextToken", + "traits": { + "smithy.api#documentation": "

    If more than MaxResults Resolvers match the specified criteria, you can submit another \n\t\tListOutpostResolver request to get the next group of results. In the next request, specify the value of NextToken from the previous response.

    " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.route53resolver#ListResolverConfigs": { "type": "operation", "input": { @@ -4988,6 +5303,170 @@ "com.amazonaws.route53resolver#NextToken": { "type": "string" }, + "com.amazonaws.route53resolver#OutpostArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$" + } + }, + "com.amazonaws.route53resolver#OutpostInstanceType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.route53resolver#OutpostResolver": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.route53resolver#Arn", + "traits": { + "smithy.api#documentation": "

    The ARN (Amazon Resource Name) for the Resolver on an Outpost.

    " + } + }, + "CreationTime": { + "target": "com.amazonaws.route53resolver#Rfc3339TimeString", + "traits": { + "smithy.api#documentation": "

    The date and time that the Outpost Resolver was created, in Unix time format and Coordinated Universal Time (UTC).

    " + } + }, + "ModificationTime": { + "target": "com.amazonaws.route53resolver#Rfc3339TimeString", + "traits": { + "smithy.api#documentation": "

    The date and time that the Outpost Resolver was modified, in Unix time format and Coordinated Universal Time (UTC).

    " + } + }, + "CreatorRequestId": { + "target": "com.amazonaws.route53resolver#CreatorRequestId", + "traits": { + "smithy.api#documentation": "

    A unique string that identifies the request that created the Resolver endpoint. \n\t\tThe CreatorRequestId allows failed requests to be retried without the risk of running the operation twice.

    " + } + }, + "Id": { + "target": "com.amazonaws.route53resolver#ResourceId", + "traits": { + "smithy.api#documentation": "

    The ID of the Resolver on Outpost.

    " + } + }, + "InstanceCount": { + "target": "com.amazonaws.route53resolver#InstanceCount", + "traits": { + "smithy.api#documentation": "

    Amazon EC2 instance count for the Resolver on the Outpost.

    " + } + }, + "PreferredInstanceType": { + "target": "com.amazonaws.route53resolver#OutpostInstanceType", + "traits": { + "smithy.api#documentation": "

    \n\t\t\tThe Amazon EC2 instance type.\n\t\t

    " + } + }, + "Name": { + "target": "com.amazonaws.route53resolver#OutpostResolverName", + "traits": { + "smithy.api#documentation": "

    Name of the Resolver.

    " + } + }, + "Status": { + "target": "com.amazonaws.route53resolver#OutpostResolverStatus", + "traits": { + "smithy.api#documentation": "

    Status of the Resolver.

    " + } + }, + "StatusMessage": { + "target": "com.amazonaws.route53resolver#OutpostResolverStatusMessage", + "traits": { + "smithy.api#documentation": "

    A detailed description of the Resolver.

    " + } + }, + "OutpostArn": { + "target": "com.amazonaws.route53resolver#OutpostArn", + "traits": { + "smithy.api#documentation": "

    The ARN (Amazon Resource Name) for the Outpost.

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

    A complex type that contains settings for an existing Resolver on an Outpost.

    " + } + }, + "com.amazonaws.route53resolver#OutpostResolverList": { + "type": "list", + "member": { + "target": "com.amazonaws.route53resolver#OutpostResolver" + } + }, + "com.amazonaws.route53resolver#OutpostResolverName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.route53resolver#OutpostResolverStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "OPERATIONAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OPERATIONAL" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + }, + "ACTION_NEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTION_NEEDED" + } + }, + "FAILED_CREATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED_CREATION" + } + }, + "FAILED_DELETION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED_DELETION" + } + } + } + }, + "com.amazonaws.route53resolver#OutpostResolverStatusMessage": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 4096 + } + } + }, "com.amazonaws.route53resolver#Port": { "type": "integer", "traits": { @@ -5111,7 +5590,7 @@ "ResolverQueryLogConfigPolicy": { "target": "com.amazonaws.route53resolver#ResolverQueryLogConfigPolicy", "traits": { - "smithy.api#documentation": "

    An Identity and Access Management policy statement that lists the query logging configurations that you want to share with another Amazon Web Services account \n\t\t\tand the operations that you want the account to be able to perform. You can specify the following operations in the Actions section \n\t\t\tof the statement:

    \n
      \n
    • \n

      \n route53resolver:AssociateResolverQueryLogConfig\n

      \n
    • \n
    • \n

      \n route53resolver:DisassociateResolverQueryLogConfig\n

      \n
    • \n
    • \n

      \n route53resolver:ListResolverQueryLogConfigAssociations\n

      \n
    • \n
    • \n

      \n route53resolver:ListResolverQueryLogConfigs\n

      \n
    • \n
    \n

    In the Resource section of the statement, you specify the ARNs for the query logging configurations that you want to share \n\t\t\twith the account that you specified in Arn.

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

    An Identity and Access Management policy statement that lists the query logging configurations that you want to share with another Amazon Web Services account \n\t\t\tand the operations that you want the account to be able to perform. You can specify the following operations in the Actions section \n\t\t\tof the statement:

    \n
      \n
    • \n

      \n route53resolver:AssociateResolverQueryLogConfig\n

      \n
    • \n
    • \n

      \n route53resolver:DisassociateResolverQueryLogConfig\n

      \n
    • \n
    • \n

      \n route53resolver:ListResolverQueryLogConfigs\n

      \n
    • \n
    \n

    In the Resource section of the statement, you specify the ARNs for the query logging configurations that you want to share \n\t\t\twith the account that you specified in Arn.

    ", "smithy.api#required": {} } } @@ -5441,6 +5920,18 @@ "traits": { "smithy.api#documentation": "

    \n\t\t\tThe Resolver endpoint IP address type.\n\t\t

    " } + }, + "OutpostArn": { + "target": "com.amazonaws.route53resolver#OutpostArn", + "traits": { + "smithy.api#documentation": "

    The ARN (Amazon Resource Name) for the Outpost.

    " + } + }, + "PreferredInstanceType": { + "target": "com.amazonaws.route53resolver#OutpostInstanceType", + "traits": { + "smithy.api#documentation": "

    \n\t\t\tThe Amazon EC2 instance type.\n\t\t

    " + } } }, "traits": { @@ -5834,7 +6325,7 @@ "TargetIps": { "target": "com.amazonaws.route53resolver#TargetList", "traits": { - "smithy.api#documentation": "

    An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to. Typically, \n\t\t\tthese are the IP addresses of DNS resolvers on your network. Specify IPv4 addresses. IPv6 is not supported.

    " + "smithy.api#documentation": "

    An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to. Typically, \n\t\t\tthese are the IP addresses of DNS resolvers on your network.

    " } }, "ResolverEndpointId": { @@ -6142,6 +6633,9 @@ { "target": "com.amazonaws.route53resolver#CreateFirewallRuleGroup" }, + { + "target": "com.amazonaws.route53resolver#CreateOutpostResolver" + }, { "target": "com.amazonaws.route53resolver#CreateResolverEndpoint" }, @@ -6160,6 +6654,9 @@ { "target": "com.amazonaws.route53resolver#DeleteFirewallRuleGroup" }, + { + "target": "com.amazonaws.route53resolver#DeleteOutpostResolver" + }, { "target": "com.amazonaws.route53resolver#DeleteResolverEndpoint" }, @@ -6196,6 +6693,9 @@ { "target": "com.amazonaws.route53resolver#GetFirewallRuleGroupPolicy" }, + { + "target": "com.amazonaws.route53resolver#GetOutpostResolver" + }, { "target": "com.amazonaws.route53resolver#GetResolverConfig" }, @@ -6244,6 +6744,9 @@ { "target": "com.amazonaws.route53resolver#ListFirewallRules" }, + { + "target": "com.amazonaws.route53resolver#ListOutpostResolvers" + }, { "target": "com.amazonaws.route53resolver#ListResolverConfigs" }, @@ -6298,6 +6801,9 @@ { "target": "com.amazonaws.route53resolver#UpdateFirewallRuleGroupAssociation" }, + { + "target": "com.amazonaws.route53resolver#UpdateOutpostResolver" + }, { "target": "com.amazonaws.route53resolver#UpdateResolverConfig" }, @@ -6569,44 +7075,6 @@ "conditions": [], "type": "tree", "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-east-1" - ] - } - ], - "endpoint": { - "url": "https://route53resolver.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-west-1" - ] - } - ], - "endpoint": { - "url": "https://route53resolver.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, { "conditions": [], "endpoint": { @@ -7118,19 +7586,6 @@ "UseDualStack": false } }, - { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://route53resolver.us-gov-east-1.amazonaws.com" - } - }, - "params": { - "Region": "us-gov-east-1", - "UseFIPS": true, - "UseDualStack": false - } - }, { "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", "expect": { @@ -7145,29 +7600,29 @@ } }, { - "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://route53resolver.us-gov-west-1.amazonaws.com" + "url": "https://route53resolver-fips.us-gov-east-1.api.aws" } }, "params": { - "Region": "us-gov-west-1", + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": false + "UseDualStack": true } }, { - "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://route53resolver-fips.us-gov-east-1.api.aws" + "url": "https://route53resolver-fips.us-gov-east-1.amazonaws.com" } }, "params": { "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": true + "UseDualStack": false } }, { @@ -7379,6 +7834,18 @@ } } }, + "com.amazonaws.route53resolver#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.route53resolver#ExceptionMessage" + } + }, + "traits": { + "smithy.api#documentation": "

    Fulfilling the request would cause one or more quotas to be exceeded.

    ", + "smithy.api#error": "client" + } + }, "com.amazonaws.route53resolver#ShareStatus": { "type": "enum", "members": { @@ -8083,6 +8550,88 @@ } } }, + "com.amazonaws.route53resolver#UpdateOutpostResolver": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53resolver#UpdateOutpostResolverRequest" + }, + "output": { + "target": "com.amazonaws.route53resolver#UpdateOutpostResolverResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53resolver#AccessDeniedException" + }, + { + "target": "com.amazonaws.route53resolver#ConflictException" + }, + { + "target": "com.amazonaws.route53resolver#InternalServiceErrorException" + }, + { + "target": "com.amazonaws.route53resolver#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53resolver#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.route53resolver#ThrottlingException" + }, + { + "target": "com.amazonaws.route53resolver#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

    You can use UpdateOutpostResolver to update the instance count, type, or name of a Resolver on an Outpost.

    " + } + }, + "com.amazonaws.route53resolver#UpdateOutpostResolverRequest": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.route53resolver#ResourceId", + "traits": { + "smithy.api#documentation": "

    A unique string that identifies Resolver on an Outpost.

    ", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.route53resolver#OutpostResolverName", + "traits": { + "smithy.api#documentation": "

    Name of the Resolver on the Outpost.

    " + } + }, + "InstanceCount": { + "target": "com.amazonaws.route53resolver#InstanceCount", + "traits": { + "smithy.api#documentation": "

    The Amazon EC2 instance count for a Resolver on the Outpost.

    " + } + }, + "PreferredInstanceType": { + "target": "com.amazonaws.route53resolver#OutpostInstanceType", + "traits": { + "smithy.api#documentation": "

    \n\t\t\tAmazon EC2 instance type.\n\t\t

    " + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.route53resolver#UpdateOutpostResolverResponse": { + "type": "structure", + "members": { + "OutpostResolver": { + "target": "com.amazonaws.route53resolver#OutpostResolver", + "traits": { + "smithy.api#documentation": "

    The response to an UpdateOutpostResolver request.

    " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.route53resolver#UpdateResolverConfig": { "type": "operation", "input": { @@ -8276,13 +8825,13 @@ "ResolverEndpointType": { "target": "com.amazonaws.route53resolver#ResolverEndpointType", "traits": { - "smithy.api#documentation": "

    \n\t\t\tSpecifies the endpoint type for what type of IP address the endpoint uses to forward DNS queries.\n\t\t

    " + "smithy.api#documentation": "

    \n\t\t\tSpecifies the endpoint type for what type of IP address the endpoint uses to forward DNS queries.\n\t\t

    \n

    Updating to IPV6 type isn't currently supported.

    " } }, "UpdateIpAddresses": { "target": "com.amazonaws.route53resolver#UpdateIpAddresses", "traits": { - "smithy.api#documentation": "

    \n\t\t\tUpdates the Resolver endpoint type to IpV4, Ipv6, or dual-stack.\n\t\t

    " + "smithy.api#documentation": "

    \n\t\t\tSpecifies the IPv6 address when you update the Resolver endpoint from IPv4 to dual-stack. \n\t\t\tIf you don't specify an IPv6 address, one will be automatically chosen from your subnet.\n\t\t

    " } } },