class AWS::ELB::LoadBalancerPolicyCollection

Attributes

load_balancer[R]

Public Class Methods

new(load_balancer, options = {}) click to toggle source
# File lib/aws/elb/load_balancer_policy_collection.rb, line 21
def initialize load_balancer, options = {}
  @load_balancer = load_balancer
  super
end

Public Instance Methods

[](policy_name) click to toggle source

@param [String] policy_name The name of the policy to return. @return [LoadBalancerPolicy] Returns a reference to the load balancer

policy with the given name.
# File lib/aws/elb/load_balancer_policy_collection.rb, line 184
def [] policy_name
  LoadBalancerPolicy.new(load_balancer, policy_name)
end
create(name, type, attributes = {}) click to toggle source

Creates a new load balancer policy that contains the necessary attributes depending on the policy type. Policies are settings that are saved for your load balancer and that can be applied to the front-end listener, or the back-end application server, depending on your policy type.

Applying Policies

To apply a policy to a front-end listener:

# each listener may only have a single policy
load_balancer.listener[80].policy = listener_policy

To apply a policy to backend instance port

# back end servers can have multiple policies per instance port
load_balancer.backend_server_policies.add(80, back_end_policy)

@param [String] name The name of the policy being created. The name

must be unique within the set of policies for this load balancer.

@param [String] type The policy type name. Valid values inlucde:

* 'PublicKeyPolicyType'
* 'AppCookieStickinessPolicyType'
* 'LBCookieStickinessPolicyType'
* 'SSLNegotiationPolicyType'
* 'BackendServerAuthenticationPolicyType'

@param [Hash] attributes A hash of policy attributes. Each policy

type accepts a different list of hash options.  Below each
policy type name is listed with its list of accepted options.
Attributes that accept more than one value should be provided
as an array of values.

Hash keys should be attribute names, values may be single
values or arrays of values.

PublicKeyPolicyType

  Policy containing a list of public keys to accept when authenticating the back-end server(s). This policy cannot be applied directly to back-end servers or listeners but must be part of a BackendServerAuthenticationPolicyType.

  * 'PublicKey', String, one

AppCookieStickinessPolicyType

  Stickiness policy with session lifetimes controlled by the lifetime of the application-generated cookie. This policy can be associated only with HTTP/HTTPS listeners.

  * 'CookieName', String, one

LBCookieStickinessPolicyType

  Stickiness policy with session lifetimes controlled by the browser (user-agent) or a specified expiration period. This policy can be associated only with HTTP/HTTPS listeners.

  * 'CookieExpirationPeriod', Long, zero or one

