소스 검색

由廷诚发起的CLOUDPHOTO SDK自动发布, BUILD_ID=346, 版本号:0.7.6

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 8 년 전
부모
커밋
c83880d938
53개의 변경된 파일368개의 추가작업 그리고 113개의 파일을 삭제
  1. 4 0
      ChangeLog.txt
  2. 1 1
      services/cloudphoto/activate_photos.go
  3. 1 1
      services/cloudphoto/add_album_photos.go
  4. 2 2
      services/cloudphoto/create_album.go
  5. 7 5
      services/cloudphoto/create_photo.go
  6. 2 2
      services/cloudphoto/create_photo_store.go
  7. 3 3
      services/cloudphoto/create_transaction.go
  8. 1 1
      services/cloudphoto/delete_albums.go
  9. 1 1
      services/cloudphoto/delete_photos.go
  10. 6 5
      services/cloudphoto/edit_photo_store.go
  11. 4 4
      services/cloudphoto/edit_photos.go
  12. 1 1
      services/cloudphoto/get_download_url.go
  13. 1 1
      services/cloudphoto/get_download_urls.go
  14. 2 2
      services/cloudphoto/get_framed_photo_urls.go
  15. 8 5
      services/cloudphoto/get_library.go
  16. 10 9
      services/cloudphoto/get_photo_store.go
  17. 3 1
      services/cloudphoto/get_photos.go
  18. 4 2
      services/cloudphoto/get_photos_by_md5s.go
  19. 1 1
      services/cloudphoto/get_private_access_urls.go
  20. 2 2
      services/cloudphoto/get_public_access_urls.go
  21. 112 0
      services/cloudphoto/get_similar_photos.go
  22. 1 1
      services/cloudphoto/get_thumbnail.go
  23. 1 1
      services/cloudphoto/get_thumbnails.go
  24. 1 1
      services/cloudphoto/get_video_cover.go
  25. 2 2
      services/cloudphoto/inactivate_photos.go
  26. 1 1
      services/cloudphoto/like_photo.go
  27. 4 4
      services/cloudphoto/list_album_photos.go
  28. 3 3
      services/cloudphoto/list_albums.go
  29. 3 3
      services/cloudphoto/list_face_photos.go
  30. 4 4
      services/cloudphoto/list_faces.go
  31. 3 3
      services/cloudphoto/list_moment_photos.go
  32. 3 3
      services/cloudphoto/list_moments.go
  33. 1 1
      services/cloudphoto/list_photo_faces.go
  34. 1 1
      services/cloudphoto/list_photo_tags.go
  35. 5 3
      services/cloudphoto/list_photos.go
  36. 3 3
      services/cloudphoto/list_tag_photos.go
  37. 8 6
      services/cloudphoto/list_time_line_photos.go
  38. 6 4
      services/cloudphoto/list_time_lines.go
  39. 1 1
      services/cloudphoto/merge_faces.go
  40. 2 2
      services/cloudphoto/move_album_photos.go
  41. 2 2
      services/cloudphoto/move_face_photos.go
  42. 1 1
      services/cloudphoto/reactivate_photos.go
  43. 120 0
      services/cloudphoto/register_photo.go
  44. 1 1
      services/cloudphoto/register_tag.go
  45. 1 1
      services/cloudphoto/remove_album_photos.go
  46. 1 1
      services/cloudphoto/remove_face_photos.go
  47. 2 2
      services/cloudphoto/rename_album.go
  48. 1 1
      services/cloudphoto/rename_face.go
  49. 5 3
      services/cloudphoto/search_photos.go
  50. 1 1
      services/cloudphoto/set_album_cover.go
  51. 1 1
      services/cloudphoto/set_face_cover.go
  52. 2 2
      services/cloudphoto/tag_photo.go
  53. 1 1
      services/cloudphoto/toggle_features.go

+ 4 - 0
ChangeLog.txt

@@ -1,3 +1,7 @@
+2018-01-11 Version: 0.7.6
+1, replace photo tag 2000 upgrade to 5000
+2, add TrashQuota
+
 2018-01-11 Version: 0.7.5
 1, Make the json.Unmarshal more robust
 

+ 1 - 1
services/cloudphoto/activate_photos.go

