Sfoglia il codice sorgente

add Instance, NetworkRule, Policy, ApplicationAccessPoint, ClientKey OpenAPIs

sdk-team 3 anni fa
parent
commit
c49607aeca
96 ha cambiato i file con 6147 aggiunte e 14 eliminazioni
  1. 1 1
      VERSION
  2. 92 0
      kms/CMakeLists.txt
  3. 184 0
      kms/include/alibabacloud/kms/KmsClient.h
  4. 54 0
      kms/include/alibabacloud/kms/model/ConnectKmsInstanceRequest.h
  5. 49 0
      kms/include/alibabacloud/kms/model/ConnectKmsInstanceResult.h
  6. 51 0
      kms/include/alibabacloud/kms/model/CreateApplicationAccessPointRequest.h
  7. 59 0
      kms/include/alibabacloud/kms/model/CreateApplicationAccessPointResult.h
  8. 51 0
      kms/include/alibabacloud/kms/model/CreateClientKeyRequest.h
  9. 59 0
      kms/include/alibabacloud/kms/model/CreateClientKeyResult.h
  10. 51 0
      kms/include/alibabacloud/kms/model/CreateNetworkRuleRequest.h
  11. 59 0
      kms/include/alibabacloud/kms/model/CreateNetworkRuleResult.h
  12. 57 0
      kms/include/alibabacloud/kms/model/CreatePolicyRequest.h
  13. 63 0
      kms/include/alibabacloud/kms/model/CreatePolicyResult.h
  14. 42 0
      kms/include/alibabacloud/kms/model/DeleteApplicationAccessPointRequest.h
  15. 49 0
      kms/include/alibabacloud/kms/model/DeleteApplicationAccessPointResult.h
  16. 42 0
      kms/include/alibabacloud/kms/model/DeleteClientKeyRequest.h
  17. 49 0
      kms/include/alibabacloud/kms/model/DeleteClientKeyResult.h
  18. 42 0
      kms/include/alibabacloud/kms/model/DeleteNetworkRuleRequest.h
  19. 49 0
      kms/include/alibabacloud/kms/model/DeleteNetworkRuleResult.h
  20. 42 0
      kms/include/alibabacloud/kms/model/DeletePolicyRequest.h
  21. 49 0
      kms/include/alibabacloud/kms/model/DeletePolicyResult.h
  22. 42 0
      kms/include/alibabacloud/kms/model/DescribeApplicationAccessPointRequest.h
  23. 59 0
      kms/include/alibabacloud/kms/model/DescribeApplicationAccessPointResult.h
  24. 42 0
      kms/include/alibabacloud/kms/model/DescribeNetworkRuleRequest.h
  25. 57 0
      kms/include/alibabacloud/kms/model/DescribeNetworkRuleResult.h
  26. 42 0
      kms/include/alibabacloud/kms/model/DescribePolicyRequest.h
  27. 63 0
      kms/include/alibabacloud/kms/model/DescribePolicyResult.h
  28. 42 0
      kms/include/alibabacloud/kms/model/GetClientKeyRequest.h
  29. 65 0
      kms/include/alibabacloud/kms/model/GetClientKeyResult.h
  30. 42 0
      kms/include/alibabacloud/kms/model/GetKmsInstanceRequest.h
  31. 76 0
      kms/include/alibabacloud/kms/model/GetKmsInstanceResult.h
  32. 45 0
      kms/include/alibabacloud/kms/model/ListApplicationAccessPointsRequest.h
  33. 62 0
      kms/include/alibabacloud/kms/model/ListApplicationAccessPointsResult.h
  34. 42 0
      kms/include/alibabacloud/kms/model/ListClientKeysRequest.h
  35. 62 0
      kms/include/alibabacloud/kms/model/ListClientKeysResult.h
  36. 45 0
      kms/include/alibabacloud/kms/model/ListKmsInstancesRequest.h
  37. 62 0
      kms/include/alibabacloud/kms/model/ListKmsInstancesResult.h
  38. 45 0
      kms/include/alibabacloud/kms/model/ListNetworkRulesRequest.h
  39. 62 0
      kms/include/alibabacloud/kms/model/ListNetworkRulesResult.h
  40. 45 0
      kms/include/alibabacloud/kms/model/ListPoliciesRequest.h
  41. 61 0
      kms/include/alibabacloud/kms/model/ListPoliciesResult.h
  42. 48 0
      kms/include/alibabacloud/kms/model/UpdateApplicationAccessPointRequest.h
  43. 49 0
      kms/include/alibabacloud/kms/model/UpdateApplicationAccessPointResult.h
  44. 45 0
      kms/include/alibabacloud/kms/model/UpdateKmsInstanceBindVpcRequest.h
  45. 49 0
      kms/include/alibabacloud/kms/model/UpdateKmsInstanceBindVpcResult.h
  46. 48 0
      kms/include/alibabacloud/kms/model/UpdateNetworkRuleRequest.h
  47. 49 0
      kms/include/alibabacloud/kms/model/UpdateNetworkRuleResult.h
  48. 54 0
      kms/include/alibabacloud/kms/model/UpdatePolicyRequest.h
  49. 49 0
      kms/include/alibabacloud/kms/model/UpdatePolicyResult.h
  50. 841 13
      kms/src/KmsClient.cc
  51. 72 0
      kms/src/model/ConnectKmsInstanceRequest.cc
  52. 44 0
      kms/src/model/ConnectKmsInstanceResult.cc
  53. 63 0
      kms/src/model/CreateApplicationAccessPointRequest.cc
  54. 79 0
      kms/src/model/CreateApplicationAccessPointResult.cc
  55. 63 0
      kms/src/model/CreateClientKeyRequest.cc
  56. 79 0
      kms/src/model/CreateClientKeyResult.cc
  57. 63 0
      kms/src/model/CreateNetworkRuleRequest.cc
  58. 79 0
      kms/src/model/CreateNetworkRuleResult.cc
  59. 81 0
      kms/src/model/CreatePolicyRequest.cc
  60. 93 0
      kms/src/model/CreatePolicyResult.cc
  61. 36 0
      kms/src/model/DeleteApplicationAccessPointRequest.cc
  62. 44 0
      kms/src/model/DeleteApplicationAccessPointResult.cc
  63. 36 0
      kms/src/model/DeleteClientKeyRequest.cc
  64. 44 0
      kms/src/model/DeleteClientKeyResult.cc
  65. 36 0
      kms/src/model/DeleteNetworkRuleRequest.cc
  66. 44 0
      kms/src/model/DeleteNetworkRuleResult.cc
  67. 36 0
      kms/src/model/DeletePolicyRequest.cc
  68. 44 0
      kms/src/model/DeletePolicyResult.cc
  69. 36 0
      kms/src/model/DescribeApplicationAccessPointRequest.cc
  70. 79 0
      kms/src/model/DescribeApplicationAccessPointResult.cc
  71. 36 0
      kms/src/model/DescribeNetworkRuleRequest.cc
  72. 72 0
      kms/src/model/DescribeNetworkRuleResult.cc
  73. 36 0
      kms/src/model/DescribePolicyRequest.cc
  74. 95 0
      kms/src/model/DescribePolicyResult.cc
  75. 36 0
      kms/src/model/GetClientKeyRequest.cc
  76. 100 0
      kms/src/model/GetClientKeyResult.cc
  77. 36 0
      kms/src/model/GetKmsInstanceRequest.cc
  78. 92 0
      kms/src/model/GetKmsInstanceResult.cc
  79. 45 0
      kms/src/model/ListApplicationAccessPointsRequest.cc
  80. 80 0
      kms/src/model/ListApplicationAccessPointsResult.cc
  81. 36 0
      kms/src/model/ListClientKeysRequest.cc
  82. 71 0
      kms/src/model/ListClientKeysResult.cc
  83. 45 0
      kms/src/model/ListKmsInstancesRequest.cc
  84. 80 0
      kms/src/model/ListKmsInstancesResult.cc
  85. 45 0
      kms/src/model/ListNetworkRulesRequest.cc
  86. 80 0
      kms/src/model/ListNetworkRulesResult.cc
  87. 45 0
      kms/src/model/ListPoliciesRequest.cc
  88. 78 0
      kms/src/model/ListPoliciesResult.cc
  89. 54 0
      kms/src/model/UpdateApplicationAccessPointRequest.cc
  90. 44 0
      kms/src/model/UpdateApplicationAccessPointResult.cc
  91. 45 0
      kms/src/model/UpdateKmsInstanceBindVpcRequest.cc
  92. 44 0
      kms/src/model/UpdateKmsInstanceBindVpcResult.cc
  93. 54 0
      kms/src/model/UpdateNetworkRuleRequest.cc
  94. 44 0
      kms/src/model/UpdateNetworkRuleResult.cc
  95. 72 0
      kms/src/model/UpdatePolicyRequest.cc
  96. 44 0
      kms/src/model/UpdatePolicyResult.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1754
+1.36.1755

+ 92 - 0
kms/CMakeLists.txt

