code: func (p *OCIProvider) Records() ([]*endpoint.Endpoint, error) {
  	ctx := context.Background()
  	zones, err := p.zones(ctx)
  	if err != nil {
  		return nil, errors.Wrap(err, "getting zones")
  	}
  
  	endpoints := []*endpoint.Endpoint{}
  	for _, zone := range zones {
  		var page *string
  		for {
  			resp, err := p.client.GetZoneRecords(ctx, dns.GetZoneRecordsRequest{
  				ZoneNameOrId:  zone.Id,
  				Page:          page,
  				CompartmentId: &p.cfg.CompartmentID,
  			})
  			if err != nil {
  				return nil, errors.Wrapf(err, "getting records for zone %q", *zone.Id)
  			}
  
  			for _, record := range resp.Items {
  				if !supportedRecordType(*record.Rtype) {
  					continue
  				}
  				endpoints = append(endpoints,
  					endpoint.NewEndpointWithTTL(
  						*record.Domain,
  						*record.Rtype,
  						endpoint.TTL(*record.Ttl),
  						*record.Rdata,
  					),
  				)
  			}
  
  			if page = resp.OpcNextPage; resp.OpcNextPage == nil {
  				break
  			}
  		}
  	}
  
  	return endpoints, nil
  }
docs: // Records returns the list of records in a given hosted zone.