lib/fog/compute/ecloud/requests/admin_edit_password_complexity_rules.rb
module Fog
module Compute
class Ecloud
class Real
def password_complexity_rules_edit(data)
validate_data([:rule_type], data)
if data[:rule_type] == "Custom"
raise ArgumentError.new("Required data missing: custom_rules") unless data[:custom_rules]
end
validate_data([:minimum_characters, :minimum_uppercase_characters, :minimum_lowercase_characters, :minimum_numeric_characters, :minimum_special_characters, :maximum_consecutive_characters_from_prior_passwords, :minimum_lifetime_restriction, :minimum_generations_before_reuse], data[:custom_rules])
body = build_password_complexity_rules_edit(data)
request(
:expects => 202,
:method => "PUT",
:headers => {},
:body => body,
:uri => data[:uri],
:parse => true
)
end
private
def build_password_complexity_rules_edit(data)
xml = Builder::XmlMarkup.new
xml.PasswordComplexityRules do
xml.RuleType data[:rule_type]
if data[:rule_type] == "Custom"
xml.CustomRules do
xml.MinimumCharacters do
xml.Enabled data[:custom_rules][:minimum_characters][:enabled]
xml.Value data[:custom_rules][:minimum_characters][:value]
end
xml.MinimumUpperCaseCharacters do
xml.Enabled data[:custom_rules][:minimum_uppercase_characters][:enabled]
xml.Value data[:custom_rules][:minimum_uppercase_characters][:value]
end
xml.MinimumLowerCaseCharacters do
xml.Enabled data[:custom_rules][:minimum_lowercase_characters][:enabled]
xml.Value data[:custom_rules][:minimum_lowercase_characters][:value]
end
xml.MinimumNumericCharacters do
xml.Enabled data[:custom_rules][:minimum_numeric_characters][:enabled]
xml.Value data[:custom_rules][:minimum_numeric_characters][:value]
end
xml.MinimumSpecialCharacters do
xml.Enabled data[:custom_rules][:minimum_special_characters][:enabled]
xml.Value data[:custom_rules][:minimum_special_characters][:value]
end
xml.MaximumConsecutiveCharactersFromPriorPasswords do
xml.Enabled data[:custom_rules][:maximum_consecutive_characters_from_prior_passwords][:enabled]
xml.Value data[:custom_rules][:maximum_consecutive_characters_from_prior_passwords][:value]
end
xml.MinimumLifetimeRestriction do
xml.Enabled data[:custom_rules][:minimum_lifetime_restriction][:enabled]
xml.Value data[:custom_rules][:minimum_lifetime_restriction][:value]
end
xml.MinimumGenerationsBeforeReuse do
xml.Enabled data[:custom_rules][:minimum_generations_before_reuse][:enabled]
xml.Value data[:custom_rules][:minimum_generations_before_reuse][:value]
end
end
end
if data[:description]
xml.Description data[:description]
end
end
end
end
end
end
end