SSLNegotiationPolicyType

  Listener policy that defines the ciphers and protocols that will be accepted by the load balancer. This policy can be associated only with HTTPS/SSL listeners.

  * 'Protocol-SSLv2', Boolean, zero or one
  * 'Protocol-TLSv1', Boolean, zero or one
  * 'Protocol-SSLv3', Boolean, zero or one
  * 'DHE-RSA-AES256-SHA', Boolean, zero or one
  * 'DHE-DSS-AES256-SHA', Boolean, zero or one
  * 'DHE-RSA-CAMELLIA256-SHA', Boolean, zero or one
  * 'DHE-DSS-CAMELLIA256-SHA', Boolean, zero or one
  * 'ADH-AES256-SHA', Boolean, zero or one
  * 'ADH-CAMELLIA256-SHA', Boolean, zero or one
  * 'AES256-SHA', Boolean, zero or one
  * 'CAMELLIA256-SHA', Boolean, zero or one
  * 'PSK-AES256-CBC-SHA', Boolean, zero or one
  * 'EDH-RSA-DES-CBC3-SHA', Boolean, zero or one
  * 'EDH-DSS-DES-CBC3-SHA', Boolean, zero or one
  * 'ADH-DES-CBC3-SHA', Boolean, zero or one
  * 'DES-CBC3-SHA', Boolean, zero or one
  * 'DES-CBC3-MD5', Boolean, zero or one
  * 'PSK-3DES-EDE-CBC-SHA', Boolean, zero or one
  * 'KRB5-DES-CBC3-SHA', Boolean, zero or one
  * 'KRB5-DES-CBC3-MD5', Boolean, zero or one
  * 'DHE-RSA-AES128-SHA', Boolean, zero or one
  * 'DHE-DSS-AES128-SHA', Boolean, zero or one
  * 'DHE-RSA-SEED-SHA', Boolean, zero or one
  * 'DHE-DSS-SEED-SHA', Boolean, zero or one
  * 'DHE-RSA-CAMELLIA128-SHA', Boolean, zero or one
  * 'DHE-DSS-CAMELLIA128-SHA', Boolean, zero or one
  * 'ADH-AES128-SHA', Boolean, zero or one
  * 'ADH-SEED-SHA', Boolean, zero or one
  * 'ADH-CAMELLIA128-SHA', Boolean, zero or one
  * 'AES128-SHA', Boolean, zero or one
  * 'SEED-SHA', Boolean, zero or one
  * 'CAMELLIA128-SHA', Boolean, zero or one
  * 'RC2-CBC-MD5', Boolean, zero or one
  * 'PSK-AES128-CBC-SHA', Boolean, zero or one
  * 'ADH-RC4-MD5', Boolean, zero or one
  * 'IDEA-CBC-SHA', Boolean, zero or one
  * 'RC4-SHA', Boolean, zero or one
  * 'RC4-MD5', Boolean, zero or one
  * 'PSK-RC4-SHA', Boolean, zero or one
  * 'KRB5-RC4-SHA', Boolean, zero or one
  * 'KRB5-RC4-MD5', Boolean, zero or one
  * 'EDH-RSA-DES-CBC-SHA', Boolean, zero or one
  * 'EDH-DSS-DES-CBC-SHA', Boolean, zero or one
  * 'ADH-DES-CBC-SHA', Boolean, zero or one
  * 'DES-CBC-SHA', Boolean, zero or one
  * 'DES-CBC-MD5', Boolean, zero or one
  * 'KRB5-DES-CBC-SHA', Boolean, zero or one
  * 'KRB5-DES-CBC-MD5', Boolean, zero or one
  * 'EXP-EDH-RSA-DES-CBC-SHA', Boolean, zero or one
  * 'EXP-EDH-DSS-DES-CBC-SHA', Boolean, zero or one
  * 'EXP-ADH-DES-CBC-SHA', Boolean, zero or one
  * 'EXP-DES-CBC-SHA', Boolean, zero or one
  * 'EXP-RC2-CBC-MD5', Boolean, zero or one
  * 'EXP-KRB5-RC2-CBC-SHA', Boolean, zero or one
  * 'EXP-KRB5-DES-CBC-SHA', Boolean, zero or one
  * 'EXP-KRB5-RC2-CBC-MD5', Boolean, zero or one
  * 'EXP-KRB5-DES-CBC-MD5', Boolean, zero or one
  * 'EXP-ADH-RC4-MD5', Boolean, zero or one
  * 'EXP-RC4-MD5', Boolean, zero or one
  * 'EXP-KRB5-RC4-SHA', Boolean, zero or one
  * 'EXP-KRB5-RC4-MD5', Boolean, zero or one

BackendServerAuthenticationPolicyType

  Policy that controls authentication to back-end server(s) and contains one or more policies, such as an instance of a PublicKeyPolicyType. This policy can be associated only with back-end servers that are using HTTPS/SSL.

  * 'PublicKeyPolicyName', PolicyName, one or more

@return [nil]

# File lib/aws/elb/load_balancer_policy_collection.rb, line 158
def create name, type, attributes = {}

  attribute_list = []

  attributes.each do |attr_name,values|
    [values].flatten.each do |value|
      attribute_list << { 
        :attribute_name => attr_name, 
        :attribute_value => value.to_s 
      }
    end
  end

  client.create_load_balancer_policy(
    :load_balancer_name => load_balancer.name,
    :policy_name => name.to_s,
    :policy_type_name => type.to_s,
    :policy_attributes => attribute_list)

  LoadBalancerPolicy.new(load_balancer, name, :type => type.to_s)

end

Protected Instance Methods

_each_item(options = {}) { |load_balancer_policy| ... } click to toggle source
# File lib/aws/elb/load_balancer_policy_collection.rb, line 189
def _each_item options = {}, &block

  options[:load_balancer_name] = load_balancer.name

  response = client.describe_load_balancer_policies(options)
  response.policy_descriptions.each do |desc|

    load_balancer_policy = LoadBalancerPolicy.new_from(
      :describe_load_balancer_policies, 
      desc, load_balancer, desc.policy_name)

    yield(load_balancer_policy)

  end

end