Class: AWSCDK::APIGatewayv2::DomainNameProps

Inherits:
EndpointOptions
  • Object
show all
Defined in:
api_gatewayv2/domain_name_props.rb

Overview

properties used for creating the DomainName.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(certificate:, certificate_name: nil, endpoint_type: nil, ip_address_type: nil, ownership_certificate: nil, security_policy: nil, domain_name:, mtls: nil) ⇒ DomainNameProps

Returns a new instance of DomainNameProps.

Parameters:



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'api_gatewayv2/domain_name_props.rb', line 15

def initialize(certificate:, certificate_name: nil, endpoint_type: nil, ip_address_type: nil, ownership_certificate: nil, security_policy: nil, domain_name:, mtls: nil)
  @certificate = certificate
  Jsii::Type.check_type(@certificate, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19jZXJ0aWZpY2F0ZW1hbmFnZXIuSUNlcnRpZmljYXRlUmVmIn0=")), "certificate")
  @certificate_name = certificate_name
  Jsii::Type.check_type(@certificate_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "certificateName") unless @certificate_name.nil?
  @endpoint_type = endpoint_type
  Jsii::Type.check_type(@endpoint_type, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBpZ2F0ZXdheXYyLkVuZHBvaW50VHlwZSJ9")), "endpointType") unless @endpoint_type.nil?
  @ip_address_type = ip_address_type
  Jsii::Type.check_type(@ip_address_type, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBpZ2F0ZXdheXYyLklwQWRkcmVzc1R5cGUifQ==")), "ipAddressType") unless @ip_address_type.nil?
  @ownership_certificate = ownership_certificate
  Jsii::Type.check_type(@ownership_certificate, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19jZXJ0aWZpY2F0ZW1hbmFnZXIuSUNlcnRpZmljYXRlUmVmIn0=")), "ownershipCertificate") unless @ownership_certificate.nil?
  @security_policy = security_policy
  Jsii::Type.check_type(@security_policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBpZ2F0ZXdheXYyLlNlY3VyaXR5UG9saWN5In0=")), "securityPolicy") unless @security_policy.nil?
  @domain_name = domain_name
  Jsii::Type.check_type(@domain_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "domainName")
  @mtls = mtls.is_a?(Hash) ? ::AWSCDK::APIGatewayv2::MTLSConfig.new(**mtls.transform_keys(&:to_sym)) : mtls
  Jsii::Type.check_type(@mtls, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBpZ2F0ZXdheXYyLk1UTFNDb25maWcifQ==")), "mtls") unless @mtls.nil?
end

Instance Attribute Details

#certificateAWSCDK::Interfaces::AWSCertificatemanager::ICertificateRef (readonly)

The ACM certificate for this domain name.

Certificate can be both ACM issued or imported.



39
40
41
# File 'api_gatewayv2/domain_name_props.rb', line 39

def certificate
  @certificate
end

#certificate_nameString? (readonly)

Note:

Default: - No friendly certificate name

The user-friendly name of the certificate that will be used by the endpoint for this domain name.

Returns:

  • (String, nil)


44
45
46
# File 'api_gatewayv2/domain_name_props.rb', line 44

def certificate_name
  @certificate_name
end

#domain_nameString (readonly)

The custom domain name.

Returns:

  • (String)


73
74
75
# File 'api_gatewayv2/domain_name_props.rb', line 73

def domain_name
  @domain_name
end

#endpoint_typeAWSCDK::APIGatewayv2::EndpointType? (readonly)

Note:

Default: EndpointType.REGIONAL

The type of endpoint for this DomainName.



49
50
51
# File 'api_gatewayv2/domain_name_props.rb', line 49

def endpoint_type
  @endpoint_type
end

#ip_address_typeAWSCDK::APIGatewayv2::IPAddressType? (readonly)

Note:

Default: undefined - AWS default is IPV4

The IP address types that can invoke the API.



55
56
57
# File 'api_gatewayv2/domain_name_props.rb', line 55

def ip_address_type
  @ip_address_type
end

#mtlsAWSCDK::APIGatewayv2::MTLSConfig? (readonly)

Note:

Default: - mTLS is not configured.

The mutual TLS authentication configuration for a custom domain name.



78
79
80
# File 'api_gatewayv2/domain_name_props.rb', line 78

def mtls
  @mtls
end

#ownership_certificateAWSCDK::Interfaces::AWSCertificatemanager::ICertificateRef? (readonly)

Note:

Default: - only required when configuring mTLS

A public certificate issued by ACM to validate that you own a custom domain.

This parameter is required only when you configure mutual TLS authentication and you specify an ACM imported or private CA certificate for certificate. The ownership certificate validates that you have permissions to use the domain name.



64
65
66
# File 'api_gatewayv2/domain_name_props.rb', line 64

def ownership_certificate
  @ownership_certificate
end

#security_policyAWSCDK::APIGatewayv2::SecurityPolicy? (readonly)

Note:

Default: SecurityPolicy.TLS_1_2

The Transport Layer Security (TLS) version + cipher suite for this domain name.



69
70
71
# File 'api_gatewayv2/domain_name_props.rb', line 69

def security_policy
  @security_policy
end

Class Method Details

.jsii_propertiesObject



80
81
82
83
84
85
86
87
88
89
90
91
# File 'api_gatewayv2/domain_name_props.rb', line 80

def self.jsii_properties
  {
    :certificate => "certificate",
    :certificate_name => "certificateName",
    :endpoint_type => "endpointType",
    :ip_address_type => "ipAddressType",
    :ownership_certificate => "ownershipCertificate",
    :security_policy => "securityPolicy",
    :domain_name => "domainName",
    :mtls => "mtls",
  }
end

Instance Method Details

#to_jsiiObject



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'api_gatewayv2/domain_name_props.rb', line 93

def to_jsii
  result = {}
  result.merge!(super)
  result.merge!({
    "certificate" => @certificate,
    "certificateName" => @certificate_name,
    "endpointType" => @endpoint_type,
    "ipAddressType" => @ip_address_type,
    "ownershipCertificate" => @ownership_certificate,
    "securityPolicy" => @security_policy,
    "domainName" => @domain_name,
    "mtls" => @mtls,
  })
  result.compact
end