From 0467af84c8e63645f2dad63a7af9038792865506 Mon Sep 17 00:00:00 2001 From: Stefano Roberto Mollica Date: Thu, 12 Feb 2026 11:03:26 +0100 Subject: [PATCH 1/2] feat(GlobalTagging): add message field to TagResultsItem Add message field to TagResultsItem interface to expose detailed error messages from the GhoST Tags API. Changes: - Added message field to TagResultsItem interface Related: ghost-for-resources swagger PR (merged) Signed-off-by: Stefano Roberto Mollica --- global-tagging/v1.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/global-tagging/v1.ts b/global-tagging/v1.ts index 914eba0..a4a8ed5 100644 --- a/global-tagging/v1.ts +++ b/global-tagging/v1.ts @@ -1137,6 +1137,8 @@ namespace GlobalTaggingV1 { resource_id: string; /** It is `true` if the operation exits with an error. */ is_error?: boolean; + /** Error message returned when the operation fails. */ + message?: string; } } From 762f878b9b16396f4ca42aa86d56415b3f4d8f7d Mon Sep 17 00:00:00 2001 From: Stefano Roberto Mollica Date: Mon, 16 Feb 2026 10:33:20 +0100 Subject: [PATCH 2/2] feat(Tagging): added error message in case of failures --- global-tagging/v1.ts | 88 ++++------------------------- test/unit/global-tagging.v1.test.js | 2 +- 2 files changed, 13 insertions(+), 77 deletions(-) diff --git a/global-tagging/v1.ts b/global-tagging/v1.ts index a4a8ed5..df1421f 100644 --- a/global-tagging/v1.ts +++ b/global-tagging/v1.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2025. + * (C) Copyright IBM Corp. 2026. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,7 +15,7 @@ */ /** - * IBM OpenAPI SDK Code Generator Version: 3.105.0-3c13b041-20250605-193116 + * IBM OpenAPI SDK Code Generator Version: 3.111.0-1bfb72c2-20260206-185521 */ import * as extend from 'extend'; @@ -152,22 +152,7 @@ class GlobalTaggingV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = []; - const _validParams = [ - 'xRequestId', - 'xCorrelationId', - 'accountId', - 'tagType', - 'fullData', - 'providers', - 'attachedTo', - 'offset', - 'limit', - 'timeout', - 'orderByName', - 'attachedOnly', - 'signal', - 'headers', - ]; + const _validParams = ['xRequestId', 'xCorrelationId', 'accountId', 'tagType', 'fullData', 'providers', 'attachedTo', 'offset', 'limit', 'timeout', 'orderByName', 'attachedOnly', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -245,15 +230,7 @@ class GlobalTaggingV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = ['tagNames']; - const _validParams = [ - 'tagNames', - 'xRequestId', - 'xCorrelationId', - 'accountId', - 'tagType', - 'signal', - 'headers', - ]; + const _validParams = ['tagNames', 'xRequestId', 'xCorrelationId', 'accountId', 'tagType', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -329,15 +306,7 @@ class GlobalTaggingV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = []; - const _validParams = [ - 'xRequestId', - 'xCorrelationId', - 'providers', - 'accountId', - 'tagType', - 'signal', - 'headers', - ]; + const _validParams = ['xRequestId', 'xCorrelationId', 'providers', 'accountId', 'tagType', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -410,16 +379,7 @@ class GlobalTaggingV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = ['tagName']; - const _validParams = [ - 'tagName', - 'xRequestId', - 'xCorrelationId', - 'providers', - 'accountId', - 'tagType', - 'signal', - 'headers', - ]; + const _validParams = ['tagName', 'xRequestId', 'xCorrelationId', 'providers', 'accountId', 'tagType', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -507,20 +467,7 @@ class GlobalTaggingV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = []; - const _validParams = [ - 'tagName', - 'tagNames', - 'resources', - 'query', - 'xRequestId', - 'xCorrelationId', - 'accountId', - 'tagType', - 'replace', - 'update', - 'signal', - 'headers', - ]; + const _validParams = ['tagName', 'tagNames', 'resources', 'query', 'xRequestId', 'xCorrelationId', 'accountId', 'tagType', 'replace', 'update', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -604,18 +551,7 @@ class GlobalTaggingV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = []; - const _validParams = [ - 'tagName', - 'tagNames', - 'resources', - 'query', - 'xRequestId', - 'xCorrelationId', - 'accountId', - 'tagType', - 'signal', - 'headers', - ]; + const _validParams = ['tagName', 'tagNames', 'resources', 'query', 'xRequestId', 'xCorrelationId', 'accountId', 'tagType', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -693,10 +629,10 @@ namespace GlobalTaggingV1 { * request interfaces ************************/ - interface DefaultParams { - headers?: OutgoingHttpHeaders; - signal?: AbortSignal; - } + interface DefaultParams { + headers?: OutgoingHttpHeaders; + signal?: AbortSignal; + } /** Parameters for the `listTags` operation. */ export interface ListTagsParams extends DefaultParams { diff --git a/test/unit/global-tagging.v1.test.js b/test/unit/global-tagging.v1.test.js index c8a40e9..576dbc9 100644 --- a/test/unit/global-tagging.v1.test.js +++ b/test/unit/global-tagging.v1.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2025. + * (C) Copyright IBM Corp. 2026. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.