@@ -65,8 +65,8 @@ func (client *Client) ActivatePhotosWithCallback(request *ActivatePhotosRequest,
 type ActivatePhotosRequest struct {
 	*requests.RpcRequest
 	LibraryId string    `position:"Query" name:"LibraryId"`
-	StoreName string    `position:"Query" name:"StoreName"`
 	PhotoId   *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName string    `position:"Query" name:"StoreName"`
 }
 
 type ActivatePhotosResponse struct {

+ 1 - 1
services/cloudphoto/add_album_photos.go

@@ -65,9 +65,9 @@ func (client *Client) AddAlbumPhotosWithCallback(request *AddAlbumPhotosRequest,
 type AddAlbumPhotosRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
-	StoreName string           `position:"Query" name:"StoreName"`
 	AlbumId   requests.Integer `position:"Query" name:"AlbumId"`
 	PhotoId   *[]string        `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName string           `position:"Query" name:"StoreName"`
 }
 
 type AddAlbumPhotosResponse struct {

+ 2 - 2
services/cloudphoto/create_album.go

@@ -64,10 +64,10 @@ func (client *Client) CreateAlbumWithCallback(request *CreateAlbumRequest, callb
 
 type CreateAlbumRequest struct {
 	*requests.RpcRequest
-	Remark    string `position:"Query" name:"Remark"`
+	AlbumName string `position:"Query" name:"AlbumName"`
 	LibraryId string `position:"Query" name:"LibraryId"`
 	StoreName string `position:"Query" name:"StoreName"`
-	AlbumName string `position:"Query" name:"AlbumName"`
+	Remark    string `position:"Query" name:"Remark"`
 }
 
 type CreateAlbumResponse struct {

+ 7 - 5
services/cloudphoto/create_photo.go

@@ -64,15 +64,15 @@ func (client *Client) CreatePhotoWithCallback(request *CreatePhotoRequest, callb
 
 type CreatePhotoRequest struct {
 	*requests.RpcRequest
-	Staging         string           `position:"Query" name:"Staging"`
-	ShareExpireTime requests.Integer `position:"Query" name:"ShareExpireTime"`
 	PhotoTitle      string           `position:"Query" name:"PhotoTitle"`
-	Remark          string           `position:"Query" name:"Remark"`
-	UploadType      string           `position:"Query" name:"UploadType"`
 	LibraryId       string           `position:"Query" name:"LibraryId"`
+	ShareExpireTime requests.Integer `position:"Query" name:"ShareExpireTime"`
 	StoreName       string           `position:"Query" name:"StoreName"`
-	FileId          string           `position:"Query" name:"FileId"`
+	UploadType      string           `position:"Query" name:"UploadType"`
+	Remark          string           `position:"Query" name:"Remark"`
 	SessionId       string           `position:"Query" name:"SessionId"`
+	Staging         string           `position:"Query" name:"Staging"`
+	FileId          string           `position:"Query" name:"FileId"`
 }
 
 type CreatePhotoResponse struct {
@@ -85,9 +85,11 @@ type CreatePhotoResponse struct {
 		Id              int    `json:"Id" xml:"Id"`
 		Title           string `json:"Title" xml:"Title"`
 		FileId          string `json:"FileId" xml:"FileId"`
+		Location        string `json:"Location" xml:"Location"`
 		State           string `json:"State" xml:"State"`
 		Md5             string `json:"Md5" xml:"Md5"`
 		IsVideo         bool   `json:"IsVideo" xml:"IsVideo"`
+		Size            int    `json:"Size" xml:"Size"`
 		Remark          string `json:"Remark" xml:"Remark"`
 		Width           int    `json:"Width" xml:"Width"`
 		Height          int    `json:"Height" xml:"Height"`

+ 2 - 2
services/cloudphoto/create_photo_store.go

@@ -64,10 +64,10 @@ func (client *Client) CreatePhotoStoreWithCallback(request *CreatePhotoStoreRequ
 
 type CreatePhotoStoreRequest struct {
 	*requests.RpcRequest
-	DefaultQuota requests.Integer `position:"Query" name:"DefaultQuota"`
 	BucketName   string           `position:"Query" name:"BucketName"`
-	Remark       string           `position:"Query" name:"Remark"`
 	StoreName    string           `position:"Query" name:"StoreName"`
+	Remark       string           `position:"Query" name:"Remark"`
+	DefaultQuota requests.Integer `position:"Query" name:"DefaultQuota"`
 }
 
 type CreatePhotoStoreResponse struct {

+ 3 - 3
services/cloudphoto/create_transaction.go

@@ -64,12 +64,12 @@ func (client *Client) CreateTransactionWithCallback(request *CreateTransactionRe
 
 type CreateTransactionRequest struct {
 	*requests.RpcRequest
-	Md5       string           `position:"Query" name:"Md5"`
+	Ext       string           `position:"Query" name:"Ext"`
+	Size      requests.Integer `position:"Query" name:"Size"`
 	LibraryId string           `position:"Query" name:"LibraryId"`
 	StoreName string           `position:"Query" name:"StoreName"`
 	Force     string           `position:"Query" name:"Force"`
-	Ext       string           `position:"Query" name:"Ext"`
-	Size      requests.Integer `position:"Query" name:"Size"`
+	Md5       string           `position:"Query" name:"Md5"`
 }
 
 type CreateTransactionResponse struct {

+ 1 - 1
services/cloudphoto/delete_albums.go

@@ -65,8 +65,8 @@ func (client *Client) DeleteAlbumsWithCallback(request *DeleteAlbumsRequest, cal
 type DeleteAlbumsRequest struct {
 	*requests.RpcRequest
 	LibraryId string    `position:"Query" name:"LibraryId"`
-	StoreName string    `position:"Query" name:"StoreName"`
 	AlbumId   *[]string `position:"Query" name:"AlbumId"  type:"Repeated"`
+	StoreName string    `position:"Query" name:"StoreName"`
 }
 
 type DeleteAlbumsResponse struct {

+ 1 - 1
services/cloudphoto/delete_photos.go

@@ -65,8 +65,8 @@ func (client *Client) DeletePhotosWithCallback(request *DeletePhotosRequest, cal
 type DeletePhotosRequest struct {
 	*requests.RpcRequest
 	LibraryId string    `position:"Query" name:"LibraryId"`
-	StoreName string    `position:"Query" name:"StoreName"`
 	PhotoId   *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName string    `position:"Query" name:"StoreName"`
 }
 
 type DeletePhotosResponse struct {

+ 6 - 5
services/cloudphoto/edit_photo_store.go

@@ -64,11 +64,12 @@ func (client *Client) EditPhotoStoreWithCallback(request *EditPhotoStoreRequest,
 
 type EditPhotoStoreRequest struct {
 	*requests.RpcRequest
-	DefaultQuota     requests.Integer `position:"Query" name:"DefaultQuota"`
-	Remark           string           `position:"Query" name:"Remark"`
-	AutoCleanDays    requests.Integer `position:"Query" name:"AutoCleanDays"`
-	StoreName        string           `position:"Query" name:"StoreName"`
-	AutoCleanEnabled string           `position:"Query" name:"AutoCleanEnabled"`
+	AutoCleanEnabled  string           `position:"Query" name:"AutoCleanEnabled"`
+	DefaultTrashQuota requests.Integer `position:"Query" name:"DefaultTrashQuota"`
+	StoreName         string           `position:"Query" name:"StoreName"`
+	Remark            string           `position:"Query" name:"Remark"`
+	DefaultQuota      requests.Integer `position:"Query" name:"DefaultQuota"`
+	AutoCleanDays     requests.Integer `position:"Query" name:"AutoCleanDays"`
 }
 
 type EditPhotoStoreResponse struct {

+ 4 - 4
services/cloudphoto/edit_photos.go

@@ -64,12 +64,12 @@ func (client *Client) EditPhotosWithCallback(request *EditPhotosRequest, callbac
 
 type EditPhotosRequest struct {
 	*requests.RpcRequest
-	Title           string           `position:"Query" name:"Title"`
-	ShareExpireTime requests.Integer `position:"Query" name:"ShareExpireTime"`
-	Remark          string           `position:"Query" name:"Remark"`
 	LibraryId       string           `position:"Query" name:"LibraryId"`
-	StoreName       string           `position:"Query" name:"StoreName"`
+	ShareExpireTime requests.Integer `position:"Query" name:"ShareExpireTime"`
 	PhotoId         *[]string        `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName       string           `position:"Query" name:"StoreName"`
+	Remark          string           `position:"Query" name:"Remark"`
+	Title           string           `position:"Query" name:"Title"`
 }
 
 type EditPhotosResponse struct {

+ 1 - 1
services/cloudphoto/get_download_url.go

@@ -65,8 +65,8 @@ func (client *Client) GetDownloadUrlWithCallback(request *GetDownloadUrlRequest,
 type GetDownloadUrlRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
-	StoreName string           `position:"Query" name:"StoreName"`
 	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
+	StoreName string           `position:"Query" name:"StoreName"`
 }
 
 type GetDownloadUrlResponse struct {

+ 1 - 1
services/cloudphoto/get_download_urls.go

@@ -65,8 +65,8 @@ func (client *Client) GetDownloadUrlsWithCallback(request *GetDownloadUrlsReques
 type GetDownloadUrlsRequest struct {
 	*requests.RpcRequest
 	LibraryId string    `position:"Query" name:"LibraryId"`
-	StoreName string    `position:"Query" name:"StoreName"`
 	PhotoId   *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName string    `position:"Query" name:"StoreName"`
 }
 
 type GetDownloadUrlsResponse struct {

+ 2 - 2
services/cloudphoto/get_framed_photo_urls.go

@@ -64,10 +64,10 @@ func (client *Client) GetFramedPhotoUrlsWithCallback(request *GetFramedPhotoUrls
 
 type GetFramedPhotoUrlsRequest struct {
 	*requests.RpcRequest
-	LibraryId string    `position:"Query" name:"LibraryId"`
-	StoreName string    `position:"Query" name:"StoreName"`
 	FrameId   string    `position:"Query" name:"FrameId"`
+	LibraryId string    `position:"Query" name:"LibraryId"`
 	PhotoId   *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName string    `position:"Query" name:"StoreName"`
 }
 
 type GetFramedPhotoUrlsResponse struct {

+ 8 - 5
services/cloudphoto/get_library.go

@@ -76,11 +76,14 @@ type GetLibraryResponse struct {
 	Action    string `json:"Action" xml:"Action"`
 	Library   struct {
 		Quota struct {
-			TotalQuota  int `json:"TotalQuota" xml:"TotalQuota"`
-			FacesCount  int `json:"FacesCount" xml:"FacesCount"`
-			PhotosCount int `json:"PhotosCount" xml:"PhotosCount"`
-			UsedQuota   int `json:"UsedQuota" xml:"UsedQuota"`
-			VideosCount int `json:"VideosCount" xml:"VideosCount"`
+			TotalQuota      int `json:"TotalQuota" xml:"TotalQuota"`
+			TotalTrashQuota int `json:"TotalTrashQuota" xml:"TotalTrashQuota"`
+			FacesCount      int `json:"FacesCount" xml:"FacesCount"`
+			PhotosCount     int `json:"PhotosCount" xml:"PhotosCount"`
+			UsedQuota       int `json:"UsedQuota" xml:"UsedQuota"`
+			VideosCount     int `json:"VideosCount" xml:"VideosCount"`
+			ActiveSize      int `json:"ActiveSize" xml:"ActiveSize"`
+			InactiveSize    int `json:"InactiveSize" xml:"InactiveSize"`
 		} `json:"Quota" xml:"Quota"`
 		AutoCleanConfig struct {
 			AutoCleanEnabled bool `json:"AutoCleanEnabled" xml:"AutoCleanEnabled"`

+ 10 - 9
services/cloudphoto/get_photo_store.go

@@ -74,15 +74,16 @@ type GetPhotoStoreResponse struct {
 	RequestId  string `json:"RequestId" xml:"RequestId"`
 	Action     string `json:"Action" xml:"Action"`
 	PhotoStore struct {
-		Id               int    `json:"Id" xml:"Id"`
-		Name             string `json:"Name" xml:"Name"`
-		Remark           string `json:"Remark" xml:"Remark"`
-		AutoCleanEnabled bool   `json:"AutoCleanEnabled" xml:"AutoCleanEnabled"`
-		AutoCleanDays    int    `json:"AutoCleanDays" xml:"AutoCleanDays"`
-		DefaultQuota     int    `json:"DefaultQuota" xml:"DefaultQuota"`
-		Ctime            int    `json:"Ctime" xml:"Ctime"`
-		Mtime            int    `json:"Mtime" xml:"Mtime"`
-		Buckets          []struct {
+		Id                int    `json:"Id" xml:"Id"`
+		Name              string `json:"Name" xml:"Name"`
+		Remark            string `json:"Remark" xml:"Remark"`
+		AutoCleanEnabled  bool   `json:"AutoCleanEnabled" xml:"AutoCleanEnabled"`
+		AutoCleanDays     int    `json:"AutoCleanDays" xml:"AutoCleanDays"`
+		DefaultQuota      int    `json:"DefaultQuota" xml:"DefaultQuota"`
+		DefaultTrashQuota int    `json:"DefaultTrashQuota" xml:"DefaultTrashQuota"`
+		Ctime             int    `json:"Ctime" xml:"Ctime"`
+		Mtime             int    `json:"Mtime" xml:"Mtime"`
+		Buckets           []struct {
 			Name   string `json:"Name" xml:"Name"`
 			Region string `json:"Region" xml:"Region"`
 			State  string `json:"State" xml:"State"`

+ 3 - 1
services/cloudphoto/get_photos.go

@@ -65,8 +65,8 @@ func (client *Client) GetPhotosWithCallback(request *GetPhotosRequest, callback
 type GetPhotosRequest struct {
 	*requests.RpcRequest
 	LibraryId string    `position:"Query" name:"LibraryId"`
-	StoreName string    `position:"Query" name:"StoreName"`
 	PhotoId   *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName string    `position:"Query" name:"StoreName"`
 }
 
 type GetPhotosResponse struct {
@@ -79,12 +79,14 @@ type GetPhotosResponse struct {
 		Id              int    `json:"Id" xml:"Id"`
 		Title           string `json:"Title" xml:"Title"`
 		FileId          string `json:"FileId" xml:"FileId"`
+		Location        string `json:"Location" xml:"Location"`
 		State           string `json:"State" xml:"State"`
 		Md5             string `json:"Md5" xml:"Md5"`
 		IsVideo         bool   `json:"IsVideo" xml:"IsVideo"`
 		Remark          string `json:"Remark" xml:"Remark"`
 		Width           int    `json:"Width" xml:"Width"`
 		Height          int    `json:"Height" xml:"Height"`
+		Size            int    `json:"Size" xml:"Size"`
 		Ctime           int    `json:"Ctime" xml:"Ctime"`
 		Mtime           int    `json:"Mtime" xml:"Mtime"`
 		TakenAt         int    `json:"TakenAt" xml:"TakenAt"`

+ 4 - 2
services/cloudphoto/get_photos_by_md5s.go

@@ -64,10 +64,10 @@ func (client *Client) GetPhotosByMd5sWithCallback(request *GetPhotosByMd5sReques
 
 type GetPhotosByMd5sRequest struct {
 	*requests.RpcRequest
-	State     string    `position:"Query" name:"State"`
-	Md5       *[]string `position:"Query" name:"Md5"  type:"Repeated"`
 	LibraryId string    `position:"Query" name:"LibraryId"`
 	StoreName string    `position:"Query" name:"StoreName"`
+	State     string    `position:"Query" name:"State"`
+	Md5       *[]string `position:"Query" name:"Md5"  type:"Repeated"`
 }
 
 type GetPhotosByMd5sResponse struct {
@@ -80,10 +80,12 @@ type GetPhotosByMd5sResponse struct {
 		Id              int    `json:"Id" xml:"Id"`
 		Title           string `json:"Title" xml:"Title"`
 		FileId          string `json:"FileId" xml:"FileId"`
+		Location        string `json:"Location" xml:"Location"`
 		State           string `json:"State" xml:"State"`
 		Md5             string `json:"Md5" xml:"Md5"`
 		IsVideo         bool   `json:"IsVideo" xml:"IsVideo"`
 		Remark          string `json:"Remark" xml:"Remark"`
+		Size            int    `json:"Size" xml:"Size"`
 		Width           int    `json:"Width" xml:"Width"`
 		Height          int    `json:"Height" xml:"Height"`
 		Ctime           int    `json:"Ctime" xml:"Ctime"`

+ 1 - 1
services/cloudphoto/get_private_access_urls.go

@@ -65,9 +65,9 @@ func (client *Client) GetPrivateAccessUrlsWithCallback(request *GetPrivateAccess
 type GetPrivateAccessUrlsRequest struct {
 	*requests.RpcRequest
 	LibraryId string    `position:"Query" name:"LibraryId"`
+	PhotoId   *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
 	StoreName string    `position:"Query" name:"StoreName"`
 	ZoomType  string    `position:"Query" name:"ZoomType"`
-	PhotoId   *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
 }
 
 type GetPrivateAccessUrlsResponse struct {

+ 2 - 2
services/cloudphoto/get_public_access_urls.go

@@ -64,11 +64,11 @@ func (client *Client) GetPublicAccessUrlsWithCallback(request *GetPublicAccessUr
 
 type GetPublicAccessUrlsRequest struct {
 	*requests.RpcRequest
+	DomainType string    `position:"Query" name:"DomainType"`
 	LibraryId  string    `position:"Query" name:"LibraryId"`
+	PhotoId    *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
 	StoreName  string    `position:"Query" name:"StoreName"`
 	ZoomType   string    `position:"Query" name:"ZoomType"`
-	DomainType string    `position:"Query" name:"DomainType"`
-	PhotoId    *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
 }
 
 type GetPublicAccessUrlsResponse struct {

+ 112 - 0
services/cloudphoto/get_similar_photos.go

@@ -0,0 +1,112 @@
+package cloudphoto
+
+//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"
+)
+
+func (client *Client) GetSimilarPhotos(request *GetSimilarPhotosRequest) (response *GetSimilarPhotosResponse, err error) {
+	response = CreateGetSimilarPhotosResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) GetSimilarPhotosWithChan(request *GetSimilarPhotosRequest) (<-chan *GetSimilarPhotosResponse, <-chan error) {
+	responseChan := make(chan *GetSimilarPhotosResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSimilarPhotos(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) GetSimilarPhotosWithCallback(request *GetSimilarPhotosRequest, callback func(response *GetSimilarPhotosResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSimilarPhotosResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSimilarPhotos(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type GetSimilarPhotosRequest struct {
+	*requests.RpcRequest
+	LibraryId string           `position:"Query" name:"LibraryId"`
+	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
+	StoreName string           `position:"Query" name:"StoreName"`
+}
+
+type GetSimilarPhotosResponse struct {
+	*responses.BaseResponse
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Action    string `json:"Action" xml:"Action"`
+	Photos    []struct {
+		Id              int    `json:"Id" xml:"Id"`
+		Title           string `json:"Title" xml:"Title"`
+		FileId          string `json:"FileId" xml:"FileId"`
+		Location        string `json:"Location" xml:"Location"`
+		State           string `json:"State" xml:"State"`
+		Md5             string `json:"Md5" xml:"Md5"`
+		IsVideo         bool   `json:"IsVideo" xml:"IsVideo"`
+		Remark          string `json:"Remark" xml:"Remark"`
+		Size            int    `json:"Size" xml:"Size"`
+		Width           int    `json:"Width" xml:"Width"`
+		Height          int    `json:"Height" xml:"Height"`
+		Ctime           int    `json:"Ctime" xml:"Ctime"`
+		Mtime           int    `json:"Mtime" xml:"Mtime"`
+		TakenAt         int    `json:"TakenAt" xml:"TakenAt"`
+		InactiveTime    int    `json:"InactiveTime" xml:"InactiveTime"`
+		ShareExpireTime int    `json:"ShareExpireTime" xml:"ShareExpireTime"`
+		Like            int    `json:"Like" xml:"Like"`
+	} `json:"Photos" xml:"Photos"`
+}
+
+func CreateGetSimilarPhotosRequest() (request *GetSimilarPhotosRequest) {
+	request = &GetSimilarPhotosRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudPhoto", "2017-07-11", "GetSimilarPhotos", "", "")
+	return
+}
+
+func CreateGetSimilarPhotosResponse() (response *GetSimilarPhotosResponse) {
+	response = &GetSimilarPhotosResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/cloudphoto/get_thumbnail.go

@@ -65,9 +65,9 @@ func (client *Client) GetThumbnailWithCallback(request *GetThumbnailRequest, cal
 type GetThumbnailRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
+	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
 	StoreName string           `position:"Query" name:"StoreName"`
 	ZoomType  string           `position:"Query" name:"ZoomType"`
-	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
 }
 
 type GetThumbnailResponse struct {

+ 1 - 1
services/cloudphoto/get_thumbnails.go

@@ -65,9 +65,9 @@ func (client *Client) GetThumbnailsWithCallback(request *GetThumbnailsRequest, c
 type GetThumbnailsRequest struct {
 	*requests.RpcRequest
 	LibraryId string    `position:"Query" name:"LibraryId"`
+	PhotoId   *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
 	StoreName string    `position:"Query" name:"StoreName"`
 	ZoomType  string    `position:"Query" name:"ZoomType"`
-	PhotoId   *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
 }
 
 type GetThumbnailsResponse struct {

+ 1 - 1
services/cloudphoto/get_video_cover.go

@@ -65,9 +65,9 @@ func (client *Client) GetVideoCoverWithCallback(request *GetVideoCoverRequest, c
 type GetVideoCoverRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
+	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
 	StoreName string           `position:"Query" name:"StoreName"`
 	ZoomType  string           `position:"Query" name:"ZoomType"`
-	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
 }
 
 type GetVideoCoverResponse struct {

+ 2 - 2
services/cloudphoto/inactivate_photos.go

@@ -64,10 +64,10 @@ func (client *Client) InactivatePhotosWithCallback(request *InactivatePhotosRequ
 
 type InactivatePhotosRequest struct {
 	*requests.RpcRequest
-	InactiveTime requests.Integer `position:"Query" name:"InactiveTime"`
 	LibraryId    string           `position:"Query" name:"LibraryId"`
-	StoreName    string           `position:"Query" name:"StoreName"`
 	PhotoId      *[]string        `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName    string           `position:"Query" name:"StoreName"`
+	InactiveTime requests.Integer `position:"Query" name:"InactiveTime"`
 }
 
 type InactivatePhotosResponse struct {

+ 1 - 1
services/cloudphoto/like_photo.go

@@ -65,8 +65,8 @@ func (client *Client) LikePhotoWithCallback(request *LikePhotoRequest, callback
 type LikePhotoRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
-	StoreName string           `position:"Query" name:"StoreName"`
 	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
+	StoreName string           `position:"Query" name:"StoreName"`
 }
 
 type LikePhotoResponse struct {

+ 4 - 4
services/cloudphoto/list_album_photos.go

@@ -65,12 +65,12 @@ func (client *Client) ListAlbumPhotosWithCallback(request *ListAlbumPhotosReques
 type ListAlbumPhotosRequest struct {
 	*requests.RpcRequest
 	Cursor    string           `position:"Query" name:"Cursor"`
-	Direction string           `position:"Query" name:"Direction"`
-	State     string           `position:"Query" name:"State"`
+	Size      requests.Integer `position:"Query" name:"Size"`
 	LibraryId string           `position:"Query" name:"LibraryId"`
-	StoreName string           `position:"Query" name:"StoreName"`
 	AlbumId   requests.Integer `position:"Query" name:"AlbumId"`
-	Size      requests.Integer `position:"Query" name:"Size"`
+	StoreName string           `position:"Query" name:"StoreName"`
+	State     string           `position:"Query" name:"State"`
+	Direction string           `position:"Query" name:"Direction"`
 }
 
 type ListAlbumPhotosResponse struct {

+ 3 - 3
services/cloudphoto/list_albums.go

@@ -65,11 +65,11 @@ func (client *Client) ListAlbumsWithCallback(request *ListAlbumsRequest, callbac
 type ListAlbumsRequest struct {
 	*requests.RpcRequest
 	Cursor    string           `position:"Query" name:"Cursor"`
-	Direction string           `position:"Query" name:"Direction"`
-	State     string           `position:"Query" name:"State"`
+	Size      requests.Integer `position:"Query" name:"Size"`
 	LibraryId string           `position:"Query" name:"LibraryId"`
 	StoreName string           `position:"Query" name:"StoreName"`
-	Size      requests.Integer `position:"Query" name:"Size"`
+	State     string           `position:"Query" name:"State"`
+	Direction string           `position:"Query" name:"Direction"`
 }
 
 type ListAlbumsResponse struct {

+ 3 - 3
services/cloudphoto/list_face_photos.go

@@ -65,12 +65,12 @@ func (client *Client) ListFacePhotosWithCallback(request *ListFacePhotosRequest,
 type ListFacePhotosRequest struct {
 	*requests.RpcRequest
 	Cursor    string           `position:"Query" name:"Cursor"`
-	Direction string           `position:"Query" name:"Direction"`
-	State     string           `position:"Query" name:"State"`
+	Size      requests.Integer `position:"Query" name:"Size"`
 	LibraryId string           `position:"Query" name:"LibraryId"`
 	StoreName string           `position:"Query" name:"StoreName"`
 	FaceId    requests.Integer `position:"Query" name:"FaceId"`
-	Size      requests.Integer `position:"Query" name:"Size"`
+	State     string           `position:"Query" name:"State"`
+	Direction string           `position:"Query" name:"Direction"`
 }
 
 type ListFacePhotosResponse struct {

+ 4 - 4
services/cloudphoto/list_faces.go

@@ -65,12 +65,12 @@ func (client *Client) ListFacesWithCallback(request *ListFacesRequest, callback
 type ListFacesRequest struct {
 	*requests.RpcRequest
 	Cursor      string           `position:"Query" name:"Cursor"`
-	Direction   string           `position:"Query" name:"Direction"`
-	State       string           `position:"Query" name:"State"`
-	LibraryId   string           `position:"Query" name:"LibraryId"`
-	StoreName   string           `position:"Query" name:"StoreName"`
 	HasFaceName string           `position:"Query" name:"HasFaceName"`
 	Size        requests.Integer `position:"Query" name:"Size"`
+	LibraryId   string           `position:"Query" name:"LibraryId"`
+	StoreName   string           `position:"Query" name:"StoreName"`
+	State       string           `position:"Query" name:"State"`
+	Direction   string           `position:"Query" name:"Direction"`
 }
 
 type ListFacesResponse struct {

+ 3 - 3
services/cloudphoto/list_moment_photos.go

@@ -65,12 +65,12 @@ func (client *Client) ListMomentPhotosWithCallback(request *ListMomentPhotosRequ
 type ListMomentPhotosRequest struct {
 	*requests.RpcRequest
 	Cursor    string           `position:"Query" name:"Cursor"`
-	Direction string           `position:"Query" name:"Direction"`
-	State     string           `position:"Query" name:"State"`
+	Size      requests.Integer `position:"Query" name:"Size"`
 	LibraryId string           `position:"Query" name:"LibraryId"`
 	StoreName string           `position:"Query" name:"StoreName"`
+	State     string           `position:"Query" name:"State"`
 	MomentId  requests.Integer `position:"Query" name:"MomentId"`
-	Size      requests.Integer `position:"Query" name:"Size"`
+	Direction string           `position:"Query" name:"Direction"`
 }
 
 type ListMomentPhotosResponse struct {

+ 3 - 3
services/cloudphoto/list_moments.go

@@ -65,11 +65,11 @@ func (client *Client) ListMomentsWithCallback(request *ListMomentsRequest, callb
 type ListMomentsRequest struct {
 	*requests.RpcRequest
 	Cursor    string           `position:"Query" name:"Cursor"`
-	Direction string           `position:"Query" name:"Direction"`
-	State     string           `position:"Query" name:"State"`
+	Size      requests.Integer `position:"Query" name:"Size"`
 	LibraryId string           `position:"Query" name:"LibraryId"`
 	StoreName string           `position:"Query" name:"StoreName"`
-	Size      requests.Integer `position:"Query" name:"Size"`
+	State     string           `position:"Query" name:"State"`
+	Direction string           `position:"Query" name:"Direction"`
 }
 
 type ListMomentsResponse struct {

+ 1 - 1
services/cloudphoto/list_photo_faces.go

@@ -65,8 +65,8 @@ func (client *Client) ListPhotoFacesWithCallback(request *ListPhotoFacesRequest,
 type ListPhotoFacesRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
-	StoreName string           `position:"Query" name:"StoreName"`
 	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
+	StoreName string           `position:"Query" name:"StoreName"`
 }
 
 type ListPhotoFacesResponse struct {

+ 1 - 1
services/cloudphoto/list_photo_tags.go

@@ -65,9 +65,9 @@ func (client *Client) ListPhotoTagsWithCallback(request *ListPhotoTagsRequest, c
 type ListPhotoTagsRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
+	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
 	StoreName string           `position:"Query" name:"StoreName"`
 	Lang      string           `position:"Query" name:"Lang"`
-	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
 }
 
 type ListPhotoTagsResponse struct {

+ 5 - 3
services/cloudphoto/list_photos.go

@@ -65,11 +65,11 @@ func (client *Client) ListPhotosWithCallback(request *ListPhotosRequest, callbac
 type ListPhotosRequest struct {
 	*requests.RpcRequest
 	Cursor    string           `position:"Query" name:"Cursor"`
-	Direction string           `position:"Query" name:"Direction"`
-	State     string           `position:"Query" name:"State"`
+	Size      requests.Integer `position:"Query" name:"Size"`
 	LibraryId string           `position:"Query" name:"LibraryId"`
 	StoreName string           `position:"Query" name:"StoreName"`
-	Size      requests.Integer `position:"Query" name:"Size"`
+	State     string           `position:"Query" name:"State"`
+	Direction string           `position:"Query" name:"Direction"`
 }
 
 type ListPhotosResponse struct {
@@ -84,10 +84,12 @@ type ListPhotosResponse struct {
 		Id              int    `json:"Id" xml:"Id"`
 		Title           string `json:"Title" xml:"Title"`
 		FileId          string `json:"FileId" xml:"FileId"`
+		Location        string `json:"Location" xml:"Location"`
 		State           string `json:"State" xml:"State"`
 		Md5             string `json:"Md5" xml:"Md5"`
 		IsVideo         bool   `json:"IsVideo" xml:"IsVideo"`
 		Remark          string `json:"Remark" xml:"Remark"`
+		Size            int    `json:"Size" xml:"Size"`
 		Width           int    `json:"Width" xml:"Width"`
 		Height          int    `json:"Height" xml:"Height"`
 		Ctime           int    `json:"Ctime" xml:"Ctime"`

+ 3 - 3
services/cloudphoto/list_tag_photos.go

@@ -65,12 +65,12 @@ func (client *Client) ListTagPhotosWithCallback(request *ListTagPhotosRequest, c
 type ListTagPhotosRequest struct {
 	*requests.RpcRequest
 	Cursor    string           `position:"Query" name:"Cursor"`
+	Size      requests.Integer `position:"Query" name:"Size"`
 	TagId     requests.Integer `position:"Query" name:"TagId"`
-	Direction string           `position:"Query" name:"Direction"`
-	State     string           `position:"Query" name:"State"`
 	LibraryId string           `position:"Query" name:"LibraryId"`
 	StoreName string           `position:"Query" name:"StoreName"`
-	Size      requests.Integer `position:"Query" name:"Size"`
+	State     string           `position:"Query" name:"State"`
+	Direction string           `position:"Query" name:"Direction"`
 }
 
 type ListTagPhotosResponse struct {

+ 8 - 6
services/cloudphoto/list_time_line_photos.go

@@ -64,15 +64,15 @@ func (client *Client) ListTimeLinePhotosWithCallback(request *ListTimeLinePhotos
 
 type ListTimeLinePhotosRequest struct {
 	*requests.RpcRequest
+	Size      requests.Integer `position:"Query" name:"Size"`
+	LibraryId string           `position:"Query" name:"LibraryId"`
 	EndTime   requests.Integer `position:"Query" name:"EndTime"`
-	FilterBy  string           `position:"Query" name:"FilterBy"`
-	StartTime requests.Integer `position:"Query" name:"StartTime"`
-	Order     string           `position:"Query" name:"Order"`
+	StoreName string           `position:"Query" name:"StoreName"`
 	Page      requests.Integer `position:"Query" name:"Page"`
+	StartTime requests.Integer `position:"Query" name:"StartTime"`
+	FilterBy  string           `position:"Query" name:"FilterBy"`
 	Direction string           `position:"Query" name:"Direction"`
-	LibraryId string           `position:"Query" name:"LibraryId"`
-	StoreName string           `position:"Query" name:"StoreName"`
-	Size      requests.Integer `position:"Query" name:"Size"`
+	Order     string           `position:"Query" name:"Order"`
 }
 
 type ListTimeLinePhotosResponse struct {
@@ -86,10 +86,12 @@ type ListTimeLinePhotosResponse struct {
 		Id              int    `json:"Id" xml:"Id"`
 		Title           string `json:"Title" xml:"Title"`
 		FileId          string `json:"FileId" xml:"FileId"`
+		Location        string `json:"Location" xml:"Location"`
 		State           string `json:"State" xml:"State"`
 		Md5             string `json:"Md5" xml:"Md5"`
 		IsVideo         bool   `json:"IsVideo" xml:"IsVideo"`
 		Remark          string `json:"Remark" xml:"Remark"`
+		Size            int    `json:"Size" xml:"Size"`
 		Width           int    `json:"Width" xml:"Width"`
 		Height          int    `json:"Height" xml:"Height"`
 		Ctime           int    `json:"Ctime" xml:"Ctime"`

+ 6 - 4
services/cloudphoto/list_time_lines.go

@@ -64,15 +64,15 @@ func (client *Client) ListTimeLinesWithCallback(request *ListTimeLinesRequest, c
 
 type ListTimeLinesRequest struct {
 	*requests.RpcRequest
-	FilterBy      string           `position:"Query" name:"FilterBy"`
 	Cursor        requests.Integer `position:"Query" name:"Cursor"`
-	Order         string           `position:"Query" name:"Order"`
-	Direction     string           `position:"Query" name:"Direction"`
+	PhotoSize     requests.Integer `position:"Query" name:"PhotoSize"`
 	TimeLineCount requests.Integer `position:"Query" name:"TimeLineCount"`
 	LibraryId     string           `position:"Query" name:"LibraryId"`
 	StoreName     string           `position:"Query" name:"StoreName"`
 	TimeLineUnit  string           `position:"Query" name:"TimeLineUnit"`
-	PhotoSize     requests.Integer `position:"Query" name:"PhotoSize"`
+	FilterBy      string           `position:"Query" name:"FilterBy"`
+	Direction     string           `position:"Query" name:"Direction"`
+	Order         string           `position:"Query" name:"Order"`
 }
 
 type ListTimeLinesResponse struct {
@@ -90,11 +90,13 @@ type ListTimeLinesResponse struct {
 		Photos      []struct {
 			Id              int    `json:"Id" xml:"Id"`
 			Title           string `json:"Title" xml:"Title"`
+			Location        string `json:"Location" xml:"Location"`
 			FileId          string `json:"FileId" xml:"FileId"`
 			State           string `json:"State" xml:"State"`
 			Md5             string `json:"Md5" xml:"Md5"`
 			IsVideo         bool   `json:"IsVideo" xml:"IsVideo"`
 			Remark          string `json:"Remark" xml:"Remark"`
+			Size            int    `json:"Size" xml:"Size"`
 			Width           int    `json:"Width" xml:"Width"`
 			Height          int    `json:"Height" xml:"Height"`
 			Ctime           int    `json:"Ctime" xml:"Ctime"`

+ 1 - 1
services/cloudphoto/merge_faces.go

@@ -65,9 +65,9 @@ func (client *Client) MergeFacesWithCallback(request *MergeFacesRequest, callbac
 type MergeFacesRequest struct {
 	*requests.RpcRequest
 	LibraryId    string           `position:"Query" name:"LibraryId"`
+	TargetFaceId requests.Integer `position:"Query" name:"TargetFaceId"`
 	StoreName    string           `position:"Query" name:"StoreName"`
 	FaceId       *[]string        `position:"Query" name:"FaceId"  type:"Repeated"`
-	TargetFaceId requests.Integer `position:"Query" name:"TargetFaceId"`
 }
 
 type MergeFacesResponse struct {

+ 2 - 2
services/cloudphoto/move_album_photos.go

@@ -64,11 +64,11 @@ func (client *Client) MoveAlbumPhotosWithCallback(request *MoveAlbumPhotosReques
 
 type MoveAlbumPhotosRequest struct {
 	*requests.RpcRequest
-	TargetAlbumId requests.Integer `position:"Query" name:"TargetAlbumId"`
 	SourceAlbumId requests.Integer `position:"Query" name:"SourceAlbumId"`
+	TargetAlbumId requests.Integer `position:"Query" name:"TargetAlbumId"`
 	LibraryId     string           `position:"Query" name:"LibraryId"`
-	StoreName     string           `position:"Query" name:"StoreName"`
 	PhotoId       *[]string        `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName     string           `position:"Query" name:"StoreName"`
 }
 
 type MoveAlbumPhotosResponse struct {

+ 2 - 2
services/cloudphoto/move_face_photos.go

@@ -64,11 +64,11 @@ func (client *Client) MoveFacePhotosWithCallback(request *MoveFacePhotosRequest,
 
 type MoveFacePhotosRequest struct {
 	*requests.RpcRequest
-	SourceFaceId requests.Integer `position:"Query" name:"SourceFaceId"`
 	LibraryId    string           `position:"Query" name:"LibraryId"`
-	StoreName    string           `position:"Query" name:"StoreName"`
 	TargetFaceId requests.Integer `position:"Query" name:"TargetFaceId"`
 	PhotoId      *[]string        `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName    string           `position:"Query" name:"StoreName"`
+	SourceFaceId requests.Integer `position:"Query" name:"SourceFaceId"`
 }
 
 type MoveFacePhotosResponse struct {

+ 1 - 1
services/cloudphoto/reactivate_photos.go

@@ -65,8 +65,8 @@ func (client *Client) ReactivatePhotosWithCallback(request *ReactivatePhotosRequ
 type ReactivatePhotosRequest struct {
 	*requests.RpcRequest
 	LibraryId string    `position:"Query" name:"LibraryId"`
-	StoreName string    `position:"Query" name:"StoreName"`
 	PhotoId   *[]string `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName string    `position:"Query" name:"StoreName"`
 }
 
 type ReactivatePhotosResponse struct {

+ 120 - 0
services/cloudphoto/register_photo.go

@@ -0,0 +1,120 @@
+package cloudphoto
+
+//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"
+)
+
+func (client *Client) RegisterPhoto(request *RegisterPhotoRequest) (response *RegisterPhotoResponse, err error) {
+	response = CreateRegisterPhotoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) RegisterPhotoWithChan(request *RegisterPhotoRequest) (<-chan *RegisterPhotoResponse, <-chan error) {
+	responseChan := make(chan *RegisterPhotoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RegisterPhoto(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) RegisterPhotoWithCallback(request *RegisterPhotoRequest, callback func(response *RegisterPhotoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RegisterPhotoResponse
+		var err error
+		defer close(result)
+		response, err = client.RegisterPhoto(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type RegisterPhotoRequest struct {
+	*requests.RpcRequest
+	LibraryId  string           `position:"Query" name:"LibraryId"`
+	Latitude   requests.Float   `position:"Query" name:"Latitude"`
+	PhotoTitle string           `position:"Query" name:"PhotoTitle"`
+	StoreName  string           `position:"Query" name:"StoreName"`
+	IsVideo    string           `position:"Query" name:"IsVideo"`
+	Remark     string           `position:"Query" name:"Remark"`
+	Size       requests.Integer `position:"Query" name:"Size"`
+	TakenAt    requests.Integer `position:"Query" name:"TakenAt"`
+	Width      requests.Integer `position:"Query" name:"Width"`
+	Location   string           `position:"Query" name:"Location"`
+	Longitude  requests.Float   `position:"Query" name:"Longitude"`
+	Height     requests.Integer `position:"Query" name:"Height"`
+	Md5        string           `position:"Query" name:"Md5"`
+}
+
+type RegisterPhotoResponse struct {
+	*responses.BaseResponse
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Action    string `json:"Action" xml:"Action"`
+	Photo     struct {
+		Id              int    `json:"Id" xml:"Id"`
+		Title           string `json:"Title" xml:"Title"`
+		Location        string `json:"Location" xml:"Location"`
+		FileId          string `json:"FileId" xml:"FileId"`
+		State           string `json:"State" xml:"State"`
+		Md5             string `json:"Md5" xml:"Md5"`
+		IsVideo         bool   `json:"IsVideo" xml:"IsVideo"`
+		Size            int    `json:"Size" xml:"Size"`
+		Remark          string `json:"Remark" xml:"Remark"`
+		Width           int    `json:"Width" xml:"Width"`
+		Height          int    `json:"Height" xml:"Height"`
+		Ctime           int    `json:"Ctime" xml:"Ctime"`
+		Mtime           int    `json:"Mtime" xml:"Mtime"`
+		TakenAt         int    `json:"TakenAt" xml:"TakenAt"`
+		ShareExpireTime int    `json:"ShareExpireTime" xml:"ShareExpireTime"`
+	} `json:"Photo" xml:"Photo"`
+}
+
+func CreateRegisterPhotoRequest() (request *RegisterPhotoRequest) {
+	request = &RegisterPhotoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudPhoto", "2017-07-11", "RegisterPhoto", "", "")
+	return
+}
+
+func CreateRegisterPhotoResponse() (response *RegisterPhotoResponse) {
+	response = &RegisterPhotoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/cloudphoto/register_tag.go

@@ -64,9 +64,9 @@ func (client *Client) RegisterTagWithCallback(request *RegisterTagRequest, callb
 
 type RegisterTagRequest struct {
 	*requests.RpcRequest
+	StoreName string `position:"Query" name:"StoreName"`
 	Text      string `position:"Query" name:"Text"`
 	TagKey    string `position:"Query" name:"TagKey"`
-	StoreName string `position:"Query" name:"StoreName"`
 	Lang      string `position:"Query" name:"Lang"`
 }
 

+ 1 - 1
services/cloudphoto/remove_album_photos.go

@@ -65,9 +65,9 @@ func (client *Client) RemoveAlbumPhotosWithCallback(request *RemoveAlbumPhotosRe
 type RemoveAlbumPhotosRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
-	StoreName string           `position:"Query" name:"StoreName"`
 	AlbumId   requests.Integer `position:"Query" name:"AlbumId"`
 	PhotoId   *[]string        `position:"Query" name:"PhotoId"  type:"Repeated"`
+	StoreName string           `position:"Query" name:"StoreName"`
 }
 
 type RemoveAlbumPhotosResponse struct {

+ 1 - 1
services/cloudphoto/remove_face_photos.go

@@ -65,9 +65,9 @@ func (client *Client) RemoveFacePhotosWithCallback(request *RemoveFacePhotosRequ
 type RemoveFacePhotosRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
+	PhotoId   *[]string        `position:"Query" name:"PhotoId"  type:"Repeated"`
 	StoreName string           `position:"Query" name:"StoreName"`
 	FaceId    requests.Integer `position:"Query" name:"FaceId"`
-	PhotoId   *[]string        `position:"Query" name:"PhotoId"  type:"Repeated"`
 }
 
 type RemoveFacePhotosResponse struct {

+ 2 - 2
services/cloudphoto/rename_album.go

@@ -64,10 +64,10 @@ func (client *Client) RenameAlbumWithCallback(request *RenameAlbumRequest, callb
 
 type RenameAlbumRequest struct {
 	*requests.RpcRequest
-	LibraryId string           `position:"Query" name:"LibraryId"`
-	StoreName string           `position:"Query" name:"StoreName"`
 	AlbumName string           `position:"Query" name:"AlbumName"`
+	LibraryId string           `position:"Query" name:"LibraryId"`
 	AlbumId   requests.Integer `position:"Query" name:"AlbumId"`
+	StoreName string           `position:"Query" name:"StoreName"`
 }
 
 type RenameAlbumResponse struct {

+ 1 - 1
services/cloudphoto/rename_face.go

@@ -64,10 +64,10 @@ func (client *Client) RenameFaceWithCallback(request *RenameFaceRequest, callbac
 
 type RenameFaceRequest struct {
 	*requests.RpcRequest
-	FaceName  string           `position:"Query" name:"FaceName"`
 	LibraryId string           `position:"Query" name:"LibraryId"`
 	StoreName string           `position:"Query" name:"StoreName"`
 	FaceId    requests.Integer `position:"Query" name:"FaceId"`
+	FaceName  string           `position:"Query" name:"FaceName"`
 }
 
 type RenameFaceResponse struct {

+ 5 - 3
services/cloudphoto/search_photos.go

@@ -64,11 +64,11 @@ func (client *Client) SearchPhotosWithCallback(request *SearchPhotosRequest, cal
 
 type SearchPhotosRequest struct {
 	*requests.RpcRequest
-	Page      requests.Integer `position:"Query" name:"Page"`
-	Keyword   string           `position:"Query" name:"Keyword"`
+	Size      requests.Integer `position:"Query" name:"Size"`
 	LibraryId string           `position:"Query" name:"LibraryId"`
 	StoreName string           `position:"Query" name:"StoreName"`
-	Size      requests.Integer `position:"Query" name:"Size"`
+	Page      requests.Integer `position:"Query" name:"Page"`
+	Keyword   string           `position:"Query" name:"Keyword"`
 }
 
 type SearchPhotosResponse struct {
@@ -82,9 +82,11 @@ type SearchPhotosResponse struct {
 		Id              int    `json:"Id" xml:"Id"`
 		Title           string `json:"Title" xml:"Title"`
 		FileId          string `json:"FileId" xml:"FileId"`
+		Location        string `json:"Location" xml:"Location"`
 		State           string `json:"State" xml:"State"`
 		Md5             string `json:"Md5" xml:"Md5"`
 		IsVideo         bool   `json:"IsVideo" xml:"IsVideo"`
+		Size            int    `json:"Size" xml:"Size"`
 		Width           int    `json:"Width" xml:"Width"`
 		Height          int    `json:"Height" xml:"Height"`
 		Ctime           int    `json:"Ctime" xml:"Ctime"`

+ 1 - 1
services/cloudphoto/set_album_cover.go

@@ -65,9 +65,9 @@ func (client *Client) SetAlbumCoverWithCallback(request *SetAlbumCoverRequest, c
 type SetAlbumCoverRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
-	StoreName string           `position:"Query" name:"StoreName"`
 	AlbumId   requests.Integer `position:"Query" name:"AlbumId"`
 	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
+	StoreName string           `position:"Query" name:"StoreName"`
 }
 
 type SetAlbumCoverResponse struct {

+ 1 - 1
services/cloudphoto/set_face_cover.go

@@ -65,9 +65,9 @@ func (client *Client) SetFaceCoverWithCallback(request *SetFaceCoverRequest, cal
 type SetFaceCoverRequest struct {
 	*requests.RpcRequest
 	LibraryId string           `position:"Query" name:"LibraryId"`
+	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
 	StoreName string           `position:"Query" name:"StoreName"`
 	FaceId    requests.Integer `position:"Query" name:"FaceId"`
-	PhotoId   requests.Integer `position:"Query" name:"PhotoId"`
 }
 
 type SetFaceCoverResponse struct {

+ 2 - 2
services/cloudphoto/tag_photo.go

@@ -64,11 +64,11 @@ func (client *Client) TagPhotoWithCallback(request *TagPhotoRequest, callback fu
 
 type TagPhotoRequest struct {
 	*requests.RpcRequest
-	TagKey     *[]string        `position:"Query" name:"TagKey"  type:"Repeated"`
 	LibraryId  string           `position:"Query" name:"LibraryId"`
-	StoreName  string           `position:"Query" name:"StoreName"`
 	Confidence *[]string        `position:"Query" name:"Confidence"  type:"Repeated"`
+	StoreName  string           `position:"Query" name:"StoreName"`
 	PhotoId    requests.Integer `position:"Query" name:"PhotoId"`
+	TagKey     *[]string        `position:"Query" name:"TagKey"  type:"Repeated"`
 }
 
 type TagPhotoResponse struct {

+ 1 - 1
services/cloudphoto/toggle_features.go

@@ -64,9 +64,9 @@ func (client *Client) ToggleFeaturesWithCallback(request *ToggleFeaturesRequest,
 
 type ToggleFeaturesRequest struct {
 	*requests.RpcRequest
-	EnabledFeatures  *[]string `position:"Query" name:"EnabledFeatures"  type:"Repeated"`
 	DisabledFeatures *[]string `position:"Query" name:"DisabledFeatures"  type:"Repeated"`
 	StoreName        string    `position:"Query" name:"StoreName"`
+	EnabledFeatures  *[]string `position:"Query" name:"EnabledFeatures"  type:"Repeated"`
 }
 
 type ToggleFeaturesResponse struct {