@@ -698,27 +698,45 @@ func ConvertWorkspaceProxy(proxy database.WorkspaceProxy) WorkspaceProxy {
698698 }
699699}
700700
701+ func ConvertExternalProvisioner (id uuid.UUID , tags map [string ]string , provisioners []database.ProvisionerType ) ExternalProvisioner {
702+ tagsCopy := make (map [string ]string , len (tags ))
703+ for k , v := range tags {
704+ tagsCopy [k ] = v
705+ }
706+ strProvisioners := make ([]string , 0 , len (provisioners ))
707+ for _ , prov := range provisioners {
708+ strProvisioners = append (strProvisioners , string (prov ))
709+ }
710+ return ExternalProvisioner {
711+ ID : id .String (),
712+ Tags : tagsCopy ,
713+ Provisioners : strProvisioners ,
714+ StartedAt : time .Now (),
715+ }
716+ }
717+
701718// Snapshot represents a point-in-time anonymized database dump.
702719// Data is aggregated by latest on the server-side, so partial data
703720// can be sent without issue.
704721type Snapshot struct {
705722 DeploymentID string `json:"deployment_id"`
706723
707724 APIKeys []APIKey `json:"api_keys"`
708- ProvisionerJobs []ProvisionerJob `json:"provisioner_jobs"`
725+ CLIInvocations []clitelemetry.Invocation `json:"cli_invocations"`
726+ ExternalProvisioners []ExternalProvisioner `json:"external_provisioners"`
709727 Licenses []License `json:"licenses"`
710- Templates [] Template `json:"templates "`
728+ ProvisionerJobs [] ProvisionerJob `json:"provisioner_jobs "`
711729 TemplateVersions []TemplateVersion `json:"template_versions"`
730+ Templates []Template `json:"templates"`
712731 Users []User `json:"users"`
713- Workspaces []Workspace `json:"workspaces"`
714- WorkspaceApps []WorkspaceApp `json:"workspace_apps"`
715- WorkspaceAgents []WorkspaceAgent `json:"workspace_agents"`
716732 WorkspaceAgentStats []WorkspaceAgentStat `json:"workspace_agent_stats"`
733+ WorkspaceAgents []WorkspaceAgent `json:"workspace_agents"`
734+ WorkspaceApps []WorkspaceApp `json:"workspace_apps"`
717735 WorkspaceBuilds []WorkspaceBuild `json:"workspace_build"`
718- WorkspaceResources []WorkspaceResource `json:"workspace_resources"`
719- WorkspaceResourceMetadata []WorkspaceResourceMetadata `json:"workspace_resource_metadata"`
720736 WorkspaceProxies []WorkspaceProxy `json:"workspace_proxies"`
721- CLIInvocations []clitelemetry.Invocation `json:"cli_invocations"`
737+ WorkspaceResourceMetadata []WorkspaceResourceMetadata `json:"workspace_resource_metadata"`
738+ WorkspaceResources []WorkspaceResource `json:"workspace_resources"`
739+ Workspaces []Workspace `json:"workspaces"`
722740}
723741
724742// Deployment contains information about the host running Coder.
@@ -900,6 +918,14 @@ type WorkspaceProxy struct {
900918 UpdatedAt time.Time `json:"updated_at"`
901919}
902920
921+ type ExternalProvisioner struct {
922+ ID string `json:"id"`
923+ Tags map [string ]string `json:"tags"`
924+ Provisioners []string `json:"provisioners"`
925+ StartedAt time.Time `json:"started_at"`
926+ ShutdownAt * time.Time `json:"shutdown_at"`
927+ }
928+
903929type noopReporter struct {}
904930
905931func (* noopReporter ) Report (_ * Snapshot ) {}
0 commit comments