@alicloud/appstream-center20210901 5.8.0 → 5.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/client.d.ts +468 -22
  2. package/dist/client.js +773 -22
  3. package/dist/client.js.map +1 -1
  4. package/dist/models/ListAppsByAppInstanceGroupIdRequest.d.ts +61 -0
  5. package/dist/models/ListAppsByAppInstanceGroupIdRequest.js +64 -0
  6. package/dist/models/ListAppsByAppInstanceGroupIdRequest.js.map +1 -0
  7. package/dist/models/ListAppsByAppInstanceGroupIdResponse.d.ts +19 -0
  8. package/dist/models/ListAppsByAppInstanceGroupIdResponse.js +69 -0
  9. package/dist/models/ListAppsByAppInstanceGroupIdResponse.js.map +1 -0
  10. package/dist/models/ListAppsByAppInstanceGroupIdResponseBody.d.ts +110 -0
  11. package/dist/models/ListAppsByAppInstanceGroupIdResponseBody.js +98 -0
  12. package/dist/models/ListAppsByAppInstanceGroupIdResponseBody.js.map +1 -0
  13. package/dist/models/ListAuthorizedAppsByUserRequest.d.ts +89 -0
  14. package/dist/models/ListAuthorizedAppsByUserRequest.js +72 -0
  15. package/dist/models/ListAuthorizedAppsByUserRequest.js.map +1 -0
  16. package/dist/models/ListAuthorizedAppsByUserResponse.d.ts +19 -0
  17. package/dist/models/ListAuthorizedAppsByUserResponse.js +69 -0
  18. package/dist/models/ListAuthorizedAppsByUserResponse.js.map +1 -0
  19. package/dist/models/ListAuthorizedAppsByUserResponseBody.d.ts +126 -0
  20. package/dist/models/ListAuthorizedAppsByUserResponseBody.js +102 -0
  21. package/dist/models/ListAuthorizedAppsByUserResponseBody.js.map +1 -0
  22. package/dist/models/ListAuthorizedUsersRequest.d.ts +29 -16
  23. package/dist/models/ListAuthorizedUsersRequest.js.map +1 -1
  24. package/dist/models/ListAuthorizedUsersResponseBody.d.ts +29 -24
  25. package/dist/models/ListAuthorizedUsersResponseBody.js.map +1 -1
  26. package/dist/models/ListPublishedAppInstanceGroupRequest.d.ts +100 -0
  27. package/dist/models/ListPublishedAppInstanceGroupRequest.js +72 -0
  28. package/dist/models/ListPublishedAppInstanceGroupRequest.js.map +1 -0
  29. package/dist/models/ListPublishedAppInstanceGroupResponse.d.ts +19 -0
  30. package/dist/models/ListPublishedAppInstanceGroupResponse.js +69 -0
  31. package/dist/models/ListPublishedAppInstanceGroupResponse.js.map +1 -0
  32. package/dist/models/ListPublishedAppInstanceGroupResponseBody.d.ts +185 -0
  33. package/dist/models/ListPublishedAppInstanceGroupResponseBody.js +134 -0
  34. package/dist/models/ListPublishedAppInstanceGroupResponseBody.js.map +1 -0
  35. package/dist/models/ListPublishedAppsRequest.d.ts +96 -0
  36. package/dist/models/ListPublishedAppsRequest.js +72 -0
  37. package/dist/models/ListPublishedAppsRequest.js.map +1 -0
  38. package/dist/models/ListPublishedAppsResponse.d.ts +19 -0
  39. package/dist/models/ListPublishedAppsResponse.js +69 -0
  40. package/dist/models/ListPublishedAppsResponse.js.map +1 -0
  41. package/dist/models/ListPublishedAppsResponseBody.d.ts +126 -0
  42. package/dist/models/ListPublishedAppsResponseBody.js +102 -0
  43. package/dist/models/ListPublishedAppsResponseBody.js.map +1 -0
  44. package/dist/models/ListTagResourcesRequest.d.ts +97 -0
  45. package/dist/models/ListTagResourcesRequest.js +93 -0
  46. package/dist/models/ListTagResourcesRequest.js.map +1 -0
  47. package/dist/models/ListTagResourcesResponse.d.ts +19 -0
  48. package/dist/models/ListTagResourcesResponse.js +69 -0
  49. package/dist/models/ListTagResourcesResponse.js.map +1 -0
  50. package/dist/models/ListTagResourcesResponseBody.d.ts +88 -0
  51. package/dist/models/ListTagResourcesResponseBody.js +92 -0
  52. package/dist/models/ListTagResourcesResponseBody.js.map +1 -0
  53. package/dist/models/ListZonesRequest.d.ts +62 -0
  54. package/dist/models/ListZonesRequest.js +62 -0
  55. package/dist/models/ListZonesRequest.js.map +1 -0
  56. package/dist/models/ListZonesResponse.d.ts +19 -0
  57. package/dist/models/ListZonesResponse.js +69 -0
  58. package/dist/models/ListZonesResponse.js.map +1 -0
  59. package/dist/models/ListZonesResponseBody.d.ts +43 -0
  60. package/dist/models/ListZonesResponseBody.js +85 -0
  61. package/dist/models/ListZonesResponseBody.js.map +1 -0
  62. package/dist/models/TagResourcesRequest.d.ts +103 -0
  63. package/dist/models/TagResourcesRequest.js +91 -0
  64. package/dist/models/TagResourcesRequest.js.map +1 -0
  65. package/dist/models/TagResourcesResponse.d.ts +19 -0
  66. package/dist/models/TagResourcesResponse.js +69 -0
  67. package/dist/models/TagResourcesResponse.js.map +1 -0
  68. package/dist/models/TagResourcesResponseBody.d.ts +21 -0
  69. package/dist/models/TagResourcesResponseBody.js +58 -0
  70. package/dist/models/TagResourcesResponseBody.js.map +1 -0
  71. package/dist/models/UntagResourcesRequest.d.ts +78 -0
  72. package/dist/models/UntagResourcesRequest.js +72 -0
  73. package/dist/models/UntagResourcesRequest.js.map +1 -0
  74. package/dist/models/UntagResourcesResponse.d.ts +19 -0
  75. package/dist/models/UntagResourcesResponse.js +69 -0
  76. package/dist/models/UntagResourcesResponse.js.map +1 -0
  77. package/dist/models/UntagResourcesResponseBody.d.ts +21 -0
  78. package/dist/models/UntagResourcesResponseBody.js +58 -0
  79. package/dist/models/UntagResourcesResponseBody.js.map +1 -0
  80. package/dist/models/model.d.ts +33 -0
  81. package/dist/models/model.js +74 -8
  82. package/dist/models/model.js.map +1 -1
  83. package/package.json +1 -1
  84. package/src/client.ts +837 -22
  85. package/src/models/ListAppsByAppInstanceGroupIdRequest.ts +80 -0
  86. package/src/models/ListAppsByAppInstanceGroupIdResponse.ts +40 -0
  87. package/src/models/ListAppsByAppInstanceGroupIdResponseBody.ts +154 -0
  88. package/src/models/ListAuthorizedAppsByUserRequest.ts +116 -0
  89. package/src/models/ListAuthorizedAppsByUserResponse.ts +40 -0
  90. package/src/models/ListAuthorizedAppsByUserResponseBody.ts +174 -0
  91. package/src/models/ListAuthorizedUsersRequest.ts +29 -16
  92. package/src/models/ListAuthorizedUsersResponseBody.ts +29 -24
  93. package/src/models/ListPublishedAppInstanceGroupRequest.ts +127 -0
  94. package/src/models/ListPublishedAppInstanceGroupResponse.ts +40 -0
  95. package/src/models/ListPublishedAppInstanceGroupResponseBody.ts +256 -0
  96. package/src/models/ListPublishedAppsRequest.ts +123 -0
  97. package/src/models/ListPublishedAppsResponse.ts +40 -0
  98. package/src/models/ListPublishedAppsResponseBody.ts +174 -0
  99. package/src/models/ListTagResourcesRequest.ts +136 -0
  100. package/src/models/ListTagResourcesResponse.ts +40 -0
  101. package/src/models/ListTagResourcesResponseBody.ts +126 -0
  102. package/src/models/ListZonesRequest.ts +79 -0
  103. package/src/models/ListZonesResponse.ts +40 -0
  104. package/src/models/ListZonesResponseBody.ts +74 -0
  105. package/src/models/TagResourcesRequest.ts +140 -0
  106. package/src/models/TagResourcesResponse.ts +40 -0
  107. package/src/models/TagResourcesResponseBody.ts +34 -0
  108. package/src/models/UntagResourcesRequest.ts +105 -0
  109. package/src/models/UntagResourcesResponse.ts +40 -0
  110. package/src/models/UntagResourcesResponseBody.ts +34 -0
  111. package/src/models/model.ts +33 -0
package/dist/client.js CHANGED
@@ -2494,6 +2494,84 @@ class Client extends openapi_core_1.default {
2494
2494
  let runtime = new $dara.RuntimeOptions({});
2495
2495
  return await this.listAppInstancesWithOptions(request, runtime);
2496
2496
  }
