I would leave the decision on the subclasses.
```ruby
def ComputeResource.accept?(provider)
  self.to_s.downcase == provider['provider'].downcase
end
# can be overridden in a subclass if needed 
```