@@ -26,6 +26,7 @@ import (
2626clitelemetry"github.com/coder/coder/v2/cli/telemetry"
2727"github.com/coder/coder/v2/coderd/database"
2828"github.com/coder/coder/v2/coderd/database/dbtime"
29+ "github.com/coder/coder/v2/codersdk"
2930)
3031
3132const (
@@ -663,6 +664,24 @@ func ConvertTemplate(dbTemplate database.Template) Template {
663664ActiveVersionID :dbTemplate .ActiveVersionID ,
664665Name :dbTemplate .Name ,
665666Description :dbTemplate .Description != "" ,
667+
668+ // Some of these fields are meant to be accessed using a specialized
669+ // interface (for entitlement purposes), but for telemetry purposes
670+ // there's minimal harm accessing them directly.
671+ UseMaxTTL :dbTemplate .UseMaxTtl ,
672+ MaxTTLMillis :time .Duration (dbTemplate .MaxTTL ).Milliseconds (),
673+ DefaultTTLMillis :time .Duration (dbTemplate .DefaultTTL ).Milliseconds (),
674+ AllowUserCancelWorkspaceJobs :dbTemplate .AllowUserCancelWorkspaceJobs ,
675+ AllowUserAutostart :dbTemplate .AllowUserAutostart ,
676+ AllowUserAutostop :dbTemplate .AllowUserAutostop ,
677+ FailureTTLMillis :time .Duration (dbTemplate .FailureTTL ).Milliseconds (),
678+ TimeTilDormantMillis :time .Duration (dbTemplate .TimeTilDormant ).Milliseconds (),
679+ TimeTilDormantAutoDeleteMillis :time .Duration (dbTemplate .TimeTilDormantAutoDelete ).Milliseconds (),
680+ AutostopRequirementDaysOfWeek :codersdk .BitmapToWeekdays (uint8 (dbTemplate .AutostopRequirementDaysOfWeek )),
681+ AutostopRequirementWeeks :dbTemplate .AutostopRequirementWeeks ,
682+ AutostartAllowedDays :codersdk .BitmapToWeekdays (dbTemplate .AutostartAllowedDays ()),
683+ RequireActiveVersion :dbTemplate .RequireActiveVersion ,
684+ Deprecated :dbTemplate .Deprecated != "" ,
666685}
667686}
668687
@@ -883,6 +902,21 @@ type Template struct {
883902ActiveVersionID uuid.UUID `json:"active_version_id"`
884903Name string `json:"name"`
885904Description bool `json:"description"`
905+
906+ UseMaxTTL bool `json:"use_max_ttl"`
907+ MaxTTLMillis int64 `json:"max_ttl_ms"`
908+ DefaultTTLMillis int64 `json:"default_ttl_ms"`
909+ AllowUserCancelWorkspaceJobs bool `json:"allow_user_cancel_workspace_jobs"`
910+ AllowUserAutostart bool `json:"allow_user_autostart"`
911+ AllowUserAutostop bool `json:"allow_user_autostop"`
912+ FailureTTLMillis int64 `json:"failure_ttl_ms"`
913+ TimeTilDormantMillis int64 `json:"time_til_dormant_ms"`
914+ TimeTilDormantAutoDeleteMillis int64 `json:"time_til_dormant_auto_delete_ms"`
915+ AutostopRequirementDaysOfWeek []string `json:"autostop_requirement_days_of_week"`
916+ AutostopRequirementWeeks int64 `json:"autostop_requirement_weeks"`
917+ AutostartAllowedDays []string `json:"autostart_allowed_days"`
918+ RequireActiveVersion bool `json:"require_active_version"`
919+ Deprecated bool `json:"deprecated"`
886920}
887921
888922type TemplateVersion struct {