Class: AWSCDK::EC2::CfnVPCEndpointProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
ec2/cfn_vpc_endpoint_props.rb

Overview

Properties for defining a CfnVPCEndpoint.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(vpc_id:, dns_options: nil, ip_address_type: nil, policy_document: nil, private_dns_enabled: nil, resource_configuration_arn: nil, route_table_ids: nil, security_group_ids: nil, service_name: nil, service_network_arn: nil, service_region: nil, subnet_ids: nil, tags: nil, vpc_endpoint_type: nil) ⇒ CfnVPCEndpointProps

Returns a new instance of CfnVPCEndpointProps.

Parameters:

  • vpc_id (String, AWSCDK::Interfaces::AWSEC2::IVPCRef)

    The ID of the VPC.

  • dns_options (AWSCDK::IResolvable, AWSCDK::EC2::CfnVPCEndpoint::DNSOptionsSpecificationProperty, nil) (defaults to: nil)

    Describes the DNS options for an endpoint.

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

    The supported IP address types.

  • policy_document (Object, nil) (defaults to: nil)

    An endpoint policy, which controls access to the service from the VPC.

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

    Indicate whether to associate a private hosted zone with the specified VPC.

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

    The Amazon Resource Name (ARN) of the resource configuration.

  • route_table_ids (Array<String, AWSCDK::Interfaces::AWSEC2::IRouteTableRef>, nil) (defaults to: nil)

    The IDs of the route tables.

  • security_group_ids (Array<String, AWSCDK::Interfaces::AWSEC2::ISecurityGroupRef>, nil) (defaults to: nil)

    The IDs of the security groups to associate with the endpoint network interfaces.

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

    The name of the endpoint service.

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

    The Amazon Resource Name (ARN) of the service network.

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

    Describes a Region.

  • subnet_ids (Array<String, AWSCDK::Interfaces::AWSEC2::ISubnetRef>, nil) (defaults to: nil)

    The IDs of the subnets in which to create endpoint network interfaces.

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

    The tags to associate with the endpoint.

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

    The type of endpoint.



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
50
51
52
# File 'ec2/cfn_vpc_endpoint_props.rb', line 23

