@@ -82,6 +82,51 @@ type deleteTagKey struct {
82
82
ID string `json:"id"`
83
83
}
84
84
85
+ // GetAssetTagsByType gets all tags applied to assets of the specified type.
86
+ //
87
+ // Note that due to a bug in the CloudControl API, when you go past the last page if results, you'll receive an UNEXPECTED_ERROR response code.
88
+ func (client * Client ) GetAssetTagsByType (assetType string , paging * Paging ) (tags * TagDetails , err error ) {
89
+ if paging == nil {
90
+ paging = DefaultPaging ()
91
+ }
92
+
93
+ organizationID , err := client .getOrganizationID ()
94
+ if err != nil {
95
+ return nil , err
96
+ }
97
+
98
+ requestURI := fmt .Sprintf ("%s/tag/tag?assetType=%s&%s" ,
99
+ url .QueryEscape (organizationID ),
100
+ url .QueryEscape (assetType ),
101
+ paging .toQueryParameters (),
102
+ )
103
+ request , err := client .newRequestV25 (requestURI , http .MethodGet , nil )
104
+ if err != nil {
105
+ return nil , err
106
+ }
107
+
108
+ responseBody , statusCode , err := client .executeRequest (request )
109
+ if err != nil {
110
+ return nil , err
111
+ }
112
+
113
+ if statusCode != http .StatusOK {
114
+ var apiResponse * APIResponseV2
115
+
116
+ apiResponse , err = readAPIResponseAsJSON (responseBody , statusCode )
117
+ if err != nil {
118
+ return nil , err
119
+ }
120
+
121
+ return nil , apiResponse .ToError ("Request failed with status code %d (%s): %s" , statusCode , apiResponse .ResponseCode , apiResponse .Message )
122
+ }
123
+
124
+ tags = & TagDetails {}
125
+ err = json .Unmarshal (responseBody , tags )
126
+
127
+ return tags , err
128
+ }
129
+
85
130
// GetAssetTags gets all tags applied to the specified asset.
86
131
//
87
132
// Note that due to a bug in the CloudControl API, when you go past the last page if results, you'll receive an UNEXPECTED_ERROR response code.
@@ -101,7 +146,7 @@ func (client *Client) GetAssetTags(assetID string, assetType string, paging *Pag
101
146
url .QueryEscape (assetType ),
102
147
paging .toQueryParameters (),
103
148
)
104
- request , err := client .newRequestV22 (requestURI , http .MethodGet , nil )
149
+ request , err := client .newRequestV25 (requestURI , http .MethodGet , nil )
105
150
if err != nil {
106
151
return nil , err
107
152
}
@@ -138,7 +183,7 @@ func (client *Client) ApplyAssetTags(assetID string, assetType string, tags ...T
138
183
requestURI := fmt .Sprintf ("%s/tag/applyTags" ,
139
184
url .QueryEscape (organizationID ),
140
185
)
141
- request , err := client .newRequestV22 (requestURI , http .MethodPost , & applyTags {
186
+ request , err := client .newRequestV25 (requestURI , http .MethodPost , & applyTags {
142
187
AssetID : assetID ,
143
188
AssetType : assetType ,
144
189
Tags : tags ,
@@ -164,7 +209,7 @@ func (client *Client) RemoveAssetTags(assetID string, assetType string, tagNames
164
209
requestURI := fmt .Sprintf ("%s/tag/removeTags" ,
165
210
url .QueryEscape (organizationID ),
166
211
)
167
- request , err := client .newRequestV22 (requestURI , http .MethodPost , & removeTags {
212
+ request , err := client .newRequestV25 (requestURI , http .MethodPost , & removeTags {
168
213
AssetID : assetID ,
169
214
AssetType : assetType ,
170
215
TagNames : tagNames ,
@@ -192,7 +237,7 @@ func (client *Client) GetTagKey(id string) (tagKey *TagKey, err error) {
192
237
url .QueryEscape (organizationID ),
193
238
url .QueryEscape (id ),
194
239
)
195
- request , err := client .newRequestV22 (requestURI , http .MethodGet , nil )
240
+ request , err := client .newRequestV25 (requestURI , http .MethodGet , nil )
196
241
if err != nil {
197
242
return nil , err
198
243
}
@@ -236,7 +281,7 @@ func (client *Client) ListTagKeys(paging *Paging) (tagKeys *TagKeys, err error)
236
281
url .QueryEscape (organizationID ),
237
282
paging .toQueryParameters (),
238
283
)
239
- request , err := client .newRequestV22 (requestURI , http .MethodGet , nil )
284
+ request , err := client .newRequestV25 (requestURI , http .MethodGet , nil )
240
285
if err != nil {
241
286
return nil , err
242
287
}
@@ -273,7 +318,7 @@ func (client *Client) CreateTagKey(name string, description string, isValueRequi
273
318
requestURI := fmt .Sprintf ("%s/tag/createTagKey" ,
274
319
url .QueryEscape (organizationID ),
275
320
)
276
- request , err := client .newRequestV22 (requestURI , http .MethodPost , & tagKey {
321
+ request , err := client .newRequestV25 (requestURI , http .MethodPost , & tagKey {
277
322
Name : name ,
278
323
Description : description ,
279
324
IsValueRequired : isValueRequired ,
@@ -311,7 +356,7 @@ func (client *Client) DeleteTagKey(id string) error {
311
356
requestURI := fmt .Sprintf ("%s/tag/deleteTagKey" ,
312
357
url .QueryEscape (organizationID ),
313
358
)
314
- request , err := client .newRequestV22 (requestURI , http .MethodPost ,
359
+ request , err := client .newRequestV25 (requestURI , http .MethodPost ,
315
360
& deleteTagKey {id },
316
361
)
317
362
responseBody , statusCode , err := client .executeRequest (request )
0 commit comments