From 10c1ff96d2ead6d9bdec33c97da5f80f12b1ba4c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 13 Jan 2026 07:40:43 +0000 Subject: [PATCH 1/7] chore(release): 0.81.0 [skip ci] # [0.81.0](https://github.com/IBM/platform-services-node-sdk/compare/v0.80.0...v0.81.0) (2026-01-13) ### Features * **IAM Identity:** add apikey expiration ([#322](https://github.com/IBM/platform-services-node-sdk/issues/322)) ([a3a4812](https://github.com/IBM/platform-services-node-sdk/commit/a3a4812a57d80648a4aafc45401011abc42ae58f)) Signed-off-by: Stefano Roberto Mollica --- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9a02f7..3b41c65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [0.81.0](https://github.com/IBM/platform-services-node-sdk/compare/v0.80.0...v0.81.0) (2026-01-13) + + +### Features + +* **IAM Identity:** add apikey expiration ([#322](https://github.com/IBM/platform-services-node-sdk/issues/322)) ([a3a4812](https://github.com/IBM/platform-services-node-sdk/commit/a3a4812a57d80648a4aafc45401011abc42ae58f)) + # [0.80.0](https://github.com/IBM/platform-services-node-sdk/compare/v0.79.1...v0.80.0) (2025-12-10) diff --git a/package-lock.json b/package-lock.json index 823a761..79da4a4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ibm-cloud/platform-services", - "version": "0.80.0", + "version": "0.81.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ibm-cloud/platform-services", - "version": "0.80.0", + "version": "0.81.0", "license": "Apache-2.0", "dependencies": { "@types/node": "^18.19.80", diff --git a/package.json b/package.json index 95695d3..44886d7 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ibm-cloud/platform-services", - "version": "0.80.0", + "version": "0.81.0", "description": "Node.js client library for IBM Cloud Platform Services", "repository": { "type": "git", From 9c57ea8f7eb28c796ddbb1a2f7f2b863b45590e2 Mon Sep 17 00:00:00 2001 From: Dylan Yu Date: Thu, 15 Jan 2026 11:27:11 -0600 Subject: [PATCH 2/7] fix(Context-Based Restrictions): add display name to service ref response (#321) Signed-off-by: Dylan Signed-off-by: Stefano Roberto Mollica --- context-based-restrictions/v1.ts | 247 +++++++++++++----- .../context-based-restrictions.v1.test.js | 2 +- .../context-based-restrictions.v1.test.js | 2 +- 3 files changed, 180 insertions(+), 71 deletions(-) diff --git a/context-based-restrictions/v1.ts b/context-based-restrictions/v1.ts index 8f39b15..d2f1255 100644 --- a/context-based-restrictions/v1.ts +++ b/context-based-restrictions/v1.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2024. + * (C) Copyright IBM Corp. 2025. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,12 +15,13 @@ */ /** - * IBM OpenAPI SDK Code Generator Version: 3.86.0-bc6f14b3-20240221-193958 + * IBM OpenAPI SDK Code Generator Version: 3.108.0-56772134-20251111-102802 */ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; import { + AbortSignal, Authenticator, BaseService, UserOptions, @@ -135,6 +136,7 @@ class ContextBasedRestrictionsV1 extends BaseService { 'excluded', 'xCorrelationId', 'transactionId', + 'signal', 'headers', ]; const _validationErrors = validateParams(_params, _requiredParams, _validParams); @@ -166,6 +168,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'Content-Type': 'application/json', @@ -174,6 +177,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -212,6 +218,7 @@ class ContextBasedRestrictionsV1 extends BaseService { 'transactionId', 'name', 'sort', + 'signal', 'headers', ]; const _validationErrors = validateParams(_params, _requiredParams, _validParams); @@ -241,6 +248,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'X-Correlation-Id': _params.xCorrelationId, @@ -248,6 +256,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -277,7 +288,7 @@ class ContextBasedRestrictionsV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = ['zoneId']; - const _validParams = ['zoneId', 'xCorrelationId', 'transactionId', 'headers']; + const _validParams = ['zoneId', 'xCorrelationId', 'transactionId', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -303,6 +314,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'X-Correlation-Id': _params.xCorrelationId, @@ -310,6 +322,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -358,6 +373,7 @@ class ContextBasedRestrictionsV1 extends BaseService { 'excluded', 'xCorrelationId', 'transactionId', + 'signal', 'headers', ]; const _validationErrors = validateParams(_params, _requiredParams, _validParams); @@ -394,6 +410,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'Content-Type': 'application/json', @@ -403,6 +420,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -432,7 +452,7 @@ class ContextBasedRestrictionsV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = ['zoneId']; - const _validParams = ['zoneId', 'xCorrelationId', 'transactionId', 'headers']; + const _validParams = ['zoneId', 'xCorrelationId', 'transactionId', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -458,12 +478,16 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'X-Correlation-Id': _params.xCorrelationId, 'Transaction-Id': _params.transactionId, }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -493,7 +517,7 @@ class ContextBasedRestrictionsV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = []; - const _validParams = ['xCorrelationId', 'transactionId', 'type', 'headers']; + const _validParams = ['xCorrelationId', 'transactionId', 'type', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -519,6 +543,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'X-Correlation-Id': _params.xCorrelationId, @@ -526,6 +551,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -555,7 +583,7 @@ class ContextBasedRestrictionsV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = ['serviceName']; - const _validParams = ['serviceName', 'xCorrelationId', 'transactionId', 'headers']; + const _validParams = ['serviceName', 'xCorrelationId', 'transactionId', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -581,6 +609,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'X-Correlation-Id': _params.xCorrelationId, @@ -588,6 +617,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -635,6 +667,7 @@ class ContextBasedRestrictionsV1 extends BaseService { 'enforcementMode', 'xCorrelationId', 'transactionId', + 'signal', 'headers', ]; const _validationErrors = validateParams(_params, _requiredParams, _validParams); @@ -666,6 +699,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'Content-Type': 'application/json', @@ -674,6 +708,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -728,6 +765,7 @@ class ContextBasedRestrictionsV1 extends BaseService { 'zoneId', 'sort', 'enforcementMode', + 'signal', 'headers', ]; const _validationErrors = validateParams(_params, _requiredParams, _validParams); @@ -765,6 +803,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'X-Correlation-Id': _params.xCorrelationId, @@ -772,6 +811,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -801,7 +843,7 @@ class ContextBasedRestrictionsV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = ['ruleId']; - const _validParams = ['ruleId', 'xCorrelationId', 'transactionId', 'headers']; + const _validParams = ['ruleId', 'xCorrelationId', 'transactionId', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -827,6 +869,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'X-Correlation-Id': _params.xCorrelationId, @@ -834,6 +877,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -884,6 +930,7 @@ class ContextBasedRestrictionsV1 extends BaseService { 'enforcementMode', 'xCorrelationId', 'transactionId', + 'signal', 'headers', ]; const _validationErrors = validateParams(_params, _requiredParams, _validParams); @@ -920,6 +967,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'Content-Type': 'application/json', @@ -929,6 +977,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -958,7 +1009,7 @@ class ContextBasedRestrictionsV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = ['ruleId']; - const _validParams = ['ruleId', 'xCorrelationId', 'transactionId', 'headers']; + const _validParams = ['ruleId', 'xCorrelationId', 'transactionId', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -984,12 +1035,16 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'X-Correlation-Id': _params.xCorrelationId, 'Transaction-Id': _params.transactionId, }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -1022,7 +1077,7 @@ class ContextBasedRestrictionsV1 extends BaseService { ): Promise> { const _params = { ...params }; const _requiredParams = ['accountId']; - const _validParams = ['accountId', 'xCorrelationId', 'transactionId', 'headers']; + const _validParams = ['accountId', 'xCorrelationId', 'transactionId', 'signal', 'headers']; const _validationErrors = validateParams(_params, _requiredParams, _validParams); if (_validationErrors) { return Promise.reject(_validationErrors); @@ -1048,6 +1103,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'X-Correlation-Id': _params.xCorrelationId, @@ -1055,6 +1111,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -1095,6 +1154,7 @@ class ContextBasedRestrictionsV1 extends BaseService { 'serviceName', 'serviceGroupId', 'resourceType', + 'signal', 'headers', ]; const _validationErrors = validateParams(_params, _requiredParams, _validParams); @@ -1124,6 +1184,7 @@ class ContextBasedRestrictionsV1 extends BaseService { headers: extend( true, sdkHeaders, + this.baseOptions.headers, { 'Accept': 'application/json', 'X-Correlation-Id': _params.xCorrelationId, @@ -1131,6 +1192,9 @@ class ContextBasedRestrictionsV1 extends BaseService { }, _params.headers ), + axiosOptions: { + signal: _params.signal, + }, }), }; @@ -1166,8 +1230,13 @@ namespace ContextBasedRestrictionsV1 { * request interfaces ************************/ + interface DefaultParams { + headers?: OutgoingHttpHeaders; + signal?: AbortSignal; + } + /** Parameters for the `createZone` operation. */ - export interface CreateZoneParams { + export interface CreateZoneParams extends DefaultParams { /** The name of the zone. */ name?: string; /** The id of the account owning this zone. */ @@ -1191,11 +1260,10 @@ namespace ContextBasedRestrictionsV1 { * `Transaction-Id`. */ transactionId?: string; - headers?: OutgoingHttpHeaders; } /** Parameters for the `listZones` operation. */ - export interface ListZonesParams { + export interface ListZonesParams extends DefaultParams { /** The ID of the managing account. */ accountId: string; /** The supplied or generated value of this header is logged for a request and repeated in a response header for @@ -1215,11 +1283,10 @@ namespace ContextBasedRestrictionsV1 { * [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting). */ sort?: string; - headers?: OutgoingHttpHeaders; } /** Parameters for the `getZone` operation. */ - export interface GetZoneParams { + export interface GetZoneParams extends DefaultParams { /** The ID of a zone. */ zoneId: string; /** The supplied or generated value of this header is logged for a request and repeated in a response header for @@ -1233,11 +1300,10 @@ namespace ContextBasedRestrictionsV1 { * `Transaction-Id`. */ transactionId?: string; - headers?: OutgoingHttpHeaders; } /** Parameters for the `replaceZone` operation. */ - export interface ReplaceZoneParams { + export interface ReplaceZoneParams extends DefaultParams { /** The ID of a zone. */ zoneId: string; /** The current revision of the resource being updated. This can be found in the Create/Get/Update resource @@ -1267,11 +1333,10 @@ namespace ContextBasedRestrictionsV1 { * `Transaction-Id`. */ transactionId?: string; - headers?: OutgoingHttpHeaders; } /** Parameters for the `deleteZone` operation. */ - export interface DeleteZoneParams { + export interface DeleteZoneParams extends DefaultParams { /** The ID of a zone. */ zoneId: string; /** The supplied or generated value of this header is logged for a request and repeated in a response header for @@ -1285,11 +1350,10 @@ namespace ContextBasedRestrictionsV1 { * `Transaction-Id`. */ transactionId?: string; - headers?: OutgoingHttpHeaders; } /** Parameters for the `listAvailableServicerefTargets` operation. */ - export interface ListAvailableServicerefTargetsParams { + export interface ListAvailableServicerefTargetsParams extends DefaultParams { /** The supplied or generated value of this header is logged for a request and repeated in a response header for * the corresponding response. The same value is used for downstream requests and retries of those requests. If a * value of this headers is not supplied in a request, the service generates a random (version 4) UUID. @@ -1303,7 +1367,6 @@ namespace ContextBasedRestrictionsV1 { transactionId?: string; /** Specifies the types of services to retrieve. */ type?: ListAvailableServicerefTargetsConstants.Type | string; - headers?: OutgoingHttpHeaders; } /** Constants for the `listAvailableServicerefTargets` operation. */ @@ -1316,7 +1379,7 @@ namespace ContextBasedRestrictionsV1 { } /** Parameters for the `getServicerefTarget` operation. */ - export interface GetServicerefTargetParams { + export interface GetServicerefTargetParams extends DefaultParams { /** The name of a service. */ serviceName: string; /** The supplied or generated value of this header is logged for a request and repeated in a response header for @@ -1330,11 +1393,10 @@ namespace ContextBasedRestrictionsV1 { * `Transaction-Id`. */ transactionId?: string; - headers?: OutgoingHttpHeaders; } /** Parameters for the `createRule` operation. */ - export interface CreateRuleParams { + export interface CreateRuleParams extends DefaultParams { /** The contexts this rule applies to. */ contexts?: RuleContext[]; /** The resources this rule apply to. */ @@ -1360,7 +1422,6 @@ namespace ContextBasedRestrictionsV1 { * `Transaction-Id`. */ transactionId?: string; - headers?: OutgoingHttpHeaders; } /** Constants for the `createRule` operation. */ @@ -1374,7 +1435,7 @@ namespace ContextBasedRestrictionsV1 { } /** Parameters for the `listRules` operation. */ - export interface ListRulesParams { + export interface ListRulesParams extends DefaultParams { /** The ID of the managing account. */ accountId: string; /** The supplied or generated value of this header is logged for a request and repeated in a response header for @@ -1410,7 +1471,6 @@ namespace ContextBasedRestrictionsV1 { sort?: string; /** The rule's `enforcement_mode` attribute. */ enforcementMode?: ListRulesConstants.EnforcementMode | string; - headers?: OutgoingHttpHeaders; } /** Constants for the `listRules` operation. */ @@ -1424,7 +1484,7 @@ namespace ContextBasedRestrictionsV1 { } /** Parameters for the `getRule` operation. */ - export interface GetRuleParams { + export interface GetRuleParams extends DefaultParams { /** The ID of a rule. */ ruleId: string; /** The supplied or generated value of this header is logged for a request and repeated in a response header for @@ -1438,11 +1498,10 @@ namespace ContextBasedRestrictionsV1 { * `Transaction-Id`. */ transactionId?: string; - headers?: OutgoingHttpHeaders; } /** Parameters for the `replaceRule` operation. */ - export interface ReplaceRuleParams { + export interface ReplaceRuleParams extends DefaultParams { /** The ID of a rule. */ ruleId: string; /** The current revision of the resource being updated. This can be found in the Create/Get/Update resource @@ -1474,7 +1533,6 @@ namespace ContextBasedRestrictionsV1 { * `Transaction-Id`. */ transactionId?: string; - headers?: OutgoingHttpHeaders; } /** Constants for the `replaceRule` operation. */ @@ -1488,7 +1546,7 @@ namespace ContextBasedRestrictionsV1 { } /** Parameters for the `deleteRule` operation. */ - export interface DeleteRuleParams { + export interface DeleteRuleParams extends DefaultParams { /** The ID of a rule. */ ruleId: string; /** The supplied or generated value of this header is logged for a request and repeated in a response header for @@ -1502,11 +1560,10 @@ namespace ContextBasedRestrictionsV1 { * `Transaction-Id`. */ transactionId?: string; - headers?: OutgoingHttpHeaders; } /** Parameters for the `getAccountSettings` operation. */ - export interface GetAccountSettingsParams { + export interface GetAccountSettingsParams extends DefaultParams { /** The ID of the account the settings are for. */ accountId: string; /** The supplied or generated value of this header is logged for a request and repeated in a response header for @@ -1520,11 +1577,10 @@ namespace ContextBasedRestrictionsV1 { * `Transaction-Id`. */ transactionId?: string; - headers?: OutgoingHttpHeaders; } /** Parameters for the `listAvailableServiceOperations` operation. */ - export interface ListAvailableServiceOperationsParams { + export interface ListAvailableServiceOperationsParams extends DefaultParams { /** The supplied or generated value of this header is logged for a request and repeated in a response header for * the corresponding response. The same value is used for downstream requests and retries of those requests. If a * value of this headers is not supplied in a request, the service generates a random (version 4) UUID. @@ -1542,14 +1598,15 @@ namespace ContextBasedRestrictionsV1 { serviceGroupId?: string; /** The type of resource. */ resourceType?: string; - headers?: OutgoingHttpHeaders; } /************************* * model interfaces ************************/ - /** Service API Type details. */ + /** + * Service API Type details. + */ export interface APIType { /** The id of the API type. */ api_type_id: string; @@ -1565,7 +1622,9 @@ namespace ContextBasedRestrictionsV1 { enforcement_modes?: string[]; } - /** An output account settings. */ + /** + * An output account settings. + */ export interface AccountSettings { /** The globally unique ID of the account settings. */ id: string; @@ -1576,26 +1635,28 @@ namespace ContextBasedRestrictionsV1 { /** the max number of zones allowed for the account. */ zone_count_limit: number; /** the max number of rules with tags allowed for the account. */ - tags_rule_count_limit?: number; + tags_rule_count_limit: number; /** the current number of rules used by the account. */ current_rule_count: number; /** the current number of zones used by the account. */ current_zone_count: number; /** the current number of rules with tags used by the account. */ - current_tags_rule_count?: number; + current_tags_rule_count: number; /** The href link to the resource. */ href: string; /** The time the resource was created. */ - created_at: string; + created_at?: string; /** IAM ID of the user or service which created the resource. */ - created_by_id: string; + created_by_id?: string; /** The last time the resource was modified. */ - last_modified_at: string; + last_modified_at?: string; /** IAM ID of the user or service which modified the resource. */ - last_modified_by_id: string; + last_modified_by_id?: string; } - /** Service API Type actions. */ + /** + * Service API Type actions. + */ export interface Action { /** The id of the action. */ action_id: string; @@ -1603,7 +1664,9 @@ namespace ContextBasedRestrictionsV1 { description: string; } - /** A zone address. */ + /** + * A zone address. + */ export interface Address { /** The type of address. */ type?: Address.Constants.Type | string; @@ -1621,24 +1684,32 @@ namespace ContextBasedRestrictionsV1 { } } - /** The operations this rule applies to. */ + /** + * The operations this rule applies to. + */ export interface NewRuleOperations { /** The API types this rule applies to. */ api_types: NewRuleOperationsApiTypesItem[]; } - /** NewRuleOperationsApiTypesItem. */ + /** + * NewRuleOperationsApiTypesItem. + */ export interface NewRuleOperationsApiTypesItem { api_type_id: string; } - /** The response object of the `list_available_service_operations` operation. */ + /** + * The response object of the `list_available_service_operations` operation. + */ export interface OperationsList { /** The returned API types. */ api_types: APIType[]; } - /** An rule resource. */ + /** + * An rule resource. + */ export interface Resource { /** The resource attributes. */ attributes: ResourceAttribute[]; @@ -1646,7 +1717,9 @@ namespace ContextBasedRestrictionsV1 { tags?: ResourceTagAttribute[]; } - /** A rule resource attribute. */ + /** + * A rule resource attribute. + */ export interface ResourceAttribute { /** The attribute name. */ name: string; @@ -1656,7 +1729,9 @@ namespace ContextBasedRestrictionsV1 { operator?: string; } - /** A rule resource tag attribute. */ + /** + * A rule resource tag attribute. + */ export interface ResourceTagAttribute { /** The tag attribute name. */ name: string; @@ -1666,7 +1741,9 @@ namespace ContextBasedRestrictionsV1 { operator?: string; } - /** An output rule. */ + /** + * An output rule. + */ export interface Rule { /** The globally unique ID of the rule. */ id: string; @@ -1708,13 +1785,17 @@ namespace ContextBasedRestrictionsV1 { } } - /** A rule context. */ + /** + * A rule context. + */ export interface RuleContext { /** The attributes. */ attributes: RuleContextAttribute[]; } - /** An rule context attribute. */ + /** + * An rule context attribute. + */ export interface RuleContextAttribute { /** The attribute name. */ name: string; @@ -1722,7 +1803,9 @@ namespace ContextBasedRestrictionsV1 { value: string; } - /** The response object of the ListRules operation. */ + /** + * The response object of the ListRules operation. + */ export interface RuleList { /** The number of returned results. */ count: number; @@ -1730,7 +1813,9 @@ namespace ContextBasedRestrictionsV1 { rules: Rule[]; } - /** Summary information about a service reference target. */ + /** + * Summary information about a service reference target. + */ export interface ServiceRefTarget { /** The name of the service. */ service_name: string; @@ -1738,9 +1823,13 @@ namespace ContextBasedRestrictionsV1 { service_type?: string; /** The locations the service is available. */ locations?: ServiceRefTargetLocationsItem[]; + /** The display name of the service. */ + display_name?: string; } - /** A list of service reference targets. */ + /** + * A list of service reference targets. + */ export interface ServiceRefTargetList { /** The number of returned results. */ count: number; @@ -1748,7 +1837,9 @@ namespace ContextBasedRestrictionsV1 { targets: ServiceRefTarget[]; } - /** ServiceRefTargetLocationsItem. */ + /** + * ServiceRefTargetLocationsItem. + */ export interface ServiceRefTargetLocationsItem { /** The location display name. */ display_name?: string; @@ -1758,7 +1849,9 @@ namespace ContextBasedRestrictionsV1 { name: string; } - /** A service reference value. */ + /** + * A service reference value. + */ export interface ServiceRefValue { /** The id of the account owning the service. */ account_id: string; @@ -1772,7 +1865,9 @@ namespace ContextBasedRestrictionsV1 { location?: string; } - /** An output zone. */ + /** + * An output zone. + */ export interface Zone { /** The globally unique ID of the zone. */ id: string; @@ -1806,7 +1901,9 @@ namespace ContextBasedRestrictionsV1 { last_modified_by_id: string; } - /** The response object of the ListZones operation. */ + /** + * The response object of the ListZones operation. + */ export interface ZoneList { /** The number of returned results. */ count: number; @@ -1814,7 +1911,9 @@ namespace ContextBasedRestrictionsV1 { zones: ZoneSummary[]; } - /** An output zone summary. */ + /** + * An output zone summary. + */ export interface ZoneSummary { /** The globally unique ID of the zone. */ id: string; @@ -1842,7 +1941,9 @@ namespace ContextBasedRestrictionsV1 { last_modified_by_id: string; } - /** A single IP address. IPv4 and IPv6 are supported. */ + /** + * A single IP address. IPv4 and IPv6 are supported. + */ export interface AddressIPAddress extends Address { /** The type of address. */ type: AddressIPAddress.Constants.Type | string; @@ -1858,7 +1959,9 @@ namespace ContextBasedRestrictionsV1 { } } - /** An IP address range. IPv4 and IPv6 are supported. */ + /** + * An IP address range. IPv4 and IPv6 are supported. + */ export interface AddressIPAddressRange extends Address { /** The type of address. */ type: AddressIPAddressRange.Constants.Type | string; @@ -1874,7 +1977,9 @@ namespace ContextBasedRestrictionsV1 { } } - /** A service reference. */ + /** + * A service reference. + */ export interface AddressServiceRef extends Address { /** The type of address. */ type: AddressServiceRef.Constants.Type | string; @@ -1890,7 +1995,9 @@ namespace ContextBasedRestrictionsV1 { } } - /** A subnet in CIDR format. */ + /** + * A subnet in CIDR format. + */ export interface AddressSubnet extends Address { /** The type of address. */ type: AddressSubnet.Constants.Type | string; @@ -1906,7 +2013,9 @@ namespace ContextBasedRestrictionsV1 { } } - /** A single VPC address. */ + /** + * A single VPC address. + */ export interface AddressVPC extends Address { /** The type of address. */ type: AddressVPC.Constants.Type | string; diff --git a/test/integration/context-based-restrictions.v1.test.js b/test/integration/context-based-restrictions.v1.test.js index a5f40bf..7de4701 100644 --- a/test/integration/context-based-restrictions.v1.test.js +++ b/test/integration/context-based-restrictions.v1.test.js @@ -92,7 +92,7 @@ describe('ContextBasedRestrictionsV1_integration', () => { ref: { account_id: accountId, service_name: 'containers-kubernetes', - location: 'us-south', + location: 'dal', }, }; diff --git a/test/unit/context-based-restrictions.v1.test.js b/test/unit/context-based-restrictions.v1.test.js index 4cf018a..b75bcdb 100644 --- a/test/unit/context-based-restrictions.v1.test.js +++ b/test/unit/context-based-restrictions.v1.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2024. + * (C) Copyright IBM Corp. 2025. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From 0afb6bba41152f6221c4e0d892e1917711ff408d Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 15 Jan 2026 17:51:54 +0000 Subject: [PATCH 3/7] chore(release): 0.81.1 [skip ci] ## [0.81.1](https://github.com/IBM/platform-services-node-sdk/compare/v0.81.0...v0.81.1) (2026-01-15) ### Bug Fixes * **Context-Based Restrictions:** add display name to service ref response ([#321](https://github.com/IBM/platform-services-node-sdk/issues/321)) ([45841cb](https://github.com/IBM/platform-services-node-sdk/commit/45841cbad2c4614fe83b9f6b70be491612ea170f)) Signed-off-by: Stefano Roberto Mollica --- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b41c65..fcdaa0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [0.81.1](https://github.com/IBM/platform-services-node-sdk/compare/v0.81.0...v0.81.1) (2026-01-15) + + +### Bug Fixes + +* **Context-Based Restrictions:** add display name to service ref response ([#321](https://github.com/IBM/platform-services-node-sdk/issues/321)) ([45841cb](https://github.com/IBM/platform-services-node-sdk/commit/45841cbad2c4614fe83b9f6b70be491612ea170f)) + # [0.81.0](https://github.com/IBM/platform-services-node-sdk/compare/v0.80.0...v0.81.0) (2026-01-13) diff --git a/package-lock.json b/package-lock.json index 79da4a4..010ea95 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ibm-cloud/platform-services", - "version": "0.81.0", + "version": "0.81.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ibm-cloud/platform-services", - "version": "0.81.0", + "version": "0.81.1", "license": "Apache-2.0", "dependencies": { "@types/node": "^18.19.80", diff --git a/package.json b/package.json index 44886d7..bd3cb57 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ibm-cloud/platform-services", - "version": "0.81.0", + "version": "0.81.1", "description": "Node.js client library for IBM Cloud Platform Services", "repository": { "type": "git", From 2bd62320d90e6425f903293c9bb8e1a0221f3b87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tarcza=20L=C3=ADdia?= <100163235+diatrcz@users.noreply.github.com> Date: Tue, 10 Feb 2026 12:15:17 +0100 Subject: [PATCH 4/7] build: add status check for matrix strategies (#323) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: LĂ­dia Tarcza <100163235+diatrcz@users.noreply.github.com> Signed-off-by: Stefano Roberto Mollica --- .github/workflows/build.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ebfdb52..eaa9847 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -61,6 +61,21 @@ jobs: npm run test-unit-travis npm run lint + results: + if: ${{ always() }} + runs-on: ubuntu-latest + name: Final Test Results + needs: [build] + steps: + - run: | + result="${{ needs.build.result }}" + if [[ $result == "success" || $result == "skipped" ]]; then + exit 0 + else + exit 1 + fi + + publish-release: if: "github.ref_name == 'main' && github.event_name != 'pull_request'" name: semantic-release From ab71571ccc0a71c01da3136916c7aebee5cf31b9 Mon Sep 17 00:00:00 2001 From: Stefano Roberto Mollica Date: Thu, 12 Feb 2026 11:03:26 +0100 Subject: [PATCH 5/7] 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 3210b163125fe944c1009f9df646f41804fcea08 Mon Sep 17 00:00:00 2001 From: Stefano Roberto Mollica Date: Mon, 16 Feb 2026 10:33:20 +0100 Subject: [PATCH 6/7] feat(Tagging): added error message in case of failures Signed-off-by: Stefano Roberto Mollica --- 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. From 5d674efd069081f8436355c3591396f749d7c938 Mon Sep 17 00:00:00 2001 From: Stefano Roberto Mollica Date: Mon, 16 Feb 2026 13:38:43 +0100 Subject: [PATCH 7/7] fix/feat(Search/Tagging): regenerated services with latest API definition Signed-off-by: Stefano Roberto Mollica --- global-tagging/v1.ts | 84 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 74 insertions(+), 10 deletions(-) diff --git a/global-tagging/v1.ts b/global-tagging/v1.ts index df1421f..5701901 100644 --- a/global-tagging/v1.ts +++ b/global-tagging/v1.ts @@ -152,7 +152,22 @@ 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); @@ -230,7 +245,15 @@ 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); @@ -306,7 +329,15 @@ 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); @@ -379,7 +410,16 @@ 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); @@ -467,7 +507,20 @@ 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); @@ -551,7 +604,18 @@ 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); @@ -629,10 +693,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 {