func mapElasticsearch()

in ec/ecdatasource/deploymenttemplates/read.go [108:161]


func mapElasticsearch(templateDefinition *models.DeploymentCreateRequest, configurations map[string]models.InstanceConfigurationInfo) *elasticsearchModel {
	if templateDefinition == nil {
		return nil
	}

	resources := templateDefinition.Resources
	if resources == nil {
		return nil
	}

	payloads := resources.Elasticsearch
	if len(payloads) == 0 {
		return nil
	}

	firstEs := payloads[0]

	if firstEs.Plan == nil {
		return nil
	}

	es := elasticsearchModel{}
	es.Autoscale = firstEs.Plan.AutoscalingEnabled
	for _, element := range firstEs.Plan.ClusterTopology {
		size := element.Size
		id := element.InstanceConfigurationID
		topology := topologyModel{
			InstanceConfigurationId:      id,
			InstanceConfigurationVersion: element.InstanceConfigurationVersion,
			DefaultSize:                  util.MemoryToStateOptional(getSizeValue(size)),
			SizeResource:                 getSizeResource(size),
			AvailableSizes:               collectAvailableSizes(configurations, id),
			Autoscaling:                  mapAutoscaling(element),
		}

		switch element.ID {
		case "hot_content":
			es.HotTier = &topology
		case "coordinating":
			es.CoordinatingTier = &topology
		case "master":
			es.MasterTier = &topology
		case "warm":
			es.WarmTier = &topology
		case "cold":
			es.ColdTier = &topology
		case "frozen":
			es.FrozenTier = &topology
		case "ml":
			es.MlTier = &topology
		}
	}
	return &es
}