feat(provider): add ai_hint_level attribute to provider schema
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user