Class: AWSCDK::ECSPatterns::ApplicationLoadBalancerProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
ecs_patterns/application_load_balancer_props.rb

Overview

Properties to define an application load balancer.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(listeners:, name:, domain_name: nil, domain_zone: nil, idle_timeout: nil, public_load_balancer: nil) ⇒ ApplicationLoadBalancerProps

Returns a new instance of ApplicationLoadBalancerProps.

Parameters:

  • listeners (Array<AWSCDK::ECSPatterns::ApplicationListenerProps>)

    Listeners (at least one listener) attached to this load balancer.

  • name (String)

    Name of the load balancer.

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

    The domain name for the service, e.g. "api.example.com.".

  • domain_zone (AWSCDK::Route53::IHostedZone, nil) (defaults to: nil)

    The Route53 hosted zone for the domain, e.g. "example.com.".

  • idle_timeout (AWSCDK::Duration, nil) (defaults to: nil)

    The load balancer idle timeout, in seconds.

  • public_load_balancer (Boolean, nil) (defaults to: nil)

    Determines whether the Load Balancer will be internet-facing.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'ecs_patterns/application_load_balancer_props.rb', line 13

def initialize(listeners:, name:, domain_name: nil, domain_zone: nil, idle_timeout: nil, public_load_balancer: nil)
  @listeners = listeners.is_a?(Array) ? listeners.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::ECSPatterns::ApplicationListenerProps.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : listeners
  Jsii::Type.check_type(@listeners, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lY3NfcGF0dGVybnMuQXBwbGljYXRpb25MaXN0ZW5lclByb3BzIn0sImtpbmQiOiJhcnJheSJ9fQ==")), "listeners")
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name")
  @domain_name = domain_name
  Jsii::Type.check_type(@domain_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "domainName") unless @domain_name.nil?
  @domain_zone = domain_zone
  Jsii::Type.check_type(@domain_zone, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfcm91dGU1My5JSG9zdGVkWm9uZSJ9")), "domainZone") unless @domain_zone.nil?
  @idle_timeout = idle_timeout
  Jsii::Type.check_type(@idle_timeout, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "idleTimeout") unless @idle_timeout.nil?
  @public_load_balancer = public_load_balancer
  Jsii::Type.check_type(@public_load_balancer, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "publicLoadBalancer") unless @public_load_balancer.nil?
end

Instance Attribute Details

#domain_nameString? (readonly)

Note:

Default: - No domain name.

The domain name for the service, e.g. "api.example.com.".

Returns:

  • (String, nil)


40
41
42
# File 'ecs_patterns/application_load_balancer_props.rb', line 40

def domain_name
  @domain_name
end

#domain_zoneAWSCDK::Route53::IHostedZone? (readonly)

Note:

Default: - No Route53 hosted domain zone.

The Route53 hosted zone for the domain, e.g. "example.com.".



45
46
47
# File 'ecs_patterns/application_load_balancer_props.rb', line 45

def domain_zone
  @domain_zone
end

#idle_timeoutAWSCDK::Duration? (readonly)

Note:

Default: - CloudFormation sets idle timeout to 60 seconds

The load balancer idle timeout, in seconds.

Can be between 1 and 4000 seconds.

Returns:



52
53
54
# File 'ecs_patterns/application_load_balancer_props.rb', line 52

def idle_timeout
  @idle_timeout
end

#listenersArray<AWSCDK::ECSPatterns::ApplicationListenerProps> (readonly)

Listeners (at least one listener) attached to this load balancer.



31
32
33
# File 'ecs_patterns/application_load_balancer_props.rb', line 31

def listeners
  @listeners
end

#nameString (readonly)

Name of the load balancer.

Returns:

  • (String)


35
36
37
# File 'ecs_patterns/application_load_balancer_props.rb', line 35

def name
  @name
end

#public_load_balancerBoolean? (readonly)

Note:

Default: true

Determines whether the Load Balancer will be internet-facing.

Returns:

  • (Boolean, nil)


57
58
59
# File 'ecs_patterns/application_load_balancer_props.rb', line 57

def public_load_balancer
  @public_load_balancer
end

Class Method Details

.jsii_propertiesObject



59
60
61
62
63
64
65
66
67
68
# File 'ecs_patterns/application_load_balancer_props.rb', line 59

def self.jsii_properties
  {
    :listeners => "listeners",
    :name => "name",
    :domain_name => "domainName",
    :domain_zone => "domainZone",
    :idle_timeout => "idleTimeout",
    :public_load_balancer => "publicLoadBalancer",
  }
end

Instance Method Details

#to_jsiiObject



70
71
72
73
74
75
76
77
78
79
80
81
# File 'ecs_patterns/application_load_balancer_props.rb', line 70

def to_jsii
  result = {}
  result.merge!({
    "listeners" => @listeners,
    "name" => @name,
    "domainName" => @domain_name,
    "domainZone" => @domain_zone,
    "idleTimeout" => @idle_timeout,
    "publicLoadBalancer" => @public_load_balancer,
  })
  result.compact
end