Module: Pangea::Validation::Helpers
- Defined in:
- lib/pangea/validation.rb
Instance Method Summary collapse
- #validate_name!(name) ⇒ Object
- #validate_required_attributes(resource_type, attributes, required) ⇒ Object
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 |