Browse Source

Fixed bugs for DescribeFileSystems response filedDestription.

sdk-team 6 years ago
parent
commit
7f2f1ae15e
63 changed files with 2548 additions and 183 deletions
  1. 3 0
      ChangeLog.txt
  2. 110 0
      services/nas/add_tags.go
  3. 104 0
      services/nas/apply_auto_snapshot_policy.go
  4. 103 0
      services/nas/cancel_auto_snapshot_policy.go
  5. 27 2
      services/nas/client.go
  6. 5 4
      services/nas/create_access_group.go
  7. 5 4
      services/nas/create_access_rule.go
  8. 108 0
      services/nas/create_auto_snapshot_policy.go
  9. 5 4
      services/nas/create_file_system.go
  10. 106 0
      services/nas/create_ldap_config.go
  11. 6 6
      services/nas/create_mount_target.go
  12. 107 0
      services/nas/create_snapshot.go
  13. 3 2
      services/nas/delete_access_group.go
  14. 3 2
      services/nas/delete_access_rule.go
  15. 103 0
      services/nas/delete_auto_snapshot_policy.go
  16. 2 2
      services/nas/delete_file_system.go
  17. 103 0
      services/nas/delete_ldap_config.go
  18. 3 3
      services/nas/delete_mount_target.go
  19. 103 0
      services/nas/delete_snapshot.go
  20. 9 20
      services/nas/describe_access_groups.go
  21. 9 20
      services/nas/describe_access_rules.go
  22. 110 0
      services/nas/describe_auto_snapshot_policies.go
  23. 12 42
      services/nas/describe_file_systems.go
  24. 104 0
      services/nas/describe_ldap_config.go
  25. 8 21
      services/nas/describe_mount_targets.go
  26. 10 19
      services/nas/describe_regions.go
  27. 114 0
      services/nas/describe_snapshots.go
  28. 116 0
      services/nas/describe_tags.go
  29. 4 18
      services/nas/describe_zones.go
  30. 23 0
      services/nas/endpoint.go
  31. 4 3
      services/nas/modify_access_group.go
  32. 6 5
      services/nas/modify_access_rule.go
  33. 107 0
      services/nas/modify_auto_snapshot_policy.go
  34. 3 3
      services/nas/modify_file_system.go
  35. 106 0
      services/nas/modify_ldap_config.go
  36. 3 3
      services/nas/modify_mount_target.go
  37. 110 0
      services/nas/remove_tags.go
  38. 104 0
      services/nas/reset_file_system.go
  39. 25 0
      services/nas/struct_access_group.go
  40. 21 0
      services/nas/struct_access_groups.go
  41. 25 0
      services/nas/struct_access_rule.go
  42. 21 0
      services/nas/struct_access_rules.go
  43. 21 0
      services/nas/struct_auto_snapshot_policies.go
  44. 29 0
      services/nas/struct_auto_snapshot_policy.go
  45. 21 0
      services/nas/struct_capacity.go
  46. 34 0
      services/nas/struct_file_system.go
  47. 21 0
      services/nas/struct_file_system_ids.go
  48. 21 0
      services/nas/struct_file_systems.go
  49. 23 0
      services/nas/struct_ldap.go
  50. 27 0
      services/nas/struct_mount_target.go
  51. 21 0
      services/nas/struct_mount_targets_in_describe_file_systems.go
  52. 21 0
      services/nas/struct_mount_targets_in_describe_mount_targets.go
  53. 21 0
      services/nas/struct_package.go
  54. 21 0
      services/nas/struct_packages.go
  55. 21 0
      services/nas/struct_performance.go
  56. 23 0
      services/nas/struct_region.go
  57. 21 0
      services/nas/struct_regions.go
  58. 30 0
      services/nas/struct_snapshot.go
  59. 21 0
      services/nas/struct_snapshots.go
  60. 23 0
      services/nas/struct_tag.go
  61. 21 0
      services/nas/struct_tags.go
  62. 23 0
      services/nas/struct_zone.go
  63. 21 0
      services/nas/struct_zones.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-08-16 Version: 1.60.107
+- Fixed bugs for DescribeFileSystems response filed`Destription`.
+
 2019-08-16 Version: 1.60.106
 - Generated 2018-02-01 for `ddosbgp`.
 

+ 110 - 0
services/nas/add_tags.go

