浏览代码

BSSOPENAPI SDK Auto Released By xiaoyan.yan,Version:1.53.11

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 6 年之前
父节点
当前提交
99e6c8e7bb
共有 38 个文件被更改,包括 2230 次插入70 次删除
  1. 5 0
      ChangeLog.txt
  2. 115 0
      services/bssopenapi/apply_invoice.go
  3. 115 0
      services/bssopenapi/change_consume_amount.go
  4. 111 0
      services/bssopenapi/create_user_quota.go
  5. 110 0
      services/bssopenapi/query_account_book_list.go
  6. 109 0
      services/bssopenapi/query_avaliable_quota.go
  7. 107 0
      services/bssopenapi/query_customer_address_list.go
  8. 111 0
      services/bssopenapi/query_enduser_status.go
  9. 120 0
      services/bssopenapi/query_evaluate_list.go
  10. 1 0
      services/bssopenapi/query_instance_bill.go
  11. 107 0
      services/bssopenapi/query_invoicing_customer_list.go
  12. 108 0
      services/bssopenapi/query_price.go
  13. 111 0
      services/bssopenapi/query_price_list.go
  14. 111 0
      services/bssopenapi/query_user_alarm_threshold.go
  15. 110 0
      services/bssopenapi/set_enduser_status.go
  16. 110 0
      services/bssopenapi/set_user_alarm_threshold.go
  17. 111 0
      services/bssopenapi/set_user_quota.go
  18. 21 0
      services/bssopenapi/struct_applicable_products.go
  19. 40 0
      services/bssopenapi/struct_customer_invoice.go
  20. 32 0
      services/bssopenapi/struct_customer_invoice_address.go
  21. 21 0
      services/bssopenapi/struct_customer_invoice_address_list.go
  22. 21 0
      services/bssopenapi/struct_customer_invoice_list.go
  23. 52 34
      services/bssopenapi/struct_data.go
  24. 21 0
      services/bssopenapi/struct_datas_in_query_account_book_list.go
  25. 21 0
      services/bssopenapi/struct_datas_in_query_enduser_status.go
  26. 21 0
      services/bssopenapi/struct_datas_in_query_user_alarm_threshold.go
  27. 41 0
      services/bssopenapi/struct_evaluate.go
  28. 21 0
      services/bssopenapi/struct_evaluate_list.go
  29. 29 27
      services/bssopenapi/struct_instance.go
  30. 33 0
      services/bssopenapi/struct_instance_in_query_resource_package_instances.go
  31. 1 1
      services/bssopenapi/struct_instances.go
  32. 0 6
      services/bssopenapi/struct_item_in_query_instance_bill.go
  33. 4 0
      services/bssopenapi/struct_module.go
  34. 21 0
      services/bssopenapi/struct_modules_in_query_instance_gaap_cost.go
  35. 2 2
      services/bssopenapi/struct_modules_in_query_price_list.go
  36. 27 0
      services/bssopenapi/struct_tier_price.go
  37. 21 0
      services/bssopenapi/struct_tier_prices.go
  38. 108 0
      services/bssopenapi/subscribe_detail.go

+ 5 - 0
ChangeLog.txt

@@ -1,3 +1,8 @@
+2019-03-04 Version: 1.53.11
+1, This is an example of release-log.
+2, Please strictly follow this format to edit in English.
+3, Format:Number + , + Space + Description
+
 2019-03-01 Version: 1.53.10
 1, This is an example of release-log.
 2, Please strictly follow this format to edit in English.

+ 115 - 0
services/bssopenapi/apply_invoice.go

