From 582b589e38fc0c16fd410a8ef5c603b96d2779e1 Mon Sep 17 00:00:00 2001 From: Naeel Date: Thu, 12 Mar 2026 08:35:07 +0300 Subject: [PATCH] feat(provider): add ai_hint_level attribute to provider schema --- .../provider/internal/provider/provider.go | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/terraform/provider/internal/provider/provider.go b/terraform/provider/internal/provider/provider.go index 1238903..373f33f 100644 --- a/terraform/provider/internal/provider/provider.go +++ b/terraform/provider/internal/provider/provider.go @@ -22,6 +22,7 @@ import ( "context" "fmt" "os" + "strconv" "strings" "terraform-provider-sless/internal/client" @@ -45,6 +46,7 @@ type SlessProviderModel struct { Endpoint types.String `tfsdk:"endpoint"` Token types.String `tfsdk:"token"` NubesEndpoint types.String `tfsdk:"nubes_endpoint"` + AIHintLevel types.Int64 `tfsdk:"ai_hint_level"` } // New возвращает фабрику провайдера — точная копия паттерна nubes. @@ -75,6 +77,10 @@ func (p *SlessProvider) Schema(_ context.Context, _ provider.SchemaRequest, resp MarkdownDescription: "URL nubes API для валидации токена (env: NUBES_ENDPOINT). Опционально. Пример: https://deck-api.ngcloud.ru/api/v1", Optional: true, }, + "ai_hint_level": schema.Int64Attribute{ + MarkdownDescription: "Уровень AI-анализа terraform plan: 0=off, 1=syntax, 2=basic, 3=moderate, 4=detailed, 5=full. По умолчанию 0 (выключен).", + Optional: true, + }, }, } } @@ -160,6 +166,20 @@ func (p *SlessProvider) Configure(ctx context.Context, req provider.ConfigureReq } } + // --- 7. Экспортируем ai_hint_level в env AI_HINT_LEVEL для sless-plan --- + // sless-plan читает AI_HINT_LEVEL при запуске — так уровень из provider "sless" подхватывается автоматически. + // Если атрибут не задан — уровень 0 (AI выключен), env не выставляется. + if !config.AIHintLevel.IsNull() { + level := int(config.AIHintLevel.ValueInt64()) + if level < 0 { + level = 0 + } + if level > 5 { + level = 5 + } + os.Setenv("AI_HINT_LEVEL", strconv.Itoa(level)) + } + resp.ResourceData = c resp.DataSourceData = c }