@@ -94,7 +94,14 @@ func initAwsAutoscalingGroup(runtime *plugin.Runtime, args map[string]*llx.RawDa
9494 for _ , zone := range group .AvailabilityZones {
9595 availabilityZones = append (availabilityZones , zone )
9696 }
97- args ["arn" ] = llx .StringDataPtr (group .AutoScalingGroupARN )
97+
98+ groupArn := convert .ToValue (group .AutoScalingGroupARN )
99+ tagSpecs , err := createTagSpecifications (runtime , group .Tags , groupArn )
100+ if err != nil {
101+ return nil , nil , err
102+ }
103+
104+ args ["arn" ] = llx .StringData (groupArn )
98105 args ["availabilityZones" ] = llx .ArrayData (availabilityZones , types .String )
99106 args ["capacityRebalance" ] = llx .BoolDataPtr (group .CapacityRebalance )
100107 args ["createdAt" ] = llx .TimeDataPtr (group .CreatedTime )
@@ -111,7 +118,8 @@ func initAwsAutoscalingGroup(runtime *plugin.Runtime, args map[string]*llx.RawDa
111118 args ["name" ] = llx .StringDataPtr (group .AutoScalingGroupName )
112119 args ["region" ] = llx .StringData (region )
113120 args ["tags" ] = llx .MapData (autoscalingTagsToMap (group .Tags ), types .String )
114- mqlGroup , err := CreateResource (runtime , "aws.autoscaling.group" , args )
121+ args ["tagSpecifications" ] = llx .ArrayData (tagSpecs , types .Resource (ResourceAwsAutoscalingGroupTag ))
122+ mqlGroup , err := CreateResource (runtime , ResourceAwsAutoscalingGroup , args )
115123 if err != nil {
116124 return args , nil , err
117125 }
@@ -156,9 +164,15 @@ func (a *mqlAwsAutoscaling) getGroups(conn *connection.AwsConnection) []*jobpool
156164 availabilityZones = append (availabilityZones , zone )
157165 }
158166
159- mqlGroup , err := CreateResource (a .MqlRuntime , "aws.autoscaling.group" ,
167+ groupArn := convert .ToValue (group .AutoScalingGroupARN )
168+ tagSpecs , err := createTagSpecifications (a .MqlRuntime , group .Tags , groupArn )
169+ if err != nil {
170+ return nil , err
171+ }
172+
173+ mqlGroup , err := CreateResource (a .MqlRuntime , ResourceAwsAutoscalingGroup ,
160174 map [string ]* llx.RawData {
161- "arn" : llx .StringDataPtr ( group . AutoScalingGroupARN ),
175+ "arn" : llx .StringData ( groupArn ),
162176 "availabilityZones" : llx .ArrayData (availabilityZones , types .String ),
163177 "capacityRebalance" : llx .BoolDataPtr (group .CapacityRebalance ),
164178 "createdAt" : llx .TimeDataPtr (group .CreatedTime ),
@@ -175,6 +189,7 @@ func (a *mqlAwsAutoscaling) getGroups(conn *connection.AwsConnection) []*jobpool
175189 "name" : llx .StringDataPtr (group .AutoScalingGroupName ),
176190 "region" : llx .StringData (region ),
177191 "tags" : llx .MapData (autoscalingTagsToMap (group .Tags ), types .String ),
192+ "tagSpecifications" : llx .ArrayData (tagSpecs , types .Resource (ResourceAwsAutoscalingGroupTag )),
178193 })
179194 if err != nil {
180195 return nil , err
@@ -201,3 +216,28 @@ func autoscalingTagsToMap(tags []ec2types.TagDescription) map[string]any {
201216
202217 return tagsMap
203218}
219+
220+ func createTagSpecifications (runtime * plugin.Runtime , tags []ec2types.TagDescription , groupArn string ) ([]any , error ) {
221+ tagSpecs := make ([]any , 0 , len (tags ))
222+
223+ for _ , tag := range tags {
224+ key := convert .ToValue (tag .Key )
225+ tagId := fmt .Sprintf ("%s/tag/%s" , groupArn , key )
226+
227+ mqlTag , err := CreateResource (runtime , ResourceAwsAutoscalingGroupTag ,
228+ map [string ]* llx.RawData {
229+ "__id" : llx .StringData (tagId ),
230+ "key" : llx .StringData (key ),
231+ "value" : llx .StringData (convert .ToValue (tag .Value )),
232+ "propagateAtLaunch" : llx .BoolDataPtr (tag .PropagateAtLaunch ),
233+ "resourceId" : llx .StringData (convert .ToValue (tag .ResourceId )),
234+ "resourceType" : llx .StringData (convert .ToValue (tag .ResourceType )),
235+ })
236+ if err != nil {
237+ return nil , err
238+ }
239+ tagSpecs = append (tagSpecs , mqlTag )
240+ }
241+
242+ return tagSpecs , nil
243+ }
0 commit comments