@@ -0,0 +1,115 @@
+package bssopenapi
+
+//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"
+)
+
+// ApplyInvoice invokes the bssopenapi.ApplyInvoice API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/applyinvoice.html
+func (client *Client) ApplyInvoice(request *ApplyInvoiceRequest) (response *ApplyInvoiceResponse, err error) {
+	response = CreateApplyInvoiceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ApplyInvoiceWithChan invokes the bssopenapi.ApplyInvoice API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/applyinvoice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ApplyInvoiceWithChan(request *ApplyInvoiceRequest) (<-chan *ApplyInvoiceResponse, <-chan error) {
+	responseChan := make(chan *ApplyInvoiceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ApplyInvoice(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ApplyInvoiceWithCallback invokes the bssopenapi.ApplyInvoice API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/applyinvoice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ApplyInvoiceWithCallback(request *ApplyInvoiceRequest, callback func(response *ApplyInvoiceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ApplyInvoiceResponse
+		var err error
+		defer close(result)
+		response, err = client.ApplyInvoice(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ApplyInvoiceRequest is the request struct for api ApplyInvoice
+type ApplyInvoiceRequest struct {
+	*requests.RpcRequest
+	InvoicingType   requests.Integer `position:"Query" name:"InvoicingType"`
+	ApplyUserNick   string           `position:"Query" name:"ApplyUserNick"`
+	InvoiceByAmount requests.Boolean `position:"Query" name:"InvoiceByAmount"`
+	CustomerId      requests.Integer `position:"Query" name:"CustomerId"`
+	SelectedIds     *[]string        `position:"Query" name:"SelectedIds"  type:"Repeated"`
+	ProcessWay      requests.Integer `position:"Query" name:"ProcessWay"`
+	OwnerId         requests.Integer `position:"Query" name:"OwnerId"`
+	InvoiceAmount   requests.Integer `position:"Query" name:"InvoiceAmount"`
+	AddressId       requests.Integer `position:"Query" name:"AddressId"`
+}
+
+// ApplyInvoiceResponse is the response struct for api ApplyInvoice
+type ApplyInvoiceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateApplyInvoiceRequest creates a request to invoke ApplyInvoice API
+func CreateApplyInvoiceRequest() (request *ApplyInvoiceRequest) {
+	request = &ApplyInvoiceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "ApplyInvoice", "", "")
+	return
+}
+
+// CreateApplyInvoiceResponse creates a response to parse from ApplyInvoice response
+func CreateApplyInvoiceResponse() (response *ApplyInvoiceResponse) {
+	response = &ApplyInvoiceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/bssopenapi/change_consume_amount.go

@@ -0,0 +1,115 @@
+package bssopenapi
+
+//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"
+)
+
+// ChangeConsumeAmount invokes the bssopenapi.ChangeConsumeAmount API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/changeconsumeamount.html
+func (client *Client) ChangeConsumeAmount(request *ChangeConsumeAmountRequest) (response *ChangeConsumeAmountResponse, err error) {
+	response = CreateChangeConsumeAmountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ChangeConsumeAmountWithChan invokes the bssopenapi.ChangeConsumeAmount API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/changeconsumeamount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ChangeConsumeAmountWithChan(request *ChangeConsumeAmountRequest) (<-chan *ChangeConsumeAmountResponse, <-chan error) {
+	responseChan := make(chan *ChangeConsumeAmountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ChangeConsumeAmount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ChangeConsumeAmountWithCallback invokes the bssopenapi.ChangeConsumeAmount API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/changeconsumeamount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ChangeConsumeAmountWithCallback(request *ChangeConsumeAmountRequest, callback func(response *ChangeConsumeAmountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ChangeConsumeAmountResponse
+		var err error
+		defer close(result)
+		response, err = client.ChangeConsumeAmount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ChangeConsumeAmountRequest is the request struct for api ChangeConsumeAmount
+type ChangeConsumeAmountRequest struct {
+	*requests.RpcRequest
+	Uid          requests.Integer `position:"Query" name:"Uid"`
+	AdjustType   string           `position:"Query" name:"AdjustType"`
+	Amount       string           `position:"Query" name:"Amount"`
+	OutBizId     string           `position:"Query" name:"OutBizId"`
+	ExtendMap    string           `position:"Query" name:"ExtendMap"`
+	Currency     string           `position:"Query" name:"Currency"`
+	Source       string           `position:"Query" name:"Source"`
+	Bid          string           `position:"Query" name:"Bid"`
+	BusinessType string           `position:"Query" name:"BusinessType"`
+}
+
+// ChangeConsumeAmountResponse is the response struct for api ChangeConsumeAmount
+type ChangeConsumeAmountResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+}
+
+// CreateChangeConsumeAmountRequest creates a request to invoke ChangeConsumeAmount API
+func CreateChangeConsumeAmountRequest() (request *ChangeConsumeAmountRequest) {
+	request = &ChangeConsumeAmountRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "ChangeConsumeAmount", "", "")
+	return
+}
+
+// CreateChangeConsumeAmountResponse creates a response to parse from ChangeConsumeAmount response
+func CreateChangeConsumeAmountResponse() (response *ChangeConsumeAmountResponse) {
+	response = &ChangeConsumeAmountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/bssopenapi/create_user_quota.go

@@ -0,0 +1,111 @@
+package bssopenapi
+
+//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"
+)
+
+// CreateUserQuota invokes the bssopenapi.CreateUserQuota API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/createuserquota.html
+func (client *Client) CreateUserQuota(request *CreateUserQuotaRequest) (response *CreateUserQuotaResponse, err error) {
+	response = CreateCreateUserQuotaResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateUserQuotaWithChan invokes the bssopenapi.CreateUserQuota API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/createuserquota.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateUserQuotaWithChan(request *CreateUserQuotaRequest) (<-chan *CreateUserQuotaResponse, <-chan error) {
+	responseChan := make(chan *CreateUserQuotaResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateUserQuota(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateUserQuotaWithCallback invokes the bssopenapi.CreateUserQuota API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/createuserquota.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateUserQuotaWithCallback(request *CreateUserQuotaRequest, callback func(response *CreateUserQuotaResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateUserQuotaResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateUserQuota(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateUserQuotaRequest is the request struct for api CreateUserQuota
+type CreateUserQuotaRequest struct {
+	*requests.RpcRequest
+	Uid      requests.Integer `position:"Query" name:"Uid"`
+	Amount   string           `position:"Query" name:"Amount"`
+	OutBizId string           `position:"Query" name:"OutBizId"`
+	Currency string           `position:"Query" name:"Currency"`
+	Bid      string           `position:"Query" name:"Bid"`
+}
+
+// CreateUserQuotaResponse is the response struct for api CreateUserQuota
+type CreateUserQuotaResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      bool   `json:"Data" xml:"Data"`
+}
+
+// CreateCreateUserQuotaRequest creates a request to invoke CreateUserQuota API
+func CreateCreateUserQuotaRequest() (request *CreateUserQuotaRequest) {
+	request = &CreateUserQuotaRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "CreateUserQuota", "", "")
+	return
+}
+
+// CreateCreateUserQuotaResponse creates a response to parse from CreateUserQuota response
+func CreateCreateUserQuotaResponse() (response *CreateUserQuotaResponse) {
+	response = &CreateUserQuotaResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/bssopenapi/query_account_book_list.go

@@ -0,0 +1,110 @@
+package bssopenapi
+
+//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"
+)
+
+// QueryAccountBookList invokes the bssopenapi.QueryAccountBookList API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryaccountbooklist.html
+func (client *Client) QueryAccountBookList(request *QueryAccountBookListRequest) (response *QueryAccountBookListResponse, err error) {
+	response = CreateQueryAccountBookListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryAccountBookListWithChan invokes the bssopenapi.QueryAccountBookList API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryaccountbooklist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryAccountBookListWithChan(request *QueryAccountBookListRequest) (<-chan *QueryAccountBookListResponse, <-chan error) {
+	responseChan := make(chan *QueryAccountBookListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryAccountBookList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryAccountBookListWithCallback invokes the bssopenapi.QueryAccountBookList API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryaccountbooklist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryAccountBookListWithCallback(request *QueryAccountBookListRequest, callback func(response *QueryAccountBookListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryAccountBookListResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryAccountBookList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryAccountBookListRequest is the request struct for api QueryAccountBookList
+type QueryAccountBookListRequest struct {
+	*requests.RpcRequest
+	Uid       requests.Integer `position:"Query" name:"Uid"`
+	ItemCodes string           `position:"Query" name:"ItemCodes"`
+	Bid       string           `position:"Query" name:"Bid"`
+}
+
+// QueryAccountBookListResponse is the response struct for api QueryAccountBookList
+type QueryAccountBookListResponse struct {
+	*responses.BaseResponse
+	RequestId string                      `json:"RequestId" xml:"RequestId"`
+	Code      string                      `json:"Code" xml:"Code"`
+	Message   string                      `json:"Message" xml:"Message"`
+	Success   bool                        `json:"Success" xml:"Success"`
+	Count     int                         `json:"Count" xml:"Count"`
+	Datas     DatasInQueryAccountBookList `json:"Datas" xml:"Datas"`
+}
+
+// CreateQueryAccountBookListRequest creates a request to invoke QueryAccountBookList API
+func CreateQueryAccountBookListRequest() (request *QueryAccountBookListRequest) {
+	request = &QueryAccountBookListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "QueryAccountBookList", "", "")
+	return
+}
+
+// CreateQueryAccountBookListResponse creates a response to parse from QueryAccountBookList response
+func CreateQueryAccountBookListResponse() (response *QueryAccountBookListResponse) {
+	response = &QueryAccountBookListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/bssopenapi/query_avaliable_quota.go

@@ -0,0 +1,109 @@
+package bssopenapi
+
+//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"
+)
+
+// QueryAvaliableQuota invokes the bssopenapi.QueryAvaliableQuota API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryavaliablequota.html
+func (client *Client) QueryAvaliableQuota(request *QueryAvaliableQuotaRequest) (response *QueryAvaliableQuotaResponse, err error) {
+	response = CreateQueryAvaliableQuotaResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryAvaliableQuotaWithChan invokes the bssopenapi.QueryAvaliableQuota API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryavaliablequota.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryAvaliableQuotaWithChan(request *QueryAvaliableQuotaRequest) (<-chan *QueryAvaliableQuotaResponse, <-chan error) {
+	responseChan := make(chan *QueryAvaliableQuotaResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryAvaliableQuota(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryAvaliableQuotaWithCallback invokes the bssopenapi.QueryAvaliableQuota API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryavaliablequota.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryAvaliableQuotaWithCallback(request *QueryAvaliableQuotaRequest, callback func(response *QueryAvaliableQuotaResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryAvaliableQuotaResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryAvaliableQuota(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryAvaliableQuotaRequest is the request struct for api QueryAvaliableQuota
+type QueryAvaliableQuotaRequest struct {
+	*requests.RpcRequest
+	Uid       requests.Integer `position:"Query" name:"Uid"`
+	ItemCodes string           `position:"Query" name:"ItemCodes"`
+	Bid       string           `position:"Query" name:"Bid"`
+}
+
+// QueryAvaliableQuotaResponse is the response struct for api QueryAvaliableQuota
+type QueryAvaliableQuotaResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+}
+
+// CreateQueryAvaliableQuotaRequest creates a request to invoke QueryAvaliableQuota API
+func CreateQueryAvaliableQuotaRequest() (request *QueryAvaliableQuotaRequest) {
+	request = &QueryAvaliableQuotaRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "QueryAvaliableQuota", "", "")
+	return
+}
+
+// CreateQueryAvaliableQuotaResponse creates a response to parse from QueryAvaliableQuota response
+func CreateQueryAvaliableQuotaResponse() (response *QueryAvaliableQuotaResponse) {
+	response = &QueryAvaliableQuotaResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/bssopenapi/query_customer_address_list.go

@@ -0,0 +1,107 @@
+package bssopenapi
+
+//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"
+)
+
+// QueryCustomerAddressList invokes the bssopenapi.QueryCustomerAddressList API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/querycustomeraddresslist.html
+func (client *Client) QueryCustomerAddressList(request *QueryCustomerAddressListRequest) (response *QueryCustomerAddressListResponse, err error) {
+	response = CreateQueryCustomerAddressListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryCustomerAddressListWithChan invokes the bssopenapi.QueryCustomerAddressList API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/querycustomeraddresslist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryCustomerAddressListWithChan(request *QueryCustomerAddressListRequest) (<-chan *QueryCustomerAddressListResponse, <-chan error) {
+	responseChan := make(chan *QueryCustomerAddressListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryCustomerAddressList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryCustomerAddressListWithCallback invokes the bssopenapi.QueryCustomerAddressList API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/querycustomeraddresslist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryCustomerAddressListWithCallback(request *QueryCustomerAddressListRequest, callback func(response *QueryCustomerAddressListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryCustomerAddressListResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryCustomerAddressList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryCustomerAddressListRequest is the request struct for api QueryCustomerAddressList
+type QueryCustomerAddressListRequest struct {
+	*requests.RpcRequest
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// QueryCustomerAddressListResponse is the response struct for api QueryCustomerAddressList
+type QueryCustomerAddressListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateQueryCustomerAddressListRequest creates a request to invoke QueryCustomerAddressList API
+func CreateQueryCustomerAddressListRequest() (request *QueryCustomerAddressListRequest) {
+	request = &QueryCustomerAddressListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "QueryCustomerAddressList", "", "")
+	return
+}
+
+// CreateQueryCustomerAddressListResponse creates a response to parse from QueryCustomerAddressList response
+func CreateQueryCustomerAddressListResponse() (response *QueryCustomerAddressListResponse) {
+	response = &QueryCustomerAddressListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/bssopenapi/query_enduser_status.go

@@ -0,0 +1,111 @@
+package bssopenapi
+
+//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"
+)
+
+// QueryEnduserStatus invokes the bssopenapi.QueryEnduserStatus API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryenduserstatus.html
+func (client *Client) QueryEnduserStatus(request *QueryEnduserStatusRequest) (response *QueryEnduserStatusResponse, err error) {
+	response = CreateQueryEnduserStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryEnduserStatusWithChan invokes the bssopenapi.QueryEnduserStatus API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryenduserstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEnduserStatusWithChan(request *QueryEnduserStatusRequest) (<-chan *QueryEnduserStatusResponse, <-chan error) {
+	responseChan := make(chan *QueryEnduserStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryEnduserStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryEnduserStatusWithCallback invokes the bssopenapi.QueryEnduserStatus API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryenduserstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEnduserStatusWithCallback(request *QueryEnduserStatusRequest, callback func(response *QueryEnduserStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryEnduserStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryEnduserStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryEnduserStatusRequest is the request struct for api QueryEnduserStatus
+type QueryEnduserStatusRequest struct {
+	*requests.RpcRequest
+	Uid            requests.Integer `position:"Query" name:"Uid"`
+	PrimaryAccount string           `position:"Query" name:"PrimaryAccount"`
+	Status         string           `position:"Query" name:"Status"`
+	BusinessType   string           `position:"Query" name:"BusinessType"`
+}
+
+// QueryEnduserStatusResponse is the response struct for api QueryEnduserStatus
+type QueryEnduserStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string                    `json:"RequestId" xml:"RequestId"`
+	Code      string                    `json:"Code" xml:"Code"`
+	Message   string                    `json:"Message" xml:"Message"`
+	Success   bool                      `json:"Success" xml:"Success"`
+	Count     int                       `json:"Count" xml:"Count"`
+	Datas     DatasInQueryEnduserStatus `json:"Datas" xml:"Datas"`
+}
+
+// CreateQueryEnduserStatusRequest creates a request to invoke QueryEnduserStatus API
+func CreateQueryEnduserStatusRequest() (request *QueryEnduserStatusRequest) {
+	request = &QueryEnduserStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "QueryEnduserStatus", "", "")
+	return
+}
+
+// CreateQueryEnduserStatusResponse creates a response to parse from QueryEnduserStatus response
+func CreateQueryEnduserStatusResponse() (response *QueryEnduserStatusResponse) {
+	response = &QueryEnduserStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 120 - 0
services/bssopenapi/query_evaluate_list.go

@@ -0,0 +1,120 @@
+package bssopenapi
+
+//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"
+)
+
+// QueryEvaluateList invokes the bssopenapi.QueryEvaluateList API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryevaluatelist.html
+func (client *Client) QueryEvaluateList(request *QueryEvaluateListRequest) (response *QueryEvaluateListResponse, err error) {
+	response = CreateQueryEvaluateListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryEvaluateListWithChan invokes the bssopenapi.QueryEvaluateList API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryevaluatelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEvaluateListWithChan(request *QueryEvaluateListRequest) (<-chan *QueryEvaluateListResponse, <-chan error) {
+	responseChan := make(chan *QueryEvaluateListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryEvaluateList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryEvaluateListWithCallback invokes the bssopenapi.QueryEvaluateList API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryevaluatelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEvaluateListWithCallback(request *QueryEvaluateListRequest, callback func(response *QueryEvaluateListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryEvaluateListResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryEvaluateList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryEvaluateListRequest is the request struct for api QueryEvaluateList
+type QueryEvaluateListRequest struct {
+	*requests.RpcRequest
+	EndSearchTime   string           `position:"Query" name:"EndSearchTime"`
+	OutBizId        string           `position:"Query" name:"OutBizId"`
+	SortType        requests.Integer `position:"Query" name:"SortType"`
+	BizTypeList     *[]string        `position:"Query" name:"BizTypeList"  type:"Repeated"`
+	Type            requests.Integer `position:"Query" name:"Type"`
+	OwnerId         requests.Integer `position:"Query" name:"OwnerId"`
+	PageNum         requests.Integer `position:"Query" name:"PageNum"`
+	StartSearchTime string           `position:"Query" name:"StartSearchTime"`
+	EndBizTime      string           `position:"Query" name:"EndBizTime"`
+	PageSize        requests.Integer `position:"Query" name:"PageSize"`
+	EndAmount       requests.Integer `position:"Query" name:"EndAmount"`
+	BillCycle       string           `position:"Query" name:"BillCycle"`
+	StartAmount     requests.Integer `position:"Query" name:"StartAmount"`
+	StartBizTime    string           `position:"Query" name:"StartBizTime"`
+}
+
+// QueryEvaluateListResponse is the response struct for api QueryEvaluateList
+type QueryEvaluateListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateQueryEvaluateListRequest creates a request to invoke QueryEvaluateList API
+func CreateQueryEvaluateListRequest() (request *QueryEvaluateListRequest) {
+	request = &QueryEvaluateListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "QueryEvaluateList", "", "")
+	return
+}
+
+// CreateQueryEvaluateListResponse creates a response to parse from QueryEvaluateList response
+func CreateQueryEvaluateListResponse() (response *QueryEvaluateListResponse) {
+	response = &QueryEvaluateListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/bssopenapi/query_instance_bill.go

@@ -78,6 +78,7 @@ type QueryInstanceBillRequest struct {
 	*requests.RpcRequest
 	IsBillingItem    requests.Boolean `position:"Query" name:"IsBillingItem"`
 	ProductCode      string           `position:"Query" name:"ProductCode"`
+	IsHideZeroCharge requests.Boolean `position:"Query" name:"IsHideZeroCharge"`
 	SubscriptionType string           `position:"Query" name:"SubscriptionType"`
 	PageSize         requests.Integer `position:"Query" name:"PageSize"`
 	BillingCycle     string           `position:"Query" name:"BillingCycle"`

+ 107 - 0
services/bssopenapi/query_invoicing_customer_list.go

@@ -0,0 +1,107 @@
+package bssopenapi
+
+//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"
+)
+
+// QueryInvoicingCustomerList invokes the bssopenapi.QueryInvoicingCustomerList API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryinvoicingcustomerlist.html
+func (client *Client) QueryInvoicingCustomerList(request *QueryInvoicingCustomerListRequest) (response *QueryInvoicingCustomerListResponse, err error) {
+	response = CreateQueryInvoicingCustomerListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryInvoicingCustomerListWithChan invokes the bssopenapi.QueryInvoicingCustomerList API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryinvoicingcustomerlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryInvoicingCustomerListWithChan(request *QueryInvoicingCustomerListRequest) (<-chan *QueryInvoicingCustomerListResponse, <-chan error) {
+	responseChan := make(chan *QueryInvoicingCustomerListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryInvoicingCustomerList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryInvoicingCustomerListWithCallback invokes the bssopenapi.QueryInvoicingCustomerList API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryinvoicingcustomerlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryInvoicingCustomerListWithCallback(request *QueryInvoicingCustomerListRequest, callback func(response *QueryInvoicingCustomerListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryInvoicingCustomerListResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryInvoicingCustomerList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryInvoicingCustomerListRequest is the request struct for api QueryInvoicingCustomerList
+type QueryInvoicingCustomerListRequest struct {
+	*requests.RpcRequest
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// QueryInvoicingCustomerListResponse is the response struct for api QueryInvoicingCustomerList
+type QueryInvoicingCustomerListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateQueryInvoicingCustomerListRequest creates a request to invoke QueryInvoicingCustomerList API
+func CreateQueryInvoicingCustomerListRequest() (request *QueryInvoicingCustomerListRequest) {
+	request = &QueryInvoicingCustomerListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "QueryInvoicingCustomerList", "", "")
+	return
+}
+
+// CreateQueryInvoicingCustomerListResponse creates a response to parse from QueryInvoicingCustomerList response
+func CreateQueryInvoicingCustomerListResponse() (response *QueryInvoicingCustomerListResponse) {
+	response = &QueryInvoicingCustomerListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/bssopenapi/query_price.go

@@ -0,0 +1,108 @@
+package bssopenapi
+
+//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"
+)
+
+// QueryPrice invokes the bssopenapi.QueryPrice API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryprice.html
+func (client *Client) QueryPrice(request *QueryPriceRequest) (response *QueryPriceResponse, err error) {
+	response = CreateQueryPriceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryPriceWithChan invokes the bssopenapi.QueryPrice API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryprice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryPriceWithChan(request *QueryPriceRequest) (<-chan *QueryPriceResponse, <-chan error) {
+	responseChan := make(chan *QueryPriceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryPrice(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryPriceWithCallback invokes the bssopenapi.QueryPrice API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryprice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryPriceWithCallback(request *QueryPriceRequest, callback func(response *QueryPriceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryPriceResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryPrice(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryPriceRequest is the request struct for api QueryPrice
+type QueryPriceRequest struct {
+	*requests.RpcRequest
+	ParamStr string `position:"Query" name:"ParamStr"`
+}
+
+// QueryPriceResponse is the response struct for api QueryPrice
+type QueryPriceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrCode   string `json:"ErrCode" xml:"ErrCode"`
+}
+
+// CreateQueryPriceRequest creates a request to invoke QueryPrice API
+func CreateQueryPriceRequest() (request *QueryPriceRequest) {
+	request = &QueryPriceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "QueryPrice", "", "")
+	return
+}
+
+// CreateQueryPriceResponse creates a response to parse from QueryPrice response
+func CreateQueryPriceResponse() (response *QueryPriceResponse) {
+	response = &QueryPriceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/bssopenapi/query_price_list.go

@@ -0,0 +1,111 @@
+package bssopenapi
+
+//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"
+)
+
+// QueryPriceList invokes the bssopenapi.QueryPriceList API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/querypricelist.html
+func (client *Client) QueryPriceList(request *QueryPriceListRequest) (response *QueryPriceListResponse, err error) {
+	response = CreateQueryPriceListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryPriceListWithChan invokes the bssopenapi.QueryPriceList API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/querypricelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryPriceListWithChan(request *QueryPriceListRequest) (<-chan *QueryPriceListResponse, <-chan error) {
+	responseChan := make(chan *QueryPriceListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryPriceList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryPriceListWithCallback invokes the bssopenapi.QueryPriceList API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/querypricelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryPriceListWithCallback(request *QueryPriceListRequest, callback func(response *QueryPriceListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryPriceListResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryPriceList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryPriceListRequest is the request struct for api QueryPriceList
+type QueryPriceListRequest struct {
+	*requests.RpcRequest
+	ModuleCode       string           `position:"Query" name:"ModuleCode"`
+	ProductCode      string           `position:"Query" name:"ProductCode"`
+	SubscriptionType string           `position:"Query" name:"SubscriptionType"`
+	OwnerId          requests.Integer `position:"Query" name:"OwnerId"`
+	ProductType      string           `position:"Query" name:"ProductType"`
+}
+
+// QueryPriceListResponse is the response struct for api QueryPriceList
+type QueryPriceListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateQueryPriceListRequest creates a request to invoke QueryPriceList API
+func CreateQueryPriceListRequest() (request *QueryPriceListRequest) {
+	request = &QueryPriceListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "QueryPriceList", "", "")
+	return
+}
+
+// CreateQueryPriceListResponse creates a response to parse from QueryPriceList response
+func CreateQueryPriceListResponse() (response *QueryPriceListResponse) {
+	response = &QueryPriceListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/bssopenapi/query_user_alarm_threshold.go

@@ -0,0 +1,111 @@
+package bssopenapi
+
+//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"
+)
+
+// QueryUserAlarmThreshold invokes the bssopenapi.QueryUserAlarmThreshold API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryuseralarmthreshold.html
+func (client *Client) QueryUserAlarmThreshold(request *QueryUserAlarmThresholdRequest) (response *QueryUserAlarmThresholdResponse, err error) {
+	response = CreateQueryUserAlarmThresholdResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryUserAlarmThresholdWithChan invokes the bssopenapi.QueryUserAlarmThreshold API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryuseralarmthreshold.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryUserAlarmThresholdWithChan(request *QueryUserAlarmThresholdRequest) (<-chan *QueryUserAlarmThresholdResponse, <-chan error) {
+	responseChan := make(chan *QueryUserAlarmThresholdResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryUserAlarmThreshold(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryUserAlarmThresholdWithCallback invokes the bssopenapi.QueryUserAlarmThreshold API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/queryuseralarmthreshold.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryUserAlarmThresholdWithCallback(request *QueryUserAlarmThresholdRequest, callback func(response *QueryUserAlarmThresholdResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryUserAlarmThresholdResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryUserAlarmThreshold(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryUserAlarmThresholdRequest is the request struct for api QueryUserAlarmThreshold
+type QueryUserAlarmThresholdRequest struct {
+	*requests.RpcRequest
+	Uid             requests.Integer `position:"Query" name:"Uid"`
+	AlarmType       string           `position:"Query" name:"AlarmType"`
+	AlarmThresholds string           `position:"Query" name:"AlarmThresholds"`
+	Bid             string           `position:"Query" name:"Bid"`
+}
+
+// QueryUserAlarmThresholdResponse is the response struct for api QueryUserAlarmThreshold
+type QueryUserAlarmThresholdResponse struct {
+	*responses.BaseResponse
+	RequestId string                         `json:"RequestId" xml:"RequestId"`
+	Code      string                         `json:"Code" xml:"Code"`
+	Message   string                         `json:"Message" xml:"Message"`
+	Success   bool                           `json:"Success" xml:"Success"`
+	Count     int                            `json:"Count" xml:"Count"`
+	Datas     DatasInQueryUserAlarmThreshold `json:"Datas" xml:"Datas"`
+}
+
+// CreateQueryUserAlarmThresholdRequest creates a request to invoke QueryUserAlarmThreshold API
+func CreateQueryUserAlarmThresholdRequest() (request *QueryUserAlarmThresholdRequest) {
+	request = &QueryUserAlarmThresholdRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "QueryUserAlarmThreshold", "", "")
+	return
+}
+
+// CreateQueryUserAlarmThresholdResponse creates a response to parse from QueryUserAlarmThreshold response
+func CreateQueryUserAlarmThresholdResponse() (response *QueryUserAlarmThresholdResponse) {
+	response = &QueryUserAlarmThresholdResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/bssopenapi/set_enduser_status.go

@@ -0,0 +1,110 @@
+package bssopenapi
+
+//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"
+)
+
+// SetEnduserStatus invokes the bssopenapi.SetEnduserStatus API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/setenduserstatus.html
+func (client *Client) SetEnduserStatus(request *SetEnduserStatusRequest) (response *SetEnduserStatusResponse, err error) {
+	response = CreateSetEnduserStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetEnduserStatusWithChan invokes the bssopenapi.SetEnduserStatus API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/setenduserstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetEnduserStatusWithChan(request *SetEnduserStatusRequest) (<-chan *SetEnduserStatusResponse, <-chan error) {
+	responseChan := make(chan *SetEnduserStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetEnduserStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetEnduserStatusWithCallback invokes the bssopenapi.SetEnduserStatus API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/setenduserstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetEnduserStatusWithCallback(request *SetEnduserStatusRequest, callback func(response *SetEnduserStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetEnduserStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.SetEnduserStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetEnduserStatusRequest is the request struct for api SetEnduserStatus
+type SetEnduserStatusRequest struct {
+	*requests.RpcRequest
+	Uid            requests.Integer `position:"Query" name:"Uid"`
+	PrimaryAccount string           `position:"Query" name:"PrimaryAccount"`
+	Status         string           `position:"Query" name:"Status"`
+	BusinessType   string           `position:"Query" name:"BusinessType"`
+}
+
+// SetEnduserStatusResponse is the response struct for api SetEnduserStatus
+type SetEnduserStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      bool   `json:"Data" xml:"Data"`
+}
+
+// CreateSetEnduserStatusRequest creates a request to invoke SetEnduserStatus API
+func CreateSetEnduserStatusRequest() (request *SetEnduserStatusRequest) {
+	request = &SetEnduserStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "SetEnduserStatus", "", "")
+	return
+}
+
+// CreateSetEnduserStatusResponse creates a response to parse from SetEnduserStatus response
+func CreateSetEnduserStatusResponse() (response *SetEnduserStatusResponse) {
+	response = &SetEnduserStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/bssopenapi/set_user_alarm_threshold.go

@@ -0,0 +1,110 @@
+package bssopenapi
+
+//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"
+)
+
+// SetUserAlarmThreshold invokes the bssopenapi.SetUserAlarmThreshold API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/setuseralarmthreshold.html
+func (client *Client) SetUserAlarmThreshold(request *SetUserAlarmThresholdRequest) (response *SetUserAlarmThresholdResponse, err error) {
+	response = CreateSetUserAlarmThresholdResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetUserAlarmThresholdWithChan invokes the bssopenapi.SetUserAlarmThreshold API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/setuseralarmthreshold.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetUserAlarmThresholdWithChan(request *SetUserAlarmThresholdRequest) (<-chan *SetUserAlarmThresholdResponse, <-chan error) {
+	responseChan := make(chan *SetUserAlarmThresholdResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetUserAlarmThreshold(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetUserAlarmThresholdWithCallback invokes the bssopenapi.SetUserAlarmThreshold API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/setuseralarmthreshold.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetUserAlarmThresholdWithCallback(request *SetUserAlarmThresholdRequest, callback func(response *SetUserAlarmThresholdResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetUserAlarmThresholdResponse
+		var err error
+		defer close(result)
+		response, err = client.SetUserAlarmThreshold(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetUserAlarmThresholdRequest is the request struct for api SetUserAlarmThreshold
+type SetUserAlarmThresholdRequest struct {
+	*requests.RpcRequest
+	Uid             requests.Integer `position:"Query" name:"Uid"`
+	AlarmType       string           `position:"Query" name:"AlarmType"`
+	AlarmThresholds string           `position:"Query" name:"AlarmThresholds"`
+	Bid             string           `position:"Query" name:"Bid"`
+}
+
+// SetUserAlarmThresholdResponse is the response struct for api SetUserAlarmThreshold
+type SetUserAlarmThresholdResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      bool   `json:"Data" xml:"Data"`
+}
+
+// CreateSetUserAlarmThresholdRequest creates a request to invoke SetUserAlarmThreshold API
+func CreateSetUserAlarmThresholdRequest() (request *SetUserAlarmThresholdRequest) {
+	request = &SetUserAlarmThresholdRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "SetUserAlarmThreshold", "", "")
+	return
+}
+
+// CreateSetUserAlarmThresholdResponse creates a response to parse from SetUserAlarmThreshold response
+func CreateSetUserAlarmThresholdResponse() (response *SetUserAlarmThresholdResponse) {
+	response = &SetUserAlarmThresholdResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/bssopenapi/set_user_quota.go

@@ -0,0 +1,111 @@
+package bssopenapi
+
+//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"
+)
+
+// SetUserQuota invokes the bssopenapi.SetUserQuota API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/setuserquota.html
+func (client *Client) SetUserQuota(request *SetUserQuotaRequest) (response *SetUserQuotaResponse, err error) {
+	response = CreateSetUserQuotaResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetUserQuotaWithChan invokes the bssopenapi.SetUserQuota API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/setuserquota.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetUserQuotaWithChan(request *SetUserQuotaRequest) (<-chan *SetUserQuotaResponse, <-chan error) {
+	responseChan := make(chan *SetUserQuotaResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetUserQuota(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetUserQuotaWithCallback invokes the bssopenapi.SetUserQuota API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/setuserquota.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetUserQuotaWithCallback(request *SetUserQuotaRequest, callback func(response *SetUserQuotaResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetUserQuotaResponse
+		var err error
+		defer close(result)
+		response, err = client.SetUserQuota(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetUserQuotaRequest is the request struct for api SetUserQuota
+type SetUserQuotaRequest struct {
+	*requests.RpcRequest
+	Uid      requests.Integer `position:"Query" name:"Uid"`
+	Amount   string           `position:"Query" name:"Amount"`
+	OutBizId string           `position:"Query" name:"OutBizId"`
+	Currency string           `position:"Query" name:"Currency"`
+	Bid      string           `position:"Query" name:"Bid"`
+}
+
+// SetUserQuotaResponse is the response struct for api SetUserQuota
+type SetUserQuotaResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      bool   `json:"Data" xml:"Data"`
+}
+
+// CreateSetUserQuotaRequest creates a request to invoke SetUserQuota API
+func CreateSetUserQuotaRequest() (request *SetUserQuotaRequest) {
+	request = &SetUserQuotaRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "SetUserQuota", "", "")
+	return
+}
+
+// CreateSetUserQuotaResponse creates a response to parse from SetUserQuota response
+func CreateSetUserQuotaResponse() (response *SetUserQuotaResponse) {
+	response = &SetUserQuotaResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 21 - 0
services/bssopenapi/struct_applicable_products.go

@@ -0,0 +1,21 @@
+package bssopenapi
+
+//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.
+
+// ApplicableProducts is a nested struct in bssopenapi response
+type ApplicableProducts struct {
+	Product []string `json:"Product" xml:"Product"`
+}

+ 40 - 0
services/bssopenapi/struct_customer_invoice.go

@@ -0,0 +1,40 @@
+package bssopenapi
+
+//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.
+
+// CustomerInvoice is a nested struct in bssopenapi response
+type CustomerInvoice struct {
+	Id                      int    `json:"Id" xml:"Id"`
+	UserId                  int    `json:"UserId" xml:"UserId"`
+	UserNick                string `json:"UserNick" xml:"UserNick"`
+	InvoiceTitle            string `json:"InvoiceTitle" xml:"InvoiceTitle"`
+	CustomerType            int    `json:"CustomerType" xml:"CustomerType"`
+	TaxpayerType            int    `json:"TaxpayerType" xml:"TaxpayerType"`
+	Bank                    string `json:"Bank" xml:"Bank"`
+	BankNo                  string `json:"BankNo" xml:"BankNo"`
+	OperatingLicenseAddress string `json:"OperatingLicenseAddress" xml:"OperatingLicenseAddress"`
+	OperatingLicensePhone   string `json:"OperatingLicensePhone" xml:"OperatingLicensePhone"`
+	RegisterNo              string `json:"RegisterNo" xml:"RegisterNo"`
+	StartCycle              int    `json:"StartCycle" xml:"StartCycle"`
+	Status                  int    `json:"Status" xml:"Status"`
+	GmtCreate               string `json:"GmtCreate" xml:"GmtCreate"`
+	TaxationLicense         string `json:"TaxationLicense" xml:"TaxationLicense"`
+	AdjustType              int    `json:"AdjustType" xml:"AdjustType"`
+	EndCycle                int    `json:"EndCycle" xml:"EndCycle"`
+	TitleChangeInstructions string `json:"TitleChangeInstructions" xml:"TitleChangeInstructions"`
+	IssueType               int    `json:"IssueType" xml:"IssueType"`
+	Type                    int    `json:"Type" xml:"Type"`
+}

+ 32 - 0
services/bssopenapi/struct_customer_invoice_address.go

@@ -0,0 +1,32 @@
+package bssopenapi
+
+//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.
+
+// CustomerInvoiceAddress is a nested struct in bssopenapi response
+type CustomerInvoiceAddress struct {
+	Id              int    `json:"Id" xml:"Id"`
+	UserId          int    `json:"UserId" xml:"UserId"`
+	UserNick        string `json:"UserNick" xml:"UserNick"`
+	Addressee       string `json:"Addressee" xml:"Addressee"`
+	Province        string `json:"Province" xml:"Province"`
+	City            string `json:"City" xml:"City"`
+	County          string `json:"County" xml:"County"`
+	Street          string `json:"Street" xml:"Street"`
+	PostalCode      string `json:"PostalCode" xml:"PostalCode"`
+	Phone           string `json:"Phone" xml:"Phone"`
+	BizType         string `json:"BizType" xml:"BizType"`
+	DeliveryAddress string `json:"DeliveryAddress" xml:"DeliveryAddress"`
+}

+ 21 - 0
services/bssopenapi/struct_customer_invoice_address_list.go

@@ -0,0 +1,21 @@
+package bssopenapi
+
+//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.
+
+// CustomerInvoiceAddressList is a nested struct in bssopenapi response
+type CustomerInvoiceAddressList struct {
+	CustomerInvoiceAddress []CustomerInvoiceAddress `json:"CustomerInvoiceAddress" xml:"CustomerInvoiceAddress"`
+}

+ 21 - 0
services/bssopenapi/struct_customer_invoice_list.go

@@ -0,0 +1,21 @@
+package bssopenapi
+
+//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.
+
+// CustomerInvoiceList is a nested struct in bssopenapi response
+type CustomerInvoiceList struct {
+	CustomerInvoice []CustomerInvoice `json:"CustomerInvoice" xml:"CustomerInvoice"`
+}

+ 52 - 34
services/bssopenapi/struct_data.go

@@ -17,38 +17,56 @@ package bssopenapi
 
 // Data is a nested struct in bssopenapi response
 type Data struct {
-	TradePrice             float64                                `json:"TradePrice" xml:"TradePrice"`
-	HostId                 string                                 `json:"HostId" xml:"HostId"`
-	OriginalPrice          float64                                `json:"OriginalPrice" xml:"OriginalPrice"`
-	AvailableAmount        string                                 `json:"AvailableAmount" xml:"AvailableAmount"`
-	PageSize               int                                    `json:"PageSize" xml:"PageSize"`
-	MybankCreditAmount     string                                 `json:"MybankCreditAmount" xml:"MybankCreditAmount"`
-	OrderId                string                                 `json:"OrderId" xml:"OrderId"`
-	CreditAmount           string                                 `json:"CreditAmount" xml:"CreditAmount"`
-	AccountID              string                                 `json:"AccountID" xml:"AccountID"`
-	TotalCount             int                                    `json:"TotalCount" xml:"TotalCount"`
-	InstanceId             string                                 `json:"InstanceId" xml:"InstanceId"`
-	BillingCycle           string                                 `json:"BillingCycle" xml:"BillingCycle"`
-	Boolean                bool                                   `json:"Boolean" xml:"Boolean"`
-	OutstandingAmount      float64                                `json:"OutstandingAmount" xml:"OutstandingAmount"`
-	PageNum                int                                    `json:"PageNum" xml:"PageNum"`
-	Currency               string                                 `json:"Currency" xml:"Currency"`
-	Quantity               int                                    `json:"Quantity" xml:"Quantity"`
-	AvailableCashAmount    string                                 `json:"AvailableCashAmount" xml:"AvailableCashAmount"`
-	DiscountPrice          float64                                `json:"DiscountPrice" xml:"DiscountPrice"`
-	AccountName            string                                 `json:"AccountName" xml:"AccountName"`
-	HostName               string                                 `json:"HostName" xml:"HostName"`
-	TotalOutstandingAmount float64                                `json:"TotalOutstandingAmount" xml:"TotalOutstandingAmount"`
-	NewInvoiceAmount       float64                                `json:"NewInvoiceAmount" xml:"NewInvoiceAmount"`
-	Items                  ItemsInQueryBillOverview               `json:"Items" xml:"Items"`
-	ModuleList             ModuleList                             `json:"ModuleList" xml:"ModuleList"`
-	InstanceList           []Instance                             `json:"InstanceList" xml:"InstanceList"`
-	OrderList              OrderListInQueryOrders                 `json:"OrderList" xml:"OrderList"`
-	Modules                Modules                                `json:"Modules" xml:"Modules"`
-	Promotions             Promotions                             `json:"Promotions" xml:"Promotions"`
-	ResourcePackages       ResourcePackages                       `json:"ResourcePackages" xml:"ResourcePackages"`
-	ProductList            ProductList                            `json:"ProductList" xml:"ProductList"`
-	ModuleDetails          ModuleDetailsInGetSubscriptionPrice    `json:"ModuleDetails" xml:"ModuleDetails"`
-	AttributeList          AttributeList                          `json:"AttributeList" xml:"AttributeList"`
-	PromotionDetails       PromotionDetailsInGetSubscriptionPrice `json:"PromotionDetails" xml:"PromotionDetails"`
+	BusinessType               string                                 `json:"BusinessType" xml:"BusinessType"`
+	TradePrice                 float64                                `json:"TradePrice" xml:"TradePrice"`
+	HostId                     string                                 `json:"HostId" xml:"HostId"`
+	OriginalPrice              float64                                `json:"OriginalPrice" xml:"OriginalPrice"`
+	OrderId                    string                                 `json:"OrderId" xml:"OrderId"`
+	TotalCount                 int                                    `json:"TotalCount" xml:"TotalCount"`
+	BillingCycle               string                                 `json:"BillingCycle" xml:"BillingCycle"`
+	Uid                        int                                    `json:"Uid" xml:"Uid"`
+	OutstandingAmount          float64                                `json:"OutstandingAmount" xml:"OutstandingAmount"`
+	InvalidTimeStamp           int                                    `json:"InvalidTimeStamp" xml:"InvalidTimeStamp"`
+	Quantity                   int                                    `json:"Quantity" xml:"Quantity"`
+	AvailableCashAmount        string                                 `json:"AvailableCashAmount" xml:"AvailableCashAmount"`
+	EffectTimeStamp            int                                    `json:"EffectTimeStamp" xml:"EffectTimeStamp"`
+	PrimaryAccount             string                                 `json:"PrimaryAccount" xml:"PrimaryAccount"`
+	HostName                   string                                 `json:"HostName" xml:"HostName"`
+	TotalOutstandingAmount     float64                                `json:"TotalOutstandingAmount" xml:"TotalOutstandingAmount"`
+	Status                     string                                 `json:"Status" xml:"Status"`
+	UserId                     int                                    `json:"UserId" xml:"UserId"`
+	NewInvoiceAmount           float64                                `json:"NewInvoiceAmount" xml:"NewInvoiceAmount"`
+	Numerator                  int                                    `json:"Numerator" xml:"Numerator"`
+	AvailableAmount            string                                 `json:"AvailableAmount" xml:"AvailableAmount"`
+	PageSize                   int                                    `json:"PageSize" xml:"PageSize"`
+	Amount                     string                                 `json:"Amount" xml:"Amount"`
+	MybankCreditAmount         string                                 `json:"MybankCreditAmount" xml:"MybankCreditAmount"`
+	CreditAmount               string                                 `json:"CreditAmount" xml:"CreditAmount"`
+	ThresholdType              int                                    `json:"ThresholdType" xml:"ThresholdType"`
+	AccountID                  string                                 `json:"AccountID" xml:"AccountID"`
+	InstanceId                 string                                 `json:"InstanceId" xml:"InstanceId"`
+	ItemCode                   string                                 `json:"ItemCode" xml:"ItemCode"`
+	ThresholdAmount            string                                 `json:"ThresholdAmount" xml:"ThresholdAmount"`
+	InvoiceApplyId             int                                    `json:"InvoiceApplyId" xml:"InvoiceApplyId"`
+	Boolean                    bool                                   `json:"Boolean" xml:"Boolean"`
+	PageNum                    int                                    `json:"PageNum" xml:"PageNum"`
+	Bid                        string                                 `json:"Bid" xml:"Bid"`
+	Currency                   string                                 `json:"Currency" xml:"Currency"`
+	DiscountPrice              float64                                `json:"DiscountPrice" xml:"DiscountPrice"`
+	AccountName                string                                 `json:"AccountName" xml:"AccountName"`
+	Denominator                int                                    `json:"Denominator" xml:"Denominator"`
+	ModuleList                 ModuleList                             `json:"ModuleList" xml:"ModuleList"`
+	InstanceList               []Instance                             `json:"InstanceList" xml:"InstanceList"`
+	OrderList                  OrderListInQueryOrders                 `json:"OrderList" xml:"OrderList"`
+	Modules                    ModulesInQueryInstanceGaapCost         `json:"Modules" xml:"Modules"`
+	Items                      ItemsInQueryInstanceBill               `json:"Items" xml:"Items"`
+	ResourcePackages           ResourcePackages                       `json:"ResourcePackages" xml:"ResourcePackages"`
+	ProductList                ProductList                            `json:"ProductList" xml:"ProductList"`
+	ModuleDetails              ModuleDetailsInGetSubscriptionPrice    `json:"ModuleDetails" xml:"ModuleDetails"`
+	PromotionDetails           PromotionDetailsInGetSubscriptionPrice `json:"PromotionDetails" xml:"PromotionDetails"`
+	CustomerInvoiceList        CustomerInvoiceList                    `json:"CustomerInvoiceList" xml:"CustomerInvoiceList"`
+	EvaluateList               EvaluateList                           `json:"EvaluateList" xml:"EvaluateList"`
+	Promotions                 Promotions                             `json:"Promotions" xml:"Promotions"`
+	CustomerInvoiceAddressList CustomerInvoiceAddressList             `json:"CustomerInvoiceAddressList" xml:"CustomerInvoiceAddressList"`
+	AttributeList              AttributeList                          `json:"AttributeList" xml:"AttributeList"`
 }

+ 21 - 0
services/bssopenapi/struct_datas_in_query_account_book_list.go

@@ -0,0 +1,21 @@
+package bssopenapi
+
+//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.
+
+// DatasInQueryAccountBookList is a nested struct in bssopenapi response
+type DatasInQueryAccountBookList struct {
+	Data []Data `json:"Data" xml:"Data"`
+}

+ 21 - 0
services/bssopenapi/struct_datas_in_query_enduser_status.go

@@ -0,0 +1,21 @@
+package bssopenapi
+
+//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.
+
+// DatasInQueryEnduserStatus is a nested struct in bssopenapi response
+type DatasInQueryEnduserStatus struct {
+	Data []Data `json:"Data" xml:"Data"`
+}

+ 21 - 0
services/bssopenapi/struct_datas_in_query_user_alarm_threshold.go

@@ -0,0 +1,21 @@
+package bssopenapi
+
+//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.
+
+// DatasInQueryUserAlarmThreshold is a nested struct in bssopenapi response
+type DatasInQueryUserAlarmThreshold struct {
+	Data []Data `json:"Data" xml:"Data"`
+}

+ 41 - 0
services/bssopenapi/struct_evaluate.go

@@ -0,0 +1,41 @@
+package bssopenapi
+
+//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.
+
+// Evaluate is a nested struct in bssopenapi response
+type Evaluate struct {
+	Id                 int    `json:"Id" xml:"Id"`
+	GmtCreate          string `json:"GmtCreate" xml:"GmtCreate"`
+	GmtModified        string `json:"GmtModified" xml:"GmtModified"`
+	UserId             int    `json:"UserId" xml:"UserId"`
+	UserNick           string `json:"UserNick" xml:"UserNick"`
+	OutBizId           string `json:"OutBizId" xml:"OutBizId"`
+	BillId             int    `json:"BillId" xml:"BillId"`
+	ItemId             int    `json:"ItemId" xml:"ItemId"`
+	BillCycle          string `json:"BillCycle" xml:"BillCycle"`
+	BizType            string `json:"BizType" xml:"BizType"`
+	OriginalAmount     int    `json:"OriginalAmount" xml:"OriginalAmount"`
+	PresentAmount      int    `json:"PresentAmount" xml:"PresentAmount"`
+	CanInvoiceAmount   int    `json:"CanInvoiceAmount" xml:"CanInvoiceAmount"`
+	InvoicedAmount     int    `json:"InvoicedAmount" xml:"InvoicedAmount"`
+	OffsetCostAmount   int    `json:"OffsetCostAmount" xml:"OffsetCostAmount"`
+	OffsetAcceptAmount int    `json:"OffsetAcceptAmount" xml:"OffsetAcceptAmount"`
+	Status             int    `json:"Status" xml:"Status"`
+	OpId               string `json:"OpId" xml:"OpId"`
+	Name               string `json:"Name" xml:"Name"`
+	BizTime            string `json:"BizTime" xml:"BizTime"`
+	Type               int    `json:"Type" xml:"Type"`
+}

+ 21 - 0
services/bssopenapi/struct_evaluate_list.go

@@ -0,0 +1,21 @@
+package bssopenapi
+
+//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.
+
+// EvaluateList is a nested struct in bssopenapi response
+type EvaluateList struct {
+	Evaluate []Evaluate `json:"Evaluate" xml:"Evaluate"`
+}

+ 29 - 27
services/bssopenapi/struct_instance.go

@@ -17,31 +17,33 @@ package bssopenapi
 
 // Instance is a nested struct in bssopenapi response
 type Instance struct {
-	Region              string `json:"Region" xml:"Region"`
-	ExpectedReleaseTime string `json:"ExpectedReleaseTime" xml:"ExpectedReleaseTime"`
-	PackageType         string `json:"PackageType" xml:"PackageType"`
-	CreateTime          string `json:"CreateTime" xml:"CreateTime"`
-	OwnerId             int    `json:"OwnerId" xml:"OwnerId"`
-	TotalAmount         string `json:"TotalAmount" xml:"TotalAmount"`
-	RenewStatus         string `json:"RenewStatus" xml:"RenewStatus"`
-	SubStatus           string `json:"SubStatus" xml:"SubStatus"`
-	InstanceId          string `json:"InstanceId" xml:"InstanceId"`
-	TotalAmountUnit     string `json:"TotalAmountUnit" xml:"TotalAmountUnit"`
-	SubscriptionType    string `json:"SubscriptionType" xml:"SubscriptionType"`
-	RemainingAmountUnit string `json:"RemainingAmountUnit" xml:"RemainingAmountUnit"`
-	StopTime            string `json:"StopTime" xml:"StopTime"`
-	Seller              string `json:"Seller" xml:"Seller"`
-	Remark              string `json:"Remark" xml:"Remark"`
-	ProductType         string `json:"ProductType" xml:"ProductType"`
-	ProductCode         string `json:"ProductCode" xml:"ProductCode"`
-	RenewalDuration     int    `json:"RenewalDuration" xml:"RenewalDuration"`
-	RenewalDurationUnit string `json:"RenewalDurationUnit" xml:"RenewalDurationUnit"`
-	RemainingAmount     string `json:"RemainingAmount" xml:"RemainingAmount"`
-	EffectiveTime       string `json:"EffectiveTime" xml:"EffectiveTime"`
-	ExpiryTime          string `json:"ExpiryTime" xml:"ExpiryTime"`
-	EndTime             string `json:"EndTime" xml:"EndTime"`
-	SellerId            int    `json:"SellerId" xml:"SellerId"`
-	InstanceID          string `json:"InstanceID" xml:"InstanceID"`
-	ReleaseTime         string `json:"ReleaseTime" xml:"ReleaseTime"`
-	Status              string `json:"Status" xml:"Status"`
+	Region              string   `json:"Region" xml:"Region"`
+	ExpectedReleaseTime string   `json:"ExpectedReleaseTime" xml:"ExpectedReleaseTime"`
+	PackageType         string   `json:"PackageType" xml:"PackageType"`
+	DeductType          string   `json:"DeductType" xml:"DeductType"`
+	CreateTime          string   `json:"CreateTime" xml:"CreateTime"`
+	OwnerId             int      `json:"OwnerId" xml:"OwnerId"`
+	TotalAmount         string   `json:"TotalAmount" xml:"TotalAmount"`
+	RenewStatus         string   `json:"RenewStatus" xml:"RenewStatus"`
+	SubStatus           string   `json:"SubStatus" xml:"SubStatus"`
+	InstanceId          string   `json:"InstanceId" xml:"InstanceId"`
+	TotalAmountUnit     string   `json:"TotalAmountUnit" xml:"TotalAmountUnit"`
+	SubscriptionType    string   `json:"SubscriptionType" xml:"SubscriptionType"`
+	RemainingAmountUnit string   `json:"RemainingAmountUnit" xml:"RemainingAmountUnit"`
+	StopTime            string   `json:"StopTime" xml:"StopTime"`
+	Seller              string   `json:"Seller" xml:"Seller"`
+	Remark              string   `json:"Remark" xml:"Remark"`
+	ProductType         string   `json:"ProductType" xml:"ProductType"`
+	ProductCode         string   `json:"ProductCode" xml:"ProductCode"`
+	RenewalDuration     int      `json:"RenewalDuration" xml:"RenewalDuration"`
+	RenewalDurationUnit string   `json:"RenewalDurationUnit" xml:"RenewalDurationUnit"`
+	RemainingAmount     string   `json:"RemainingAmount" xml:"RemainingAmount"`
+	EffectiveTime       string   `json:"EffectiveTime" xml:"EffectiveTime"`
+	ExpiryTime          string   `json:"ExpiryTime" xml:"ExpiryTime"`
+	EndTime             string   `json:"EndTime" xml:"EndTime"`
+	SellerId            int      `json:"SellerId" xml:"SellerId"`
+	InstanceID          string   `json:"InstanceID" xml:"InstanceID"`
+	ReleaseTime         string   `json:"ReleaseTime" xml:"ReleaseTime"`
+	Status              string   `json:"Status" xml:"Status"`
+	ApplicableProducts  []string `json:"ApplicableProducts" xml:"ApplicableProducts"`
 }

+ 33 - 0
services/bssopenapi/struct_instance_in_query_resource_package_instances.go

@@ -0,0 +1,33 @@
+package bssopenapi
+
+//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.
+
+// InstanceInQueryResourcePackageInstances is a nested struct in bssopenapi response
+type InstanceInQueryResourcePackageInstances struct {
+	InstanceId          string             `json:"InstanceId" xml:"InstanceId"`
+	Region              string             `json:"Region" xml:"Region"`
+	TotalAmount         string             `json:"TotalAmount" xml:"TotalAmount"`
+	TotalAmountUnit     string             `json:"TotalAmountUnit" xml:"TotalAmountUnit"`
+	RemainingAmount     string             `json:"RemainingAmount" xml:"RemainingAmount"`
+	RemainingAmountUnit string             `json:"RemainingAmountUnit" xml:"RemainingAmountUnit"`
+	EffectiveTime       string             `json:"EffectiveTime" xml:"EffectiveTime"`
+	ExpiryTime          string             `json:"ExpiryTime" xml:"ExpiryTime"`
+	Remark              string             `json:"Remark" xml:"Remark"`
+	PackageType         string             `json:"PackageType" xml:"PackageType"`
+	Status              string             `json:"Status" xml:"Status"`
+	DeductType          string             `json:"DeductType" xml:"DeductType"`
+	ApplicableProducts  ApplicableProducts `json:"ApplicableProducts" xml:"ApplicableProducts"`
+}

+ 1 - 1
services/bssopenapi/struct_instances.go

@@ -17,5 +17,5 @@ package bssopenapi
 
 // Instances is a nested struct in bssopenapi response
 type Instances struct {
-	Instance []Instance `json:"Instance" xml:"Instance"`
+	Instance []InstanceInQueryResourcePackageInstances `json:"Instance" xml:"Instance"`
 }

+ 0 - 6
services/bssopenapi/struct_item_in_query_instance_bill.go

@@ -18,21 +18,15 @@ package bssopenapi
 // ItemInQueryInstanceBill is a nested struct in bssopenapi response
 type ItemInQueryInstanceBill struct {
 	InstanceID                string  `json:"InstanceID" xml:"InstanceID"`
-	NickName                  string  `json:"NickName" xml:"NickName"`
 	ServicePeriod             float64 `json:"ServicePeriod" xml:"ServicePeriod"`
 	BillingType               string  `json:"BillingType" xml:"BillingType"`
-	InstanceConfig            string  `json:"InstanceConfig" xml:"InstanceConfig"`
-	InstanceSpec              string  `json:"InstanceSpec" xml:"InstanceSpec"`
 	CostUnit                  string  `json:"CostUnit" xml:"CostUnit"`
 	ProductCode               string  `json:"ProductCode" xml:"ProductCode"`
 	ProductType               string  `json:"ProductType" xml:"ProductType"`
 	SubscriptionType          string  `json:"SubscriptionType" xml:"SubscriptionType"`
 	ProductName               string  `json:"ProductName" xml:"ProductName"`
 	ProductDetail             string  `json:"ProductDetail" xml:"ProductDetail"`
-	Tag                       string  `json:"Tag" xml:"Tag"`
-	ResourceGroup             string  `json:"ResourceGroup" xml:"ResourceGroup"`
 	OwnerID                   int     `json:"OwnerID" xml:"OwnerID"`
-	Region                    string  `json:"Region" xml:"Region"`
 	BillingItem               string  `json:"BillingItem" xml:"BillingItem"`
 	ListPrice                 float64 `json:"ListPrice" xml:"ListPrice"`
 	ListPriceUnit             string  `json:"ListPriceUnit" xml:"ListPriceUnit"`

+ 4 - 0
services/bssopenapi/struct_module.go

@@ -20,6 +20,7 @@ type Module struct {
 	MonthGaapDeductedByPrepaidCard   string     `json:"MonthGaapDeductedByPrepaidCard" xml:"MonthGaapDeductedByPrepaidCard"`
 	DeductedByCashCoupons            string     `json:"DeductedByCashCoupons" xml:"DeductedByCashCoupons"`
 	PayerAccount                     string     `json:"PayerAccount" xml:"PayerAccount"`
+	PriceUnit                        string     `json:"PriceUnit" xml:"PriceUnit"`
 	GaapPretaxAmountLocal            string     `json:"GaapPretaxAmountLocal" xml:"GaapPretaxAmountLocal"`
 	UsageStartDate                   string     `json:"UsageStartDate" xml:"UsageStartDate"`
 	MonthGaapPaymentAmount           string     `json:"MonthGaapPaymentAmount" xml:"MonthGaapPaymentAmount"`
@@ -37,6 +38,7 @@ type Module struct {
 	InstanceID                       string     `json:"InstanceID" xml:"InstanceID"`
 	UnallocatedPretaxAmount          string     `json:"UnallocatedPretaxAmount" xml:"UnallocatedPretaxAmount"`
 	PriceType                        string     `json:"PriceType" xml:"PriceType"`
+	Config                           string     `json:"Config" xml:"Config"`
 	GaapPricingDiscount              string     `json:"GaapPricingDiscount" xml:"GaapPricingDiscount"`
 	AccountingUnit                   string     `json:"AccountingUnit" xml:"AccountingUnit"`
 	MonthGaapPretaxAmount            string     `json:"MonthGaapPretaxAmount" xml:"MonthGaapPretaxAmount"`
@@ -68,9 +70,11 @@ type Module struct {
 	OrderType                        string     `json:"OrderType" xml:"OrderType"`
 	GaapPaymentAmount                string     `json:"GaapPaymentAmount" xml:"GaapPaymentAmount"`
 	MonthGaapDeductedByCoupons       string     `json:"MonthGaapDeductedByCoupons" xml:"MonthGaapDeductedByCoupons"`
+	PriceUnitQuantity                string     `json:"PriceUnitQuantity" xml:"PriceUnitQuantity"`
 	PretaxAmountLocal                string     `json:"PretaxAmountLocal" xml:"PretaxAmountLocal"`
 	BillType                         string     `json:"BillType" xml:"BillType"`
 	UnallocatedPaymentAmount         string     `json:"UnallocatedPaymentAmount" xml:"UnallocatedPaymentAmount"`
 	MonthGaapDeductedByCashCoupons   string     `json:"MonthGaapDeductedByCashCoupons" xml:"MonthGaapDeductedByCashCoupons"`
 	ConfigList                       ConfigList `json:"ConfigList" xml:"ConfigList"`
+	TierPrices                       TierPrices `json:"TierPrices" xml:"TierPrices"`
 }

+ 21 - 0
services/bssopenapi/struct_modules_in_query_instance_gaap_cost.go

@@ -0,0 +1,21 @@
+package bssopenapi
+
+//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.
+
+// ModulesInQueryInstanceGaapCost is a nested struct in bssopenapi response
+type ModulesInQueryInstanceGaapCost struct {
+	Module []Module `json:"Module" xml:"Module"`
+}

+ 2 - 2
services/bssopenapi/struct_modules.go → services/bssopenapi/struct_modules_in_query_price_list.go

@@ -15,7 +15,7 @@ package bssopenapi
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-// Modules is a nested struct in bssopenapi response
-type Modules struct {
+// ModulesInQueryPriceList is a nested struct in bssopenapi response
+type ModulesInQueryPriceList struct {
 	Module []Module `json:"Module" xml:"Module"`
 }

+ 27 - 0
services/bssopenapi/struct_tier_price.go

@@ -0,0 +1,27 @@
+package bssopenapi
+
+//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.
+
+// TierPrice is a nested struct in bssopenapi response
+type TierPrice struct {
+	TierStart   string `json:"TierStart" xml:"TierStart"`
+	StartSymbol string `json:"StartSymbol" xml:"StartSymbol"`
+	TierEnd     string `json:"TierEnd" xml:"TierEnd"`
+	EndSymbol   string `json:"EndSymbol" xml:"EndSymbol"`
+	TierType    string `json:"TierType" xml:"TierType"`
+	PriceType   string `json:"PriceType" xml:"PriceType"`
+	Price       string `json:"Price" xml:"Price"`
+}

+ 21 - 0
services/bssopenapi/struct_tier_prices.go

@@ -0,0 +1,21 @@
+package bssopenapi
+
+//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.
+
+// TierPrices is a nested struct in bssopenapi response
+type TierPrices struct {
+	TierPrice []TierPrice `json:"TierPrice" xml:"TierPrice"`
+}

+ 108 - 0
services/bssopenapi/subscribe_detail.go

@@ -0,0 +1,108 @@
+package bssopenapi
+
+//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"
+)
+
+// SubscribeDetail invokes the bssopenapi.SubscribeDetail API synchronously
+// api document: https://help.aliyun.com/api/bssopenapi/subscribedetail.html
+func (client *Client) SubscribeDetail(request *SubscribeDetailRequest) (response *SubscribeDetailResponse, err error) {
+	response = CreateSubscribeDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SubscribeDetailWithChan invokes the bssopenapi.SubscribeDetail API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/subscribedetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SubscribeDetailWithChan(request *SubscribeDetailRequest) (<-chan *SubscribeDetailResponse, <-chan error) {
+	responseChan := make(chan *SubscribeDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SubscribeDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SubscribeDetailWithCallback invokes the bssopenapi.SubscribeDetail API asynchronously
+// api document: https://help.aliyun.com/api/bssopenapi/subscribedetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SubscribeDetailWithCallback(request *SubscribeDetailRequest, callback func(response *SubscribeDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SubscribeDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.SubscribeDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SubscribeDetailRequest is the request struct for api SubscribeDetail
+type SubscribeDetailRequest struct {
+	*requests.RpcRequest
+	BucketOwnerId   requests.Integer `position:"Query" name:"BucketOwnerId"`
+	SubscribeType   *[]string        `position:"Query" name:"SubscribeType"  type:"Repeated"`
+	SubscribeBucket string           `position:"Query" name:"SubscribeBucket"`
+}
+
+// SubscribeDetailResponse is the response struct for api SubscribeDetail
+type SubscribeDetailResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+}
+
+// CreateSubscribeDetailRequest creates a request to invoke SubscribeDetail API
+func CreateSubscribeDetailRequest() (request *SubscribeDetailRequest) {
+	request = &SubscribeDetailRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("BssOpenApi", "2017-12-14", "SubscribeDetail", "", "")
+	return
+}
+
+// CreateSubscribeDetailResponse creates a response to parse from SubscribeDetail response
+func CreateSubscribeDetailResponse() (response *SubscribeDetailResponse) {
+	response = &SubscribeDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}