func()

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
	}
}