package classify import "tea.karlcom.de/karl/bucketeer/internal/model" // classifyDigitalOceanSpaces handles // ..digitaloceanspaces.com and the cdn variant. func classifyDigitalOceanSpaces(s *scanner) (model.Match, bool) { n := s.n if s.label(n-1) != "com" || s.label(n-2) != "digitaloceanspaces" { return model.Match{}, false } // ..digitaloceanspaces.com (n==4) or the cdn variant (n==5) if n != 4 && !(n == 5 && s.label(2) == "cdn") { return model.Match{}, false } bucket := s.label(0) region := s.label(1) return model.Match{ Provider: model.ProviderDigitalOcean, Service: model.ServiceObjectStorage, ResourceSpecific: true, Region: region, Resource: bucket, }, true } // classifyDigitalOceanDB handles .db.ondigitalocean.com. func classifyDigitalOceanDB(s *scanner) (model.Match, bool) { n := s.n if n < 4 || s.label(n-1) != "com" || s.label(n-2) != "ondigitalocean" || s.label(n-3) != "db" { return model.Match{}, false } return model.Match{ Provider: model.ProviderDigitalOcean, Service: model.ServiceDatabase, ResourceSpecific: true, Resource: s.label(0), }, true }