export interface Tag {
    /** The name for the tag. For example, if you want to associate Resolver resources with the account IDs of your customers for billing purposes, the value of Key might be account-id. */
    Key: string;
    /** The value for the tag. For example, if Key is account-id, then Value might be the ID of the customer account that you're creating the resource for. */
    Value: string;
}
export interface IpAddressUpdate {
    /** Only when removing an IP address from a Resolver endpoint: The ID of the IP address that you want to remove. To get this ID, use GetResolverEndpoint. */
    IpId?: string;
    /** The ID of the subnet that includes the IP address that you want to update. To get this ID, use GetResolverEndpoint. */
    SubnetId?: string;
    /** The new IPv4 address. */
    Ip?: string;
    /** The new IPv6 address. */
    Ipv6?: string;
}
export interface IpAddressRequest {
    /** The ID of the subnet that contains the IP address. */
    SubnetId: string;
    /** The IPv4 address that you want to use for DNS queries. */
    Ip?: string;
    /** The IPv6 address that you want to use for DNS queries. */
    Ipv6?: string;
}
export interface TargetAddress {
    /** One IPv4 address that you want to forward DNS queries to. */
    Ip?: string;
    /** The port at Ip that you want to forward DNS queries to. */
    Port?: number;
    /** One IPv6 address that you want to forward DNS queries to. */
    Ipv6?: string;
    /** The protocols for the target address. The protocol you choose needs to be supported by the outbound endpoint of the Resolver rule. */
    Protocol?: 'DoH' | 'Do53' | 'DoH-FIPS';
    /** The Server Name Indication of the DoH server that you want to forward queries to. This is only used if the Protocol of the TargetAddress is DoH. */
    ServerNameIndication?: string;
}
export interface Filter {
    /** The name of the parameter that you want to use to filter objects. The valid values for Name depend on the action that you're including the filter in, ListResolverEndpoints, ListResolverRules, ListReso */
    Name?: string;
    /** When you're using a List operation and you want the operation to return a subset of objects, such as Resolver endpoints or Resolver rules, the value of the parameter that you want to use to filter obj */
    Values?: any[];
}
export interface UpdateIpAddress {
    /** The ID of the IP address, specified by the ResolverEndpointId. */
    IpId: string;
    /** The IPv6 address that you want to use for DNS queries. */
    Ipv6: string;
}
export interface ResolverRuleConfig {
    /** The new name for the Resolver rule. The name that you specify appears in the Resolver dashboard in the Route 53 console. The name can be up to 64 characters long and can contain letters (a-z, A-Z), nu */
    Name?: string;
    /** For DNS queries that originate in your VPC, the new IP addresses that you want to route outbound DNS queries to. */
    TargetIps?: any[];
    /** The ID of the new outbound Resolver endpoint that you want to use to route DNS queries to the IP addresses that you specify in TargetIps. */
    ResolverEndpointId?: string;
}
export interface AssociateFirewallRuleGroupInput {
    /** 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 dat */
    CreatorRequestId: string;
    /** The unique identifier of the firewall rule group. */
    FirewallRuleGroupId: string;
    /** A name that lets you identify the association, to manage and use it. */
    Name: string;
    /** The setting that determines the processing order of the rule group among the rule groups that you associate with the specified VPC. DNS Firewall filters VPC traffic starting from the rule group with t */
    Priority: number;
    /** The unique identifier of the VPC that you want to associate with the rule group. */
    VpcId: string;
    /** If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections. When you create the association, the default sett */
    MutationProtection?: 'ENABLED' | 'DISABLED';
    /** A list of the tag keys and values that you want to associate with the rule group association. */
    Tags?: Tag[];
}
export interface AssociateResolverEndpointIpAddressInput {
    /** Either the IPv4 address that you want to add to a Resolver endpoint or a subnet ID. If you specify a subnet ID, Resolver chooses an IP address for you from the available IPs in the specified subnet. */
    IpAddress: IpAddressUpdate;
    /** The ID of the Resolver endpoint that you want to associate IP addresses with. */
    ResolverEndpointId: string;
}
export interface AssociateResolverQueryLogConfigInput {
    /** The ID of the query logging configuration that you want to associate a VPC with. */
    ResolverQueryLogConfigId: string;
    /** The ID of an Amazon VPC that you want this query logging configuration to log queries for. The VPCs and the query logging configuration must be in the same Region. */
    ResourceId: string;
}
export interface AssociateResolverRuleInput {
    /** The ID of the Resolver rule that you want to associate with the VPC. To list the existing Resolver rules, use ListResolverRules. */
    ResolverRuleId: string;
    /** The ID of the VPC that you want to associate the Resolver rule with. */
    VPCId: string;
    /** A name for the association that you're creating between a Resolver rule and a VPC. The name can be up to 64 characters long and can contain letters (a-z, A-Z), numbers (0-9), hyphens (-), underscores  */
    Name?: string;
}
export interface CreateFirewallDomainListInput {
    /** A unique string that identifies the request and that allows you to retry failed requests without the risk of running the operation twice. CreatorRequestId can be any unique string, for example, a date */
    CreatorRequestId: string;
    /** A name that lets you identify the domain list to manage and use it. */
    Name: string;
    /** A list of the tag keys and values that you want to associate with the domain list. */
    Tags?: Tag[];
}
export interface CreateFirewallRuleInput {
    /** The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule: ALLOW - Permit the request to go thro */
    Action: 'ALLOW' | 'BLOCK' | 'ALERT';
    /** A unique string that identifies the request and that allows you to retry failed requests without the risk of running the operation twice. CreatorRequestId can be any unique string, for example, a date */
    CreatorRequestId: string;
    /** The unique identifier of the firewall rule group where you want to create the rule. */
    FirewallRuleGroupId: string;
    /** A name that lets you identify the rule in the rule group. */
    Name: string;
    /** The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting. You must specif */
    Priority: number;
    /** The DNS record's type. This determines the format of the record value that you provided in BlockOverrideDomain. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. This setting is */
    BlockOverrideDnsType?: 'CNAME';
    /** The custom DNS record to send back in response to the query. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. This setting is required if the BlockResponse setting is OVERRIDE. */
    BlockOverrideDomain?: string;
    /** The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. This set */
    BlockOverrideTtl?: number;
    /** The way that you want DNS Firewall to block the request, used with the rule action setting BLOCK. NODATA - Respond indicating that the query was successful, but no response is available for it. NXDOMA */
    BlockResponse?: 'NODATA' | 'NXDOMAIN' | 'OVERRIDE';
    /** The confidence threshold for DNS Firewall Advanced. You must provide this value when you create a DNS Firewall Advanced rule. The confidence level values mean: LOW: Provides the highest detection rate */
    ConfidenceThreshold?: 'LOW' | 'MEDIUM' | 'HIGH';
    /** Use to create a DNS Firewall Advanced rule. */
    DnsThreatProtection?: 'DGA' | 'DNS_TUNNELING' | 'DICTIONARY_DGA';
    /** The ID of the domain list that you want to use in the rule. Can't be used together with DnsThreatProtecton. */
    FirewallDomainListId?: string;
    /** How you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME or DNAME. INSPECT_REDIRECTION_DOMAIN: (Default) inspects all domains in the redirection chain. The ind */
    FirewallDomainRedirectionAction?: 'INSPECT_REDIRECTION_DOMAIN' | 'TRUST_REDIRECTION_DOMAIN';
    /** The DNS query type you want the rule to evaluate. Allowed values are; A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications for the domai */
    Qtype?: string;
}
export interface CreateFirewallRuleGroupInput {
    /** A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestam */
    CreatorRequestId: string;
    /** A name that lets you identify the rule group, to manage and use it. */
    Name: string;
    /** A list of the tag keys and values that you want to associate with the rule group. */
    Tags?: Tag[];
}
export interface CreateOutpostResolverInput {
    /** 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 dat */
    CreatorRequestId: string;
    /** A friendly name that lets you easily find a configuration in the Resolver dashboard in the Route 53 console. */
    Name: 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 Amazon EC2 instance type. If you specify this, you must also specify a value for the OutpostArn. */
    PreferredInstanceType: string;
    /** Number of Amazon EC2 instances for the Resolver on Outpost. The default and minimal value is 4. */
    InstanceCount?: number;
    /** A string that helps identify the Route 53 Resolvers on Outpost. */
    Tags?: Tag[];
}
export interface CreateResolverEndpointInput {
    /** 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 dat */
    CreatorRequestId: string;
    /** Specify the applicable value: INBOUND: Resolver forwards DNS queries to the DNS service for a VPC from your network. OUTBOUND: Resolver forwards DNS queries from the DNS service for a VPC to your netw */
    Direction: 'INBOUND' | 'OUTBOUND' | 'INBOUND_DELEGATION';
    /** The subnets and IP addresses in your VPC that DNS queries originate from (for outbound endpoints) or that you forward DNS queries to (for inbound endpoints). The subnet ID uniquely identifies a VPC. E */
    IpAddresses: IpAddressRequest[];
    /** The ID of one or more security groups that you want to use to control access to this VPC. The security group that you specify must include one or more inbound rules (for inbound Resolver endpoints) or */
    SecurityGroupIds: string[];
    /** A friendly name that lets you easily find a configuration in the Resolver dashboard in the Route 53 console. */
    Name?: 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;
    /** The protocols you want to use for the endpoint. DoH-FIPS is applicable for default inbound endpoints only. For a default inbound endpoint you can apply the protocols as follows: Do53 and DoH in combin */
    Protocols?: 'DoH' | 'Do53' | 'DoH-FIPS'[];
    /** 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?: 'IPV6' | 'IPV4' | 'DUALSTACK';
    /** Specifies whether RNI enhanced metrics are enabled for the Resolver endpoints. When set to true, one-minute granular metrics are published in CloudWatch for each RNI associated with this endpoint. Whe */
    RniEnhancedMetricsEnabled?: boolean;
    /** A list of the tag keys and values that you want to associate with the endpoint. */
    Tags?: Tag[];
    /** Specifies whether target name server metrics are enabled for the outbound Resolver endpoints. When set to true, one-minute granular metrics are published in CloudWatch for each target name server asso */
    TargetNameServerMetricsEnabled?: boolean;
}
export interface CreateResolverQueryLogConfigInput {
    /** 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 dat */
    CreatorRequestId: string;
    /** The ARN of the resource that you want Resolver to send query logs. You can send query logs to an S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery stream. Examples of valid v */
    DestinationArn: string;
    /** The name that you want to give the query logging configuration. */
    Name: string;
    /** A list of the tag keys and values that you want to associate with the query logging configuration. */
    Tags?: Tag[];
}
export interface CreateResolverRuleInput {
    /** 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 dat */
    CreatorRequestId: string;
    /** When you want to forward DNS queries for specified domain name to resolvers on your network, specify FORWARD or DELEGATE. When you have a forwarding rule to forward DNS queries for a domain to your ne */
    RuleType: 'FORWARD' | 'SYSTEM' | 'RECURSIVE' | 'DELEGATE';
    /** DNS queries with the delegation records that match this domain name are forwarded to the resolvers on your network. */
    DelegationRecord?: string;
    /** DNS queries for this domain name are forwarded to the IP addresses that you specify in TargetIps. If a query matches multiple Resolver rules (example.com and www.example.com), outbound DNS queries are */
    DomainName?: string;
    /** A friendly name that lets you easily find a rule in the Resolver dashboard in the Route 53 console. The name can be up to 64 characters long and can contain letters (a-z, A-Z), numbers (0-9), hyphens  */
    Name?: string;
    /** The ID of the outbound Resolver endpoint that you want to use to route DNS queries to the IP addresses that you specify in TargetIps. */
    ResolverEndpointId?: string;
    /** A list of the tag keys and values that you want to associate with the endpoint. */
    Tags?: Tag[];
    /** 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 w */
    TargetIps?: TargetAddress[];
}
export interface DeleteFirewallDomainListInput {
    /** The ID of the domain list that you want to delete. */
    FirewallDomainListId: string;
}
export interface DeleteFirewallRuleInput {
    /** The unique identifier of the firewall rule group that you want to delete the rule from. */
    FirewallRuleGroupId: string;
    /** The ID of the domain list that's used in the rule. */
    FirewallDomainListId?: string;
    /** The ID that is created for a DNS Firewall Advanced rule. */
    FirewallThreatProtectionId?: string;
    /** The DNS query type that the rule you are deleting evaluates. Allowed values are; A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications fo */
    Qtype?: string;
}
export interface DeleteFirewallRuleGroupInput {
    /** The unique identifier of the firewall rule group that you want to delete. */
    FirewallRuleGroupId: string;
}
export interface DeleteOutpostResolverInput {
    /** A unique string that identifies the Resolver on the Outpost. */
    Id: string;
}
export interface DeleteResolverEndpointInput {
    /** The ID of the Resolver endpoint that you want to delete. */
    ResolverEndpointId: string;
}
export interface DeleteResolverQueryLogConfigInput {
    /** The ID of the query logging configuration that you want to delete. */
    ResolverQueryLogConfigId: string;
}
export interface DeleteResolverRuleInput {
    /** The ID of the Resolver rule that you want to delete. */
    ResolverRuleId: string;
}
export interface DisassociateFirewallRuleGroupInput {
    /** The identifier of the FirewallRuleGroupAssociation. */
    FirewallRuleGroupAssociationId: string;
}
export interface DisassociateResolverEndpointIpAddressInput {
    /** The IPv4 address that you want to remove from a Resolver endpoint. */
    IpAddress: IpAddressUpdate;
    /** The ID of the Resolver endpoint that you want to disassociate an IP address from. */
    ResolverEndpointId: string;
}
export interface DisassociateResolverQueryLogConfigInput {
    /** The ID of the query logging configuration that you want to disassociate a specified VPC from. */
    ResolverQueryLogConfigId: string;
    /** The ID of the Amazon VPC that you want to disassociate from a specified query logging configuration. */
    ResourceId: string;
}
export interface DisassociateResolverRuleInput {
    /** The ID of the Resolver rule that you want to disassociate from the specified VPC. */
    ResolverRuleId: string;
    /** The ID of the VPC that you want to disassociate the Resolver rule from. */
    VPCId: string;
}
export interface GetFirewallConfigInput {
    /** The ID of the VPC from Amazon VPC that the configuration is for. */
    ResourceId: string;
}
export interface GetFirewallDomainListInput {
    /** The ID of the domain list. */
    FirewallDomainListId: string;
}
export interface GetFirewallRuleGroupInput {
    /** The unique identifier of the firewall rule group. */
    FirewallRuleGroupId: string;
}
export interface GetFirewallRuleGroupAssociationInput {
    /** The identifier of the FirewallRuleGroupAssociation. */
    FirewallRuleGroupAssociationId: string;
}
export interface GetFirewallRuleGroupPolicyInput {
    /** The ARN (Amazon Resource Name) for the rule group. */
    Arn: string;
}
export interface GetOutpostResolverInput {
    /** The ID of the Resolver on the Outpost. */
    Id: string;
}
export interface GetResolverConfigInput {
    /** Resource ID of the Amazon VPC that you want to get information about. */
    ResourceId: string;
}
export interface GetResolverDnssecConfigInput {
    /** The ID of the virtual private cloud (VPC) for the DNSSEC validation status. */
    ResourceId: string;
}
export interface GetResolverEndpointInput {
    /** The ID of the Resolver endpoint that you want to get information about. */
    ResolverEndpointId: string;
}
export interface GetResolverQueryLogConfigInput {
    /** The ID of the Resolver query logging configuration that you want to get information about. */
    ResolverQueryLogConfigId: string;
}
export interface GetResolverQueryLogConfigAssociationInput {
    /** The ID of the Resolver query logging configuration association that you want to get information about. */
    ResolverQueryLogConfigAssociationId: string;
}
export interface GetResolverQueryLogConfigPolicyInput {
    /** The ARN of the query logging configuration that you want to get the query logging policy for. */
    Arn: string;
}
export interface GetResolverRuleInput {
    /** The ID of the Resolver rule that you want to get information about. */
    ResolverRuleId: string;
}
export interface GetResolverRuleAssociationInput {
    /** The ID of the Resolver rule association that you want to get information about. */
    ResolverRuleAssociationId: string;
}
export interface GetResolverRulePolicyInput {
    /** The ID of the Resolver rule that you want to get the Resolver rule policy for. */
    Arn: string;
}
export interface ImportFirewallDomainsInput {
    /** The fully qualified URL or URI of the file stored in Amazon Simple Storage Service (Amazon S3) that contains the list of domains to import. The file must be in an S3 bucket that's in the same Region a */
    DomainFileUrl: string;
    /** The ID of the domain list that you want to modify with the import operation. */
    FirewallDomainListId: string;
    /** What you want DNS Firewall to do with the domains that are listed in the file. This must be set to REPLACE, which updates the domain list to exactly match the list in the file. */
    Operation: 'REPLACE';
}
export interface ListFirewallConfigsInput {
    /** The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a NextToken value that you can use in a subsequent ca */
    MaxResults?: number;
    /** For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in MaxResults. If more objects are available for  */
    NextToken?: string;
}
export interface ListFirewallDomainListsInput {
    /** The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a NextToken value that you can use in a subsequent ca */
    MaxResults?: number;
    /** For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in MaxResults. If more objects are available for  */
    NextToken?: string;
}
export interface ListFirewallDomainsInput {
    /** The ID of the domain list whose domains you want to retrieve. */
    FirewallDomainListId: string;
    /** The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a NextToken value that you can use in a subsequent ca */
    MaxResults?: number;
    /** For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in MaxResults. If more objects are available for  */
    NextToken?: string;
}
export interface ListFirewallRuleGroupAssociationsInput {
    /** The unique identifier of the firewall rule group that you want to retrieve the associations for. Leave this blank to retrieve associations for any rule group. */
    FirewallRuleGroupId?: string;
    /** The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a NextToken value that you can use in a subsequent ca */
    MaxResults?: number;
    /** For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in MaxResults. If more objects are available for  */
    NextToken?: string;
    /** The setting that determines the processing order of the rule group among the rule groups that are associated with a single VPC. DNS Firewall filters VPC traffic starting from the rule group with the l */
    Priority?: number;
    /** The association Status setting that you want DNS Firewall to filter on for the list. If you don't specify this, then DNS Firewall returns all associations, regardless of status. */
    Status?: 'COMPLETE' | 'DELETING' | 'UPDATING';
    /** The unique identifier of the VPC that you want to retrieve the associations for. Leave this blank to retrieve associations for any VPC. */
    VpcId?: string;
}
export interface ListFirewallRuleGroupsInput {
    /** The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a NextToken value that you can use in a subsequent ca */
    MaxResults?: number;
    /** For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in MaxResults. If more objects are available for  */
    NextToken?: string;
}
export interface ListFirewallRulesInput {
    /** The unique identifier of the firewall rule group that you want to retrieve the rules for. */
    FirewallRuleGroupId: string;
    /** Optional additional filter for the rules to retrieve. The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewal */
    Action?: 'ALLOW' | 'BLOCK' | 'ALERT';
    /** The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a NextToken value that you can use in a subsequent ca */
    MaxResults?: number;
    /** For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in MaxResults. If more objects are available for  */
    NextToken?: string;
    /** Optional additional filter for the rules to retrieve. The setting that determines the processing order of the rules in a rule group. DNS Firewall processes the rules in a rule group by order of priori */
    Priority?: number;
}
export interface ListOutpostResolversInput {
    /** 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 Reso */
    MaxResults?: number;
    /** For the first ListOutpostResolver request, omit this value. */
    NextToken?: string;
    /** The Amazon Resource Name (ARN) of the Outpost. */
    OutpostArn?: string;
}
export interface ListResolverConfigsInput {
    /** The maximum number of Resolver configurations that you want to return in the response to a ListResolverConfigs request. If you don't specify a value for MaxResults, up to 100 Resolver configurations a */
    MaxResults?: number;
    /** (Optional) If the current Amazon Web Services account has more than MaxResults Resolver configurations, use NextToken to get the second and subsequent pages of results. For the first ListResolverConfi */
    NextToken?: string;
}
export interface ListResolverDnssecConfigsInput {
    /** An optional specification to return a subset of objects. */
    Filters?: Filter[];
    /** Optional: An integer that specifies the maximum number of DNSSEC configuration results that you want Amazon Route 53 to return. If you don't specify a value for MaxResults, Route 53 returns up to 100  */
    MaxResults?: number;
    /** (Optional) If the current Amazon Web Services account has more than MaxResults DNSSEC configurations, use NextToken to get the second and subsequent pages of results. For the first ListResolverDnssecC */
    NextToken?: string;
}
export interface ListResolverEndpointIpAddressesInput {
    /** The ID of the Resolver endpoint that you want to get IP addresses for. */
    ResolverEndpointId: string;
    /** The maximum number of IP addresses that you want to return in the response to a ListResolverEndpointIpAddresses request. If you don't specify a value for MaxResults, Resolver returns up to 100 IP addr */
    MaxResults?: number;
    /** For the first ListResolverEndpointIpAddresses request, omit this value. If the specified Resolver endpoint has more than MaxResults IP addresses, you can submit another ListResolverEndpointIpAddresses */
    NextToken?: string;
}
export interface ListResolverEndpointsInput {
    /** An optional specification to return a subset of Resolver endpoints, such as all inbound Resolver endpoints. If you submit a second or subsequent ListResolverEndpoints request and specify the NextToken */
    Filters?: Filter[];
    /** The maximum number of Resolver endpoints that you want to return in the response to a ListResolverEndpoints request. If you don't specify a value for MaxResults, Resolver returns up to 100 Resolver en */
    MaxResults?: number;
    /** For the first ListResolverEndpoints request, omit this value. If you have more than MaxResults Resolver endpoints, you can submit another ListResolverEndpoints request to get the next group of Resolve */
    NextToken?: string;
}
export interface ListResolverQueryLogConfigAssociationsInput {
    /** An optional specification to return a subset of query logging associations. If you submit a second or subsequent ListResolverQueryLogConfigAssociations request and specify the NextToken parameter, you */
    Filters?: Filter[];
    /** The maximum number of query logging associations that you want to return in the response to a ListResolverQueryLogConfigAssociations request. If you don't specify a value for MaxResults, Resolver retu */
    MaxResults?: number;
    /** For the first ListResolverQueryLogConfigAssociations request, omit this value. If there are more than MaxResults query logging associations that match the values that you specify for Filters, you can  */
    NextToken?: string;
    /** The element that you want Resolver to sort query logging associations by. If you submit a second or subsequent ListResolverQueryLogConfigAssociations request and specify the NextToken parameter, you m */
    SortBy?: string;
    /** If you specified a value for SortBy, the order that you want query logging associations to be listed in, ASCENDING or DESCENDING. If you submit a second or subsequent ListResolverQueryLogConfigAssocia */
    SortOrder?: 'ASCENDING' | 'DESCENDING';
}
export interface ListResolverQueryLogConfigsInput {
    /** An optional specification to return a subset of query logging configurations. If you submit a second or subsequent ListResolverQueryLogConfigs request and specify the NextToken parameter, you must use */
    Filters?: Filter[];
    /** The maximum number of query logging configurations that you want to return in the response to a ListResolverQueryLogConfigs request. If you don't specify a value for MaxResults, Resolver returns up to */
    MaxResults?: number;
    /** For the first ListResolverQueryLogConfigs request, omit this value. If there are more than MaxResults query logging configurations that match the values that you specify for Filters, you can submit an */
    NextToken?: string;
    /** The element that you want Resolver to sort query logging configurations by. If you submit a second or subsequent ListResolverQueryLogConfigs request and specify the NextToken parameter, you must use t */
    SortBy?: string;
    /** If you specified a value for SortBy, the order that you want query logging configurations to be listed in, ASCENDING or DESCENDING. If you submit a second or subsequent ListResolverQueryLogConfigs req */
    SortOrder?: 'ASCENDING' | 'DESCENDING';
}
export interface ListResolverRuleAssociationsInput {
    /** An optional specification to return a subset of Resolver rules, such as Resolver rules that are associated with the same VPC ID. If you submit a second or subsequent ListResolverRuleAssociations reque */
    Filters?: Filter[];
    /** The maximum number of rule associations that you want to return in the response to a ListResolverRuleAssociations request. If you don't specify a value for MaxResults, Resolver returns up to 100 rule  */
    MaxResults?: number;
    /** For the first ListResolverRuleAssociation request, omit this value. If you have more than MaxResults rule associations, you can submit another ListResolverRuleAssociation request to get the next group */
    NextToken?: string;
}
export interface ListResolverRulesInput {
    /** An optional specification to return a subset of Resolver rules, such as all Resolver rules that are associated with the same Resolver endpoint. If you submit a second or subsequent ListResolverRules r */
    Filters?: Filter[];
    /** The maximum number of Resolver rules that you want to return in the response to a ListResolverRules request. If you don't specify a value for MaxResults, Resolver returns up to 100 Resolver rules. */
    MaxResults?: number;
    /** For the first ListResolverRules request, omit this value. If you have more than MaxResults Resolver rules, you can submit another ListResolverRules request to get the next group of Resolver rules. In  */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) for the resource that you want to list tags for. */
    ResourceArn: string;
    /** The maximum number of tags that you want to return in the response to a ListTagsForResource request. If you don't specify a value for MaxResults, Resolver returns up to 100 tags. */
    MaxResults?: number;
    /** For the first ListTagsForResource request, omit this value. If you have more than MaxResults tags, you can submit another ListTagsForResource request to get the next group of tags for the resource. In */
    NextToken?: string;
}
export interface PutFirewallRuleGroupPolicyInput {
    /** The ARN (Amazon Resource Name) for the rule group that you want to share. */
    Arn: string;
    /** The Identity and Access Management (Amazon Web Services IAM) policy to attach to the rule group. */
    FirewallRuleGroupPolicy: string;
}
export interface PutResolverQueryLogConfigPolicyInput {
    /** The Amazon Resource Name (ARN) of the account that you want to share rules with. */
    Arn: string;
    /** An Identity and Access Management policy statement that lists the query logging configurations that you want to share with another Amazon Web Services account and the operations that you want the acco */
    ResolverQueryLogConfigPolicy: string;
}
export interface PutResolverRulePolicyInput {
    /** The Amazon Resource Name (ARN) of the rule that you want to share with another account. */
    Arn: string;
    /** An Identity and Access Management policy statement that lists the rules that you want to share with another Amazon Web Services account and the operations that you want the account to be able to perfo */
    ResolverRulePolicy: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) for the resource that you want to add tags to. To get the ARN for a resource, use the applicable Get or List command: GetResolverEndpoint GetResolverRule GetResolverRule */
    ResourceArn: string;
    /** The tags that you want to add to the specified resource. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) for the resource that you want to remove tags from. To get the ARN for a resource, use the applicable Get or List command: GetResolverEndpoint GetResolverRule GetResolve */
    ResourceArn: string;
    /** The tags that you want to remove to the specified resource. */
    TagKeys: string[];
}
export interface UpdateFirewallConfigInput {
    /** Determines how Route 53 Resolver handles queries during failures, for example when all traffic that is sent to DNS Firewall fails to receive a reply. By default, fail open is disabled, which means the */
    FirewallFailOpen: 'ENABLED' | 'DISABLED' | 'USE_LOCAL_RESOURCE_SETTING';
    /** The ID of the VPC that the configuration is for. */
    ResourceId: string;
}
export interface UpdateFirewallDomainsInput {
    /** A list of domains to use in the update operation. There is a limit of 1000 domains per request. Each domain specification in your domain list must satisfy the following requirements: It can optionally */
    Domains: string[];
    /** The ID of the domain list whose domains you want to update. */
    FirewallDomainListId: string;
    /** What you want DNS Firewall to do with the domains that you are providing: ADD - Add the domains to the ones that are already in the domain list. REMOVE - Search the domain list for the domains and rem */
    Operation: 'ADD' | 'REMOVE' | 'REPLACE';
}
export interface UpdateFirewallRuleInput {
    /** The unique identifier of the firewall rule group for the rule. */
    FirewallRuleGroupId: string;
    /** The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule: ALLOW - Permit the request to go thro */
    Action?: 'ALLOW' | 'BLOCK' | 'ALERT';
    /** The DNS record's type. This determines the format of the record value that you provided in BlockOverrideDomain. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. */
    BlockOverrideDnsType?: 'CNAME';
    /** The custom DNS record to send back in response to the query. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. */
    BlockOverrideDomain?: string;
    /** The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action BLOCK with a BlockResponse setting of OVERRIDE. */
    BlockOverrideTtl?: number;
    /** The way that you want DNS Firewall to block the request. Used for the rule action setting BLOCK. NODATA - Respond indicating that the query was successful, but no response is available for it. NXDOMAI */
    BlockResponse?: 'NODATA' | 'NXDOMAIN' | 'OVERRIDE';
    /** The confidence threshold for DNS Firewall Advanced. You must provide this value when you create a DNS Firewall Advanced rule. The confidence level values mean: LOW: Provides the highest detection rate */
    ConfidenceThreshold?: 'LOW' | 'MEDIUM' | 'HIGH';
    /** The type of the DNS Firewall Advanced rule. Valid values are: DGA: Domain generation algorithms detection. DGAs are used by attackers to generate a large number of domains to to launch malware attacks */
    DnsThreatProtection?: 'DGA' | 'DNS_TUNNELING' | 'DICTIONARY_DGA';
    /** The ID of the domain list to use in the rule. */
    FirewallDomainListId?: string;
    /** How you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME or DNAME. INSPECT_REDIRECTION_DOMAIN: (Default) inspects all domains in the redirection chain. The ind */
    FirewallDomainRedirectionAction?: 'INSPECT_REDIRECTION_DOMAIN' | 'TRUST_REDIRECTION_DOMAIN';
    /** The DNS Firewall Advanced rule ID. */
    FirewallThreatProtectionId?: string;
    /** The name of the rule. */
    Name?: string;
    /** The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting. You must specif */
    Priority?: number;
    /** The DNS query type you want the rule to evaluate. Allowed values are; A: Returns an IPv4 address. AAAA: Returns an Ipv6 address. CAA: Restricts CAs that can create SSL/TLS certifications for the domai */
    Qtype?: string;
}
export interface UpdateFirewallRuleGroupAssociationInput {
    /** The identifier of the FirewallRuleGroupAssociation. */
    FirewallRuleGroupAssociationId: string;
    /** If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections. */
    MutationProtection?: 'ENABLED' | 'DISABLED';
    /** The name of the rule group association. */
    Name?: string;
    /** The setting that determines the processing order of the rule group among the rule groups that you associate with the specified VPC. DNS Firewall filters VPC traffic starting from the rule group with t */
    Priority?: number;
}
export interface UpdateOutpostResolverInput {
    /** A unique string that identifies Resolver on an Outpost. */
    Id: string;
    /** The Amazon EC2 instance count for a Resolver on the Outpost. */
    InstanceCount?: number;
    /** Name of the Resolver on the Outpost. */
    Name?: string;
    /** Amazon EC2 instance type. */
    PreferredInstanceType?: string;
}
export interface UpdateResolverConfigInput {
    /** Indicates whether or not the Resolver will create autodefined rules for reverse DNS lookups. This is enabled by default. Disabling this option will also affect EC2-Classic instances using ClassicLink. */
    AutodefinedReverseFlag: 'ENABLE' | 'DISABLE' | 'USE_LOCAL_RESOURCE_SETTING';
    /** The ID of the Amazon Virtual Private Cloud VPC or a Route 53 Profile that you're configuring Resolver for. */
    ResourceId: string;
}
export interface UpdateResolverDnssecConfigInput {
    /** The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. */
    ResourceId: string;
    /** The new value that you are specifying for DNSSEC validation for the VPC. The value can be ENABLE or DISABLE. Be aware that it can take time for a validation status change to be completed. */
    Validation: 'ENABLE' | 'DISABLE' | 'USE_LOCAL_RESOURCE_SETTING';
}
export interface UpdateResolverEndpointInput {
    /** The ID of the Resolver endpoint that you want to update. */
    ResolverEndpointId: string;
    /** The name of the Resolver endpoint that you want to update. */
    Name?: string;
    /** The protocols you want to use for the endpoint. DoH-FIPS is applicable for default inbound endpoints only. For a default inbound endpoint you can apply the protocols as follows: Do53 and DoH in combin */
    Protocols?: 'DoH' | 'Do53' | 'DoH-FIPS'[];
    /** 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?: 'IPV6' | 'IPV4' | 'DUALSTACK';
    /** Updates whether RNI enhanced metrics are enabled for the Resolver endpoints. When set to true, one-minute granular metrics are published in CloudWatch for each RNI associated with this endpoint. When  */
    RniEnhancedMetricsEnabled?: boolean;
    /** Updates whether target name server metrics are enabled for the outbound Resolver endpoints. When set to true, one-minute granular metrics are published in CloudWatch for each target name server associ */
    TargetNameServerMetricsEnabled?: boolean;
    /** 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[];
}
export interface UpdateResolverRuleInput {
    /** The new settings for the Resolver rule. */
    Config: ResolverRuleConfig;
    /** The ID of the Resolver rule that you want to update. */
    ResolverRuleId: string;
}
/** Route53Resolver service binding for Step Functions SDK integrations. */
export declare class Route53Resolver {
    constructor();
    associateFirewallRuleGroup<T>(params: AssociateFirewallRuleGroupInput): Promise<T>;
    associateResolverEndpointIpAddress<T>(params: AssociateResolverEndpointIpAddressInput): Promise<T>;
    associateResolverQueryLogConfig<T>(params: AssociateResolverQueryLogConfigInput): Promise<T>;
    associateResolverRule<T>(params: AssociateResolverRuleInput): Promise<T>;
    createFirewallDomainList<T>(params: CreateFirewallDomainListInput): Promise<T>;
    createFirewallRule<T>(params: CreateFirewallRuleInput): Promise<T>;
    createFirewallRuleGroup<T>(params: CreateFirewallRuleGroupInput): Promise<T>;
    createOutpostResolver<T>(params: CreateOutpostResolverInput): Promise<T>;
    createResolverEndpoint<T>(params: CreateResolverEndpointInput): Promise<T>;
    createResolverQueryLogConfig<T>(params: CreateResolverQueryLogConfigInput): Promise<T>;
    createResolverRule<T>(params: CreateResolverRuleInput): Promise<T>;
    deleteFirewallDomainList<T>(params: DeleteFirewallDomainListInput): Promise<T>;
    deleteFirewallRule<T>(params: DeleteFirewallRuleInput): Promise<T>;
    deleteFirewallRuleGroup<T>(params: DeleteFirewallRuleGroupInput): Promise<T>;
    deleteOutpostResolver<T>(params: DeleteOutpostResolverInput): Promise<T>;
    deleteResolverEndpoint<T>(params: DeleteResolverEndpointInput): Promise<T>;
    deleteResolverQueryLogConfig<T>(params: DeleteResolverQueryLogConfigInput): Promise<T>;
    deleteResolverRule<T>(params: DeleteResolverRuleInput): Promise<T>;
    disassociateFirewallRuleGroup<T>(params: DisassociateFirewallRuleGroupInput): Promise<T>;
    disassociateResolverEndpointIpAddress<T>(params: DisassociateResolverEndpointIpAddressInput): Promise<T>;
    disassociateResolverQueryLogConfig<T>(params: DisassociateResolverQueryLogConfigInput): Promise<T>;
    disassociateResolverRule<T>(params: DisassociateResolverRuleInput): Promise<T>;
    getFirewallConfig<T>(params: GetFirewallConfigInput): Promise<T>;
    getFirewallDomainList<T>(params: GetFirewallDomainListInput): Promise<T>;
    getFirewallRuleGroup<T>(params: GetFirewallRuleGroupInput): Promise<T>;
    getFirewallRuleGroupAssociation<T>(params: GetFirewallRuleGroupAssociationInput): Promise<T>;
    getFirewallRuleGroupPolicy<T>(params: GetFirewallRuleGroupPolicyInput): Promise<T>;
    getOutpostResolver<T>(params: GetOutpostResolverInput): Promise<T>;
    getResolverConfig<T>(params: GetResolverConfigInput): Promise<T>;
    getResolverDnssecConfig<T>(params: GetResolverDnssecConfigInput): Promise<T>;
    getResolverEndpoint<T>(params: GetResolverEndpointInput): Promise<T>;
    getResolverQueryLogConfig<T>(params: GetResolverQueryLogConfigInput): Promise<T>;
    getResolverQueryLogConfigAssociation<T>(params: GetResolverQueryLogConfigAssociationInput): Promise<T>;
    getResolverQueryLogConfigPolicy<T>(params: GetResolverQueryLogConfigPolicyInput): Promise<T>;
    getResolverRule<T>(params: GetResolverRuleInput): Promise<T>;
    getResolverRuleAssociation<T>(params: GetResolverRuleAssociationInput): Promise<T>;
    getResolverRulePolicy<T>(params: GetResolverRulePolicyInput): Promise<T>;
    importFirewallDomains<T>(params: ImportFirewallDomainsInput): Promise<T>;
    listFirewallConfigs<T>(params: ListFirewallConfigsInput): Promise<T>;
    listFirewallDomainLists<T>(params: ListFirewallDomainListsInput): Promise<T>;
    listFirewallDomains<T>(params: ListFirewallDomainsInput): Promise<T>;
    listFirewallRuleGroupAssociations<T>(params: ListFirewallRuleGroupAssociationsInput): Promise<T>;
    listFirewallRuleGroups<T>(params: ListFirewallRuleGroupsInput): Promise<T>;
    listFirewallRules<T>(params: ListFirewallRulesInput): Promise<T>;
    listOutpostResolvers<T>(params: ListOutpostResolversInput): Promise<T>;
    listResolverConfigs<T>(params: ListResolverConfigsInput): Promise<T>;
    listResolverDnssecConfigs<T>(params: ListResolverDnssecConfigsInput): Promise<T>;
    listResolverEndpointIpAddresses<T>(params: ListResolverEndpointIpAddressesInput): Promise<T>;
    listResolverEndpoints<T>(params: ListResolverEndpointsInput): Promise<T>;
    listResolverQueryLogConfigAssociations<T>(params: ListResolverQueryLogConfigAssociationsInput): Promise<T>;
    listResolverQueryLogConfigs<T>(params: ListResolverQueryLogConfigsInput): Promise<T>;
    listResolverRuleAssociations<T>(params: ListResolverRuleAssociationsInput): Promise<T>;
    listResolverRules<T>(params: ListResolverRulesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putFirewallRuleGroupPolicy<T>(params: PutFirewallRuleGroupPolicyInput): Promise<T>;
    putResolverQueryLogConfigPolicy<T>(params: PutResolverQueryLogConfigPolicyInput): Promise<T>;
    putResolverRulePolicy<T>(params: PutResolverRulePolicyInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateFirewallConfig<T>(params: UpdateFirewallConfigInput): Promise<T>;
    updateFirewallDomains<T>(params: UpdateFirewallDomainsInput): Promise<T>;
    updateFirewallRule<T>(params: UpdateFirewallRuleInput): Promise<T>;
    updateFirewallRuleGroupAssociation<T>(params: UpdateFirewallRuleGroupAssociationInput): Promise<T>;
    updateOutpostResolver<T>(params: UpdateOutpostResolverInput): Promise<T>;
    updateResolverConfig<T>(params: UpdateResolverConfigInput): Promise<T>;
    updateResolverDnssecConfig<T>(params: UpdateResolverDnssecConfigInput): Promise<T>;
    updateResolverEndpoint<T>(params: UpdateResolverEndpointInput): Promise<T>;
    updateResolverRule<T>(params: UpdateResolverRuleInput): Promise<T>;
}
//# sourceMappingURL=Route53Resolver.d.ts.map