wenzuochao 6 سال پیش
والد
کامیت
bf13333857

+ 109 - 0
services/nas/add_tags.go

@@ -0,0 +1,109 @@
+//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 nas
+
+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
+	FileSystemId string        `position:"Query" name:"FileSystemId"`
+	Tag          *[]AddTagsTag `position:"Query" name:"Tag" type:"Repeated"`
+}
+
+type AddTagsTag struct {
+	Key   string `name:"Key"`
+	Value string `name:"Value"`
+}
+
+// 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 @@
+//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 nas
+
+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 @@
+//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 nas
+
+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
+}

+ 1 - 0
services/nas/create_access_group.go

@@ -79,6 +79,7 @@ type CreateAccessGroupRequest struct {
 	AccessGroupName string `position:"Query" name:"AccessGroupName"`
 	AccessGroupType string `position:"Query" name:"AccessGroupType"`
 	Description     string `position:"Query" name:"Description"`
+	FileSystemType  string `position:"Query" name:"FileSystemType"`
 }
 
 // CreateAccessGroupResponse is the response struct for api CreateAccessGroup

+ 1 - 0
services/nas/create_access_rule.go

@@ -81,6 +81,7 @@ type CreateAccessRuleRequest struct {
 	RWAccessType    string           `position:"Query" name:"RWAccessType"`
 	UserAccessType  string           `position:"Query" name:"UserAccessType"`
 	Priority        requests.Integer `position:"Query" name:"Priority"`
+	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 @@
+//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 nas
+
+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
+	RepeatWeekdays         string           `position:"Query" name:"RepeatWeekdays"`
+	TimePoints             string           `position:"Query" name:"TimePoints"`
+	RetentionDays          requests.Integer `position:"Query" name:"RetentionDays"`
+	AutoSnapshotPolicyName string           `position:"Query" name:"AutoSnapshotPolicyName"`
+	FileSystemType         string           `position:"Query" name:"FileSystemType"`
+}
+
+// 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
+}

+ 1 - 0
services/nas/create_file_system.go

@@ -77,6 +77,7 @@ func (client *Client) CreateFileSystemWithCallback(request *CreateFileSystemRequ
 type CreateFileSystemRequest struct {
 	*requests.RpcRequest
 	StorageType  string `position:"Query" name:"StorageType"`
+	ZoneId       string `position:"Query" name:"ZoneId"`
 	ProtocolType string `position:"Query" name:"ProtocolType"`
 	Description  string `position:"Query" name:"Description"`
 }

+ 106 - 0
services/nas/create_ldap_config.go

@@ -0,0 +1,106 @@
+//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 nas
+
+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
+	FileSystemId string `position:"Query" name:"FileSystemId"`
+	URI          string `position:"Query" name:"URI"`
+	BindDN       string `position:"Query" name:"BindDN"`
+	SearchBase   string `position:"Query" name:"SearchBase"`
+}
+
+// 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
+}

+ 107 - 0
services/nas/create_snapshot.go

@@ -0,0 +1,107 @@
+//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 nas
+
+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
+	FileSystemId  string           `position:"Query" name:"FileSystemId"`
+	SnapshotName  string           `position:"Query" name:"SnapshotName"`
+	Description   string           `position:"Query" name:"Description"`
+	RetentionDays requests.Integer `position:"Query" name:"RetentionDays"`
+}
+
+// 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
+}

+ 1 - 0
services/nas/delete_access_group.go

@@ -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

+ 1 - 0
services/nas/delete_access_rule.go

@@ -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 @@
+//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 nas
+
+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
+}

+ 103 - 0
services/nas/delete_ldap_config.go

@@ -0,0 +1,103 @@
+//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 nas
+
+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
+}

+ 103 - 0
services/nas/delete_snapshot.go

@@ -0,0 +1,103 @@
+//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 nas
+
+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
+}

+ 1 - 0
services/nas/describe_access_groups.go

@@ -79,6 +79,7 @@ type DescribeAccessGroupsRequest struct {
 	AccessGroupName string           `position:"Query" name:"AccessGroupName"`
 	PageSize        requests.Integer `position:"Query" name:"PageSize"`
 	PageNumber      requests.Integer `position:"Query" name:"PageNumber"`
+	FileSystemType  string           `position:"Query" name:"FileSystemType"`
 }
 
 // DescribeAccessGroupsResponse is the response struct for api DescribeAccessGroups

+ 1 - 0
services/nas/describe_access_rules.go

@@ -80,6 +80,7 @@ type DescribeAccessRulesRequest struct {
 	AccessRuleId    string           `position:"Query" name:"AccessRuleId"`
 	PageSize        requests.Integer `position:"Query" name:"PageSize"`
 	PageNumber      requests.Integer `position:"Query" name:"PageNumber"`
+	FileSystemType  string           `position:"Query" name:"FileSystemType"`
 }
 
 // DescribeAccessRulesResponse is the response struct for api DescribeAccessRules

+ 126 - 0
services/nas/describe_auto_snapshot_policies.go

