func newCreatePayload()

in cmd/deployment/create.go [134:171]


func newCreatePayload(cmd *cobra.Command, version, region string) (*models.DeploymentCreateRequest, error) {
	file, _ := cmd.Flags().GetString("file")
	dt, _ := cmd.Flags().GetString("deployment-template")
	var payload models.DeploymentCreateRequest
	if file != "" {
		if err := sdkcmdutil.DecodeDefinition(cmd, "file", &payload); err != nil {
			merr := multierror.NewPrefixed("failed reading the file definition")
			return nil, merr.Append(err,
				errors.New("could not read the specified file, please make sure it exists"),
			)
		}
		return &payload, nil
	}

	if dt == "" {
		dt = setDefaultTemplate(region)
		fmt.Fprintf(cmd.ErrOrStderr(), "--deployment-template not set, using %s", dt)
	}
	tpl, err := deptemplateapi.Get(deptemplateapi.GetParams{
		API:          ecctl.Get().API,
		TemplateID:   dt,
		Region:       region,
		StackVersion: version,
	})
	if err != nil {
		return nil, err
	}

	if es := tpl.DeploymentTemplate.Resources.Elasticsearch; len(es) > 0 {
		if es[0].Plan.DeploymentTemplate == nil {
			es[0].Plan.DeploymentTemplate = &models.DeploymentTemplateReference{}
		}

		es[0].Plan.DeploymentTemplate.ID = &dt
	}

	return removeApmForVersions8(version, tpl.DeploymentTemplate)
}