diff --git a/TOOLS/resource-generator/internal/templates/instance.go b/TOOLS/resource-generator/internal/templates/instance.go index 654a0e1..3220c0e 100644 --- a/TOOLS/resource-generator/internal/templates/instance.go +++ b/TOOLS/resource-generator/internal/templates/instance.go @@ -150,7 +150,9 @@ func (r *{{ToCamel .Name}}Resource) ModifyPlan(ctx context.Context, req resource if resp.Diagnostics.HasError() { return } - if req.State.Raw.IsNull() && req.Plan.Raw.IsNull() { + // Destroy-план (plan == null): create-time проверку «уже существует / adopt» + // запускать нельзя — удаление не валидируется через существование инстанса. + if req.Plan.Raw.IsNull() { return } @@ -220,7 +222,7 @@ func (r *{{ToCamel .Name}}Resource) ModifyPlan(ctx context.Context, req resource adoptExistingOnCreate = config.AdoptExistingOnCreate.ValueBool() } {{- if .HasRefSvcParams }} - {{- range .SchemaParams }} + {{- range .CreateParams }} {{- if and (gt .RefSvcId 0) (eq (ParamType .) "types.String") }} // refSvc-поле резолвим только для API-запроса. // config не перезаписываем: пользовательский display name или UUID должен @@ -280,7 +282,7 @@ func (r *{{ToCamel .Name}}Resource) Create(ctx context.Context, req resource.Cre {{- end }} {{- end }} {{- if .HasRefSvcParams }} - {{- range .SchemaParams }} + {{- range .CreateParams }} {{- if and (gt .RefSvcId 0) (eq (ParamType .) "types.String") }} // refSvc-поле резолвим только для API-запроса. // config не перезаписываем: пользовательский display name или UUID должен @@ -315,9 +317,13 @@ func (r *{{ToCamel .Name}}Resource) Create(ctx context.Context, req resource.Cre params := map[int]string{ {{- range .CreateParams }} {{- if not (IsNested .) }} + {{- if and (gt .RefSvcId 0) (eq (ParamType .) "types.String") }} + {{.ID}}: resolved{{ToCamel .Code}}, + {{- else }} {{.ID}}: {{ParamFormat . (printf "data.%s" (ToCamel .Code))}}, {{- end }} {{- end }} + {{- end }} } {{- range .CreateParams }} {{- if (IsNested .) }} diff --git a/TOOLS/resource-generator/internal/templates/subresource.go b/TOOLS/resource-generator/internal/templates/subresource.go index 497fd25..160dfe3 100644 --- a/TOOLS/resource-generator/internal/templates/subresource.go +++ b/TOOLS/resource-generator/internal/templates/subresource.go @@ -99,7 +99,7 @@ func (r *{{ToCamel (printf "%s_%s" .ServiceName .SubName)}}Resource) Create(ctx {{- end }} {{- end }} {{- if .HasRefSvcParams }} - {{- range .SchemaParams }} + {{- range .CreateParams }} {{- if and (gt .RefSvcId 0) (eq (ParamType .) "types.String") }} // Подресурсный refSvc-параметр резолвим только в локальную переменную. // Сам plan не трогаем: UUID нужен лишь для backend-вызова, а в state @@ -253,7 +253,7 @@ func (r *{{ToCamel (printf "%s_%s" .ServiceName .SubName)}}Resource) Update(ctx return } {{- if .HasRefSvcParams }} - {{- range .SchemaParams }} + {{- range .ModifyParams }} {{- if and (gt .RefSvcId 0) (eq (ParamType .) "types.String") }} // Update для подресурса следует тому же правилу, что и Create: // резолвим значение только в локальную переменную и не мутируем plan.