@@ -0,0 +1,126 @@
+//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 nas
+
+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"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	FileSystemType       string           `position:"Query" name:"FileSystemType"`
+}
+
+// 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 DescribeAutoSnapshotPoliciesAutoSnapshotPolicies0 `json:"AutoSnapshotPolicies" xml:"AutoSnapshotPolicies"`
+}
+
+type DescribeAutoSnapshotPoliciesAutoSnapshotPolicies0 struct {
+	AutoSnapshotPolicy []DescribeAutoSnapshotPoliciesAutoSnapshotPolicy1 `json:"AutoSnapshotPolicy" xml:"AutoSnapshotPolicy"`
+}
+
+type DescribeAutoSnapshotPoliciesAutoSnapshotPolicy1 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"`
+}
+
+// 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
+}

+ 30 - 12
services/nas/describe_file_systems.go

@@ -76,9 +76,11 @@ 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"`
+	FileSystemId   string           `position:"Query" name:"FileSystemId"`
+	FileSystemType string           `position:"Query" name:"FileSystemType"`
+	VpcId          string           `position:"Query" name:"VpcId"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
 }
 
 // DescribeFileSystemsResponse is the response struct for api DescribeFileSystems
@@ -97,32 +99,48 @@ type DescribeFileSystemsFileSystems0 struct {
 
 type DescribeFileSystemsFileSystem1 struct {
 	FileSystemId string                           `json:"FileSystemId" xml:"FileSystemId"`
-	Destription  string                           `json:"Destription" xml:"Destription"`
+	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"`
-	MountTargets DescribeFileSystemsMountTargets1 `json:"MountTargets" xml:"MountTargets"`
-	Packages     DescribeFileSystemsPackages1     `json:"Packages" xml:"Packages"`
+	ZoneId       string                           `json:"ZoneId" xml:"ZoneId"`
+	Bandwidth    int64                            `json:"Bandwidth" xml:"Bandwidth"`
+	Capacity     int64                            `json:"Capacity" xml:"Capacity"`
+	Status       string                           `json:"Status" xml:"Status"`
+	MountTargets DescribeFileSystemsMountTargets2 `json:"MountTargets" xml:"MountTargets"`
+	Packages     DescribeFileSystemsPackages2     `json:"Packages" xml:"Packages"`
+	Ldap         DescribeFileSystemsLdap2         `json:"Ldap" xml:"Ldap"`
 }
 
-type DescribeFileSystemsMountTargets1 struct {
-	MountTarget []DescribeFileSystemsMountTarget2 `json:"MountTarget" xml:"MountTarget"`
+type DescribeFileSystemsMountTargets2 struct {
+	MountTarget []DescribeFileSystemsMountTarget3 `json:"MountTarget" xml:"MountTarget"`
 }
 
-type DescribeFileSystemsMountTarget2 struct {
+type DescribeFileSystemsMountTarget3 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"`
+	AccessGroupName   string `json:"AccessGroupName" xml:"AccessGroupName"`
+	Status            string `json:"Status" xml:"Status"`
 }
 
-type DescribeFileSystemsPackages1 struct {
-	Package []DescribeFileSystemsPackage2 `json:"Package" xml:"Package"`
+type DescribeFileSystemsPackages2 struct {
+	Package []DescribeFileSystemsPackage3 `json:"Package" xml:"Package"`
 }
 
-type DescribeFileSystemsPackage2 struct {
+type DescribeFileSystemsPackage3 struct {
 	PackageId string `json:"PackageId" xml:"PackageId"`
 }
 
+type DescribeFileSystemsLdap2 struct {
+	BindDN     string `json:"BindDN" xml:"BindDN"`
+	URI        string `json:"URI" xml:"URI"`
+	SearchBase string `json:"SearchBase" xml:"SearchBase"`
+}
+
 // CreateDescribeFileSystemsRequest creates a request to invoke DescribeFileSystems API
 func CreateDescribeFileSystemsRequest() (request *DescribeFileSystemsRequest) {
 	request = &DescribeFileSystemsRequest{

+ 110 - 0
services/nas/describe_ldap_config.go

@@ -0,0 +1,110 @@
+//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 nas
+
+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      DescribeLDAPConfigLdap0 `json:"Ldap" xml:"Ldap"`
+}
+
+type DescribeLDAPConfigLdap0 struct {
+	BindDN     string `json:"BindDN" xml:"BindDN"`
+	URI        string `json:"URI" xml:"URI"`
+	SearchBase string `json:"SearchBase" xml:"SearchBase"`
+}
+
+// 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
+}

+ 3 - 2
services/nas/describe_regions.go

@@ -76,8 +76,9 @@ 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"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
+	FileSystemType string           `position:"Query" name:"FileSystemType"`
 }
 
 // DescribeRegionsResponse is the response struct for api DescribeRegions

+ 131 - 0
services/nas/describe_snapshots.go

@@ -0,0 +1,131 @@
+//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 nas
+
+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
+	FileSystemType string           `position:"Query" name:"FileSystemType"`
+	FileSystemId   string           `position:"Query" name:"FileSystemId"`
+	SnapshotIds    string           `position:"Query" name:"SnapshotIds"`
+	SnapshotName   string           `position:"Query" name:"SnapshotName"`
+	SnapshotType   string           `position:"Query" name:"SnapshotType"`
+	Status         string           `position:"Query" name:"Status"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// 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  DescribeSnapshotsSnapshots0 `json:"Snapshots" xml:"Snapshots"`
+}
+
+type DescribeSnapshotsSnapshots0 struct {
+	Snapshot []DescribeSnapshotsSnapshot1 `json:"Snapshot" xml:"Snapshot"`
+}
+
+type DescribeSnapshotsSnapshot1 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"`
+}
+
+// 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
+}

