github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/obs/const.go (about)

     1  package obs
     2  
     3  const (
     4  	obs_sdk_version        = "3.21.12"
     5  	USER_AGENT             = "obs-sdk-go/" + obs_sdk_version
     6  	HEADER_PREFIX          = "x-amz-"
     7  	HEADER_PREFIX_META     = "x-amz-meta-"
     8  	HEADER_PREFIX_OBS      = "x-obs-"
     9  	HEADER_PREFIX_META_OBS = "x-obs-meta-"
    10  	HEADER_DATE_AMZ        = "x-amz-date"
    11  	HEADER_DATE_OBS        = "x-obs-date"
    12  	HEADER_STS_TOKEN_AMZ   = "x-amz-security-token"
    13  	HEADER_STS_TOKEN_OBS   = "x-obs-security-token"
    14  	HEADER_ACCESSS_KEY_AMZ = "AWSAccessKeyId"
    15  	PREFIX_META            = "meta-"
    16  
    17  	HEADER_CONTENT_SHA256_AMZ               = "x-amz-content-sha256"
    18  	HEADER_ACL_AMZ                          = "x-amz-acl"
    19  	HEADER_ACL_OBS                          = "x-obs-acl"
    20  	HEADER_ACL                              = "acl"
    21  	HEADER_LOCATION_AMZ                     = "location"
    22  	HEADER_BUCKET_LOCATION_OBS              = "bucket-location"
    23  	HEADER_COPY_SOURCE                      = "copy-source"
    24  	HEADER_COPY_SOURCE_RANGE                = "copy-source-range"
    25  	HEADER_RANGE                            = "Range"
    26  	HEADER_STORAGE_CLASS                    = "x-default-storage-class"
    27  	HEADER_STORAGE_CLASS_OBS                = "x-obs-storage-class"
    28  	HEADER_VERSION_OBS                      = "version"
    29  	HEADER_GRANT_READ_OBS                   = "grant-read"
    30  	HEADER_GRANT_WRITE_OBS                  = "grant-write"
    31  	HEADER_GRANT_READ_ACP_OBS               = "grant-read-acp"
    32  	HEADER_GRANT_WRITE_ACP_OBS              = "grant-write-acp"
    33  	HEADER_GRANT_FULL_CONTROL_OBS           = "grant-full-control"
    34  	HEADER_GRANT_READ_DELIVERED_OBS         = "grant-read-delivered"
    35  	HEADER_GRANT_FULL_CONTROL_DELIVERED_OBS = "grant-full-control-delivered"
    36  	HEADER_REQUEST_ID                       = "request-id"
    37  	HEADER_BUCKET_REGION                    = "bucket-region"
    38  	HEADER_ACCESS_CONRTOL_ALLOW_ORIGIN      = "access-control-allow-origin"
    39  	HEADER_ACCESS_CONRTOL_ALLOW_HEADERS     = "access-control-allow-headers"
    40  	HEADER_ACCESS_CONRTOL_MAX_AGE           = "access-control-max-age"
    41  	HEADER_ACCESS_CONRTOL_ALLOW_METHODS     = "access-control-allow-methods"
    42  	HEADER_ACCESS_CONRTOL_EXPOSE_HEADERS    = "access-control-expose-headers"
    43  	HEADER_EPID_HEADERS                     = "epid"
    44  	HEADER_VERSION_ID                       = "version-id"
    45  	HEADER_COPY_SOURCE_VERSION_ID           = "copy-source-version-id"
    46  	HEADER_DELETE_MARKER                    = "delete-marker"
    47  	HEADER_WEBSITE_REDIRECT_LOCATION        = "website-redirect-location"
    48  	HEADER_METADATA_DIRECTIVE               = "metadata-directive"
    49  	HEADER_EXPIRATION                       = "expiration"
    50  	HEADER_EXPIRES_OBS                      = "x-obs-expires"
    51  	HEADER_RESTORE                          = "restore"
    52  	HEADER_OBJECT_TYPE                      = "object-type"
    53  	HEADER_NEXT_APPEND_POSITION             = "next-append-position"
    54  	HEADER_STORAGE_CLASS2                   = "storage-class"
    55  	HEADER_CONTENT_LENGTH                   = "content-length"
    56  	HEADER_CONTENT_TYPE                     = "content-type"
    57  	HEADER_CONTENT_LANGUAGE                 = "content-language"
    58  	HEADER_EXPIRES                          = "expires"
    59  	HEADER_CACHE_CONTROL                    = "cache-control"
    60  	HEADER_CONTENT_DISPOSITION              = "content-disposition"
    61  	HEADER_CONTENT_ENCODING                 = "content-encoding"
    62  	HEADER_BUCKET_TYPE                      = "bucket-type"
    63  
    64  	HEADER_ETAG         = "etag"
    65  	HEADER_LASTMODIFIED = "last-modified"
    66  
    67  	HEADER_COPY_SOURCE_IF_MATCH            = "copy-source-if-match"
    68  	HEADER_COPY_SOURCE_IF_NONE_MATCH       = "copy-source-if-none-match"
    69  	HEADER_COPY_SOURCE_IF_MODIFIED_SINCE   = "copy-source-if-modified-since"
    70  	HEADER_COPY_SOURCE_IF_UNMODIFIED_SINCE = "copy-source-if-unmodified-since"
    71  
    72  	HEADER_IF_MATCH            = "If-Match"
    73  	HEADER_IF_NONE_MATCH       = "If-None-Match"
    74  	HEADER_IF_MODIFIED_SINCE   = "If-Modified-Since"
    75  	HEADER_IF_UNMODIFIED_SINCE = "If-Unmodified-Since"
    76  
    77  	HEADER_SSEC_ENCRYPTION = "server-side-encryption-customer-algorithm"
    78  	HEADER_SSEC_KEY        = "server-side-encryption-customer-key"
    79  	HEADER_SSEC_KEY_MD5    = "server-side-encryption-customer-key-MD5"
    80  
    81  	HEADER_SSEKMS_ENCRYPTION      = "server-side-encryption"
    82  	HEADER_SSEKMS_KEY             = "server-side-encryption-aws-kms-key-id"
    83  	HEADER_SSEKMS_ENCRYPT_KEY_OBS = "server-side-encryption-kms-key-id"
    84  
    85  	HEADER_SSEC_COPY_SOURCE_ENCRYPTION = "copy-source-server-side-encryption-customer-algorithm"
    86  	HEADER_SSEC_COPY_SOURCE_KEY        = "copy-source-server-side-encryption-customer-key"
    87  	HEADER_SSEC_COPY_SOURCE_KEY_MD5    = "copy-source-server-side-encryption-customer-key-MD5"
    88  
    89  	HEADER_SSEKMS_KEY_AMZ = "x-amz-server-side-encryption-aws-kms-key-id"
    90  
    91  	HEADER_SSEKMS_KEY_OBS = "x-obs-server-side-encryption-kms-key-id"
    92  
    93  	HEADER_SUCCESS_ACTION_REDIRECT = "success_action_redirect"
    94  
    95  	HEADER_FS_FILE_INTERFACE   = "fs-file-interface"
    96  	HEADER_OBJECT_LOCK_ENABLED = "bucket-object-lock-enabled"
    97  
    98  	HEADER_DATE_CAMEL                          = "Date"
    99  	HEADER_HOST_CAMEL                          = "Host"
   100  	HEADER_HOST                                = "host"
   101  	HEADER_AUTH_CAMEL                          = "Authorization"
   102  	HEADER_MD5_CAMEL                           = "Content-MD5"
   103  	HEADER_LOCATION_CAMEL                      = "Location"
   104  	HEADER_CONTENT_LENGTH_CAMEL                = "Content-Length"
   105  	HEADER_CONTENT_TYPE_CAML                   = "Content-Type"
   106  	HEADER_USER_AGENT_CAMEL                    = "User-Agent"
   107  	HEADER_ORIGIN_CAMEL                        = "Origin"
   108  	HEADER_ACCESS_CONTROL_REQUEST_HEADER_CAMEL = "Access-Control-Request-Headers"
   109  	HEADER_CACHE_CONTROL_CAMEL                 = "Cache-Control"
   110  	HEADER_CONTENT_DISPOSITION_CAMEL           = "Content-Disposition"
   111  	HEADER_CONTENT_ENCODING_CAMEL              = "Content-Encoding"
   112  	HEADER_CONTENT_LANGUAGE_CAMEL              = "Content-Language"
   113  	HEADER_EXPIRES_CAMEL                       = "Expires"
   114  
   115  	PARAM_VERSION_ID                   = "versionId"
   116  	PARAM_RESPONSE_CONTENT_TYPE        = "response-content-type"
   117  	PARAM_RESPONSE_CONTENT_LANGUAGE    = "response-content-language"
   118  	PARAM_RESPONSE_EXPIRES             = "response-expires"
   119  	PARAM_RESPONSE_CACHE_CONTROL       = "response-cache-control"
   120  	PARAM_RESPONSE_CONTENT_DISPOSITION = "response-content-disposition"
   121  	PARAM_RESPONSE_CONTENT_ENCODING    = "response-content-encoding"
   122  	PARAM_IMAGE_PROCESS                = "x-image-process"
   123  
   124  	PARAM_ALGORITHM_AMZ_CAMEL     = "X-Amz-Algorithm"
   125  	PARAM_CREDENTIAL_AMZ_CAMEL    = "X-Amz-Credential"
   126  	PARAM_DATE_AMZ_CAMEL          = "X-Amz-Date"
   127  	PARAM_DATE_OBS_CAMEL          = "X-Obs-Date"
   128  	PARAM_EXPIRES_AMZ_CAMEL       = "X-Amz-Expires"
   129  	PARAM_SIGNEDHEADERS_AMZ_CAMEL = "X-Amz-SignedHeaders"
   130  	PARAM_SIGNATURE_AMZ_CAMEL     = "X-Amz-Signature"
   131  
   132  	DEFAULT_SIGNATURE            = SignatureV2
   133  	DEFAULT_REGION               = "region"
   134  	DEFAULT_CONNECT_TIMEOUT      = 60
   135  	DEFAULT_SOCKET_TIMEOUT       = 60
   136  	DEFAULT_HEADER_TIMEOUT       = 60
   137  	DEFAULT_IDLE_CONN_TIMEOUT    = 30
   138  	DEFAULT_MAX_RETRY_COUNT      = 3
   139  	DEFAULT_MAX_REDIRECT_COUNT   = 3
   140  	DEFAULT_MAX_CONN_PER_HOST    = 1000
   141  	EMPTY_CONTENT_SHA256         = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
   142  	UNSIGNED_PAYLOAD             = "UNSIGNED-PAYLOAD"
   143  	LONG_DATE_FORMAT             = "20060102T150405Z"
   144  	SHORT_DATE_FORMAT            = "20060102"
   145  	ISO8601_DATE_FORMAT          = "2006-01-02T15:04:05Z"
   146  	ISO8601_MIDNIGHT_DATE_FORMAT = "2006-01-02T00:00:00Z"
   147  	RFC1123_FORMAT               = "Mon, 02 Jan 2006 15:04:05 GMT"
   148  
   149  	V4_SERVICE_NAME   = "s3"
   150  	V4_SERVICE_SUFFIX = "aws4_request"
   151  
   152  	V2_HASH_PREFIX  = "AWS"
   153  	OBS_HASH_PREFIX = "OBS"
   154  
   155  	V4_HASH_PREFIX = "AWS4-HMAC-SHA256"
   156  	V4_HASH_PRE    = "AWS4"
   157  
   158  	DEFAULT_SSE_KMS_ENCRYPTION     = "aws:kms"
   159  	DEFAULT_SSE_KMS_ENCRYPTION_OBS = "kms"
   160  
   161  	DEFAULT_SSE_C_ENCRYPTION = "AES256"
   162  
   163  	HTTP_GET     = "GET"
   164  	HTTP_POST    = "POST"
   165  	HTTP_PUT     = "PUT"
   166  	HTTP_DELETE  = "DELETE"
   167  	HTTP_HEAD    = "HEAD"
   168  	HTTP_OPTIONS = "OPTIONS"
   169  
   170  	MAX_PART_SIZE     = 5 * 1024 * 1024 * 1024
   171  	MIN_PART_SIZE     = 100 * 1024
   172  	DEFAULT_PART_SIZE = 9 * 1024 * 1024
   173  	MAX_PART_NUM      = 10000
   174  
   175  	// SubResourceReplication subResource value: replication
   176  	SubResourceReplication SubResourceType = "replication"
   177  )
   178  
   179  type SignatureType string
   180  
   181  const (
   182  	SignatureV2  SignatureType = "v2"
   183  	SignatureV4  SignatureType = "v4"
   184  	SignatureObs SignatureType = "OBS"
   185  )
   186  
   187  var (
   188  	interestedHeaders = []string{"content-md5", "content-type", "date"}
   189  
   190  	allowedRequestHttpHeaderMetadataNames = map[string]bool{
   191  		"content-type":                  true,
   192  		"content-md5":                   true,
   193  		"content-length":                true,
   194  		"content-language":              true,
   195  		"expires":                       true,
   196  		"origin":                        true,
   197  		"cache-control":                 true,
   198  		"content-disposition":           true,
   199  		"content-encoding":              true,
   200  		"x-default-storage-class":       true,
   201  		"location":                      true,
   202  		"date":                          true,
   203  		"etag":                          true,
   204  		"host":                          true,
   205  		"last-modified":                 true,
   206  		"content-range":                 true,
   207  		"x-reserved":                    true,
   208  		"x-reserved-indicator":          true,
   209  		"access-control-allow-origin":   true,
   210  		"access-control-allow-headers":  true,
   211  		"access-control-max-age":        true,
   212  		"access-control-allow-methods":  true,
   213  		"access-control-expose-headers": true,
   214  		"connection":                    true,
   215  	}
   216  
   217  	allowedResourceParameterNames = map[string]bool{
   218  		"acl":                          true,
   219  		"backtosource":                 true,
   220  		"policy":                       true,
   221  		"torrent":                      true,
   222  		"logging":                      true,
   223  		"location":                     true,
   224  		"storageinfo":                  true,
   225  		"quota":                        true,
   226  		"storageclass":                 true,
   227  		"storagepolicy":                true,
   228  		"requestpayment":               true,
   229  		"versions":                     true,
   230  		"versioning":                   true,
   231  		"versionid":                    true,
   232  		"uploads":                      true,
   233  		"uploadid":                     true,
   234  		"partnumber":                   true,
   235  		"website":                      true,
   236  		"notification":                 true,
   237  		"lifecycle":                    true,
   238  		"deletebucket":                 true,
   239  		"delete":                       true,
   240  		"cors":                         true,
   241  		"object-lock":                  true,
   242  		"restore":                      true,
   243  		"encryption":                   true,
   244  		"tagging":                      true,
   245  		"append":                       true,
   246  		"position":                     true,
   247  		"replication":                  true,
   248  		"response-content-type":        true,
   249  		"response-content-language":    true,
   250  		"response-expires":             true,
   251  		"response-cache-control":       true,
   252  		"response-content-disposition": true,
   253  		"response-content-encoding":    true,
   254  		"x-image-process":              true,
   255  		"x-oss-process":                true,
   256  		"x-image-save-bucket":          true,
   257  		"x-image-save-object":          true,
   258  	}
   259  
   260  	mimeTypes = map[string]string{
   261  		"001":     "application/x-001",
   262  		"301":     "application/x-301",
   263  		"323":     "text/h323",
   264  		"7z":      "application/x-7z-compressed",
   265  		"906":     "application/x-906",
   266  		"907":     "drawing/907",
   267  		"IVF":     "video/x-ivf",
   268  		"a11":     "application/x-a11",
   269  		"aac":     "audio/x-aac",
   270  		"acp":     "audio/x-mei-aac",
   271  		"ai":      "application/postscript",
   272  		"aif":     "audio/aiff",
   273  		"aifc":    "audio/aiff",
   274  		"aiff":    "audio/aiff",
   275  		"anv":     "application/x-anv",
   276  		"apk":     "application/vnd.android.package-archive",
   277  		"asa":     "text/asa",
   278  		"asf":     "video/x-ms-asf",
   279  		"asp":     "text/asp",
   280  		"asx":     "video/x-ms-asf",
   281  		"atom":    "application/atom+xml",
   282  		"au":      "audio/basic",
   283  		"avi":     "video/avi",
   284  		"awf":     "application/vnd.adobe.workflow",
   285  		"biz":     "text/xml",
   286  		"bmp":     "application/x-bmp",
   287  		"bot":     "application/x-bot",
   288  		"bz2":     "application/x-bzip2",
   289  		"c4t":     "application/x-c4t",
   290  		"c90":     "application/x-c90",
   291  		"cal":     "application/x-cals",
   292  		"cat":     "application/vnd.ms-pki.seccat",
   293  		"cdf":     "application/x-netcdf",
   294  		"cdr":     "application/x-cdr",
   295  		"cel":     "application/x-cel",
   296  		"cer":     "application/x-x509-ca-cert",
   297  		"cg4":     "application/x-g4",
   298  		"cgm":     "application/x-cgm",
   299  		"cit":     "application/x-cit",
   300  		"class":   "java/*",
   301  		"cml":     "text/xml",
   302  		"cmp":     "application/x-cmp",
   303  		"cmx":     "application/x-cmx",
   304  		"cot":     "application/x-cot",
   305  		"crl":     "application/pkix-crl",
   306  		"crt":     "application/x-x509-ca-cert",
   307  		"csi":     "application/x-csi",
   308  		"css":     "text/css",
   309  		"csv":     "text/csv",
   310  		"cu":      "application/cu-seeme",
   311  		"cut":     "application/x-cut",
   312  		"dbf":     "application/x-dbf",
   313  		"dbm":     "application/x-dbm",
   314  		"dbx":     "application/x-dbx",
   315  		"dcd":     "text/xml",
   316  		"dcx":     "application/x-dcx",
   317  		"deb":     "application/x-debian-package",
   318  		"der":     "application/x-x509-ca-cert",
   319  		"dgn":     "application/x-dgn",
   320  		"dib":     "application/x-dib",
   321  		"dll":     "application/x-msdownload",
   322  		"doc":     "application/msword",
   323  		"docx":    "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
   324  		"dot":     "application/msword",
   325  		"drw":     "application/x-drw",
   326  		"dtd":     "text/xml",
   327  		"dvi":     "application/x-dvi",
   328  		"dwf":     "application/x-dwf",
   329  		"dwg":     "application/x-dwg",
   330  		"dxb":     "application/x-dxb",
   331  		"dxf":     "application/x-dxf",
   332  		"edn":     "application/vnd.adobe.edn",
   333  		"emf":     "application/x-emf",
   334  		"eml":     "message/rfc822",
   335  		"ent":     "text/xml",
   336  		"eot":     "application/vnd.ms-fontobject",
   337  		"epi":     "application/x-epi",
   338  		"eps":     "application/postscript",
   339  		"epub":    "application/epub+zip",
   340  		"etd":     "application/x-ebx",
   341  		"etx":     "text/x-setext",
   342  		"exe":     "application/x-msdownload",
   343  		"fax":     "image/fax",
   344  		"fdf":     "application/vnd.fdf",
   345  		"fif":     "application/fractals",
   346  		"flac":    "audio/flac",
   347  		"flv":     "video/x-flv",
   348  		"fo":      "text/xml",
   349  		"frm":     "application/x-frm",
   350  		"g4":      "application/x-g4",
   351  		"gbr":     "application/x-gbr",
   352  		"gif":     "image/gif",
   353  		"gl2":     "application/x-gl2",
   354  		"gp4":     "application/x-gp4",
   355  		"gz":      "application/gzip",
   356  		"hgl":     "application/x-hgl",
   357  		"hmr":     "application/x-hmr",
   358  		"hpg":     "application/x-hpgl",
   359  		"hpl":     "application/x-hpl",
   360  		"hqx":     "application/mac-binhex40",
   361  		"hrf":     "application/x-hrf",
   362  		"hta":     "application/hta",
   363  		"htc":     "text/x-component",
   364  		"htm":     "text/html",
   365  		"html":    "text/html",
   366  		"htt":     "text/webviewhtml",
   367  		"htx":     "text/html",
   368  		"icb":     "application/x-icb",
   369  		"ico":     "application/x-ico",
   370  		"ics":     "text/calendar",
   371  		"iff":     "application/x-iff",
   372  		"ig4":     "application/x-g4",
   373  		"igs":     "application/x-igs",
   374  		"iii":     "application/x-iphone",
   375  		"img":     "application/x-img",
   376  		"ini":     "text/plain",
   377  		"ins":     "application/x-internet-signup",
   378  		"ipa":     "application/vnd.iphone",
   379  		"iso":     "application/x-iso9660-image",
   380  		"isp":     "application/x-internet-signup",
   381  		"jar":     "application/java-archive",
   382  		"java":    "java/*",
   383  		"jfif":    "image/jpeg",
   384  		"jpe":     "image/jpeg",
   385  		"jpeg":    "image/jpeg",
   386  		"jpg":     "image/jpeg",
   387  		"js":      "application/x-javascript",
   388  		"json":    "application/json",
   389  		"jsp":     "text/html",
   390  		"la1":     "audio/x-liquid-file",
   391  		"lar":     "application/x-laplayer-reg",
   392  		"latex":   "application/x-latex",
   393  		"lavs":    "audio/x-liquid-secure",
   394  		"lbm":     "application/x-lbm",
   395  		"lmsff":   "audio/x-la-lms",
   396  		"log":     "text/plain",
   397  		"ls":      "application/x-javascript",
   398  		"ltr":     "application/x-ltr",
   399  		"m1v":     "video/x-mpeg",
   400  		"m2v":     "video/x-mpeg",
   401  		"m3u":     "audio/mpegurl",
   402  		"m4a":     "audio/mp4",
   403  		"m4e":     "video/mpeg4",
   404  		"m4v":     "video/mp4",
   405  		"mac":     "application/x-mac",
   406  		"man":     "application/x-troff-man",
   407  		"math":    "text/xml",
   408  		"mdb":     "application/msaccess",
   409  		"mfp":     "application/x-shockwave-flash",
   410  		"mht":     "message/rfc822",
   411  		"mhtml":   "message/rfc822",
   412  		"mi":      "application/x-mi",
   413  		"mid":     "audio/mid",
   414  		"midi":    "audio/mid",
   415  		"mil":     "application/x-mil",
   416  		"mml":     "text/xml",
   417  		"mnd":     "audio/x-musicnet-download",
   418  		"mns":     "audio/x-musicnet-stream",
   419  		"mocha":   "application/x-javascript",
   420  		"mov":     "video/quicktime",
   421  		"movie":   "video/x-sgi-movie",
   422  		"mp1":     "audio/mp1",
   423  		"mp2":     "audio/mp2",
   424  		"mp2v":    "video/mpeg",
   425  		"mp3":     "audio/mp3",
   426  		"mp4":     "video/mpeg4",
   427  		"mp4a":    "audio/mp4",
   428  		"mp4v":    "video/mp4",
   429  		"mpa":     "video/x-mpg",
   430  		"mpd":     "application/vnd.ms-project",
   431  		"mpe":     "video/x-mpeg",
   432  		"mpeg":    "video/mpg",
   433  		"mpg":     "video/mpg",
   434  		"mpg4":    "video/mp4",
   435  		"mpga":    "audio/rn-mpeg",
   436  		"mpp":     "application/vnd.ms-project",
   437  		"mps":     "video/x-mpeg",
   438  		"mpt":     "application/vnd.ms-project",
   439  		"mpv":     "video/mpg",
   440  		"mpv2":    "video/mpeg",
   441  		"mpw":     "application/vnd.ms-project",
   442  		"mpx":     "application/vnd.ms-project",
   443  		"mtx":     "text/xml",
   444  		"mxp":     "application/x-mmxp",
   445  		"net":     "image/pnetvue",
   446  		"nrf":     "application/x-nrf",
   447  		"nws":     "message/rfc822",
   448  		"odc":     "text/x-ms-odc",
   449  		"oga":     "audio/ogg",
   450  		"ogg":     "audio/ogg",
   451  		"ogv":     "video/ogg",
   452  		"ogx":     "application/ogg",
   453  		"out":     "application/x-out",
   454  		"p10":     "application/pkcs10",
   455  		"p12":     "application/x-pkcs12",
   456  		"p7b":     "application/x-pkcs7-certificates",
   457  		"p7c":     "application/pkcs7-mime",
   458  		"p7m":     "application/pkcs7-mime",
   459  		"p7r":     "application/x-pkcs7-certreqresp",
   460  		"p7s":     "application/pkcs7-signature",
   461  		"pbm":     "image/x-portable-bitmap",
   462  		"pc5":     "application/x-pc5",
   463  		"pci":     "application/x-pci",
   464  		"pcl":     "application/x-pcl",
   465  		"pcx":     "application/x-pcx",
   466  		"pdf":     "application/pdf",
   467  		"pdx":     "application/vnd.adobe.pdx",
   468  		"pfx":     "application/x-pkcs12",
   469  		"pgl":     "application/x-pgl",
   470  		"pgm":     "image/x-portable-graymap",
   471  		"pic":     "application/x-pic",
   472  		"pko":     "application/vnd.ms-pki.pko",
   473  		"pl":      "application/x-perl",
   474  		"plg":     "text/html",
   475  		"pls":     "audio/scpls",
   476  		"plt":     "application/x-plt",
   477  		"png":     "image/png",
   478  		"pnm":     "image/x-portable-anymap",
   479  		"pot":     "application/vnd.ms-powerpoint",
   480  		"ppa":     "application/vnd.ms-powerpoint",
   481  		"ppm":     "application/x-ppm",
   482  		"pps":     "application/vnd.ms-powerpoint",
   483  		"ppt":     "application/vnd.ms-powerpoint",
   484  		"pptx":    "application/vnd.openxmlformats-officedocument.presentationml.presentation",
   485  		"pr":      "application/x-pr",
   486  		"prf":     "application/pics-rules",
   487  		"prn":     "application/x-prn",
   488  		"prt":     "application/x-prt",
   489  		"ps":      "application/postscript",
   490  		"ptn":     "application/x-ptn",
   491  		"pwz":     "application/vnd.ms-powerpoint",
   492  		"qt":      "video/quicktime",
   493  		"r3t":     "text/vnd.rn-realtext3d",
   494  		"ra":      "audio/vnd.rn-realaudio",
   495  		"ram":     "audio/x-pn-realaudio",
   496  		"rar":     "application/x-rar-compressed",
   497  		"ras":     "application/x-ras",
   498  		"rat":     "application/rat-file",
   499  		"rdf":     "text/xml",
   500  		"rec":     "application/vnd.rn-recording",
   501  		"red":     "application/x-red",
   502  		"rgb":     "application/x-rgb",
   503  		"rjs":     "application/vnd.rn-realsystem-rjs",
   504  		"rjt":     "application/vnd.rn-realsystem-rjt",
   505  		"rlc":     "application/x-rlc",
   506  		"rle":     "application/x-rle",
   507  		"rm":      "application/vnd.rn-realmedia",
   508  		"rmf":     "application/vnd.adobe.rmf",
   509  		"rmi":     "audio/mid",
   510  		"rmj":     "application/vnd.rn-realsystem-rmj",
   511  		"rmm":     "audio/x-pn-realaudio",
   512  		"rmp":     "application/vnd.rn-rn_music_package",
   513  		"rms":     "application/vnd.rn-realmedia-secure",
   514  		"rmvb":    "application/vnd.rn-realmedia-vbr",
   515  		"rmx":     "application/vnd.rn-realsystem-rmx",
   516  		"rnx":     "application/vnd.rn-realplayer",
   517  		"rp":      "image/vnd.rn-realpix",
   518  		"rpm":     "audio/x-pn-realaudio-plugin",
   519  		"rsml":    "application/vnd.rn-rsml",
   520  		"rss":     "application/rss+xml",
   521  		"rt":      "text/vnd.rn-realtext",
   522  		"rtf":     "application/x-rtf",
   523  		"rv":      "video/vnd.rn-realvideo",
   524  		"sam":     "application/x-sam",
   525  		"sat":     "application/x-sat",
   526  		"sdp":     "application/sdp",
   527  		"sdw":     "application/x-sdw",
   528  		"sgm":     "text/sgml",
   529  		"sgml":    "text/sgml",
   530  		"sis":     "application/vnd.symbian.install",
   531  		"sisx":    "application/vnd.symbian.install",
   532  		"sit":     "application/x-stuffit",
   533  		"slb":     "application/x-slb",
   534  		"sld":     "application/x-sld",
   535  		"slk":     "drawing/x-slk",
   536  		"smi":     "application/smil",
   537  		"smil":    "application/smil",
   538  		"smk":     "application/x-smk",
   539  		"snd":     "audio/basic",
   540  		"sol":     "text/plain",
   541  		"sor":     "text/plain",
   542  		"spc":     "application/x-pkcs7-certificates",
   543  		"spl":     "application/futuresplash",
   544  		"spp":     "text/xml",
   545  		"ssm":     "application/streamingmedia",
   546  		"sst":     "application/vnd.ms-pki.certstore",
   547  		"stl":     "application/vnd.ms-pki.stl",
   548  		"stm":     "text/html",
   549  		"sty":     "application/x-sty",
   550  		"svg":     "image/svg+xml",
   551  		"swf":     "application/x-shockwave-flash",
   552  		"tar":     "application/x-tar",
   553  		"tdf":     "application/x-tdf",
   554  		"tg4":     "application/x-tg4",
   555  		"tga":     "application/x-tga",
   556  		"tif":     "image/tiff",
   557  		"tiff":    "image/tiff",
   558  		"tld":     "text/xml",
   559  		"top":     "drawing/x-top",
   560  		"torrent": "application/x-bittorrent",
   561  		"tsd":     "text/xml",
   562  		"ttf":     "application/x-font-ttf",
   563  		"txt":     "text/plain",
   564  		"uin":     "application/x-icq",
   565  		"uls":     "text/iuls",
   566  		"vcf":     "text/x-vcard",
   567  		"vda":     "application/x-vda",
   568  		"vdx":     "application/vnd.visio",
   569  		"vml":     "text/xml",
   570  		"vpg":     "application/x-vpeg005",
   571  		"vsd":     "application/vnd.visio",
   572  		"vss":     "application/vnd.visio",
   573  		"vst":     "application/x-vst",
   574  		"vsw":     "application/vnd.visio",
   575  		"vsx":     "application/vnd.visio",
   576  		"vtx":     "application/vnd.visio",
   577  		"vxml":    "text/xml",
   578  		"wav":     "audio/wav",
   579  		"wax":     "audio/x-ms-wax",
   580  		"wb1":     "application/x-wb1",
   581  		"wb2":     "application/x-wb2",
   582  		"wb3":     "application/x-wb3",
   583  		"wbmp":    "image/vnd.wap.wbmp",
   584  		"webm":    "video/webm",
   585  		"wiz":     "application/msword",
   586  		"wk3":     "application/x-wk3",
   587  		"wk4":     "application/x-wk4",
   588  		"wkq":     "application/x-wkq",
   589  		"wks":     "application/x-wks",
   590  		"wm":      "video/x-ms-wm",
   591  		"wma":     "audio/x-ms-wma",
   592  		"wmd":     "application/x-ms-wmd",
   593  		"wmf":     "application/x-wmf",
   594  		"wml":     "text/vnd.wap.wml",
   595  		"wmv":     "video/x-ms-wmv",
   596  		"wmx":     "video/x-ms-wmx",
   597  		"wmz":     "application/x-ms-wmz",
   598  		"woff":    "application/x-font-woff",
   599  		"wp6":     "application/x-wp6",
   600  		"wpd":     "application/x-wpd",
   601  		"wpg":     "application/x-wpg",
   602  		"wpl":     "application/vnd.ms-wpl",
   603  		"wq1":     "application/x-wq1",
   604  		"wr1":     "application/x-wr1",
   605  		"wri":     "application/x-wri",
   606  		"wrk":     "application/x-wrk",
   607  		"ws":      "application/x-ws",
   608  		"ws2":     "application/x-ws",
   609  		"wsc":     "text/scriptlet",
   610  		"wsdl":    "text/xml",
   611  		"wvx":     "video/x-ms-wvx",
   612  		"x_b":     "application/x-x_b",
   613  		"x_t":     "application/x-x_t",
   614  		"xap":     "application/x-silverlight-app",
   615  		"xbm":     "image/x-xbitmap",
   616  		"xdp":     "application/vnd.adobe.xdp",
   617  		"xdr":     "text/xml",
   618  		"xfd":     "application/vnd.adobe.xfd",
   619  		"xfdf":    "application/vnd.adobe.xfdf",
   620  		"xhtml":   "text/html",
   621  		"xls":     "application/vnd.ms-excel",
   622  		"xlsx":    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
   623  		"xlw":     "application/x-xlw",
   624  		"xml":     "text/xml",
   625  		"xpl":     "audio/scpls",
   626  		"xpm":     "image/x-xpixmap",
   627  		"xq":      "text/xml",
   628  		"xql":     "text/xml",
   629  		"xquery":  "text/xml",
   630  		"xsd":     "text/xml",
   631  		"xsl":     "text/xml",
   632  		"xslt":    "text/xml",
   633  		"xwd":     "application/x-xwd",
   634  		"yaml":    "text/yaml",
   635  		"yml":     "text/yaml",
   636  		"zip":     "application/zip",
   637  	}
   638  )
   639  
   640  type HttpMethodType string
   641  
   642  const (
   643  	HttpMethodGet     HttpMethodType = HTTP_GET
   644  	HttpMethodPut     HttpMethodType = HTTP_PUT
   645  	HttpMethodPost    HttpMethodType = HTTP_POST
   646  	HttpMethodDelete  HttpMethodType = HTTP_DELETE
   647  	HttpMethodHead    HttpMethodType = HTTP_HEAD
   648  	HttpMethodOptions HttpMethodType = HTTP_OPTIONS
   649  )
   650  
   651  type SubResourceType string
   652  
   653  const (
   654  	SubResourceStoragePolicy SubResourceType  = "storagePolicy"
   655  	SubResourceStorageClass  SubResourceType  = "storageClass"
   656  	SubResourceQuota         SubResourceType  = "quota"
   657  	SubResourceStorageInfo   SubResourceType  = "storageinfo"
   658  	SubResourceLocation      SubResourceType  = "location"
   659  	SubResourceAcl           SubResourceType  = "acl"
   660  	SubResourcePolicy        SubResourceType  = "policy"
   661  	SubResourceCors          SubResourceType  = "cors"
   662  	SubResourceVersioning    SubResourceType  = "versioning"
   663  	SubResourceWebsite       SubResourceType  = "website"
   664  	SubResourceLogging       SubResourceType  = "logging"
   665  	SubResourceLifecycle     SubResourceType  = "lifecycle"
   666  	SubResourceNotification  SubResourceType  = "notification"
   667  	SubResourceEncryption    SubResourceType  = "encryption"
   668  	SubResourceObjectLock    SubResourceType  = "object-lock"
   669  	SubResourceCustomDomain  SubResourceType  = "customdomain"
   670  	SubResourceTagging       SubResourceType  = "tagging"
   671  	SubResourceDelete        SubResourceType  = "delete"
   672  	SubResourceVersions      SubResourceType  = "versions"
   673  	SubResourceUploads       SubResourceType  = "uploads"
   674  	SubResourceRestore       SubResourceType  = "restore"
   675  	SubResourceMetadata      SubResourceType  = "metadata"
   676  	storageClassStandardIA   StorageClassType = "STANDARD_IA"
   677  	storageClassGlacier      StorageClassType = "GLACIER"
   678  )
   679  
   680  type AclType string
   681  
   682  const (
   683  	AclPrivate                 AclType = "private"
   684  	AclPublicRead              AclType = "public-read"
   685  	AclPublicReadWrite         AclType = "public-read-write"
   686  	AclAuthenticatedRead       AclType = "authenticated-read"
   687  	AclBucketOwnerRead         AclType = "bucket-owner-read"
   688  	AclBucketOwnerFullControl  AclType = "bucket-owner-full-control"
   689  	AclLogDeliveryWrite        AclType = "log-delivery-write"
   690  	AclPublicReadDelivery      AclType = "public-read-delivered"
   691  	AclPublicReadWriteDelivery AclType = "public-read-write-delivered"
   692  )
   693  
   694  type StorageClassType string
   695  
   696  const (
   697  	StorageClassStandard StorageClassType = "STANDARD"
   698  	StorageClassWarm     StorageClassType = "WARM"
   699  	StorageClassCold     StorageClassType = "COLD"
   700  )
   701  
   702  type PermissionType string
   703  
   704  const (
   705  	PermissionRead        PermissionType = "READ"
   706  	PermissionWrite       PermissionType = "WRITE"
   707  	PermissionReadAcp     PermissionType = "READ_ACP"
   708  	PermissionWriteAcp    PermissionType = "WRITE_ACP"
   709  	PermissionFullControl PermissionType = "FULL_CONTROL"
   710  )
   711  
   712  type GranteeType string
   713  
   714  const (
   715  	GranteeGroup GranteeType = "Group"
   716  	GranteeUser  GranteeType = "CanonicalUser"
   717  )
   718  
   719  type GroupUriType string
   720  
   721  const (
   722  	GroupAllUsers           GroupUriType = "AllUsers"
   723  	GroupAuthenticatedUsers GroupUriType = "AuthenticatedUsers"
   724  	GroupLogDelivery        GroupUriType = "LogDelivery"
   725  )
   726  
   727  type VersioningStatusType string
   728  
   729  const (
   730  	VersioningStatusEnabled   VersioningStatusType = "Enabled"
   731  	VersioningStatusSuspended VersioningStatusType = "Suspended"
   732  )
   733  
   734  type ProtocolType string
   735  
   736  const (
   737  	ProtocolHttp  ProtocolType = "http"
   738  	ProtocolHttps ProtocolType = "https"
   739  )
   740  
   741  type RuleStatusType string
   742  
   743  const (
   744  	RuleStatusEnabled  RuleStatusType = "Enabled"
   745  	RuleStatusDisabled RuleStatusType = "Disabled"
   746  )
   747  
   748  type RestoreTierType string
   749  
   750  const (
   751  	RestoreTierExpedited RestoreTierType = "Expedited"
   752  	RestoreTierStandard  RestoreTierType = "Standard"
   753  	RestoreTierBulk      RestoreTierType = "Bulk"
   754  )
   755  
   756  type MetadataDirectiveType string
   757  
   758  const (
   759  	CopyMetadata    MetadataDirectiveType = "COPY"
   760  	ReplaceNew      MetadataDirectiveType = "REPLACE_NEW"
   761  	ReplaceMetadata MetadataDirectiveType = "REPLACE"
   762  )
   763  
   764  type EventType string
   765  
   766  const (
   767  	ObjectCreatedAll  EventType = "ObjectCreated:*"
   768  	ObjectCreatedPut  EventType = "ObjectCreated:Put"
   769  	ObjectCreatedPost EventType = "ObjectCreated:Post"
   770  
   771  	ObjectCreatedCopy                    EventType = "ObjectCreated:Copy"
   772  	ObjectCreatedCompleteMultipartUpload EventType = "ObjectCreated:CompleteMultipartUpload"
   773  	ObjectRemovedAll                     EventType = "ObjectRemoved:*"
   774  	ObjectRemovedDelete                  EventType = "ObjectRemoved:Delete"
   775  	ObjectRemovedDeleteMarkerCreated     EventType = "ObjectRemoved:DeleteMarkerCreated"
   776  )
   777  
   778  // PayerType defines type of payer
   779  type PayerType string
   780  
   781  const (
   782  	// BucketOwnerPayer type of payer: BucketOwner
   783  	BucketOwnerPayer PayerType = "BucketOwner"
   784  
   785  	// RequesterPayer type of payer: Requester
   786  	RequesterPayer PayerType = "Requester"
   787  
   788  	// Requester header for requester-Pays
   789  	Requester PayerType = "requester"
   790  )
   791  
   792  // BucketType defines type of bucket
   793  type BucketType string
   794  
   795  const (
   796  	OBJECT BucketType = "OBJECT"
   797  	POSIX  BucketType = "POSIX"
   798  )
   799  
   800  const (
   801  	FSStatusEnabled  FSStatusType = "Enabled"
   802  	FSStatusDisabled FSStatusType = "Disabled"
   803  )
   804  
   805  type FSStatusType string
   806  
   807  // EnabledType defines a common status type
   808  type EnabledType string