@@ -6,12 +6,15 @@ import (
6
6
"github.com/aws/aws-sdk-go/aws"
7
7
"github.com/aws/aws-sdk-go/aws/session"
8
8
"github.com/aws/aws-sdk-go/service/servicecatalog"
9
+ "github.com/rebuy-de/aws-nuke/pkg/types"
9
10
)
10
11
11
12
type ServiceCatalogPortfolioProductAttachment struct {
12
- svc * servicecatalog.ServiceCatalog
13
- productID * string
14
- portfolioID * string
13
+ svc * servicecatalog.ServiceCatalog
14
+ productID * string
15
+ portfolioID * string
16
+ portfolioName * string
17
+ productName * string
15
18
}
16
19
17
20
func init () {
@@ -21,7 +24,7 @@ func init() {
21
24
func ListServiceCatalogPortfolioProductAttachments (sess * session.Session ) ([]Resource , error ) {
22
25
svc := servicecatalog .New (sess )
23
26
resources := []Resource {}
24
- products := [ ]* string {}
27
+ products := make ( map [ * string ]* string )
25
28
26
29
params := & servicecatalog.SearchProductsAsAdminInput {
27
30
PageSize : aws .Int64 (20 ),
@@ -35,7 +38,7 @@ func ListServiceCatalogPortfolioProductAttachments(sess *session.Session) ([]Res
35
38
}
36
39
37
40
for _ , productViewDetail := range resp .ProductViewDetails {
38
- products = append ( products , productViewDetail .ProductViewSummary .ProductId )
41
+ products [ productViewDetail . ProductViewSummary . ProductId ] = productViewDetail .ProductViewSummary .Name
39
42
}
40
43
41
44
if resp .NextPageToken == nil {
@@ -49,9 +52,9 @@ func ListServiceCatalogPortfolioProductAttachments(sess *session.Session) ([]Res
49
52
PageSize : aws .Int64 (20 ),
50
53
}
51
54
52
- for _ , product := range products {
55
+ for productID , productName := range products {
53
56
54
- portfolioParams .ProductId = product
57
+ portfolioParams .ProductId = productID
55
58
56
59
resp , err := svc .ListPortfoliosForProduct (portfolioParams )
57
60
if err != nil {
@@ -60,9 +63,11 @@ func ListServiceCatalogPortfolioProductAttachments(sess *session.Session) ([]Res
60
63
61
64
for _ , portfolioDetail := range resp .PortfolioDetails {
62
65
resources = append (resources , & ServiceCatalogPortfolioProductAttachment {
63
- svc : svc ,
64
- productID : product ,
65
- portfolioID : portfolioDetail .Id ,
66
+ svc : svc ,
67
+ productID : productID ,
68
+ portfolioID : portfolioDetail .Id ,
69
+ portfolioName : portfolioDetail .DisplayName ,
70
+ productName : productName ,
66
71
})
67
72
}
68
73
@@ -86,6 +91,15 @@ func (f *ServiceCatalogPortfolioProductAttachment) Remove() error {
86
91
return err
87
92
}
88
93
94
+ func (f * ServiceCatalogPortfolioProductAttachment ) Properties () types.Properties {
95
+ properties := types .NewProperties ()
96
+ properties .Set ("PortfolioID" , f .portfolioID )
97
+ properties .Set ("PortfolioName" , f .portfolioName )
98
+ properties .Set ("ProductID" , f .productID )
99
+ properties .Set ("ProductName" , f .productName )
100
+ return properties
101
+ }
102
+
89
103
func (f * ServiceCatalogPortfolioProductAttachment ) String () string {
90
104
return fmt .Sprintf ("%s -> %s" , * f .productID , * f .portfolioID )
91
105
}
0 commit comments