def initialize(vpc_id:, dns_options: nil, ip_address_type: nil, policy_document: nil, private_dns_enabled: nil, resource_configuration_arn: nil, route_table_ids: nil, security_group_ids: nil, service_name: nil, service_network_arn: nil, service_region: nil, subnet_ids: nil, tags: nil, vpc_endpoint_type: nil)
  @vpc_id = vpc_id
  Jsii::Type.check_type(@vpc_id, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19lYzIuSVZQQ1JlZiJ9XX19")), "vpcId")
  @dns_options = dns_options.is_a?(Hash) ? ::AWSCDK::EC2::CfnVPCEndpoint::DNSOptionsSpecificationProperty.new(**dns_options.transform_keys(&:to_sym)) : dns_options
  Jsii::Type.check_type(@dns_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lYzIuQ2ZuVlBDRW5kcG9pbnQuRG5zT3B0aW9uc1NwZWNpZmljYXRpb25Qcm9wZXJ0eSJ9XX19")), "dnsOptions") unless @dns_options.nil?
  @ip_address_type = ip_address_type
  Jsii::Type.check_type(@ip_address_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ipAddressType") unless @ip_address_type.nil?
  @policy_document = policy_document
  Jsii::Type.check_type(@policy_document, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "policyDocument") unless @policy_document.nil?
  @private_dns_enabled = private_dns_enabled
  Jsii::Type.check_type(@private_dns_enabled, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "privateDnsEnabled") unless @private_dns_enabled.nil?
  @resource_configuration_arn = resource_configuration_arn
  Jsii::Type.check_type(@resource_configuration_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "resourceConfigurationArn") unless @resource_configuration_arn.nil?
  @route_table_ids = route_table_ids
  Jsii::Type.check_type(@route_table_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InVuaW9uIjp7InR5cGVzIjpbeyJwcmltaXRpdmUiOiJzdHJpbmcifSx7ImZxbiI6ImF3cy1jZGstbGliLmludGVyZmFjZXMuYXdzX2VjMi5JUm91dGVUYWJsZVJlZiJ9XX19LCJraW5kIjoiYXJyYXkifX0=")), "routeTableIds") unless @route_table_ids.nil?
  @security_group_ids = security_group_ids
  Jsii::Type.check_type(@security_group_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InVuaW9uIjp7InR5cGVzIjpbeyJwcmltaXRpdmUiOiJzdHJpbmcifSx7ImZxbiI6ImF3cy1jZGstbGliLmludGVyZmFjZXMuYXdzX2VjMi5JU2VjdXJpdHlHcm91cFJlZiJ9XX19LCJraW5kIjoiYXJyYXkifX0=")), "securityGroupIds") unless @security_group_ids.nil?
  @service_name = service_name
  Jsii::Type.check_type(@service_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serviceName") unless @service_name.nil?
  @service_network_arn = service_network_arn
  Jsii::Type.check_type(@service_network_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serviceNetworkArn") unless @service_network_arn.nil?
  @service_region = service_region
  Jsii::Type.check_type(@service_region, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serviceRegion") unless @service_region.nil?
  @subnet_ids = subnet_ids
  Jsii::Type.check_type(@subnet_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InVuaW9uIjp7InR5cGVzIjpbeyJwcmltaXRpdmUiOiJzdHJpbmcifSx7ImZxbiI6ImF3cy1jZGstbGliLmludGVyZmFjZXMuYXdzX2VjMi5JU3VibmV0UmVmIn1dfX0sImtpbmQiOiJhcnJheSJ9fQ==")), "subnetIds") unless @subnet_ids.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?
  @vpc_endpoint_type = vpc_endpoint_type
  Jsii::Type.check_type(@vpc_endpoint_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "vpcEndpointType") unless @vpc_endpoint_type.nil?
end

Instance Attribute Details

#dns_optionsAWSCDK::IResolvable, ... (readonly)

Describes the DNS options for an endpoint.



63
64
65
# File 'ec2/cfn_vpc_endpoint_props.rb', line 63

def dns_options
  @dns_options
end

#ip_address_typeString? (readonly)

The supported IP address types.



68
69
70
# File 'ec2/cfn_vpc_endpoint_props.rb', line 68

def ip_address_type
  @ip_address_type
end

#policy_documentObject? (readonly)

An endpoint policy, which controls access to the service from the VPC.

The default endpoint policy allows full access to the service. Endpoint policies are supported only for gateway and interface endpoints.

For CloudFormation templates in YAML, you can provide the policy in JSON or YAML format. For example, if you have a JSON policy, you can convert it to YAML before including it in the YAML template, and AWS CloudFormation converts the policy to JSON format before calling the API actions for AWS PrivateLink . Alternatively, you can include the JSON directly in the YAML, as shown in the following Properties section:

Properties: VpcEndpointType: 'Interface' ServiceName: !Sub 'com.amazonaws.${AWS::Region}.logs' PolicyDocument: '{ "Version":"2012-10-17", "Statement": [{ "Effect":"Allow", "Principal":"*", "Action":["logs:Describe*","logs:Get*","logs:List*","logs:FilterLogEvents"], "Resource":"*" }] }'



79
80
81
# File 'ec2/cfn_vpc_endpoint_props.rb', line 79

def policy_document
  @policy_document
end

#private_dns_enabledBoolean, ... (readonly)

Indicate whether to associate a private hosted zone with the specified VPC.

The private hosted zone contains a record set for the default public DNS name for the service for the Region (for example, kinesis.us-east-1.amazonaws.com ), which resolves to the private IP addresses of the endpoint network interfaces in the VPC. This enables you to make requests to the default public DNS name for the service instead of the public DNS names that are automatically generated by the VPC endpoint service.

To use a private hosted zone, you must set the following VPC attributes to true : enable_dns_hostnames and enable_dns_support .

This property is supported only for interface endpoints.

Default: false



92
93
94
# File 'ec2/cfn_vpc_endpoint_props.rb', line 92

def private_dns_enabled
  @private_dns_enabled
end

#resource_configuration_arnString? (readonly)

The Amazon Resource Name (ARN) of the resource configuration.



97
98
99
# File 'ec2/cfn_vpc_endpoint_props.rb', line 97

def resource_configuration_arn
  @resource_configuration_arn
end

#route_table_idsArray<String, AWSCDK::Interfaces::AWSEC2::IRouteTableRef>? (readonly)

The IDs of the route tables.

Routing is supported only for gateway endpoints.



104
105
106
# File 'ec2/cfn_vpc_endpoint_props.rb', line 104

def route_table_ids
  @route_table_ids
end

#security_group_idsArray<String, AWSCDK::Interfaces::AWSEC2::ISecurityGroupRef>? (readonly)

The IDs of the security groups to associate with the endpoint network interfaces.

If this parameter is not specified, we use the default security group for the VPC. Security groups are supported only for interface endpoints.



111
112
113
# File 'ec2/cfn_vpc_endpoint_props.rb', line 111

def security_group_ids
  @security_group_ids
end

#service_nameString? (readonly)

The name of the endpoint service.



116
117
118
# File 'ec2/cfn_vpc_endpoint_props.rb', line 116

def service_name
  @service_name
end

#service_network_arnString? (readonly)

The Amazon Resource Name (ARN) of the service network.



121
122
123
# File 'ec2/cfn_vpc_endpoint_props.rb', line 121

def service_network_arn
  @service_network_arn
end

#service_regionString? (readonly)

Describes a Region.



126
127
128
# File 'ec2/cfn_vpc_endpoint_props.rb', line 126

def service_region
  @service_region
end

#subnet_idsArray<String, AWSCDK::Interfaces::AWSEC2::ISubnetRef>? (readonly)

The IDs of the subnets in which to create endpoint network interfaces.

You must specify this property for an interface endpoint or a Gateway Load Balancer endpoint. You can't specify this property for a gateway endpoint. For a Gateway Load Balancer endpoint, you can specify only one subnet.



133
134
135
# File 'ec2/cfn_vpc_endpoint_props.rb', line 133

def subnet_ids
  @subnet_ids
end

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

The tags to associate with the endpoint.



138
139
140
# File 'ec2/cfn_vpc_endpoint_props.rb', line 138

def tags
  @tags
end

#vpc_endpoint_typeString? (readonly)

The type of endpoint.

Default: Gateway



145
146
147
# File 'ec2/cfn_vpc_endpoint_props.rb', line 145

def vpc_endpoint_type
  @vpc_endpoint_type
end

#vpc_idString, AWSCDK::Interfaces::AWSEC2::IVPCRef (readonly)

The ID of the VPC.



58
59
60
# File 'ec2/cfn_vpc_endpoint_props.rb', line 58

def vpc_id
  @vpc_id
end

Class Method Details

.jsii_propertiesObject



147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# File 'ec2/cfn_vpc_endpoint_props.rb', line 147

def self.jsii_properties
  {
    :vpc_id => "vpcId",
    :dns_options => "dnsOptions",
    :ip_address_type => "ipAddressType",
    :policy_document => "policyDocument",
    :private_dns_enabled => "privateDnsEnabled",
    :resource_configuration_arn => "resourceConfigurationArn",
    :route_table_ids => "routeTableIds",
    :security_group_ids => "securityGroupIds",
    :service_name => "serviceName",
    :service_network_arn => "serviceNetworkArn",
    :service_region => "serviceRegion",
    :subnet_ids => "subnetIds",
    :tags => "tags",
    :vpc_endpoint_type => "vpcEndpointType",
  }
end

Instance Method Details

#to_jsiiObject



166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'ec2/cfn_vpc_endpoint_props.rb', line 166

def to_jsii
  result = {}
  result.merge!({
    "vpcId" => @vpc_id,
    "dnsOptions" => @dns_options,
    "ipAddressType" => @ip_address_type,
    "policyDocument" => @policy_document,
    "privateDnsEnabled" => @private_dns_enabled,
    "resourceConfigurationArn" => @resource_configuration_arn,
    "routeTableIds" => @route_table_ids,
    "securityGroupIds" => @security_group_ids,
    "serviceName" => @service_name,
    "serviceNetworkArn" => @service_network_arn,
    "serviceRegion" => @service_region,
    "subnetIds" => @subnet_ids,
    "tags" => @tags,
    "vpcEndpointType" => @vpc_endpoint_type,
  })
  result.compact
end