package classify import "tea.karlcom.de/karl/bucketeer/internal/model" func gcp(service model.Service, resource, region string) model.Match { return model.Match{ Provider: model.ProviderGCP, Service: service, ResourceSpecific: true, Region: region, Resource: resource, } } // classifyGCS handles .storage.googleapis.com. func classifyGCS(s *scanner) (model.Match, bool) { n := s.n if n < 4 || s.label(n-1) != "com" || s.label(n-2) != "googleapis" || s.label(n-3) != "storage" { return model.Match{}, false } return gcp(model.ServiceObjectStorage, s.label(0), ""), true } // classifyFirebaseIO handles .firebaseio.com. func classifyFirebaseIO(s *scanner) (model.Match, bool) { n := s.n if n < 3 || s.label(n-1) != "com" || s.label(n-2) != "firebaseio" { return model.Match{}, false } return gcp(model.ServiceFirebaseDB, s.label(0), ""), true } // classifyFirebaseDB handles ..firebasedatabase.app. func classifyFirebaseDB(s *scanner) (model.Match, bool) { n := s.n if n < 4 || s.label(n-1) != "app" || s.label(n-2) != "firebasedatabase" { return model.Match{}, false } return gcp(model.ServiceFirebaseDB, s.label(0), s.label(1)), true } // classifyAppspot handles .appspot.com. func classifyAppspot(s *scanner) (model.Match, bool) { n := s.n if n < 3 || s.label(n-1) != "com" || s.label(n-2) != "appspot" { return model.Match{}, false } return gcp(model.ServiceWebApp, s.label(0), ""), true }