@@ -375,45 +375,84 @@ func dataSourceSysdigSecureCloudIngestionAssets() *schema.Resource {
375375
376376// Retrieves the information of a resource form the file and loads it in Terraform
377377func dataSourceSysdigSecureCloudIngestionAssetsRead (ctx context.Context , d * schema.ResourceData , meta interface {}) diag.Diagnostics {
378+ var assets map [string ]any
379+ var err error
380+
378381 client , err := getSecureOnboardingClient (meta .(SysdigClients ))
379382 if err != nil {
380383 return diag .FromErr (err )
381384 }
382385
383- assets , err := client .GetCloudIngestionAssetsSecure (ctx , d .Get ("cloud_provider" ).(string ), d .Get ("cloud_provider_id" ).(string ))
384- if err != nil {
385- return diag .FromErr (err )
386+ cloudProvider , ok := d .GetOk ("cloud_provider" )
387+ if ! ok {
388+ // GCP case
389+ assets , err = client .GetCloudIngestionAssetsSecure (ctx , "" , "" , "" )
390+ if err != nil {
391+ return diag .FromErr (err )
392+ }
393+ assetsGcp , _ := assets ["gcp" ].(map [string ]interface {})
394+ err = d .Set ("gcp_routing_key" , assetsGcp ["routingKey" ])
395+ if err != nil {
396+ return diag .FromErr (err )
397+ }
398+
399+ err = d .Set ("gcp_metadata" , assetsGcp ["metadata" ])
400+ if err != nil {
401+ return diag .FromErr (err )
402+ }
403+ return nil
386404 }
387405
388- assetsAws , _ := assets ["aws" ].(map [string ]interface {})
389- assetsGcp , _ := assets ["gcp" ].(map [string ]interface {})
406+ componentType , ok := d .GetOk ("component_type" )
407+ if ! ok {
408+ // AWS SNS case
409+ assets , err = client .GetCloudIngestionAssetsSecure (ctx , cloudProvider .(string ), d .Get ("cloud_provider_id" ).(string ), "" )
410+ if err != nil {
411+ return diag .FromErr (err )
412+ }
413+ assetsAws , _ := assets ["aws" ].(map [string ]interface {})
390414
391- var ingestionURL string
392- if assetsAws ["snsMetadata" ] != nil {
393- ingestionURL = assetsAws ["snsMetadata" ].(map [string ]interface {})["ingestionURL" ].(string )
394- }
415+ var ingestionURL string
416+ if assetsAws ["snsMetadata" ] != nil {
417+ ingestionURL = assetsAws ["snsMetadata" ].(map [string ]interface {})["ingestionURL" ].(string )
418+ }
395419
396- d .SetId ("cloudIngestionAssets" )
397- err = d .Set ("aws" , map [string ]interface {}{
398- "eventBusARN" : assetsAws ["eventBusARN" ],
399- "eventBusARNGov" : assetsAws ["eventBusARNGov" ],
400- "sns_routing_key" : assetsAws ["snsRoutingKey" ],
401- "sns_routing_url" : ingestionURL ,
402- })
403- if err != nil {
404- return diag .FromErr (err )
405- }
420+ d .SetId ("cloudIngestionAssets" )
421+ err = d .Set ("aws" , map [string ]interface {}{
422+ "eventBusARN" : assetsAws ["eventBusARN" ],
423+ "eventBusARNGov" : assetsAws ["eventBusARNGov" ],
424+ "sns_routing_key" : assetsAws ["snsRoutingKey" ],
425+ "sns_routing_url" : ingestionURL ,
426+ })
427+ if err != nil {
428+ return diag .FromErr (err )
429+ }
430+ } else {
431+ // AWS Api Destination case
432+ assets , err = client .GetCloudIngestionAssetsSecure (ctx , d .Get ("cloud_provider" ).(string ), d .Get ("cloud_provider_id" ).(string ), componentType .(string ))
433+ if err != nil {
434+ return diag .FromErr (err )
435+ }
406436
407- err = d .Set ("gcp_routing_key" , assetsGcp ["routingKey" ])
408- if err != nil {
409- return diag .FromErr (err )
410- }
437+ assetsAws , _ := assets ["aws" ].(map [string ]interface {})
411438
412- err = d . Set ( "gcp_metadata" , assetsGcp [ "metadata" ])
413- if err != nil {
414- return diag . FromErr ( err )
415- }
439+ var ingestionURL string
440+ if assetsAws [ "apiDestMetadata" ] != nil {
441+ ingestionURL = assetsAws [ "apiDestMetadata" ].( map [ string ] interface {})[ "ingestionURL" ].( string )
442+ }
416443
444+ d .SetId ("cloudIngestionAssets" )
445+ err = d .Set ("aws" , map [string ]interface {}{
446+ "eventBusARN" : assetsAws ["eventBusARN" ],
447+ "eventBusARNGov" : assetsAws ["eventBusARNGov" ],
448+ "api_dest_routing_key" : assetsAws ["apiDestRoutingKey" ],
449+ "api_dest_routing_url" : ingestionURL ,
450+ "api_dest_token" : assetsAws ["apiDestToken" ],
451+ })
452+ if err != nil {
453+ return diag .FromErr (err )
454+ }
455+ }
417456 return nil
418457}
419458
0 commit comments