@@ -118,6 +118,8 @@ type IntegrationWithSummary struct {
118118 * Integration
119119 // UnresolvedUserTasks contains the count of unresolved user tasks related to this integration.
120120 UnresolvedUserTasks int `json:"unresolvedUserTasks"`
121+ // UserTasks contains the list of unresolved user tasks related to this integration.
122+ UserTasks []UserTask `json:"userTasks,omitempty"`
121123 // AWSEC2 contains the summary for the AWS EC2 resources for this integration.
122124 AWSEC2 ResourceTypeSummary `json:"awsec2"`
123125 // AWSRDS contains the summary for the AWS RDS resources and agents for this integration.
@@ -127,6 +129,10 @@ type IntegrationWithSummary struct {
127129
128130 // RolesAnywhereProfileSync contains the summary for the AWS Roles Anywhere Profile Sync.
129131 RolesAnywhereProfileSync * RolesAnywhereProfileSync `json:"rolesAnywhereProfileSync,omitempty"`
132+
133+ // IsManagedByTerraform indicates if this integration was created by Terraform.
134+ // This is set when the label "teleport.dev/iac" has the value "terraform".
135+ IsManagedByTerraform bool `json:"isManagedByTerraform"`
130136}
131137
132138// ResourceTypeSummary contains the summary of the enrollment rules and found resources by the integration.
@@ -210,6 +216,8 @@ type Integration struct {
210216 AWSRA * IntegrationAWSRASpec `json:"awsra,omitempty"`
211217 // GitHub contains the fields for `github` subkind integration.
212218 GitHub * IntegrationGitHub `json:"github,omitempty"`
219+ // IsManagedByTerraform indicates if this integration was created by Terraform.
220+ IsManagedByTerraform bool `json:"isManagedByTerraform"`
213221}
214222
215223// CheckAndSetDefaults for the create request.
@@ -349,13 +357,17 @@ func MakeIntegrations(igs []types.Integration) ([]*Integration, error) {
349357 return uiList , nil
350358}
351359
360+ const IaCTerraformLabel = "terraform"
361+
352362// MakeIntegration creates a UI Integration representation.
353363func MakeIntegration (ig types.Integration ) (* Integration , error ) {
354364 ret := & Integration {
355365 Name : ig .GetName (),
356366 SubKind : ig .GetSubKind (),
357367 }
358-
368+ if val , ok := ig .GetLabel (types .CreatedByIaCLabel ); ok && val == IaCTerraformLabel {
369+ ret .IsManagedByTerraform = true
370+ }
359371 switch ig .GetSubKind () {
360372 case types .IntegrationSubKindAWSOIDC :
361373 var s3Bucket string
0 commit comments