in ec/ecresource/deploymentresource/elasticsearch/v2/elasticsearch_topology.go [76:124]
func (topology ElasticsearchTopologyTF) payload(ctx context.Context, topologyID string, planTopologies []*models.ElasticsearchClusterTopologyElement) diag.Diagnostics {
var diags diag.Diagnostics
topologyElem, err := matchEsTopologyID(topologyID, planTopologies)
if err != nil {
diags.AddError("topology matching error", err.Error())
return diags
}
if topology.InstanceConfigurationId.ValueString() != "" {
topologyElem.InstanceConfigurationID = topology.InstanceConfigurationId.ValueString()
}
if !(topology.InstanceConfigurationVersion.IsUnknown() || topology.InstanceConfigurationVersion.IsNull()) {
topologyElem.InstanceConfigurationVersion = ec.Int32(int32(topology.InstanceConfigurationVersion.ValueInt64()))
}
size, err := converters.ParseTopologySizeTypes(topology.Size, topology.SizeResource)
if err != nil {
diags.AddError("size parsing error", err.Error())
}
if size != nil {
topologyElem.Size = size
}
if topology.ZoneCount.ValueInt64() > 0 {
topologyElem.ZoneCount = int32(topology.ZoneCount.ValueInt64())
}
if err := topology.parseLegacyNodeType(topologyElem.NodeType); err != nil {
diags.AddError("topology legacy node type error", err.Error())
}
var nodeRoles []string
ds := topology.NodeRoles.ElementsAs(ctx, &nodeRoles, true)
diags.Append(ds...)
if !ds.HasError() && len(nodeRoles) > 0 {
topologyElem.NodeRoles = nodeRoles
topologyElem.NodeType = nil
}
diags.Append(elasticsearchTopologyAutoscalingPayload(ctx, topology.Autoscaling, topologyID, topologyElem)...)
diags = append(diags, ds...)
return diags
}