From 152bca259ec2fb2549ad25a9c2ab23453917865e Mon Sep 17 00:00:00 2001 From: Timo Riski Date: Mon, 16 Sep 2024 17:55:35 +0300 Subject: [PATCH] fix: import service_integrations field (#1820) --- internal/schemautil/service.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/internal/schemautil/service.go b/internal/schemautil/service.go index d3580efda..0c6543007 100644 --- a/internal/schemautil/service.go +++ b/internal/schemautil/service.go @@ -598,6 +598,20 @@ func getTechnicalEmailsForTerraform(s *service.ServiceGetOut) *schema.Set { return schema.NewSet(schema.HashResource(TechEmailsResourceSchema), techEmails) } +func getReadReplicaIntegrationsForTerraform(integrations []service.ServiceIntegrationOut) ([]map[string]interface{}, error) { + var readReplicaIntegrations []map[string]interface{} + for _, integration := range integrations { + if integration.IntegrationType == "read_replica" { + integrationMap := map[string]interface{}{ + "integration_type": integration.IntegrationType, + "source_service_name": integration.SourceService, + } + readReplicaIntegrations = append(readReplicaIntegrations, integrationMap) + } + } + return readReplicaIntegrations, nil +} + func ResourceServiceDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { client := m.(*aiven.Client) @@ -745,6 +759,15 @@ func copyServicePropertiesFromAPIResponseToTerraform( return fmt.Errorf("cannot set `components` : %w", err) } + // Handle read_replica service integrations + readReplicaIntegrations, err := getReadReplicaIntegrationsForTerraform(s.ServiceIntegrations) + if err != nil { + return err + } + if err := d.Set("service_integrations", readReplicaIntegrations); err != nil { + return err + } + return copyConnectionInfoFromAPIResponseToTerraform(d, serviceType, s.ConnectionInfo, s.Metadata) }