code: func (actor Actor) GetServicesWithPlans(filters ...Filter) (ServicesWithPlans, Warnings, error) {
  	ccv2Filters := []ccv2.Filter{}
  	for _, f := range filters {
  		ccv2Filters = append(ccv2Filters, ccv2.Filter(f))
  	}
  
  	var allWarnings Warnings
  
  	services, warnings, err := actor.CloudControllerClient.GetServices(ccv2Filters...)
  	allWarnings = append(allWarnings, Warnings(warnings)...)
  	if err != nil {
  		return nil, allWarnings, err
  	}
  
  	servicesWithPlans := ServicesWithPlans{}
  	for _, service := range services {
  		servicePlans, warnings, err := actor.CloudControllerClient.GetServicePlans(ccv2.Filter{
  			Type:     constant.ServiceGUIDFilter,
  			Operator: constant.EqualOperator,
  			Values:   []string{service.GUID},
  		})
  		allWarnings = append(allWarnings, Warnings(warnings)...)
  		if err != nil {
  			return nil, allWarnings, err
  		}
  
  		plansToReturn := []ServicePlan{}
  		for _, plan := range servicePlans {
  			plansToReturn = append(plansToReturn, ServicePlan(plan))
  		}
  
  		servicesWithPlans[Service(service)] = plansToReturn
  	}
  
  	return servicesWithPlans, allWarnings, nil
  }
docs: // GetServicesWithPlans returns a map of Services to ServicePlans for a particular broker.
  // A particular service with associated plans from a broker can be fetched by additionally providing
  // a service label filter.