Class: AWSCDK::ElasticLoadBalancingv2::CfnListenerProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
elastic_load_balancingv2/cfn_listener_props.rb

Overview

Properties for defining a CfnListener.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(default_actions:, load_balancer_arn:, alpn_policy: nil, certificates: nil, listener_attributes: nil, mutual_authentication: nil, port: nil, protocol: nil, ssl_policy: nil) ⇒ CfnListenerProps

Returns a new instance of CfnListenerProps.

Parameters:



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 18

def initialize(default_actions:, load_balancer_arn:, alpn_policy: nil, certificates: nil, listener_attributes: nil, mutual_authentication: nil, port: nil, protocol: nil, ssl_policy: nil)
  @default_actions = default_actions
  Jsii::Type.check_type(@default_actions, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi5DZm5MaXN0ZW5lci5BY3Rpb25Qcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "defaultActions")
  @load_balancer_arn = load_balancer_arn
  Jsii::Type.check_type(@load_balancer_arn, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19lbGFzdGljbG9hZGJhbGFuY2luZ3YyLklMb2FkQmFsYW5jZXJSZWYifV19fQ==")), "loadBalancerArn")
  @alpn_policy = alpn_policy
  Jsii::Type.check_type(@alpn_policy, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "alpnPolicy") unless @alpn_policy.nil?
  @certificates = certificates
  Jsii::Type.check_type(@certificates, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi5DZm5MaXN0ZW5lci5DZXJ0aWZpY2F0ZVByb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "certificates") unless @certificates.nil?
  @listener_attributes = listener_attributes
  Jsii::Type.check_type(@listener_attributes, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi5DZm5MaXN0ZW5lci5MaXN0ZW5lckF0dHJpYnV0ZVByb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "listenerAttributes") unless @listener_attributes.nil?
  @mutual_authentication = mutual_authentication.is_a?(Hash) ? ::AWSCDK::ElasticLoadBalancingv2::CfnListener::MutualAuthenticationProperty.new(**mutual_authentication.transform_keys(&:to_sym)) : mutual_authentication
  Jsii::Type.check_type(@mutual_authentication, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljbG9hZGJhbGFuY2luZ3YyLkNmbkxpc3RlbmVyLk11dHVhbEF1dGhlbnRpY2F0aW9uUHJvcGVydHkifV19fQ==")), "mutualAuthentication") unless @mutual_authentication.nil?
  @port = port
  Jsii::Type.check_type(@port, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "port") unless @port.nil?
  @protocol = protocol
  Jsii::Type.check_type(@protocol, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "protocol") unless @protocol.nil?
  @ssl_policy = ssl_policy
  Jsii::Type.check_type(@ssl_policy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "sslPolicy") unless @ssl_policy.nil?
end

Instance Attribute Details

#alpn_policyArray<String>? (readonly)

[TLS listener] The name of the Application-Layer Protocol Negotiation (ALPN) policy.



55
56
57
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 55

def alpn_policy
  @alpn_policy
end

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

The default SSL server certificate for a secure listener.

You must provide exactly one certificate if the listener protocol is HTTPS or TLS.

For an HTTPS listener, update requires some interruptions. For a TLS listener, update requires no interruption.

To create a certificate list for a secure listener, use AWS::ElasticLoadBalancingV2::ListenerCertificate .



66
67
68
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 66

def certificates
  @certificates
end

#default_actionsAWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::ElasticLoadBalancingv2::CfnListener::ActionProperty> (readonly)

The actions for the default rule. You cannot define a condition for a default rule.

To create additional rules for an Application Load Balancer, use AWS::ElasticLoadBalancingV2::ListenerRule .



45
46
47
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 45

def default_actions
  @default_actions
end

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

The listener attributes.

Attributes that you do not modify retain their current values.



73
74
75
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 73

def listener_attributes
  @listener_attributes
end

#load_balancer_arnString, AWSCDK::Interfaces::AWSElasticloadbalancingv2::ILoadBalancerRef (readonly)

The Amazon Resource Name (ARN) of the load balancer.



50
51
52
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 50

def load_balancer_arn
  @load_balancer_arn
end

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

The mutual authentication configuration information.



78
79
80
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 78

def mutual_authentication
  @mutual_authentication
end

#portNumeric? (readonly)

The port on which the load balancer is listening.

You can't specify a port for a Gateway Load Balancer.



85
86
87
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 85

def port
  @port
end

#protocolString? (readonly)

The protocol for connections from clients to the load balancer.

For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, TCP_UDP, QUIC, and TCP_QUIC. You can’t specify the UDP, TCP_UDP, QUIC, or TCP_QUIC protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer.



92
93
94
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 92

def protocol
  @protocol
end

#ssl_policyString? (readonly)

[HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported.

For more information, see Security policies in the Application Load Balancers Guide and Security policies in the Network Load Balancers Guide .

[HTTPS listeners] Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. To decrease the possibility of an interruption if your load balancer is handling a high volume of traffic, create an additional load balancer or request an LCU reservation.



101
102
103
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 101

def ssl_policy
  @ssl_policy
end

Class Method Details

.jsii_propertiesObject



103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 103

def self.jsii_properties
  {
    :default_actions => "defaultActions",
    :load_balancer_arn => "loadBalancerArn",
    :alpn_policy => "alpnPolicy",
    :certificates => "certificates",
    :listener_attributes => "listenerAttributes",
    :mutual_authentication => "mutualAuthentication",
    :port => "port",
    :protocol => "protocol",
    :ssl_policy => "sslPolicy",
  }
end

Instance Method Details

#to_jsiiObject



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'elastic_load_balancingv2/cfn_listener_props.rb', line 117

def to_jsii
  result = {}
  result.merge!({
    "defaultActions" => @default_actions,
    "loadBalancerArn" => @load_balancer_arn,
    "alpnPolicy" => @alpn_policy,
    "certificates" => @certificates,
    "listenerAttributes" => @listener_attributes,
    "mutualAuthentication" => @mutual_authentication,
    "port" => @port,
    "protocol" => @protocol,
    "sslPolicy" => @ssl_policy,
  })
  result.compact
end