@@ -14,11 +14,12 @@ import (
1414func CaCertificates () * schema.Table {
1515 tableName := "aws_iot_ca_certificates"
1616 return & schema.Table {
17- Name : tableName ,
18- Description : `https://docs.aws.amazon.com/iot/latest/apireference/API_CACertificateDescription.html` ,
19- Resolver : fetchIotCaCertificates ,
20- Transform : transformers .TransformWithStruct (& types.CACertificateDescription {}),
21- Multiplex : client .ServiceAccountRegionMultiplexer (tableName , "iot" ),
17+ Name : tableName ,
18+ Description : `https://docs.aws.amazon.com/iot/latest/apireference/API_CACertificateDescription.html` ,
19+ Resolver : fetchIotCaCertificates ,
20+ PreResourceResolver : getCaCertificate ,
21+ Transform : transformers .TransformWithStruct (& types.CACertificateDescription {}),
22+ Multiplex : client .ServiceAccountRegionMultiplexer (tableName , "iot" ),
2223 Columns : []schema.Column {
2324 client .DefaultAccountIDColumn (false ),
2425 client .DefaultRegionColumn (false ),
@@ -52,21 +53,25 @@ func fetchIotCaCertificates(ctx context.Context, meta schema.ClientMeta, parent
5253 if err != nil {
5354 return err
5455 }
55- for _ , ca := range page .Certificates {
56- // TODO: Handle resolution in parallel with PreResourceResolver
57- cert , err := svc .DescribeCACertificate (ctx , & iot.DescribeCACertificateInput {
58- CertificateId : ca .CertificateId ,
59- }, func (options * iot.Options ) {
60- options .Region = c .Region
61- })
62- if err != nil {
63- return err
64- }
65- res <- cert .CertificateDescription
66- }
56+ res <- page .Certificates
6757 }
6858 return nil
6959}
60+
61+ func getCaCertificate (ctx context.Context , meta schema.ClientMeta , resource * schema.Resource ) error {
62+ cl := meta .(* client.Client )
63+ svc := cl .Services ().Iot
64+
65+ output , err := svc .DescribeCACertificate (ctx , & iot.DescribeCACertificateInput {
66+ CertificateId : resource .Item .(types.CACertificate ).CertificateId ,
67+ })
68+ if err != nil {
69+ return err
70+ }
71+ resource .Item = output .CertificateDescription
72+ return nil
73+ }
74+
7075func ResolveIotCaCertificateCertificates (ctx context.Context , meta schema.ClientMeta , resource * schema.Resource , c schema.Column ) error {
7176 i := resource .Item .(* types.CACertificateDescription )
7277 cl := meta .(* client.Client )
0 commit comments