//
//  ZYJOSSDefine.h
//  AliyunZYJOSSiOS
//
//  Created by zhouzhuo on 5/1/16.
//  Copyright © 2016 zhouzhuo. All rights reserved.
//

#import <Foundation/Foundation.h>

#ifndef ZYJOSSDefine_h
#define ZYJOSSDefine_h

#if TARGET_OS_IOS
#define ZYJOSSUAPrefix                             @"aliyun-sdk-ios"
#elif TARGET_OS_OSX
#define ZYJOSSUAPrefix                             @"aliyun-sdk-mac"
#endif
#define ZYJOSSSDKVersion                           @"2.10.8"

#define ZYJOSSListBucketResultXMLTOKEN             @"ListBucketResult"
#define ZYJOSSNameXMLTOKEN                         @"Name"
#define ZYJOSSDelimiterXMLTOKEN                    @"Delimiter"
#define ZYJOSSMarkerXMLTOKEN                       @"Marker"
#define ZYJOSSKeyMarkerXMLTOKEN                    @"KeyMarker"
#define ZYJOSSNextMarkerXMLTOKEN                   @"NextMarker"
#define ZYJOSSNextKeyMarkerXMLTOKEN                @"NextKeyMarker"
#define ZYJOSSUploadIdMarkerXMLTOKEN               @"UploadIdMarker"
#define ZYJOSSNextUploadIdMarkerXMLTOKEN           @"NextUploadIdMarker"
#define ZYJOSSMaxKeysXMLTOKEN                      @"MaxKeys"
#define ZYJOSSMaxUploadsXMLTOKEN                   @"MaxUploads"
#define ZYJOSSIsTruncatedXMLTOKEN                  @"IsTruncated"
#define ZYJOSSContentsXMLTOKEN                     @"Contents"
#define ZYJOSSUploadXMLTOKEN                       @"Upload"
#define ZYJOSSKeyXMLTOKEN                          @"Key"
#define ZYJOSSLastModifiedXMLTOKEN                 @"LastModified"
#define ZYJOSSETagXMLTOKEN                         @"ETag"
#define ZYJOSSTypeXMLTOKEN                         @"Type"
#define ZYJOSSSizeXMLTOKEN                         @"Size"
#define ZYJOSSStorageClassXMLTOKEN                 @"StorageClass"
#define ZYJOSSCommonPrefixesXMLTOKEN               @"CommonPrefixes"
#define ZYJOSSOwnerXMLTOKEN                        @"Owner"
#define ZYJOSSAccessControlListXMLTOKEN            @"AccessControlList"
#define ZYJOSSGrantXMLTOKEN                        @"Grant"
#define ZYJOSSIDXMLTOKEN                           @"ID"
#define ZYJOSSDisplayNameXMLTOKEN                  @"DisplayName"
#define ZYJOSSBucketsXMLTOKEN                      @"Buckets"
#define ZYJOSSBucketXMLTOKEN                       @"Bucket"
#define ZYJOSSCreationDate                         @"CreationDate"
#define ZYJOSSPrefixXMLTOKEN                       @"Prefix"
#define ZYJOSSUploadIdXMLTOKEN                     @"UploadId"
#define ZYJOSSLocationXMLTOKEN                     @"Location"
#define ZYJOSSNextPartNumberMarkerXMLTOKEN         @"NextPartNumberMarker"
#define ZYJOSSMaxPartsXMLTOKEN                     @"MaxParts"
#define ZYJOSSPartXMLTOKEN                         @"Part"
#define ZYJOSSPartNumberXMLTOKEN                   @"PartNumber"

#define ZYJOSSClientErrorDomain                    @"com.aliyun.oss.clientError"
#define ZYJOSSServerErrorDomain                    @"com.aliyun.oss.serverError"

#define ZYJOSSErrorMessageTOKEN                    @"ErrorMessage"

#define ZYJOSSHttpHeaderContentDisposition         @"Content-Disposition"
#define ZYJOSSHttpHeaderXZYJOSSCallback               @"x-oss-callback"
#define ZYJOSSHttpHeaderXZYJOSSCallbackVar            @"x-oss-callback-var"
#define ZYJOSSHttpHeaderContentEncoding            @"Content-Encoding"
#define ZYJOSSHttpHeaderContentType                @"Content-Type"
#define ZYJOSSHttpHeaderContentMD5                 @"Content-MD5"
#define ZYJOSSHttpHeaderCacheControl               @"Cache-Control"
#define ZYJOSSHttpHeaderExpires                    @"Expires"
#define ZYJOSSHttpHeaderHashSHA1                   @"x-oss-hash-sha1"
#define ZYJOSSHttpHeaderBucketACL                  @"x-oss-acl"
#define ZYJOSSHttpHeaderObjectACL                  @"x-oss-object-acl"
#define ZYJOSSHttpHeaderCopySource                 @"x-oss-copy-source"
#define ZYJOSSHttpHeaderSymlinkTarget              @"x-oss-symlink-target"

#define ZYJOSSHttpQueryProcess                     @"x-oss-process"

#define ZYJOSSDefaultRetryCount                    3
#define ZYJOSSDefaultMaxConcurrentNum              5
#define ZYJOSSDefaultTimeoutForRequestInSecond     15
#define ZYJOSSDefaultTimeoutForResourceInSecond    7 * 24 * 60 * 60

#endif /* ZYJOSSDefine_h */
