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
}
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
}
func ( p * OCIProvider ) Records ( ) ( [ ] * endpoint . Endpoint , error ) { ctx := context . Background ( ) zones , err := p . zones ( ctx ) if err != nil { return nil , errors . Wrap ( err , " " ) } 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 , " " , * 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 }
// Records returns the list of records in a given hosted zone.
Records returns the list of records in a given hosted zone .