Module: Pangea::Validation::Helpers

Defined in:
lib/pangea/validation.rb

Instance Method Summary collapse

Instance Method Details

#validate_name!(name) ⇒ Object



105
106
107
108
109
110
111
112
113
# File 'lib/pangea/validation.rb', line 105

def validate_name!(name)
  unless name.is_a?(Symbol) || name.is_a?(String)
    raise Errors::ValidationError.invalid_type('resource', 'name', 'Symbol or String', name.class)
  end

  unless name.to_s.match?(/\A[a-z][a-z0-9_]*\z/)
    raise Errors::ValidationError.invalid_attribute('resource', 'name', name, 'lowercase letters, numbers, and underscores')
  end
end

#validate_required_attributes(resource_type, attributes, required) ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'lib/pangea/validation.rb', line 115

def validate_required_attributes(resource_type, attributes, required)
  result = Result.new

  required.each do |attr|
    unless attributes.key?(attr)
      result.add_error(Errors::ValidationError.missing_required(resource_type, attr))

      case attr
      when :subnet_id
        result.add_suggestion("Use ref(:subnet, :subnet_name, :id) to reference a subnet")
      when :vpc_id
        result.add_suggestion("Use ref(:vpc, :vpc_name, :id) to reference a VPC")
      when :security_group_ids
        result.add_suggestion("Use [ref(:security_group, :sg_name, :id)] for security groups")
      end
    end
  end

  result
end