diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1cd20d646..6d4144fcb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
# CHANGELOG
+## 1.8.2206 - 2024-10-23
+ListUsers,ListUserBasicInfos api新增支持status字段
+
+
## 1.8.2205 - 2024-10-22
- Add openapi StartEaiJupyter.
- Add openapi StopEaiJupyter.
diff --git a/src/IdeHelper.php b/src/IdeHelper.php
index 144872910..1769c0577 100644
--- a/src/IdeHelper.php
+++ b/src/IdeHelper.php
@@ -158,6 +158,7 @@
* @method static Imarketing\Imarketing imarketing()
* @method static Imgsearch\Imgsearch imgsearch()
* @method static Imm\Imm imm()
+ * @method static Ims\Ims ims()
* @method static IndustryBrain\IndustryBrain industryBrain()
* @method static Iot\Iot iot()
* @method static Iqa\Iqa iqa()
diff --git a/src/Ims/Ims.php b/src/Ims/Ims.php
new file mode 100644
index 000000000..7caf1629a
--- /dev/null
+++ b/src/Ims/Ims.php
@@ -0,0 +1,12 @@
+
+
+
+
+Alibaba Cloud Ims SDK for PHP
+
+If [Alibaba Cloud SDK for PHP][sdk] is installed, there is no need to install the product dependency package. This product dependency package is only part of the synchronization from [Alibaba Cloud SDK for PHP][sdk], and its namespace and usage are consistent with [Alibaba Cloud SDK for PHP][sdk].
+
+If you don't care about file size, we recommend that you install [Alibaba Cloud SDK for PHP][sdk] and update it regularly so as to maintain the latest and most complete product support:
+```
+composer require alibabacloud/sdk
+```
+
+The product can also be installed only:
+> The version of this product is always synchronized with [Alibaba Cloud SDK for PHP][sdk] to ensure that it can switch with [Alibaba Cloud SDK for PHP][sdk] at any time without changing the business code, although the code between different versions of this product may not change.
+```
+composer require alibabacloud/ims
+```
+
+***
+Refer to document [Alibaba Cloud SDK for PHP][sdk] for more SDK usage.
+
+[sdk]: https://github.com/aliyun/openapi-sdk-php
diff --git a/src/Ims/README.md b/src/Ims/README.md
new file mode 100644
index 000000000..6c534b166
--- /dev/null
+++ b/src/Ims/README.md
@@ -0,0 +1,25 @@
+简体中文 | [English](./README-EN.md)
+
+
+
+
+
+Alibaba Cloud Ims SDK for PHP
+
+若已安装 [Alibaba Cloud SDK for PHP][sdk] 则无需安装本产品依赖包。本产品依赖包只是从 [Alibaba Cloud SDK for PHP][sdk] 中同步出来的一部分,其命名空间、用法与 [Alibaba Cloud SDK for PHP][sdk] 一致。
+
+如果您不在乎文件体积,建议您安装 [Alibaba Cloud SDK for PHP][sdk] 并经常更新,以便保持最新、最全的产品支持:
+```
+composer require alibabacloud/sdk
+```
+
+也可仅安装本产品:
+> 本产品的版本始终和 [Alibaba Cloud SDK for PHP][sdk] 保持同步,以保证在不改变业务代码的情况下随时和 [Alibaba Cloud SDK for PHP][sdk] 相互切换,尽管本产品不同版本之间的代码可能没有变化。
+```
+composer require alibabacloud/ims
+```
+
+***
+更多 SDK 的使用请参考 [Alibaba Cloud SDK for PHP][sdk] 文档。
+
+[sdk]: https://github.com/aliyun/openapi-sdk-php
diff --git a/src/Ims/V20190815/ImsApiResolver.php b/src/Ims/V20190815/ImsApiResolver.php
new file mode 100644
index 000000000..ed13a0fc4
--- /dev/null
+++ b/src/Ims/V20190815/ImsApiResolver.php
@@ -0,0 +1,1278 @@
+data['Tag'] = $tag;
+ foreach ($tag as $depth1 => $depth1Value) {
+ if(isset($depth1Value['Value'])){
+ $this->options['query']['Tag.' . ($depth1 + 1) . '.Value'] = $depth1Value['Value'];
+ }
+ if(isset($depth1Value['Key'])){
+ $this->options['query']['Tag.' . ($depth1 + 1) . '.Key'] = $depth1Value['Key'];
+ }
+ }
+
+ return $this;
+ }
+}
+
+/**
+ * @method string getVirtualMFADeviceName()
+ * @method $this withVirtualMFADeviceName($value)
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class CreateVirtualMFADevice extends Rpc
+{
+}
+
+/**
+ * @method string getUserAccessKeyId()
+ * @method $this withUserAccessKeyId($value)
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class DeleteAccessKey extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getAppId()
+ * @method $this withAppId($value)
+ */
+class DeleteApplication extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getAppSecretId()
+ * @method $this withAppSecretId($value)
+ * @method string getAppId()
+ * @method $this withAppId($value)
+ */
+class DeleteAppSecret extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getGroupName()
+ * @method $this withGroupName($value)
+ * @method string getGroupPrincipalName()
+ * @method $this withGroupPrincipalName($value)
+ */
+class DeleteGroup extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class DeleteLoginProfile extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getOIDCProviderName()
+ * @method $this withOIDCProviderName($value)
+ */
+class DeleteOIDCProvider extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getSAMLProviderName()
+ * @method $this withSAMLProviderName($value)
+ */
+class DeleteSAMLProvider extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserId()
+ * @method $this withUserId($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class DeleteUser extends Rpc
+{
+}
+
+/**
+ * @method string getSerialNumber()
+ * @method $this withSerialNumber($value)
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class DeleteVirtualMFADevice extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class DisableVirtualMFA extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class GenerateCredentialReport extends Rpc
+{
+}
+
+/**
+ * @method string getUserAccessKeyId()
+ * @method $this withUserAccessKeyId($value)
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class GetAccessKeyLastUsed extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class GetAccountMFAInfo extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class GetAccountSecurityPracticeReport extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class GetAccountSummary extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getAppId()
+ * @method $this withAppId($value)
+ */
+class GetApplication extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getAppSecretId()
+ * @method $this withAppSecretId($value)
+ * @method string getAppId()
+ * @method $this withAppId($value)
+ */
+class GetAppSecret extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getNextToken()
+ * @method $this withNextToken($value)
+ * @method string getMaxItems()
+ * @method $this withMaxItems($value)
+ */
+class GetCredentialReport extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class GetDefaultDomain extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getGroupName()
+ * @method $this withGroupName($value)
+ * @method string getGroupPrincipalName()
+ * @method $this withGroupPrincipalName($value)
+ */
+class GetGroup extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class GetLoginProfile extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getOIDCProviderName()
+ * @method $this withOIDCProviderName($value)
+ */
+class GetOIDCProvider extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class GetPasswordPolicy extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getSAMLProviderName()
+ * @method $this withSAMLProviderName($value)
+ */
+class GetSAMLProvider extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class GetSecurityPreference extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserId()
+ * @method $this withUserId($value)
+ * @method string getUserAccessKeyId()
+ * @method $this withUserAccessKeyId($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class GetUser extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class GetUserMFAInfo extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class GetUserSsoSettings extends Rpc
+{
+}
+
+/**
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class GetVerificationInfo extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class ListAccessKeys extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ */
+class ListApplications extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getAppId()
+ * @method $this withAppId($value)
+ */
+class ListAppSecretIds extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getMarker()
+ * @method $this withMarker($value)
+ * @method string getMaxItems()
+ * @method $this withMaxItems($value)
+ */
+class ListGroups extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class ListGroupsForUser extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getMarker()
+ * @method $this withMarker($value)
+ * @method string getMaxItems()
+ * @method $this withMaxItems($value)
+ */
+class ListOIDCProviders extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getAppType()
+ * @method $this withAppType($value)
+ */
+class ListPredefinedScopes extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getMarker()
+ * @method $this withMarker($value)
+ * @method string getMaxItems()
+ * @method $this withMaxItems($value)
+ */
+class ListSAMLProviders extends Rpc
+{
+}
+
+/**
+ * @method string getNextToken()
+ * @method $this withNextToken($value)
+ * @method string getPageSize()
+ * @method $this withPageSize($value)
+ * @method array getTag()
+ * @method array getResourcePrincipalName()
+ * @method array getResourceId()
+ * @method string getResourceType()
+ * @method $this withResourceType($value)
+ */
+class ListTagResources extends Rpc
+{
+
+ /**
+ * @param array $tag
+ *
+ * @return $this
+ */
+ public function withTag(array $tag)
+ {
+ $this->data['Tag'] = $tag;
+ foreach ($tag as $depth1 => $depth1Value) {
+ if(isset($depth1Value['Value'])){
+ $this->options['query']['Tag.' . ($depth1 + 1) . '.Value'] = $depth1Value['Value'];
+ }
+ if(isset($depth1Value['Key'])){
+ $this->options['query']['Tag.' . ($depth1 + 1) . '.Key'] = $depth1Value['Key'];
+ }
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param array $resourcePrincipalName
+ *
+ * @return $this
+ */
+ public function withResourcePrincipalName(array $resourcePrincipalName)
+ {
+ $this->data['ResourcePrincipalName'] = $resourcePrincipalName;
+ foreach ($resourcePrincipalName as $i => $iValue) {
+ $this->options['query']['ResourcePrincipalName.' . ($i + 1)] = $iValue;
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param array $resourceId
+ *
+ * @return $this
+ */
+ public function withResourceId(array $resourceId)
+ {
+ $this->data['ResourceId'] = $resourceId;
+ foreach ($resourceId as $i => $iValue) {
+ $this->options['query']['ResourceId.' . ($i + 1)] = $iValue;
+ }
+
+ return $this;
+ }
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method array getTag()
+ * @method string getMarker()
+ * @method $this withMarker($value)
+ * @method string getMaxItems()
+ * @method $this withMaxItems($value)
+ * @method string getStatus()
+ * @method $this withStatus($value)
+ */
+class ListUserBasicInfos extends Rpc
+{
+
+ /**
+ * @param array $tag
+ *
+ * @return $this
+ */
+ public function withTag(array $tag)
+ {
+ $this->data['Tag'] = $tag;
+ foreach ($tag as $depth1 => $depth1Value) {
+ if(isset($depth1Value['Value'])){
+ $this->options['query']['Tag.' . ($depth1 + 1) . '.Value'] = $depth1Value['Value'];
+ }
+ if(isset($depth1Value['Key'])){
+ $this->options['query']['Tag.' . ($depth1 + 1) . '.Key'] = $depth1Value['Key'];
+ }
+ }
+
+ return $this;
+ }
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method array getTag()
+ * @method string getMarker()
+ * @method $this withMarker($value)
+ * @method string getMaxItems()
+ * @method $this withMaxItems($value)
+ * @method string getStatus()
+ * @method $this withStatus($value)
+ */
+class ListUsers extends Rpc
+{
+
+ /**
+ * @param array $tag
+ *
+ * @return $this
+ */
+ public function withTag(array $tag)
+ {
+ $this->data['Tag'] = $tag;
+ foreach ($tag as $depth1 => $depth1Value) {
+ if(isset($depth1Value['Value'])){
+ $this->options['query']['Tag.' . ($depth1 + 1) . '.Value'] = $depth1Value['Value'];
+ }
+ if(isset($depth1Value['Key'])){
+ $this->options['query']['Tag.' . ($depth1 + 1) . '.Key'] = $depth1Value['Key'];
+ }
+ }
+
+ return $this;
+ }
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getGroupName()
+ * @method $this withGroupName($value)
+ * @method string getMarker()
+ * @method $this withMarker($value)
+ * @method string getMaxItems()
+ * @method $this withMaxItems($value)
+ * @method string getGroupPrincipalName()
+ * @method $this withGroupPrincipalName($value)
+ */
+class ListUsersForGroup extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getMarker()
+ * @method $this withMarker($value)
+ * @method string getMaxItems()
+ * @method $this withMaxItems($value)
+ */
+class ListVirtualMFADevices extends Rpc
+{
+}
+
+/**
+ * @method string getClientId()
+ * @method $this withClientId($value)
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getOIDCProviderName()
+ * @method $this withOIDCProviderName($value)
+ */
+class RemoveClientIdFromOIDCProvider extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getOIDCProviderName()
+ * @method $this withOIDCProviderName($value)
+ * @method string getFingerprint()
+ * @method $this withFingerprint($value)
+ */
+class RemoveFingerprintFromOIDCProvider extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getGroupName()
+ * @method $this withGroupName($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ * @method string getGroupPrincipalName()
+ * @method $this withGroupPrincipalName($value)
+ */
+class RemoveUserFromGroup extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getDefaultDomainName()
+ * @method $this withDefaultDomainName($value)
+ */
+class SetDefaultDomain extends Rpc
+{
+}
+
+/**
+ * @method string getPasswordReusePrevention()
+ * @method $this withPasswordReusePrevention($value)
+ * @method string getRequireUppercaseCharacters()
+ * @method $this withRequireUppercaseCharacters($value)
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getMinimumPasswordDifferentCharacter()
+ * @method $this withMinimumPasswordDifferentCharacter($value)
+ * @method string getMinimumPasswordLength()
+ * @method $this withMinimumPasswordLength($value)
+ * @method string getRequireNumbers()
+ * @method $this withRequireNumbers($value)
+ * @method string getPasswordNotContainUserName()
+ * @method $this withPasswordNotContainUserName($value)
+ * @method string getRequireLowercaseCharacters()
+ * @method $this withRequireLowercaseCharacters($value)
+ * @method string getMaxPasswordAge()
+ * @method $this withMaxPasswordAge($value)
+ * @method string getHardExpire()
+ * @method $this withHardExpire($value)
+ * @method string getMaxLoginAttemps()
+ * @method $this withMaxLoginAttemps($value)
+ * @method string getRequireSymbols()
+ * @method $this withRequireSymbols($value)
+ */
+class SetPasswordPolicy extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getEnableSaveMFATicket()
+ * @method $this withEnableSaveMFATicket($value)
+ * @method string getLoginNetworkMasks()
+ * @method $this withLoginNetworkMasks($value)
+ * @method string getAllowUserToChangePassword()
+ * @method $this withAllowUserToChangePassword($value)
+ * @method string getEnforceMFAForLogin()
+ * @method $this withEnforceMFAForLogin($value)
+ * @method string getLoginSessionDuration()
+ * @method $this withLoginSessionDuration($value)
+ * @method string getVerificationTypes()
+ * @method $this withVerificationTypes($value)
+ * @method string getAllowUserLongTermLogin()
+ * @method $this withAllowUserLongTermLogin($value)
+ * @method string getAllowUserToManageAccessKeys()
+ * @method $this withAllowUserToManageAccessKeys($value)
+ * @method string getAllowUserToManageMFADevices()
+ * @method $this withAllowUserToManageMFADevices($value)
+ * @method string getOperationForRiskLogin()
+ * @method $this withOperationForRiskLogin($value)
+ * @method string getMFAOperationForLogin()
+ * @method $this withMFAOperationForLogin($value)
+ * @method string getAllowUserToManagePersonalDingTalk()
+ * @method $this withAllowUserToManagePersonalDingTalk($value)
+ */
+class SetSecurityPreference extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getAuxiliaryDomain()
+ * @method $this withAuxiliaryDomain($value)
+ * @method string getMetadataDocument()
+ * @method $this withMetadataDocument($value)
+ * @method string getReserved()
+ * @method $this withReserved($value)
+ * @method string getSsoEnabled()
+ * @method $this withSsoEnabled($value)
+ */
+class SetUserSsoSettings extends Rpc
+{
+}
+
+/**
+ * @method array getResourceId()
+ * @method string getResourceType()
+ * @method $this withResourceType($value)
+ * @method array getTag()
+ * @method array getResourcePrincipalName()
+ */
+class TagResources extends Rpc
+{
+
+ /**
+ * @param array $resourceId
+ *
+ * @return $this
+ */
+ public function withResourceId(array $resourceId)
+ {
+ $this->data['ResourceId'] = $resourceId;
+ foreach ($resourceId as $i => $iValue) {
+ $this->options['query']['ResourceId.' . ($i + 1)] = $iValue;
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param array $tag
+ *
+ * @return $this
+ */
+ public function withTag(array $tag)
+ {
+ $this->data['Tag'] = $tag;
+ foreach ($tag as $depth1 => $depth1Value) {
+ if(isset($depth1Value['Value'])){
+ $this->options['query']['Tag.' . ($depth1 + 1) . '.Value'] = $depth1Value['Value'];
+ }
+ if(isset($depth1Value['Key'])){
+ $this->options['query']['Tag.' . ($depth1 + 1) . '.Key'] = $depth1Value['Key'];
+ }
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param array $resourcePrincipalName
+ *
+ * @return $this
+ */
+ public function withResourcePrincipalName(array $resourcePrincipalName)
+ {
+ $this->data['ResourcePrincipalName'] = $resourcePrincipalName;
+ foreach ($resourcePrincipalName as $i => $iValue) {
+ $this->options['query']['ResourcePrincipalName.' . ($i + 1)] = $iValue;
+ }
+
+ return $this;
+ }
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ */
+class UnbindMFADevice extends Rpc
+{
+}
+
+/**
+ * @method array getResourcePrincipalName()
+ * @method string getAll()
+ * @method $this withAll($value)
+ * @method array getResourceId()
+ * @method string getResourceType()
+ * @method $this withResourceType($value)
+ * @method array getTagKey()
+ */
+class UntagResources extends Rpc
+{
+
+ /**
+ * @param array $resourcePrincipalName
+ *
+ * @return $this
+ */
+ public function withResourcePrincipalName(array $resourcePrincipalName)
+ {
+ $this->data['ResourcePrincipalName'] = $resourcePrincipalName;
+ foreach ($resourcePrincipalName as $i => $iValue) {
+ $this->options['query']['ResourcePrincipalName.' . ($i + 1)] = $iValue;
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param array $resourceId
+ *
+ * @return $this
+ */
+ public function withResourceId(array $resourceId)
+ {
+ $this->data['ResourceId'] = $resourceId;
+ foreach ($resourceId as $i => $iValue) {
+ $this->options['query']['ResourceId.' . ($i + 1)] = $iValue;
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param array $tagKey
+ *
+ * @return $this
+ */
+ public function withTagKey(array $tagKey)
+ {
+ $this->data['TagKey'] = $tagKey;
+ foreach ($tagKey as $i => $iValue) {
+ $this->options['query']['TagKey.' . ($i + 1)] = $iValue;
+ }
+
+ return $this;
+ }
+}
+
+/**
+ * @method string getUserAccessKeyId()
+ * @method $this withUserAccessKeyId($value)
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ * @method string getStatus()
+ * @method $this withStatus($value)
+ */
+class UpdateAccessKey extends Rpc
+{
+}
+
+/**
+ * @method string getNewIsMultiTenant()
+ * @method $this withNewIsMultiTenant($value)
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getNewRefreshTokenValidity()
+ * @method $this withNewRefreshTokenValidity($value)
+ * @method string getNewPredefinedScopes()
+ * @method $this withNewPredefinedScopes($value)
+ * @method string getNewSecretRequired()
+ * @method $this withNewSecretRequired($value)
+ * @method string getNewDisplayName()
+ * @method $this withNewDisplayName($value)
+ * @method string getNewRequiredScopes()
+ * @method $this withNewRequiredScopes($value)
+ * @method string getNewRedirectUris()
+ * @method $this withNewRedirectUris($value)
+ * @method string getAppId()
+ * @method $this withAppId($value)
+ * @method string getNewAccessTokenValidity()
+ * @method $this withNewAccessTokenValidity($value)
+ */
+class UpdateApplication extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getNewGroupPrincipalName()
+ * @method $this withNewGroupPrincipalName($value)
+ * @method string getNewDisplayName()
+ * @method $this withNewDisplayName($value)
+ * @method string getGroupName()
+ * @method $this withGroupName($value)
+ * @method string getNewGroupName()
+ * @method $this withNewGroupName($value)
+ * @method string getNewComments()
+ * @method $this withNewComments($value)
+ * @method string getGroupPrincipalName()
+ * @method $this withGroupPrincipalName($value)
+ */
+class UpdateGroup extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getPassword()
+ * @method $this withPassword($value)
+ * @method string getGenerateRandomPassword()
+ * @method $this withGenerateRandomPassword($value)
+ * @method string getMFABindRequired()
+ * @method $this withMFABindRequired($value)
+ * @method string getPasswordResetRequired()
+ * @method $this withPasswordResetRequired($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ * @method string getStatus()
+ * @method $this withStatus($value)
+ */
+class UpdateLoginProfile extends Rpc
+{
+}
+
+/**
+ * @method string getIssuanceLimitTime()
+ * @method $this withIssuanceLimitTime($value)
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getOIDCProviderName()
+ * @method $this withOIDCProviderName($value)
+ * @method string getClientIds()
+ * @method $this withClientIds($value)
+ * @method string getNewDescription()
+ * @method $this withNewDescription($value)
+ */
+class UpdateOIDCProvider extends Rpc
+{
+}
+
+/**
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getNewEncodedSAMLMetadataDocument()
+ * @method $this withNewEncodedSAMLMetadataDocument($value)
+ * @method string getSAMLProviderName()
+ * @method $this withSAMLProviderName($value)
+ * @method string getNewDescription()
+ * @method $this withNewDescription($value)
+ * @method string getNewSAMLMetadataDocument()
+ * @method $this withNewSAMLMetadataDocument($value)
+ */
+class UpdateSAMLProvider extends Rpc
+{
+}
+
+/**
+ * @method string getNewMobilePhone()
+ * @method $this withNewMobilePhone($value)
+ * @method string getAkProxySuffix()
+ * @method $this withAkProxySuffix($value)
+ * @method string getUserId()
+ * @method $this withUserId($value)
+ * @method string getNewEmail()
+ * @method $this withNewEmail($value)
+ * @method string getNewDisplayName()
+ * @method $this withNewDisplayName($value)
+ * @method string getUserPrincipalName()
+ * @method $this withUserPrincipalName($value)
+ * @method string getNewComments()
+ * @method $this withNewComments($value)
+ * @method string getNewUserPrincipalName()
+ * @method $this withNewUserPrincipalName($value)
+ */
+class UpdateUser extends Rpc
+{
+}
diff --git a/src/Ims/composer.json b/src/Ims/composer.json
new file mode 100644
index 000000000..a40138803
--- /dev/null
+++ b/src/Ims/composer.json
@@ -0,0 +1,43 @@
+{
+ "name": "alibabacloud/ims",
+ "homepage": "https://www.alibabacloud.com/",
+ "description": "Alibaba Cloud Ims SDK for PHP",
+ "keywords": [
+ "ims",
+ "sdk",
+ "cloud",
+ "aliyun",
+ "alibaba",
+ "library",
+ "alibabacloud"
+ ],
+ "type": "library",
+ "license": "Apache-2.0",
+ "support": {
+ "source": "https://github.com/alibabacloud-sdk-php/ims",
+ "issues": "https://github.com/alibabacloud-sdk-php/ims/issues"
+ },
+ "authors": [
+ {
+ "name": "Alibaba Cloud SDK",
+ "email": "sdk-team@alibabacloud.com",
+ "homepage": "http://www.alibabacloud.com"
+ }
+ ],
+ "require": {
+ "php": ">=5.5",
+ "alibabacloud/client": "^1.5"
+ },
+ "autoload": {
+ "psr-4": {
+ "AlibabaCloud\\Ims\\": ""
+ }
+ },
+ "config": {
+ "sort-packages": true,
+ "preferred-install": "dist",
+ "optimize-autoloader": true
+ },
+ "prefer-stable": true,
+ "minimum-stability": "dev"
+}
diff --git a/src/Ims/endpoints.json b/src/Ims/endpoints.json
new file mode 100644
index 000000000..4ae429080
--- /dev/null
+++ b/src/Ims/endpoints.json
@@ -0,0 +1 @@
+{"endpoint_map":{},"endpoint_regional":"central","standard":{"cn-hangzhou":"ims.aliyuncs.com","ap-northeast-1":"ims.aliyuncs.com","ap-northeast-2-pop":"ims.aliyuncs.com","ap-south-1":"ims.aliyuncs.com","ap-southeast-1":"ims.aliyuncs.com","ap-southeast-2":"ims.aliyuncs.com","ap-southeast-3":"ims.aliyuncs.com","ap-southeast-5":"ims.aliyuncs.com","cn-beijing":"ims.aliyuncs.com","cn-beijing-finance-1":"ims.aliyuncs.com","cn-beijing-finance-pop":"ims.aliyuncs.com","cn-beijing-gov-1":"ims.aliyuncs.com","cn-beijing-nu16-b01":"ims.aliyuncs.com","cn-chengdu":"ims.aliyuncs.com","cn-edge-1":"ims.aliyuncs.com","cn-fujian":"ims.aliyuncs.com","cn-haidian-cm12-c01":"ims.aliyuncs.com","cn-hangzhou-bj-b01":"ims.aliyuncs.com","cn-hangzhou-finance":"ims.aliyuncs.com","cn-hangzhou-internal-prod-1":"ims.aliyuncs.com","cn-hangzhou-internal-test-1":"ims.aliyuncs.com","cn-hangzhou-internal-test-2":"ims.aliyuncs.com","cn-hangzhou-internal-test-3":"ims.aliyuncs.com","cn-hangzhou-test-306":"ims.aliyuncs.com","cn-hongkong":"ims.aliyuncs.com","cn-hongkong-finance-pop":"ims.aliyuncs.com","cn-huhehaote":"ims.aliyuncs.com","cn-huhehaote-nebula-1":"ims.aliyuncs.com","cn-north-2-gov-1":"ims.aliyuncs.com","cn-qingdao":"ims.aliyuncs.com","cn-qingdao-nebula":"ims.aliyuncs.com","cn-shanghai":"ims.aliyuncs.com","cn-shanghai-et15-b01":"ims.aliyuncs.com","cn-shanghai-et2-b01":"ims.aliyuncs.com","cn-shanghai-finance-1":"ims.aliyuncs.com","cn-shanghai-inner":"ims.aliyuncs.com","cn-shanghai-internal-test-1":"ims.aliyuncs.com","cn-shenzhen":"ims.aliyuncs.com","cn-shenzhen-finance-1":"ims.aliyuncs.com","cn-shenzhen-inner":"ims.aliyuncs.com","cn-shenzhen-st4-d01":"ims.aliyuncs.com","cn-shenzhen-su18-b01":"ims.aliyuncs.com","cn-wuhan":"ims.aliyuncs.com","cn-wulanchabu":"ims.aliyuncs.com","cn-yushanfang":"ims.aliyuncs.com","cn-zhangbei":"ims.aliyuncs.com","cn-zhangbei-na61-b01":"ims.aliyuncs.com","cn-zhangjiakou":"ims.aliyuncs.com","cn-zhangjiakou-na62-a01":"ims.aliyuncs.com","cn-zhengzhou-nebula-1":"ims.aliyuncs.com","eu-central-1":"ims.aliyuncs.com","eu-west-1":"ims.aliyuncs.com","eu-west-1-oxs":"ims.aliyuncs.com","me-east-1":"ims.aliyuncs.com","rus-west-1-pop":"ims.aliyuncs.com","us-east-1":"ims.aliyuncs.com","us-west-1":"ims.aliyuncs.com"},"regions":["cn-hangzhou","ap-northeast-1","ap-northeast-2-pop","ap-south-1","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-5","cn-beijing","cn-beijing-finance-1","cn-beijing-finance-pop","cn-beijing-gov-1","cn-beijing-nu16-b01","cn-chengdu","cn-edge-1","cn-fujian","cn-haidian-cm12-c01","cn-hangzhou-bj-b01","cn-hangzhou-finance","cn-hangzhou-internal-prod-1","cn-hangzhou-internal-test-1","cn-hangzhou-internal-test-2","cn-hangzhou-internal-test-3","cn-hangzhou-test-306","cn-hongkong","cn-hongkong-finance-pop","cn-huhehaote","cn-huhehaote-nebula-1","cn-north-2-gov-1","cn-qingdao","cn-qingdao-nebula","cn-shanghai","cn-shanghai-et15-b01","cn-shanghai-et2-b01","cn-shanghai-finance-1","cn-shanghai-inner","cn-shanghai-internal-test-1","cn-shenzhen","cn-shenzhen-finance-1","cn-shenzhen-inner","cn-shenzhen-st4-d01","cn-shenzhen-su18-b01","cn-wuhan","cn-wulanchabu","cn-yushanfang","cn-zhangbei","cn-zhangbei-na61-b01","cn-zhangjiakou","cn-zhangjiakou-na62-a01","cn-zhengzhou-nebula-1","eu-central-1","eu-west-1","eu-west-1-oxs","me-east-1","rus-west-1-pop","us-east-1","us-west-1"],"endpoint_health":[]}
diff --git a/src/Release.php b/src/Release.php
index a36991569..71d7a3173 100644
--- a/src/Release.php
+++ b/src/Release.php
@@ -16,7 +16,7 @@ class Release
/**
* Version of the SDK
*/
- const VERSION = '1.8.2205';
+ const VERSION = '1.8.2206';
/**
* @param Event $event
diff --git a/src/endpoints.json b/src/endpoints.json
index 4dd7b5bd1..4ae429080 100644
--- a/src/endpoints.json
+++ b/src/endpoints.json
@@ -1 +1 @@
-{"endpoint_map":{"ap-northeast-1":"eais.aliyuncs.com","ap-northeast-2-pop":"eais.aliyuncs.com","ap-south-1":"eais.aliyuncs.com","ap-southeast-1":"eais.aliyuncs.com","ap-southeast-2":"eais.aliyuncs.com","ap-southeast-3":"eais.aliyuncs.com","ap-southeast-5":"eais.aliyuncs.com","cn-beijing-finance-1":"eais.aliyuncs.com","cn-beijing-finance-pop":"eais.aliyuncs.com","cn-beijing-gov-1":"eais.aliyuncs.com","cn-beijing-nu16-b01":"eais.aliyuncs.com","cn-edge-1":"eais.aliyuncs.com","cn-fujian":"eais.aliyuncs.com","cn-haidian-cm12-c01":"eais.aliyuncs.com","cn-hangzhou-bj-b01":"eais.aliyuncs.com","cn-hangzhou-finance":"eais.aliyuncs.com","cn-hangzhou-internal-prod-1":"eais.aliyuncs.com","cn-hangzhou-internal-test-1":"eais.aliyuncs.com","cn-hangzhou-internal-test-2":"eais.aliyuncs.com","cn-hangzhou-internal-test-3":"eais.aliyuncs.com","cn-hangzhou-test-306":"eais.aliyuncs.com","cn-hongkong":"eais.aliyuncs.com","cn-hongkong-finance-pop":"eais.aliyuncs.com","cn-huhehaote":"eais.aliyuncs.com","cn-huhehaote-nebula-1":"eais.aliyuncs.com","cn-north-2-gov-1":"eais.aliyuncs.com","cn-qingdao":"eais.aliyuncs.com","cn-qingdao-nebula":"eais.aliyuncs.com","cn-shanghai-et15-b01":"eais.aliyuncs.com","cn-shanghai-et2-b01":"eais.aliyuncs.com","cn-shanghai-finance-1":"eais.aliyuncs.com","cn-shanghai-inner":"eais.aliyuncs.com","cn-shanghai-internal-test-1":"eais.aliyuncs.com","cn-shenzhen-finance-1":"eais.aliyuncs.com","cn-shenzhen-inner":"eais.aliyuncs.com","cn-shenzhen-st4-d01":"eais.aliyuncs.com","cn-shenzhen-su18-b01":"eais.aliyuncs.com","cn-wuhan":"eais.aliyuncs.com","cn-wulanchabu":"eais.aliyuncs.com","cn-yushanfang":"eais.aliyuncs.com","cn-zhangbei":"eais.aliyuncs.com","cn-zhangbei-na61-b01":"eais.aliyuncs.com","cn-zhangjiakou":"eais.aliyuncs.com","cn-zhangjiakou-na62-a01":"eais.aliyuncs.com","cn-zhengzhou-nebula-1":"eais.aliyuncs.com","eu-central-1":"eais.aliyuncs.com","eu-west-1":"eais.aliyuncs.com","eu-west-1-oxs":"eais.aliyuncs.com","me-east-1":"eais.aliyuncs.com","rus-west-1-pop":"eais.aliyuncs.com","us-east-1":"eais.aliyuncs.com"},"endpoint_regional":"regional","standard":{"cn-beijing":"eais.cn-beijing.aliyuncs.com","cn-chengdu":"eais.cn-chengdu.aliyuncs.com","cn-hangzhou":"eais.cn-hangzhou.aliyuncs.com","cn-shanghai":"eais.cn-shanghai.aliyuncs.com","cn-shenzhen":"eais.cn-shenzhen.aliyuncs.com","us-west-1":"eais.us-west-1.aliyuncs.com"},"regions":["cn-beijing","cn-chengdu","cn-hangzhou","cn-shanghai","cn-shenzhen","ap-northeast-1","ap-northeast-2-pop","ap-south-1","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-5","cn-beijing-finance-1","cn-beijing-finance-pop","cn-beijing-gov-1","cn-beijing-nu16-b01","cn-edge-1","cn-fujian","cn-haidian-cm12-c01","cn-hangzhou-bj-b01","cn-hangzhou-finance","cn-hangzhou-internal-prod-1","cn-hangzhou-internal-test-1","cn-hangzhou-internal-test-2","cn-hangzhou-internal-test-3","cn-hangzhou-test-306","cn-hongkong","cn-hongkong-finance-pop","cn-huhehaote","cn-huhehaote-nebula-1","cn-north-2-gov-1","cn-qingdao","cn-qingdao-nebula","cn-shanghai-et15-b01","cn-shanghai-et2-b01","cn-shanghai-finance-1","cn-shanghai-inner","cn-shanghai-internal-test-1","cn-shenzhen-finance-1","cn-shenzhen-inner","cn-shenzhen-st4-d01","cn-shenzhen-su18-b01","cn-wuhan","cn-wulanchabu","cn-yushanfang","cn-zhangbei","cn-zhangbei-na61-b01","cn-zhangjiakou","cn-zhangjiakou-na62-a01","cn-zhengzhou-nebula-1","eu-central-1","eu-west-1","eu-west-1-oxs","me-east-1","rus-west-1-pop","us-east-1","us-west-1"],"endpoint_health":[]}
+{"endpoint_map":{},"endpoint_regional":"central","standard":{"cn-hangzhou":"ims.aliyuncs.com","ap-northeast-1":"ims.aliyuncs.com","ap-northeast-2-pop":"ims.aliyuncs.com","ap-south-1":"ims.aliyuncs.com","ap-southeast-1":"ims.aliyuncs.com","ap-southeast-2":"ims.aliyuncs.com","ap-southeast-3":"ims.aliyuncs.com","ap-southeast-5":"ims.aliyuncs.com","cn-beijing":"ims.aliyuncs.com","cn-beijing-finance-1":"ims.aliyuncs.com","cn-beijing-finance-pop":"ims.aliyuncs.com","cn-beijing-gov-1":"ims.aliyuncs.com","cn-beijing-nu16-b01":"ims.aliyuncs.com","cn-chengdu":"ims.aliyuncs.com","cn-edge-1":"ims.aliyuncs.com","cn-fujian":"ims.aliyuncs.com","cn-haidian-cm12-c01":"ims.aliyuncs.com","cn-hangzhou-bj-b01":"ims.aliyuncs.com","cn-hangzhou-finance":"ims.aliyuncs.com","cn-hangzhou-internal-prod-1":"ims.aliyuncs.com","cn-hangzhou-internal-test-1":"ims.aliyuncs.com","cn-hangzhou-internal-test-2":"ims.aliyuncs.com","cn-hangzhou-internal-test-3":"ims.aliyuncs.com","cn-hangzhou-test-306":"ims.aliyuncs.com","cn-hongkong":"ims.aliyuncs.com","cn-hongkong-finance-pop":"ims.aliyuncs.com","cn-huhehaote":"ims.aliyuncs.com","cn-huhehaote-nebula-1":"ims.aliyuncs.com","cn-north-2-gov-1":"ims.aliyuncs.com","cn-qingdao":"ims.aliyuncs.com","cn-qingdao-nebula":"ims.aliyuncs.com","cn-shanghai":"ims.aliyuncs.com","cn-shanghai-et15-b01":"ims.aliyuncs.com","cn-shanghai-et2-b01":"ims.aliyuncs.com","cn-shanghai-finance-1":"ims.aliyuncs.com","cn-shanghai-inner":"ims.aliyuncs.com","cn-shanghai-internal-test-1":"ims.aliyuncs.com","cn-shenzhen":"ims.aliyuncs.com","cn-shenzhen-finance-1":"ims.aliyuncs.com","cn-shenzhen-inner":"ims.aliyuncs.com","cn-shenzhen-st4-d01":"ims.aliyuncs.com","cn-shenzhen-su18-b01":"ims.aliyuncs.com","cn-wuhan":"ims.aliyuncs.com","cn-wulanchabu":"ims.aliyuncs.com","cn-yushanfang":"ims.aliyuncs.com","cn-zhangbei":"ims.aliyuncs.com","cn-zhangbei-na61-b01":"ims.aliyuncs.com","cn-zhangjiakou":"ims.aliyuncs.com","cn-zhangjiakou-na62-a01":"ims.aliyuncs.com","cn-zhengzhou-nebula-1":"ims.aliyuncs.com","eu-central-1":"ims.aliyuncs.com","eu-west-1":"ims.aliyuncs.com","eu-west-1-oxs":"ims.aliyuncs.com","me-east-1":"ims.aliyuncs.com","rus-west-1-pop":"ims.aliyuncs.com","us-east-1":"ims.aliyuncs.com","us-west-1":"ims.aliyuncs.com"},"regions":["cn-hangzhou","ap-northeast-1","ap-northeast-2-pop","ap-south-1","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-5","cn-beijing","cn-beijing-finance-1","cn-beijing-finance-pop","cn-beijing-gov-1","cn-beijing-nu16-b01","cn-chengdu","cn-edge-1","cn-fujian","cn-haidian-cm12-c01","cn-hangzhou-bj-b01","cn-hangzhou-finance","cn-hangzhou-internal-prod-1","cn-hangzhou-internal-test-1","cn-hangzhou-internal-test-2","cn-hangzhou-internal-test-3","cn-hangzhou-test-306","cn-hongkong","cn-hongkong-finance-pop","cn-huhehaote","cn-huhehaote-nebula-1","cn-north-2-gov-1","cn-qingdao","cn-qingdao-nebula","cn-shanghai","cn-shanghai-et15-b01","cn-shanghai-et2-b01","cn-shanghai-finance-1","cn-shanghai-inner","cn-shanghai-internal-test-1","cn-shenzhen","cn-shenzhen-finance-1","cn-shenzhen-inner","cn-shenzhen-st4-d01","cn-shenzhen-su18-b01","cn-wuhan","cn-wulanchabu","cn-yushanfang","cn-zhangbei","cn-zhangbei-na61-b01","cn-zhangjiakou","cn-zhangjiakou-na62-a01","cn-zhengzhou-nebula-1","eu-central-1","eu-west-1","eu-west-1-oxs","me-east-1","rus-west-1-pop","us-east-1","us-west-1"],"endpoint_health":[]}