Class: AWSCDK::Route53Resolver::CfnResolverEndpointProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
route53_resolver/cfn_resolver_endpoint_props.rb

Overview

Properties for defining a CfnResolverEndpoint.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(direction:, ip_addresses:, security_group_ids:, dns64_enabled: nil, ipv6_internet_access_enabled: nil, name: nil, outpost_arn: nil, preferred_instance_type: nil, protocols: nil, resolver_endpoint_type: nil, rni_enhanced_metrics_enabled: nil, tags: nil, target_name_server_metrics_enabled: nil) ⇒ CfnResolverEndpointProps

Returns a new instance of CfnResolverEndpointProps.

Parameters:

  • direction (String)

    Indicates whether the Resolver endpoint allows inbound or outbound DNS queries:.

  • ip_addresses (AWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::Route53Resolver::CfnResolverEndpoint::IPAddressRequestProperty>)

    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).

  • security_group_ids (Array<String>)

    The ID of one or more security groups that control access to this VPC.

  • dns64_enabled (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Specifies whether DNS64 is enabled for the Inbound Resolver Endpoint.

  • ipv6_internet_access_enabled (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Specifies whether IPv6 Internet Gateway access is enabled through the Outbound Resolver Endpoint.

  • name (String, nil) (defaults to: nil)

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

  • outpost_arn (String, nil) (defaults to: nil)

    The ARN (Amazon Resource Name) for the Outpost.

  • preferred_instance_type (String, nil) (defaults to: nil)

    The Amazon EC2 instance type.

  • protocols (Array<String>, nil) (defaults to: nil)

    Protocols used for the endpoint. DoH-FIPS is applicable for a default inbound endpoints only.

  • resolver_endpoint_type (String, nil) (defaults to: nil)

    The Resolver endpoint IP address type.

  • rni_enhanced_metrics_enabled (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Indicates whether RNI enhanced metrics are enabled for the Resolver endpoint.

  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    Route 53 Resolver doesn't support updating tags through CloudFormation.

  • target_name_server_metrics_enabled (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Indicates whether target name server metrics are enabled for the outbound Resolver endpoint.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 22

def initialize(direction:, ip_addresses:, security_group_ids:, dns64_enabled: nil, ipv6_internet_access_enabled: nil, name: nil, outpost_arn: nil, preferred_instance_type: nil, protocols: nil, resolver_endpoint_type: nil, rni_enhanced_metrics_enabled: nil, tags: nil, target_name_server_metrics_enabled: nil)
  @direction = direction
  Jsii::Type.check_type(@direction, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "direction")
  @ip_addresses = ip_addresses
  Jsii::Type.check_type(@ip_addresses, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfcm91dGU1M3Jlc29sdmVyLkNmblJlc29sdmVyRW5kcG9pbnQuSXBBZGRyZXNzUmVxdWVzdFByb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "ipAddresses")
  @security_group_ids = security_group_ids
  Jsii::Type.check_type(@security_group_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "securityGroupIds")
  @dns64_enabled = dns64_enabled
  Jsii::Type.check_type(@dns64_enabled, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "dns64Enabled") unless @dns64_enabled.nil?
  @ipv6_internet_access_enabled = ipv6_internet_access_enabled
  Jsii::Type.check_type(@ipv6_internet_access_enabled, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "ipv6InternetAccessEnabled") unless @ipv6_internet_access_enabled.nil?
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name") unless @name.nil?
  @outpost_arn = outpost_arn
  Jsii::Type.check_type(@outpost_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "outpostArn") unless @outpost_arn.nil?
  @preferred_instance_type = preferred_instance_type
  Jsii::Type.check_type(@preferred_instance_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "preferredInstanceType") unless @preferred_instance_type.nil?
  @protocols = protocols
  Jsii::Type.check_type(@protocols, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "protocols") unless @protocols.nil?
  @resolver_endpoint_type = resolver_endpoint_type
  Jsii::Type.check_type(@resolver_endpoint_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "resolverEndpointType") unless @resolver_endpoint_type.nil?
  @rni_enhanced_metrics_enabled = rni_enhanced_metrics_enabled
  Jsii::Type.check_type(@rni_enhanced_metrics_enabled, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "rniEnhancedMetricsEnabled") unless @rni_enhanced_metrics_enabled.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
  @target_name_server_metrics_enabled = target_name_server_metrics_enabled
  Jsii::Type.check_type(@target_name_server_metrics_enabled, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "targetNameServerMetricsEnabled") unless @target_name_server_metrics_enabled.nil?
end

Instance Attribute Details

#directionString (readonly)

Indicates whether the Resolver endpoint allows inbound or outbound DNS queries:.

  • INBOUND : allows DNS queries to your VPC from your network
  • OUTBOUND : allows DNS queries from your VPC to your network
  • INBOUND_DELEGATION : Resolver delegates queries to Route 53 private hosted zones from your network.


59
60
61
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 59

def direction
  @direction
end

#dns64_enabledBoolean, ... (readonly)

Specifies whether DNS64 is enabled for the Inbound Resolver Endpoint.

When set to true, if a DNS AAAA query is made for a domain that has only an A (IPv4) record, the resolver automatically synthesizes an AAAA (IPv6) response by embedding the IPv4 address into the well-known prefix 64:ff9b::/96. Default is false.



82
83
84
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 82

def dns64_enabled
  @dns64_enabled
end

#ip_addressesAWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::Route53Resolver::CfnResolverEndpoint::IPAddressRequestProperty> (readonly)

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.

Even though the minimum is 1, RouteĀ 53 requires that you create at least two.



68
69
70
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 68

def ip_addresses
  @ip_addresses
end

#ipv6_internet_access_enabledBoolean, ... (readonly)

Specifies whether IPv6 Internet Gateway access is enabled through the Outbound Resolver Endpoint.

When set to true, this property allows your Endpoint ENIs to reach public IPv6 target nameservers through an internet gateway. Default is false.



89
90
91
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 89

def ipv6_internet_access_enabled
  @ipv6_internet_access_enabled
end

#nameString? (readonly)

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



94
95
96
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 94

def name
  @name
end

#outpost_arnString? (readonly)

The ARN (Amazon Resource Name) for the Outpost.



99
100
101
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 99

def outpost_arn
  @outpost_arn
end

#preferred_instance_typeString? (readonly)

The Amazon EC2 instance type.



104
105
106
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 104

def preferred_instance_type
  @preferred_instance_type
end

#protocolsArray<String>? (readonly)

Protocols used for the endpoint. DoH-FIPS is applicable for a default inbound endpoints only.

For an inbound endpoint you can apply the protocols as follows:

  • Do53 and DoH in combination.
  • Do53 and DoH-FIPS in combination.
  • Do53 alone.
  • DoH alone.
  • DoH-FIPS alone.
  • None, which is treated as Do53.

For a delegation inbound endpoint you can use Do53 only.

For an outbound endpoint you can apply the protocols as follows:

  • Do53 and DoH in combination.
  • Do53 alone.
  • DoH alone.
  • None, which is treated as Do53.


127
128
129
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 127

def protocols
  @protocols
end

#resolver_endpoint_typeString? (readonly)

The Resolver endpoint IP address type.



132
133
134
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 132

def resolver_endpoint_type
  @resolver_endpoint_type
end

#rni_enhanced_metrics_enabledBoolean, ... (readonly)

Indicates whether RNI enhanced metrics are enabled for the Resolver endpoint.

When enabled, one-minute granular metrics are published in CloudWatch for each RNI associated with this endpoint. When disabled, these metrics are not published.



139
140
141
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 139

def rni_enhanced_metrics_enabled
  @rni_enhanced_metrics_enabled
end

#security_group_idsArray<String> (readonly)

The ID of one or more security groups that control access to this VPC.

The security group must include one or more inbound rules (for inbound endpoints) or outbound rules (for outbound endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.



75
76
77
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 75

def security_group_ids
  @security_group_ids
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

Route 53 Resolver doesn't support updating tags through CloudFormation.



144
145
146
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 144

def tags
  @tags
end

#target_name_server_metrics_enabledBoolean, ... (readonly)

Indicates whether target name server metrics are enabled for the outbound Resolver endpoint.

When enabled, one-minute granular metrics are published in CloudWatch for each target name server associated with this endpoint. When disabled, these metrics are not published. This feature is not supported for inbound Resolver endpoint.



151
152
153
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 151

def target_name_server_metrics_enabled
  @target_name_server_metrics_enabled
end

Class Method Details

.jsii_propertiesObject



153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 153

def self.jsii_properties
  {
    :direction => "direction",
    :ip_addresses => "ipAddresses",
    :security_group_ids => "securityGroupIds",
    :dns64_enabled => "dns64Enabled",
    :ipv6_internet_access_enabled => "ipv6InternetAccessEnabled",
    :name => "name",
    :outpost_arn => "outpostArn",
    :preferred_instance_type => "preferredInstanceType",
    :protocols => "protocols",
    :resolver_endpoint_type => "resolverEndpointType",
    :rni_enhanced_metrics_enabled => "rniEnhancedMetricsEnabled",
    :tags => "tags",
    :target_name_server_metrics_enabled => "targetNameServerMetricsEnabled",
  }
end

Instance Method Details

#to_jsiiObject



171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# File 'route53_resolver/cfn_resolver_endpoint_props.rb', line 171

def to_jsii
  result = {}
  result.merge!({
    "direction" => @direction,
    "ipAddresses" => @ip_addresses,
    "securityGroupIds" => @security_group_ids,
    "dns64Enabled" => @dns64_enabled,
    "ipv6InternetAccessEnabled" => @ipv6_internet_access_enabled,
    "name" => @name,
    "outpostArn" => @outpost_arn,
    "preferredInstanceType" => @preferred_instance_type,
    "protocols" => @protocols,
    "resolverEndpointType" => @resolver_endpoint_type,
    "rniEnhancedMetricsEnabled" => @rni_enhanced_metrics_enabled,
    "tags" => @tags,
    "targetNameServerMetricsEnabled" => @target_name_server_metrics_enabled,
  })
  result.compact
end