@@ -39,34 +39,58 @@ set(kms_public_header_model
 	include/alibabacloud/kms/model/CertificatePublicKeyEncryptResult.h
 	include/alibabacloud/kms/model/CertificatePublicKeyVerifyRequest.h
 	include/alibabacloud/kms/model/CertificatePublicKeyVerifyResult.h
+	include/alibabacloud/kms/model/ConnectKmsInstanceRequest.h
+	include/alibabacloud/kms/model/ConnectKmsInstanceResult.h
 	include/alibabacloud/kms/model/CreateAliasRequest.h
 	include/alibabacloud/kms/model/CreateAliasResult.h
+	include/alibabacloud/kms/model/CreateApplicationAccessPointRequest.h
+	include/alibabacloud/kms/model/CreateApplicationAccessPointResult.h
 	include/alibabacloud/kms/model/CreateCertificateRequest.h
 	include/alibabacloud/kms/model/CreateCertificateResult.h
+	include/alibabacloud/kms/model/CreateClientKeyRequest.h
+	include/alibabacloud/kms/model/CreateClientKeyResult.h
 	include/alibabacloud/kms/model/CreateKeyRequest.h
 	include/alibabacloud/kms/model/CreateKeyResult.h
 	include/alibabacloud/kms/model/CreateKeyVersionRequest.h
 	include/alibabacloud/kms/model/CreateKeyVersionResult.h
+	include/alibabacloud/kms/model/CreateNetworkRuleRequest.h
+	include/alibabacloud/kms/model/CreateNetworkRuleResult.h
+	include/alibabacloud/kms/model/CreatePolicyRequest.h
+	include/alibabacloud/kms/model/CreatePolicyResult.h
 	include/alibabacloud/kms/model/CreateSecretRequest.h
 	include/alibabacloud/kms/model/CreateSecretResult.h
 	include/alibabacloud/kms/model/DecryptRequest.h
 	include/alibabacloud/kms/model/DecryptResult.h
 	include/alibabacloud/kms/model/DeleteAliasRequest.h
 	include/alibabacloud/kms/model/DeleteAliasResult.h
+	include/alibabacloud/kms/model/DeleteApplicationAccessPointRequest.h
+	include/alibabacloud/kms/model/DeleteApplicationAccessPointResult.h
 	include/alibabacloud/kms/model/DeleteCertificateRequest.h
 	include/alibabacloud/kms/model/DeleteCertificateResult.h
+	include/alibabacloud/kms/model/DeleteClientKeyRequest.h
+	include/alibabacloud/kms/model/DeleteClientKeyResult.h
 	include/alibabacloud/kms/model/DeleteKeyMaterialRequest.h
 	include/alibabacloud/kms/model/DeleteKeyMaterialResult.h
+	include/alibabacloud/kms/model/DeleteNetworkRuleRequest.h
+	include/alibabacloud/kms/model/DeleteNetworkRuleResult.h
+	include/alibabacloud/kms/model/DeletePolicyRequest.h
+	include/alibabacloud/kms/model/DeletePolicyResult.h
 	include/alibabacloud/kms/model/DeleteSecretRequest.h
 	include/alibabacloud/kms/model/DeleteSecretResult.h
 	include/alibabacloud/kms/model/DescribeAccountKmsStatusRequest.h
 	include/alibabacloud/kms/model/DescribeAccountKmsStatusResult.h
+	include/alibabacloud/kms/model/DescribeApplicationAccessPointRequest.h
+	include/alibabacloud/kms/model/DescribeApplicationAccessPointResult.h
 	include/alibabacloud/kms/model/DescribeCertificateRequest.h
 	include/alibabacloud/kms/model/DescribeCertificateResult.h
 	include/alibabacloud/kms/model/DescribeKeyRequest.h
 	include/alibabacloud/kms/model/DescribeKeyResult.h
 	include/alibabacloud/kms/model/DescribeKeyVersionRequest.h
 	include/alibabacloud/kms/model/DescribeKeyVersionResult.h
+	include/alibabacloud/kms/model/DescribeNetworkRuleRequest.h
+	include/alibabacloud/kms/model/DescribeNetworkRuleResult.h
+	include/alibabacloud/kms/model/DescribePolicyRequest.h
+	include/alibabacloud/kms/model/DescribePolicyResult.h
 	include/alibabacloud/kms/model/DescribeRegionsRequest.h
 	include/alibabacloud/kms/model/DescribeRegionsResult.h
 	include/alibabacloud/kms/model/DescribeSecretRequest.h
@@ -87,6 +111,10 @@ set(kms_public_header_model
 	include/alibabacloud/kms/model/GenerateDataKeyWithoutPlaintextResult.h
 	include/alibabacloud/kms/model/GetCertificateRequest.h
 	include/alibabacloud/kms/model/GetCertificateResult.h
+	include/alibabacloud/kms/model/GetClientKeyRequest.h
+	include/alibabacloud/kms/model/GetClientKeyResult.h
+	include/alibabacloud/kms/model/GetKmsInstanceRequest.h
+	include/alibabacloud/kms/model/GetKmsInstanceResult.h
 	include/alibabacloud/kms/model/GetParametersForImportRequest.h
 	include/alibabacloud/kms/model/GetParametersForImportResult.h
 	include/alibabacloud/kms/model/GetPublicKeyRequest.h
@@ -101,10 +129,20 @@ set(kms_public_header_model
 	include/alibabacloud/kms/model/ListAliasesResult.h
 	include/alibabacloud/kms/model/ListAliasesByKeyIdRequest.h
 	include/alibabacloud/kms/model/ListAliasesByKeyIdResult.h
+	include/alibabacloud/kms/model/ListApplicationAccessPointsRequest.h
+	include/alibabacloud/kms/model/ListApplicationAccessPointsResult.h
+	include/alibabacloud/kms/model/ListClientKeysRequest.h
+	include/alibabacloud/kms/model/ListClientKeysResult.h
 	include/alibabacloud/kms/model/ListKeyVersionsRequest.h
 	include/alibabacloud/kms/model/ListKeyVersionsResult.h
 	include/alibabacloud/kms/model/ListKeysRequest.h
 	include/alibabacloud/kms/model/ListKeysResult.h
+	include/alibabacloud/kms/model/ListKmsInstancesRequest.h
+	include/alibabacloud/kms/model/ListKmsInstancesResult.h
+	include/alibabacloud/kms/model/ListNetworkRulesRequest.h
+	include/alibabacloud/kms/model/ListNetworkRulesResult.h
+	include/alibabacloud/kms/model/ListPoliciesRequest.h
+	include/alibabacloud/kms/model/ListPoliciesResult.h
 	include/alibabacloud/kms/model/ListResourceTagsRequest.h
 	include/alibabacloud/kms/model/ListResourceTagsResult.h
 	include/alibabacloud/kms/model/ListSecretVersionIdsRequest.h
@@ -137,10 +175,18 @@ set(kms_public_header_model
 	include/alibabacloud/kms/model/UntagResourcesResult.h
 	include/alibabacloud/kms/model/UpdateAliasRequest.h
 	include/alibabacloud/kms/model/UpdateAliasResult.h
+	include/alibabacloud/kms/model/UpdateApplicationAccessPointRequest.h
+	include/alibabacloud/kms/model/UpdateApplicationAccessPointResult.h
 	include/alibabacloud/kms/model/UpdateCertificateStatusRequest.h
 	include/alibabacloud/kms/model/UpdateCertificateStatusResult.h
 	include/alibabacloud/kms/model/UpdateKeyDescriptionRequest.h
 	include/alibabacloud/kms/model/UpdateKeyDescriptionResult.h
+	include/alibabacloud/kms/model/UpdateKmsInstanceBindVpcRequest.h
+	include/alibabacloud/kms/model/UpdateKmsInstanceBindVpcResult.h
+	include/alibabacloud/kms/model/UpdateNetworkRuleRequest.h
+	include/alibabacloud/kms/model/UpdateNetworkRuleResult.h
+	include/alibabacloud/kms/model/UpdatePolicyRequest.h
+	include/alibabacloud/kms/model/UpdatePolicyResult.h
 	include/alibabacloud/kms/model/UpdateRotationPolicyRequest.h
 	include/alibabacloud/kms/model/UpdateRotationPolicyResult.h
 	include/alibabacloud/kms/model/UpdateSecretRequest.h
@@ -172,34 +218,58 @@ set(kms_src
 	src/model/CertificatePublicKeyEncryptResult.cc
 	src/model/CertificatePublicKeyVerifyRequest.cc
 	src/model/CertificatePublicKeyVerifyResult.cc
+	src/model/ConnectKmsInstanceRequest.cc
+	src/model/ConnectKmsInstanceResult.cc
 	src/model/CreateAliasRequest.cc
 	src/model/CreateAliasResult.cc
+	src/model/CreateApplicationAccessPointRequest.cc
+	src/model/CreateApplicationAccessPointResult.cc
 	src/model/CreateCertificateRequest.cc
 	src/model/CreateCertificateResult.cc
+	src/model/CreateClientKeyRequest.cc
+	src/model/CreateClientKeyResult.cc
 	src/model/CreateKeyRequest.cc
 	src/model/CreateKeyResult.cc
 	src/model/CreateKeyVersionRequest.cc
 	src/model/CreateKeyVersionResult.cc
+	src/model/CreateNetworkRuleRequest.cc
+	src/model/CreateNetworkRuleResult.cc
+	src/model/CreatePolicyRequest.cc
+	src/model/CreatePolicyResult.cc
 	src/model/CreateSecretRequest.cc
 	src/model/CreateSecretResult.cc
 	src/model/DecryptRequest.cc
 	src/model/DecryptResult.cc
 	src/model/DeleteAliasRequest.cc
 	src/model/DeleteAliasResult.cc
+	src/model/DeleteApplicationAccessPointRequest.cc
+	src/model/DeleteApplicationAccessPointResult.cc
 	src/model/DeleteCertificateRequest.cc
 	src/model/DeleteCertificateResult.cc
+	src/model/DeleteClientKeyRequest.cc
+	src/model/DeleteClientKeyResult.cc
 	src/model/DeleteKeyMaterialRequest.cc
 	src/model/DeleteKeyMaterialResult.cc
+	src/model/DeleteNetworkRuleRequest.cc
+	src/model/DeleteNetworkRuleResult.cc
+	src/model/DeletePolicyRequest.cc
+	src/model/DeletePolicyResult.cc
 	src/model/DeleteSecretRequest.cc
 	src/model/DeleteSecretResult.cc
 	src/model/DescribeAccountKmsStatusRequest.cc
 	src/model/DescribeAccountKmsStatusResult.cc
+	src/model/DescribeApplicationAccessPointRequest.cc
+	src/model/DescribeApplicationAccessPointResult.cc
 	src/model/DescribeCertificateRequest.cc
 	src/model/DescribeCertificateResult.cc
 	src/model/DescribeKeyRequest.cc
 	src/model/DescribeKeyResult.cc
 	src/model/DescribeKeyVersionRequest.cc
 	src/model/DescribeKeyVersionResult.cc
+	src/model/DescribeNetworkRuleRequest.cc
+	src/model/DescribeNetworkRuleResult.cc
+	src/model/DescribePolicyRequest.cc
+	src/model/DescribePolicyResult.cc
 	src/model/DescribeRegionsRequest.cc
 	src/model/DescribeRegionsResult.cc
 	src/model/DescribeSecretRequest.cc
@@ -220,6 +290,10 @@ set(kms_src
 	src/model/GenerateDataKeyWithoutPlaintextResult.cc
 	src/model/GetCertificateRequest.cc
 	src/model/GetCertificateResult.cc
+	src/model/GetClientKeyRequest.cc
+	src/model/GetClientKeyResult.cc
+	src/model/GetKmsInstanceRequest.cc
+	src/model/GetKmsInstanceResult.cc
 	src/model/GetParametersForImportRequest.cc
 	src/model/GetParametersForImportResult.cc
 	src/model/GetPublicKeyRequest.cc
@@ -234,10 +308,20 @@ set(kms_src
 	src/model/ListAliasesResult.cc
 	src/model/ListAliasesByKeyIdRequest.cc
 	src/model/ListAliasesByKeyIdResult.cc
+	src/model/ListApplicationAccessPointsRequest.cc
+	src/model/ListApplicationAccessPointsResult.cc
+	src/model/ListClientKeysRequest.cc
+	src/model/ListClientKeysResult.cc
 	src/model/ListKeyVersionsRequest.cc
 	src/model/ListKeyVersionsResult.cc
 	src/model/ListKeysRequest.cc
 	src/model/ListKeysResult.cc
+	src/model/ListKmsInstancesRequest.cc
+	src/model/ListKmsInstancesResult.cc
+	src/model/ListNetworkRulesRequest.cc
+	src/model/ListNetworkRulesResult.cc
+	src/model/ListPoliciesRequest.cc
+	src/model/ListPoliciesResult.cc
 	src/model/ListResourceTagsRequest.cc
 	src/model/ListResourceTagsResult.cc
 	src/model/ListSecretVersionIdsRequest.cc
@@ -270,10 +354,18 @@ set(kms_src
 	src/model/UntagResourcesResult.cc
 	src/model/UpdateAliasRequest.cc
 	src/model/UpdateAliasResult.cc
+	src/model/UpdateApplicationAccessPointRequest.cc
+	src/model/UpdateApplicationAccessPointResult.cc
 	src/model/UpdateCertificateStatusRequest.cc
 	src/model/UpdateCertificateStatusResult.cc
 	src/model/UpdateKeyDescriptionRequest.cc
 	src/model/UpdateKeyDescriptionResult.cc
+	src/model/UpdateKmsInstanceBindVpcRequest.cc
+	src/model/UpdateKmsInstanceBindVpcResult.cc
+	src/model/UpdateNetworkRuleRequest.cc
+	src/model/UpdateNetworkRuleResult.cc
+	src/model/UpdatePolicyRequest.cc
+	src/model/UpdatePolicyResult.cc
 	src/model/UpdateRotationPolicyRequest.cc
 	src/model/UpdateRotationPolicyResult.cc
 	src/model/UpdateSecretRequest.cc

+ 184 - 0
kms/include/alibabacloud/kms/KmsClient.h

@@ -40,34 +40,58 @@
 #include "model/CertificatePublicKeyEncryptResult.h"
 #include "model/CertificatePublicKeyVerifyRequest.h"
 #include "model/CertificatePublicKeyVerifyResult.h"
+#include "model/ConnectKmsInstanceRequest.h"
+#include "model/ConnectKmsInstanceResult.h"
 #include "model/CreateAliasRequest.h"
 #include "model/CreateAliasResult.h"
+#include "model/CreateApplicationAccessPointRequest.h"
+#include "model/CreateApplicationAccessPointResult.h"
 #include "model/CreateCertificateRequest.h"
 #include "model/CreateCertificateResult.h"
+#include "model/CreateClientKeyRequest.h"
+#include "model/CreateClientKeyResult.h"
 #include "model/CreateKeyRequest.h"
 #include "model/CreateKeyResult.h"
 #include "model/CreateKeyVersionRequest.h"
 #include "model/CreateKeyVersionResult.h"
+#include "model/CreateNetworkRuleRequest.h"
+#include "model/CreateNetworkRuleResult.h"
+#include "model/CreatePolicyRequest.h"
+#include "model/CreatePolicyResult.h"
 #include "model/CreateSecretRequest.h"
 #include "model/CreateSecretResult.h"
 #include "model/DecryptRequest.h"
 #include "model/DecryptResult.h"
 #include "model/DeleteAliasRequest.h"
 #include "model/DeleteAliasResult.h"
+#include "model/DeleteApplicationAccessPointRequest.h"
+#include "model/DeleteApplicationAccessPointResult.h"
 #include "model/DeleteCertificateRequest.h"
 #include "model/DeleteCertificateResult.h"
+#include "model/DeleteClientKeyRequest.h"
+#include "model/DeleteClientKeyResult.h"
 #include "model/DeleteKeyMaterialRequest.h"
 #include "model/DeleteKeyMaterialResult.h"
+#include "model/DeleteNetworkRuleRequest.h"
+#include "model/DeleteNetworkRuleResult.h"
+#include "model/DeletePolicyRequest.h"
+#include "model/DeletePolicyResult.h"
 #include "model/DeleteSecretRequest.h"
 #include "model/DeleteSecretResult.h"
 #include "model/DescribeAccountKmsStatusRequest.h"
 #include "model/DescribeAccountKmsStatusResult.h"
+#include "model/DescribeApplicationAccessPointRequest.h"
+#include "model/DescribeApplicationAccessPointResult.h"
 #include "model/DescribeCertificateRequest.h"
 #include "model/DescribeCertificateResult.h"
 #include "model/DescribeKeyRequest.h"
 #include "model/DescribeKeyResult.h"
 #include "model/DescribeKeyVersionRequest.h"
 #include "model/DescribeKeyVersionResult.h"
+#include "model/DescribeNetworkRuleRequest.h"
+#include "model/DescribeNetworkRuleResult.h"
+#include "model/DescribePolicyRequest.h"
+#include "model/DescribePolicyResult.h"
 #include "model/DescribeRegionsRequest.h"
 #include "model/DescribeRegionsResult.h"
 #include "model/DescribeSecretRequest.h"
@@ -88,6 +112,10 @@
 #include "model/GenerateDataKeyWithoutPlaintextResult.h"
 #include "model/GetCertificateRequest.h"
 #include "model/GetCertificateResult.h"
+#include "model/GetClientKeyRequest.h"
+#include "model/GetClientKeyResult.h"
+#include "model/GetKmsInstanceRequest.h"
+#include "model/GetKmsInstanceResult.h"
 #include "model/GetParametersForImportRequest.h"
 #include "model/GetParametersForImportResult.h"
 #include "model/GetPublicKeyRequest.h"
@@ -102,10 +130,20 @@
 #include "model/ListAliasesResult.h"
 #include "model/ListAliasesByKeyIdRequest.h"
 #include "model/ListAliasesByKeyIdResult.h"
+#include "model/ListApplicationAccessPointsRequest.h"
+#include "model/ListApplicationAccessPointsResult.h"
+#include "model/ListClientKeysRequest.h"
+#include "model/ListClientKeysResult.h"
 #include "model/ListKeyVersionsRequest.h"
 #include "model/ListKeyVersionsResult.h"
 #include "model/ListKeysRequest.h"
 #include "model/ListKeysResult.h"
+#include "model/ListKmsInstancesRequest.h"
+#include "model/ListKmsInstancesResult.h"
+#include "model/ListNetworkRulesRequest.h"
+#include "model/ListNetworkRulesResult.h"
+#include "model/ListPoliciesRequest.h"
+#include "model/ListPoliciesResult.h"
 #include "model/ListResourceTagsRequest.h"
 #include "model/ListResourceTagsResult.h"
 #include "model/ListSecretVersionIdsRequest.h"
@@ -138,10 +176,18 @@
 #include "model/UntagResourcesResult.h"
 #include "model/UpdateAliasRequest.h"
 #include "model/UpdateAliasResult.h"
+#include "model/UpdateApplicationAccessPointRequest.h"
+#include "model/UpdateApplicationAccessPointResult.h"
 #include "model/UpdateCertificateStatusRequest.h"
 #include "model/UpdateCertificateStatusResult.h"
 #include "model/UpdateKeyDescriptionRequest.h"
 #include "model/UpdateKeyDescriptionResult.h"
+#include "model/UpdateKmsInstanceBindVpcRequest.h"
+#include "model/UpdateKmsInstanceBindVpcResult.h"
+#include "model/UpdateNetworkRuleRequest.h"
+#include "model/UpdateNetworkRuleResult.h"
+#include "model/UpdatePolicyRequest.h"
+#include "model/UpdatePolicyResult.h"
 #include "model/UpdateRotationPolicyRequest.h"
 #include "model/UpdateRotationPolicyResult.h"
 #include "model/UpdateSecretRequest.h"
@@ -188,18 +234,33 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CertificatePublicKeyVerifyResult> CertificatePublicKeyVerifyOutcome;
 			typedef std::future<CertificatePublicKeyVerifyOutcome> CertificatePublicKeyVerifyOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::CertificatePublicKeyVerifyRequest&, const CertificatePublicKeyVerifyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CertificatePublicKeyVerifyAsyncHandler;
+			typedef Outcome<Error, Model::ConnectKmsInstanceResult> ConnectKmsInstanceOutcome;
+			typedef std::future<ConnectKmsInstanceOutcome> ConnectKmsInstanceOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::ConnectKmsInstanceRequest&, const ConnectKmsInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ConnectKmsInstanceAsyncHandler;
 			typedef Outcome<Error, Model::CreateAliasResult> CreateAliasOutcome;
 			typedef std::future<CreateAliasOutcome> CreateAliasOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::CreateAliasRequest&, const CreateAliasOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateAliasAsyncHandler;
+			typedef Outcome<Error, Model::CreateApplicationAccessPointResult> CreateApplicationAccessPointOutcome;
+			typedef std::future<CreateApplicationAccessPointOutcome> CreateApplicationAccessPointOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::CreateApplicationAccessPointRequest&, const CreateApplicationAccessPointOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateApplicationAccessPointAsyncHandler;
 			typedef Outcome<Error, Model::CreateCertificateResult> CreateCertificateOutcome;
 			typedef std::future<CreateCertificateOutcome> CreateCertificateOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::CreateCertificateRequest&, const CreateCertificateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateCertificateAsyncHandler;
+			typedef Outcome<Error, Model::CreateClientKeyResult> CreateClientKeyOutcome;
+			typedef std::future<CreateClientKeyOutcome> CreateClientKeyOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::CreateClientKeyRequest&, const CreateClientKeyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateClientKeyAsyncHandler;
 			typedef Outcome<Error, Model::CreateKeyResult> CreateKeyOutcome;
 			typedef std::future<CreateKeyOutcome> CreateKeyOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::CreateKeyRequest&, const CreateKeyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateKeyAsyncHandler;
 			typedef Outcome<Error, Model::CreateKeyVersionResult> CreateKeyVersionOutcome;
 			typedef std::future<CreateKeyVersionOutcome> CreateKeyVersionOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::CreateKeyVersionRequest&, const CreateKeyVersionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateKeyVersionAsyncHandler;
+			typedef Outcome<Error, Model::CreateNetworkRuleResult> CreateNetworkRuleOutcome;
+			typedef std::future<CreateNetworkRuleOutcome> CreateNetworkRuleOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::CreateNetworkRuleRequest&, const CreateNetworkRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateNetworkRuleAsyncHandler;
+			typedef Outcome<Error, Model::CreatePolicyResult> CreatePolicyOutcome;
+			typedef std::future<CreatePolicyOutcome> CreatePolicyOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::CreatePolicyRequest&, const CreatePolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreatePolicyAsyncHandler;
 			typedef Outcome<Error, Model::CreateSecretResult> CreateSecretOutcome;
 			typedef std::future<CreateSecretOutcome> CreateSecretOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::CreateSecretRequest&, const CreateSecretOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateSecretAsyncHandler;
@@ -209,18 +270,33 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteAliasResult> DeleteAliasOutcome;
 			typedef std::future<DeleteAliasOutcome> DeleteAliasOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::DeleteAliasRequest&, const DeleteAliasOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteAliasAsyncHandler;
+			typedef Outcome<Error, Model::DeleteApplicationAccessPointResult> DeleteApplicationAccessPointOutcome;
+			typedef std::future<DeleteApplicationAccessPointOutcome> DeleteApplicationAccessPointOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::DeleteApplicationAccessPointRequest&, const DeleteApplicationAccessPointOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteApplicationAccessPointAsyncHandler;
 			typedef Outcome<Error, Model::DeleteCertificateResult> DeleteCertificateOutcome;
 			typedef std::future<DeleteCertificateOutcome> DeleteCertificateOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::DeleteCertificateRequest&, const DeleteCertificateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteCertificateAsyncHandler;
+			typedef Outcome<Error, Model::DeleteClientKeyResult> DeleteClientKeyOutcome;
+			typedef std::future<DeleteClientKeyOutcome> DeleteClientKeyOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::DeleteClientKeyRequest&, const DeleteClientKeyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteClientKeyAsyncHandler;
 			typedef Outcome<Error, Model::DeleteKeyMaterialResult> DeleteKeyMaterialOutcome;
 			typedef std::future<DeleteKeyMaterialOutcome> DeleteKeyMaterialOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::DeleteKeyMaterialRequest&, const DeleteKeyMaterialOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteKeyMaterialAsyncHandler;
+			typedef Outcome<Error, Model::DeleteNetworkRuleResult> DeleteNetworkRuleOutcome;
+			typedef std::future<DeleteNetworkRuleOutcome> DeleteNetworkRuleOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::DeleteNetworkRuleRequest&, const DeleteNetworkRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteNetworkRuleAsyncHandler;
+			typedef Outcome<Error, Model::DeletePolicyResult> DeletePolicyOutcome;
+			typedef std::future<DeletePolicyOutcome> DeletePolicyOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::DeletePolicyRequest&, const DeletePolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeletePolicyAsyncHandler;
 			typedef Outcome<Error, Model::DeleteSecretResult> DeleteSecretOutcome;
 			typedef std::future<DeleteSecretOutcome> DeleteSecretOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::DeleteSecretRequest&, const DeleteSecretOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteSecretAsyncHandler;
 			typedef Outcome<Error, Model::DescribeAccountKmsStatusResult> DescribeAccountKmsStatusOutcome;
 			typedef std::future<DescribeAccountKmsStatusOutcome> DescribeAccountKmsStatusOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::DescribeAccountKmsStatusRequest&, const DescribeAccountKmsStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeAccountKmsStatusAsyncHandler;
+			typedef Outcome<Error, Model::DescribeApplicationAccessPointResult> DescribeApplicationAccessPointOutcome;
+			typedef std::future<DescribeApplicationAccessPointOutcome> DescribeApplicationAccessPointOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::DescribeApplicationAccessPointRequest&, const DescribeApplicationAccessPointOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeApplicationAccessPointAsyncHandler;
 			typedef Outcome<Error, Model::DescribeCertificateResult> DescribeCertificateOutcome;
 			typedef std::future<DescribeCertificateOutcome> DescribeCertificateOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::DescribeCertificateRequest&, const DescribeCertificateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeCertificateAsyncHandler;
@@ -230,6 +306,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeKeyVersionResult> DescribeKeyVersionOutcome;
 			typedef std::future<DescribeKeyVersionOutcome> DescribeKeyVersionOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::DescribeKeyVersionRequest&, const DescribeKeyVersionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeKeyVersionAsyncHandler;
+			typedef Outcome<Error, Model::DescribeNetworkRuleResult> DescribeNetworkRuleOutcome;
+			typedef std::future<DescribeNetworkRuleOutcome> DescribeNetworkRuleOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::DescribeNetworkRuleRequest&, const DescribeNetworkRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeNetworkRuleAsyncHandler;
+			typedef Outcome<Error, Model::DescribePolicyResult> DescribePolicyOutcome;
+			typedef std::future<DescribePolicyOutcome> DescribePolicyOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::DescribePolicyRequest&, const DescribePolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribePolicyAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRegionsResult> DescribeRegionsOutcome;
 			typedef std::future<DescribeRegionsOutcome> DescribeRegionsOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::DescribeRegionsRequest&, const DescribeRegionsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRegionsAsyncHandler;
@@ -260,6 +342,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetCertificateResult> GetCertificateOutcome;
 			typedef std::future<GetCertificateOutcome> GetCertificateOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::GetCertificateRequest&, const GetCertificateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetCertificateAsyncHandler;
+			typedef Outcome<Error, Model::GetClientKeyResult> GetClientKeyOutcome;
+			typedef std::future<GetClientKeyOutcome> GetClientKeyOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::GetClientKeyRequest&, const GetClientKeyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetClientKeyAsyncHandler;
+			typedef Outcome<Error, Model::GetKmsInstanceResult> GetKmsInstanceOutcome;
+			typedef std::future<GetKmsInstanceOutcome> GetKmsInstanceOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::GetKmsInstanceRequest&, const GetKmsInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetKmsInstanceAsyncHandler;
 			typedef Outcome<Error, Model::GetParametersForImportResult> GetParametersForImportOutcome;
 			typedef std::future<GetParametersForImportOutcome> GetParametersForImportOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::GetParametersForImportRequest&, const GetParametersForImportOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetParametersForImportAsyncHandler;
@@ -281,12 +369,27 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListAliasesByKeyIdResult> ListAliasesByKeyIdOutcome;
 			typedef std::future<ListAliasesByKeyIdOutcome> ListAliasesByKeyIdOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::ListAliasesByKeyIdRequest&, const ListAliasesByKeyIdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListAliasesByKeyIdAsyncHandler;
+			typedef Outcome<Error, Model::ListApplicationAccessPointsResult> ListApplicationAccessPointsOutcome;
+			typedef std::future<ListApplicationAccessPointsOutcome> ListApplicationAccessPointsOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::ListApplicationAccessPointsRequest&, const ListApplicationAccessPointsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListApplicationAccessPointsAsyncHandler;
+			typedef Outcome<Error, Model::ListClientKeysResult> ListClientKeysOutcome;
+			typedef std::future<ListClientKeysOutcome> ListClientKeysOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::ListClientKeysRequest&, const ListClientKeysOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListClientKeysAsyncHandler;
 			typedef Outcome<Error, Model::ListKeyVersionsResult> ListKeyVersionsOutcome;
 			typedef std::future<ListKeyVersionsOutcome> ListKeyVersionsOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::ListKeyVersionsRequest&, const ListKeyVersionsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListKeyVersionsAsyncHandler;
 			typedef Outcome<Error, Model::ListKeysResult> ListKeysOutcome;
 			typedef std::future<ListKeysOutcome> ListKeysOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::ListKeysRequest&, const ListKeysOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListKeysAsyncHandler;
+			typedef Outcome<Error, Model::ListKmsInstancesResult> ListKmsInstancesOutcome;
+			typedef std::future<ListKmsInstancesOutcome> ListKmsInstancesOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::ListKmsInstancesRequest&, const ListKmsInstancesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListKmsInstancesAsyncHandler;
+			typedef Outcome<Error, Model::ListNetworkRulesResult> ListNetworkRulesOutcome;
+			typedef std::future<ListNetworkRulesOutcome> ListNetworkRulesOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::ListNetworkRulesRequest&, const ListNetworkRulesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListNetworkRulesAsyncHandler;
+			typedef Outcome<Error, Model::ListPoliciesResult> ListPoliciesOutcome;
+			typedef std::future<ListPoliciesOutcome> ListPoliciesOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::ListPoliciesRequest&, const ListPoliciesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListPoliciesAsyncHandler;
 			typedef Outcome<Error, Model::ListResourceTagsResult> ListResourceTagsOutcome;
 			typedef std::future<ListResourceTagsOutcome> ListResourceTagsOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::ListResourceTagsRequest&, const ListResourceTagsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListResourceTagsAsyncHandler;
@@ -335,12 +438,24 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::UpdateAliasResult> UpdateAliasOutcome;
 			typedef std::future<UpdateAliasOutcome> UpdateAliasOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::UpdateAliasRequest&, const UpdateAliasOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateAliasAsyncHandler;
+			typedef Outcome<Error, Model::UpdateApplicationAccessPointResult> UpdateApplicationAccessPointOutcome;
+			typedef std::future<UpdateApplicationAccessPointOutcome> UpdateApplicationAccessPointOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::UpdateApplicationAccessPointRequest&, const UpdateApplicationAccessPointOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateApplicationAccessPointAsyncHandler;
 			typedef Outcome<Error, Model::UpdateCertificateStatusResult> UpdateCertificateStatusOutcome;
 			typedef std::future<UpdateCertificateStatusOutcome> UpdateCertificateStatusOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::UpdateCertificateStatusRequest&, const UpdateCertificateStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateCertificateStatusAsyncHandler;
 			typedef Outcome<Error, Model::UpdateKeyDescriptionResult> UpdateKeyDescriptionOutcome;
 			typedef std::future<UpdateKeyDescriptionOutcome> UpdateKeyDescriptionOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::UpdateKeyDescriptionRequest&, const UpdateKeyDescriptionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateKeyDescriptionAsyncHandler;
+			typedef Outcome<Error, Model::UpdateKmsInstanceBindVpcResult> UpdateKmsInstanceBindVpcOutcome;
+			typedef std::future<UpdateKmsInstanceBindVpcOutcome> UpdateKmsInstanceBindVpcOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::UpdateKmsInstanceBindVpcRequest&, const UpdateKmsInstanceBindVpcOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateKmsInstanceBindVpcAsyncHandler;
+			typedef Outcome<Error, Model::UpdateNetworkRuleResult> UpdateNetworkRuleOutcome;
+			typedef std::future<UpdateNetworkRuleOutcome> UpdateNetworkRuleOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::UpdateNetworkRuleRequest&, const UpdateNetworkRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateNetworkRuleAsyncHandler;
+			typedef Outcome<Error, Model::UpdatePolicyResult> UpdatePolicyOutcome;
+			typedef std::future<UpdatePolicyOutcome> UpdatePolicyOutcomeCallable;
+			typedef std::function<void(const KmsClient*, const Model::UpdatePolicyRequest&, const UpdatePolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdatePolicyAsyncHandler;
 			typedef Outcome<Error, Model::UpdateRotationPolicyResult> UpdateRotationPolicyOutcome;
 			typedef std::future<UpdateRotationPolicyOutcome> UpdateRotationPolicyOutcomeCallable;
 			typedef std::function<void(const KmsClient*, const Model::UpdateRotationPolicyRequest&, const UpdateRotationPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateRotationPolicyAsyncHandler;
@@ -388,18 +503,33 @@ namespace AlibabaCloud
 			CertificatePublicKeyVerifyOutcome certificatePublicKeyVerify(const Model::CertificatePublicKeyVerifyRequest &request)const;
 			void certificatePublicKeyVerifyAsync(const Model::CertificatePublicKeyVerifyRequest& request, const CertificatePublicKeyVerifyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CertificatePublicKeyVerifyOutcomeCallable certificatePublicKeyVerifyCallable(const Model::CertificatePublicKeyVerifyRequest& request) const;
+			ConnectKmsInstanceOutcome connectKmsInstance(const Model::ConnectKmsInstanceRequest &request)const;
+			void connectKmsInstanceAsync(const Model::ConnectKmsInstanceRequest& request, const ConnectKmsInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ConnectKmsInstanceOutcomeCallable connectKmsInstanceCallable(const Model::ConnectKmsInstanceRequest& request) const;
 			CreateAliasOutcome createAlias(const Model::CreateAliasRequest &request)const;
 			void createAliasAsync(const Model::CreateAliasRequest& request, const CreateAliasAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateAliasOutcomeCallable createAliasCallable(const Model::CreateAliasRequest& request) const;
+			CreateApplicationAccessPointOutcome createApplicationAccessPoint(const Model::CreateApplicationAccessPointRequest &request)const;
+			void createApplicationAccessPointAsync(const Model::CreateApplicationAccessPointRequest& request, const CreateApplicationAccessPointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateApplicationAccessPointOutcomeCallable createApplicationAccessPointCallable(const Model::CreateApplicationAccessPointRequest& request) const;
 			CreateCertificateOutcome createCertificate(const Model::CreateCertificateRequest &request)const;
 			void createCertificateAsync(const Model::CreateCertificateRequest& request, const CreateCertificateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateCertificateOutcomeCallable createCertificateCallable(const Model::CreateCertificateRequest& request) const;
+			CreateClientKeyOutcome createClientKey(const Model::CreateClientKeyRequest &request)const;
+			void createClientKeyAsync(const Model::CreateClientKeyRequest& request, const CreateClientKeyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateClientKeyOutcomeCallable createClientKeyCallable(const Model::CreateClientKeyRequest& request) const;
 			CreateKeyOutcome createKey(const Model::CreateKeyRequest &request)const;
 			void createKeyAsync(const Model::CreateKeyRequest& request, const CreateKeyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateKeyOutcomeCallable createKeyCallable(const Model::CreateKeyRequest& request) const;
 			CreateKeyVersionOutcome createKeyVersion(const Model::CreateKeyVersionRequest &request)const;
 			void createKeyVersionAsync(const Model::CreateKeyVersionRequest& request, const CreateKeyVersionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateKeyVersionOutcomeCallable createKeyVersionCallable(const Model::CreateKeyVersionRequest& request) const;
+			CreateNetworkRuleOutcome createNetworkRule(const Model::CreateNetworkRuleRequest &request)const;
+			void createNetworkRuleAsync(const Model::CreateNetworkRuleRequest& request, const CreateNetworkRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateNetworkRuleOutcomeCallable createNetworkRuleCallable(const Model::CreateNetworkRuleRequest& request) const;
+			CreatePolicyOutcome createPolicy(const Model::CreatePolicyRequest &request)const;
+			void createPolicyAsync(const Model::CreatePolicyRequest& request, const CreatePolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreatePolicyOutcomeCallable createPolicyCallable(const Model::CreatePolicyRequest& request) const;
 			CreateSecretOutcome createSecret(const Model::CreateSecretRequest &request)const;
 			void createSecretAsync(const Model::CreateSecretRequest& request, const CreateSecretAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateSecretOutcomeCallable createSecretCallable(const Model::CreateSecretRequest& request) const;
@@ -409,18 +539,33 @@ namespace AlibabaCloud
 			DeleteAliasOutcome deleteAlias(const Model::DeleteAliasRequest &request)const;
 			void deleteAliasAsync(const Model::DeleteAliasRequest& request, const DeleteAliasAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteAliasOutcomeCallable deleteAliasCallable(const Model::DeleteAliasRequest& request) const;
+			DeleteApplicationAccessPointOutcome deleteApplicationAccessPoint(const Model::DeleteApplicationAccessPointRequest &request)const;
+			void deleteApplicationAccessPointAsync(const Model::DeleteApplicationAccessPointRequest& request, const DeleteApplicationAccessPointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteApplicationAccessPointOutcomeCallable deleteApplicationAccessPointCallable(const Model::DeleteApplicationAccessPointRequest& request) const;
 			DeleteCertificateOutcome deleteCertificate(const Model::DeleteCertificateRequest &request)const;
 			void deleteCertificateAsync(const Model::DeleteCertificateRequest& request, const DeleteCertificateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteCertificateOutcomeCallable deleteCertificateCallable(const Model::DeleteCertificateRequest& request) const;
+			DeleteClientKeyOutcome deleteClientKey(const Model::DeleteClientKeyRequest &request)const;
+			void deleteClientKeyAsync(const Model::DeleteClientKeyRequest& request, const DeleteClientKeyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteClientKeyOutcomeCallable deleteClientKeyCallable(const Model::DeleteClientKeyRequest& request) const;
 			DeleteKeyMaterialOutcome deleteKeyMaterial(const Model::DeleteKeyMaterialRequest &request)const;
 			void deleteKeyMaterialAsync(const Model::DeleteKeyMaterialRequest& request, const DeleteKeyMaterialAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteKeyMaterialOutcomeCallable deleteKeyMaterialCallable(const Model::DeleteKeyMaterialRequest& request) const;
+			DeleteNetworkRuleOutcome deleteNetworkRule(const Model::DeleteNetworkRuleRequest &request)const;
+			void deleteNetworkRuleAsync(const Model::DeleteNetworkRuleRequest& request, const DeleteNetworkRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteNetworkRuleOutcomeCallable deleteNetworkRuleCallable(const Model::DeleteNetworkRuleRequest& request) const;
+			DeletePolicyOutcome deletePolicy(const Model::DeletePolicyRequest &request)const;
+			void deletePolicyAsync(const Model::DeletePolicyRequest& request, const DeletePolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeletePolicyOutcomeCallable deletePolicyCallable(const Model::DeletePolicyRequest& request) const;
 			DeleteSecretOutcome deleteSecret(const Model::DeleteSecretRequest &request)const;
 			void deleteSecretAsync(const Model::DeleteSecretRequest& request, const DeleteSecretAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteSecretOutcomeCallable deleteSecretCallable(const Model::DeleteSecretRequest& request) const;
 			DescribeAccountKmsStatusOutcome describeAccountKmsStatus(const Model::DescribeAccountKmsStatusRequest &request)const;
 			void describeAccountKmsStatusAsync(const Model::DescribeAccountKmsStatusRequest& request, const DescribeAccountKmsStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeAccountKmsStatusOutcomeCallable describeAccountKmsStatusCallable(const Model::DescribeAccountKmsStatusRequest& request) const;
+			DescribeApplicationAccessPointOutcome describeApplicationAccessPoint(const Model::DescribeApplicationAccessPointRequest &request)const;
+			void describeApplicationAccessPointAsync(const Model::DescribeApplicationAccessPointRequest& request, const DescribeApplicationAccessPointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeApplicationAccessPointOutcomeCallable describeApplicationAccessPointCallable(const Model::DescribeApplicationAccessPointRequest& request) const;
 			DescribeCertificateOutcome describeCertificate(const Model::DescribeCertificateRequest &request)const;
 			void describeCertificateAsync(const Model::DescribeCertificateRequest& request, const DescribeCertificateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeCertificateOutcomeCallable describeCertificateCallable(const Model::DescribeCertificateRequest& request) const;
@@ -430,6 +575,12 @@ namespace AlibabaCloud
 			DescribeKeyVersionOutcome describeKeyVersion(const Model::DescribeKeyVersionRequest &request)const;
 			void describeKeyVersionAsync(const Model::DescribeKeyVersionRequest& request, const DescribeKeyVersionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeKeyVersionOutcomeCallable describeKeyVersionCallable(const Model::DescribeKeyVersionRequest& request) const;
+			DescribeNetworkRuleOutcome describeNetworkRule(const Model::DescribeNetworkRuleRequest &request)const;
+			void describeNetworkRuleAsync(const Model::DescribeNetworkRuleRequest& request, const DescribeNetworkRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeNetworkRuleOutcomeCallable describeNetworkRuleCallable(const Model::DescribeNetworkRuleRequest& request) const;
+			DescribePolicyOutcome describePolicy(const Model::DescribePolicyRequest &request)const;
+			void describePolicyAsync(const Model::DescribePolicyRequest& request, const DescribePolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribePolicyOutcomeCallable describePolicyCallable(const Model::DescribePolicyRequest& request) const;
 			DescribeRegionsOutcome describeRegions(const Model::DescribeRegionsRequest &request)const;
 			void describeRegionsAsync(const Model::DescribeRegionsRequest& request, const DescribeRegionsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRegionsOutcomeCallable describeRegionsCallable(const Model::DescribeRegionsRequest& request) const;
@@ -460,6 +611,12 @@ namespace AlibabaCloud
 			GetCertificateOutcome getCertificate(const Model::GetCertificateRequest &request)const;
 			void getCertificateAsync(const Model::GetCertificateRequest& request, const GetCertificateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetCertificateOutcomeCallable getCertificateCallable(const Model::GetCertificateRequest& request) const;
+			GetClientKeyOutcome getClientKey(const Model::GetClientKeyRequest &request)const;
+			void getClientKeyAsync(const Model::GetClientKeyRequest& request, const GetClientKeyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetClientKeyOutcomeCallable getClientKeyCallable(const Model::GetClientKeyRequest& request) const;
+			GetKmsInstanceOutcome getKmsInstance(const Model::GetKmsInstanceRequest &request)const;
+			void getKmsInstanceAsync(const Model::GetKmsInstanceRequest& request, const GetKmsInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetKmsInstanceOutcomeCallable getKmsInstanceCallable(const Model::GetKmsInstanceRequest& request) const;
 			GetParametersForImportOutcome getParametersForImport(const Model::GetParametersForImportRequest &request)const;
 			void getParametersForImportAsync(const Model::GetParametersForImportRequest& request, const GetParametersForImportAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetParametersForImportOutcomeCallable getParametersForImportCallable(const Model::GetParametersForImportRequest& request) const;
@@ -481,12 +638,27 @@ namespace AlibabaCloud
 			ListAliasesByKeyIdOutcome listAliasesByKeyId(const Model::ListAliasesByKeyIdRequest &request)const;
 			void listAliasesByKeyIdAsync(const Model::ListAliasesByKeyIdRequest& request, const ListAliasesByKeyIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListAliasesByKeyIdOutcomeCallable listAliasesByKeyIdCallable(const Model::ListAliasesByKeyIdRequest& request) const;
+			ListApplicationAccessPointsOutcome listApplicationAccessPoints(const Model::ListApplicationAccessPointsRequest &request)const;
+			void listApplicationAccessPointsAsync(const Model::ListApplicationAccessPointsRequest& request, const ListApplicationAccessPointsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListApplicationAccessPointsOutcomeCallable listApplicationAccessPointsCallable(const Model::ListApplicationAccessPointsRequest& request) const;
+			ListClientKeysOutcome listClientKeys(const Model::ListClientKeysRequest &request)const;
+			void listClientKeysAsync(const Model::ListClientKeysRequest& request, const ListClientKeysAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListClientKeysOutcomeCallable listClientKeysCallable(const Model::ListClientKeysRequest& request) const;
 			ListKeyVersionsOutcome listKeyVersions(const Model::ListKeyVersionsRequest &request)const;
 			void listKeyVersionsAsync(const Model::ListKeyVersionsRequest& request, const ListKeyVersionsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListKeyVersionsOutcomeCallable listKeyVersionsCallable(const Model::ListKeyVersionsRequest& request) const;
 			ListKeysOutcome listKeys(const Model::ListKeysRequest &request)const;
 			void listKeysAsync(const Model::ListKeysRequest& request, const ListKeysAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListKeysOutcomeCallable listKeysCallable(const Model::ListKeysRequest& request) const;
+			ListKmsInstancesOutcome listKmsInstances(const Model::ListKmsInstancesRequest &request)const;
+			void listKmsInstancesAsync(const Model::ListKmsInstancesRequest& request, const ListKmsInstancesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListKmsInstancesOutcomeCallable listKmsInstancesCallable(const Model::ListKmsInstancesRequest& request) const;
+			ListNetworkRulesOutcome listNetworkRules(const Model::ListNetworkRulesRequest &request)const;
+			void listNetworkRulesAsync(const Model::ListNetworkRulesRequest& request, const ListNetworkRulesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListNetworkRulesOutcomeCallable listNetworkRulesCallable(const Model::ListNetworkRulesRequest& request) const;
+			ListPoliciesOutcome listPolicies(const Model::ListPoliciesRequest &request)const;
+			void listPoliciesAsync(const Model::ListPoliciesRequest& request, const ListPoliciesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListPoliciesOutcomeCallable listPoliciesCallable(const Model::ListPoliciesRequest& request) const;
 			ListResourceTagsOutcome listResourceTags(const Model::ListResourceTagsRequest &request)const;
 			void listResourceTagsAsync(const Model::ListResourceTagsRequest& request, const ListResourceTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListResourceTagsOutcomeCallable listResourceTagsCallable(const Model::ListResourceTagsRequest& request) const;
@@ -535,12 +707,24 @@ namespace AlibabaCloud
 			UpdateAliasOutcome updateAlias(const Model::UpdateAliasRequest &request)const;
 			void updateAliasAsync(const Model::UpdateAliasRequest& request, const UpdateAliasAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateAliasOutcomeCallable updateAliasCallable(const Model::UpdateAliasRequest& request) const;
+			UpdateApplicationAccessPointOutcome updateApplicationAccessPoint(const Model::UpdateApplicationAccessPointRequest &request)const;
+			void updateApplicationAccessPointAsync(const Model::UpdateApplicationAccessPointRequest& request, const UpdateApplicationAccessPointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateApplicationAccessPointOutcomeCallable updateApplicationAccessPointCallable(const Model::UpdateApplicationAccessPointRequest& request) const;
 			UpdateCertificateStatusOutcome updateCertificateStatus(const Model::UpdateCertificateStatusRequest &request)const;
 			void updateCertificateStatusAsync(const Model::UpdateCertificateStatusRequest& request, const UpdateCertificateStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateCertificateStatusOutcomeCallable updateCertificateStatusCallable(const Model::UpdateCertificateStatusRequest& request) const;
 			UpdateKeyDescriptionOutcome updateKeyDescription(const Model::UpdateKeyDescriptionRequest &request)const;
 			void updateKeyDescriptionAsync(const Model::UpdateKeyDescriptionRequest& request, const UpdateKeyDescriptionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateKeyDescriptionOutcomeCallable updateKeyDescriptionCallable(const Model::UpdateKeyDescriptionRequest& request) const;
+			UpdateKmsInstanceBindVpcOutcome updateKmsInstanceBindVpc(const Model::UpdateKmsInstanceBindVpcRequest &request)const;
+			void updateKmsInstanceBindVpcAsync(const Model::UpdateKmsInstanceBindVpcRequest& request, const UpdateKmsInstanceBindVpcAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateKmsInstanceBindVpcOutcomeCallable updateKmsInstanceBindVpcCallable(const Model::UpdateKmsInstanceBindVpcRequest& request) const;
+			UpdateNetworkRuleOutcome updateNetworkRule(const Model::UpdateNetworkRuleRequest &request)const;
+			void updateNetworkRuleAsync(const Model::UpdateNetworkRuleRequest& request, const UpdateNetworkRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateNetworkRuleOutcomeCallable updateNetworkRuleCallable(const Model::UpdateNetworkRuleRequest& request) const;
+			UpdatePolicyOutcome updatePolicy(const Model::UpdatePolicyRequest &request)const;
+			void updatePolicyAsync(const Model::UpdatePolicyRequest& request, const UpdatePolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdatePolicyOutcomeCallable updatePolicyCallable(const Model::UpdatePolicyRequest& request) const;
 			UpdateRotationPolicyOutcome updateRotationPolicy(const Model::UpdateRotationPolicyRequest &request)const;
 			void updateRotationPolicyAsync(const Model::UpdateRotationPolicyRequest& request, const UpdateRotationPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateRotationPolicyOutcomeCallable updateRotationPolicyCallable(const Model::UpdateRotationPolicyRequest& request) const;

+ 54 - 0
kms/include/alibabacloud/kms/model/ConnectKmsInstanceRequest.h

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_CONNECTKMSINSTANCEREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_CONNECTKMSINSTANCEREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT ConnectKmsInstanceRequest : public RpcServiceRequest {
+public:
+	ConnectKmsInstanceRequest();
+	~ConnectKmsInstanceRequest();
+	std::string getKmsInstanceId() const;
+	void setKmsInstanceId(const std::string &kmsInstanceId);
+	std::string getVSwitchIds() const;
+	void setVSwitchIds(const std::string &vSwitchIds);
+	std::string getKMProvider() const;
+	void setKMProvider(const std::string &kMProvider);
+	std::string getZoneIds() const;
+	void setZoneIds(const std::string &zoneIds);
+	std::string getVpcId() const;
+	void setVpcId(const std::string &vpcId);
+
+private:
+	std::string kmsInstanceId_;
+	std::string vSwitchIds_;
+	std::string kMProvider_;
+	std::string zoneIds_;
+	std::string vpcId_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_CONNECTKMSINSTANCEREQUEST_H_

+ 49 - 0
kms/include/alibabacloud/kms/model/ConnectKmsInstanceResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_CONNECTKMSINSTANCERESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_CONNECTKMSINSTANCERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT ConnectKmsInstanceResult : public ServiceResult
+			{
+			public:
+
+
+				ConnectKmsInstanceResult();
+				explicit ConnectKmsInstanceResult(const std::string &payload);
+				~ConnectKmsInstanceResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_CONNECTKMSINSTANCERESULT_H_

+ 51 - 0
kms/include/alibabacloud/kms/model/CreateApplicationAccessPointRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_CREATEAPPLICATIONACCESSPOINTREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_CREATEAPPLICATIONACCESSPOINTREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT CreateApplicationAccessPointRequest : public RpcServiceRequest {
+public:
+	CreateApplicationAccessPointRequest();
+	~CreateApplicationAccessPointRequest();
+	std::string getPolicies() const;
+	void setPolicies(const std::string &policies);
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getAuthenticationMethod() const;
+	void setAuthenticationMethod(const std::string &authenticationMethod);
+
+private:
+	std::string policies_;
+	std::string description_;
+	std::string name_;
+	std::string authenticationMethod_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_CREATEAPPLICATIONACCESSPOINTREQUEST_H_

+ 59 - 0
kms/include/alibabacloud/kms/model/CreateApplicationAccessPointResult.h

@@ -0,0 +1,59 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_CREATEAPPLICATIONACCESSPOINTRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_CREATEAPPLICATIONACCESSPOINTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT CreateApplicationAccessPointResult : public ServiceResult
+			{
+			public:
+
+
+				CreateApplicationAccessPointResult();
+				explicit CreateApplicationAccessPointResult(const std::string &payload);
+				~CreateApplicationAccessPointResult();
+				std::string getDescription()const;
+				std::string getPolicies()const;
+				std::string getAuthenticationMethod()const;
+				std::string getArn()const;
+				std::string getName()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string description_;
+				std::string policies_;
+				std::string authenticationMethod_;
+				std::string arn_;
+				std::string name_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_CREATEAPPLICATIONACCESSPOINTRESULT_H_

+ 51 - 0
kms/include/alibabacloud/kms/model/CreateClientKeyRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_CREATECLIENTKEYREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_CREATECLIENTKEYREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT CreateClientKeyRequest : public RpcServiceRequest {
+public:
+	CreateClientKeyRequest();
+	~CreateClientKeyRequest();
+	std::string getNotBefore() const;
+	void setNotBefore(const std::string &notBefore);
+	std::string getNotAfter() const;
+	void setNotAfter(const std::string &notAfter);
+	std::string getPassword() const;
+	void setPassword(const std::string &password);
+	std::string getAapName() const;
+	void setAapName(const std::string &aapName);
+
+private:
+	std::string notBefore_;
+	std::string notAfter_;
+	std::string password_;
+	std::string aapName_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_CREATECLIENTKEYREQUEST_H_

+ 59 - 0
kms/include/alibabacloud/kms/model/CreateClientKeyResult.h

@@ -0,0 +1,59 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_CREATECLIENTKEYRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_CREATECLIENTKEYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT CreateClientKeyResult : public ServiceResult
+			{
+			public:
+
+
+				CreateClientKeyResult();
+				explicit CreateClientKeyResult(const std::string &payload);
+				~CreateClientKeyResult();
+				std::string getClientKeyId()const;
+				std::string getPrivateKeyData()const;
+				std::string getNotBefore()const;
+				std::string getNotAfter()const;
+				std::string getKeyAlgorithm()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string clientKeyId_;
+				std::string privateKeyData_;
+				std::string notBefore_;
+				std::string notAfter_;
+				std::string keyAlgorithm_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_CREATECLIENTKEYRESULT_H_

+ 51 - 0
kms/include/alibabacloud/kms/model/CreateNetworkRuleRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_CREATENETWORKRULEREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_CREATENETWORKRULEREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT CreateNetworkRuleRequest : public RpcServiceRequest {
+public:
+	CreateNetworkRuleRequest();
+	~CreateNetworkRuleRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getType() const;
+	void setType(const std::string &type);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getSourcePrivateIp() const;
+	void setSourcePrivateIp(const std::string &sourcePrivateIp);
+
+private:
+	std::string description_;
+	std::string type_;
+	std::string name_;
+	std::string sourcePrivateIp_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_CREATENETWORKRULEREQUEST_H_

+ 59 - 0
kms/include/alibabacloud/kms/model/CreateNetworkRuleResult.h

@@ -0,0 +1,59 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_CREATENETWORKRULERESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_CREATENETWORKRULERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT CreateNetworkRuleResult : public ServiceResult
+			{
+			public:
+
+
+				CreateNetworkRuleResult();
+				explicit CreateNetworkRuleResult(const std::string &payload);
+				~CreateNetworkRuleResult();
+				std::string getType()const;
+				std::string getDescription()const;
+				std::string getSourcePrivateIp()const;
+				std::string getArn()const;
+				std::string getName()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string type_;
+				std::string description_;
+				std::string sourcePrivateIp_;
+				std::string arn_;
+				std::string name_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_CREATENETWORKRULERESULT_H_

+ 57 - 0
kms/include/alibabacloud/kms/model/CreatePolicyRequest.h

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_CREATEPOLICYREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_CREATEPOLICYREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT CreatePolicyRequest : public RpcServiceRequest {
+public:
+	CreatePolicyRequest();
+	~CreatePolicyRequest();
+	std::string getAccessControlRules() const;
+	void setAccessControlRules(const std::string &accessControlRules);
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getResources() const;
+	void setResources(const std::string &resources);
+	std::string getKmsInstance() const;
+	void setKmsInstance(const std::string &kmsInstance);
+	std::string getPermissions() const;
+	void setPermissions(const std::string &permissions);
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string accessControlRules_;
+	std::string description_;
+	std::string resources_;
+	std::string kmsInstance_;
+	std::string permissions_;
+	std::string name_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_CREATEPOLICYREQUEST_H_

+ 63 - 0
kms/include/alibabacloud/kms/model/CreatePolicyResult.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_CREATEPOLICYRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_CREATEPOLICYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT CreatePolicyResult : public ServiceResult
+			{
+			public:
+
+
+				CreatePolicyResult();
+				explicit CreatePolicyResult(const std::string &payload);
+				~CreatePolicyResult();
+				std::string getKmsInstance()const;
+				std::string getDescription()const;
+				std::string getAccessControlRules()const;
+				std::string getPermissions()const;
+				std::string getResources()const;
+				std::string getArn()const;
+				std::string getName()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string kmsInstance_;
+				std::string description_;
+				std::string accessControlRules_;
+				std::string permissions_;
+				std::string resources_;
+				std::string arn_;
+				std::string name_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_CREATEPOLICYRESULT_H_

+ 42 - 0
kms/include/alibabacloud/kms/model/DeleteApplicationAccessPointRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DELETEAPPLICATIONACCESSPOINTREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_DELETEAPPLICATIONACCESSPOINTREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT DeleteApplicationAccessPointRequest : public RpcServiceRequest {
+public:
+	DeleteApplicationAccessPointRequest();
+	~DeleteApplicationAccessPointRequest();
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string name_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_DELETEAPPLICATIONACCESSPOINTREQUEST_H_

+ 49 - 0
kms/include/alibabacloud/kms/model/DeleteApplicationAccessPointResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DELETEAPPLICATIONACCESSPOINTRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_DELETEAPPLICATIONACCESSPOINTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT DeleteApplicationAccessPointResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteApplicationAccessPointResult();
+				explicit DeleteApplicationAccessPointResult(const std::string &payload);
+				~DeleteApplicationAccessPointResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_DELETEAPPLICATIONACCESSPOINTRESULT_H_

+ 42 - 0
kms/include/alibabacloud/kms/model/DeleteClientKeyRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DELETECLIENTKEYREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_DELETECLIENTKEYREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT DeleteClientKeyRequest : public RpcServiceRequest {
+public:
+	DeleteClientKeyRequest();
+	~DeleteClientKeyRequest();
+	std::string getClientKeyId() const;
+	void setClientKeyId(const std::string &clientKeyId);
+
+private:
+	std::string clientKeyId_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_DELETECLIENTKEYREQUEST_H_

+ 49 - 0
kms/include/alibabacloud/kms/model/DeleteClientKeyResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DELETECLIENTKEYRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_DELETECLIENTKEYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT DeleteClientKeyResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteClientKeyResult();
+				explicit DeleteClientKeyResult(const std::string &payload);
+				~DeleteClientKeyResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_DELETECLIENTKEYRESULT_H_

+ 42 - 0
kms/include/alibabacloud/kms/model/DeleteNetworkRuleRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DELETENETWORKRULEREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_DELETENETWORKRULEREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT DeleteNetworkRuleRequest : public RpcServiceRequest {
+public:
+	DeleteNetworkRuleRequest();
+	~DeleteNetworkRuleRequest();
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string name_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_DELETENETWORKRULEREQUEST_H_

+ 49 - 0
kms/include/alibabacloud/kms/model/DeleteNetworkRuleResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DELETENETWORKRULERESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_DELETENETWORKRULERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT DeleteNetworkRuleResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteNetworkRuleResult();
+				explicit DeleteNetworkRuleResult(const std::string &payload);
+				~DeleteNetworkRuleResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_DELETENETWORKRULERESULT_H_

+ 42 - 0
kms/include/alibabacloud/kms/model/DeletePolicyRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DELETEPOLICYREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_DELETEPOLICYREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT DeletePolicyRequest : public RpcServiceRequest {
+public:
+	DeletePolicyRequest();
+	~DeletePolicyRequest();
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string name_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_DELETEPOLICYREQUEST_H_

+ 49 - 0
kms/include/alibabacloud/kms/model/DeletePolicyResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DELETEPOLICYRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_DELETEPOLICYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT DeletePolicyResult : public ServiceResult
+			{
+			public:
+
+
+				DeletePolicyResult();
+				explicit DeletePolicyResult(const std::string &payload);
+				~DeletePolicyResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_DELETEPOLICYRESULT_H_

+ 42 - 0
kms/include/alibabacloud/kms/model/DescribeApplicationAccessPointRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DESCRIBEAPPLICATIONACCESSPOINTREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_DESCRIBEAPPLICATIONACCESSPOINTREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT DescribeApplicationAccessPointRequest : public RpcServiceRequest {
+public:
+	DescribeApplicationAccessPointRequest();
+	~DescribeApplicationAccessPointRequest();
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string name_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_DESCRIBEAPPLICATIONACCESSPOINTREQUEST_H_

+ 59 - 0
kms/include/alibabacloud/kms/model/DescribeApplicationAccessPointResult.h

@@ -0,0 +1,59 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DESCRIBEAPPLICATIONACCESSPOINTRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_DESCRIBEAPPLICATIONACCESSPOINTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT DescribeApplicationAccessPointResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeApplicationAccessPointResult();
+				explicit DescribeApplicationAccessPointResult(const std::string &payload);
+				~DescribeApplicationAccessPointResult();
+				std::string getDescription()const;
+				std::string getPolicies()const;
+				std::string getAuthenticationMethod()const;
+				std::string getArn()const;
+				std::string getName()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string description_;
+				std::string policies_;
+				std::string authenticationMethod_;
+				std::string arn_;
+				std::string name_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_DESCRIBEAPPLICATIONACCESSPOINTRESULT_H_

+ 42 - 0
kms/include/alibabacloud/kms/model/DescribeNetworkRuleRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DESCRIBENETWORKRULEREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_DESCRIBENETWORKRULEREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT DescribeNetworkRuleRequest : public RpcServiceRequest {
+public:
+	DescribeNetworkRuleRequest();
+	~DescribeNetworkRuleRequest();
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string name_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_DESCRIBENETWORKRULEREQUEST_H_

+ 57 - 0
kms/include/alibabacloud/kms/model/DescribeNetworkRuleResult.h

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DESCRIBENETWORKRULERESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_DESCRIBENETWORKRULERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT DescribeNetworkRuleResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeNetworkRuleResult();
+				explicit DescribeNetworkRuleResult(const std::string &payload);
+				~DescribeNetworkRuleResult();
+				std::string getType()const;
+				std::string getDescription()const;
+				std::string getSourcePrivateIp()const;
+				std::string getArn()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string type_;
+				std::string description_;
+				std::string sourcePrivateIp_;
+				std::string arn_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_DESCRIBENETWORKRULERESULT_H_

+ 42 - 0
kms/include/alibabacloud/kms/model/DescribePolicyRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DESCRIBEPOLICYREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_DESCRIBEPOLICYREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT DescribePolicyRequest : public RpcServiceRequest {
+public:
+	DescribePolicyRequest();
+	~DescribePolicyRequest();
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string name_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_DESCRIBEPOLICYREQUEST_H_

+ 63 - 0
kms/include/alibabacloud/kms/model/DescribePolicyResult.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_DESCRIBEPOLICYRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_DESCRIBEPOLICYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT DescribePolicyResult : public ServiceResult
+			{
+			public:
+
+
+				DescribePolicyResult();
+				explicit DescribePolicyResult(const std::string &payload);
+				~DescribePolicyResult();
+				std::string getKmsInstance()const;
+				std::string getDescription()const;
+				std::string getAccessControlRules()const;
+				std::vector<std::string> getPermissions()const;
+				std::vector<std::string> getResources()const;
+				std::string getArn()const;
+				std::string getName()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string kmsInstance_;
+				std::string description_;
+				std::string accessControlRules_;
+				std::vector<std::string> permissions_;
+				std::vector<std::string> resources_;
+				std::string arn_;
+				std::string name_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_DESCRIBEPOLICYRESULT_H_

+ 42 - 0
kms/include/alibabacloud/kms/model/GetClientKeyRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_GETCLIENTKEYREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_GETCLIENTKEYREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT GetClientKeyRequest : public RpcServiceRequest {
+public:
+	GetClientKeyRequest();
+	~GetClientKeyRequest();
+	std::string getClientKeyId() const;
+	void setClientKeyId(const std::string &clientKeyId);
+
+private:
+	std::string clientKeyId_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_GETCLIENTKEYREQUEST_H_

+ 65 - 0
kms/include/alibabacloud/kms/model/GetClientKeyResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_GETCLIENTKEYRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_GETCLIENTKEYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT GetClientKeyResult : public ServiceResult
+			{
+			public:
+
+
+				GetClientKeyResult();
+				explicit GetClientKeyResult(const std::string &payload);
+				~GetClientKeyResult();
+				std::string getClientKeyId()const;
+				std::string getAapName()const;
+				std::string getPublicKeyData()const;
+				std::string getCreateTime()const;
+				std::string getNotAfter()const;
+				std::string getNotBefore()const;
+				std::string getKeyOrigin()const;
+				std::string getKeyAlgorithm()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string clientKeyId_;
+				std::string aapName_;
+				std::string publicKeyData_;
+				std::string createTime_;
+				std::string notAfter_;
+				std::string notBefore_;
+				std::string keyOrigin_;
+				std::string keyAlgorithm_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_GETCLIENTKEYRESULT_H_

+ 42 - 0
kms/include/alibabacloud/kms/model/GetKmsInstanceRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_GETKMSINSTANCEREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_GETKMSINSTANCEREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT GetKmsInstanceRequest : public RpcServiceRequest {
+public:
+	GetKmsInstanceRequest();
+	~GetKmsInstanceRequest();
+	std::string getKmsInstanceId() const;
+	void setKmsInstanceId(const std::string &kmsInstanceId);
+
+private:
+	std::string kmsInstanceId_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_GETKMSINSTANCEREQUEST_H_

+ 76 - 0
kms/include/alibabacloud/kms/model/GetKmsInstanceResult.h

@@ -0,0 +1,76 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_GETKMSINSTANCERESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_GETKMSINSTANCERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT GetKmsInstanceResult : public ServiceResult
+			{
+			public:
+				struct KmsInstance
+				{
+					struct BindVpc
+					{
+						std::string vpcId;
+						std::string vSwitchId;
+						std::string regionId;
+						std::string vpcOwnerId;
+					};
+					std::string status;
+					std::string caCertificateChainPem;
+					long vpcNum;
+					std::string instanceId;
+					long keyNum;
+					std::string createTime;
+					std::string secretNum;
+					std::string endDate;
+					std::string instanceName;
+					std::string startDate;
+					std::string vpcId;
+					std::string vswitchIds;
+					std::string zoneIds;
+					long spec;
+					std::vector<BindVpc> bindVpcs;
+				};
+
+
+				GetKmsInstanceResult();
+				explicit GetKmsInstanceResult(const std::string &payload);
+				~GetKmsInstanceResult();
+				KmsInstance getKmsInstance()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				KmsInstance kmsInstance_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_GETKMSINSTANCERESULT_H_

+ 45 - 0
kms/include/alibabacloud/kms/model/ListApplicationAccessPointsRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_LISTAPPLICATIONACCESSPOINTSREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_LISTAPPLICATIONACCESSPOINTSREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT ListApplicationAccessPointsRequest : public RpcServiceRequest {
+public:
+	ListApplicationAccessPointsRequest();
+	~ListApplicationAccessPointsRequest();
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	int getPageNumber() const;
+	void setPageNumber(int pageNumber);
+
+private:
+	int pageSize_;
+	int pageNumber_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_LISTAPPLICATIONACCESSPOINTSREQUEST_H_

+ 62 - 0
kms/include/alibabacloud/kms/model/ListApplicationAccessPointsResult.h

@@ -0,0 +1,62 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_LISTAPPLICATIONACCESSPOINTSRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_LISTAPPLICATIONACCESSPOINTSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT ListApplicationAccessPointsResult : public ServiceResult
+			{
+			public:
+				struct ApplicationAccessPoint
+				{
+					std::string authenticationMethod;
+					std::string name;
+				};
+
+
+				ListApplicationAccessPointsResult();
+				explicit ListApplicationAccessPointsResult(const std::string &payload);
+				~ListApplicationAccessPointsResult();
+				int getTotalCount()const;
+				int getPageSize()const;
+				int getPageNumber()const;
+				std::vector<ApplicationAccessPoint> getApplicationAccessPoints()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				int pageSize_;
+				int pageNumber_;
+				std::vector<ApplicationAccessPoint> applicationAccessPoints_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_LISTAPPLICATIONACCESSPOINTSRESULT_H_

+ 42 - 0
kms/include/alibabacloud/kms/model/ListClientKeysRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_LISTCLIENTKEYSREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_LISTCLIENTKEYSREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT ListClientKeysRequest : public RpcServiceRequest {
+public:
+	ListClientKeysRequest();
+	~ListClientKeysRequest();
+	std::string getAapName() const;
+	void setAapName(const std::string &aapName);
+
+private:
+	std::string aapName_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_LISTCLIENTKEYSREQUEST_H_

+ 62 - 0
kms/include/alibabacloud/kms/model/ListClientKeysResult.h

@@ -0,0 +1,62 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_LISTCLIENTKEYSRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_LISTCLIENTKEYSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT ListClientKeysResult : public ServiceResult
+			{
+			public:
+				struct ClientKey
+				{
+					std::string clientKeyId;
+					std::string aapName;
+					std::string publicKeyData;
+					std::string createTime;
+					std::string notBefore;
+					std::string notAfter;
+					std::string keyOrigin;
+					std::string keyAlgorithm;
+				};
+
+
+				ListClientKeysResult();
+				explicit ListClientKeysResult(const std::string &payload);
+				~ListClientKeysResult();
+				std::vector<ClientKey> getClientKeys()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<ClientKey> clientKeys_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_LISTCLIENTKEYSRESULT_H_

+ 45 - 0
kms/include/alibabacloud/kms/model/ListKmsInstancesRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_LISTKMSINSTANCESREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_LISTKMSINSTANCESREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT ListKmsInstancesRequest : public RpcServiceRequest {
+public:
+	ListKmsInstancesRequest();
+	~ListKmsInstancesRequest();
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	int getPageNumber() const;
+	void setPageNumber(int pageNumber);
+
+private:
+	int pageSize_;
+	int pageNumber_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_LISTKMSINSTANCESREQUEST_H_

+ 62 - 0
kms/include/alibabacloud/kms/model/ListKmsInstancesResult.h

@@ -0,0 +1,62 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_LISTKMSINSTANCESRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_LISTKMSINSTANCESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT ListKmsInstancesResult : public ServiceResult
+			{
+			public:
+				struct KmsInstance
+				{
+					std::string kmsInstanceArn;
+					std::string kmsInstanceId;
+				};
+
+
+				ListKmsInstancesResult();
+				explicit ListKmsInstancesResult(const std::string &payload);
+				~ListKmsInstancesResult();
+				long getTotalCount()const;
+				long getPageSize()const;
+				long getPageNumber()const;
+				std::vector<KmsInstance> getKmsInstances()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long totalCount_;
+				long pageSize_;
+				long pageNumber_;
+				std::vector<KmsInstance> kmsInstances_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_LISTKMSINSTANCESRESULT_H_

+ 45 - 0
kms/include/alibabacloud/kms/model/ListNetworkRulesRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_LISTNETWORKRULESREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_LISTNETWORKRULESREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT ListNetworkRulesRequest : public RpcServiceRequest {
+public:
+	ListNetworkRulesRequest();
+	~ListNetworkRulesRequest();
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	int getPageNumber() const;
+	void setPageNumber(int pageNumber);
+
+private:
+	int pageSize_;
+	int pageNumber_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_LISTNETWORKRULESREQUEST_H_

+ 62 - 0
kms/include/alibabacloud/kms/model/ListNetworkRulesResult.h

@@ -0,0 +1,62 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_LISTNETWORKRULESRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_LISTNETWORKRULESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT ListNetworkRulesResult : public ServiceResult
+			{
+			public:
+				struct NetworkRule
+				{
+					std::string type;
+					std::string name;
+				};
+
+
+				ListNetworkRulesResult();
+				explicit ListNetworkRulesResult(const std::string &payload);
+				~ListNetworkRulesResult();
+				std::vector<NetworkRule> getNetworkRules()const;
+				int getTotalCount()const;
+				int getPageSize()const;
+				int getPageNumber()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<NetworkRule> networkRules_;
+				int totalCount_;
+				int pageSize_;
+				int pageNumber_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_LISTNETWORKRULESRESULT_H_

+ 45 - 0
kms/include/alibabacloud/kms/model/ListPoliciesRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_LISTPOLICIESREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_LISTPOLICIESREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT ListPoliciesRequest : public RpcServiceRequest {
+public:
+	ListPoliciesRequest();
+	~ListPoliciesRequest();
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	int getPageNumber() const;
+	void setPageNumber(int pageNumber);
+
+private:
+	int pageSize_;
+	int pageNumber_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_LISTPOLICIESREQUEST_H_

+ 61 - 0
kms/include/alibabacloud/kms/model/ListPoliciesResult.h

@@ -0,0 +1,61 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_LISTPOLICIESRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_LISTPOLICIESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT ListPoliciesResult : public ServiceResult
+			{
+			public:
+				struct Policy
+				{
+					std::string name;
+				};
+
+
+				ListPoliciesResult();
+				explicit ListPoliciesResult(const std::string &payload);
+				~ListPoliciesResult();
+				int getTotalCount()const;
+				std::vector<Policy> getPolicies()const;
+				int getPageSize()const;
+				int getPageNumber()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				std::vector<Policy> policies_;
+				int pageSize_;
+				int pageNumber_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_LISTPOLICIESRESULT_H_

+ 48 - 0
kms/include/alibabacloud/kms/model/UpdateApplicationAccessPointRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_UPDATEAPPLICATIONACCESSPOINTREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_UPDATEAPPLICATIONACCESSPOINTREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT UpdateApplicationAccessPointRequest : public RpcServiceRequest {
+public:
+	UpdateApplicationAccessPointRequest();
+	~UpdateApplicationAccessPointRequest();
+	std::string getPolicies() const;
+	void setPolicies(const std::string &policies);
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string policies_;
+	std::string description_;
+	std::string name_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_UPDATEAPPLICATIONACCESSPOINTREQUEST_H_

+ 49 - 0
kms/include/alibabacloud/kms/model/UpdateApplicationAccessPointResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_UPDATEAPPLICATIONACCESSPOINTRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_UPDATEAPPLICATIONACCESSPOINTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT UpdateApplicationAccessPointResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateApplicationAccessPointResult();
+				explicit UpdateApplicationAccessPointResult(const std::string &payload);
+				~UpdateApplicationAccessPointResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_UPDATEAPPLICATIONACCESSPOINTRESULT_H_

+ 45 - 0
kms/include/alibabacloud/kms/model/UpdateKmsInstanceBindVpcRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_UPDATEKMSINSTANCEBINDVPCREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_UPDATEKMSINSTANCEBINDVPCREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT UpdateKmsInstanceBindVpcRequest : public RpcServiceRequest {
+public:
+	UpdateKmsInstanceBindVpcRequest();
+	~UpdateKmsInstanceBindVpcRequest();
+	std::string getKmsInstanceId() const;
+	void setKmsInstanceId(const std::string &kmsInstanceId);
+	std::string getBindVpcs() const;
+	void setBindVpcs(const std::string &bindVpcs);
+
+private:
+	std::string kmsInstanceId_;
+	std::string bindVpcs_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_UPDATEKMSINSTANCEBINDVPCREQUEST_H_

+ 49 - 0
kms/include/alibabacloud/kms/model/UpdateKmsInstanceBindVpcResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_UPDATEKMSINSTANCEBINDVPCRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_UPDATEKMSINSTANCEBINDVPCRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT UpdateKmsInstanceBindVpcResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateKmsInstanceBindVpcResult();
+				explicit UpdateKmsInstanceBindVpcResult(const std::string &payload);
+				~UpdateKmsInstanceBindVpcResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_UPDATEKMSINSTANCEBINDVPCRESULT_H_

+ 48 - 0
kms/include/alibabacloud/kms/model/UpdateNetworkRuleRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_UPDATENETWORKRULEREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_UPDATENETWORKRULEREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT UpdateNetworkRuleRequest : public RpcServiceRequest {
+public:
+	UpdateNetworkRuleRequest();
+	~UpdateNetworkRuleRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getSourcePrivateIp() const;
+	void setSourcePrivateIp(const std::string &sourcePrivateIp);
+
+private:
+	std::string description_;
+	std::string name_;
+	std::string sourcePrivateIp_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_UPDATENETWORKRULEREQUEST_H_

+ 49 - 0
kms/include/alibabacloud/kms/model/UpdateNetworkRuleResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_UPDATENETWORKRULERESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_UPDATENETWORKRULERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT UpdateNetworkRuleResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateNetworkRuleResult();
+				explicit UpdateNetworkRuleResult(const std::string &payload);
+				~UpdateNetworkRuleResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_UPDATENETWORKRULERESULT_H_

+ 54 - 0
kms/include/alibabacloud/kms/model/UpdatePolicyRequest.h

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_UPDATEPOLICYREQUEST_H_
+#define ALIBABACLOUD_KMS_MODEL_UPDATEPOLICYREQUEST_H_
+
+#include <alibabacloud/kms/KmsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Kms {
+namespace Model {
+class ALIBABACLOUD_KMS_EXPORT UpdatePolicyRequest : public RpcServiceRequest {
+public:
+	UpdatePolicyRequest();
+	~UpdatePolicyRequest();
+	std::string getAccessControlRules() const;
+	void setAccessControlRules(const std::string &accessControlRules);
+	std::string getResources() const;
+	void setResources(const std::string &resources);
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getPermissions() const;
+	void setPermissions(const std::string &permissions);
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string accessControlRules_;
+	std::string resources_;
+	std::string description_;
+	std::string permissions_;
+	std::string name_;
+};
+} // namespace Model
+} // namespace Kms
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_KMS_MODEL_UPDATEPOLICYREQUEST_H_

+ 49 - 0
kms/include/alibabacloud/kms/model/UpdatePolicyResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_KMS_MODEL_UPDATEPOLICYRESULT_H_
+#define ALIBABACLOUD_KMS_MODEL_UPDATEPOLICYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/kms/KmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Kms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_KMS_EXPORT UpdatePolicyResult : public ServiceResult
+			{
+			public:
+
+
+				UpdatePolicyResult();
+				explicit UpdatePolicyResult(const std::string &payload);
+				~UpdatePolicyResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_KMS_MODEL_UPDATEPOLICYRESULT_H_

+ 841 - 13
kms/src/KmsClient.cc

@@ -375,6 +375,42 @@ KmsClient::CertificatePublicKeyVerifyOutcomeCallable KmsClient::certificatePubli
 	return task->get_future();
 }
 
+KmsClient::ConnectKmsInstanceOutcome KmsClient::connectKmsInstance(const ConnectKmsInstanceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ConnectKmsInstanceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ConnectKmsInstanceOutcome(ConnectKmsInstanceResult(outcome.result()));
+	else
+		return ConnectKmsInstanceOutcome(outcome.error());
+}
+
+void KmsClient::connectKmsInstanceAsync(const ConnectKmsInstanceRequest& request, const ConnectKmsInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, connectKmsInstance(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::ConnectKmsInstanceOutcomeCallable KmsClient::connectKmsInstanceCallable(const ConnectKmsInstanceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ConnectKmsInstanceOutcome()>>(
+			[this, request]()
+			{
+			return this->connectKmsInstance(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::CreateAliasOutcome KmsClient::createAlias(const CreateAliasRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -411,6 +447,42 @@ KmsClient::CreateAliasOutcomeCallable KmsClient::createAliasCallable(const Creat
 	return task->get_future();
 }
 
+KmsClient::CreateApplicationAccessPointOutcome KmsClient::createApplicationAccessPoint(const CreateApplicationAccessPointRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateApplicationAccessPointOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateApplicationAccessPointOutcome(CreateApplicationAccessPointResult(outcome.result()));
+	else
+		return CreateApplicationAccessPointOutcome(outcome.error());
+}
+
+void KmsClient::createApplicationAccessPointAsync(const CreateApplicationAccessPointRequest& request, const CreateApplicationAccessPointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createApplicationAccessPoint(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::CreateApplicationAccessPointOutcomeCallable KmsClient::createApplicationAccessPointCallable(const CreateApplicationAccessPointRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateApplicationAccessPointOutcome()>>(
+			[this, request]()
+			{
+			return this->createApplicationAccessPoint(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::CreateCertificateOutcome KmsClient::createCertificate(const CreateCertificateRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -447,6 +519,42 @@ KmsClient::CreateCertificateOutcomeCallable KmsClient::createCertificateCallable
 	return task->get_future();
 }
 
+KmsClient::CreateClientKeyOutcome KmsClient::createClientKey(const CreateClientKeyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateClientKeyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateClientKeyOutcome(CreateClientKeyResult(outcome.result()));
+	else
+		return CreateClientKeyOutcome(outcome.error());
+}
+
+void KmsClient::createClientKeyAsync(const CreateClientKeyRequest& request, const CreateClientKeyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createClientKey(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::CreateClientKeyOutcomeCallable KmsClient::createClientKeyCallable(const CreateClientKeyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateClientKeyOutcome()>>(
+			[this, request]()
+			{
+			return this->createClientKey(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::CreateKeyOutcome KmsClient::createKey(const CreateKeyRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -519,6 +627,78 @@ KmsClient::CreateKeyVersionOutcomeCallable KmsClient::createKeyVersionCallable(c
 	return task->get_future();
 }
 
+KmsClient::CreateNetworkRuleOutcome KmsClient::createNetworkRule(const CreateNetworkRuleRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateNetworkRuleOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateNetworkRuleOutcome(CreateNetworkRuleResult(outcome.result()));
+	else
+		return CreateNetworkRuleOutcome(outcome.error());
+}
+
+void KmsClient::createNetworkRuleAsync(const CreateNetworkRuleRequest& request, const CreateNetworkRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createNetworkRule(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::CreateNetworkRuleOutcomeCallable KmsClient::createNetworkRuleCallable(const CreateNetworkRuleRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateNetworkRuleOutcome()>>(
+			[this, request]()
+			{
+			return this->createNetworkRule(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+KmsClient::CreatePolicyOutcome KmsClient::createPolicy(const CreatePolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreatePolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreatePolicyOutcome(CreatePolicyResult(outcome.result()));
+	else
+		return CreatePolicyOutcome(outcome.error());
+}
+
+void KmsClient::createPolicyAsync(const CreatePolicyRequest& request, const CreatePolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::CreatePolicyOutcomeCallable KmsClient::createPolicyCallable(const CreatePolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreatePolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->createPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::CreateSecretOutcome KmsClient::createSecret(const CreateSecretRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -627,6 +807,42 @@ KmsClient::DeleteAliasOutcomeCallable KmsClient::deleteAliasCallable(const Delet
 	return task->get_future();
 }
 
+KmsClient::DeleteApplicationAccessPointOutcome KmsClient::deleteApplicationAccessPoint(const DeleteApplicationAccessPointRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteApplicationAccessPointOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteApplicationAccessPointOutcome(DeleteApplicationAccessPointResult(outcome.result()));
+	else
+		return DeleteApplicationAccessPointOutcome(outcome.error());
+}
+
+void KmsClient::deleteApplicationAccessPointAsync(const DeleteApplicationAccessPointRequest& request, const DeleteApplicationAccessPointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteApplicationAccessPoint(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::DeleteApplicationAccessPointOutcomeCallable KmsClient::deleteApplicationAccessPointCallable(const DeleteApplicationAccessPointRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteApplicationAccessPointOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteApplicationAccessPoint(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::DeleteCertificateOutcome KmsClient::deleteCertificate(const DeleteCertificateRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -663,6 +879,42 @@ KmsClient::DeleteCertificateOutcomeCallable KmsClient::deleteCertificateCallable
 	return task->get_future();
 }
 
+KmsClient::DeleteClientKeyOutcome KmsClient::deleteClientKey(const DeleteClientKeyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteClientKeyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteClientKeyOutcome(DeleteClientKeyResult(outcome.result()));
+	else
+		return DeleteClientKeyOutcome(outcome.error());
+}
+
+void KmsClient::deleteClientKeyAsync(const DeleteClientKeyRequest& request, const DeleteClientKeyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteClientKey(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::DeleteClientKeyOutcomeCallable KmsClient::deleteClientKeyCallable(const DeleteClientKeyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteClientKeyOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteClientKey(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::DeleteKeyMaterialOutcome KmsClient::deleteKeyMaterial(const DeleteKeyMaterialRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -699,6 +951,78 @@ KmsClient::DeleteKeyMaterialOutcomeCallable KmsClient::deleteKeyMaterialCallable
 	return task->get_future();
 }
 
+KmsClient::DeleteNetworkRuleOutcome KmsClient::deleteNetworkRule(const DeleteNetworkRuleRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteNetworkRuleOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteNetworkRuleOutcome(DeleteNetworkRuleResult(outcome.result()));
+	else
+		return DeleteNetworkRuleOutcome(outcome.error());
+}
+
+void KmsClient::deleteNetworkRuleAsync(const DeleteNetworkRuleRequest& request, const DeleteNetworkRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteNetworkRule(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::DeleteNetworkRuleOutcomeCallable KmsClient::deleteNetworkRuleCallable(const DeleteNetworkRuleRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteNetworkRuleOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteNetworkRule(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+KmsClient::DeletePolicyOutcome KmsClient::deletePolicy(const DeletePolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeletePolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeletePolicyOutcome(DeletePolicyResult(outcome.result()));
+	else
+		return DeletePolicyOutcome(outcome.error());
+}
+
+void KmsClient::deletePolicyAsync(const DeletePolicyRequest& request, const DeletePolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deletePolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::DeletePolicyOutcomeCallable KmsClient::deletePolicyCallable(const DeletePolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeletePolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->deletePolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::DeleteSecretOutcome KmsClient::deleteSecret(const DeleteSecretRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -771,6 +1095,42 @@ KmsClient::DescribeAccountKmsStatusOutcomeCallable KmsClient::describeAccountKms
 	return task->get_future();
 }
 
+KmsClient::DescribeApplicationAccessPointOutcome KmsClient::describeApplicationAccessPoint(const DescribeApplicationAccessPointRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeApplicationAccessPointOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeApplicationAccessPointOutcome(DescribeApplicationAccessPointResult(outcome.result()));
+	else
+		return DescribeApplicationAccessPointOutcome(outcome.error());
+}
+
+void KmsClient::describeApplicationAccessPointAsync(const DescribeApplicationAccessPointRequest& request, const DescribeApplicationAccessPointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeApplicationAccessPoint(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::DescribeApplicationAccessPointOutcomeCallable KmsClient::describeApplicationAccessPointCallable(const DescribeApplicationAccessPointRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeApplicationAccessPointOutcome()>>(
+			[this, request]()
+			{
+			return this->describeApplicationAccessPoint(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::DescribeCertificateOutcome KmsClient::describeCertificate(const DescribeCertificateRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -879,6 +1239,78 @@ KmsClient::DescribeKeyVersionOutcomeCallable KmsClient::describeKeyVersionCallab
 	return task->get_future();
 }
 
+KmsClient::DescribeNetworkRuleOutcome KmsClient::describeNetworkRule(const DescribeNetworkRuleRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeNetworkRuleOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeNetworkRuleOutcome(DescribeNetworkRuleResult(outcome.result()));
+	else
+		return DescribeNetworkRuleOutcome(outcome.error());
+}
+
+void KmsClient::describeNetworkRuleAsync(const DescribeNetworkRuleRequest& request, const DescribeNetworkRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeNetworkRule(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::DescribeNetworkRuleOutcomeCallable KmsClient::describeNetworkRuleCallable(const DescribeNetworkRuleRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeNetworkRuleOutcome()>>(
+			[this, request]()
+			{
+			return this->describeNetworkRule(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+KmsClient::DescribePolicyOutcome KmsClient::describePolicy(const DescribePolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribePolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribePolicyOutcome(DescribePolicyResult(outcome.result()));
+	else
+		return DescribePolicyOutcome(outcome.error());
+}
+
+void KmsClient::describePolicyAsync(const DescribePolicyRequest& request, const DescribePolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describePolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::DescribePolicyOutcomeCallable KmsClient::describePolicyCallable(const DescribePolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribePolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->describePolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::DescribeRegionsOutcome KmsClient::describeRegions(const DescribeRegionsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1185,54 +1617,126 @@ void KmsClient::generateDataKeyWithoutPlaintextAsync(const GenerateDataKeyWithou
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, generateDataKeyWithoutPlaintext(request), context);
+		handler(this, request, generateDataKeyWithoutPlaintext(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::GenerateDataKeyWithoutPlaintextOutcomeCallable KmsClient::generateDataKeyWithoutPlaintextCallable(const GenerateDataKeyWithoutPlaintextRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GenerateDataKeyWithoutPlaintextOutcome()>>(
+			[this, request]()
+			{
+			return this->generateDataKeyWithoutPlaintext(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+KmsClient::GetCertificateOutcome KmsClient::getCertificate(const GetCertificateRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetCertificateOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetCertificateOutcome(GetCertificateResult(outcome.result()));
+	else
+		return GetCertificateOutcome(outcome.error());
+}
+
+void KmsClient::getCertificateAsync(const GetCertificateRequest& request, const GetCertificateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getCertificate(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::GetCertificateOutcomeCallable KmsClient::getCertificateCallable(const GetCertificateRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetCertificateOutcome()>>(
+			[this, request]()
+			{
+			return this->getCertificate(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+KmsClient::GetClientKeyOutcome KmsClient::getClientKey(const GetClientKeyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetClientKeyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetClientKeyOutcome(GetClientKeyResult(outcome.result()));
+	else
+		return GetClientKeyOutcome(outcome.error());
+}
+
+void KmsClient::getClientKeyAsync(const GetClientKeyRequest& request, const GetClientKeyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getClientKey(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-KmsClient::GenerateDataKeyWithoutPlaintextOutcomeCallable KmsClient::generateDataKeyWithoutPlaintextCallable(const GenerateDataKeyWithoutPlaintextRequest &request) const
+KmsClient::GetClientKeyOutcomeCallable KmsClient::getClientKeyCallable(const GetClientKeyRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<GenerateDataKeyWithoutPlaintextOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<GetClientKeyOutcome()>>(
 			[this, request]()
 			{
-			return this->generateDataKeyWithoutPlaintext(request);
+			return this->getClientKey(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-KmsClient::GetCertificateOutcome KmsClient::getCertificate(const GetCertificateRequest &request) const
+KmsClient::GetKmsInstanceOutcome KmsClient::getKmsInstance(const GetKmsInstanceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return GetCertificateOutcome(endpointOutcome.error());
+		return GetKmsInstanceOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return GetCertificateOutcome(GetCertificateResult(outcome.result()));
+		return GetKmsInstanceOutcome(GetKmsInstanceResult(outcome.result()));
 	else
-		return GetCertificateOutcome(outcome.error());
+		return GetKmsInstanceOutcome(outcome.error());
 }
 
-void KmsClient::getCertificateAsync(const GetCertificateRequest& request, const GetCertificateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void KmsClient::getKmsInstanceAsync(const GetKmsInstanceRequest& request, const GetKmsInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, getCertificate(request), context);
+		handler(this, request, getKmsInstance(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-KmsClient::GetCertificateOutcomeCallable KmsClient::getCertificateCallable(const GetCertificateRequest &request) const
+KmsClient::GetKmsInstanceOutcomeCallable KmsClient::getKmsInstanceCallable(const GetKmsInstanceRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<GetCertificateOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<GetKmsInstanceOutcome()>>(
 			[this, request]()
 			{
-			return this->getCertificate(request);
+			return this->getKmsInstance(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
@@ -1491,6 +1995,78 @@ KmsClient::ListAliasesByKeyIdOutcomeCallable KmsClient::listAliasesByKeyIdCallab
 	return task->get_future();
 }
 
+KmsClient::ListApplicationAccessPointsOutcome KmsClient::listApplicationAccessPoints(const ListApplicationAccessPointsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListApplicationAccessPointsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListApplicationAccessPointsOutcome(ListApplicationAccessPointsResult(outcome.result()));
+	else
+		return ListApplicationAccessPointsOutcome(outcome.error());
+}
+
+void KmsClient::listApplicationAccessPointsAsync(const ListApplicationAccessPointsRequest& request, const ListApplicationAccessPointsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listApplicationAccessPoints(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::ListApplicationAccessPointsOutcomeCallable KmsClient::listApplicationAccessPointsCallable(const ListApplicationAccessPointsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListApplicationAccessPointsOutcome()>>(
+			[this, request]()
+			{
+			return this->listApplicationAccessPoints(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+KmsClient::ListClientKeysOutcome KmsClient::listClientKeys(const ListClientKeysRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListClientKeysOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListClientKeysOutcome(ListClientKeysResult(outcome.result()));
+	else
+		return ListClientKeysOutcome(outcome.error());
+}
+
+void KmsClient::listClientKeysAsync(const ListClientKeysRequest& request, const ListClientKeysAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listClientKeys(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::ListClientKeysOutcomeCallable KmsClient::listClientKeysCallable(const ListClientKeysRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListClientKeysOutcome()>>(
+			[this, request]()
+			{
+			return this->listClientKeys(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::ListKeyVersionsOutcome KmsClient::listKeyVersions(const ListKeyVersionsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1563,6 +2139,114 @@ KmsClient::ListKeysOutcomeCallable KmsClient::listKeysCallable(const ListKeysReq
 	return task->get_future();
 }
 
+KmsClient::ListKmsInstancesOutcome KmsClient::listKmsInstances(const ListKmsInstancesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListKmsInstancesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListKmsInstancesOutcome(ListKmsInstancesResult(outcome.result()));
+	else
+		return ListKmsInstancesOutcome(outcome.error());
+}
+
+void KmsClient::listKmsInstancesAsync(const ListKmsInstancesRequest& request, const ListKmsInstancesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listKmsInstances(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::ListKmsInstancesOutcomeCallable KmsClient::listKmsInstancesCallable(const ListKmsInstancesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListKmsInstancesOutcome()>>(
+			[this, request]()
+			{
+			return this->listKmsInstances(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+KmsClient::ListNetworkRulesOutcome KmsClient::listNetworkRules(const ListNetworkRulesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListNetworkRulesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListNetworkRulesOutcome(ListNetworkRulesResult(outcome.result()));
+	else
+		return ListNetworkRulesOutcome(outcome.error());
+}
+
+void KmsClient::listNetworkRulesAsync(const ListNetworkRulesRequest& request, const ListNetworkRulesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listNetworkRules(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::ListNetworkRulesOutcomeCallable KmsClient::listNetworkRulesCallable(const ListNetworkRulesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListNetworkRulesOutcome()>>(
+			[this, request]()
+			{
+			return this->listNetworkRules(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+KmsClient::ListPoliciesOutcome KmsClient::listPolicies(const ListPoliciesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListPoliciesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListPoliciesOutcome(ListPoliciesResult(outcome.result()));
+	else
+		return ListPoliciesOutcome(outcome.error());
+}
+
+void KmsClient::listPoliciesAsync(const ListPoliciesRequest& request, const ListPoliciesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listPolicies(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::ListPoliciesOutcomeCallable KmsClient::listPoliciesCallable(const ListPoliciesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListPoliciesOutcome()>>(
+			[this, request]()
+			{
+			return this->listPolicies(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::ListResourceTagsOutcome KmsClient::listResourceTags(const ListResourceTagsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2139,6 +2823,42 @@ KmsClient::UpdateAliasOutcomeCallable KmsClient::updateAliasCallable(const Updat
 	return task->get_future();
 }
 
+KmsClient::UpdateApplicationAccessPointOutcome KmsClient::updateApplicationAccessPoint(const UpdateApplicationAccessPointRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateApplicationAccessPointOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateApplicationAccessPointOutcome(UpdateApplicationAccessPointResult(outcome.result()));
+	else
+		return UpdateApplicationAccessPointOutcome(outcome.error());
+}
+
+void KmsClient::updateApplicationAccessPointAsync(const UpdateApplicationAccessPointRequest& request, const UpdateApplicationAccessPointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateApplicationAccessPoint(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::UpdateApplicationAccessPointOutcomeCallable KmsClient::updateApplicationAccessPointCallable(const UpdateApplicationAccessPointRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateApplicationAccessPointOutcome()>>(
+			[this, request]()
+			{
+			return this->updateApplicationAccessPoint(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::UpdateCertificateStatusOutcome KmsClient::updateCertificateStatus(const UpdateCertificateStatusRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2211,6 +2931,114 @@ KmsClient::UpdateKeyDescriptionOutcomeCallable KmsClient::updateKeyDescriptionCa
 	return task->get_future();
 }
 
+KmsClient::UpdateKmsInstanceBindVpcOutcome KmsClient::updateKmsInstanceBindVpc(const UpdateKmsInstanceBindVpcRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateKmsInstanceBindVpcOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateKmsInstanceBindVpcOutcome(UpdateKmsInstanceBindVpcResult(outcome.result()));
+	else
+		return UpdateKmsInstanceBindVpcOutcome(outcome.error());
+}
+
+void KmsClient::updateKmsInstanceBindVpcAsync(const UpdateKmsInstanceBindVpcRequest& request, const UpdateKmsInstanceBindVpcAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateKmsInstanceBindVpc(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::UpdateKmsInstanceBindVpcOutcomeCallable KmsClient::updateKmsInstanceBindVpcCallable(const UpdateKmsInstanceBindVpcRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateKmsInstanceBindVpcOutcome()>>(
+			[this, request]()
+			{
+			return this->updateKmsInstanceBindVpc(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+KmsClient::UpdateNetworkRuleOutcome KmsClient::updateNetworkRule(const UpdateNetworkRuleRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateNetworkRuleOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateNetworkRuleOutcome(UpdateNetworkRuleResult(outcome.result()));
+	else
+		return UpdateNetworkRuleOutcome(outcome.error());
+}
+
+void KmsClient::updateNetworkRuleAsync(const UpdateNetworkRuleRequest& request, const UpdateNetworkRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateNetworkRule(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::UpdateNetworkRuleOutcomeCallable KmsClient::updateNetworkRuleCallable(const UpdateNetworkRuleRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateNetworkRuleOutcome()>>(
+			[this, request]()
+			{
+			return this->updateNetworkRule(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+KmsClient::UpdatePolicyOutcome KmsClient::updatePolicy(const UpdatePolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdatePolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdatePolicyOutcome(UpdatePolicyResult(outcome.result()));
+	else
+		return UpdatePolicyOutcome(outcome.error());
+}
+
+void KmsClient::updatePolicyAsync(const UpdatePolicyRequest& request, const UpdatePolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updatePolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+KmsClient::UpdatePolicyOutcomeCallable KmsClient::updatePolicyCallable(const UpdatePolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdatePolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->updatePolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 KmsClient::UpdateRotationPolicyOutcome KmsClient::updateRotationPolicy(const UpdateRotationPolicyRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 72 - 0
kms/src/model/ConnectKmsInstanceRequest.cc

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ConnectKmsInstanceRequest.h>
+
+using AlibabaCloud::Kms::Model::ConnectKmsInstanceRequest;
+
+ConnectKmsInstanceRequest::ConnectKmsInstanceRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "ConnectKmsInstance") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ConnectKmsInstanceRequest::~ConnectKmsInstanceRequest() {}
+
+std::string ConnectKmsInstanceRequest::getKmsInstanceId() const {
+  return kmsInstanceId_;
+}
+
+void ConnectKmsInstanceRequest::setKmsInstanceId(const std::string &kmsInstanceId) {
+  kmsInstanceId_ = kmsInstanceId;
+  setParameter(std::string("KmsInstanceId"), kmsInstanceId);
+}
+
+std::string ConnectKmsInstanceRequest::getVSwitchIds() const {
+  return vSwitchIds_;
+}
+
+void ConnectKmsInstanceRequest::setVSwitchIds(const std::string &vSwitchIds) {
+  vSwitchIds_ = vSwitchIds;
+  setParameter(std::string("VSwitchIds"), vSwitchIds);
+}
+
+std::string ConnectKmsInstanceRequest::getKMProvider() const {
+  return kMProvider_;
+}
+
+void ConnectKmsInstanceRequest::setKMProvider(const std::string &kMProvider) {
+  kMProvider_ = kMProvider;
+  setParameter(std::string("KMProvider"), kMProvider);
+}
+
+std::string ConnectKmsInstanceRequest::getZoneIds() const {
+  return zoneIds_;
+}
+
+void ConnectKmsInstanceRequest::setZoneIds(const std::string &zoneIds) {
+  zoneIds_ = zoneIds;
+  setParameter(std::string("ZoneIds"), zoneIds);
+}
+
+std::string ConnectKmsInstanceRequest::getVpcId() const {
+  return vpcId_;
+}
+
+void ConnectKmsInstanceRequest::setVpcId(const std::string &vpcId) {
+  vpcId_ = vpcId;
+  setParameter(std::string("VpcId"), vpcId);
+}
+

+ 44 - 0
kms/src/model/ConnectKmsInstanceResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ConnectKmsInstanceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+ConnectKmsInstanceResult::ConnectKmsInstanceResult() :
+	ServiceResult()
+{}
+
+ConnectKmsInstanceResult::ConnectKmsInstanceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ConnectKmsInstanceResult::~ConnectKmsInstanceResult()
+{}
+
+void ConnectKmsInstanceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 63 - 0
kms/src/model/CreateApplicationAccessPointRequest.cc

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/CreateApplicationAccessPointRequest.h>
+
+using AlibabaCloud::Kms::Model::CreateApplicationAccessPointRequest;
+
+CreateApplicationAccessPointRequest::CreateApplicationAccessPointRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "CreateApplicationAccessPoint") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateApplicationAccessPointRequest::~CreateApplicationAccessPointRequest() {}
+
+std::string CreateApplicationAccessPointRequest::getPolicies() const {
+  return policies_;
+}
+
+void CreateApplicationAccessPointRequest::setPolicies(const std::string &policies) {
+  policies_ = policies;
+  setParameter(std::string("Policies"), policies);
+}
+
+std::string CreateApplicationAccessPointRequest::getDescription() const {
+  return description_;
+}
+
+void CreateApplicationAccessPointRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setParameter(std::string("Description"), description);
+}
+
+std::string CreateApplicationAccessPointRequest::getName() const {
+  return name_;
+}
+
+void CreateApplicationAccessPointRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+
+std::string CreateApplicationAccessPointRequest::getAuthenticationMethod() const {
+  return authenticationMethod_;
+}
+
+void CreateApplicationAccessPointRequest::setAuthenticationMethod(const std::string &authenticationMethod) {
+  authenticationMethod_ = authenticationMethod;
+  setParameter(std::string("AuthenticationMethod"), authenticationMethod);
+}
+

+ 79 - 0
kms/src/model/CreateApplicationAccessPointResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/CreateApplicationAccessPointResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+CreateApplicationAccessPointResult::CreateApplicationAccessPointResult() :
+	ServiceResult()
+{}
+
+CreateApplicationAccessPointResult::CreateApplicationAccessPointResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateApplicationAccessPointResult::~CreateApplicationAccessPointResult()
+{}
+
+void CreateApplicationAccessPointResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Description"].isNull())
+		description_ = value["Description"].asString();
+	if(!value["Policies"].isNull())
+		policies_ = value["Policies"].asString();
+	if(!value["Name"].isNull())
+		name_ = value["Name"].asString();
+	if(!value["Arn"].isNull())
+		arn_ = value["Arn"].asString();
+	if(!value["AuthenticationMethod"].isNull())
+		authenticationMethod_ = value["AuthenticationMethod"].asString();
+
+}
+
+std::string CreateApplicationAccessPointResult::getDescription()const
+{
+	return description_;
+}
+
+std::string CreateApplicationAccessPointResult::getPolicies()const
+{
+	return policies_;
+}
+
+std::string CreateApplicationAccessPointResult::getAuthenticationMethod()const
+{
+	return authenticationMethod_;
+}
+
+std::string CreateApplicationAccessPointResult::getArn()const
+{
+	return arn_;
+}
+
+std::string CreateApplicationAccessPointResult::getName()const
+{
+	return name_;
+}
+

+ 63 - 0
kms/src/model/CreateClientKeyRequest.cc

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/CreateClientKeyRequest.h>
+
+using AlibabaCloud::Kms::Model::CreateClientKeyRequest;
+
+CreateClientKeyRequest::CreateClientKeyRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "CreateClientKey") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateClientKeyRequest::~CreateClientKeyRequest() {}
+
+std::string CreateClientKeyRequest::getNotBefore() const {
+  return notBefore_;
+}
+
+void CreateClientKeyRequest::setNotBefore(const std::string &notBefore) {
+  notBefore_ = notBefore;
+  setParameter(std::string("NotBefore"), notBefore);
+}
+
+std::string CreateClientKeyRequest::getNotAfter() const {
+  return notAfter_;
+}
+
+void CreateClientKeyRequest::setNotAfter(const std::string &notAfter) {
+  notAfter_ = notAfter;
+  setParameter(std::string("NotAfter"), notAfter);
+}
+
+std::string CreateClientKeyRequest::getPassword() const {
+  return password_;
+}
+
+void CreateClientKeyRequest::setPassword(const std::string &password) {
+  password_ = password;
+  setParameter(std::string("Password"), password);
+}
+
+std::string CreateClientKeyRequest::getAapName() const {
+  return aapName_;
+}
+
+void CreateClientKeyRequest::setAapName(const std::string &aapName) {
+  aapName_ = aapName;
+  setParameter(std::string("AapName"), aapName);
+}
+

+ 79 - 0
kms/src/model/CreateClientKeyResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/CreateClientKeyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+CreateClientKeyResult::CreateClientKeyResult() :
+	ServiceResult()
+{}
+
+CreateClientKeyResult::CreateClientKeyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateClientKeyResult::~CreateClientKeyResult()
+{}
+
+void CreateClientKeyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["ClientKeyId"].isNull())
+		clientKeyId_ = value["ClientKeyId"].asString();
+	if(!value["KeyAlgorithm"].isNull())
+		keyAlgorithm_ = value["KeyAlgorithm"].asString();
+	if(!value["PrivateKeyData"].isNull())
+		privateKeyData_ = value["PrivateKeyData"].asString();
+	if(!value["NotBefore"].isNull())
+		notBefore_ = value["NotBefore"].asString();
+	if(!value["NotAfter"].isNull())
+		notAfter_ = value["NotAfter"].asString();
+
+}
+
+std::string CreateClientKeyResult::getClientKeyId()const
+{
+	return clientKeyId_;
+}
+
+std::string CreateClientKeyResult::getPrivateKeyData()const
+{
+	return privateKeyData_;
+}
+
+std::string CreateClientKeyResult::getNotBefore()const
+{
+	return notBefore_;
+}
+
+std::string CreateClientKeyResult::getNotAfter()const
+{
+	return notAfter_;
+}
+
+std::string CreateClientKeyResult::getKeyAlgorithm()const
+{
+	return keyAlgorithm_;
+}
+

+ 63 - 0
kms/src/model/CreateNetworkRuleRequest.cc

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/CreateNetworkRuleRequest.h>
+
+using AlibabaCloud::Kms::Model::CreateNetworkRuleRequest;
+
+CreateNetworkRuleRequest::CreateNetworkRuleRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "CreateNetworkRule") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateNetworkRuleRequest::~CreateNetworkRuleRequest() {}
+
+std::string CreateNetworkRuleRequest::getDescription() const {
+  return description_;
+}
+
+void CreateNetworkRuleRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setParameter(std::string("Description"), description);
+}
+
+std::string CreateNetworkRuleRequest::getType() const {
+  return type_;
+}
+
+void CreateNetworkRuleRequest::setType(const std::string &type) {
+  type_ = type;
+  setParameter(std::string("Type"), type);
+}
+
+std::string CreateNetworkRuleRequest::getName() const {
+  return name_;
+}
+
+void CreateNetworkRuleRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+
+std::string CreateNetworkRuleRequest::getSourcePrivateIp() const {
+  return sourcePrivateIp_;
+}
+
+void CreateNetworkRuleRequest::setSourcePrivateIp(const std::string &sourcePrivateIp) {
+  sourcePrivateIp_ = sourcePrivateIp;
+  setParameter(std::string("SourcePrivateIp"), sourcePrivateIp);
+}
+

+ 79 - 0
kms/src/model/CreateNetworkRuleResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/CreateNetworkRuleResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+CreateNetworkRuleResult::CreateNetworkRuleResult() :
+	ServiceResult()
+{}
+
+CreateNetworkRuleResult::CreateNetworkRuleResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateNetworkRuleResult::~CreateNetworkRuleResult()
+{}
+
+void CreateNetworkRuleResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Type"].isNull())
+		type_ = value["Type"].asString();
+	if(!value["Description"].isNull())
+		description_ = value["Description"].asString();
+	if(!value["SourcePrivateIp"].isNull())
+		sourcePrivateIp_ = value["SourcePrivateIp"].asString();
+	if(!value["Name"].isNull())
+		name_ = value["Name"].asString();
+	if(!value["Arn"].isNull())
+		arn_ = value["Arn"].asString();
+
+}
+
+std::string CreateNetworkRuleResult::getType()const
+{
+	return type_;
+}
+
+std::string CreateNetworkRuleResult::getDescription()const
+{
+	return description_;
+}
+
+std::string CreateNetworkRuleResult::getSourcePrivateIp()const
+{
+	return sourcePrivateIp_;
+}
+
+std::string CreateNetworkRuleResult::getArn()const
+{
+	return arn_;
+}
+
+std::string CreateNetworkRuleResult::getName()const
+{
+	return name_;
+}
+

+ 81 - 0
kms/src/model/CreatePolicyRequest.cc

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/CreatePolicyRequest.h>
+
+using AlibabaCloud::Kms::Model::CreatePolicyRequest;
+
+CreatePolicyRequest::CreatePolicyRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "CreatePolicy") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreatePolicyRequest::~CreatePolicyRequest() {}
+
+std::string CreatePolicyRequest::getAccessControlRules() const {
+  return accessControlRules_;
+}
+
+void CreatePolicyRequest::setAccessControlRules(const std::string &accessControlRules) {
+  accessControlRules_ = accessControlRules;
+  setParameter(std::string("AccessControlRules"), accessControlRules);
+}
+
+std::string CreatePolicyRequest::getDescription() const {
+  return description_;
+}
+
+void CreatePolicyRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setParameter(std::string("Description"), description);
+}
+
+std::string CreatePolicyRequest::getResources() const {
+  return resources_;
+}
+
+void CreatePolicyRequest::setResources(const std::string &resources) {
+  resources_ = resources;
+  setParameter(std::string("Resources"), resources);
+}
+
+std::string CreatePolicyRequest::getKmsInstance() const {
+  return kmsInstance_;
+}
+
+void CreatePolicyRequest::setKmsInstance(const std::string &kmsInstance) {
+  kmsInstance_ = kmsInstance;
+  setParameter(std::string("KmsInstance"), kmsInstance);
+}
+
+std::string CreatePolicyRequest::getPermissions() const {
+  return permissions_;
+}
+
+void CreatePolicyRequest::setPermissions(const std::string &permissions) {
+  permissions_ = permissions;
+  setParameter(std::string("Permissions"), permissions);
+}
+
+std::string CreatePolicyRequest::getName() const {
+  return name_;
+}
+
+void CreatePolicyRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 93 - 0
kms/src/model/CreatePolicyResult.cc

@@ -0,0 +1,93 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/CreatePolicyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+CreatePolicyResult::CreatePolicyResult() :
+	ServiceResult()
+{}
+
+CreatePolicyResult::CreatePolicyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreatePolicyResult::~CreatePolicyResult()
+{}
+
+void CreatePolicyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Arn"].isNull())
+		arn_ = value["Arn"].asString();
+	if(!value["Name"].isNull())
+		name_ = value["Name"].asString();
+	if(!value["Description"].isNull())
+		description_ = value["Description"].asString();
+	if(!value["KmsInstance"].isNull())
+		kmsInstance_ = value["KmsInstance"].asString();
+	if(!value["Permissions"].isNull())
+		permissions_ = value["Permissions"].asString();
+	if(!value["Resources"].isNull())
+		resources_ = value["Resources"].asString();
+	if(!value["AccessControlRules"].isNull())
+		accessControlRules_ = value["AccessControlRules"].asString();
+
+}
+
+std::string CreatePolicyResult::getKmsInstance()const
+{
+	return kmsInstance_;
+}
+
+std::string CreatePolicyResult::getDescription()const
+{
+	return description_;
+}
+
+std::string CreatePolicyResult::getAccessControlRules()const
+{
+	return accessControlRules_;
+}
+
+std::string CreatePolicyResult::getPermissions()const
+{
+	return permissions_;
+}
+
+std::string CreatePolicyResult::getResources()const
+{
+	return resources_;
+}
+
+std::string CreatePolicyResult::getArn()const
+{
+	return arn_;
+}
+
+std::string CreatePolicyResult::getName()const
+{
+	return name_;
+}
+

+ 36 - 0
kms/src/model/DeleteApplicationAccessPointRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DeleteApplicationAccessPointRequest.h>
+
+using AlibabaCloud::Kms::Model::DeleteApplicationAccessPointRequest;
+
+DeleteApplicationAccessPointRequest::DeleteApplicationAccessPointRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "DeleteApplicationAccessPoint") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteApplicationAccessPointRequest::~DeleteApplicationAccessPointRequest() {}
+
+std::string DeleteApplicationAccessPointRequest::getName() const {
+  return name_;
+}
+
+void DeleteApplicationAccessPointRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 44 - 0
kms/src/model/DeleteApplicationAccessPointResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DeleteApplicationAccessPointResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+DeleteApplicationAccessPointResult::DeleteApplicationAccessPointResult() :
+	ServiceResult()
+{}
+
+DeleteApplicationAccessPointResult::DeleteApplicationAccessPointResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteApplicationAccessPointResult::~DeleteApplicationAccessPointResult()
+{}
+
+void DeleteApplicationAccessPointResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 36 - 0
kms/src/model/DeleteClientKeyRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DeleteClientKeyRequest.h>
+
+using AlibabaCloud::Kms::Model::DeleteClientKeyRequest;
+
+DeleteClientKeyRequest::DeleteClientKeyRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "DeleteClientKey") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteClientKeyRequest::~DeleteClientKeyRequest() {}
+
+std::string DeleteClientKeyRequest::getClientKeyId() const {
+  return clientKeyId_;
+}
+
+void DeleteClientKeyRequest::setClientKeyId(const std::string &clientKeyId) {
+  clientKeyId_ = clientKeyId;
+  setParameter(std::string("ClientKeyId"), clientKeyId);
+}
+

+ 44 - 0
kms/src/model/DeleteClientKeyResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DeleteClientKeyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+DeleteClientKeyResult::DeleteClientKeyResult() :
+	ServiceResult()
+{}
+
+DeleteClientKeyResult::DeleteClientKeyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteClientKeyResult::~DeleteClientKeyResult()
+{}
+
+void DeleteClientKeyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 36 - 0
kms/src/model/DeleteNetworkRuleRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DeleteNetworkRuleRequest.h>
+
+using AlibabaCloud::Kms::Model::DeleteNetworkRuleRequest;
+
+DeleteNetworkRuleRequest::DeleteNetworkRuleRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "DeleteNetworkRule") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteNetworkRuleRequest::~DeleteNetworkRuleRequest() {}
+
+std::string DeleteNetworkRuleRequest::getName() const {
+  return name_;
+}
+
+void DeleteNetworkRuleRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 44 - 0
kms/src/model/DeleteNetworkRuleResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DeleteNetworkRuleResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+DeleteNetworkRuleResult::DeleteNetworkRuleResult() :
+	ServiceResult()
+{}
+
+DeleteNetworkRuleResult::DeleteNetworkRuleResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteNetworkRuleResult::~DeleteNetworkRuleResult()
+{}
+
+void DeleteNetworkRuleResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 36 - 0
kms/src/model/DeletePolicyRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DeletePolicyRequest.h>
+
+using AlibabaCloud::Kms::Model::DeletePolicyRequest;
+
+DeletePolicyRequest::DeletePolicyRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "DeletePolicy") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeletePolicyRequest::~DeletePolicyRequest() {}
+
+std::string DeletePolicyRequest::getName() const {
+  return name_;
+}
+
+void DeletePolicyRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 44 - 0
kms/src/model/DeletePolicyResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DeletePolicyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+DeletePolicyResult::DeletePolicyResult() :
+	ServiceResult()
+{}
+
+DeletePolicyResult::DeletePolicyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeletePolicyResult::~DeletePolicyResult()
+{}
+
+void DeletePolicyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 36 - 0
kms/src/model/DescribeApplicationAccessPointRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DescribeApplicationAccessPointRequest.h>
+
+using AlibabaCloud::Kms::Model::DescribeApplicationAccessPointRequest;
+
+DescribeApplicationAccessPointRequest::DescribeApplicationAccessPointRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "DescribeApplicationAccessPoint") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeApplicationAccessPointRequest::~DescribeApplicationAccessPointRequest() {}
+
+std::string DescribeApplicationAccessPointRequest::getName() const {
+  return name_;
+}
+
+void DescribeApplicationAccessPointRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 79 - 0
kms/src/model/DescribeApplicationAccessPointResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DescribeApplicationAccessPointResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+DescribeApplicationAccessPointResult::DescribeApplicationAccessPointResult() :
+	ServiceResult()
+{}
+
+DescribeApplicationAccessPointResult::DescribeApplicationAccessPointResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeApplicationAccessPointResult::~DescribeApplicationAccessPointResult()
+{}
+
+void DescribeApplicationAccessPointResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Arn"].isNull())
+		arn_ = value["Arn"].asString();
+	if(!value["Name"].isNull())
+		name_ = value["Name"].asString();
+	if(!value["Description"].isNull())
+		description_ = value["Description"].asString();
+	if(!value["AuthenticationMethod"].isNull())
+		authenticationMethod_ = value["AuthenticationMethod"].asString();
+	if(!value["Policies"].isNull())
+		policies_ = value["Policies"].asString();
+
+}
+
+std::string DescribeApplicationAccessPointResult::getDescription()const
+{
+	return description_;
+}
+
+std::string DescribeApplicationAccessPointResult::getPolicies()const
+{
+	return policies_;
+}
+
+std::string DescribeApplicationAccessPointResult::getAuthenticationMethod()const
+{
+	return authenticationMethod_;
+}
+
+std::string DescribeApplicationAccessPointResult::getArn()const
+{
+	return arn_;
+}
+
+std::string DescribeApplicationAccessPointResult::getName()const
+{
+	return name_;
+}
+

+ 36 - 0
kms/src/model/DescribeNetworkRuleRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DescribeNetworkRuleRequest.h>
+
+using AlibabaCloud::Kms::Model::DescribeNetworkRuleRequest;
+
+DescribeNetworkRuleRequest::DescribeNetworkRuleRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "DescribeNetworkRule") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeNetworkRuleRequest::~DescribeNetworkRuleRequest() {}
+
+std::string DescribeNetworkRuleRequest::getName() const {
+  return name_;
+}
+
+void DescribeNetworkRuleRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 72 - 0
kms/src/model/DescribeNetworkRuleResult.cc

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DescribeNetworkRuleResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+DescribeNetworkRuleResult::DescribeNetworkRuleResult() :
+	ServiceResult()
+{}
+
+DescribeNetworkRuleResult::DescribeNetworkRuleResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeNetworkRuleResult::~DescribeNetworkRuleResult()
+{}
+
+void DescribeNetworkRuleResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Arn"].isNull())
+		arn_ = value["Arn"].asString();
+	if(!value["Type"].isNull())
+		type_ = value["Type"].asString();
+	if(!value["Description"].isNull())
+		description_ = value["Description"].asString();
+	if(!value["SourcePrivateIp"].isNull())
+		sourcePrivateIp_ = value["SourcePrivateIp"].asString();
+
+}
+
+std::string DescribeNetworkRuleResult::getType()const
+{
+	return type_;
+}
+
+std::string DescribeNetworkRuleResult::getDescription()const
+{
+	return description_;
+}
+
+std::string DescribeNetworkRuleResult::getSourcePrivateIp()const
+{
+	return sourcePrivateIp_;
+}
+
+std::string DescribeNetworkRuleResult::getArn()const
+{
+	return arn_;
+}
+

+ 36 - 0
kms/src/model/DescribePolicyRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DescribePolicyRequest.h>
+
+using AlibabaCloud::Kms::Model::DescribePolicyRequest;
+
+DescribePolicyRequest::DescribePolicyRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "DescribePolicy") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribePolicyRequest::~DescribePolicyRequest() {}
+
+std::string DescribePolicyRequest::getName() const {
+  return name_;
+}
+
+void DescribePolicyRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 95 - 0
kms/src/model/DescribePolicyResult.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/DescribePolicyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+DescribePolicyResult::DescribePolicyResult() :
+	ServiceResult()
+{}
+
+DescribePolicyResult::DescribePolicyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribePolicyResult::~DescribePolicyResult()
+{}
+
+void DescribePolicyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allPermissions = value["Permissions"]["permission"];
+	for (const auto &item : allPermissions)
+		permissions_.push_back(item.asString());
+	auto allResources = value["Resources"]["resource"];
+	for (const auto &item : allResources)
+		resources_.push_back(item.asString());
+	if(!value["Arn"].isNull())
+		arn_ = value["Arn"].asString();
+	if(!value["Name"].isNull())
+		name_ = value["Name"].asString();
+	if(!value["Description"].isNull())
+		description_ = value["Description"].asString();
+	if(!value["KmsInstance"].isNull())
+		kmsInstance_ = value["KmsInstance"].asString();
+	if(!value["AccessControlRules"].isNull())
+		accessControlRules_ = value["AccessControlRules"].asString();
+
+}
+
+std::string DescribePolicyResult::getKmsInstance()const
+{
+	return kmsInstance_;
+}
+
+std::string DescribePolicyResult::getDescription()const
+{
+	return description_;
+}
+
+std::string DescribePolicyResult::getAccessControlRules()const
+{
+	return accessControlRules_;
+}
+
+std::vector<std::string> DescribePolicyResult::getPermissions()const
+{
+	return permissions_;
+}
+
+std::vector<std::string> DescribePolicyResult::getResources()const
+{
+	return resources_;
+}
+
+std::string DescribePolicyResult::getArn()const
+{
+	return arn_;
+}
+
+std::string DescribePolicyResult::getName()const
+{
+	return name_;
+}
+

+ 36 - 0
kms/src/model/GetClientKeyRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/GetClientKeyRequest.h>
+
+using AlibabaCloud::Kms::Model::GetClientKeyRequest;
+
+GetClientKeyRequest::GetClientKeyRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "GetClientKey") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+GetClientKeyRequest::~GetClientKeyRequest() {}
+
+std::string GetClientKeyRequest::getClientKeyId() const {
+  return clientKeyId_;
+}
+
+void GetClientKeyRequest::setClientKeyId(const std::string &clientKeyId) {
+  clientKeyId_ = clientKeyId;
+  setParameter(std::string("ClientKeyId"), clientKeyId);
+}
+

+ 100 - 0
kms/src/model/GetClientKeyResult.cc

@@ -0,0 +1,100 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/GetClientKeyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+GetClientKeyResult::GetClientKeyResult() :
+	ServiceResult()
+{}
+
+GetClientKeyResult::GetClientKeyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetClientKeyResult::~GetClientKeyResult()
+{}
+
+void GetClientKeyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["ClientKeyId"].isNull())
+		clientKeyId_ = value["ClientKeyId"].asString();
+	if(!value["CreateTime"].isNull())
+		createTime_ = value["CreateTime"].asString();
+	if(!value["KeyAlgorithm"].isNull())
+		keyAlgorithm_ = value["KeyAlgorithm"].asString();
+	if(!value["KeyOrigin"].isNull())
+		keyOrigin_ = value["KeyOrigin"].asString();
+	if(!value["PublicKeyData"].isNull())
+		publicKeyData_ = value["PublicKeyData"].asString();
+	if(!value["NotAfter"].isNull())
+		notAfter_ = value["NotAfter"].asString();
+	if(!value["NotBefore"].isNull())
+		notBefore_ = value["NotBefore"].asString();
+	if(!value["AapName"].isNull())
+		aapName_ = value["AapName"].asString();
+
+}
+
+std::string GetClientKeyResult::getClientKeyId()const
+{
+	return clientKeyId_;
+}
+
+std::string GetClientKeyResult::getAapName()const
+{
+	return aapName_;
+}
+
+std::string GetClientKeyResult::getPublicKeyData()const
+{
+	return publicKeyData_;
+}
+
+std::string GetClientKeyResult::getCreateTime()const
+{
+	return createTime_;
+}
+
+std::string GetClientKeyResult::getNotAfter()const
+{
+	return notAfter_;
+}
+
+std::string GetClientKeyResult::getNotBefore()const
+{
+	return notBefore_;
+}
+
+std::string GetClientKeyResult::getKeyOrigin()const
+{
+	return keyOrigin_;
+}
+
+std::string GetClientKeyResult::getKeyAlgorithm()const
+{
+	return keyAlgorithm_;
+}
+

+ 36 - 0
kms/src/model/GetKmsInstanceRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/GetKmsInstanceRequest.h>
+
+using AlibabaCloud::Kms::Model::GetKmsInstanceRequest;
+
+GetKmsInstanceRequest::GetKmsInstanceRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "GetKmsInstance") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+GetKmsInstanceRequest::~GetKmsInstanceRequest() {}
+
+std::string GetKmsInstanceRequest::getKmsInstanceId() const {
+  return kmsInstanceId_;
+}
+
+void GetKmsInstanceRequest::setKmsInstanceId(const std::string &kmsInstanceId) {
+  kmsInstanceId_ = kmsInstanceId;
+  setParameter(std::string("KmsInstanceId"), kmsInstanceId);
+}
+

+ 92 - 0
kms/src/model/GetKmsInstanceResult.cc

@@ -0,0 +1,92 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/GetKmsInstanceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+GetKmsInstanceResult::GetKmsInstanceResult() :
+	ServiceResult()
+{}
+
+GetKmsInstanceResult::GetKmsInstanceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetKmsInstanceResult::~GetKmsInstanceResult()
+{}
+
+void GetKmsInstanceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto kmsInstanceNode = value["KmsInstance"];
+	if(!kmsInstanceNode["InstanceId"].isNull())
+		kmsInstance_.instanceId = kmsInstanceNode["InstanceId"].asString();
+	if(!kmsInstanceNode["InstanceName"].isNull())
+		kmsInstance_.instanceName = kmsInstanceNode["InstanceName"].asString();
+	if(!kmsInstanceNode["Status"].isNull())
+		kmsInstance_.status = kmsInstanceNode["Status"].asString();
+	if(!kmsInstanceNode["CreateTime"].isNull())
+		kmsInstance_.createTime = kmsInstanceNode["CreateTime"].asString();
+	if(!kmsInstanceNode["Spec"].isNull())
+		kmsInstance_.spec = std::stol(kmsInstanceNode["Spec"].asString());
+	if(!kmsInstanceNode["KeyNum"].isNull())
+		kmsInstance_.keyNum = std::stol(kmsInstanceNode["KeyNum"].asString());
+	if(!kmsInstanceNode["SecretNum"].isNull())
+		kmsInstance_.secretNum = kmsInstanceNode["SecretNum"].asString();
+	if(!kmsInstanceNode["VpcNum"].isNull())
+		kmsInstance_.vpcNum = std::stol(kmsInstanceNode["VpcNum"].asString());
+	if(!kmsInstanceNode["VpcId"].isNull())
+		kmsInstance_.vpcId = kmsInstanceNode["VpcId"].asString();
+	if(!kmsInstanceNode["ZoneIds"].isNull())
+		kmsInstance_.zoneIds = kmsInstanceNode["ZoneIds"].asString();
+	if(!kmsInstanceNode["VswitchIds"].isNull())
+		kmsInstance_.vswitchIds = kmsInstanceNode["VswitchIds"].asString();
+	if(!kmsInstanceNode["EndDate"].isNull())
+		kmsInstance_.endDate = kmsInstanceNode["EndDate"].asString();
+	if(!kmsInstanceNode["StartDate"].isNull())
+		kmsInstance_.startDate = kmsInstanceNode["StartDate"].asString();
+	if(!kmsInstanceNode["CaCertificateChainPem"].isNull())
+		kmsInstance_.caCertificateChainPem = kmsInstanceNode["CaCertificateChainPem"].asString();
+	auto allBindVpcsNode = kmsInstanceNode["BindVpcs"]["BindVpc"];
+	for (auto kmsInstanceNodeBindVpcsBindVpc : allBindVpcsNode)
+	{
+		KmsInstance::BindVpc bindVpcObject;
+		if(!kmsInstanceNodeBindVpcsBindVpc["RegionId"].isNull())
+			bindVpcObject.regionId = kmsInstanceNodeBindVpcsBindVpc["RegionId"].asString();
+		if(!kmsInstanceNodeBindVpcsBindVpc["VpcId"].isNull())
+			bindVpcObject.vpcId = kmsInstanceNodeBindVpcsBindVpc["VpcId"].asString();
+		if(!kmsInstanceNodeBindVpcsBindVpc["VpcOwnerId"].isNull())
+			bindVpcObject.vpcOwnerId = kmsInstanceNodeBindVpcsBindVpc["VpcOwnerId"].asString();
+		if(!kmsInstanceNodeBindVpcsBindVpc["VSwitchId"].isNull())
+			bindVpcObject.vSwitchId = kmsInstanceNodeBindVpcsBindVpc["VSwitchId"].asString();
+		kmsInstance_.bindVpcs.push_back(bindVpcObject);
+	}
+
+}
+
+GetKmsInstanceResult::KmsInstance GetKmsInstanceResult::getKmsInstance()const
+{
+	return kmsInstance_;
+}
+

+ 45 - 0
kms/src/model/ListApplicationAccessPointsRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ListApplicationAccessPointsRequest.h>
+
+using AlibabaCloud::Kms::Model::ListApplicationAccessPointsRequest;
+
+ListApplicationAccessPointsRequest::ListApplicationAccessPointsRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "ListApplicationAccessPoints") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListApplicationAccessPointsRequest::~ListApplicationAccessPointsRequest() {}
+
+int ListApplicationAccessPointsRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListApplicationAccessPointsRequest::setPageSize(int pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+int ListApplicationAccessPointsRequest::getPageNumber() const {
+  return pageNumber_;
+}
+
+void ListApplicationAccessPointsRequest::setPageNumber(int pageNumber) {
+  pageNumber_ = pageNumber;
+  setParameter(std::string("PageNumber"), std::to_string(pageNumber));
+}
+

+ 80 - 0
kms/src/model/ListApplicationAccessPointsResult.cc

@@ -0,0 +1,80 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ListApplicationAccessPointsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+ListApplicationAccessPointsResult::ListApplicationAccessPointsResult() :
+	ServiceResult()
+{}
+
+ListApplicationAccessPointsResult::ListApplicationAccessPointsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListApplicationAccessPointsResult::~ListApplicationAccessPointsResult()
+{}
+
+void ListApplicationAccessPointsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allApplicationAccessPointsNode = value["ApplicationAccessPoints"]["ApplicationAccessPoint"];
+	for (auto valueApplicationAccessPointsApplicationAccessPoint : allApplicationAccessPointsNode)
+	{
+		ApplicationAccessPoint applicationAccessPointsObject;
+		if(!valueApplicationAccessPointsApplicationAccessPoint["Name"].isNull())
+			applicationAccessPointsObject.name = valueApplicationAccessPointsApplicationAccessPoint["Name"].asString();
+		if(!valueApplicationAccessPointsApplicationAccessPoint["AuthenticationMethod"].isNull())
+			applicationAccessPointsObject.authenticationMethod = valueApplicationAccessPointsApplicationAccessPoint["AuthenticationMethod"].asString();
+		applicationAccessPoints_.push_back(applicationAccessPointsObject);
+	}
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+
+}
+
+int ListApplicationAccessPointsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+int ListApplicationAccessPointsResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int ListApplicationAccessPointsResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+std::vector<ListApplicationAccessPointsResult::ApplicationAccessPoint> ListApplicationAccessPointsResult::getApplicationAccessPoints()const
+{
+	return applicationAccessPoints_;
+}
+

+ 36 - 0
kms/src/model/ListClientKeysRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ListClientKeysRequest.h>
+
+using AlibabaCloud::Kms::Model::ListClientKeysRequest;
+
+ListClientKeysRequest::ListClientKeysRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "ListClientKeys") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+ListClientKeysRequest::~ListClientKeysRequest() {}
+
+std::string ListClientKeysRequest::getAapName() const {
+  return aapName_;
+}
+
+void ListClientKeysRequest::setAapName(const std::string &aapName) {
+  aapName_ = aapName;
+  setParameter(std::string("AapName"), aapName);
+}
+

+ 71 - 0
kms/src/model/ListClientKeysResult.cc

@@ -0,0 +1,71 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ListClientKeysResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+ListClientKeysResult::ListClientKeysResult() :
+	ServiceResult()
+{}
+
+ListClientKeysResult::ListClientKeysResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListClientKeysResult::~ListClientKeysResult()
+{}
+
+void ListClientKeysResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allClientKeysNode = value["ClientKeys"]["ClientKey"];
+	for (auto valueClientKeysClientKey : allClientKeysNode)
+	{
+		ClientKey clientKeysObject;
+		if(!valueClientKeysClientKey["ClientKeyId"].isNull())
+			clientKeysObject.clientKeyId = valueClientKeysClientKey["ClientKeyId"].asString();
+		if(!valueClientKeysClientKey["CreateTime"].isNull())
+			clientKeysObject.createTime = valueClientKeysClientKey["CreateTime"].asString();
+		if(!valueClientKeysClientKey["PublicKeyData"].isNull())
+			clientKeysObject.publicKeyData = valueClientKeysClientKey["PublicKeyData"].asString();
+		if(!valueClientKeysClientKey["KeyAlgorithm"].isNull())
+			clientKeysObject.keyAlgorithm = valueClientKeysClientKey["KeyAlgorithm"].asString();
+		if(!valueClientKeysClientKey["NotBefore"].isNull())
+			clientKeysObject.notBefore = valueClientKeysClientKey["NotBefore"].asString();
+		if(!valueClientKeysClientKey["NotAfter"].isNull())
+			clientKeysObject.notAfter = valueClientKeysClientKey["NotAfter"].asString();
+		if(!valueClientKeysClientKey["KeyOrigin"].isNull())
+			clientKeysObject.keyOrigin = valueClientKeysClientKey["KeyOrigin"].asString();
+		if(!valueClientKeysClientKey["AapName"].isNull())
+			clientKeysObject.aapName = valueClientKeysClientKey["AapName"].asString();
+		clientKeys_.push_back(clientKeysObject);
+	}
+
+}
+
+std::vector<ListClientKeysResult::ClientKey> ListClientKeysResult::getClientKeys()const
+{
+	return clientKeys_;
+}
+

+ 45 - 0
kms/src/model/ListKmsInstancesRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ListKmsInstancesRequest.h>
+
+using AlibabaCloud::Kms::Model::ListKmsInstancesRequest;
+
+ListKmsInstancesRequest::ListKmsInstancesRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "ListKmsInstances") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListKmsInstancesRequest::~ListKmsInstancesRequest() {}
+
+int ListKmsInstancesRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListKmsInstancesRequest::setPageSize(int pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+int ListKmsInstancesRequest::getPageNumber() const {
+  return pageNumber_;
+}
+
+void ListKmsInstancesRequest::setPageNumber(int pageNumber) {
+  pageNumber_ = pageNumber;
+  setParameter(std::string("PageNumber"), std::to_string(pageNumber));
+}
+

+ 80 - 0
kms/src/model/ListKmsInstancesResult.cc

@@ -0,0 +1,80 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ListKmsInstancesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+ListKmsInstancesResult::ListKmsInstancesResult() :
+	ServiceResult()
+{}
+
+ListKmsInstancesResult::ListKmsInstancesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListKmsInstancesResult::~ListKmsInstancesResult()
+{}
+
+void ListKmsInstancesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allKmsInstancesNode = value["KmsInstances"]["KmsInstance"];
+	for (auto valueKmsInstancesKmsInstance : allKmsInstancesNode)
+	{
+		KmsInstance kmsInstancesObject;
+		if(!valueKmsInstancesKmsInstance["KmsInstanceArn"].isNull())
+			kmsInstancesObject.kmsInstanceArn = valueKmsInstancesKmsInstance["KmsInstanceArn"].asString();
+		if(!valueKmsInstancesKmsInstance["KmsInstanceId"].isNull())
+			kmsInstancesObject.kmsInstanceId = valueKmsInstancesKmsInstance["KmsInstanceId"].asString();
+		kmsInstances_.push_back(kmsInstancesObject);
+	}
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stol(value["TotalCount"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stol(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stol(value["PageSize"].asString());
+
+}
+
+long ListKmsInstancesResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+long ListKmsInstancesResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+long ListKmsInstancesResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+std::vector<ListKmsInstancesResult::KmsInstance> ListKmsInstancesResult::getKmsInstances()const
+{
+	return kmsInstances_;
+}
+

+ 45 - 0
kms/src/model/ListNetworkRulesRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ListNetworkRulesRequest.h>
+
+using AlibabaCloud::Kms::Model::ListNetworkRulesRequest;
+
+ListNetworkRulesRequest::ListNetworkRulesRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "ListNetworkRules") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListNetworkRulesRequest::~ListNetworkRulesRequest() {}
+
+int ListNetworkRulesRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListNetworkRulesRequest::setPageSize(int pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+int ListNetworkRulesRequest::getPageNumber() const {
+  return pageNumber_;
+}
+
+void ListNetworkRulesRequest::setPageNumber(int pageNumber) {
+  pageNumber_ = pageNumber;
+  setParameter(std::string("PageNumber"), std::to_string(pageNumber));
+}
+

+ 80 - 0
kms/src/model/ListNetworkRulesResult.cc

@@ -0,0 +1,80 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ListNetworkRulesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+ListNetworkRulesResult::ListNetworkRulesResult() :
+	ServiceResult()
+{}
+
+ListNetworkRulesResult::ListNetworkRulesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListNetworkRulesResult::~ListNetworkRulesResult()
+{}
+
+void ListNetworkRulesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allNetworkRulesNode = value["NetworkRules"]["NetworkRule"];
+	for (auto valueNetworkRulesNetworkRule : allNetworkRulesNode)
+	{
+		NetworkRule networkRulesObject;
+		if(!valueNetworkRulesNetworkRule["Type"].isNull())
+			networkRulesObject.type = valueNetworkRulesNetworkRule["Type"].asString();
+		if(!valueNetworkRulesNetworkRule["Name"].isNull())
+			networkRulesObject.name = valueNetworkRulesNetworkRule["Name"].asString();
+		networkRules_.push_back(networkRulesObject);
+	}
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+
+}
+
+std::vector<ListNetworkRulesResult::NetworkRule> ListNetworkRulesResult::getNetworkRules()const
+{
+	return networkRules_;
+}
+
+int ListNetworkRulesResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+int ListNetworkRulesResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int ListNetworkRulesResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+

+ 45 - 0
kms/src/model/ListPoliciesRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ListPoliciesRequest.h>
+
+using AlibabaCloud::Kms::Model::ListPoliciesRequest;
+
+ListPoliciesRequest::ListPoliciesRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "ListPolicies") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListPoliciesRequest::~ListPoliciesRequest() {}
+
+int ListPoliciesRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListPoliciesRequest::setPageSize(int pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+int ListPoliciesRequest::getPageNumber() const {
+  return pageNumber_;
+}
+
+void ListPoliciesRequest::setPageNumber(int pageNumber) {
+  pageNumber_ = pageNumber;
+  setParameter(std::string("PageNumber"), std::to_string(pageNumber));
+}
+

+ 78 - 0
kms/src/model/ListPoliciesResult.cc

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/ListPoliciesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+ListPoliciesResult::ListPoliciesResult() :
+	ServiceResult()
+{}
+
+ListPoliciesResult::ListPoliciesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListPoliciesResult::~ListPoliciesResult()
+{}
+
+void ListPoliciesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allPoliciesNode = value["Policies"]["Policy"];
+	for (auto valuePoliciesPolicy : allPoliciesNode)
+	{
+		Policy policiesObject;
+		if(!valuePoliciesPolicy["Name"].isNull())
+			policiesObject.name = valuePoliciesPolicy["Name"].asString();
+		policies_.push_back(policiesObject);
+	}
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+
+}
+
+int ListPoliciesResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+std::vector<ListPoliciesResult::Policy> ListPoliciesResult::getPolicies()const
+{
+	return policies_;
+}
+
+int ListPoliciesResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int ListPoliciesResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+

+ 54 - 0
kms/src/model/UpdateApplicationAccessPointRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/UpdateApplicationAccessPointRequest.h>
+
+using AlibabaCloud::Kms::Model::UpdateApplicationAccessPointRequest;
+
+UpdateApplicationAccessPointRequest::UpdateApplicationAccessPointRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "UpdateApplicationAccessPoint") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UpdateApplicationAccessPointRequest::~UpdateApplicationAccessPointRequest() {}
+
+std::string UpdateApplicationAccessPointRequest::getPolicies() const {
+  return policies_;
+}
+
+void UpdateApplicationAccessPointRequest::setPolicies(const std::string &policies) {
+  policies_ = policies;
+  setParameter(std::string("Policies"), policies);
+}
+
+std::string UpdateApplicationAccessPointRequest::getDescription() const {
+  return description_;
+}
+
+void UpdateApplicationAccessPointRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setParameter(std::string("Description"), description);
+}
+
+std::string UpdateApplicationAccessPointRequest::getName() const {
+  return name_;
+}
+
+void UpdateApplicationAccessPointRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 44 - 0
kms/src/model/UpdateApplicationAccessPointResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/UpdateApplicationAccessPointResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+UpdateApplicationAccessPointResult::UpdateApplicationAccessPointResult() :
+	ServiceResult()
+{}
+
+UpdateApplicationAccessPointResult::UpdateApplicationAccessPointResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateApplicationAccessPointResult::~UpdateApplicationAccessPointResult()
+{}
+
+void UpdateApplicationAccessPointResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 45 - 0
kms/src/model/UpdateKmsInstanceBindVpcRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/UpdateKmsInstanceBindVpcRequest.h>
+
+using AlibabaCloud::Kms::Model::UpdateKmsInstanceBindVpcRequest;
+
+UpdateKmsInstanceBindVpcRequest::UpdateKmsInstanceBindVpcRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "UpdateKmsInstanceBindVpc") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+UpdateKmsInstanceBindVpcRequest::~UpdateKmsInstanceBindVpcRequest() {}
+
+std::string UpdateKmsInstanceBindVpcRequest::getKmsInstanceId() const {
+  return kmsInstanceId_;
+}
+
+void UpdateKmsInstanceBindVpcRequest::setKmsInstanceId(const std::string &kmsInstanceId) {
+  kmsInstanceId_ = kmsInstanceId;
+  setParameter(std::string("KmsInstanceId"), kmsInstanceId);
+}
+
+std::string UpdateKmsInstanceBindVpcRequest::getBindVpcs() const {
+  return bindVpcs_;
+}
+
+void UpdateKmsInstanceBindVpcRequest::setBindVpcs(const std::string &bindVpcs) {
+  bindVpcs_ = bindVpcs;
+  setParameter(std::string("BindVpcs"), bindVpcs);
+}
+

+ 44 - 0
kms/src/model/UpdateKmsInstanceBindVpcResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/UpdateKmsInstanceBindVpcResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+UpdateKmsInstanceBindVpcResult::UpdateKmsInstanceBindVpcResult() :
+	ServiceResult()
+{}
+
+UpdateKmsInstanceBindVpcResult::UpdateKmsInstanceBindVpcResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateKmsInstanceBindVpcResult::~UpdateKmsInstanceBindVpcResult()
+{}
+
+void UpdateKmsInstanceBindVpcResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 54 - 0
kms/src/model/UpdateNetworkRuleRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/UpdateNetworkRuleRequest.h>
+
+using AlibabaCloud::Kms::Model::UpdateNetworkRuleRequest;
+
+UpdateNetworkRuleRequest::UpdateNetworkRuleRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "UpdateNetworkRule") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UpdateNetworkRuleRequest::~UpdateNetworkRuleRequest() {}
+
+std::string UpdateNetworkRuleRequest::getDescription() const {
+  return description_;
+}
+
+void UpdateNetworkRuleRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setParameter(std::string("Description"), description);
+}
+
+std::string UpdateNetworkRuleRequest::getName() const {
+  return name_;
+}
+
+void UpdateNetworkRuleRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+
+std::string UpdateNetworkRuleRequest::getSourcePrivateIp() const {
+  return sourcePrivateIp_;
+}
+
+void UpdateNetworkRuleRequest::setSourcePrivateIp(const std::string &sourcePrivateIp) {
+  sourcePrivateIp_ = sourcePrivateIp;
+  setParameter(std::string("SourcePrivateIp"), sourcePrivateIp);
+}
+

+ 44 - 0
kms/src/model/UpdateNetworkRuleResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/UpdateNetworkRuleResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+UpdateNetworkRuleResult::UpdateNetworkRuleResult() :
+	ServiceResult()
+{}
+
+UpdateNetworkRuleResult::UpdateNetworkRuleResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateNetworkRuleResult::~UpdateNetworkRuleResult()
+{}
+
+void UpdateNetworkRuleResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 72 - 0
kms/src/model/UpdatePolicyRequest.cc

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/UpdatePolicyRequest.h>
+
+using AlibabaCloud::Kms::Model::UpdatePolicyRequest;
+
+UpdatePolicyRequest::UpdatePolicyRequest()
+    : RpcServiceRequest("kms", "2016-01-20", "UpdatePolicy") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UpdatePolicyRequest::~UpdatePolicyRequest() {}
+
+std::string UpdatePolicyRequest::getAccessControlRules() const {
+  return accessControlRules_;
+}
+
+void UpdatePolicyRequest::setAccessControlRules(const std::string &accessControlRules) {
+  accessControlRules_ = accessControlRules;
+  setParameter(std::string("AccessControlRules"), accessControlRules);
+}
+
+std::string UpdatePolicyRequest::getResources() const {
+  return resources_;
+}
+
+void UpdatePolicyRequest::setResources(const std::string &resources) {
+  resources_ = resources;
+  setParameter(std::string("Resources"), resources);
+}
+
+std::string UpdatePolicyRequest::getDescription() const {
+  return description_;
+}
+
+void UpdatePolicyRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setParameter(std::string("Description"), description);
+}
+
+std::string UpdatePolicyRequest::getPermissions() const {
+  return permissions_;
+}
+
+void UpdatePolicyRequest::setPermissions(const std::string &permissions) {
+  permissions_ = permissions;
+  setParameter(std::string("Permissions"), permissions);
+}
+
+std::string UpdatePolicyRequest::getName() const {
+  return name_;
+}
+
+void UpdatePolicyRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 44 - 0
kms/src/model/UpdatePolicyResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/kms/model/UpdatePolicyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Kms;
+using namespace AlibabaCloud::Kms::Model;
+
+UpdatePolicyResult::UpdatePolicyResult() :
+	ServiceResult()
+{}
+
+UpdatePolicyResult::UpdatePolicyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdatePolicyResult::~UpdatePolicyResult()
+{}
+
+void UpdatePolicyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+