in ec/ecresource/projectresource/observability.go [203:270]
func (obs observabilityApi) Read(ctx context.Context, id string, model resource_observability_project.ObservabilityProjectModel) (bool, resource_observability_project.ObservabilityProjectModel, diag.Diagnostics) {
resp, err := obs.client.GetObservabilityProjectWithResponse(ctx, id)
if err != nil {
return false, model, diag.Diagnostics{
diag.NewErrorDiagnostic(err.Error(), err.Error()),
}
}
if resp.HTTPResponse != nil && resp.HTTPResponse.StatusCode == http.StatusNotFound {
return false, model, nil
}
if resp.JSON200 == nil {
return false, model, diag.Diagnostics{
diag.NewErrorDiagnostic(
"Failed to read observability_project",
fmt.Sprintf("The API request failed with: %d %s\n%s",
resp.StatusCode(),
resp.Status(),
resp.Body),
),
}
}
model.Id = basetypes.NewStringValue(id)
model.Alias = basetypes.NewStringValue(reformatAlias(resp.JSON200.Alias, id))
model.CloudId = basetypes.NewStringValue(resp.JSON200.CloudId)
endpoints, diags := resource_observability_project.NewEndpointsValue(
model.Endpoints.AttributeTypes(ctx),
map[string]attr.Value{
"elasticsearch": basetypes.NewStringValue(resp.JSON200.Endpoints.Elasticsearch),
"kibana": basetypes.NewStringValue(resp.JSON200.Endpoints.Kibana),
"apm": basetypes.NewStringValue(resp.JSON200.Endpoints.Apm),
},
)
if diags.HasError() {
return false, model, diags
}
model.Endpoints = endpoints
metadataValues := map[string]attr.Value{
"created_at": basetypes.NewStringValue(resp.JSON200.Metadata.CreatedAt.String()),
"created_by": basetypes.NewStringValue(resp.JSON200.Metadata.CreatedBy),
"organization_id": basetypes.NewStringValue(resp.JSON200.Metadata.OrganizationId),
"suspended_at": basetypes.NewStringNull(),
"suspended_reason": basetypes.NewStringPointerValue(resp.JSON200.Metadata.SuspendedReason),
}
if resp.JSON200.Metadata.SuspendedAt != nil {
metadataValues["suspended_at"] = basetypes.NewStringValue(resp.JSON200.Metadata.SuspendedAt.String())
}
metadata, diags := resource_observability_project.NewMetadataValue(
model.Metadata.AttributeTypes(ctx),
metadataValues,
)
if diags.HasError() {
return false, model, diags
}
model.Metadata = metadata
model.Name = basetypes.NewStringValue(resp.JSON200.Name)
model.RegionId = basetypes.NewStringValue(resp.JSON200.RegionId)
model.Type = basetypes.NewStringValue(string(resp.JSON200.Type))
return true, model, nil
}