in teamcity/versioned_settings.go [68:119]
func (r *versionedSettingsResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {
var plan models.VersionedSettingsModel
diags := req.Plan.Get(ctx, &plan)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}
root := plan.VcsRoot.ValueString()
format := "kotlin"
editing := plan.AllowUIEditing.ValueBool()
secureValuesOutsideVcs := true
buildSettings := plan.Settings.ValueString()
showChanges := plan.ShowChanges.ValueBool()
decision := "importFromVCS"
settings := models.VersionedSettingsJson{
SynchronizationMode: "enabled",
VcsRootId: &root,
Format: &format,
AllowUIEditing: &editing,
StoreSecureValuesOutsideVcs: &secureValuesOutsideVcs,
BuildSettingsMode: &buildSettings,
ShowSettingsChanges: &showChanges,
ImportDecision: &decision,
}
projectId := plan.ProjectId.ValueString()
result, err := r.client.SetVersionedSettings(projectId, settings)
if err != nil {
resp.Diagnostics.AddError(
"Error setting versioned settings",
err.Error(),
)
return
}
newState, err := r.readState(*result)
if err != nil {
resp.Diagnostics.AddError(
"Error reading versioned settings",
err.Error(),
)
return
}
newState.ProjectId = plan.ProjectId
diags = resp.State.Set(ctx, *newState)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}
}