code: func (p *AWSSDProvider) ListNamespaces() ([]*sd.NamespaceSummary, error) {
  	namespaces := make([]*sd.NamespaceSummary, 0)
  
  	f := func(resp *sd.ListNamespacesOutput, lastPage bool) bool {
  		for _, ns := range resp.Namespaces {
  			if !p.namespaceFilter.Match(aws.StringValue(ns.Name)) {
  				continue
  			}
  			namespaces = append(namespaces, ns)
  		}
  
  		return true
  	}
  
  	err := p.client.ListNamespacesPages(&sd.ListNamespacesInput{
  		Filters: []*sd.NamespaceFilter{p.namespaceTypeFilter},
  	}, f)
  	if err != nil {
  		return nil, err
  	}
  
  	return namespaces, nil
  }
docs: // ListNamespaces returns all namespaces matching defined namespace filter