2497
+ /**
2498
+ * Queries the deployed applications in the image used by a specified delivery group with paging and returns the number of users with per-application authorization for each application.
2499
+ *
2500
+ * @remarks
2501
+ * ## Operation description
2502
+ * This operation returns the list of deployed applications in the application image used by a specified delivery group, including the application ID, name, version, icon, and the number of users currently **authorized by application** for each application (AuthorizedUserCount).
2503
+ * The returned AppId is the input for per-application authorization: when you call the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation to add or remove authorized users for a specified application in a delivery group, pass in the AppId returned by this operation.
2504
+ * ## Before you begin
2505
+ * - The delivery group is created, and **ProductType matches the product type of the delivery group**. If the delivery group does not exist or the product type does not match, the error code `InvalidAppInstanceGroup.NotFound` is returned.
2506
+ * ## Parameter description
2507
+ * - **AppInstanceGroupId is required**. This parameter is marked as optional in the parameter table, but the error code `InvalidParameter.AppInstanceGroupId` is returned if it is not specified.
2508
+ * - PageNumber starts from 1. Valid values of PageSize: 1 to 100. If the values are invalid, the error codes `InvalidParameter.PageNumber` and `InvalidParameter.PageSize` are returned respectively.
2509
+ * - If no applications are deployed in the delivery group image, the operation returns normally: Apps is an empty list and TotalCount is 0.
2510
+ * ## Call sequence
2511
+ * 1. Call the [ListAppInstanceGroup](~~ListAppInstanceGroup~~) operation to obtain the delivery group ID (AppInstanceGroupId).
2512
+ * 2. Call this operation to obtain the list of deployed applications in the delivery group and the AppId of each application.
2513
+ * 3. To authorize by application, call the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation with the returned AppId.
2514
+ *
2515
+ * @param request - ListAppsByAppInstanceGroupIdRequest
2516
+ * @param runtime - runtime options for this request RuntimeOptions
2517
+ * @returns ListAppsByAppInstanceGroupIdResponse
2518
+ */
2519
+ async listAppsByAppInstanceGroupIdWithOptions(request, runtime) {
2520
+ request.validate();
2521
+ let query = {};
2522
+ if (!$dara.isNull(request.appInstanceGroupId)) {
2523
+ query["AppInstanceGroupId"] = request.appInstanceGroupId;
2524
+ }
2525
+ if (!$dara.isNull(request.pageNumber)) {
2526
+ query["PageNumber"] = request.pageNumber;
2527
+ }
2528
+ if (!$dara.isNull(request.pageSize)) {
2529
+ query["PageSize"] = request.pageSize;
2530
+ }
2531
+ if (!$dara.isNull(request.productType)) {
2532
+ query["ProductType"] = request.productType;
2533
+ }
2534
+ let req = new openapi_core_2.$OpenApiUtil.OpenApiRequest({
2535
+ query: openapi_core_2.OpenApiUtil.query(query),
2536
+ });
2537
+ let params = new openapi_core_2.$OpenApiUtil.Params({
2538
+ action: "ListAppsByAppInstanceGroupId",
2539
+ version: "2021-09-01",
2540
+ protocol: "HTTPS",
2541
+ pathname: "/",
2542
+ method: "POST",
2543
+ authType: "AK",
2544
+ style: "RPC",
2545
+ reqBodyType: "formData",
2546
+ bodyType: "json",
2547
+ });
2548
+ return $dara.cast(await this.callApi(params, req, runtime), new $_model.ListAppsByAppInstanceGroupIdResponse({}));
2549
+ }
2550
+ /**
2551
+ * Queries the deployed applications in the image used by a specified delivery group with paging and returns the number of users with per-application authorization for each application.
2552
+ *
2553
+ * @remarks
2554
+ * ## Operation description
2555
+ * This operation returns the list of deployed applications in the application image used by a specified delivery group, including the application ID, name, version, icon, and the number of users currently **authorized by application** for each application (AuthorizedUserCount).
2556
+ * The returned AppId is the input for per-application authorization: when you call the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation to add or remove authorized users for a specified application in a delivery group, pass in the AppId returned by this operation.
2557
+ * ## Before you begin
2558
+ * - The delivery group is created, and **ProductType matches the product type of the delivery group**. If the delivery group does not exist or the product type does not match, the error code `InvalidAppInstanceGroup.NotFound` is returned.
2559
+ * ## Parameter description
2560
+ * - **AppInstanceGroupId is required**. This parameter is marked as optional in the parameter table, but the error code `InvalidParameter.AppInstanceGroupId` is returned if it is not specified.
2561
+ * - PageNumber starts from 1. Valid values of PageSize: 1 to 100. If the values are invalid, the error codes `InvalidParameter.PageNumber` and `InvalidParameter.PageSize` are returned respectively.
2562
+ * - If no applications are deployed in the delivery group image, the operation returns normally: Apps is an empty list and TotalCount is 0.
2563
+ * ## Call sequence
2564
+ * 1. Call the [ListAppInstanceGroup](~~ListAppInstanceGroup~~) operation to obtain the delivery group ID (AppInstanceGroupId).
2565
+ * 2. Call this operation to obtain the list of deployed applications in the delivery group and the AppId of each application.
2566
+ * 3. To authorize by application, call the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation with the returned AppId.
2567
+ *
2568
+ * @param request - ListAppsByAppInstanceGroupIdRequest
2569
+ * @returns ListAppsByAppInstanceGroupIdResponse
2570
+ */
2571
+ async listAppsByAppInstanceGroupId(request) {
2572
+ let runtime = new $dara.RuntimeOptions({});
2573
+ return await this.listAppsByAppInstanceGroupIdWithOptions(request, runtime);
2574
+ }
2497
2575
  /**
2498
2576
  * Queries the delivery groups for which a specified user has obtained access permissions through delivery group-level authorization by paging, with support for fuzzy filtering by delivery group ID, delivery group name, application ID, or application name.
2499
2577
  *
@@ -2592,6 +2670,98 @@ class Client extends openapi_core_1.default {
2592
2670
  let runtime = new $dara.RuntimeOptions({});
2593
2671
  return await this.listAuthorizedAppInstanceGroupByUserWithOptions(request, runtime);
2594
2672
  }
2673
+ /**
2674
+ * Queries the applications for which a specified user has obtained access permissions through per-application authorization by paging. You can filter results by delivery group ID, delivery group name, application ID, or application name using fuzzy match.
2675
+ *
2676
+ * @remarks
2677
+ * ## Operation description
2678
+ * This operation queries the applications that a specified user is authorized to access at the application granularity. **Only records authorized at the application level are returned** (for example, authorizations completed through the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation). Authorizations granted to an entire delivery group through the [AuthorizeInstanceGroup](~~AuthorizeInstanceGroup~~) operation are not included in the response.
2679
+ * The results are deduplicated by the combination of delivery group and application. Each record corresponds to one application within one delivery group.
2680
+ * ## Before you begin
2681
+ * - The user must already exist under the current account. If the user does not exist, the error code `User.NotFound` is returned. Call the [DescribeUsers](https://help.aliyun.com/document_detail/436936.html) operation to obtain the username.
2682
+ * - The delivery group that contains the application must already be created, and the application must have been authorized to the user at the application level. If no per-application authorization has been performed, an empty application list is returned.
2683
+ * ## Parameter description
2684
+ * - **`EndUserId` and `ProductType` are required.** Set `ProductType` to `CloudApp`, which indicates WUYING Cloud Application.
2685
+ * - `AppInstanceGroupId`, `AppId`, `AppInstanceGroupName`, and `AppName` are optional filter conditions. All of them use fuzzy match and can be combined in any way. If all are omitted, all per-application authorization records for the user are returned.
2686
+ * - Use `PageNumber` and `PageSize` for paging. `PageNumber` starts from 1, and `PageSize` ranges from 1 to 100. Use the returned `TotalCount` to determine whether to continue querying.
2687
+ * ## Call sequence
2688
+ * 1. Call the [ListAppInstanceGroup](https://help.aliyun.com/document_detail/428506.html) or [GetAppInstanceGroup](https://help.aliyun.com/document_detail/600836.html) operation to obtain the delivery group ID (AppInstanceGroupId) and the application IDs of deployed applications within the delivery group (AppId in the Apps list).
2689
+ * 2. Call the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation to authorize the application to the target user.
2690
+ * 3. Call this operation to query the applications that the user is authorized to access.
2691
+ *
2692
+ * @param request - ListAuthorizedAppsByUserRequest
2693
+ * @param runtime - runtime options for this request RuntimeOptions
2694
+ * @returns ListAuthorizedAppsByUserResponse
2695
+ */
2696
+ async listAuthorizedAppsByUserWithOptions(request, runtime) {
2697
+ request.validate();
2698
+ let query = {};
2699
+ if (!$dara.isNull(request.appId)) {
2700
+ query["AppId"] = request.appId;
2701
+ }
2702
+ if (!$dara.isNull(request.appInstanceGroupId)) {
2703
+ query["AppInstanceGroupId"] = request.appInstanceGroupId;
2704
+ }
2705
+ if (!$dara.isNull(request.appInstanceGroupName)) {
2706
+ query["AppInstanceGroupName"] = request.appInstanceGroupName;
2707
+ }
2708
+ if (!$dara.isNull(request.appName)) {
2709
+ query["AppName"] = request.appName;
2710
+ }
2711
+ if (!$dara.isNull(request.endUserId)) {
2712
+ query["EndUserId"] = request.endUserId;
2713
+ }
2714
+ if (!$dara.isNull(request.pageNumber)) {
2715
+ query["PageNumber"] = request.pageNumber;
2716
+ }
2717
+ if (!$dara.isNull(request.pageSize)) {
2718
+ query["PageSize"] = request.pageSize;
2719
+ }
2720
+ if (!$dara.isNull(request.productType)) {
2721
+ query["ProductType"] = request.productType;
2722
+ }
2723
+ let req = new openapi_core_2.$OpenApiUtil.OpenApiRequest({
2724
+ query: openapi_core_2.OpenApiUtil.query(query),
2725
+ });
2726
+ let params = new openapi_core_2.$OpenApiUtil.Params({
2727
+ action: "ListAuthorizedAppsByUser",
2728
+ version: "2021-09-01",
2729
+ protocol: "HTTPS",
2730
+ pathname: "/",
2731
+ method: "POST",
2732
+ authType: "AK",
2733
+ style: "RPC",
2734
+ reqBodyType: "formData",
2735
+ bodyType: "json",
2736
+ });
2737
+ return $dara.cast(await this.callApi(params, req, runtime), new $_model.ListAuthorizedAppsByUserResponse({}));
2738
+ }
2739
+ /**
2740
+ * Queries the applications for which a specified user has obtained access permissions through per-application authorization by paging. You can filter results by delivery group ID, delivery group name, application ID, or application name using fuzzy match.
2741
+ *
2742
+ * @remarks
2743
+ * ## Operation description
2744
+ * This operation queries the applications that a specified user is authorized to access at the application granularity. **Only records authorized at the application level are returned** (for example, authorizations completed through the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation). Authorizations granted to an entire delivery group through the [AuthorizeInstanceGroup](~~AuthorizeInstanceGroup~~) operation are not included in the response.
2745
+ * The results are deduplicated by the combination of delivery group and application. Each record corresponds to one application within one delivery group.
2746
+ * ## Before you begin
2747
+ * - The user must already exist under the current account. If the user does not exist, the error code `User.NotFound` is returned. Call the [DescribeUsers](https://help.aliyun.com/document_detail/436936.html) operation to obtain the username.
2748
+ * - The delivery group that contains the application must already be created, and the application must have been authorized to the user at the application level. If no per-application authorization has been performed, an empty application list is returned.
2749
+ * ## Parameter description
2750
+ * - **`EndUserId` and `ProductType` are required.** Set `ProductType` to `CloudApp`, which indicates WUYING Cloud Application.
2751
+ * - `AppInstanceGroupId`, `AppId`, `AppInstanceGroupName`, and `AppName` are optional filter conditions. All of them use fuzzy match and can be combined in any way. If all are omitted, all per-application authorization records for the user are returned.
2752
+ * - Use `PageNumber` and `PageSize` for paging. `PageNumber` starts from 1, and `PageSize` ranges from 1 to 100. Use the returned `TotalCount` to determine whether to continue querying.
2753
+ * ## Call sequence
2754
+ * 1. Call the [ListAppInstanceGroup](https://help.aliyun.com/document_detail/428506.html) or [GetAppInstanceGroup](https://help.aliyun.com/document_detail/600836.html) operation to obtain the delivery group ID (AppInstanceGroupId) and the application IDs of deployed applications within the delivery group (AppId in the Apps list).
2755
+ * 2. Call the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation to authorize the application to the target user.
2756
+ * 3. Call this operation to query the applications that the user is authorized to access.
2757
+ *
2758
+ * @param request - ListAuthorizedAppsByUserRequest
2759
+ * @returns ListAuthorizedAppsByUserResponse
2760
+ */
2761
+ async listAuthorizedAppsByUser(request) {
2762
+ let runtime = new $dara.RuntimeOptions({});
2763
+ return await this.listAuthorizedAppsByUserWithOptions(request, runtime);
2764
+ }
2595
2765
  /**
2596
2766
  * Queries the list of user groups authorized by a specified delivery group.
2597
2767
  *
@@ -2650,20 +2820,41 @@ class Client extends openapi_core_1.default {
2650
2820
  return await this.listAuthorizedUserGroupsWithOptions(request, runtime);
2651
2821
  }
2652
2822
  /**
2653
- * Queries authorized users of a cloud browser group with paging.
2823
+ * Queries the list of authorized users for a specified delivery group or delivery group set by using paging. Supports exact or fuzzy filtering by username.
2654
2824
  *
2655
2825
  * @remarks
2826
+ * ## Operation description
2827
+ * This operation queries the currently authorized users of a specified delivery group (AppInstanceGroupId) or delivery group set (AppInstanceGroupSetId). It returns each user\\"s username, account type, email address, phone number, and the authorization mode of the associated delivery group.
2828
+ * - This operation returns **authorization relationships** and does not indicate whether users are currently online or have established connections.
2829
+ * - In the Cloud Browser product, a delivery group corresponds to a cloud browser group, and a delivery group ID corresponds to a browser group ID.
2830
+ * The scope of results depends on the authorization mode of the delivery group (response parameter AuthMode):
2831
+ * - When the authorization mode is `App` (application-level authorization) or `AppInstanceGroup` (delivery group-level authorization): Returns users authorized through the [AuthorizeInstanceGroup](~~AuthorizeInstanceGroup~~) operation at the delivery group level, as well as users authorized through the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation at the application level. If AppId is specified, only users **authorized for that specific application** are returned.
2832
+ * - When the authorization mode is `Session` (session-level authorization): Returns users who have been granted persistent sessions. The AppInstancePersistentIds field lists all persistent session IDs granted to each user. If AppInstancePersistentId is specified, only users granted that session are returned.
2833
+ * - When querying by delivery group set: Returns users authorized for the set. The response parameter AppInstanceGroupId is the primary delivery group ID of the set, and AppInstanceGroupSetId is the queried set ID.
2834
+ * When querying by delivery group, results are sorted in descending order by authorization time, with the most recently authorized users listed first.
2656
2835
  * ## Before you begin
2657
- * - The target cloud browser group or delivery group set must be created, belong to the current account, and match the specified `ProductType`.
2658
- * - When querying authorized users of cloud browsers, set `ProductType` to `CloudBrowser`.
2659
- * - **Specify either `AppInstanceGroupId` or `AppInstanceGroupSetId`, but not both.**
2660
- * ## Query notes
2661
- * - This operation returns authorization relationships and does not indicate whether users are currently online or sessions are connected.
2662
- * - When querying by set, omit `AppId` and `AppInstancePersistentId`.
2663
- * - Use `PageNumber` and `PageSize` for pagination and check `TotalCount` to determine whether to continue querying.
2664
- * ## Example notes
2665
- * The examples show how to set the fields. Replace resource identifiers with actual values in your account.
2666
- * An example value of `-` indicates that the parameter does not need to be set. Omit the corresponding parameter when calling the operation. Do not pass the character `-`.
2836
+ * - The target delivery group or delivery group set must be created, belong to the current account, and match the specified ProductType. Otherwise, a resource-not-found error code is returned.
2837
+ * - Users must have been authorized through the [AuthorizeInstanceGroup](~~AuthorizeInstanceGroup~~) or [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation. If no users have been authorized, the operation returns normally with an empty Users list and TotalCount of 0.
2838
+ * ## Parameter description
2839
+ * - **ProductType, PageNumber, and PageSize are required**. If ProductType has an invalid value, the error code `ProductTypeInvalid` is returned.
2840
+ * - **Exactly one of AppInstanceGroupId and AppInstanceGroupSetId must be specified**. If both or neither are specified, the error code `InvalidParameter.AppInstanceGroupId/AppInstanceGroupSetId` is returned.
2841
+ * - **AppId and AppInstancePersistentId are not supported when querying by delivery group set**. If specified, the error codes `InvalidParameter.AppId` and `InvalidParameter.AppInstancePersistentId` are returned respectively.
2842
+ * - EndUserId performs **exact matching** by username. UserIdFuzzy performs **fuzzy matching** by username (a hit occurs if the username contains the keyword). Both can be specified simultaneously, in which case both conditions must be met.
2843
+ * - PageNumber starts from 1. Valid values of PageSize: 1 to 100.
2844
+ * - When the authorization mode is `App` or `AppInstanceGroup`, TotalCount is the number of **authorization records** that match the conditions. If the same user has multiple authorization records (for example, authorized for multiple applications), the records are merged into a single user entry in Users. Therefore, the number of users returned on the current page may be less than PageSize. Use TotalCount to determine whether to continue paging. When the authorization mode is `Session`, TotalCount is the deduplicated user count.
2845
+ * ## Call sequence
2846
+ * 1. Call the [ListAppInstanceGroup](~~ListAppInstanceGroup~~) operation to obtain the delivery group ID. For cloud browser groups, call the [ListBrowserInstanceGroup](~~ListBrowserInstanceGroup~~) operation.
2847
+ * 2. Call the [AuthorizeInstanceGroup](~~AuthorizeInstanceGroup~~) operation to authorize at the delivery group level, or call the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation to authorize at the application level.
2848
+ * 3. Call this operation to query authorized users. To remove authorization, pass the returned EndUserId values to the UnAuthorizeUserIds parameter of the authorization operations mentioned above.
2849
+ * ## Error codes
2850
+ * - `ProductTypeInvalid`: The value of ProductType is invalid.
2851
+ * - `InvalidParameter.AppInstanceGroupId/AppInstanceGroupSetId`: Both AppInstanceGroupId and AppInstanceGroupSetId are specified, or neither is specified.
2852
+ * - `InvalidParameter.AppId`: AppId is specified when querying by delivery group set.
2853
+ * - `InvalidParameter.AppInstancePersistentId`: AppInstancePersistentId is specified when querying by delivery group set.
2854
+ * - `InvalidAppInstanceGroupSpecItem.NotFound`: The delivery group does not exist, does not belong to the current account, or the product type does not match.
2855
+ * - `InvalidBrowserInstanceGroup.NotFound`: When ProductType is `CloudBrowser`, the cloud browser group does not exist, does not belong to the current account, or the product type does not match.
2856
+ * - `InvalidAppInstanceGroupSet.NotFound`: The delivery group set does not exist, does not belong to the current account, the product type does not match, or the set does not have an available primary delivery group.
2857
+ * - `InvalidAppInstanceGroupSet.ActivationFailed`: The delivery group set is not in an available state.
2667
2858
  *
2668
2859
  * @param request - ListAuthorizedUsersRequest
2669
2860
  * @param runtime - runtime options for this request RuntimeOptions
@@ -2718,20 +2909,41 @@ class Client extends openapi_core_1.default {
2718
2909
  return $dara.cast(await this.callApi(params, req, runtime), new $_model.ListAuthorizedUsersResponse({}));
2719
2910
  }
2720
2911
  /**
2721
- * Queries authorized users of a cloud browser group with paging.
2912
+ * Queries the list of authorized users for a specified delivery group or delivery group set by using paging. Supports exact or fuzzy filtering by username.
2722
2913
  *
2723
2914
  * @remarks
2915
+ * ## Operation description
2916
+ * This operation queries the currently authorized users of a specified delivery group (AppInstanceGroupId) or delivery group set (AppInstanceGroupSetId). It returns each user\\"s username, account type, email address, phone number, and the authorization mode of the associated delivery group.
2917
+ * - This operation returns **authorization relationships** and does not indicate whether users are currently online or have established connections.
2918
+ * - In the Cloud Browser product, a delivery group corresponds to a cloud browser group, and a delivery group ID corresponds to a browser group ID.
2919
+ * The scope of results depends on the authorization mode of the delivery group (response parameter AuthMode):
2920
+ * - When the authorization mode is `App` (application-level authorization) or `AppInstanceGroup` (delivery group-level authorization): Returns users authorized through the [AuthorizeInstanceGroup](~~AuthorizeInstanceGroup~~) operation at the delivery group level, as well as users authorized through the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation at the application level. If AppId is specified, only users **authorized for that specific application** are returned.
2921
+ * - When the authorization mode is `Session` (session-level authorization): Returns users who have been granted persistent sessions. The AppInstancePersistentIds field lists all persistent session IDs granted to each user. If AppInstancePersistentId is specified, only users granted that session are returned.
2922
+ * - When querying by delivery group set: Returns users authorized for the set. The response parameter AppInstanceGroupId is the primary delivery group ID of the set, and AppInstanceGroupSetId is the queried set ID.
2923
+ * When querying by delivery group, results are sorted in descending order by authorization time, with the most recently authorized users listed first.
2724
2924
  * ## Before you begin
2725
- * - The target cloud browser group or delivery group set must be created, belong to the current account, and match the specified `ProductType`.
2726
- * - When querying authorized users of cloud browsers, set `ProductType` to `CloudBrowser`.
2727
- * - **Specify either `AppInstanceGroupId` or `AppInstanceGroupSetId`, but not both.**
2728
- * ## Query notes
2729
- * - This operation returns authorization relationships and does not indicate whether users are currently online or sessions are connected.
2730
- * - When querying by set, omit `AppId` and `AppInstancePersistentId`.
2731
- * - Use `PageNumber` and `PageSize` for pagination and check `TotalCount` to determine whether to continue querying.
2732
- * ## Example notes
2733
- * The examples show how to set the fields. Replace resource identifiers with actual values in your account.
2734
- * An example value of `-` indicates that the parameter does not need to be set. Omit the corresponding parameter when calling the operation. Do not pass the character `-`.
2925
+ * - The target delivery group or delivery group set must be created, belong to the current account, and match the specified ProductType. Otherwise, a resource-not-found error code is returned.
2926
+ * - Users must have been authorized through the [AuthorizeInstanceGroup](~~AuthorizeInstanceGroup~~) or [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation. If no users have been authorized, the operation returns normally with an empty Users list and TotalCount of 0.
2927
+ * ## Parameter description
2928
+ * - **ProductType, PageNumber, and PageSize are required**. If ProductType has an invalid value, the error code `ProductTypeInvalid` is returned.
2929
+ * - **Exactly one of AppInstanceGroupId and AppInstanceGroupSetId must be specified**. If both or neither are specified, the error code `InvalidParameter.AppInstanceGroupId/AppInstanceGroupSetId` is returned.
2930
+ * - **AppId and AppInstancePersistentId are not supported when querying by delivery group set**. If specified, the error codes `InvalidParameter.AppId` and `InvalidParameter.AppInstancePersistentId` are returned respectively.
2931
+ * - EndUserId performs **exact matching** by username. UserIdFuzzy performs **fuzzy matching** by username (a hit occurs if the username contains the keyword). Both can be specified simultaneously, in which case both conditions must be met.
2932
+ * - PageNumber starts from 1. Valid values of PageSize: 1 to 100.
2933
+ * - When the authorization mode is `App` or `AppInstanceGroup`, TotalCount is the number of **authorization records** that match the conditions. If the same user has multiple authorization records (for example, authorized for multiple applications), the records are merged into a single user entry in Users. Therefore, the number of users returned on the current page may be less than PageSize. Use TotalCount to determine whether to continue paging. When the authorization mode is `Session`, TotalCount is the deduplicated user count.
2934
+ * ## Call sequence
2935
+ * 1. Call the [ListAppInstanceGroup](~~ListAppInstanceGroup~~) operation to obtain the delivery group ID. For cloud browser groups, call the [ListBrowserInstanceGroup](~~ListBrowserInstanceGroup~~) operation.
2936
+ * 2. Call the [AuthorizeInstanceGroup](~~AuthorizeInstanceGroup~~) operation to authorize at the delivery group level, or call the [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~) operation to authorize at the application level.
2937
+ * 3. Call this operation to query authorized users. To remove authorization, pass the returned EndUserId values to the UnAuthorizeUserIds parameter of the authorization operations mentioned above.
2938
+ * ## Error codes
2939
+ * - `ProductTypeInvalid`: The value of ProductType is invalid.
2940
+ * - `InvalidParameter.AppInstanceGroupId/AppInstanceGroupSetId`: Both AppInstanceGroupId and AppInstanceGroupSetId are specified, or neither is specified.
2941
+ * - `InvalidParameter.AppId`: AppId is specified when querying by delivery group set.
2942
+ * - `InvalidParameter.AppInstancePersistentId`: AppInstancePersistentId is specified when querying by delivery group set.
2943
+ * - `InvalidAppInstanceGroupSpecItem.NotFound`: The delivery group does not exist, does not belong to the current account, or the product type does not match.
2944
+ * - `InvalidBrowserInstanceGroup.NotFound`: When ProductType is `CloudBrowser`, the cloud browser group does not exist, does not belong to the current account, or the product type does not match.
2945
+ * - `InvalidAppInstanceGroupSet.NotFound`: The delivery group set does not exist, does not belong to the current account, the product type does not match, or the set does not have an available primary delivery group.
2946
+ * - `InvalidAppInstanceGroupSet.ActivationFailed`: The delivery group set is not in an available state.
2735
2947
  *
2736
2948
  * @param request - ListAuthorizedUsersRequest
2737
2949
  * @returns ListAuthorizedUsersResponse
@@ -3688,6 +3900,192 @@ class Client extends openapi_core_1.default {
3688
3900
  let runtime = new $dara.RuntimeOptions({});
3689
3901
  return await this.listPersistentAppInstancesWithOptions(request, runtime);
3690
3902
  }
3903
+ /**
3904
+ * Queries published delivery groups and their application information for a specified product type under the current Alibaba Cloud account by using paging. Supports filtering by delivery group, application, and user authorization status.
3905
+ *
3906
+ * @remarks
3907
+ * ## Before you begin
3908
+ * When calling this operation with a RAM user or STS credential, the `appstreaming:ListPublishedAppInstanceGroup` permission is required.
3909
+ * A delivery group must be in the published state and have deployed applications in its image to appear in the query results. This operation only queries information. It does not create delivery groups, assign users, or grant application access permissions.
3910
+ * ## Query and pagination
3911
+ * - **You must explicitly pass in `ProductType`, `PageNumber`, and `PageSize`.** Page numbers start from `1`, and the page size ranges from `1` to `100`.
3912
+ * - `AppInstanceGroupId`, `AppInstanceGroupName`, `AppId`, and `AppName` all support substring matching. You can pass them individually or in combination. When multiple conditions are specified, all conditions must be met simultaneously. When both `AppId` and `AppName` are specified, the same application must satisfy both conditions.
3913
+ * - If an optional filter parameter is not specified or is set to an empty string, that condition is not applied. Query results are sorted by delivery group creation time from newest to oldest. A delivery group is not returned multiple times even if it contains multiple matching applications.
3914
+ * - `ExcludeUserId` excludes delivery groups in which all applications have been directly authorized to the specified user. It cannot be used to determine whether the user has no access permissions at all.
3915
+ * - `AppId` and `AppName` only filter delivery groups. **They do not restrict the returned `Apps` list to only the matched applications.**
3916
+ * ## Invoke sequence
3917
+ * 1. Invoke a query with `PageNumber=1` and the desired `PageSize`. For WUYING Cloud Application common scenarios, use `ProductType=CloudApp`.
3918
+ * 2. Read `AppInstanceGroupModels`. To retrieve the next page, keep the product type and filter conditions unchanged and increment `PageNumber`. If no delivery groups match, the total count is `0` and the list is empty. If the page number exceeds the result range, the list may also be empty, but the total count still represents the total number of matching delivery groups.
3919
+ * 3. To retrieve details of a single delivery group, pass the full `AppInstanceGroupId` from the response and the same `ProductType` to [GetAppInstanceGroup](~~GetAppInstanceGroup~~).
3920
+ * The masked identifiers in the examples are for format demonstration purposes. Replace them with your actual identifiers when invoking the operation.
3921
+ *
3922
+ * @param request - ListPublishedAppInstanceGroupRequest
3923
+ * @param runtime - runtime options for this request RuntimeOptions
3924
+ * @returns ListPublishedAppInstanceGroupResponse
3925
+ */
3926
+ async listPublishedAppInstanceGroupWithOptions(request, runtime) {
3927
+ request.validate();
3928
+ let query = {};
3929
+ if (!$dara.isNull(request.appId)) {
3930
+ query["AppId"] = request.appId;
3931
+ }
3932
+ if (!$dara.isNull(request.appInstanceGroupId)) {
3933
+ query["AppInstanceGroupId"] = request.appInstanceGroupId;
3934
+ }
3935
+ if (!$dara.isNull(request.appInstanceGroupName)) {
3936
+ query["AppInstanceGroupName"] = request.appInstanceGroupName;
3937
+ }
3938
+ if (!$dara.isNull(request.appName)) {
3939
+ query["AppName"] = request.appName;
3940
+ }
3941
+ if (!$dara.isNull(request.excludeUserId)) {
3942
+ query["ExcludeUserId"] = request.excludeUserId;
3943
+ }
3944
+ if (!$dara.isNull(request.pageNumber)) {
3945
+ query["PageNumber"] = request.pageNumber;
3946
+ }
3947
+ if (!$dara.isNull(request.pageSize)) {
3948
+ query["PageSize"] = request.pageSize;
3949
+ }
3950
+ if (!$dara.isNull(request.productType)) {
3951
+ query["ProductType"] = request.productType;
3952
+ }
3953
+ let req = new openapi_core_2.$OpenApiUtil.OpenApiRequest({
3954
+ query: openapi_core_2.OpenApiUtil.query(query),
3955
+ });
3956
+ let params = new openapi_core_2.$OpenApiUtil.Params({
3957
+ action: "ListPublishedAppInstanceGroup",
3958
+ version: "2021-09-01",
3959
+ protocol: "HTTPS",
3960
+ pathname: "/",
3961
+ method: "POST",
3962
+ authType: "AK",
3963
+ style: "RPC",
3964
+ reqBodyType: "formData",
3965
+ bodyType: "json",
3966
+ });
3967
+ return $dara.cast(await this.callApi(params, req, runtime), new $_model.ListPublishedAppInstanceGroupResponse({}));
3968
+ }
3969
+ /**
3970
+ * Queries published delivery groups and their application information for a specified product type under the current Alibaba Cloud account by using paging. Supports filtering by delivery group, application, and user authorization status.
3971
+ *
3972
+ * @remarks
3973
+ * ## Before you begin
3974
+ * When calling this operation with a RAM user or STS credential, the `appstreaming:ListPublishedAppInstanceGroup` permission is required.
3975
+ * A delivery group must be in the published state and have deployed applications in its image to appear in the query results. This operation only queries information. It does not create delivery groups, assign users, or grant application access permissions.
3976
+ * ## Query and pagination
3977
+ * - **You must explicitly pass in `ProductType`, `PageNumber`, and `PageSize`.** Page numbers start from `1`, and the page size ranges from `1` to `100`.
3978
+ * - `AppInstanceGroupId`, `AppInstanceGroupName`, `AppId`, and `AppName` all support substring matching. You can pass them individually or in combination. When multiple conditions are specified, all conditions must be met simultaneously. When both `AppId` and `AppName` are specified, the same application must satisfy both conditions.
3979
+ * - If an optional filter parameter is not specified or is set to an empty string, that condition is not applied. Query results are sorted by delivery group creation time from newest to oldest. A delivery group is not returned multiple times even if it contains multiple matching applications.
3980
+ * - `ExcludeUserId` excludes delivery groups in which all applications have been directly authorized to the specified user. It cannot be used to determine whether the user has no access permissions at all.
3981
+ * - `AppId` and `AppName` only filter delivery groups. **They do not restrict the returned `Apps` list to only the matched applications.**
3982
+ * ## Invoke sequence
3983
+ * 1. Invoke a query with `PageNumber=1` and the desired `PageSize`. For WUYING Cloud Application common scenarios, use `ProductType=CloudApp`.
3984
+ * 2. Read `AppInstanceGroupModels`. To retrieve the next page, keep the product type and filter conditions unchanged and increment `PageNumber`. If no delivery groups match, the total count is `0` and the list is empty. If the page number exceeds the result range, the list may also be empty, but the total count still represents the total number of matching delivery groups.
3985
+ * 3. To retrieve details of a single delivery group, pass the full `AppInstanceGroupId` from the response and the same `ProductType` to [GetAppInstanceGroup](~~GetAppInstanceGroup~~).
3986
+ * The masked identifiers in the examples are for format demonstration purposes. Replace them with your actual identifiers when invoking the operation.
3987
+ *
3988
+ * @param request - ListPublishedAppInstanceGroupRequest
3989
+ * @returns ListPublishedAppInstanceGroupResponse
3990
+ */
3991
+ async listPublishedAppInstanceGroup(request) {
3992
+ let runtime = new $dara.RuntimeOptions({});
3993
+ return await this.listPublishedAppInstanceGroupWithOptions(request, runtime);
3994
+ }
3995
+ /**
3996
+ * Queries deployed applications in published delivery groups under the current Alibaba Cloud account for a specified product type by paging, and returns each application along with its delivery group and the number of authorized users by application. Supports filtering by delivery group, application, and user authorization status.
3997
+ *
3998
+ * @remarks
3999
+ * ## Before you begin
4000
+ * When you call this operation by using a RAM user or Security Token Service (STS) credential, you must have the `appstreaming:ListPublishedApps` permission.
4001
+ * Only delivery groups in the published state whose images contain deployed applications are included in the query results. This operation only queries information. It does not create delivery groups or grant or revoke application access permissions.
4002
+ * ## Response granularity
4003
+ * Results are returned on a per-delivery-group-plus-application basis. If the same application is deployed in multiple published delivery groups, a separate record is returned for each combination. `TotalCount` also reflects the number of such combinations. The list is sorted by the creation time of the delivery group in descending order.
4004
+ * ## Query and pagination
4005
+ * - **You must explicitly specify `ProductType`, `PageNumber`, and `PageSize`.** Page numbers start from `1`, and the page size ranges from `1` to `100`. Invalid values return error codes `InvalidParameter.PageNumber` and `InvalidParameter.PageSize`, respectively.
4006
+ * - `AppInstanceGroupId`, `AppInstanceGroupName`, `AppId`, and `AppName` all support substring matching. You can specify them individually or in combination. When multiple conditions are specified, all conditions must be met.
4007
+ * - If an optional filter parameter is not specified or is set to an empty string, filtering is not applied for that condition.
4008
+ * - `ExcludeUserId` excludes applications that have been authorized to the specified user by application, which helps you find applications that can still be authorized to that user. **Access permissions granted through delivery-group-level authorization or user groups are not evaluated by this condition.**
4009
+ * ## Invocation sequence
4010
+ * 1. Initiate a query with `PageNumber=1` and the desired `PageSize`. For WUYING Cloud Application common scenarios, use `ProductType=CloudApp`.
4011
+ * 2. Read `Apps`. To retrieve the next page, increment `PageNumber` while keeping the product type and filter conditions unchanged. If no results match, `TotalCount` is `0` and `Apps` is an empty list. If the page number exceeds the result range, `Apps` may also be empty, but `TotalCount` still indicates the total number of matching records.
4012
+ * 3. To authorize users for a specific application by application, pass the returned `AppInstanceGroupId`, `AppId`, and the same `ProductType` to [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~). To view delivery group details, pass `AppInstanceGroupId` and `ProductType` to [GetAppInstanceGroup](~~GetAppInstanceGroup~~).
4013
+ * The masked identities in the examples are for format demonstration purposes. Replace them with your actual identities when you invoke the operation.
4014
+ *
4015
+ * @param request - ListPublishedAppsRequest
4016
+ * @param runtime - runtime options for this request RuntimeOptions
4017
+ * @returns ListPublishedAppsResponse
4018
+ */
4019
+ async listPublishedAppsWithOptions(request, runtime) {
4020
+ request.validate();
4021
+ let query = {};
4022
+ if (!$dara.isNull(request.appId)) {
4023
+ query["AppId"] = request.appId;
4024
+ }
4025
+ if (!$dara.isNull(request.appInstanceGroupId)) {
4026
+ query["AppInstanceGroupId"] = request.appInstanceGroupId;
4027
+ }
4028
+ if (!$dara.isNull(request.appInstanceGroupName)) {
4029
+ query["AppInstanceGroupName"] = request.appInstanceGroupName;
4030
+ }
4031
+ if (!$dara.isNull(request.appName)) {
4032
+ query["AppName"] = request.appName;
4033
+ }
4034
+ if (!$dara.isNull(request.excludeUserId)) {
4035
+ query["ExcludeUserId"] = request.excludeUserId;
4036
+ }
4037
+ if (!$dara.isNull(request.pageNumber)) {
4038
+ query["PageNumber"] = request.pageNumber;
4039
+ }
4040
+ if (!$dara.isNull(request.pageSize)) {
4041
+ query["PageSize"] = request.pageSize;
4042
+ }
4043
+ if (!$dara.isNull(request.productType)) {
4044
+ query["ProductType"] = request.productType;
4045
+ }
4046
+ let req = new openapi_core_2.$OpenApiUtil.OpenApiRequest({
4047
+ query: openapi_core_2.OpenApiUtil.query(query),
4048
+ });
4049
+ let params = new openapi_core_2.$OpenApiUtil.Params({
4050
+ action: "ListPublishedApps",
4051
+ version: "2021-09-01",
4052
+ protocol: "HTTPS",
4053
+ pathname: "/",
4054
+ method: "POST",
4055
+ authType: "AK",
4056
+ style: "RPC",
4057
+ reqBodyType: "formData",
4058
+ bodyType: "json",
4059
+ });
4060
+ return $dara.cast(await this.callApi(params, req, runtime), new $_model.ListPublishedAppsResponse({}));
4061
+ }
4062
+ /**
4063
+ * Queries deployed applications in published delivery groups under the current Alibaba Cloud account for a specified product type by paging, and returns each application along with its delivery group and the number of authorized users by application. Supports filtering by delivery group, application, and user authorization status.
4064
+ *
4065
+ * @remarks
4066
+ * ## Before you begin
4067
+ * When you call this operation by using a RAM user or Security Token Service (STS) credential, you must have the `appstreaming:ListPublishedApps` permission.
4068
+ * Only delivery groups in the published state whose images contain deployed applications are included in the query results. This operation only queries information. It does not create delivery groups or grant or revoke application access permissions.
4069
+ * ## Response granularity
4070
+ * Results are returned on a per-delivery-group-plus-application basis. If the same application is deployed in multiple published delivery groups, a separate record is returned for each combination. `TotalCount` also reflects the number of such combinations. The list is sorted by the creation time of the delivery group in descending order.
4071
+ * ## Query and pagination
4072
+ * - **You must explicitly specify `ProductType`, `PageNumber`, and `PageSize`.** Page numbers start from `1`, and the page size ranges from `1` to `100`. Invalid values return error codes `InvalidParameter.PageNumber` and `InvalidParameter.PageSize`, respectively.
4073
+ * - `AppInstanceGroupId`, `AppInstanceGroupName`, `AppId`, and `AppName` all support substring matching. You can specify them individually or in combination. When multiple conditions are specified, all conditions must be met.
4074
+ * - If an optional filter parameter is not specified or is set to an empty string, filtering is not applied for that condition.
4075
+ * - `ExcludeUserId` excludes applications that have been authorized to the specified user by application, which helps you find applications that can still be authorized to that user. **Access permissions granted through delivery-group-level authorization or user groups are not evaluated by this condition.**
4076
+ * ## Invocation sequence
4077
+ * 1. Initiate a query with `PageNumber=1` and the desired `PageSize`. For WUYING Cloud Application common scenarios, use `ProductType=CloudApp`.
4078
+ * 2. Read `Apps`. To retrieve the next page, increment `PageNumber` while keeping the product type and filter conditions unchanged. If no results match, `TotalCount` is `0` and `Apps` is an empty list. If the page number exceeds the result range, `Apps` may also be empty, but `TotalCount` still indicates the total number of matching records.
4079
+ * 3. To authorize users for a specific application by application, pass the returned `AppInstanceGroupId`, `AppId`, and the same `ProductType` to [AuthorizeUsersForApp](~~AuthorizeUsersForApp~~). To view delivery group details, pass `AppInstanceGroupId` and `ProductType` to [GetAppInstanceGroup](~~GetAppInstanceGroup~~).
4080
+ * The masked identities in the examples are for format demonstration purposes. Replace them with your actual identities when you invoke the operation.
4081
+ *
4082
+ * @param request - ListPublishedAppsRequest
4083
+ * @returns ListPublishedAppsResponse
4084
+ */
4085
+ async listPublishedApps(request) {
4086
+ let runtime = new $dara.RuntimeOptions({});
4087
+ return await this.listPublishedAppsWithOptions(request, runtime);
4088
+ }
3691
4089
  /**
3692
4090
  * Queries the regions supported by WUYING Cloud Application.
3693
4091
  *
@@ -3787,6 +4185,103 @@ class Client extends openapi_core_1.default {
3787
4185
  let runtime = new $dara.RuntimeOptions({});
3788
4186
  return await this.listTagCloudResourcesWithOptions(request, runtime);
3789
4187
  }
4188
+ /**
4189
+ * Queries tags bound to one or more delivery groups, or filters delivery groups that have specific tags bound by tag key-value pairs.
4190
+ *
4191
+ * @remarks
4192
+ * This operation complies with the Alibaba Cloud tagging standard and is used to query tags bound to Elastic Cloud Application (China) delivery groups. You can query tags bound to resources by resource ID, or filter resources that have specific tags bound by tag key-value pairs.
4193
+ * ## Before you begin
4194
+ * - A delivery group is created. You can call the ListAppInstanceGroup operation to obtain the delivery group ID.
4195
+ * - Tags are bound to the delivery group. You can bind tags by calling the TagResources operation, or by using the console or the Tag service.
4196
+ * ## Parameter description
4197
+ * - **ResourceType is required**. Only `APPINSTANCEGROUP` (delivery group) is supported. If you specify other values, the error code `InvalidResourceType.Invalid` is returned.
4198
+ * - **Specify at least one of ResourceId.N and Tag.N**. If neither is specified, the error code `MissingParameter.ResourceIdsOrTags` is returned.
4199
+ * - If only ResourceId.N is specified: all tags attached to the specified resources are returned.
4200
+ * - If only Tag.N is specified: all resources that have the specified tags attached and their matching tags are returned.
4201
+ * - If both are specified: only records of the specified resources that have the specified tags attached are returned.
4202
+ * - Tag.N.Key is required. If it is empty, the error code `InvalidTagPolicy.KeyInvalid` is returned. Tag.N.Value is optional. If it is not specified, the value of the tag key is not restricted, which means any tag value under the key is matched.
4203
+ * - Multiple Tag.N conditions have an AND relationship. A resource is returned only if it has all specified tags attached.
4204
+ * ## Response description
4205
+ * - Each record in the response corresponds to a resource-tag key-value pair. If a resource has multiple tags bound, multiple records are returned.
4206
+ * - TotalCount indicates the number of records returned.
4207
+ * - This operation returns all matching results at a time. An empty NextToken value indicates that no more data is available.
4208
+ * ## Invocation sequence
4209
+ * 1. Invoke the ListAppInstanceGroup operation to obtain the delivery group ID.
4210
+ * 2. Invoke the TagResources operation to attach tags to the delivery group.
4211
+ * 3. Invoke this operation to query tag bindings by resource ID or tag conditions.
4212
+ *
4213
+ * @param request - ListTagResourcesRequest
4214
+ * @param runtime - runtime options for this request RuntimeOptions
4215
+ * @returns ListTagResourcesResponse
4216
+ */
4217
+ async listTagResourcesWithOptions(request, runtime) {
4218
+ request.validate();
4219
+ let body = {};
4220
+ if (!$dara.isNull(request.nextToken)) {
4221
+ body["NextToken"] = request.nextToken;
4222
+ }
4223
+ if (!$dara.isNull(request.regionId)) {
4224
+ body["RegionId"] = request.regionId;
4225
+ }
4226
+ if (!$dara.isNull(request.resourceId)) {
4227
+ body["ResourceId"] = request.resourceId;
4228
+ }
4229
+ if (!$dara.isNull(request.resourceType)) {
4230
+ body["ResourceType"] = request.resourceType;
4231
+ }
4232
+ let bodyFlat = {};
4233
+ if (!$dara.isNull(request.tag)) {
4234
+ bodyFlat["Tag"] = request.tag;
4235
+ }
4236
+ body = Object.assign(Object.assign({}, body), openapi_core_2.OpenApiUtil.query(bodyFlat));
4237
+ let req = new openapi_core_2.$OpenApiUtil.OpenApiRequest({
4238
+ body: openapi_core_2.OpenApiUtil.parseToMap(body),
4239
+ });
4240
+ let params = new openapi_core_2.$OpenApiUtil.Params({
4241
+ action: "ListTagResources",
4242
+ version: "2021-09-01",
4243
+ protocol: "HTTPS",
4244
+ pathname: "/",
4245
+ method: "POST",
4246
+ authType: "AK",
4247
+ style: "RPC",
4248
+ reqBodyType: "formData",
4249
+ bodyType: "json",
4250
+ });
4251
+ return $dara.cast(await this.callApi(params, req, runtime), new $_model.ListTagResourcesResponse({}));
4252
+ }
4253
+ /**
4254
+ * Queries tags bound to one or more delivery groups, or filters delivery groups that have specific tags bound by tag key-value pairs.
4255
+ *
4256
+ * @remarks
4257
+ * This operation complies with the Alibaba Cloud tagging standard and is used to query tags bound to Elastic Cloud Application (China) delivery groups. You can query tags bound to resources by resource ID, or filter resources that have specific tags bound by tag key-value pairs.
4258
+ * ## Before you begin
4259
+ * - A delivery group is created. You can call the ListAppInstanceGroup operation to obtain the delivery group ID.
4260
+ * - Tags are bound to the delivery group. You can bind tags by calling the TagResources operation, or by using the console or the Tag service.
4261
+ * ## Parameter description
4262
+ * - **ResourceType is required**. Only `APPINSTANCEGROUP` (delivery group) is supported. If you specify other values, the error code `InvalidResourceType.Invalid` is returned.
4263
+ * - **Specify at least one of ResourceId.N and Tag.N**. If neither is specified, the error code `MissingParameter.ResourceIdsOrTags` is returned.
4264
+ * - If only ResourceId.N is specified: all tags attached to the specified resources are returned.
4265
+ * - If only Tag.N is specified: all resources that have the specified tags attached and their matching tags are returned.
4266
+ * - If both are specified: only records of the specified resources that have the specified tags attached are returned.
4267
+ * - Tag.N.Key is required. If it is empty, the error code `InvalidTagPolicy.KeyInvalid` is returned. Tag.N.Value is optional. If it is not specified, the value of the tag key is not restricted, which means any tag value under the key is matched.
4268
+ * - Multiple Tag.N conditions have an AND relationship. A resource is returned only if it has all specified tags attached.
4269
+ * ## Response description
4270
+ * - Each record in the response corresponds to a resource-tag key-value pair. If a resource has multiple tags bound, multiple records are returned.
4271
+ * - TotalCount indicates the number of records returned.
4272
+ * - This operation returns all matching results at a time. An empty NextToken value indicates that no more data is available.
4273
+ * ## Invocation sequence
4274
+ * 1. Invoke the ListAppInstanceGroup operation to obtain the delivery group ID.
4275
+ * 2. Invoke the TagResources operation to attach tags to the delivery group.
4276
+ * 3. Invoke this operation to query tag bindings by resource ID or tag conditions.
4277
+ *
4278
+ * @param request - ListTagResourcesRequest
4279
+ * @returns ListTagResourcesResponse
4280
+ */
4281
+ async listTagResources(request) {
4282
+ let runtime = new $dara.RuntimeOptions({});
4283
+ return await this.listTagResourcesWithOptions(request, runtime);
4284
+ }
3790
4285
  /**
3791
4286
  * Queries the configuration information of an administrator account, such as whether resource expiration reminders are enabled.
3792
4287
  *
@@ -3923,6 +4418,79 @@ class Client extends openapi_core_1.default {
3923
4418
  let runtime = new $dara.RuntimeOptions({});
3924
4419
  return await this.listWuyingServerWithOptions(request, runtime);
3925
4420
  }
4421
+ /**
4422
+ * Queries the list of available zone IDs for a specified region, product type, and operating system type.
4423
+ *
4424
+ * @remarks
4425
+ * ## Operation description
4426
+ * This operation returns the list of available zone IDs for the current Alibaba Cloud account based on the specified region, product type, and operating system type. A typical use case is to check which zones are available before creating a resource that requires a vSwitch, and then select a vSwitch in one of those zones.
4427
+ * This operation only queries information. It does not create resources or incur fees.
4428
+ * ## Before you begin
4429
+ * - When calling this operation with a RAM user or STS credential, the `appstreaming:ListAppInstanceType` permission is required. If the permission is insufficient, the error code `Forbidden.NoPermission` is returned.
4430
+ * - **`ProductType`, `BizRegionId`, and `OsType` are all required.** If any of these parameters is missing, empty, or set to an unrecognized value, the error code `InvalidParameter.ValueInvalid` is returned.
4431
+ * - `BizRegionId` must be a region ID supported by WUYING Cloud Application. Call [ListRegions](~~ListRegions~~) first to obtain the supported region IDs.
4432
+ * ## Call sequence
4433
+ * 1. Call [ListRegions](~~ListRegions~~) to obtain the supported region IDs.
4434
+ * 2. Call this operation with the region ID, target product type, and operating system type, and read the returned `ListZonesModel.Zones`.
4435
+ * 3. When creating a resource that requires a vSwitch, select a vSwitch in one of the returned zones. For example, pass the corresponding vSwitch ID when calling [CreateAppInstanceGroup](~~CreateAppInstanceGroup~~) or [CreateWuyingServer](~~CreateWuyingServer~~).
4436
+ * The returned zone list is determined by the available resources in the current region and may change over time. Query the list in real time before creating resources instead of caching it for extended periods.
4437
+ *
4438
+ * @param request - ListZonesRequest
4439
+ * @param runtime - runtime options for this request RuntimeOptions
4440
+ * @returns ListZonesResponse
4441
+ */
4442
+ async listZonesWithOptions(request, runtime) {
4443
+ request.validate();
4444
+ let query = {};
4445
+ if (!$dara.isNull(request.bizRegionId)) {
4446
+ query["BizRegionId"] = request.bizRegionId;
4447
+ }
4448
+ if (!$dara.isNull(request.osType)) {
4449
+ query["OsType"] = request.osType;
4450
+ }
4451
+ if (!$dara.isNull(request.productType)) {
4452
+ query["ProductType"] = request.productType;
4453
+ }
4454
+ let req = new openapi_core_2.$OpenApiUtil.OpenApiRequest({
4455
+ query: openapi_core_2.OpenApiUtil.query(query),
4456
+ });
4457
+ let params = new openapi_core_2.$OpenApiUtil.Params({
4458
+ action: "ListZones",
4459
+ version: "2021-09-01",
4460
+ protocol: "HTTPS",
4461
+ pathname: "/",
4462
+ method: "POST",
4463
+ authType: "AK",
4464
+ style: "RPC",
4465
+ reqBodyType: "formData",
4466
+ bodyType: "json",
4467
+ });
4468
+ return $dara.cast(await this.callApi(params, req, runtime), new $_model.ListZonesResponse({}));
4469
+ }
4470
+ /**
4471
+ * Queries the list of available zone IDs for a specified region, product type, and operating system type.
4472
+ *
4473
+ * @remarks
4474
+ * ## Operation description
4475
+ * This operation returns the list of available zone IDs for the current Alibaba Cloud account based on the specified region, product type, and operating system type. A typical use case is to check which zones are available before creating a resource that requires a vSwitch, and then select a vSwitch in one of those zones.
4476
+ * This operation only queries information. It does not create resources or incur fees.
4477
+ * ## Before you begin
4478
+ * - When calling this operation with a RAM user or STS credential, the `appstreaming:ListAppInstanceType` permission is required. If the permission is insufficient, the error code `Forbidden.NoPermission` is returned.
4479
+ * - **`ProductType`, `BizRegionId`, and `OsType` are all required.** If any of these parameters is missing, empty, or set to an unrecognized value, the error code `InvalidParameter.ValueInvalid` is returned.
4480
+ * - `BizRegionId` must be a region ID supported by WUYING Cloud Application. Call [ListRegions](~~ListRegions~~) first to obtain the supported region IDs.
4481
+ * ## Call sequence
4482
+ * 1. Call [ListRegions](~~ListRegions~~) to obtain the supported region IDs.
4483
+ * 2. Call this operation with the region ID, target product type, and operating system type, and read the returned `ListZonesModel.Zones`.
4484
+ * 3. When creating a resource that requires a vSwitch, select a vSwitch in one of the returned zones. For example, pass the corresponding vSwitch ID when calling [CreateAppInstanceGroup](~~CreateAppInstanceGroup~~) or [CreateWuyingServer](~~CreateWuyingServer~~).
4485
+ * The returned zone list is determined by the available resources in the current region and may change over time. Query the list in real time before creating resources instead of caching it for extended periods.
4486
+ *
4487
+ * @param request - ListZonesRequest
4488
+ * @returns ListZonesResponse
4489
+ */
4490
+ async listZones(request) {
4491
+ let runtime = new $dara.RuntimeOptions({});
4492
+ return await this.listZonesWithOptions(request, runtime);
4493
+ }
3926
4494
  /**
3927
4495
  * Logs off all sessions in a pay-as-you-go delivery group that has scheduled auto scaling enabled.
3928
4496
  *
@@ -4981,6 +5549,96 @@ class Client extends openapi_core_1.default {
4981
5549
  let runtime = new $dara.RuntimeOptions({});
4982
5550
  return await this.tagCloudResourcesWithOptions(request, runtime);
4983
5551
  }
5552
+ /**
5553
+ * Creates and binds tags to specified China Office (Chinese: Wuying) delivery groups in compliance with Alibaba Cloud tag specifications. If a tag key already exists on a resource, the tag value is updated to the value specified in the current request. Currently, only delivery group (`APPINSTANCEGROUP`) resource types are supported.
5554
+ *
5555
+ * @remarks
5556
+ * ## Before you begin
5557
+ * When you use a RAM user or Security Token Service (STS) credential to call this operation, you must have the `appstreaming:TagResources` permission.
5558
+ * The resources to which you want to bind tags must belong to the current Alibaba Cloud account. **This operation currently supports only delivery group resources.** You can set `ResourceType` only to `APPINSTANCEGROUP`. You can call [ListAppInstanceGroup](~~ListAppInstanceGroup~~) to obtain delivery group IDs.
5559
+ * ## Tag rules
5560
+ * - In a single request, you can bind up to **20 tags** to up to **50 resources**. Duplicate resource IDs are automatically deduplicated.
5561
+ * - A tag key must be 1 to 128 characters in length. A tag value must be 0 to 256 characters in length. Both are case-sensitive.
5562
+ * - A tag key cannot start with `aliyun` or `acs:` (case-insensitive). Neither tag keys nor tag values can contain `http://` or `https://`.
5563
+ * - Tag keys in the same request must be unique. Otherwise, the error code `InvalidTag.Duplicated` is returned.
5564
+ * - Each tag key on a resource can correspond to only one tag value. If the tag key already exists on the resource, the tag value is updated to the new value.
5565
+ * - A maximum of 20 custom tags can be bound to a single resource. If this limit is exceeded, the error code `ResourceTag.CustomTagCountExceed` is returned.
5566
+ * ## Results
5567
+ * - **If any specified delivery group does not exist or does not belong to the current account, the entire request fails.** The error code `InvalidAppInstanceGroup.NotFound` is returned, and no tags are bound to any resource.
5568
+ * - If the binding succeeds, the response contains only `RequestId` and does not return tag details.
5569
+ * - If multiple resources are specified and only some of them fail to be bound, the operation still returns a success response without failure details. Call `ListTagResources` to verify the binding results. If only one resource is specified and the binding fails, the operation returns the corresponding error code.
5570
+ * ## Call sequence
5571
+ * 1. Call [ListAppInstanceGroup](~~ListAppInstanceGroup~~) to obtain the IDs of the delivery groups to which you want to add tags.
5572
+ * 2. Call this operation with `ResourceType=APPINSTANCEGROUP`, `ResourceId.N`, and `Tag.N.Key`/`Tag.N.Value`.
5573
+ * 3. To view the tags bound to resources, call `ListTagResources`. To unbind tags, call `UntagResources`.
5574
+ * The masked identifiers in the examples are used to demonstrate the format. Replace them with your actual identifiers when you call the operation.
5575
+ *
5576
+ * @param request - TagResourcesRequest
5577
+ * @param runtime - runtime options for this request RuntimeOptions
5578
+ * @returns TagResourcesResponse
5579
+ */
5580
+ async tagResourcesWithOptions(request, runtime) {
5581
+ request.validate();
5582
+ let body = {};
5583
+ if (!$dara.isNull(request.regionId)) {
5584
+ body["RegionId"] = request.regionId;
5585
+ }
5586
+ if (!$dara.isNull(request.resourceId)) {
5587
+ body["ResourceId"] = request.resourceId;
5588
+ }
5589
+ if (!$dara.isNull(request.resourceType)) {
5590
+ body["ResourceType"] = request.resourceType;
5591
+ }
5592
+ if (!$dara.isNull(request.tag)) {
5593
+ body["Tag"] = request.tag;
5594
+ }
5595
+ let req = new openapi_core_2.$OpenApiUtil.OpenApiRequest({
5596
+ body: openapi_core_2.OpenApiUtil.parseToMap(body),
5597
+ });
5598
+ let params = new openapi_core_2.$OpenApiUtil.Params({
5599
+ action: "TagResources",
5600
+ version: "2021-09-01",
5601
+ protocol: "HTTPS",
5602
+ pathname: "/",
5603
+ method: "POST",
5604
+ authType: "AK",
5605
+ style: "RPC",
5606
+ reqBodyType: "formData",
5607
+ bodyType: "json",
5608
+ });
5609
+ return $dara.cast(await this.callApi(params, req, runtime), new $_model.TagResourcesResponse({}));
5610
+ }
5611
+ /**
5612
+ * Creates and binds tags to specified China Office (Chinese: Wuying) delivery groups in compliance with Alibaba Cloud tag specifications. If a tag key already exists on a resource, the tag value is updated to the value specified in the current request. Currently, only delivery group (`APPINSTANCEGROUP`) resource types are supported.
5613
+ *
5614
+ * @remarks
5615
+ * ## Before you begin
5616
+ * When you use a RAM user or Security Token Service (STS) credential to call this operation, you must have the `appstreaming:TagResources` permission.
5617
+ * The resources to which you want to bind tags must belong to the current Alibaba Cloud account. **This operation currently supports only delivery group resources.** You can set `ResourceType` only to `APPINSTANCEGROUP`. You can call [ListAppInstanceGroup](~~ListAppInstanceGroup~~) to obtain delivery group IDs.
5618
+ * ## Tag rules
5619
+ * - In a single request, you can bind up to **20 tags** to up to **50 resources**. Duplicate resource IDs are automatically deduplicated.
5620
+ * - A tag key must be 1 to 128 characters in length. A tag value must be 0 to 256 characters in length. Both are case-sensitive.
5621
+ * - A tag key cannot start with `aliyun` or `acs:` (case-insensitive). Neither tag keys nor tag values can contain `http://` or `https://`.
5622
+ * - Tag keys in the same request must be unique. Otherwise, the error code `InvalidTag.Duplicated` is returned.
5623
+ * - Each tag key on a resource can correspond to only one tag value. If the tag key already exists on the resource, the tag value is updated to the new value.
5624
+ * - A maximum of 20 custom tags can be bound to a single resource. If this limit is exceeded, the error code `ResourceTag.CustomTagCountExceed` is returned.
5625
+ * ## Results
5626
+ * - **If any specified delivery group does not exist or does not belong to the current account, the entire request fails.** The error code `InvalidAppInstanceGroup.NotFound` is returned, and no tags are bound to any resource.
5627
+ * - If the binding succeeds, the response contains only `RequestId` and does not return tag details.
5628
+ * - If multiple resources are specified and only some of them fail to be bound, the operation still returns a success response without failure details. Call `ListTagResources` to verify the binding results. If only one resource is specified and the binding fails, the operation returns the corresponding error code.
5629
+ * ## Call sequence
5630
+ * 1. Call [ListAppInstanceGroup](~~ListAppInstanceGroup~~) to obtain the IDs of the delivery groups to which you want to add tags.
5631
+ * 2. Call this operation with `ResourceType=APPINSTANCEGROUP`, `ResourceId.N`, and `Tag.N.Key`/`Tag.N.Value`.
5632
+ * 3. To view the tags bound to resources, call `ListTagResources`. To unbind tags, call `UntagResources`.
5633
+ * The masked identifiers in the examples are used to demonstrate the format. Replace them with your actual identifiers when you call the operation.
5634
+ *
5635
+ * @param request - TagResourcesRequest
5636
+ * @returns TagResourcesResponse
5637
+ */
5638
+ async tagResources(request) {
5639
+ let runtime = new $dara.RuntimeOptions({});
5640
+ return await this.tagResourcesWithOptions(request, runtime);
5641
+ }
4984
5642
  /**
4985
5643
  * Unbinds secondary private IP addresses from a development host.
4986
5644
  *
@@ -5119,6 +5777,99 @@ class Client extends openapi_core_1.default {
5119
5777
  let runtime = new $dara.RuntimeOptions({});
5120
5778
  return await this.untagCloudResourcesWithOptions(request, runtime);
5121
5779
  }
5780
+ /**
5781
+ * Unbinds tags from specified Wuying delivery groups in compliance with Alibaba Cloud tagging standards. You can unbind specific tags by tag key or unbind all custom tags from a resource at once by setting `All=true` without specifying tag keys. Currently, only the delivery group (`APPINSTANCEGROUP`) resource type is supported.
5782
+ *
5783
+ * @remarks
5784
+ * ## Before you begin
5785
+ * When calling this operation with a RAM user or STS credential, the `appstreaming:UntagResources` permission is required.
5786
+ * The resources from which you want to unbind tags must belong to the current Alibaba Cloud account. **This operation currently supports only delivery group resources.** You can set `ResourceType` only to `APPINSTANCEGROUP`. You can obtain delivery group IDs by calling [ListAppInstanceGroup](~~ListAppInstanceGroup~~), and query tags that are bound to a resource by calling [ListTagResources](~~ListTagResources~~).
5787
+ * ## Parameter description
5788
+ * - You can unbind tags from up to **50 resources** in a single request. Duplicate resource IDs are automatically deduplicated.
5789
+ * - **Specify at least one of `TagKey.N` and `All`.** If neither is specified, or if `TagKey.N` is not specified and `All` is set to `false`, the error code `InvalidParameter.TagKeyListOrAll` is returned.
5790
+ * - If `TagKey.N` is specified: only the tags that correspond to the specified tag keys are unbound. You can specify up to 20 tag keys at a time. The `All` parameter is ignored.
5791
+ * - If `TagKey.N` is not specified and `All=true`: all custom tags on the resource are unbound, including Wuying system tags that start with `System/` and were attached by calling [TagResources](~~TagResources~~).
5792
+ * - If a specified tag key does not exist on the resource, the tag key is skipped and no error is returned.
5793
+ * - Tag keys that start with `System/` are Wuying system tags. Only `System/Scheduler/GRAYSCALE` and `System/Scheduler/STOP_NEW_USER_CONNECTION` are supported. If you specify other tag keys that start with `System/`, the error code `InvalidTagPolicy.KeyInvalid` or `InvalidTag.SystemKeyNotAllow` is returned.
5794
+ * ## Execution results
5795
+ * - **If any specified delivery group does not exist or does not belong to the current account, the entire request fails** with the error code `InvalidAppInstanceGroup.NotFound`, and no tags are unbound from any resource.
5796
+ * - On success, the response contains only `RequestId` and does not return tag details.
5797
+ * - When multiple resources are specified and only some fail to have tags unbound, the operation still returns success and the response does not contain failure details. Call [ListTagResources](~~ListTagResources~~) to verify the unbinding results. When only one resource is specified and the unbinding fails, the operation returns the corresponding error code directly.
5798
+ * ## Call sequence
5799
+ * 1. Call [ListAppInstanceGroup](~~ListAppInstanceGroup~~) to obtain delivery group IDs. To check which tag keys are bound to a resource, call [ListTagResources](~~ListTagResources~~).
5800
+ * 2. Call this operation with `ResourceType=APPINSTANCEGROUP` and `ResourceId.N`, and specify `TagKey.N` or `All=true` to indicate the tags to unbind.
5801
+ * 3. To rebind tags, call [TagResources](~~TagResources~~).
5802
+ * The masked identifiers in the examples are for format demonstration purposes only. Replace them with your actual identifiers when making calls.
5803
+ *
5804
+ * @param request - UntagResourcesRequest
5805
+ * @param runtime - runtime options for this request RuntimeOptions
5806
+ * @returns UntagResourcesResponse
5807
+ */
5808
+ async untagResourcesWithOptions(request, runtime) {
5809
+ request.validate();
5810
+ let body = {};
5811
+ if (!$dara.isNull(request.all)) {
5812
+ body["All"] = request.all;
5813
+ }
5814
+ if (!$dara.isNull(request.regionId)) {
5815
+ body["RegionId"] = request.regionId;
5816
+ }
5817
+ if (!$dara.isNull(request.resourceId)) {
5818
+ body["ResourceId"] = request.resourceId;
5819
+ }
5820
+ if (!$dara.isNull(request.resourceType)) {
5821
+ body["ResourceType"] = request.resourceType;
5822
+ }
5823
+ if (!$dara.isNull(request.tagKey)) {
5824
+ body["TagKey"] = request.tagKey;
5825
+ }
5826
+ let req = new openapi_core_2.$OpenApiUtil.OpenApiRequest({
5827
+ body: openapi_core_2.OpenApiUtil.parseToMap(body),
5828
+ });
5829
+ let params = new openapi_core_2.$OpenApiUtil.Params({
5830
+ action: "UntagResources",
5831
+ version: "2021-09-01",
5832
+ protocol: "HTTPS",
5833
+ pathname: "/",
5834
+ method: "POST",
5835
+ authType: "AK",
5836
+ style: "RPC",
5837
+ reqBodyType: "formData",
5838
+ bodyType: "json",
5839
+ });
5840
+ return $dara.cast(await this.callApi(params, req, runtime), new $_model.UntagResourcesResponse({}));
5841
+ }
5842
+ /**
5843
+ * Unbinds tags from specified Wuying delivery groups in compliance with Alibaba Cloud tagging standards. You can unbind specific tags by tag key or unbind all custom tags from a resource at once by setting `All=true` without specifying tag keys. Currently, only the delivery group (`APPINSTANCEGROUP`) resource type is supported.
5844
+ *
5845
+ * @remarks
5846
+ * ## Before you begin
5847
+ * When calling this operation with a RAM user or STS credential, the `appstreaming:UntagResources` permission is required.
5848
+ * The resources from which you want to unbind tags must belong to the current Alibaba Cloud account. **This operation currently supports only delivery group resources.** You can set `ResourceType` only to `APPINSTANCEGROUP`. You can obtain delivery group IDs by calling [ListAppInstanceGroup](~~ListAppInstanceGroup~~), and query tags that are bound to a resource by calling [ListTagResources](~~ListTagResources~~).
5849
+ * ## Parameter description
5850
+ * - You can unbind tags from up to **50 resources** in a single request. Duplicate resource IDs are automatically deduplicated.
5851
+ * - **Specify at least one of `TagKey.N` and `All`.** If neither is specified, or if `TagKey.N` is not specified and `All` is set to `false`, the error code `InvalidParameter.TagKeyListOrAll` is returned.
5852
+ * - If `TagKey.N` is specified: only the tags that correspond to the specified tag keys are unbound. You can specify up to 20 tag keys at a time. The `All` parameter is ignored.
5853
+ * - If `TagKey.N` is not specified and `All=true`: all custom tags on the resource are unbound, including Wuying system tags that start with `System/` and were attached by calling [TagResources](~~TagResources~~).
5854
+ * - If a specified tag key does not exist on the resource, the tag key is skipped and no error is returned.
5855
+ * - Tag keys that start with `System/` are Wuying system tags. Only `System/Scheduler/GRAYSCALE` and `System/Scheduler/STOP_NEW_USER_CONNECTION` are supported. If you specify other tag keys that start with `System/`, the error code `InvalidTagPolicy.KeyInvalid` or `InvalidTag.SystemKeyNotAllow` is returned.
5856
+ * ## Execution results
5857
+ * - **If any specified delivery group does not exist or does not belong to the current account, the entire request fails** with the error code `InvalidAppInstanceGroup.NotFound`, and no tags are unbound from any resource.
5858
+ * - On success, the response contains only `RequestId` and does not return tag details.
5859
+ * - When multiple resources are specified and only some fail to have tags unbound, the operation still returns success and the response does not contain failure details. Call [ListTagResources](~~ListTagResources~~) to verify the unbinding results. When only one resource is specified and the unbinding fails, the operation returns the corresponding error code directly.
5860
+ * ## Call sequence
5861
+ * 1. Call [ListAppInstanceGroup](~~ListAppInstanceGroup~~) to obtain delivery group IDs. To check which tag keys are bound to a resource, call [ListTagResources](~~ListTagResources~~).
5862
+ * 2. Call this operation with `ResourceType=APPINSTANCEGROUP` and `ResourceId.N`, and specify `TagKey.N` or `All=true` to indicate the tags to unbind.
5863
+ * 3. To rebind tags, call [TagResources](~~TagResources~~).
5864
+ * The masked identifiers in the examples are for format demonstration purposes only. Replace them with your actual identifiers when making calls.
5865
+ *
5866
+ * @param request - UntagResourcesRequest
5867
+ * @returns UntagResourcesResponse
5868
+ */
5869
+ async untagResources(request) {
5870
+ let runtime = new $dara.RuntimeOptions({});
5871
+ return await this.untagResourcesWithOptions(request, runtime);
5872
+ }
5122
5873
  /**
5123
5874
  * Updates the image of a delivery group.
5124
5875
  *