@@ -0,0 +1,110 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// AddTags invokes the nas.AddTags API synchronously
+// api document: https://help.aliyun.com/api/nas/addtags.html
+func (client *Client) AddTags(request *AddTagsRequest) (response *AddTagsResponse, err error) {
+	response = CreateAddTagsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddTagsWithChan invokes the nas.AddTags API asynchronously
+// api document: https://help.aliyun.com/api/nas/addtags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddTagsWithChan(request *AddTagsRequest) (<-chan *AddTagsResponse, <-chan error) {
+	responseChan := make(chan *AddTagsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddTags(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddTagsWithCallback invokes the nas.AddTags API asynchronously
+// api document: https://help.aliyun.com/api/nas/addtags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddTagsWithCallback(request *AddTagsRequest, callback func(response *AddTagsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddTagsResponse
+		var err error
+		defer close(result)
+		response, err = client.AddTags(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddTagsRequest is the request struct for api AddTags
+type AddTagsRequest struct {
+	*requests.RpcRequest
+	Tag          *[]AddTagsTag `position:"Query" name:"Tag"  type:"Repeated"`
+	FileSystemId string        `position:"Query" name:"FileSystemId"`
+}
+
+// AddTagsTag is a repeated param struct in AddTagsRequest
+type AddTagsTag struct {
+	Value string `name:"Value"`
+	Key   string `name:"Key"`
+}
+
+// AddTagsResponse is the response struct for api AddTags
+type AddTagsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAddTagsRequest creates a request to invoke AddTags API
+func CreateAddTagsRequest() (request *AddTagsRequest) {
+	request = &AddTagsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "AddTags", "nas", "openAPI")
+	return
+}
+
+// CreateAddTagsResponse creates a response to parse from AddTags response
+func CreateAddTagsResponse() (response *AddTagsResponse) {
+	response = &AddTagsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/nas/apply_auto_snapshot_policy.go

@@ -0,0 +1,104 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ApplyAutoSnapshotPolicy invokes the nas.ApplyAutoSnapshotPolicy API synchronously
+// api document: https://help.aliyun.com/api/nas/applyautosnapshotpolicy.html
+func (client *Client) ApplyAutoSnapshotPolicy(request *ApplyAutoSnapshotPolicyRequest) (response *ApplyAutoSnapshotPolicyResponse, err error) {
+	response = CreateApplyAutoSnapshotPolicyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ApplyAutoSnapshotPolicyWithChan invokes the nas.ApplyAutoSnapshotPolicy API asynchronously
+// api document: https://help.aliyun.com/api/nas/applyautosnapshotpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ApplyAutoSnapshotPolicyWithChan(request *ApplyAutoSnapshotPolicyRequest) (<-chan *ApplyAutoSnapshotPolicyResponse, <-chan error) {
+	responseChan := make(chan *ApplyAutoSnapshotPolicyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ApplyAutoSnapshotPolicy(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ApplyAutoSnapshotPolicyWithCallback invokes the nas.ApplyAutoSnapshotPolicy API asynchronously
+// api document: https://help.aliyun.com/api/nas/applyautosnapshotpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ApplyAutoSnapshotPolicyWithCallback(request *ApplyAutoSnapshotPolicyRequest, callback func(response *ApplyAutoSnapshotPolicyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ApplyAutoSnapshotPolicyResponse
+		var err error
+		defer close(result)
+		response, err = client.ApplyAutoSnapshotPolicy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ApplyAutoSnapshotPolicyRequest is the request struct for api ApplyAutoSnapshotPolicy
+type ApplyAutoSnapshotPolicyRequest struct {
+	*requests.RpcRequest
+	AutoSnapshotPolicyId string `position:"Query" name:"AutoSnapshotPolicyId"`
+	FileSystemIds        string `position:"Query" name:"FileSystemIds"`
+}
+
+// ApplyAutoSnapshotPolicyResponse is the response struct for api ApplyAutoSnapshotPolicy
+type ApplyAutoSnapshotPolicyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateApplyAutoSnapshotPolicyRequest creates a request to invoke ApplyAutoSnapshotPolicy API
+func CreateApplyAutoSnapshotPolicyRequest() (request *ApplyAutoSnapshotPolicyRequest) {
+	request = &ApplyAutoSnapshotPolicyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "ApplyAutoSnapshotPolicy", "nas", "openAPI")
+	return
+}
+
+// CreateApplyAutoSnapshotPolicyResponse creates a response to parse from ApplyAutoSnapshotPolicy response
+func CreateApplyAutoSnapshotPolicyResponse() (response *ApplyAutoSnapshotPolicyResponse) {
+	response = &ApplyAutoSnapshotPolicyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/nas/cancel_auto_snapshot_policy.go

@@ -0,0 +1,103 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CancelAutoSnapshotPolicy invokes the nas.CancelAutoSnapshotPolicy API synchronously
+// api document: https://help.aliyun.com/api/nas/cancelautosnapshotpolicy.html
+func (client *Client) CancelAutoSnapshotPolicy(request *CancelAutoSnapshotPolicyRequest) (response *CancelAutoSnapshotPolicyResponse, err error) {
+	response = CreateCancelAutoSnapshotPolicyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CancelAutoSnapshotPolicyWithChan invokes the nas.CancelAutoSnapshotPolicy API asynchronously
+// api document: https://help.aliyun.com/api/nas/cancelautosnapshotpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelAutoSnapshotPolicyWithChan(request *CancelAutoSnapshotPolicyRequest) (<-chan *CancelAutoSnapshotPolicyResponse, <-chan error) {
+	responseChan := make(chan *CancelAutoSnapshotPolicyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CancelAutoSnapshotPolicy(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CancelAutoSnapshotPolicyWithCallback invokes the nas.CancelAutoSnapshotPolicy API asynchronously
+// api document: https://help.aliyun.com/api/nas/cancelautosnapshotpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelAutoSnapshotPolicyWithCallback(request *CancelAutoSnapshotPolicyRequest, callback func(response *CancelAutoSnapshotPolicyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CancelAutoSnapshotPolicyResponse
+		var err error
+		defer close(result)
+		response, err = client.CancelAutoSnapshotPolicy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CancelAutoSnapshotPolicyRequest is the request struct for api CancelAutoSnapshotPolicy
+type CancelAutoSnapshotPolicyRequest struct {
+	*requests.RpcRequest
+	FileSystemIds string `position:"Query" name:"FileSystemIds"`
+}
+
+// CancelAutoSnapshotPolicyResponse is the response struct for api CancelAutoSnapshotPolicy
+type CancelAutoSnapshotPolicyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCancelAutoSnapshotPolicyRequest creates a request to invoke CancelAutoSnapshotPolicy API
+func CreateCancelAutoSnapshotPolicyRequest() (request *CancelAutoSnapshotPolicyRequest) {
+	request = &CancelAutoSnapshotPolicyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "CancelAutoSnapshotPolicy", "nas", "openAPI")
+	return
+}
+
+// CreateCancelAutoSnapshotPolicyResponse creates a response to parse from CancelAutoSnapshotPolicy response
+func CreateCancelAutoSnapshotPolicyResponse() (response *CancelAutoSnapshotPolicyResponse) {
+	response = &CancelAutoSnapshotPolicyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 27 - 2
services/nas/client.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,9 +15,9 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
+	"reflect"
+
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
@@ -26,10 +28,25 @@ type Client struct {
 	sdk.Client
 }
 
+// SetClientProperty Set Property by Reflect
+func SetClientProperty(client *Client, propertyName string, propertyValue interface{}) {
+	v := reflect.ValueOf(client).Elem()
+	if v.FieldByName(propertyName).IsValid() && v.FieldByName(propertyName).CanSet() {
+		v.FieldByName(propertyName).Set(reflect.ValueOf(propertyValue))
+	}
+}
+
+// SetEndpointDataToClient Set EndpointMap and ENdpointType
+func SetEndpointDataToClient(client *Client) {
+	SetClientProperty(client, "EndpointMap", GetEndpointMap())
+	SetClientProperty(client, "EndpointType", GetEndpointType())
+}
+
 // NewClient creates a sdk client with environment variables
 func NewClient() (client *Client, err error) {
 	client = &Client{}
 	err = client.Init()
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -44,6 +61,7 @@ func NewClientWithProvider(regionId string, providers ...provider.Provider) (cli
 		pc = provider.NewProviderChain(providers)
 	}
 	err = client.InitWithProviderChain(regionId, pc)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -52,6 +70,7 @@ func NewClientWithProvider(regionId string, providers ...provider.Provider) (cli
 func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithOptions(regionId, config, credential)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -60,6 +79,7 @@ func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.C
 func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -68,6 +88,7 @@ func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (clie
 func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -76,6 +97,7 @@ func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToke
 func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -84,6 +106,7 @@ func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, role
 func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -92,6 +115,7 @@ func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySec
 func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithEcsRamRole(regionId, roleName)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -100,5 +124,6 @@ func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client,
 func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	SetEndpointDataToClient(client)
 	return
 }

+ 5 - 4
services/nas/create_access_group.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,9 +76,10 @@ func (client *Client) CreateAccessGroupWithCallback(request *CreateAccessGroupRe
 // CreateAccessGroupRequest is the request struct for api CreateAccessGroup
 type CreateAccessGroupRequest struct {
 	*requests.RpcRequest
-	AccessGroupName string `position:"Query" name:"AccessGroupName"`
-	AccessGroupType string `position:"Query" name:"AccessGroupType"`
 	Description     string `position:"Query" name:"Description"`
+	AccessGroupType string `position:"Query" name:"AccessGroupType"`
+	AccessGroupName string `position:"Query" name:"AccessGroupName"`
+	FileSystemType  string `position:"Query" name:"FileSystemType"`
 }
 
 // CreateAccessGroupResponse is the response struct for api CreateAccessGroup

+ 5 - 4
services/nas/create_access_rule.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,11 +76,12 @@ func (client *Client) CreateAccessRuleWithCallback(request *CreateAccessRuleRequ
 // CreateAccessRuleRequest is the request struct for api CreateAccessRule
 type CreateAccessRuleRequest struct {
 	*requests.RpcRequest
-	AccessGroupName string           `position:"Query" name:"AccessGroupName"`
-	SourceCidrIp    string           `position:"Query" name:"SourceCidrIp"`
 	RWAccessType    string           `position:"Query" name:"RWAccessType"`
+	SourceCidrIp    string           `position:"Query" name:"SourceCidrIp"`
 	UserAccessType  string           `position:"Query" name:"UserAccessType"`
 	Priority        requests.Integer `position:"Query" name:"Priority"`
+	AccessGroupName string           `position:"Query" name:"AccessGroupName"`
+	FileSystemType  string           `position:"Query" name:"FileSystemType"`
 }
 
 // CreateAccessRuleResponse is the response struct for api CreateAccessRule

+ 108 - 0
services/nas/create_auto_snapshot_policy.go

@@ -0,0 +1,108 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateAutoSnapshotPolicy invokes the nas.CreateAutoSnapshotPolicy API synchronously
+// api document: https://help.aliyun.com/api/nas/createautosnapshotpolicy.html
+func (client *Client) CreateAutoSnapshotPolicy(request *CreateAutoSnapshotPolicyRequest) (response *CreateAutoSnapshotPolicyResponse, err error) {
+	response = CreateCreateAutoSnapshotPolicyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateAutoSnapshotPolicyWithChan invokes the nas.CreateAutoSnapshotPolicy API asynchronously
+// api document: https://help.aliyun.com/api/nas/createautosnapshotpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateAutoSnapshotPolicyWithChan(request *CreateAutoSnapshotPolicyRequest) (<-chan *CreateAutoSnapshotPolicyResponse, <-chan error) {
+	responseChan := make(chan *CreateAutoSnapshotPolicyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateAutoSnapshotPolicy(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateAutoSnapshotPolicyWithCallback invokes the nas.CreateAutoSnapshotPolicy API asynchronously
+// api document: https://help.aliyun.com/api/nas/createautosnapshotpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateAutoSnapshotPolicyWithCallback(request *CreateAutoSnapshotPolicyRequest, callback func(response *CreateAutoSnapshotPolicyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateAutoSnapshotPolicyResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateAutoSnapshotPolicy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateAutoSnapshotPolicyRequest is the request struct for api CreateAutoSnapshotPolicy
+type CreateAutoSnapshotPolicyRequest struct {
+	*requests.RpcRequest
+	TimePoints             string           `position:"Query" name:"TimePoints"`
+	RetentionDays          requests.Integer `position:"Query" name:"RetentionDays"`
+	RepeatWeekdays         string           `position:"Query" name:"RepeatWeekdays"`
+	FileSystemType         string           `position:"Query" name:"FileSystemType"`
+	AutoSnapshotPolicyName string           `position:"Query" name:"AutoSnapshotPolicyName"`
+}
+
+// CreateAutoSnapshotPolicyResponse is the response struct for api CreateAutoSnapshotPolicy
+type CreateAutoSnapshotPolicyResponse struct {
+	*responses.BaseResponse
+	RequestId            string `json:"RequestId" xml:"RequestId"`
+	AutoSnapshotPolicyId string `json:"AutoSnapshotPolicyId" xml:"AutoSnapshotPolicyId"`
+}
+
+// CreateCreateAutoSnapshotPolicyRequest creates a request to invoke CreateAutoSnapshotPolicy API
+func CreateCreateAutoSnapshotPolicyRequest() (request *CreateAutoSnapshotPolicyRequest) {
+	request = &CreateAutoSnapshotPolicyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "CreateAutoSnapshotPolicy", "nas", "openAPI")
+	return
+}
+
+// CreateCreateAutoSnapshotPolicyResponse creates a response to parse from CreateAutoSnapshotPolicy response
+func CreateCreateAutoSnapshotPolicyResponse() (response *CreateAutoSnapshotPolicyResponse) {
+	response = &CreateAutoSnapshotPolicyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 5 - 4
services/nas/create_file_system.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,9 +76,10 @@ func (client *Client) CreateFileSystemWithCallback(request *CreateFileSystemRequ
 // CreateFileSystemRequest is the request struct for api CreateFileSystem
 type CreateFileSystemRequest struct {
 	*requests.RpcRequest
-	StorageType  string `position:"Query" name:"StorageType"`
-	ProtocolType string `position:"Query" name:"ProtocolType"`
+	ZoneId       string `position:"Query" name:"ZoneId"`
 	Description  string `position:"Query" name:"Description"`
+	ProtocolType string `position:"Query" name:"ProtocolType"`
+	StorageType  string `position:"Query" name:"StorageType"`
 }
 
 // CreateFileSystemResponse is the response struct for api CreateFileSystem

+ 106 - 0
services/nas/create_ldap_config.go

@@ -0,0 +1,106 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateLDAPConfig invokes the nas.CreateLDAPConfig API synchronously
+// api document: https://help.aliyun.com/api/nas/createldapconfig.html
+func (client *Client) CreateLDAPConfig(request *CreateLDAPConfigRequest) (response *CreateLDAPConfigResponse, err error) {
+	response = CreateCreateLDAPConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateLDAPConfigWithChan invokes the nas.CreateLDAPConfig API asynchronously
+// api document: https://help.aliyun.com/api/nas/createldapconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateLDAPConfigWithChan(request *CreateLDAPConfigRequest) (<-chan *CreateLDAPConfigResponse, <-chan error) {
+	responseChan := make(chan *CreateLDAPConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateLDAPConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateLDAPConfigWithCallback invokes the nas.CreateLDAPConfig API asynchronously
+// api document: https://help.aliyun.com/api/nas/createldapconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateLDAPConfigWithCallback(request *CreateLDAPConfigRequest, callback func(response *CreateLDAPConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateLDAPConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateLDAPConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateLDAPConfigRequest is the request struct for api CreateLDAPConfig
+type CreateLDAPConfigRequest struct {
+	*requests.RpcRequest
+	BindDN       string `position:"Query" name:"BindDN"`
+	SearchBase   string `position:"Query" name:"SearchBase"`
+	URI          string `position:"Query" name:"URI"`
+	FileSystemId string `position:"Query" name:"FileSystemId"`
+}
+
+// CreateLDAPConfigResponse is the response struct for api CreateLDAPConfig
+type CreateLDAPConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreateLDAPConfigRequest creates a request to invoke CreateLDAPConfig API
+func CreateCreateLDAPConfigRequest() (request *CreateLDAPConfigRequest) {
+	request = &CreateLDAPConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "CreateLDAPConfig", "nas", "openAPI")
+	return
+}
+
+// CreateCreateLDAPConfigResponse creates a response to parse from CreateLDAPConfig response
+func CreateCreateLDAPConfigResponse() (response *CreateLDAPConfigResponse) {
+	response = &CreateLDAPConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 6 - 6
services/nas/create_mount_target.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,11 +76,11 @@ func (client *Client) CreateMountTargetWithCallback(request *CreateMountTargetRe
 // CreateMountTargetRequest is the request struct for api CreateMountTarget
 type CreateMountTargetRequest struct {
 	*requests.RpcRequest
-	FileSystemId    string `position:"Query" name:"FileSystemId"`
-	AccessGroupName string `position:"Query" name:"AccessGroupName"`
-	NetworkType     string `position:"Query" name:"NetworkType"`
-	VpcId           string `position:"Query" name:"VpcId"`
 	VSwitchId       string `position:"Query" name:"VSwitchId"`
+	VpcId           string `position:"Query" name:"VpcId"`
+	NetworkType     string `position:"Query" name:"NetworkType"`
+	AccessGroupName string `position:"Query" name:"AccessGroupName"`
+	FileSystemId    string `position:"Query" name:"FileSystemId"`
 }
 
 // CreateMountTargetResponse is the response struct for api CreateMountTarget

+ 107 - 0
services/nas/create_snapshot.go

@@ -0,0 +1,107 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateSnapshot invokes the nas.CreateSnapshot API synchronously
+// api document: https://help.aliyun.com/api/nas/createsnapshot.html
+func (client *Client) CreateSnapshot(request *CreateSnapshotRequest) (response *CreateSnapshotResponse, err error) {
+	response = CreateCreateSnapshotResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateSnapshotWithChan invokes the nas.CreateSnapshot API asynchronously
+// api document: https://help.aliyun.com/api/nas/createsnapshot.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSnapshotWithChan(request *CreateSnapshotRequest) (<-chan *CreateSnapshotResponse, <-chan error) {
+	responseChan := make(chan *CreateSnapshotResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateSnapshot(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateSnapshotWithCallback invokes the nas.CreateSnapshot API asynchronously
+// api document: https://help.aliyun.com/api/nas/createsnapshot.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSnapshotWithCallback(request *CreateSnapshotRequest, callback func(response *CreateSnapshotResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateSnapshotResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateSnapshot(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateSnapshotRequest is the request struct for api CreateSnapshot
+type CreateSnapshotRequest struct {
+	*requests.RpcRequest
+	Description   string           `position:"Query" name:"Description"`
+	SnapshotName  string           `position:"Query" name:"SnapshotName"`
+	RetentionDays requests.Integer `position:"Query" name:"RetentionDays"`
+	FileSystemId  string           `position:"Query" name:"FileSystemId"`
+}
+
+// CreateSnapshotResponse is the response struct for api CreateSnapshot
+type CreateSnapshotResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	SnapshotId string `json:"SnapshotId" xml:"SnapshotId"`
+}
+
+// CreateCreateSnapshotRequest creates a request to invoke CreateSnapshot API
+func CreateCreateSnapshotRequest() (request *CreateSnapshotRequest) {
+	request = &CreateSnapshotRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "CreateSnapshot", "nas", "openAPI")
+	return
+}
+
+// CreateCreateSnapshotResponse creates a response to parse from CreateSnapshot response
+func CreateCreateSnapshotResponse() (response *CreateSnapshotResponse) {
+	response = &CreateSnapshotResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 2
services/nas/delete_access_group.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -77,6 +77,7 @@ func (client *Client) DeleteAccessGroupWithCallback(request *DeleteAccessGroupRe
 type DeleteAccessGroupRequest struct {
 	*requests.RpcRequest
 	AccessGroupName string `position:"Query" name:"AccessGroupName"`
+	FileSystemType  string `position:"Query" name:"FileSystemType"`
 }
 
 // DeleteAccessGroupResponse is the response struct for api DeleteAccessGroup

+ 3 - 2
services/nas/delete_access_rule.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -78,6 +78,7 @@ type DeleteAccessRuleRequest struct {
 	*requests.RpcRequest
 	AccessGroupName string `position:"Query" name:"AccessGroupName"`
 	AccessRuleId    string `position:"Query" name:"AccessRuleId"`
+	FileSystemType  string `position:"Query" name:"FileSystemType"`
 }
 
 // DeleteAccessRuleResponse is the response struct for api DeleteAccessRule

+ 103 - 0
services/nas/delete_auto_snapshot_policy.go

@@ -0,0 +1,103 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteAutoSnapshotPolicy invokes the nas.DeleteAutoSnapshotPolicy API synchronously
+// api document: https://help.aliyun.com/api/nas/deleteautosnapshotpolicy.html
+func (client *Client) DeleteAutoSnapshotPolicy(request *DeleteAutoSnapshotPolicyRequest) (response *DeleteAutoSnapshotPolicyResponse, err error) {
+	response = CreateDeleteAutoSnapshotPolicyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteAutoSnapshotPolicyWithChan invokes the nas.DeleteAutoSnapshotPolicy API asynchronously
+// api document: https://help.aliyun.com/api/nas/deleteautosnapshotpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteAutoSnapshotPolicyWithChan(request *DeleteAutoSnapshotPolicyRequest) (<-chan *DeleteAutoSnapshotPolicyResponse, <-chan error) {
+	responseChan := make(chan *DeleteAutoSnapshotPolicyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteAutoSnapshotPolicy(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteAutoSnapshotPolicyWithCallback invokes the nas.DeleteAutoSnapshotPolicy API asynchronously
+// api document: https://help.aliyun.com/api/nas/deleteautosnapshotpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteAutoSnapshotPolicyWithCallback(request *DeleteAutoSnapshotPolicyRequest, callback func(response *DeleteAutoSnapshotPolicyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteAutoSnapshotPolicyResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteAutoSnapshotPolicy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteAutoSnapshotPolicyRequest is the request struct for api DeleteAutoSnapshotPolicy
+type DeleteAutoSnapshotPolicyRequest struct {
+	*requests.RpcRequest
+	AutoSnapshotPolicyId string `position:"Query" name:"AutoSnapshotPolicyId"`
+}
+
+// DeleteAutoSnapshotPolicyResponse is the response struct for api DeleteAutoSnapshotPolicy
+type DeleteAutoSnapshotPolicyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteAutoSnapshotPolicyRequest creates a request to invoke DeleteAutoSnapshotPolicy API
+func CreateDeleteAutoSnapshotPolicyRequest() (request *DeleteAutoSnapshotPolicyRequest) {
+	request = &DeleteAutoSnapshotPolicyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "DeleteAutoSnapshotPolicy", "nas", "openAPI")
+	return
+}
+
+// CreateDeleteAutoSnapshotPolicyResponse creates a response to parse from DeleteAutoSnapshotPolicy response
+func CreateDeleteAutoSnapshotPolicyResponse() (response *DeleteAutoSnapshotPolicyResponse) {
+	response = &DeleteAutoSnapshotPolicyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 2
services/nas/delete_file_system.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"

+ 103 - 0
services/nas/delete_ldap_config.go

@@ -0,0 +1,103 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteLDAPConfig invokes the nas.DeleteLDAPConfig API synchronously
+// api document: https://help.aliyun.com/api/nas/deleteldapconfig.html
+func (client *Client) DeleteLDAPConfig(request *DeleteLDAPConfigRequest) (response *DeleteLDAPConfigResponse, err error) {
+	response = CreateDeleteLDAPConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteLDAPConfigWithChan invokes the nas.DeleteLDAPConfig API asynchronously
+// api document: https://help.aliyun.com/api/nas/deleteldapconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteLDAPConfigWithChan(request *DeleteLDAPConfigRequest) (<-chan *DeleteLDAPConfigResponse, <-chan error) {
+	responseChan := make(chan *DeleteLDAPConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteLDAPConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteLDAPConfigWithCallback invokes the nas.DeleteLDAPConfig API asynchronously
+// api document: https://help.aliyun.com/api/nas/deleteldapconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteLDAPConfigWithCallback(request *DeleteLDAPConfigRequest, callback func(response *DeleteLDAPConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteLDAPConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteLDAPConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteLDAPConfigRequest is the request struct for api DeleteLDAPConfig
+type DeleteLDAPConfigRequest struct {
+	*requests.RpcRequest
+	FileSystemId string `position:"Query" name:"FileSystemId"`
+}
+
+// DeleteLDAPConfigResponse is the response struct for api DeleteLDAPConfig
+type DeleteLDAPConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteLDAPConfigRequest creates a request to invoke DeleteLDAPConfig API
+func CreateDeleteLDAPConfigRequest() (request *DeleteLDAPConfigRequest) {
+	request = &DeleteLDAPConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "DeleteLDAPConfig", "nas", "openAPI")
+	return
+}
+
+// CreateDeleteLDAPConfigResponse creates a response to parse from DeleteLDAPConfig response
+func CreateDeleteLDAPConfigResponse() (response *DeleteLDAPConfigResponse) {
+	response = &DeleteLDAPConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 3
services/nas/delete_mount_target.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,8 +76,8 @@ func (client *Client) DeleteMountTargetWithCallback(request *DeleteMountTargetRe
 // DeleteMountTargetRequest is the request struct for api DeleteMountTarget
 type DeleteMountTargetRequest struct {
 	*requests.RpcRequest
-	FileSystemId      string `position:"Query" name:"FileSystemId"`
 	MountTargetDomain string `position:"Query" name:"MountTargetDomain"`
+	FileSystemId      string `position:"Query" name:"FileSystemId"`
 }
 
 // DeleteMountTargetResponse is the response struct for api DeleteMountTarget

+ 103 - 0
services/nas/delete_snapshot.go

@@ -0,0 +1,103 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteSnapshot invokes the nas.DeleteSnapshot API synchronously
+// api document: https://help.aliyun.com/api/nas/deletesnapshot.html
+func (client *Client) DeleteSnapshot(request *DeleteSnapshotRequest) (response *DeleteSnapshotResponse, err error) {
+	response = CreateDeleteSnapshotResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteSnapshotWithChan invokes the nas.DeleteSnapshot API asynchronously
+// api document: https://help.aliyun.com/api/nas/deletesnapshot.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSnapshotWithChan(request *DeleteSnapshotRequest) (<-chan *DeleteSnapshotResponse, <-chan error) {
+	responseChan := make(chan *DeleteSnapshotResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteSnapshot(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteSnapshotWithCallback invokes the nas.DeleteSnapshot API asynchronously
+// api document: https://help.aliyun.com/api/nas/deletesnapshot.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSnapshotWithCallback(request *DeleteSnapshotRequest, callback func(response *DeleteSnapshotResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteSnapshotResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteSnapshot(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteSnapshotRequest is the request struct for api DeleteSnapshot
+type DeleteSnapshotRequest struct {
+	*requests.RpcRequest
+	SnapshotId string `position:"Query" name:"SnapshotId"`
+}
+
+// DeleteSnapshotResponse is the response struct for api DeleteSnapshot
+type DeleteSnapshotResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteSnapshotRequest creates a request to invoke DeleteSnapshot API
+func CreateDeleteSnapshotRequest() (request *DeleteSnapshotRequest) {
+	request = &DeleteSnapshotRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "DeleteSnapshot", "nas", "openAPI")
+	return
+}
+
+// CreateDeleteSnapshotResponse creates a response to parse from DeleteSnapshot response
+func CreateDeleteSnapshotResponse() (response *DeleteSnapshotResponse) {
+	response = &DeleteSnapshotResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 9 - 20
services/nas/describe_access_groups.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,31 +76,20 @@ func (client *Client) DescribeAccessGroupsWithCallback(request *DescribeAccessGr
 // DescribeAccessGroupsRequest is the request struct for api DescribeAccessGroups
 type DescribeAccessGroupsRequest struct {
 	*requests.RpcRequest
-	AccessGroupName string           `position:"Query" name:"AccessGroupName"`
 	PageSize        requests.Integer `position:"Query" name:"PageSize"`
+	AccessGroupName string           `position:"Query" name:"AccessGroupName"`
+	FileSystemType  string           `position:"Query" name:"FileSystemType"`
 	PageNumber      requests.Integer `position:"Query" name:"PageNumber"`
 }
 
 // DescribeAccessGroupsResponse is the response struct for api DescribeAccessGroups
 type DescribeAccessGroupsResponse struct {
 	*responses.BaseResponse
-	RequestId    string                            `json:"RequestId" xml:"RequestId"`
-	TotalCount   int                               `json:"TotalCount" xml:"TotalCount"`
-	PageSize     int                               `json:"PageSize" xml:"PageSize"`
-	PageNumber   int                               `json:"PageNumber" xml:"PageNumber"`
-	AccessGroups DescribeAccessGroupsAccessGroups0 `json:"AccessGroups" xml:"AccessGroups"`
-}
-
-type DescribeAccessGroupsAccessGroups0 struct {
-	AccessGroup []DescribeAccessGroupsAccessGroup1 `json:"AccessGroup" xml:"AccessGroup"`
-}
-
-type DescribeAccessGroupsAccessGroup1 struct {
-	AccessGroupName  string `json:"AccessGroupName" xml:"AccessGroupName"`
-	AccessGroupType  string `json:"AccessGroupType" xml:"AccessGroupType"`
-	RuleCount        int    `json:"RuleCount" xml:"RuleCount"`
-	MountTargetCount int    `json:"MountTargetCount" xml:"MountTargetCount"`
-	Description      string `json:"Description" xml:"Description"`
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	TotalCount   int          `json:"TotalCount" xml:"TotalCount"`
+	PageSize     int          `json:"PageSize" xml:"PageSize"`
+	PageNumber   int          `json:"PageNumber" xml:"PageNumber"`
+	AccessGroups AccessGroups `json:"AccessGroups" xml:"AccessGroups"`
 }
 
 // CreateDescribeAccessGroupsRequest creates a request to invoke DescribeAccessGroups API

+ 9 - 20
services/nas/describe_access_rules.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,32 +76,21 @@ func (client *Client) DescribeAccessRulesWithCallback(request *DescribeAccessRul
 // DescribeAccessRulesRequest is the request struct for api DescribeAccessRules
 type DescribeAccessRulesRequest struct {
 	*requests.RpcRequest
+	PageSize        requests.Integer `position:"Query" name:"PageSize"`
 	AccessGroupName string           `position:"Query" name:"AccessGroupName"`
 	AccessRuleId    string           `position:"Query" name:"AccessRuleId"`
-	PageSize        requests.Integer `position:"Query" name:"PageSize"`
+	FileSystemType  string           `position:"Query" name:"FileSystemType"`
 	PageNumber      requests.Integer `position:"Query" name:"PageNumber"`
 }
 
 // DescribeAccessRulesResponse is the response struct for api DescribeAccessRules
 type DescribeAccessRulesResponse struct {
 	*responses.BaseResponse
-	RequestId   string                          `json:"RequestId" xml:"RequestId"`
-	TotalCount  int                             `json:"TotalCount" xml:"TotalCount"`
-	PageSize    int                             `json:"PageSize" xml:"PageSize"`
-	PageNumber  int                             `json:"PageNumber" xml:"PageNumber"`
-	AccessRules DescribeAccessRulesAccessRules0 `json:"AccessRules" xml:"AccessRules"`
-}
-
-type DescribeAccessRulesAccessRules0 struct {
-	AccessRule []DescribeAccessRulesAccessRule1 `json:"AccessRule" xml:"AccessRule"`
-}
-
-type DescribeAccessRulesAccessRule1 struct {
-	SourceCidrIp string `json:"SourceCidrIp" xml:"SourceCidrIp"`
-	Priority     int    `json:"Priority" xml:"Priority"`
-	AccessRuleId string `json:"AccessRuleId" xml:"AccessRuleId"`
-	RWAccess     string `json:"RWAccess" xml:"RWAccess"`
-	UserAccess   string `json:"UserAccess" xml:"UserAccess"`
+	RequestId   string      `json:"RequestId" xml:"RequestId"`
+	TotalCount  int         `json:"TotalCount" xml:"TotalCount"`
+	PageSize    int         `json:"PageSize" xml:"PageSize"`
+	PageNumber  int         `json:"PageNumber" xml:"PageNumber"`
+	AccessRules AccessRules `json:"AccessRules" xml:"AccessRules"`
 }
 
 // CreateDescribeAccessRulesRequest creates a request to invoke DescribeAccessRules API

+ 110 - 0
services/nas/describe_auto_snapshot_policies.go

@@ -0,0 +1,110 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeAutoSnapshotPolicies invokes the nas.DescribeAutoSnapshotPolicies API synchronously
+// api document: https://help.aliyun.com/api/nas/describeautosnapshotpolicies.html
+func (client *Client) DescribeAutoSnapshotPolicies(request *DescribeAutoSnapshotPoliciesRequest) (response *DescribeAutoSnapshotPoliciesResponse, err error) {
+	response = CreateDescribeAutoSnapshotPoliciesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeAutoSnapshotPoliciesWithChan invokes the nas.DescribeAutoSnapshotPolicies API asynchronously
+// api document: https://help.aliyun.com/api/nas/describeautosnapshotpolicies.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeAutoSnapshotPoliciesWithChan(request *DescribeAutoSnapshotPoliciesRequest) (<-chan *DescribeAutoSnapshotPoliciesResponse, <-chan error) {
+	responseChan := make(chan *DescribeAutoSnapshotPoliciesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeAutoSnapshotPolicies(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeAutoSnapshotPoliciesWithCallback invokes the nas.DescribeAutoSnapshotPolicies API asynchronously
+// api document: https://help.aliyun.com/api/nas/describeautosnapshotpolicies.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeAutoSnapshotPoliciesWithCallback(request *DescribeAutoSnapshotPoliciesRequest, callback func(response *DescribeAutoSnapshotPoliciesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeAutoSnapshotPoliciesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeAutoSnapshotPolicies(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeAutoSnapshotPoliciesRequest is the request struct for api DescribeAutoSnapshotPolicies
+type DescribeAutoSnapshotPoliciesRequest struct {
+	*requests.RpcRequest
+	AutoSnapshotPolicyId string           `position:"Query" name:"AutoSnapshotPolicyId"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	FileSystemType       string           `position:"Query" name:"FileSystemType"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// DescribeAutoSnapshotPoliciesResponse is the response struct for api DescribeAutoSnapshotPolicies
+type DescribeAutoSnapshotPoliciesResponse struct {
+	*responses.BaseResponse
+	RequestId            string               `json:"RequestId" xml:"RequestId"`
+	TotalCount           int                  `json:"TotalCount" xml:"TotalCount"`
+	PageSize             int                  `json:"PageSize" xml:"PageSize"`
+	PageNumber           int                  `json:"PageNumber" xml:"PageNumber"`
+	AutoSnapshotPolicies AutoSnapshotPolicies `json:"AutoSnapshotPolicies" xml:"AutoSnapshotPolicies"`
+}
+
+// CreateDescribeAutoSnapshotPoliciesRequest creates a request to invoke DescribeAutoSnapshotPolicies API
+func CreateDescribeAutoSnapshotPoliciesRequest() (request *DescribeAutoSnapshotPoliciesRequest) {
+	request = &DescribeAutoSnapshotPoliciesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "DescribeAutoSnapshotPolicies", "nas", "openAPI")
+	return
+}
+
+// CreateDescribeAutoSnapshotPoliciesResponse creates a response to parse from DescribeAutoSnapshotPolicies response
+func CreateDescribeAutoSnapshotPoliciesResponse() (response *DescribeAutoSnapshotPoliciesResponse) {
+	response = &DescribeAutoSnapshotPoliciesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 12 - 42
services/nas/describe_file_systems.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,51 +76,21 @@ func (client *Client) DescribeFileSystemsWithCallback(request *DescribeFileSyste
 // DescribeFileSystemsRequest is the request struct for api DescribeFileSystems
 type DescribeFileSystemsRequest struct {
 	*requests.RpcRequest
-	FileSystemId string           `position:"Query" name:"FileSystemId"`
-	PageSize     requests.Integer `position:"Query" name:"PageSize"`
-	PageNumber   requests.Integer `position:"Query" name:"PageNumber"`
+	VpcId          string           `position:"Query" name:"VpcId"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	FileSystemType string           `position:"Query" name:"FileSystemType"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
+	FileSystemId   string           `position:"Query" name:"FileSystemId"`
 }
 
 // DescribeFileSystemsResponse is the response struct for api DescribeFileSystems
 type DescribeFileSystemsResponse struct {
 	*responses.BaseResponse
-	RequestId   string                          `json:"RequestId" xml:"RequestId"`
-	TotalCount  int                             `json:"TotalCount" xml:"TotalCount"`
-	PageSize    int                             `json:"PageSize" xml:"PageSize"`
-	PageNumber  int                             `json:"PageNumber" xml:"PageNumber"`
-	FileSystems DescribeFileSystemsFileSystems0 `json:"FileSystems" xml:"FileSystems"`
-}
-
-type DescribeFileSystemsFileSystems0 struct {
-	FileSystem []DescribeFileSystemsFileSystem1 `json:"FileSystem" xml:"FileSystem"`
-}
-
-type DescribeFileSystemsFileSystem1 struct {
-	FileSystemId string                           `json:"FileSystemId" xml:"FileSystemId"`
-	Destription  string                           `json:"Destription" xml:"Destription"`
-	CreateTime   string                           `json:"CreateTime" xml:"CreateTime"`
-	RegionId     string                           `json:"RegionId" xml:"RegionId"`
-	ProtocolType string                           `json:"ProtocolType" xml:"ProtocolType"`
-	StorageType  string                           `json:"StorageType" xml:"StorageType"`
-	MeteredSize  int64                            `json:"MeteredSize" xml:"MeteredSize"`
-	MountTargets DescribeFileSystemsMountTargets1 `json:"MountTargets" xml:"MountTargets"`
-	Packages     DescribeFileSystemsPackages1     `json:"Packages" xml:"Packages"`
-}
-
-type DescribeFileSystemsMountTargets1 struct {
-	MountTarget []DescribeFileSystemsMountTarget2 `json:"MountTarget" xml:"MountTarget"`
-}
-
-type DescribeFileSystemsMountTarget2 struct {
-	MountTargetDomain string `json:"MountTargetDomain" xml:"MountTargetDomain"`
-}
-
-type DescribeFileSystemsPackages1 struct {
-	Package []DescribeFileSystemsPackage2 `json:"Package" xml:"Package"`
-}
-
-type DescribeFileSystemsPackage2 struct {
-	PackageId string `json:"PackageId" xml:"PackageId"`
+	RequestId   string      `json:"RequestId" xml:"RequestId"`
+	TotalCount  int         `json:"TotalCount" xml:"TotalCount"`
+	PageSize    int         `json:"PageSize" xml:"PageSize"`
+	PageNumber  int         `json:"PageNumber" xml:"PageNumber"`
+	FileSystems FileSystems `json:"FileSystems" xml:"FileSystems"`
 }
 
 // CreateDescribeFileSystemsRequest creates a request to invoke DescribeFileSystems API

+ 104 - 0
services/nas/describe_ldap_config.go

@@ -0,0 +1,104 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeLDAPConfig invokes the nas.DescribeLDAPConfig API synchronously
+// api document: https://help.aliyun.com/api/nas/describeldapconfig.html
+func (client *Client) DescribeLDAPConfig(request *DescribeLDAPConfigRequest) (response *DescribeLDAPConfigResponse, err error) {
+	response = CreateDescribeLDAPConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeLDAPConfigWithChan invokes the nas.DescribeLDAPConfig API asynchronously
+// api document: https://help.aliyun.com/api/nas/describeldapconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLDAPConfigWithChan(request *DescribeLDAPConfigRequest) (<-chan *DescribeLDAPConfigResponse, <-chan error) {
+	responseChan := make(chan *DescribeLDAPConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeLDAPConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeLDAPConfigWithCallback invokes the nas.DescribeLDAPConfig API asynchronously
+// api document: https://help.aliyun.com/api/nas/describeldapconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLDAPConfigWithCallback(request *DescribeLDAPConfigRequest, callback func(response *DescribeLDAPConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeLDAPConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeLDAPConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeLDAPConfigRequest is the request struct for api DescribeLDAPConfig
+type DescribeLDAPConfigRequest struct {
+	*requests.RpcRequest
+	FileSystemId string `position:"Query" name:"FileSystemId"`
+}
+
+// DescribeLDAPConfigResponse is the response struct for api DescribeLDAPConfig
+type DescribeLDAPConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Ldap      Ldap   `json:"Ldap" xml:"Ldap"`
+}
+
+// CreateDescribeLDAPConfigRequest creates a request to invoke DescribeLDAPConfig API
+func CreateDescribeLDAPConfigRequest() (request *DescribeLDAPConfigRequest) {
+	request = &DescribeLDAPConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "DescribeLDAPConfig", "nas", "openAPI")
+	return
+}
+
+// CreateDescribeLDAPConfigResponse creates a response to parse from DescribeLDAPConfig response
+func CreateDescribeLDAPConfigResponse() (response *DescribeLDAPConfigResponse) {
+	response = &DescribeLDAPConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 8 - 21
services/nas/describe_mount_targets.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,33 +76,20 @@ func (client *Client) DescribeMountTargetsWithCallback(request *DescribeMountTar
 // DescribeMountTargetsRequest is the request struct for api DescribeMountTargets
 type DescribeMountTargetsRequest struct {
 	*requests.RpcRequest
-	FileSystemId      string           `position:"Query" name:"FileSystemId"`
 	MountTargetDomain string           `position:"Query" name:"MountTargetDomain"`
 	PageSize          requests.Integer `position:"Query" name:"PageSize"`
 	PageNumber        requests.Integer `position:"Query" name:"PageNumber"`
+	FileSystemId      string           `position:"Query" name:"FileSystemId"`
 }
 
 // DescribeMountTargetsResponse is the response struct for api DescribeMountTargets
 type DescribeMountTargetsResponse struct {
 	*responses.BaseResponse
-	RequestId    string                            `json:"RequestId" xml:"RequestId"`
-	TotalCount   int                               `json:"TotalCount" xml:"TotalCount"`
-	PageSize     int                               `json:"PageSize" xml:"PageSize"`
-	PageNumber   int                               `json:"PageNumber" xml:"PageNumber"`
-	MountTargets DescribeMountTargetsMountTargets0 `json:"MountTargets" xml:"MountTargets"`
-}
-
-type DescribeMountTargetsMountTargets0 struct {
-	MountTarget []DescribeMountTargetsMountTarget1 `json:"MountTarget" xml:"MountTarget"`
-}
-
-type DescribeMountTargetsMountTarget1 struct {
-	MountTargetDomain string `json:"MountTargetDomain" xml:"MountTargetDomain"`
-	NetworkType       string `json:"NetworkType" xml:"NetworkType"`
-	VpcId             string `json:"VpcId" xml:"VpcId"`
-	VswId             string `json:"VswId" xml:"VswId"`
-	AccessGroup       string `json:"AccessGroup" xml:"AccessGroup"`
-	Status            string `json:"Status" xml:"Status"`
+	RequestId    string                             `json:"RequestId" xml:"RequestId"`
+	TotalCount   int                                `json:"TotalCount" xml:"TotalCount"`
+	PageSize     int                                `json:"PageSize" xml:"PageSize"`
+	PageNumber   int                                `json:"PageNumber" xml:"PageNumber"`
+	MountTargets MountTargetsInDescribeMountTargets `json:"MountTargets" xml:"MountTargets"`
 }
 
 // CreateDescribeMountTargetsRequest creates a request to invoke DescribeMountTargets API

+ 10 - 19
services/nas/describe_regions.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,28 +76,19 @@ func (client *Client) DescribeRegionsWithCallback(request *DescribeRegionsReques
 // DescribeRegionsRequest is the request struct for api DescribeRegions
 type DescribeRegionsRequest struct {
 	*requests.RpcRequest
-	PageSize   requests.Integer `position:"Query" name:"PageSize"`
-	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	FileSystemType string           `position:"Query" name:"FileSystemType"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
 }
 
 // DescribeRegionsResponse is the response struct for api DescribeRegions
 type DescribeRegionsResponse struct {
 	*responses.BaseResponse
-	RequestId  string                  `json:"RequestId" xml:"RequestId"`
-	TotalCount int                     `json:"TotalCount" xml:"TotalCount"`
-	PageSize   int                     `json:"PageSize" xml:"PageSize"`
-	PageNumber int                     `json:"PageNumber" xml:"PageNumber"`
-	Regions    DescribeRegionsRegions0 `json:"Regions" xml:"Regions"`
-}
-
-type DescribeRegionsRegions0 struct {
-	Region []DescribeRegionsRegion1 `json:"Region" xml:"Region"`
-}
-
-type DescribeRegionsRegion1 struct {
-	RegionId       string `json:"RegionId" xml:"RegionId"`
-	LocalName      string `json:"LocalName" xml:"LocalName"`
-	RegionEndpoint string `json:"RegionEndpoint" xml:"RegionEndpoint"`
+	RequestId  string  `json:"RequestId" xml:"RequestId"`
+	TotalCount int     `json:"TotalCount" xml:"TotalCount"`
+	PageSize   int     `json:"PageSize" xml:"PageSize"`
+	PageNumber int     `json:"PageNumber" xml:"PageNumber"`
+	Regions    Regions `json:"Regions" xml:"Regions"`
 }
 
 // CreateDescribeRegionsRequest creates a request to invoke DescribeRegions API

+ 114 - 0
services/nas/describe_snapshots.go

@@ -0,0 +1,114 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeSnapshots invokes the nas.DescribeSnapshots API synchronously
+// api document: https://help.aliyun.com/api/nas/describesnapshots.html
+func (client *Client) DescribeSnapshots(request *DescribeSnapshotsRequest) (response *DescribeSnapshotsResponse, err error) {
+	response = CreateDescribeSnapshotsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSnapshotsWithChan invokes the nas.DescribeSnapshots API asynchronously
+// api document: https://help.aliyun.com/api/nas/describesnapshots.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSnapshotsWithChan(request *DescribeSnapshotsRequest) (<-chan *DescribeSnapshotsResponse, <-chan error) {
+	responseChan := make(chan *DescribeSnapshotsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSnapshots(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSnapshotsWithCallback invokes the nas.DescribeSnapshots API asynchronously
+// api document: https://help.aliyun.com/api/nas/describesnapshots.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSnapshotsWithCallback(request *DescribeSnapshotsRequest, callback func(response *DescribeSnapshotsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSnapshotsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSnapshots(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSnapshotsRequest is the request struct for api DescribeSnapshots
+type DescribeSnapshotsRequest struct {
+	*requests.RpcRequest
+	SnapshotType   string           `position:"Query" name:"SnapshotType"`
+	SnapshotIds    string           `position:"Query" name:"SnapshotIds"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	SnapshotName   string           `position:"Query" name:"SnapshotName"`
+	FileSystemType string           `position:"Query" name:"FileSystemType"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
+	FileSystemId   string           `position:"Query" name:"FileSystemId"`
+	Status         string           `position:"Query" name:"Status"`
+}
+
+// DescribeSnapshotsResponse is the response struct for api DescribeSnapshots
+type DescribeSnapshotsResponse struct {
+	*responses.BaseResponse
+	RequestId  string    `json:"RequestId" xml:"RequestId"`
+	TotalCount int       `json:"TotalCount" xml:"TotalCount"`
+	PageSize   int       `json:"PageSize" xml:"PageSize"`
+	PageNumber int       `json:"PageNumber" xml:"PageNumber"`
+	Snapshots  Snapshots `json:"Snapshots" xml:"Snapshots"`
+}
+
+// CreateDescribeSnapshotsRequest creates a request to invoke DescribeSnapshots API
+func CreateDescribeSnapshotsRequest() (request *DescribeSnapshotsRequest) {
+	request = &DescribeSnapshotsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "DescribeSnapshots", "nas", "openAPI")
+	return
+}
+
+// CreateDescribeSnapshotsResponse creates a response to parse from DescribeSnapshots response
+func CreateDescribeSnapshotsResponse() (response *DescribeSnapshotsResponse) {
+	response = &DescribeSnapshotsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/nas/describe_tags.go

@@ -0,0 +1,116 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeTags invokes the nas.DescribeTags API synchronously
+// api document: https://help.aliyun.com/api/nas/describetags.html
+func (client *Client) DescribeTags(request *DescribeTagsRequest) (response *DescribeTagsResponse, err error) {
+	response = CreateDescribeTagsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeTagsWithChan invokes the nas.DescribeTags API asynchronously
+// api document: https://help.aliyun.com/api/nas/describetags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTagsWithChan(request *DescribeTagsRequest) (<-chan *DescribeTagsResponse, <-chan error) {
+	responseChan := make(chan *DescribeTagsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeTags(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeTagsWithCallback invokes the nas.DescribeTags API asynchronously
+// api document: https://help.aliyun.com/api/nas/describetags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTagsWithCallback(request *DescribeTagsRequest, callback func(response *DescribeTagsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeTagsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeTags(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeTagsRequest is the request struct for api DescribeTags
+type DescribeTagsRequest struct {
+	*requests.RpcRequest
+	PageSize     requests.Integer   `position:"Query" name:"PageSize"`
+	Tag          *[]DescribeTagsTag `position:"Query" name:"Tag"  type:"Repeated"`
+	PageNumber   requests.Integer   `position:"Query" name:"PageNumber"`
+	FileSystemId string             `position:"Query" name:"FileSystemId"`
+}
+
+// DescribeTagsTag is a repeated param struct in DescribeTagsRequest
+type DescribeTagsTag struct {
+	Value string `name:"Value"`
+	Key   string `name:"Key"`
+}
+
+// DescribeTagsResponse is the response struct for api DescribeTags
+type DescribeTagsResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	Tags       Tags   `json:"Tags" xml:"Tags"`
+}
+
+// CreateDescribeTagsRequest creates a request to invoke DescribeTags API
+func CreateDescribeTagsRequest() (request *DescribeTagsRequest) {
+	request = &DescribeTagsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "DescribeTags", "nas", "openAPI")
+	return
+}
+
+// CreateDescribeTagsResponse creates a response to parse from DescribeTags response
+func CreateDescribeTagsResponse() (response *DescribeTagsResponse) {
+	response = &DescribeTagsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 4 - 18
services/nas/describe_zones.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -81,22 +81,8 @@ type DescribeZonesRequest struct {
 // DescribeZonesResponse is the response struct for api DescribeZones
 type DescribeZonesResponse struct {
 	*responses.BaseResponse
-	RequestId string              `json:"RequestId" xml:"RequestId"`
-	Zones     DescribeZonesZones0 `json:"Zones" xml:"Zones"`
-}
-
-type DescribeZonesZones0 struct {
-	Zone []DescribeZonesZone1 `json:"Zone" xml:"Zone"`
-}
-
-type DescribeZonesZone1 struct {
-	ZoneId      string                `json:"ZoneId" xml:"ZoneId"`
-	Capacity    DescribeZonesProtocol `json:"Capacity" xml:"Capacity"`
-	Performance DescribeZonesProtocol `json:"Performance" xml:"Performance"`
-}
-
-type DescribeZonesProtocol struct {
-	Protocol []string `json:"Protocol" xml:"Protocol"`
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Zones     Zones  `json:"Zones" xml:"Zones"`
 }
 
 // CreateDescribeZonesRequest creates a request to invoke DescribeZones API

+ 23 - 0
services/nas/endpoint.go

@@ -0,0 +1,23 @@
+package nas
+
+// EndpointMap Endpoint Data
+var EndpointMap map[string]string
+
+// EndpointType regional or central
+var EndpointType = "regional"
+
+// GetEndpointMap Get Endpoint Data Map
+func GetEndpointMap() map[string]string {
+	if EndpointMap == nil {
+		EndpointMap = map[string]string{
+			"me-east-1":  "nas.ap-northeast-1.aliyuncs.com",
+			"cn-chengdu": "nas.aliyuncs.com",
+		}
+	}
+	return EndpointMap
+}
+
+// GetEndpointType Get Endpoint Type Value
+func GetEndpointType() string {
+	return EndpointType
+}

+ 4 - 3
services/nas/modify_access_group.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,8 +76,9 @@ func (client *Client) ModifyAccessGroupWithCallback(request *ModifyAccessGroupRe
 // ModifyAccessGroupRequest is the request struct for api ModifyAccessGroup
 type ModifyAccessGroupRequest struct {
 	*requests.RpcRequest
-	AccessGroupName string `position:"Query" name:"AccessGroupName"`
 	Description     string `position:"Query" name:"Description"`
+	AccessGroupName string `position:"Query" name:"AccessGroupName"`
+	FileSystemType  string `position:"Query" name:"FileSystemType"`
 }
 
 // ModifyAccessGroupResponse is the response struct for api ModifyAccessGroup

+ 6 - 5
services/nas/modify_access_rule.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,12 +76,13 @@ func (client *Client) ModifyAccessRuleWithCallback(request *ModifyAccessRuleRequ
 // ModifyAccessRuleRequest is the request struct for api ModifyAccessRule
 type ModifyAccessRuleRequest struct {
 	*requests.RpcRequest
-	AccessGroupName string           `position:"Query" name:"AccessGroupName"`
-	AccessRuleId    string           `position:"Query" name:"AccessRuleId"`
-	SourceCidrIp    string           `position:"Query" name:"SourceCidrIp"`
 	RWAccessType    string           `position:"Query" name:"RWAccessType"`
+	SourceCidrIp    string           `position:"Query" name:"SourceCidrIp"`
 	UserAccessType  string           `position:"Query" name:"UserAccessType"`
 	Priority        requests.Integer `position:"Query" name:"Priority"`
+	AccessGroupName string           `position:"Query" name:"AccessGroupName"`
+	AccessRuleId    string           `position:"Query" name:"AccessRuleId"`
+	FileSystemType  string           `position:"Query" name:"FileSystemType"`
 }
 
 // ModifyAccessRuleResponse is the response struct for api ModifyAccessRule

+ 107 - 0
services/nas/modify_auto_snapshot_policy.go

@@ -0,0 +1,107 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyAutoSnapshotPolicy invokes the nas.ModifyAutoSnapshotPolicy API synchronously
+// api document: https://help.aliyun.com/api/nas/modifyautosnapshotpolicy.html
+func (client *Client) ModifyAutoSnapshotPolicy(request *ModifyAutoSnapshotPolicyRequest) (response *ModifyAutoSnapshotPolicyResponse, err error) {
+	response = CreateModifyAutoSnapshotPolicyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyAutoSnapshotPolicyWithChan invokes the nas.ModifyAutoSnapshotPolicy API asynchronously
+// api document: https://help.aliyun.com/api/nas/modifyautosnapshotpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyAutoSnapshotPolicyWithChan(request *ModifyAutoSnapshotPolicyRequest) (<-chan *ModifyAutoSnapshotPolicyResponse, <-chan error) {
+	responseChan := make(chan *ModifyAutoSnapshotPolicyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyAutoSnapshotPolicy(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyAutoSnapshotPolicyWithCallback invokes the nas.ModifyAutoSnapshotPolicy API asynchronously
+// api document: https://help.aliyun.com/api/nas/modifyautosnapshotpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyAutoSnapshotPolicyWithCallback(request *ModifyAutoSnapshotPolicyRequest, callback func(response *ModifyAutoSnapshotPolicyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyAutoSnapshotPolicyResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyAutoSnapshotPolicy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyAutoSnapshotPolicyRequest is the request struct for api ModifyAutoSnapshotPolicy
+type ModifyAutoSnapshotPolicyRequest struct {
+	*requests.RpcRequest
+	AutoSnapshotPolicyId   string           `position:"Query" name:"AutoSnapshotPolicyId"`
+	RetentionDays          requests.Integer `position:"Query" name:"RetentionDays"`
+	TimePoints             string           `position:"Query" name:"TimePoints"`
+	RepeatWeekdays         string           `position:"Query" name:"RepeatWeekdays"`
+	AutoSnapshotPolicyName string           `position:"Query" name:"AutoSnapshotPolicyName"`
+}
+
+// ModifyAutoSnapshotPolicyResponse is the response struct for api ModifyAutoSnapshotPolicy
+type ModifyAutoSnapshotPolicyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyAutoSnapshotPolicyRequest creates a request to invoke ModifyAutoSnapshotPolicy API
+func CreateModifyAutoSnapshotPolicyRequest() (request *ModifyAutoSnapshotPolicyRequest) {
+	request = &ModifyAutoSnapshotPolicyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "ModifyAutoSnapshotPolicy", "nas", "openAPI")
+	return
+}
+
+// CreateModifyAutoSnapshotPolicyResponse creates a response to parse from ModifyAutoSnapshotPolicy response
+func CreateModifyAutoSnapshotPolicyResponse() (response *ModifyAutoSnapshotPolicyResponse) {
+	response = &ModifyAutoSnapshotPolicyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 3
services/nas/modify_file_system.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,8 +76,8 @@ func (client *Client) ModifyFileSystemWithCallback(request *ModifyFileSystemRequ
 // ModifyFileSystemRequest is the request struct for api ModifyFileSystem
 type ModifyFileSystemRequest struct {
 	*requests.RpcRequest
-	FileSystemId string `position:"Query" name:"FileSystemId"`
 	Description  string `position:"Query" name:"Description"`
+	FileSystemId string `position:"Query" name:"FileSystemId"`
 }
 
 // ModifyFileSystemResponse is the response struct for api ModifyFileSystem

+ 106 - 0
services/nas/modify_ldap_config.go

@@ -0,0 +1,106 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyLDAPConfig invokes the nas.ModifyLDAPConfig API synchronously
+// api document: https://help.aliyun.com/api/nas/modifyldapconfig.html
+func (client *Client) ModifyLDAPConfig(request *ModifyLDAPConfigRequest) (response *ModifyLDAPConfigResponse, err error) {
+	response = CreateModifyLDAPConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyLDAPConfigWithChan invokes the nas.ModifyLDAPConfig API asynchronously
+// api document: https://help.aliyun.com/api/nas/modifyldapconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyLDAPConfigWithChan(request *ModifyLDAPConfigRequest) (<-chan *ModifyLDAPConfigResponse, <-chan error) {
+	responseChan := make(chan *ModifyLDAPConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyLDAPConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyLDAPConfigWithCallback invokes the nas.ModifyLDAPConfig API asynchronously
+// api document: https://help.aliyun.com/api/nas/modifyldapconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyLDAPConfigWithCallback(request *ModifyLDAPConfigRequest, callback func(response *ModifyLDAPConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyLDAPConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyLDAPConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyLDAPConfigRequest is the request struct for api ModifyLDAPConfig
+type ModifyLDAPConfigRequest struct {
+	*requests.RpcRequest
+	BindDN       string `position:"Query" name:"BindDN"`
+	SearchBase   string `position:"Query" name:"SearchBase"`
+	URI          string `position:"Query" name:"URI"`
+	FileSystemId string `position:"Query" name:"FileSystemId"`
+}
+
+// ModifyLDAPConfigResponse is the response struct for api ModifyLDAPConfig
+type ModifyLDAPConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyLDAPConfigRequest creates a request to invoke ModifyLDAPConfig API
+func CreateModifyLDAPConfigRequest() (request *ModifyLDAPConfigRequest) {
+	request = &ModifyLDAPConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "ModifyLDAPConfig", "nas", "openAPI")
+	return
+}
+
+// CreateModifyLDAPConfigResponse creates a response to parse from ModifyLDAPConfig response
+func CreateModifyLDAPConfigResponse() (response *ModifyLDAPConfigResponse) {
+	response = &ModifyLDAPConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 3
services/nas/modify_mount_target.go

@@ -1,3 +1,5 @@
+package nas
+
 //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
@@ -13,8 +15,6 @@
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-package nas
-
 import (
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
@@ -76,9 +76,9 @@ func (client *Client) ModifyMountTargetWithCallback(request *ModifyMountTargetRe
 // ModifyMountTargetRequest is the request struct for api ModifyMountTarget
 type ModifyMountTargetRequest struct {
 	*requests.RpcRequest
-	FileSystemId      string `position:"Query" name:"FileSystemId"`
 	MountTargetDomain string `position:"Query" name:"MountTargetDomain"`
 	AccessGroupName   string `position:"Query" name:"AccessGroupName"`
+	FileSystemId      string `position:"Query" name:"FileSystemId"`
 	Status            string `position:"Query" name:"Status"`
 }
 

+ 110 - 0
services/nas/remove_tags.go

@@ -0,0 +1,110 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// RemoveTags invokes the nas.RemoveTags API synchronously
+// api document: https://help.aliyun.com/api/nas/removetags.html
+func (client *Client) RemoveTags(request *RemoveTagsRequest) (response *RemoveTagsResponse, err error) {
+	response = CreateRemoveTagsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RemoveTagsWithChan invokes the nas.RemoveTags API asynchronously
+// api document: https://help.aliyun.com/api/nas/removetags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RemoveTagsWithChan(request *RemoveTagsRequest) (<-chan *RemoveTagsResponse, <-chan error) {
+	responseChan := make(chan *RemoveTagsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RemoveTags(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RemoveTagsWithCallback invokes the nas.RemoveTags API asynchronously
+// api document: https://help.aliyun.com/api/nas/removetags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RemoveTagsWithCallback(request *RemoveTagsRequest, callback func(response *RemoveTagsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RemoveTagsResponse
+		var err error
+		defer close(result)
+		response, err = client.RemoveTags(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RemoveTagsRequest is the request struct for api RemoveTags
+type RemoveTagsRequest struct {
+	*requests.RpcRequest
+	Tag          *[]RemoveTagsTag `position:"Query" name:"Tag"  type:"Repeated"`
+	FileSystemId string           `position:"Query" name:"FileSystemId"`
+}
+
+// RemoveTagsTag is a repeated param struct in RemoveTagsRequest
+type RemoveTagsTag struct {
+	Value string `name:"Value"`
+	Key   string `name:"Key"`
+}
+
+// RemoveTagsResponse is the response struct for api RemoveTags
+type RemoveTagsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateRemoveTagsRequest creates a request to invoke RemoveTags API
+func CreateRemoveTagsRequest() (request *RemoveTagsRequest) {
+	request = &RemoveTagsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "RemoveTags", "nas", "openAPI")
+	return
+}
+
+// CreateRemoveTagsResponse creates a response to parse from RemoveTags response
+func CreateRemoveTagsResponse() (response *RemoveTagsResponse) {
+	response = &RemoveTagsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/nas/reset_file_system.go

@@ -0,0 +1,104 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ResetFileSystem invokes the nas.ResetFileSystem API synchronously
+// api document: https://help.aliyun.com/api/nas/resetfilesystem.html
+func (client *Client) ResetFileSystem(request *ResetFileSystemRequest) (response *ResetFileSystemResponse, err error) {
+	response = CreateResetFileSystemResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ResetFileSystemWithChan invokes the nas.ResetFileSystem API asynchronously
+// api document: https://help.aliyun.com/api/nas/resetfilesystem.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ResetFileSystemWithChan(request *ResetFileSystemRequest) (<-chan *ResetFileSystemResponse, <-chan error) {
+	responseChan := make(chan *ResetFileSystemResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ResetFileSystem(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ResetFileSystemWithCallback invokes the nas.ResetFileSystem API asynchronously
+// api document: https://help.aliyun.com/api/nas/resetfilesystem.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ResetFileSystemWithCallback(request *ResetFileSystemRequest, callback func(response *ResetFileSystemResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ResetFileSystemResponse
+		var err error
+		defer close(result)
+		response, err = client.ResetFileSystem(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ResetFileSystemRequest is the request struct for api ResetFileSystem
+type ResetFileSystemRequest struct {
+	*requests.RpcRequest
+	SnapshotId   string `position:"Query" name:"snapshotId"`
+	FileSystemId string `position:"Query" name:"FileSystemId"`
+}
+
+// ResetFileSystemResponse is the response struct for api ResetFileSystem
+type ResetFileSystemResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateResetFileSystemRequest creates a request to invoke ResetFileSystem API
+func CreateResetFileSystemRequest() (request *ResetFileSystemRequest) {
+	request = &ResetFileSystemRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("NAS", "2017-06-26", "ResetFileSystem", "nas", "openAPI")
+	return
+}
+
+// CreateResetFileSystemResponse creates a response to parse from ResetFileSystem response
+func CreateResetFileSystemResponse() (response *ResetFileSystemResponse) {
+	response = &ResetFileSystemResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 25 - 0
services/nas/struct_access_group.go

@@ -0,0 +1,25 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// AccessGroup is a nested struct in nas response
+type AccessGroup struct {
+	AccessGroupName  string `json:"AccessGroupName" xml:"AccessGroupName"`
+	AccessGroupType  string `json:"AccessGroupType" xml:"AccessGroupType"`
+	RuleCount        int    `json:"RuleCount" xml:"RuleCount"`
+	MountTargetCount int    `json:"MountTargetCount" xml:"MountTargetCount"`
+	Description      string `json:"Description" xml:"Description"`
+}

+ 21 - 0
services/nas/struct_access_groups.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// AccessGroups is a nested struct in nas response
+type AccessGroups struct {
+	AccessGroup []AccessGroup `json:"AccessGroup" xml:"AccessGroup"`
+}

+ 25 - 0
services/nas/struct_access_rule.go

@@ -0,0 +1,25 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// AccessRule is a nested struct in nas response
+type AccessRule struct {
+	SourceCidrIp string `json:"SourceCidrIp" xml:"SourceCidrIp"`
+	Priority     int    `json:"Priority" xml:"Priority"`
+	AccessRuleId string `json:"AccessRuleId" xml:"AccessRuleId"`
+	RWAccess     string `json:"RWAccess" xml:"RWAccess"`
+	UserAccess   string `json:"UserAccess" xml:"UserAccess"`
+}

+ 21 - 0
services/nas/struct_access_rules.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// AccessRules is a nested struct in nas response
+type AccessRules struct {
+	AccessRule []AccessRule `json:"AccessRule" xml:"AccessRule"`
+}

+ 21 - 0
services/nas/struct_auto_snapshot_policies.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// AutoSnapshotPolicies is a nested struct in nas response
+type AutoSnapshotPolicies struct {
+	AutoSnapshotPolicy []AutoSnapshotPolicy `json:"AutoSnapshotPolicy" xml:"AutoSnapshotPolicy"`
+}

+ 29 - 0
services/nas/struct_auto_snapshot_policy.go

@@ -0,0 +1,29 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// AutoSnapshotPolicy is a nested struct in nas response
+type AutoSnapshotPolicy struct {
+	AutoSnapshotPolicyId   string `json:"AutoSnapshotPolicyId" xml:"AutoSnapshotPolicyId"`
+	AutoSnapshotPolicyName string `json:"AutoSnapshotPolicyName" xml:"AutoSnapshotPolicyName"`
+	CreateTime             string `json:"CreateTime" xml:"CreateTime"`
+	FileSystemNums         int    `json:"FileSystemNums" xml:"FileSystemNums"`
+	RegionId               string `json:"RegionId" xml:"RegionId"`
+	RepeatWeekdays         string `json:"RepeatWeekdays" xml:"RepeatWeekdays"`
+	RetentionDays          int    `json:"RetentionDays" xml:"RetentionDays"`
+	Status                 string `json:"Status" xml:"Status"`
+	TimePoints             string `json:"TimePoints" xml:"TimePoints"`
+}

+ 21 - 0
services/nas/struct_capacity.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Capacity is a nested struct in nas response
+type Capacity struct {
+	Protocol []string `json:"Protocol" xml:"Protocol"`
+}

+ 34 - 0
services/nas/struct_file_system.go

@@ -0,0 +1,34 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// FileSystem is a nested struct in nas response
+type FileSystem struct {
+	FileSystemId string                            `json:"FileSystemId" xml:"FileSystemId"`
+	Description  string                            `json:"Description" xml:"Description"`
+	CreateTime   string                            `json:"CreateTime" xml:"CreateTime"`
+	RegionId     string                            `json:"RegionId" xml:"RegionId"`
+	ProtocolType string                            `json:"ProtocolType" xml:"ProtocolType"`
+	StorageType  string                            `json:"StorageType" xml:"StorageType"`
+	MeteredSize  int64                             `json:"MeteredSize" xml:"MeteredSize"`
+	ZoneId       string                            `json:"ZoneId" xml:"ZoneId"`
+	Bandwidth    int64                             `json:"Bandwidth" xml:"Bandwidth"`
+	Capacity     int64                             `json:"Capacity" xml:"Capacity"`
+	Status       string                            `json:"Status" xml:"Status"`
+	Ldap         Ldap                              `json:"Ldap" xml:"Ldap"`
+	MountTargets MountTargetsInDescribeFileSystems `json:"MountTargets" xml:"MountTargets"`
+	Packages     Packages                          `json:"Packages" xml:"Packages"`
+}

+ 21 - 0
services/nas/struct_file_system_ids.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// FileSystemIds is a nested struct in nas response
+type FileSystemIds struct {
+	FileSystemId []string `json:"FileSystemId" xml:"FileSystemId"`
+}

+ 21 - 0
services/nas/struct_file_systems.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// FileSystems is a nested struct in nas response
+type FileSystems struct {
+	FileSystem []FileSystem `json:"FileSystem" xml:"FileSystem"`
+}

+ 23 - 0
services/nas/struct_ldap.go

@@ -0,0 +1,23 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Ldap is a nested struct in nas response
+type Ldap struct {
+	SearchBase string `json:"SearchBase" xml:"SearchBase"`
+	BindDN     string `json:"BindDN" xml:"BindDN"`
+	URI        string `json:"URI" xml:"URI"`
+}

+ 27 - 0
services/nas/struct_mount_target.go

@@ -0,0 +1,27 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// MountTarget is a nested struct in nas response
+type MountTarget struct {
+	VswId             string `json:"VswId" xml:"VswId"`
+	MountTargetDomain string `json:"MountTargetDomain" xml:"MountTargetDomain"`
+	AccessGroup       string `json:"AccessGroup" xml:"AccessGroup"`
+	AccessGroupName   string `json:"AccessGroupName" xml:"AccessGroupName"`
+	NetworkType       string `json:"NetworkType" xml:"NetworkType"`
+	VpcId             string `json:"VpcId" xml:"VpcId"`
+	Status            string `json:"Status" xml:"Status"`
+}

+ 21 - 0
services/nas/struct_mount_targets_in_describe_file_systems.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// MountTargetsInDescribeFileSystems is a nested struct in nas response
+type MountTargetsInDescribeFileSystems struct {
+	MountTarget []MountTarget `json:"MountTarget" xml:"MountTarget"`
+}

+ 21 - 0
services/nas/struct_mount_targets_in_describe_mount_targets.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// MountTargetsInDescribeMountTargets is a nested struct in nas response
+type MountTargetsInDescribeMountTargets struct {
+	MountTarget []MountTarget `json:"MountTarget" xml:"MountTarget"`
+}

+ 21 - 0
services/nas/struct_package.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Package is a nested struct in nas response
+type Package struct {
+	PackageId string `json:"PackageId" xml:"PackageId"`
+}

+ 21 - 0
services/nas/struct_packages.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Packages is a nested struct in nas response
+type Packages struct {
+	Package []Package `json:"Package" xml:"Package"`
+}

+ 21 - 0
services/nas/struct_performance.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Performance is a nested struct in nas response
+type Performance struct {
+	Protocol []string `json:"Protocol" xml:"Protocol"`
+}

+ 23 - 0
services/nas/struct_region.go

@@ -0,0 +1,23 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Region is a nested struct in nas response
+type Region struct {
+	RegionId       string `json:"RegionId" xml:"RegionId"`
+	LocalName      string `json:"LocalName" xml:"LocalName"`
+	RegionEndpoint string `json:"RegionEndpoint" xml:"RegionEndpoint"`
+}

+ 21 - 0
services/nas/struct_regions.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Regions is a nested struct in nas response
+type Regions struct {
+	Region []Region `json:"Region" xml:"Region"`
+}

+ 30 - 0
services/nas/struct_snapshot.go

@@ -0,0 +1,30 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Snapshot is a nested struct in nas response
+type Snapshot struct {
+	CreateTime           string `json:"CreateTime" xml:"CreateTime"`
+	Description          string `json:"Description" xml:"Description"`
+	Progress             string `json:"Progress" xml:"Progress"`
+	RemainTime           int    `json:"RemainTime" xml:"RemainTime"`
+	RetentionDays        int    `json:"RetentionDays" xml:"RetentionDays"`
+	SnapshotId           string `json:"SnapshotId" xml:"SnapshotId"`
+	SnapshotName         string `json:"SnapshotName" xml:"SnapshotName"`
+	SourceFileSystemId   string `json:"SourceFileSystemId" xml:"SourceFileSystemId"`
+	SourceFileSystemSize int64  `json:"SourceFileSystemSize" xml:"SourceFileSystemSize"`
+	Status               string `json:"Status" xml:"Status"`
+}

+ 21 - 0
services/nas/struct_snapshots.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Snapshots is a nested struct in nas response
+type Snapshots struct {
+	Snapshot []Snapshot `json:"Snapshot" xml:"Snapshot"`
+}

+ 23 - 0
services/nas/struct_tag.go

@@ -0,0 +1,23 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Tag is a nested struct in nas response
+type Tag struct {
+	Key           string        `json:"Key" xml:"Key"`
+	Value         string        `json:"Value" xml:"Value"`
+	FileSystemIds FileSystemIds `json:"FileSystemIds" xml:"FileSystemIds"`
+}

+ 21 - 0
services/nas/struct_tags.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Tags is a nested struct in nas response
+type Tags struct {
+	Tag []Tag `json:"Tag" xml:"Tag"`
+}

+ 23 - 0
services/nas/struct_zone.go

@@ -0,0 +1,23 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Zone is a nested struct in nas response
+type Zone struct {
+	ZoneId      string      `json:"ZoneId" xml:"ZoneId"`
+	Capacity    Capacity    `json:"Capacity" xml:"Capacity"`
+	Performance Performance `json:"Performance" xml:"Performance"`
+}

+ 21 - 0
services/nas/struct_zones.go

@@ -0,0 +1,21 @@
+package nas
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Zones is a nested struct in nas response
+type Zones struct {
+	Zone []Zone `json:"Zone" xml:"Zone"`
+}