+ 125 - 0
services/nas/describe_tags.go

@@ -0,0 +1,125 @@
+//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 nas
+
+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
+	FileSystemId string             `position:"Query" name:"FileSystemId"`
+	PageSize     requests.Integer   `position:"Query" name:"PageSize"`
+	PageNumber   requests.Integer   `position:"Query" name:"PageNumber"`
+	Tag          *[]DescribeTagsTag `position:"Query" name:"Tag" type:"Repeated"`
+}
+
+type DescribeTagsTag struct {
+	Key   string `name:"Key"`
+	Value string `name:"Value"`
+}
+
+// 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       DescribeTagsTags0 `json:"Tags" xml:"Tags"`
+}
+
+type DescribeTagsTags0 struct {
+	Tag []DescribeTagsTag1 `json:"Tag" xml:"Tag"`
+}
+
+type DescribeTagsTag1 struct {
+	Key           string   `json:"Key" xml:"Key"`
+	Value         string   `json:"Value" xml:"Value"`
+	FileSystemIds []string `json:"FileSystemIds" xml:"FileSystemIds"`
+}
+
+// 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 - 7
services/nas/describe_zones.go

@@ -76,6 +76,7 @@ func (client *Client) DescribeZonesWithCallback(request *DescribeZonesRequest, c
 // DescribeZonesRequest is the request struct for api DescribeZones
 type DescribeZonesRequest struct {
 	*requests.RpcRequest
+	RegionId string `position:"Query" name:"RegionId"`
 }
 
 // DescribeZonesResponse is the response struct for api DescribeZones
@@ -90,13 +91,9 @@ type DescribeZonesZones0 struct {
 }
 
 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"`
+	ZoneId      string   `json:"ZoneId" xml:"ZoneId"`
+	Capacity    []string `json:"Capacity" xml:"Capacity"`
+	Performance []string `json:"Performance" xml:"Performance"`
 }
 
 // CreateDescribeZonesRequest creates a request to invoke DescribeZones API

+ 1 - 0
services/nas/modify_access_group.go

@@ -78,6 +78,7 @@ type ModifyAccessGroupRequest struct {
 	*requests.RpcRequest
 	AccessGroupName string `position:"Query" name:"AccessGroupName"`
 	Description     string `position:"Query" name:"Description"`
+	FileSystemType  string `position:"Query" name:"FileSystemType"`
 }
 
 // ModifyAccessGroupResponse is the response struct for api ModifyAccessGroup

+ 1 - 0
services/nas/modify_access_rule.go

@@ -82,6 +82,7 @@ type ModifyAccessRuleRequest struct {
 	RWAccessType    string           `position:"Query" name:"RWAccessType"`
 	UserAccessType  string           `position:"Query" name:"UserAccessType"`
 	Priority        requests.Integer `position:"Query" name:"Priority"`
+	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 @@
+//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 nas
+
+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"`
+	AutoSnapshotPolicyName string           `position:"Query" name:"AutoSnapshotPolicyName"`
+	RepeatWeekdays         string           `position:"Query" name:"RepeatWeekdays"`
+	RetentionDays          requests.Integer `position:"Query" name:"RetentionDays"`
+	TimePoints             string           `position:"Query" name:"TimePoints"`
+}
+
+// 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
+}

+ 106 - 0
services/nas/modify_ldap_config.go

@@ -0,0 +1,106 @@
+//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 nas
+
+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
+	FileSystemId string `position:"Query" name:"FileSystemId"`
+	URI          string `position:"Query" name:"URI"`
+	BindDN       string `position:"Query" name:"BindDN"`
+	SearchBase   string `position:"Query" name:"SearchBase"`
+}
+
+// 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
+}

+ 109 - 0
services/nas/remove_tags.go

@@ -0,0 +1,109 @@
+//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 nas
+
+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
+	FileSystemId string           `position:"Query" name:"FileSystemId"`
+	Tag          *[]RemoveTagsTag `position:"Query" name:"Tag" type:"Repeated"`
+}
+
+type RemoveTagsTag struct {
+	Key   string `name:"Key"`
+	Value string `name:"Value"`
+}
+
+// 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 @@
+//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 nas
+
+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
+	FileSystemId string `position:"Query" name:"FileSystemId"`
+	SnapshotId   string `position:"Query" name:"SnapshotId"`
+}
+
+// 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
+}