Chapter 12. S3 API
Chapter 12. S3 API
S3 API
12.1. Introduction
This documentation provides the details of the HyperStore system’s compliance with the S3 REST API. The
organization of this documentation parallels that of the AWS S3 API Reference. Links are provided to specific
parts of the AWS S3 API Reference so you can easily view additional information about individual API oper-
ations.
This documentation takes the approach of specifying in detail the things that the HyperStore system does sup-
port from the AWS S3 REST API — from operations down to the level of particular request parameters, request
headers, request elements, response headers, and response elements. If it’s not listed in this HyperStore S3
API Support documentation, the HyperStore system does not currently support it.
This documentation also describes ways in which the HyperStore system extends the AWS S3 API, to support
additional functionality. Most of these extensions are in the form of additional request headers that add
enhanced functionality to standard AWS S3 operations on buckets. These extensions are described within the
sections that document HyperStore compliance with standard AWS S3 operations. The extensions are always
identified by a sub-heading that says HyperStore Extension to the S3 API. (For a summary of the extensions
see "HyperStore Extensions to the S3 API" (page 1008).)
1001
Chapter 12. S3 API
IMPORTANT ! Some atypical ways of organizing data within a bucket can result in sub-optimal per-
formance for certain S3 operations on that bucket. For detail see "Object Metadata Structure in the
Metadata DB" (page 201).
Note When the CMC or other S3 client applications delete S3 objects, the HyperStore system deletes
the object metadata immediately but does not delete the actual objects immediately. Instead the
objects are batched for deletion by a cron job. When S3 clients overwrite S3 objects, the HyperStore
system writes the new version of the object immediately, and updates the object metadata immediately,
but does not delete the outdated version of the object immediately. Instead the outdated object ver-
sions are batched for deletion by the same cron job. (Note that in a bucket that has versioning
enabled, the old object versions would be retained rather than deleted.)
Note The CMC system administrator role does not and cannot have its own S3 storage user account.
However you can create a regular user account for yourself, and use that to access the data store.
1002
12.1. Introduction
You can also manage other regular users' data on their behalf, if that capability is enabled in your sys-
tem by configuration.
To check to see what is your HyperStore S3 Service endpoint -- the URI to which you will submit S3 requests
with your third party application -- go to the CMC's Security Credentials page or Cluster Information page.
In practice, the main differences between developing for the HyperStore S3 service and developing for
Amazon S3 are:
l HyperStore S3 client applications must use the HyperStore S3 service endpoint rather than the Amazon
S3 service endpoint. To check to see what is your HyperStore S3 Service endpoint -- the URI to which
you will submit S3 requests with your custom application -- go to the CMC's Security Credentials page
or Cluster Information page.
l As detailed in the "Supported S3 Operations" section of this documentation, the HyperStore S3 service
supports the great majority of but not the entire Amazon S3 API.
l Also as detailed in the "Supported S3 Operations" section of this documentation, the HyperStore S3 ser-
vice supports a small number of extensions to the Amazon S3 API. (For an overview of the extensions
see "HyperStore Extensions to the S3 API" (page 1008)).
For more information on this Amazon S3 feature, refer to the "Authenticating Requests (AWS Signature Ver-
sion 4)" section of the Amazon S3 REST API.
1003
Chapter 12. S3 API
Note For HyperStore, the region name validation aspect of Signature Version 4 is disabled by default.
You can enable it with the "cloudian.s3.authorizationV4.singleregioncheck" (page 614) and/or
"cloudian.s3.authorizationV4.multiregioncheck" (page 614) settings in mts.properties.erb. Even if
you do enable region name validation, the HyperStore S3 Service employs a fall-back device where if
the region name specified in the request’s authorization header does not match against the local
region name, the system checks whether the specified region name matches against the S3 service
domain. If both checks fail then the request is rejected. This is to accommodate legacy HyperStore sys-
tems where the S3 service endpoint may not necessarily include the region name.
For ACL usage information and for descriptions of ACL items, see Access Control List (ACL) Overview in the
AWS S3 documentation.
1004
12.1. Introduction
group-read-write Bucket and object Owner gets FULL_CONTROL. All other members of the
owner’s HyperStore service user group get READ and WRITE
access.
Note To grant access to groups other than the requester’s own group, you cannot use canned ACLs.
Instead, when using standard Amazon S3 methods for assigning privileges to a grantee (via request
headers or request body), specify "<groupID>|" as the grantee. The "<groupID>|" format (with vertical
bar) indicates that the grantee is a group — for example, "Group5|".
Note When access privileges have through separate requests been granted to a group and to a spe-
cific member of the group, the user gets the broader of the privilege grants. For example, if Group5 is
granted read-write privileges and a specific user within Group5 is separately granted read privileges,
the user gets read-write privileges.
l Authorization
l Content-Length
l Content-Type
l Content-MD5
l Date
l Expect
l Host
l x-amz-content-sha256
l x-amz-date
l x-amz-expected-bucket-owner
Note
* Unlike the AWS documentation which lists x-amz-expected-bucket-owner as a supported
request header for nearly every individual S3 API call but omits the header from the Common
header list, this HyperStore documentation instead lists the x-amz-expected-bucket-owner
header here among the Common headers. For the HyperStore S3 Service, the x-amz-expected-
bucket-owner request header is supported for all S3 API calls except CreateBucket and
ListBuckets.
* If you use the optional x-amz-expected-bucket-owner request header in making S3 calls to the
1005
Chapter 12. S3 API
HyperStore S3 Service, identify the expected bucket owner by the bucket owner's canonical
user ID. A user's canonical user ID can be obtained by retrieving the user's profile in the CMC
or via the Admin API call GET /user.
* As with AWS, if the destination bucket in an API request is owned by an account other than the
expected bucket owner account, the request will fail with an HTTP 403 (Access Denied) error.
l Content-Length
l Content-Type
l Connection
l Date
l ETag
l Server
l x-amz-delete-marker
l x-amz-request-id
l x-amz-version-id
l AccessDenied
l AccountProblem
l AmbiguousGrantByEmailAddress
l BadDigest
l BucketAlreadyExists
l BucketAlreadyOwnedByYou
l BucketNotEmpty
l CrossLocationLoggingProhibited
l EntityTooLarge
l EntityTooSmall
l IllegalVersioningConfigurationException
l IncorrectNumberOfFilesInPostRequest
l InternalError
l InvalidAccessKeyId
l InvalidArgument
1006
12.1. Introduction
l InvalidBucketName
l InvalidBucketState
l InvalidDigest
l InvalidEncryptionAlgorithmError
l InvalidLocationConstraint
l InvalidObjectState
l InvalidPart
l InvalidPartOrder
l InvalidPolicyDocument
l InvalidRange
l InvalidRequest
l InvalidSecurity
l InvalidTargetBucketForLogging
l InvalidURI
l KeyTooLong
l MalformedACLError
l MalformedPOSTRequest
l MalformedXML
l MaxMessageLengthExceeded
l MaxPostPreDataLengthExceededError
l MetadataTooLarge
l MethodNotAllowed
l MissingContentLength
l MissingSecurityHeader
l NoSuchBucket
l NoSuchBucketPolicy
l NoSuchKey
l NoSuchLifecycleConfiguration
l NoSuchReplicationConfiguration
l NoSuchUpload
l NoSuchVersion
l NotImplemented
l PermanentRedirect
l PreconditionFailed
l Redirect
l RestoreAlreadyInProgress
l RequestIsNotMultiPartContent
l RequestTimeout
l RequestTimeTooSkewed
1007
Chapter 12. S3 API
l SignatureDoesNotMatch
l ServiceUnavailable
l SlowDown
l TemporaryRedirect
l TooManyBuckets
l UnexpectedContent
l UnresolvableGrantByEmailAddress
l UserKeyMustBeSpecified
12.2.1. AbortMultipartUpload
This operation aborts a multipart upload.
Along with the common headers, HyperStore supports the operation-specific parameters listed below.
For operation details and examples see the AWS documentation: AbortMultipartUpload
1008
12.2. Supported S3 Operations
12.2.2. CompleteMultipartUpload
Completes a multipart upload by assembling previously uploaded parts.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: CompleteMultipartUpload
12.2.3. CopyObject
Creates a copy of an object that is already stored in HyperStore.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: CopyObject
1009
Chapter 12. S3 API
Note For more information on HyperStore's support for the S3 "Object Lock" feature, see
"Object Lock" (page 128).
l x-amz-object-lock-retain-until-date
l x-amz-server-side-encryption
l x-amz-server-side-encryption-customer-algorithm
l x-amz-server-side-encryption-customer-key
l x-amz-server-side-encryption-customer-key-MD5
l x-amz-storage-class
Note HyperStore ignores the value of the x-amz-storage-class header and treats all requests as
being for storage class STANDARD.
l x-amz-source-expected-bucket-owner
l x-amz-tagging
1010
12.2. Supported S3 Operations
l x-amz-tagging-directive
l x-amz-website-redirect-location
12.2.4. CreateBucket
Creates a new bucket.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: CreateBucket
IMPORTANT ! Some atypical ways of organizing data within a bucket can result in sub-optimal per-
formance for certain S3 operations on that bucket. For detail see "Object Metadata Structure in the
Metadata DB" (page 201).
Note By default each user is allowed a maximum of 100 buckets. You can change this setting in the
CMC's Configuration Settings page.
1011
Chapter 12. S3 API
Note For more information on HyperStore's support for the S3 "Object Lock" feature, see
"Object Lock" (page 128).
With the "x-gmt-policyid" request header for "PUT Bucket", you specify the
ID of the desired storage policy when you create a new bucket. Note how-
ever that some policies may not be available to all user groups — a policy’s
availability is specified by system administrators at the time of policy cre-
ation, and this information becomes part of the policy definition. When you
specify an "x-gmt-policyid" value with a "PUT Bucket" request, the policy ID
must be for a policy that is available to the group to which the bucket owner
belongs.
Also the policy ID must be for a storage policy from the service region that is
specified in the "PUT Bucket" request’s LocationConstraint element.
If the "PUT Bucket" request does not include the "x-gmt-policyid" request
header, then the system will automatically assign the system default stor-
age policy to the bucket during bucket creation.
Example header:
x-gmt-policyid: 1bc90238f9f11cb32f5e4e901675d50b
1012
12.2. Supported S3 Operations
Note The HyperStore system enforces the same bucket naming restrictions as does Amazon S3.
Also, if you use an underscore in a bucket name you will not be able to enable auto-tiering for the
bucket (for transitioning objects to Amazon or other remote destinations on a configurable schedule).
It's best not to use underscores when naming new buckets, in case you may want to enable auto-tiering
on the bucket immediately or in the future.
12.2.5. CreateMultipartUpload
This operation initiates a multipart upload and returns an upload ID.
Along with the common headers, HyperStore supports the operation-specific parameters and elements listed
below.
For operation details and examples see the AWS documentation: CreateMultipartUpload
1013
Chapter 12. S3 API
Note For more information on HyperStore's support for the S3 "Object Lock" feature, see
"Object Lock" (page 128).
l x-amz-object-lock-retain-until-date
l x-amz-server-side-encryption
l x-amz-server-side-encryption-customer-algorithm
l x-amz-server-side-encryption-customer-key
l x-amz-server-side-encryption-customer-key-MD5
l x-amz-storage-class
Note HyperStore ignores the value of the x-amz-storage-class header and treats all requests as
being for storage class STANDARD.
l x-amz-website-redirect-location
12.2.6. DeleteBucket
Deletes the bucket.
For operation details and examples see the AWS documentation: DeleteBucket
1014
12.2. Supported S3 Operations
12.2.7. DeleteBucketCors
Deletes the cors configuration information set for the bucket.
For operation details and examples see the AWS documentation: DeleteBucketCors
12.2.8. DeleteBucketEncryption
This implementation of the DELETE operation removes default encryption from the bucket.
For operation details and examples see the AWS documentation: DeleteBucketEncryption
12.2.9. DeleteBucketInventoryConfiguration
Deletes an inventory configuration (identified by the inventory ID) from the bucket.
Along with the common headers, HyperStore supports the operation-specific parameter listed below.
For operation details and examples see the AWS documentation: DeleteBucketInventoryConfiguration
12.2.10. DeleteBucketLifecycle
Deletes the lifecycle configuration from the specified bucket.
For operation details and examples see the AWS documentation: DeleteBucketLifecycle
12.2.11. DeleteBucketOwnershipControls
Removes OwnershipControls for a bucket.
For operation details and examples see the AWS documentation: DeleteBucketOwnershipControls
12.2.12. DeleteBucketPolicy
This implementation of the DELETE operation uses the policy subresource to delete the policy of a specified
bucket.
1015
Chapter 12. S3 API
For operation details and examples see the AWS documentation: DeleteBucketPolicy
12.2.13. DeleteBucketReplication
Deletes the replication configuration from the bucket.
For operation details and examples see the AWS documentation: DeleteBucketReplication
12.2.14. DeleteBucketTagging
Deletes the tags from the bucket.
For operation details and examples see the AWS documentation: DeleteBucketTagging
12.2.15. DeleteBucketWebsite
This operation removes the website configuration for a bucket.
For operation details and examples see the AWS documentation: DeleteBucketWebsite
12.2.16. DeleteObject
Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest
version of the object.
Along with the common headers, HyperStore supports the operation-specific headers listed below.
For operation details and examples see the AWS documentation: DeleteObject
Note Successful completion of a DeleteObject request results in the system marking the object as hav-
ing been deleted. However the actual deletion of object data from disk will not occur until the next auto-
matic running of the object deletion batch processing job. By default this batch processing of object
data deletes runs hourly on each node. The frequency with which the batch processing job runs is con-
figurable by the "cloudian.delete.queue.poll.interval" (page 620) property in mts.properties.erb.
IMPORTANT ! Do not attempt to delete more than 100,000 objects from a single bucket in less than an
hour. Doing so will result in TombstoneOverwhelmingException errors in the Cassandra logs and an
inability to successfully execute a "ListObjects" (page 1036) operation on the bucket. If the system is
1016
12.2. Supported S3 Operations
in this error condition, you can trigger a tombstone purge as described in "Dealing with Excessive
Tombstone Build-Up" (page 537).
Note For more information on HyperStore's support for the S3 "Object Lock" feature, see
"Object Lock" (page 128).
12.2.17. DeleteObjects
This operation enables you to delete multiple objects from a bucket using a single HTTP request.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: DeleteObjects
Note The HyperStore S3 Service allows a maximum of 1000 object deletes per DeleteObjects request.
Note Successful completion of a DeleteObjects request results in the system marking the objects as
having been deleted. However the actual deletion of object data from disk will not occur until the next
automatic running of the object deletion batch processing job. By default this batch processing of object
data deletes runs hourly on each node. The frequency with which the batch processing job runs is con-
figurable by the "cloudian.delete.queue.poll.interval" (page 620) property in mts.properties.erb.
IMPORTANT ! Do not attempt to delete more than 100,000 objects from a single bucket in less than an
hour. Doing so will result in TombstoneOverwhelmingException errors in the Cassandra logs and an
inability to successfully execute an S3 "ListObjects" (page 1036) or "ListObjectsV2" (page 1037)
operation on the bucket. If the system is in this error condition, you can trigger a tombstone purge as
described in "Dealing with Excessive Tombstone Build-Up" (page 537).
1017
Chapter 12. S3 API
Note For more information on HyperStore's support for the S3 "Object Lock" feature, see
"Object Lock" (page 128).
12.2.18. DeleteObjectTagging
Removes the entire tag set from the specified object.
For operation details and examples see the AWS documentation: DeleteObjectTagging
12.2.19. DeletePublicAccessBlock
Removes the PublicAccessBlock configuration for a bucket.
For operation details and examples see the AWS documentation: DeletePublicAccessBlock
1018
12.2. Supported S3 Operations
12.2.20. GetBucketAcl
This implementation of the GET operation uses the acl subresource to return the access control list (ACL) of a
bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketAcl
12.2.21. GetBucketCors
Returns the cors configuration information set for the bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketCors
12.2.22. GetBucketEncryption
Returns the default encryption configuration for the bucket.
1019
Chapter 12. S3 API
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketEncryption
12.2.23. GetBucketInventoryConfiguration
Returns an inventory configuration (identified by the inventory configuration ID) from the bucket.
Along with the common headers, HyperStore supports the operation-specific parameter and elements listed
below.
For operation details and examples see the AWS documentation: GetBucketInventoryConfiguration
1020
12.2. Supported S3 Operations
o Schedule
n Frequency
12.2.24. GetBucketLifecycle
Returns the lifecycle configuration information set on the bucket.
For operation details and examples see the AWS documentation: GetBucketLifecycle
Note Though HyperStore supports this API operation for backward compatibility, AWS has deprecated
this operation in favor of a newer version called GetBucketLifecycleConfiguration which HyperStore
also supports. If you used PutBucketLifecycleConfiguration to create a lifecycle use GetBuck-
etLifecycleConfiguration to retrieve the configuration.
12.2.25. GetBucketLifecycleConfiguration
Returns the lifecycle configuration information set on the bucket.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: GetBucketLifecycleConfiguration
x-gmt-post-tier-copy
1021
Chapter 12. S3 API
o ExpiredObjectDeleteMarker
n Filter
o And
n Prefix
n Tag
o Key
o Value
o Prefix
o Tag
n Key
n Value
n ID
n NoncurrentVersionExpiration
o NoncurrentDays
n NoncurrentVersionTransition
o NoncurrentDays
o StorageClass
n Prefix
n Status
n Transition
o Date
o Days
o StorageClass
12.2.26. GetBucketLocation
Returns the Region the bucket resides in.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketLocation
l If the bucket specified in the GetBucketLocation request resides in a non-default service region, the
response indicates the name of the service region.
1022
12.2. Supported S3 Operations
l If the bucket specified in the GetBucketLocation request resides in the default service region, the
response returns a null/empty value.
HyperStore's behavior of returning a null/empty value if the bucket is in the default region is the same as
Amazon Web Services' implementation of the GetBucketLocation operation. Some S3 client applications --
such as Veeam -- are unable to handle the return of a null/empty region value, and may display an error if the
actual default region name is set within the client application. The work-around is to not set the region in the cli-
ent application, or else set it to the AWS default region name: us-east-1.
12.2.27. GetBucketLogging
Returns the logging status of a bucket and the permissions users have to view and modify that status.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketLogging
12.2.28. GetBucketNotificationConfiguration
Returns the notification configuration of a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketNotificationConfiguration
1023
Chapter 12. S3 API
o Id
o Queue
l s3:ObjectCreated:*
l s3:ObjectCreated:Put
l s3:ObjectCreated:Post
l s3:ObjectCreated:Copy
l s3:ObjectCreated:CompleteMultipartUpload
l s3:ObjectRemoved:*
l s3:ObjectRemoved:Delete
l s3:ObjectRemoved:DeleteMarkerCreated
12.2.29. GetBucketOwnershipControls
Retrieves OwnershipControls for a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketOwnershipControls
12.2.30. GetBucketPolicy
Returns the policy of a specified bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketPolicy
12.2.31. GetBucketPolicyStatus
Retrieves the policy status for a bucket, indicating whether the bucket is public.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketPolicyStatus
1024
12.2. Supported S3 Operations
Note HyperStore considers a bucket policy to be "public" if any statement in the policy is public. A state-
ment is considered public if the Effect is Allow and the Principal has a wildcard -- unless there is an
IpAddress:{aws:SourceIp condition associated with the statement that restricts the requesting source IP
to one or more specified IP addresses.
12.2.32. GetBucketReplication
Returns the replication configuration of a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketReplication
12.2.33. GetBucketTagging
Returns the tag set associated with the bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketTagging
Note The HyperStore Admin API supports a method for retrieving all the bucket tags for all users in a
specified group. Because it is implemented through the Admin API, that method does not require the
users' S3 access credentials. For more information see GET /bucketops/gettags.
1025
Chapter 12. S3 API
12.2.34. GetBucketVersioning
Returns the versioning state of a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketVersioning
12.2.35. GetBucketWebsite
Returns the website configuration for a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetBucketWebsite
12.2.36. GetObject
Retrieves objects from the S3 storage system.
Along with the common headers, HyperStore supports the operation-specific parameters, headers, and ele-
ments listed below.
For operation details and examples see the AWS documentation: GetObject
Note Using the partNumber parameter may not work as expected if the object has been auto-
tiered, or if the object has been auto-tiered and restored. This is because an object's number of
parts when uploaded to HyperStore may be different than its number of parts when it is auto-
tiered to a remote destination system.
1026
12.2. Supported S3 Operations
l response-cache-control
l response-content-disposition
l response-content-encoding
l response-content-language
l response-content-type
l response-expires
l versionId
l x-amz-server-side-encryption-customer-key
l x-amz-server-side-encryption-customer-key-MD5
1027
Chapter 12. S3 API
The HyperStore system supports the following Response Headers as extensions to the "GET Object" oper-
ation. These headers are returned only in the event of an HTTP 4xx response. They are not returned with
HTTP 2xx, 3xx, or 5xx responses.
Name Description
x-gmt-error-code In the event of an HTTP 4xx response, these two response headers provide
additional information about the nature of the error. The x-gmt-error-code
x-gmt-message header values will be from among the list in "S3 Error Responses" (page
1006).
12.2.37. GetObjectAcl
Returns the access control list (ACL) of an object.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: GetObjectAcl
12.2.38. GetObjectLegalHold
Gets an object's current Legal Hold status.
Along with the common headers, HyperStore supports the operation-specific parameters and elements listed
below.
For operation details and examples see the AWS documentation: GetObjectLegalHold
1028
12.2. Supported S3 Operations
12.2.39. GetObjectLockConfiguration
Gets the Object Lock configuration for a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetObjectLockConfiguration
12.2.40. GetObjectRetention
Retrieves an object's retention settings.
Along with the common headers, HyperStore supports the operation-specific parameters and elements listed
below.
For operation details and examples see the AWS documentation: GetObjectRetention
12.2.41. GetObjectTagging
Returns the tag-set of an object.
1029
Chapter 12. S3 API
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetObjectTagging
12.2.42. GetObjectTorrent
Return torrent files from a bucket.
For operation details and examples see the AWS documentation: GetObjectTorrent
12.2.43. GetPublicAccessBlock
Retrieves the PublicAccessBlock configuration for a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: GetPublicAccessBlock
1030
12.2. Supported S3 Operations
12.2.44. HeadBucket
This operation is useful to determine if a bucket exists and you have permission to access it.
Along with the common headers, HyperStore supports the operation-specific headers listed below.
For operation details and examples see the AWS documentation: HeadBucket
Parameter Description
This header specifies the unique ID of the storage policy assigned to the
x-gmt-policyid
bucket. For more information see "CreateBucket" (page 1011).
12.2.45. HeadObject
The HEAD operation retrieves metadata from an object without returning the object itself.
Along with the common headers, HyperStore supports the operation-specific parameters and headers listed
below.
For operation details and examples see the AWS documentation: HeadObject
Note Using the partNumber parameter may not work as expected if the object has been auto-
tiered, or if the object has been auto-tiered and restored. This is because an object's number of
1031
Chapter 12. S3 API
parts when uploaded to HyperStore may be different than its number of parts when it is auto-
tiered to a remote destination system.
l versionId
Name Description
x-gmt-error-code In the event of an HTTP 4xx response, these two response headers provide
additional information about the nature of the error. The x-gmt-error-code
x-gmt-message header values will be from among the list in "S3 Error Responses" (page
1006).
1032
12.2. Supported S3 Operations
12.2.46. ListBucketInventoryConfigurations
Returns a list of inventory configurations for the bucket.
Along with the common headers, HyperStore supports the operation-specific parameter and elements listed
below.
For operation details and examples see the AWS documentation: ListBucketInventoryConfigurations
12.2.47. ListBuckets
Returns a list of all buckets owned by the authenticated sender of the request.
Along with the common headers, HyperStore supports the operation-specific parameter listed below.
1033
Chapter 12. S3 API
For operation details and examples see the AWS documentation: ListBuckets
Note Support for this extension is disabled by default. To enable support for this extension, in "mts.-
properties.erb" (page 608) set cloudian.s3.enablesharedbucket to true, then do a Puppet push and
then restart the S3 Service.
Example:
1034
12.2. Supported S3 Operations
mit two ListBuckets calls -- one without the 'shared' parameter (to
retrieve the user's own buckets) and one with the 'shared' para-
meter (to retrieve buckets that have been shared with the user).
12.2.48. ListMultipartUploads
This operation lists in-progress multipart uploads.
Along with the common headers, HyperStore supports the operation-specific parameters and elements listed
below.
For operation details and examples see the AWS documentation: ListMultipartUploads
1035
Chapter 12. S3 API
o Upload
n Initiated
n Initiator
o DisplayName
o ID
n Key
n Owner
o DisplayName
o ID
n StorageClass
n UploadId
o CommonPrefixes
n Prefix
o EncodingType
12.2.49. ListObjects
Returns some or all of the objects in a bucket.
Along with the common headers, HyperStore supports the operation-specific parameters, headers, and ele-
ments listed below.
For operation details and examples see the AWS documentation: ListObjects
Note HyperStore also supports the newer version of this API operation, ListObjectsV2.
Note When using ListObjects, use the marker request parameter to improve performance in listing the
content of buckets that contain many objects. For detail see the AWS documentation for this API oper-
ation.
Note The HyperStore system does not support %c2%85(U+0085) as a delimiter value
l encoding-type
l marker
l max-keys
l prefix
1036
12.2. Supported S3 Operations
12.2.50. ListObjectsV2
Returns some or all of the objects in a bucket.
Along with the common headers, HyperStore supports the operation-specific parameters, headers, and ele-
ments listed below.
For operation details and examples see the AWS documentation: ListObjectsV2
1037
Chapter 12. S3 API
Note For backward-compatibility HyperStore continues to also support the older version of this API
operation, ListObjects.
Note When using ListObjectsV2, use the continuation-token request parameter to improve per-
formance in listing the content of buckets that contain many objects. For detail see the Amazon doc-
umentation for ListObjectsV2.
Note The HyperStore system does not support %c2%85(U+0085) as a delimiter value
l encoding-type
l fetch-owner
l list-type
l max-keys
l prefix
l start-after
1038
12.2. Supported S3 Operations
n LastModified
n Owner
o DisplayName
o ID
n Size
n StorageClass (values STANDARD and GLACIER only)
o Name
o Prefix
o Delimiter
o MaxKeys
o CommonPrefixes
n Prefix
o Encoding-Type
o KeyCount
o ContinuationToken
o NextContinuationToken
o StartAfter
12.2.51. ListObjectVersions
Returns metadata about all of the versions of objects in a bucket.
Along with the common headers, HyperStore supports the operation-specific parameters and elements listed
below.
For operation details and examples see the AWS documentation: ListObjectVersions
1039
Chapter 12. S3 API
o NextKeyMarker
o NextVersionIdMarker
o Version
n ETag
n IsLatest
n Key
n LastModified
n Owner
o DisplayName
o ID
n Size
n StorageClass
n VersionId
o DeleteMarker
n IsLatest
n Key
n LastModified
n Owner
o DisplayName
o ID
n VersionId
o Name
o Prefix
o Delimiter
o MaxKeys
o Encoding-Type
12.2.52. ListParts
Lists the parts that have been uploaded for a specific multipart upload.
Along with the common headers, HyperStore supports the operation-specific parameters and elements listed
below.
For operation details and examples see the AWS documentation: ListParts
1040
12.2. Supported S3 Operations
Along with the common headers, HyperStore supports the operation-specific parameters and elements listed
below.
For operation details and examples see the AWS documentation: OPTIONS Object
1041
Chapter 12. S3 API
Along with the common headers, HyperStore supports the operation-specific form fields listed below.
For operation details and examples see the AWS documentation: POST Object
Note HyperStore ignores the value of the x-amz-storage-class field and treats all requests as
being for storage class STANDARD.
l x-amz-meta-*
Note The metadata values must be UTF-8 and must not contain control characters less than
0x20 except for \r, \n, and \t. Also, normal XML escaping is required where appropriate.
l x-amz-website-redirect-location
l x-amz-object-lock-mode
Note For more information on HyperStore's support for the S3 "Object Lock" feature, see
"Object Lock" (page 128).
1042
12.2. Supported S3 Operations
l x-amz-object-lock-retain-until-date
l x-amz-object-lock-legal-hold
l x-amz-server-side-encryption
l x-amz-server-side-encryption-customer-algorithm
l x-amz-server-side-encryption-customer-key
l x-amz-server-side-encryption-customer-key-MD5
12.2.55. PutBucketAcl
Sets the permissions on an existing bucket using access control lists (ACL).
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: PutBucketAcl
1043
Chapter 12. S3 API
l x-amz-grant-write
l x-amz-grant-write-acp
12.2.56. PutBucketCors
Sets the cors configuration for your bucket.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: PutBucketCors
12.2.57. PutBucketEncryption
This implementation of the PUT operation uses the encryption subresource to set the default encryption state of
an existing bucket.
1044
12.2. Supported S3 Operations
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: PutBucketEncryption
Note For information about HyperStore's support for server-side encryption -- including the interaction
of object level, bucket level, and storage policy level encryption settings -- see "Server-Side Encryp-
tion" (page 137).
Note In the current HyperStore release, only the bucket owner is allowed to perform operations
relating to bucket encryption. HyperStore does not currently support the use of bucket policies to
extend bucket encryption permissions to users other than the bucket owner. Specifically, with regard to
"PutBucketPolicy" (page 1054), HyperStore does not currently support the "s3:PutEn-
cryptionConfiguration" or "s3:GetEncryptionConfiguration" actions.
12.2.58. PutBucketInventoryConfiguration
This implementation of the PUT action adds an inventory configuration (identified by the inventory ID) to the
bucket.
Along with the common headers, HyperStore supports the operation-specific parameter and elements listed
below.
For operation details and examples see the AWS documentation: PutBucketInventoryConfiguration
Note Unlike AWS, HyperStore does not use a system account to write inventory reports to the des-
tination bucket. Instead, reports are written by source bucket owner's account. In the current version of
HyperStore, the report destination bucket must be a bucket that is owned by the source bucket
owner.
1045
Chapter 12. S3 API
o Format
o Prefix
o Filter
n Prefix
o Id
o IncludedObjectVersions
o IsEnabled
o OptionalFields
n Field
o Schedule
n Frequency
12.2.59. PutBucketLifecycle
Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration.
For operation details and examples see the AWS documentation: PutBucketLifecycle
Note Though HyperStore supports this API operation for backward compatibility, AWS has deprecated
this operation in favor of a newer version called PutBucketLifecycleConfiguration which HyperStore
also supports. For new lifecycle configurations use the new version.
12.2.60. PutBucketLifecycleConfiguration
Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
1046
12.2. Supported S3 Operations
For operation details and examples see the AWS documentation: PutBucketLifecycleConfiguration
Note With the HyperStore system, only the bucket owner can create bucket lifecycle rules.
Note Do not set an auto-tiering lifecycle rule and a cross-region replication configuration on the
same source bucket.
x-gmt-tieringinfo: PROTOCOL|EndPoint:Endpoint,Action:Action
[,Mode:proxy][,Region:Region][,TieringBucket:TieringBucket]
1047
Chapter 12. S3 API
Note You must use nested URL encoding. First URL encode the End-
point value (the endpoint itself), and then URL encode the whole x-gmt-
tieringinfo value.
1048
12.2. Supported S3 Operations
During the period while the object is cached locally, subsequent GETs
of the object can be served from local storage. After the cache period
expires, the local copy is automatically deleted by the next run of the
daily auto-tiering / auto-expiration cron job. Following deletion of the
cached copy, the next GET of the object will be served from the tiering
destination site (and a copy of the object will be once again be cached).
If the Protocol is S3, GCS, or AZURE you can use either "stream" or "nostream"
or "cache". If the Protocol is S3GLACIER or SPECTRA you must use "nostream"
(the "stream" and "cache" options are not supported for those destinations).
Proxy mode is supported only if the Protocol is S3, GCS, or AZURE (proxy
mode is not supported for S3GLACIER or SPECTRA tiering). For more inform-
ation on proxy mode -- also known as "bridge mode" -- see "Auto-Tiering
Feature Overview" (page 206).
1049
Chapter 12. S3 API
If you omit the tiering bucket parameter, then in the destination system Hyper-
Store will create a tiering bucket named as follows:
<origin-bucket-name-truncated-to-34-characters>-<28-character-ran-
dom-string>
# Example 1 (before URL encoding) Tiering to Amazon S3, into target bucket
# named 'bucket12'. Streaming for local GETs will be supported.
x-gmt-tieringinfo: S3|EndPoint:http://s3.amazonaws.com,Action:stream,
TieringBucket:bucket12
# Example 1 after nested URL encoding (endpoint value first, then whole
# header value)
x-gmt-tieringinfo: S3%7CEndPoint%3Ahttp%253A%252F%252Fs3.amazonaws.com
%2CAction%3Astream%2CTieringBucket%3Abucket12
x-gmt-tieringinfo:
AZURE|EndPoint:https://blob.core.windows.net,Action:nostream
# Example 2 after nested URL encoding (endpoint value first, then whole
# header value)
x-gmt-tieringinfo:
AZURE%7CEndPoint%3Ahttps%253A%252F%252Fblob.core.windows.net
%2CAction%3Anostream
x-gmt- If you include this header in your "PUT Bucket lifecycle" request and set the header No
com- value to "LAT", then in lifecycle rules that you configure with the "Days" comparator the
pare rule will be implemented as number of days since the object’s Last Access Time.
If you do not use this extension header, or if you include the header but assign it no
value or any value other than "LAT", then "Days" based lifecycle rules will be imple-
mented as number of days since the object’s Creation Time (the default Amazon S3
behavior).
1050
12.2. Supported S3 Operations
l Last Access Time based auto-tiering rules (use this header and also the x-gmt-
tierinfo header).
l Last Access Time based expiration rules (use this header but not the x-gmt-tier-
info header).
Note An object’s Last Access Time is updated if the object is accessed either
for retrieval (GET or HEAD) or modification (PUT/POST/Copy). If an object is
created and then never accessed, its Last Access Time will be its Creation
Time.
Note If you use the x-gmt-compare header and set it to "LAT", it does not apply
to any in NoncurrentVersionTransition or NoncurrentVersionExpiration rules
within the lifecycle policy (for non-current versions of versioned objects).
These types of rules are always based on the time elapsed since an object ver-
sion became non-current (was replaced by a new version of the object).
x-gmt- If you use the x-gmt-tieringinfo request header to configure auto-tiering for a bucket, No
post- you can optionally also use the x-gmt-post-tier-copy request header to specify a num-
tier- ber of days for which a local copy of auto-tiered objects should be retained. For
copy example if you set x-gmt-post-tier-copy: 7 then after each object is auto-tiered to the
tiering destination, a copy of the object will be kept in the HyperStore source bucket for
7 days. After that the local copy will be deleted and only object metadata will be
retained locally.
There is no upper limit on this value. So if you want the local copy retention period to
be practically limitless, you could for example set this header to 36500 to indicate a
local copy retention period of 100 years.
If you omit the x-gmt-post-tier-copy request header, then by default local objects are
deleted after they are successfully auto-tiered to the tiering destination system, and
only object metadata is retained locally.
1051
Chapter 12. S3 API
n Filter
l And
o Prefix
o Tag
n Key
n Value
l Prefix
l Tag
o Key
o Value
n ID
n NoncurrentVersionExpiration
l NoncurrentDays
n NoncurrentVersionTransition
l NoncurrentDays
l StorageClass
n Prefix
n Status
n Transition
l Date
l Days
l StorageClass
Note If you are using "Bridge Mode" transition (whereby objects are auto-tiered immediately after
being uploaded to HyperStore), leave the "Prefix" attribute empty. Bridge Mode does not support fil-
tering by prefix. Also, Bridge Mode does not support filtering by tag(s).
12.2.61. PutBucketLogging
Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging
parameters.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: PutBucketLogging
Note For a bucket that has bucket logging enabled, bucket logs (server access logs) are generated
every 10 minutes by a HyperStore system cron job, if there was activity for that bucket during that inter-
val.
1052
12.2. Supported S3 Operations
Note If you are using bucket logging in your service, and if you use a load balancer in front of your S3
Service nodes, you should configure your S3 Service to support the HTTP X-Forwarded-For header.
This will enable bucket logs to record the true originating IP address of S3 requests, rather than the
load balancer IP address. By default the S3 Service does not support the X-Forwarded-For header.
You can enable support for this header using the system configuration file s3.xml.erb.
12.2.62. PutBucketNotificationConfiguration
Enables notifications of specified events for a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: PutBucketNotificationConfiguration
Note In the current HyperStore release, only the bucket owner is allowed to submit this request and
the bucket owner must also be the owner of the destination Queue.
Note HyperStore's bucket notification feature and its SQS Service (for notification message queueing
and delivery) are disabled by default. For information on how to enable this feature set see "Hyper-
Store Support for the AWS SQS API" (page 1115).
1053
Chapter 12. S3 API
l s3:ObjectCreated:*
l s3:ObjectCreated:Put
l s3:ObjectCreated:Post
l s3:ObjectCreated:Copy
l s3:ObjectCreated:CompleteMultipartUpload
l s3:ObjectRemoved:*
l s3:ObjectRemoved:Delete
l s3:ObjectRemoved:DeleteMarkerCreated
12.2.63. PutBucketOwnershipControls
Creates or modifies OwnershipControls for a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: PutBucketOwnershipControls
12.2.64. PutBucketPolicy
Applies an S3 bucket policy to an S3 bucket.
1054
12.2. Supported S3 Operations
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: PutBucketPolicy
l Sid -- Same as Amazon: Custom string identifying the statement, for example "Statement1" or "Only
allow access from partner source IPs"
l Effect -- Same as Amazon: "Allow" or "Deny"
l Principal -- The following formats are supported:
l "*" -- Statement applies to all users (also known as "anonymous access").
l {"CanonicalUser": "<canonicalUserId>"} -- Statement applies to the specified HyperStore
account root user.
l {"CanonicalUser": ["<canonicalUserId>", "<canonicalUserId>",...]} -- Statement applies to the spe-
cified HyperStore account root users.
l {"AWS":"arn:aws:iam::<canonicalUserId>:root"} -- Statement applies to the specified HyperStore
account root user.
l {"AWS":"arn:aws:iam::<canonicalUserId>:user/<iamUserName>"} -- Statement applies to the
specified IAM user. In this format the <canonicalUserId> is that of the parent account root user.
Note You can obtain a HyperStore user's canonical ID by retrieving the user through the
CMC's "Manage Users" (page 301) page or by using the Admin API method GET /user.
Note In formats of the "AWS":"arn:aws:iam::...." type, AWS uses "Account Id" to identify the
account root user. In HyperStore the canonical user ID is used for this purpose, since in
HyperStore there is not a separate account ID that's different than the canonical user ID.
Within bucket policy statements, HyperStore supports only the following Action values (also known as per-
mission keywords).
1055
Chapter 12. S3 API
Note For information about how to use Action values in a bucket policy, see the AWS documentation
on Specifying Permissions in a Policy.
Object Actions
l s3:AbortMultipartUpload
l s3:BypassGovernanceRetention
l s3:DeleteObject
l s3:DeleteObjectTagging
l s3:DeleteObjectVersion
l s3:DeleteObjectVersionTagging
l s3:GetObject
l s3:GetObjectAcl
l s3:GetObjectLegalHold
l s3:GetObjectRetention
l s3:GetObjectTagging
l x3:GetObjectTorrent
l s3:GetObjectVersion
l s3:GetObjectVersionAcl
l s3:GetObjectVersionTagging
l s3:ListMultipartUploadParts
l s3:PutObject
l s3:PutObjectAcl
l s3:PutObjectLegalHold
l s3:PutObjectRetention
l s3:PutObjectTagging
l s3:PutObjectVersionAcl
l s3:PutObjectVersionTagging
l s3:RestoreObject
Bucket Actions
l s3:CreateBucket
l s3:DeleteBucket
l s3:ListBucket
l s3:ListBucketMultipartUploads
l s3:ListBucketVersions
l s3:DeleteBucketPolicy
l s3:DeleteBucketWebsite
1056
12.2. Supported S3 Operations
l s3:GetBucketAcl
l s3:GetBucketCORS
l s3:GetBucketLocation
l s3:GetBucketLogging
l s3:GetBucketNotification
l s3:GetBucketObjectLockConfiguration
l s3:GetBucketPolicy
l s3:GetBucketRequestPayment
l s3:GetBucketTagging
l s3:GetBucketVersioning
l s3:GetBucketWebsite
l s3:GetInventoryConfiguration
l s3:GetLifecycleConfiguration
l s3:GetReplicationConfiguration
l s3:PutBucketAcl
l s3:PutBucketCORS
l s3:PutBucketLogging
l s3:PutBucketNotification
l s3:PutBucketObjectLockConfiguration
l s3:PutBucketPolicy
l s3:PutBucketRequestPayment
l s3:PutBucketTagging
l s3:PutBucketVersioning
l s3:PutBucketWebsite
l s3:PutInventoryConfiguration
l s3:PutLifecycleConfiguration
l s3:PutReplicationConfiguration
Note Like Amazon, the HyperStore system supports the use of a wildcard in your Action configuration
("Action":["s3:*"]). When an Action wildcard is used together with an object-level Resource element
("arn:aws:s3:::<bucketName>/*" or "arn:aws:s3:::<bucketName>/<objectName>"), the wildcard denotes
all the Object actions that HyperStore supports. When an Action wildcard is used together with
bucket-level Resource element ("arn:aws:s3:::<bucketName>"), the wildcard denotes all the Bucket
actions and Bucket Subresource actions that HyperStore supports.
Within bucket policy statements, HyperStore supports only the following Condition operators and keys.
Note For information about how to use condition operators and keys in a bucket policy, see the AWS
documentation on Specifying Conditions in a Policy.
1057
Chapter 12. S3 API
Condition Operators
l ForAllValues:StringLike
l ForAnyValue:StringLike
l IpAddress
Note If you are using load balancers in front of the HyperStore S3 Service, then IP address
based bucket policies will only work if you use PROXY Protocol between the load balancers
and the S3 Service. This protocol allows the load balancers to pass the IP addresses of ori-
ginating clients to the S3 Service along with the S3 requests. For more information about
enabling PROXY Protocol support on the S3 Service side, see "s3_proxy_protocol_enabled"
(page 582) in "common.csv" (page 562). For guidance on configuring the load balancers con-
sult with Cloudian Sales Engineering or Support.
Note that using the "X-Forwarded-For" HTTP header is not sufficient to support IP address
based bucket policies. You must use PROXY Protocol if you have load balancers in front of the
S3 Service and want to use IP address based bucket policies .
l NotIpAddress
l NumericEquals
l NumericNotEquals
l NumericLessThan
l NumericLessThanEquals
l NumericGreaterThan
l NumericGreaterThanEquals
l StringEquals
l StringNotEquals
l StringEqualsIgnoreCase
l StringNotEqualsIgnoreCase
l StringLike
l StringNotLike
Condition Keys
l aws:Referer
l aws:SourceIp
Note If you create a bucket policy that restricts access based on source IP address, these restric-
tions will not apply to IP addresses within your HyperStore cluster. IP addresses from within your
cluster are automatically "whitelisted".
l s3:delimiter
l s3:ExistingObjectTag/<tag-key>
l s3:max-keys
l s3:object-lock-legal-hold
1058
12.2. Supported S3 Operations
l s3:object-lock-mode
l s3:object-lock-remaining-retention-days
l s3:object-lock-retain-until-date
l s3:prefix
l s3:RequestObjectTag/<tag-keys>
l s3:RequestObjectTagKeys
l s3:VersionId
l s3:x-amz-acl
l s3:x-amz-copy-source
l s3:x-amz-grant-full-control
l s3:x-amz-grant-read
l s3:x-amz-grant-read-acp
l s3:x-amz-grant-write
l s3:x-amz-grant-write-acp
l s3:x-amz-metadata-directive
l s3:x-amz-server-side-encryption
For examples of the kinds of things you can do with bucket policies, see the AWS documentation on Bucket
Policy Examples.
12.2.65. PutBucketReplication
Creates a replication configuration or replaces an existing one.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: PutBucketReplication
Note
* Unlike Amazon S3, HyperStore does not require that you set up an IAM Role (or anything analogous)
in order to use bucket replication. Also, HyperStore does not require that the destination bucket be in a
different region than the source bucket. With HyperStore you can replicate to a destination bucket that’s
in the same region as the source bucket, if you want to.
* Like Amazon S3, HyperStore bucket replication requires that versioning must be enabled (using the
"PutBucketVersioning" (page 1061) operation) on both the source bucket and the destination bucket.
* Do not set a cross-region replication configuration and a bucket lifecycle rule for auto-tiering on the
same source bucket.
1059
Chapter 12. S3 API
operation. Typically these headers are not needed for bucket replication. These headers are required only in a
scenario where you want data to be replicated to a destination bucket in an external S3-compatible system
(rather than in a service region within the same HyperStore system as the source bucket). Before using these
extensions you should review "Cross-System Replication" (page 220) including the limitations and caveats
noted in that section.
This header is required only if the destination bucket is not in the same Hyper-
Store system as the source bucket. Do not use this header if the destination
bucket is in the same HyperStore system as the source bucket.
x-gmt-crr-cre- Access key and secret key for the user account that HyperStore should use to See
dentials write to the destination bucket in the destination S3 system, in format <access- description
key>:<secret-key>. For example, 00caf3940d-
c923c59406:Ku0bMR0H5nSA7t8N+ngP6uPPTINSxJ/Q2olCMexx. This user
account must have write permissions on the destination bucket. For example,
if the destination bucket is in the Amazon S3 system, this header is used to
specify the Amazon S3 access key and secret key for an account that has
write permissions on the destination bucket.
This header is required only if the destination bucket is not in the same Hyper-
Store system as the source bucket. Do not use this header if the destination
bucket is in the same HyperStore system as the source bucket.
Note
* Use the same "Bucket" value formatting as in the Amazon S3 API spec, i.e. arn:aws:s3:::<buck-
etname>.
* As with the Amazon S3 API specification, for HyperStore the "Role" element must be included in the
PUT Bucket replication request. However, HyperStore ignores the "Role" element’s value (so, you can
1060
12.2. Supported S3 Operations
use any random string as its value). HyperStore does not use an IAM role or anything analogous when
implementing cross-region replication.
* If you include the "StorageClass element" in the request, HyperStore ignores its value.
12.2.66. PutBucketTagging
Sets the tags for a bucket.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: PutBucketTagging
Note The HyperStore Admin API supports a method for retrieving all the bucket tags for all users in a
specified group. Because it is implemented through the Admin API, that method does not require the
users' S3 access credentials. For more information see GET /bucketops/gettags.
12.2.67. PutBucketVersioning
Sets the versioning state of an existing bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: PutBucketVersioning
Note Do not enable versioning on a bucket that is configured for auto-tiering to Azure, Google Cloud,
or Spectra BlackPearl. Auto-tiering to these destinations will not work properly for buckets that have ver-
sioning enabled.
1061
Chapter 12. S3 API
12.2.68. PutBucketWebsite
Sets the configuration of the website that is specified in the website subresource.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: PutBucketWebsite
12.2.69. PutObject
Adds an object to a bucket.
Along with the common headers, HyperStore supports the operation-specific headers listed below.
For operation details and examples see the AWS documentation: PutObject
1062
12.2. Supported S3 Operations
Note The metadata values must be UTF-8 and must not contain control characters less than
0x20 except for \r, \n, and \t. Also, normal XML escaping is required where appropriate.
l x-amz-object-lock-legal-hold
l x-amz-object-lock-mode
Note For more information on HyperStore's support for the S3 "Object Lock" feature, see
"Object Lock" (page 128).
l x-amz-object-lock-retain-until-date
l x-amz-server-side-encryption
l x-amz-server-side-encryption-customer-algorithm
l x-amz-server-side-encryption-customer-key
l x-amz-server-side-encryption-customer-key-MD5
l x-amz-storage-class
Note HyperStore ignores the value of the x-amz-storage-class header and treats all requests as
being for storage class STANDARD.
l x-amz-tagging
l x-amz-website-redirect-location
1063
Chapter 12. S3 API
l x-amz-server-side-encryption-customer-algorithm
l x-amz-server-side-encryption-customer-key-MD5
l x-amz-version-id
12.2.70. PutObjectAcl
Uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a
bucket.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: PutObjectAcl
12.2.71. PutObjectLegalHold
Applies a Legal Hold configuration to the specified object.
1064
12.2. Supported S3 Operations
Along with the common headers, HyperStore supports the operation-specific parameters and elements listed
below.
For operation details and examples see the AWS documentation: PutObjectLegalHold
Note For more information on HyperStore's support for the S3 "Object Lock" feature, see "Object
Lock" (page 128).
12.2.72. PutObjectLockConfiguration
Places an Object Lock configuration on the specified bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: PutObjectLockConfiguration
Note For more information on HyperStore's support for the S3 "Object Lock" feature, see "Object
Lock" (page 128).
12.2.73. PutObjectRetention
Places an Object Retention configuration on an object.
Along with the common headers, HyperStore supports the operation-specific parameters, headers, and ele-
ments listed below.
1065
Chapter 12. S3 API
For operation details and examples see the AWS documentation: PutObjectRetention
Note For more information on HyperStore's support for the S3 "Object Lock" feature, see "Object
Lock" (page 128).
12.2.74. PutObjectTagging
Sets the supplied tag-set to an object that already exists in a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: PutObjectTagging
12.2.75. PutPublicAccessBlock
Creates or modifies the PublicAccessBlock configuration for a bucket.
Along with the common headers, HyperStore supports the operation-specific elements listed below.
For operation details and examples see the AWS documentation: PutPublicAccessBlock
1066
12.2. Supported S3 Operations
12.2.76. RestoreObject
Restores a tiered object back into HyperStore.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: RestoreObject
Note In the context of the HyperStore system, this standard S3 operation is for temporarily restoring a
copy of an object that has been auto-tiered to a tiering destination, such as Amazon S3 or Amazon Gla-
cier. For information about the HyperStore auto-tiering feature, see "Auto-Tiering Feature Overview"
(page 206).
1067
Chapter 12. S3 API
Note For the sake of S3 API compatibility, HyperStore's S3 Service allows the request elements Gla-
cierJobParameters and Tierto be included in a "POST Object restore" request -- but in the current
HyperStore release these elements will have no effect on how the restore request is implemented.
12.2.77. UploadPart
Uploads a part in a multipart upload.
Along with the common headers, HyperStore supports the operation-specific headers listed below.
For operation details and examples see the AWS documentation: UploadPart
l x-amz-server-side-encryption-customer-algorithm
l x-amz-server-side-encryption-customer-key
l x-amz-server-side-encryption-customer-key-MD5
12.2.78. UploadPartCopy
Uploads a part by copying data from an existing object as data source.
Along with the common headers, HyperStore supports the operation-specific headers and elements listed
below.
For operation details and examples see the AWS documentation: UploadPartCopy
1068
12.2. Supported S3 Operations
1069
This page left intentionally blank
Chapter 13. IAM API
13.1. Introduction
HyperStore provides limited support for the Amazon Web Services Identity and Access Management (IAM)
API. This support enables each HyperStore user, under his or her HyperStore user account, to create IAM
groups and IAM users and IAM roles. The HyperStore user -- also known as the "account root user" -- can then
grant those IAM groups, users, and roles permissions to perform certain actions (such as reading or writing
objects in a particular bucket or buckets). As with Amazon, the means by which a HyperStore account root user
grants such permissions to IAM groups, users, and roles is by creating and attaching "managed" IAM policies
to IAM groups, users, and roles, and/or by creating and embedding "inline" IAM policies for IAM groups, users,
and roles. By default newly created IAM entities have no permissions; they gain permissions only by their
association with managed or inline IAM policies.
In the HyperStore system all S3 object data created by IAM users belongs to the parent HyperStore user
account. Consequently, if an IAM user is deleted by their HyperStore parent user, the IAM user's data is not
deleted from the system.
1071
Chapter 13. IAM API
If users are using a third party IAM client to access the HyperStore IAM Service, the users can obtain their S3
access credentials by logging in to the CMC and going to the Security Credentials page (via the drop-down
menu under the user login name). They can then supply those credentials to the third party IAM client applic-
ation.
If users are using the CMC's built-in IAM client, the CMC automatically uses the user's S3 credentials to access
the IAM service. Through the CMC's IAM section, HyperStore users can create IAM groups and users and so
on.
The exception is the pre-configured default system administrative user -- the user named "admin". The
"admin" user does not have S3 access credentials by default. Consequently, if you are logged into the
CMC as the "admin" user and you go to the CMC's IAM section you will see the following error displayed:
"No valid Access Key detected. Cannot connect to the IAM Service."
If you want to use the functionality in the CMC's IAM section as the "admin" user, you must create S3 cre-
dentials for this user. While logged into the CMC as the "admin" user, go to the Security Credentials page (via
the drop-down menu under the login name). Then in the S3 Access Credentials section of the page, click
Create New Key. This creates S3 access credentials for the "admin" user. Now you can use the CMC's
IAM section without getting an access key error.
l Allow HyperStore system admins, group admins, or regular users to execute certain read-only Hyper-
Store administrative functions by submitting a request to the IAM Service.
l Allow HyperStore system admins, group admins, or regular users to grant their IAM users permission to
execute those same read-only HyperStore administrative functions.
For more information, including information about the client tool that HyperStore provides to help you use this
feature, see "Role-Based Access to Admin API Operations" (page 794).
13.1.1.4. Deleting or Suspending HyperStore Users Who Have Created IAM Users
If a HyperStore user creates IAM groups, users, and/or roles, and then subsequently you delete that Hyper-
Store user from the system, all IAM resources associated with that HyperStore user will also be deleted from
the system. That includes IAM groups, users, roles, and policies that the HyperStore user created, the security
credentials of those IAM users, and any object data that those IAM users have stored in the system.
If rather than deleting the HyperStore user you suspend the HyperStore user (make the user inactive), then
any IAM groups, users, and/or roles that the HyperStore user created will be unable to access any HyperStore
services (just like the suspended HyperStore user will be unable to access HyperStore services). If you sub-
sequently make the HyperStore user active again, then IAM groups, users, and roles under that HyperStore
user will again be able to access HyperStore services.
1. On your Configuration Master node open this configuration file in a text editor:
/etc/cloudian-<version>-puppet/manifests/extdata/common.csv
1072
13.1. Introduction
If you disable the HyperStore IAM Service, then IAM functions will no longer display in the CMC and the
IAM Service will no longer accept requests from IAM client applications.
Users can access and use the HyperStore IAM Service either through the CMC or a third party client applic-
ation that supports IAM calls. Whether using the CMC or a third party client application, application users must
have S3 access credentials (access key ID and secret key) in order to use the HyperStore IAM Service.
13.1.2.2. Accessing the IAM Service with a Third Party Client Application
Third party or custom client applications can access the HyperStore IAM Service at these service endpoints:
http://iam.<organization-domain>:16080
https://iam.<organization-domain>:16443
HyperStore supports the standard IAM request line formatting, for example:
http://iam.enterprise.com:16080/?Action=<action-name>&<Parameter-name>=<value>
Note that:
l These are the default service endpoints for the HyperStore IAM Service. You can customize the end-
points as described in "Changing S3, Admin, CMC, or IAM Service Endpoints" (page 655).
1073
Chapter 13. IAM API
l The HyperStore IAM Service by default uses a self-signed certificate for its HTTPS listener, so if you are
using HTTPS to access the service your client application must be configured to allow self-signed cer-
tificates. For information about managing SSL certificates in HyperStore -- including the option to import
a CA-signed certificate for the IAM Service to use -- see "HTTPS" (page 145).
l You must configure your DNS environment to resolve the IAM Service endpoint as described in
"DNS Set-Up" in the HyperStore Installation Guide.
13.1.2.3. Creating S3 Access Credentials for the Default System Admin User
If you want the default HyperStore system admin user -- the user whose user ID is "admin" in the CMC -- to be
able to use the IAM Service, do the following:
1. Log into the CMC as the "admin" user. (You will see that an IAM tab now displays in the CMC interface,
but clicking that tab will return an authorization error until after you've completed Steps 2 and 3 below.)
2. On the right side of the CMC's top navigation bar, hold your cursor over your login name ("admin") and
then in the drop-down menu select Security Credentials.
3. In the security credentials page's S3 Access Credentials section, click Create New Key.
This creates S3 access credentials (access key ID and secret key) for the "admin" user. S3 access credentials
are required in order to access HyperStore's IAM Service. The CMC will use these credentials automatically
when the "admin" user uses the CMC to access IAM functions (on the IAM tab). Or if you are using a third party
application to access the HyperStore IAM Service, you will need to provide the credentials to that application.
Note If you created any additional system admin users prior to the HyperStore 7.1 release, and if you
want those system admin users to be able to use the IAM Service, those system admin users will need
to complete the steps described above to create S3 access credentials for themselves.
Regular users and group admins created in the CMC are given S3 credentials automatically as part of
the user creation process, so such users already have the credentials that they need to access the IAM
Service. Also, additional system admins that you create in HyperStore 7.1 or later are automatically
given S3 credentials.
l Action
l Version
Note Unlike Amazon's IAM implementation, in HyperStore's IAM implementation the "Version"
request parameter is not required.
l X-Amz-Algorithm
l X-Amz-Credential
l X-Amz-Date
1074
13.2. Supported IAM Actions
l X-Amz-Signature
l X-Amz-SignedHeaders
Note Like Amazon's IAM implementation, in HyperStore's IAM implementation you can either use
query parameters or the HTTP header Authorization to submit the authentication data required by the
Signature Version 2 or Signature Version 4 protocol. For more information on this topic see the
Amazon documentation topic Task 4: Add the Signature to the HTTP Request.
l AccessDenied
l IncompleteSignature
l InternalFailure
l InvalidAction
l InvalidClientTokenId
l InvalidParameterCombination
l InvalidParameterValue
l InvalidQueryParameter
l MalformedQueryString
l MissingAction
l MissingAuthenticationToken
l MissingParameter
l OptInRequired
l RequestExpired
l ServiceUnavailable
l ThrottlingException
l ValidationError
Note For all "List" actions (such as "ListAccessKeys", "ListGroups" and so on): The HyperStore
IAM Service does not support truncation. If the client request includes the "MaxItems" and "Marker"
request parameters, the HyperStore IAM Service ignores those parameters. Accordingly, in the
response bodies the "IsTruncated" response element will always be "false".
1075
Chapter 13. IAM API
13.2.1. AddUserToGroup
Adds the specified user to the specified group.
For action details and examples see the AWS documentation: AddUserToGroup
13.2.1.2. Errors
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.2. AttachGroupPolicy
Attaches the specified managed policy to the specified IAM group.
For action details and examples see the AWS documentation: AttachGroupPolicy
13.2.2.2. Errors
l InvalidInput
l LimitExceeded
l NoSuchEntity
l PolicyNotAttachable
l ServiceFailure
13.2.3. AttachRolePolicy
Attaches the specified managed policy to the specified IAM role.
For action details and examples see the AWS documentation: AttachRolePolicy
1076
13.2. Supported IAM Actions
13.2.3.2. Errors
l InvalidInput
l LimitExceeded
l NoSuchEntity
l PolicyNotAttachable
l ServiceFailure
l UnmodifiableEntity
13.2.4. AttachUserPolicy
Attaches the specified managed policy to the specified user.
For action details and examples see the AWS documentation: AttachUserPolicy
13.2.4.2. Errors
l InvalidInput
l LimitExceeded
l NoSuchEntity
l PolicyNotAttachable
l ServiceFailure
13.2.5. CreateAccessKey
Creates a new secret access key and corresponding access key ID for the specified user.
For action details and examples see the AWS documentation: CreateAccessKey
1077
Chapter 13. IAM API
13.2.5.3. Errors
l LimitExceeded
l NoSuchEntity
l ServiceFailure
Note By default the HyperStore system allows only two key pairs per IAM user. This restriction is con-
figurable by the "credentials.iamuser.max" (page 626) setting in mts.properties.erb. Note that an IAM
user's inactive credentials (if any) count toward this limit, as well as active credentials.
13.2.6. CreateGroup
Creates a new group.
For action details and examples see the AWS documentation: CreateGroup
Note For HyperStore, within the "Group" object the system-generated "GroupId" attribute value
will be in this format: <Canonical-UID-of-HyperStore-User>|<IAM-groupname>
The canonical user ID is that of the HyperStore user account under which the IAM group is cre-
ated. The IAM group name will be preceded by the path if any is specified when the group is cre-
ated.
13.2.6.3. Errors
l EntityAlreadyExists
l LimitExceeded
1078
13.2. Supported IAM Actions
l NoSuchEntity
l ServiceFailure
13.2.7. CreatePolicy
Creates a new managed policy under your HyperStore account.
For action details and examples see the AWS documentation: CreatePolicy
Note For information about HyperStore's IAM policy document support see "Supported IAM
Policy Elements" (page 1105).
l PolicyName
13.2.7.3. Errors
l EntityAlreadyExists
l InvalidInput
l LimitExceeded
l MalformedPolicyDocument
l ServiceFailure
13.2.8. CreatePolicyVersion
Creates a new version of the specified managed policy.
For action details and examples see the AWS documentation: CreatePolicyVersion
1079
Chapter 13. IAM API
Note For information about HyperStore's IAM policy document support see "Supported IAM
Policy Elements" (page 1105).
l SetAsDefault
13.2.8.3. Errors
l InvalidInput
l LimitExceeded
l MalformedPolicyDocument
l NoSuchEntity
l ServiceFailure
13.2.9. CreateRole
Creates a new role under your account.
For action details and examples see the AWS documentation: CreateRole
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
1080
13.2. Supported IAM Actions
"Action": "sts:AssumeRoleWithSAML",
"Principal": {"Federated": "arn:aws:iam::123456789012:saml-provider/adfs"},
"Condition": {"StringEquals": {"saml:aud": "https://cmc.mycloudianhyperstore.com/saml"}}
}
}
The example policy above says to trust SAML assertions from the "adfs" SAML Provider to use STS:As-
sumeRoleWithSAML for this role but only if the SAML assertion contains the recipient string matching https://cm-
c.mycloudianhyperstore.com/saml.
For Condition in a trust policy, HyperStore supports only the StringEquals condition operator and only the fol-
lowing condition keys:
l aws:TokenIssueTime
l sts:ExternalId
l saml:aud
l saml:doc
l saml:iss
l saml:namequalifier
l saml:sub
l saml:sub_type
13.2.9.3. Errors
l ConcurrentModification
l EntityAlreadyExists
l InvalidInput
l LimitExceeded
l MalformedPolicyDocument
l ServiceFailure
13.2.10. CreateSAMLProvider
Creates an IAM resource that describes an identity provider (IdP) that supports SAML 2.0.
For action details and examples see the AWS documentation: CreateSAMLProvider
1081
Chapter 13. IAM API
13.2.10.3. Errors
l EntityAlreadyExists
l LimitExceeded
l ServiceFailure
13.2.11. CreateUser
Creates a new IAM user under your account.
For action details and examples see the AWS documentation: CreateUser
Note For HyperStore, within the "User" object the system-generated "UserId" attribute value will
be in this format: <Canonical-UID-of-HyperStore-User>|<IAM-username>
The canonical user ID is that of the HyperStore user account under which the IAM user is cre-
ated. The IAM user name will be preceded by the path if any is specified when the user is cre-
ated.
13.2.11.3. Errors
l EntityAlreadyExists
l LimitExceeded
l NoSuchEntity
l ServiceFailure
1082
13.2. Supported IAM Actions
Note IAM users that you create under your HyperStore user account will not be allowed to log into the
CMC or to use the CMC as their S3 client application. IAM users will need to use an S3 client applic-
ation other than the CMC to access the HyperStore S3 Service.
13.2.12. DeleteAccessKey
Deletes the access key pair associated with the specified IAM user.
For action details and examples see the AWS documentation: DeleteAccessKey
13.2.12.2. Errors
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.13. DeleteGroup
Deletes the specified IAM group.
For action details and examples see the AWS documentation: DeleteGroup
13.2.13.2. Errors
l DeleteConflict
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.14. DeleteGroupPolicy
Deletes the specified inline policy that is embedded in the specified IAM group.
For action details and examples see the AWS documentation: DeleteGroupPolicy
1083
Chapter 13. IAM API
13.2.14.2. Errors
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.15. DeletePolicy
Deletes the specified managed policy.
For action details and examples see the AWS documentation: DeletePolicy
13.2.15.2. Errors
l DeleteConflict
l InvalidInput
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.16. DeletePolicyVersion
Deletes the specified version from the specified managed policy.
Note You cannot delete the default version of a policy using this operation. To delete the default ver-
sion a policy, use "DeletePolicy" (page 1084).
For action details and examples see the AWS documentation: DeletePolicyVersion
1084
13.2. Supported IAM Actions
13.2.16.2. Errors
l DeleteConflict
l InvalidInput
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.17. DeleteRole
Deletes the specified role.
For action details and examples see the AWS documentation: DeleteRole
13.2.17.2. Errors
l ConcurrentModification
l DeleteConflict
l LimitExceeded
l NoSuchEntity
l ServiceFailure
l UnmodifiableEntity
13.2.18. DeleteRolePolicy
Deletes the specified inline policy that is embedded in the specified IAM role.
For action details and examples see the AWS documentation: DeleteRolePolicy
13.2.18.2. Errors
l LimitExceeded
l NoSuchEntity
1085
Chapter 13. IAM API
l ServiceFailure
l UnmodifiableEntity
13.2.19. DeleteSAMLProvider
Deletes a SAML provider resource in IAM.
For action details and examples see the AWS documentation: DeleteSAMLProvider
13.2.19.2. Errors
l InvalidInput
l NoSuchEntity
l ServiceFailure
13.2.20. DeleteUser
Deletes the specified IAM user.
For action details and examples see the AWS documentation: DeleteUser
13.2.20.2. Errors
l DeleteConflict
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.21. DeleteUserPolicy
Deletes the specified inline policy that is embedded in the specified IAM user.
For action details and examples see the AWS documentation: DeleteUserPolicy
1086
13.2. Supported IAM Actions
13.2.21.2. Errors
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.22. DetachGroupPolicy
Removes the specified managed policy from the specified IAM group.
For action details and examples see the AWS documentation: DetachGroupPolicy
13.2.22.2. Errors
l InvalidInput
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.23. DetachRolePolicy
Removes the specified managed policy from the specified role.
For action details and examples see the AWS documentation: DetachRolePolicy
13.2.23.2. Errors
l InvalidInput
l LimitExceeded
1087
Chapter 13. IAM API
l NoSuchEntity
l ServiceFailure
l UnmodifiableEntity
13.2.24. DetachUserPolicy
Removes the specified managed policy from the specified user.
For action details and examples see the AWS documentation: DetachUserPolicy
13.2.24.2. Errors
l InvalidInput
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.25. GetGroup
Returns a list of IAM users that are in the specified IAM group.
For action details and examples see the AWS documentation: GetGroup
Note The "Marker" and "MaxItems" request parameters, if submitted, are ignored.
Note For HyperStore, within the "Group" object the system-generated "GroupId" attribute value
will be in this format: <Canonical-UID-of-HyperStore-User>|<IAM-groupname>
The canonical user ID is that of the HyperStore user account under which the IAM group was
1088
13.2. Supported IAM Actions
created. The IAM group name will be preceded by the path if any was specified when the group
was created.
l IsTruncated
l Users.member.N
13.2.25.3. Errors
l NoSuchEntity
l ServiceFailure
13.2.26. GetGroupPolicy
Retrieves the specified inline policy document that is embedded in the specified IAM group.
For action details and examples see the AWS documentation: GetGroupPolicy
13.2.26.3. Errors
l NoSuchEntity
l ServiceFailure
13.2.27. GetPolicy
Retrieves information about the specified managed policy, including the policy's default version and the total
number of IAM users, groups, and roles to which the policy is attached.
For action details and examples see the AWS documentation: GetPolicy
1089
Chapter 13. IAM API
13.2.27.3. Errors
l InvalidInput
l NoSuchEntity
l ServiceFailure
13.2.28. GetPolicyVersion
Retrieves information about the specified version of the specified managed policy, including the policy doc-
ument.
For action details and examples see the AWS documentation: GetPolicyVersion
13.2.28.3. Errors
l InvalidInput
l NoSuchEntity
l ServiceFailure
13.2.29. GetRole
Retrieves information about the specified role, including the role's path, GUID, ARN, and the role's trust policy
that grants permission to assume the role.
For action details and examples see the AWS documentation: GetRole
1090
13.2. Supported IAM Actions
13.2.29.3. Errors
l NoSuchEntity
l ServiceFailure
13.2.30. GetRolePolicy
Retrieves the specified inline policy document that is embedded with the specified IAM role.
For action details and examples see the AWS documentation: GetRolePolicy
13.2.30.3. Errors
l NoSuchEntity
l ServiceFailure
13.2.31. GetSAMLProvider
Returns the SAML provider metadata document that was uploaded when the IAM SAML provider resource
object was created or updated.
For action details and examples see the AWS documentation: GetSAMLProvider
1091
Chapter 13. IAM API
13.2.31.3. Errors
l InvalidInput
l NoSuchEntity
l ServiceFailure
13.2.32. GetUser
Retrieves information about the specified IAM user, including the user's creation date, path, unique ID, and
ARN.
For action details and examples see the AWS documentation: GetUser
Note For HyperStore, within the "User" object the system-generated "UserId" attribute value will
be in this format: <Canonical-UID-of-HyperStore-User>|<IAM-username>
The canonical user ID is that of the HyperStore user account under which the IAM user was cre-
ated.The IAM user name will be preceded by the path if any was specified when the user was
created.
13.2.32.3. Errors
l NoSuchEntity
l ServiceFailure
1092
13.2. Supported IAM Actions
13.2.33. GetUserPolicy
Retrieves the specified inline policy document that is embedded in the specified IAM user.
For action details and examples see the AWS documentation: GetUserPolicy
13.2.33.3. Errors
l NoSuchEntity
l ServiceFailure
13.2.34. ListAccessKeys
Returns information about the access key IDs associated with the specified IAM user.
For action details and examples see the AWS documentation: ListAccessKeys
13.2.34.3. Errors
l NoSuchEntity
l ServiceFailure
13.2.35. ListAttachedGroupPolicies
Lists all managed policies that are attached to the specified IAM group.
1093
Chapter 13. IAM API
For action details and examples see the AWS documentation: ListAttachedGroupPolicies
13.2.35.3. Errors
l InvalidInput
l NoSuchEntity
l ServiceFailure
13.2.36. ListAttachedRolePolicies
Lists all managed policies that are attached to the specified IAM role.
For action details and examples see the AWS documentation: ListAttachedRolePolicies
13.2.36.3. Errors
l InvalidInput
l NoSuchEntity
l ServiceFailure
13.2.37. ListAttachedUserPolicies
Lists all managed policies that are attached to the specified IAM user.
1094
13.2. Supported IAM Actions
For action details and examples see the AWS documentation: ListAttachedUserPolicies
13.2.37.3. Errors
l InvalidInput
l NoSuchEntity
l ServiceFailure
13.2.38. ListEntitiesForPolicy
Lists all IAM users, groups, and roles that the specified managed policy is attached to.
For action details and examples see the AWS documentation: ListEntitiesForPolicy
l PolicyGroups.member.N
l PolicyUsers.member.N
13.2.38.3. Errors
l InvalidInput
l NoSuchEntity
l ServiceFailure
13.2.39. ListGroupPolicies
Lists the names of the inline policies that are embedded in the specified IAM group.
1095
Chapter 13. IAM API
For action details and examples see the AWS documentation: ListGroupPolicies
l PolicyNames.member.N
13.2.39.3. Errors
l NoSuchEntity
l ServiceFailure
13.2.40. ListGroups
Lists the IAM groups that have the specified path prefix.
For action details and examples see the AWS documentation: ListGroups
13.2.40.3. Errors
l ServiceFailure
13.2.41. ListGroupsForUser
Lists the IAM groups that the specified IAM user belongs to.
For action details and examples see the AWS documentation: ListGroupsForUser
Request Parameters
l UserName
Response Elements
1096
13.2. Supported IAM Actions
l Groups.member.N
l IsTruncated
Errors
l NoSuchEntity
l ServiceFailure
13.2.42. ListPolicies
Lists all the managed policies that are available under your account.
For action details and examples see the AWS documentation: ListPolicies
Note The "Scope" request parameter, if submitted, is ignored and defaults to All. Note however that
only Local policies are currently supported in HyperStore, so the policies returned by this command will
all be Local policies.
l Policies.member.N
13.2.42.3. Errors
l ServiceFailure
13.2.43. ListPolicyVersions
Lists information about the versions of the specified managed policy, including the version that is currently set
as the policy's default version.
For action details and examples see the AWS documentation: ListPolicyVersions
1097
Chapter 13. IAM API
l Versions.member.N
13.2.43.3. Errors
l InvalidInput
l NoSuchEntity
l ServiceFailure
13.2.44. ListRolePolicies
Lists the names of the inline policies that are embedded in the specified IAM role.
For action details and examples see the AWS documentation: ListRolePolicies
l PolicyNames.member.N
13.2.44.3. Errors
l NoSuchEntity
l ServiceFailure
13.2.45. ListRoles
Lists the IAM roles that have the specified path prefix.
For action details and examples see the AWS documentation: ListRoles
l Roles.member.N
1098
13.2. Supported IAM Actions
13.2.45.3. Errors
l ServiceFailure
13.2.46. ListSAMLProviders
Lists the SAML provider resource objects defined in IAM in the account.
For action details and examples see the AWS documentation: ListSAMLProviders
13.2.46.2. Errors
l ServiceFailure
13.2.47. ListUserPolicies
Lists the names of the inline policies embedded in the specified IAM user.
For action details and examples see the AWS documentation: ListUserPolicies
l PolicyNames.member.N
13.2.47.3. Errors
l NoSuchEntity
l ServiceFailure
13.2.48. ListUsers
Lists the IAM users that have the specified path prefix.
For action details and examples see the AWS documentation: ListUsers
1099
Chapter 13. IAM API
l Users.member.N
13.2.48.3. Errors
l ServiceFailure
13.2.49. PutGroupPolicy
Adds or updates an inline policy document that is embedded in the specified IAM group.
For action details and examples see the AWS documentation: PutGroupPolicy
Note For information about HyperStore's IAM policy document support see "Supported IAM
Policy Elements" (page 1105).
l PolicyName
13.2.49.2. Errors
l LimitExceeded
l MalformedPolicyDocument
l NoSuchEntity
l ServiceFailure
13.2.50. PutRolePolicy
Adds or updates an inline policy document that is embedded in the specified IAM role.
For action details and examples see the AWS documentation: PutRolePolicy
1100
13.2. Supported IAM Actions
13.2.50.2. Errors
l LimitExceeded
l MalformedPolicyDocument
l NoSuchEntity
l ServiceFailure
l UnmodifiableEntity
13.2.51. PutUserPolicy
Adds or updates an inline policy document that is embedded in the specified IAM user.
For action details and examples see the AWS documentation: PutUserPolicy
Note For information about HyperStore's IAM policy document support see "Supported IAM
Policy Elements" (page 1105).
l PolicyName
l UserName
13.2.51.2. Errors
l LimitExceeded
l MalformedPolicyDocument
l NoSuchEntity
l ServiceFailure
13.2.52. RemoveUserFromGroup
Removes the specified user from the specified group.
For action details and examples see the AWS documentation: RemoveUserFromGroup
1101
Chapter 13. IAM API
13.2.52.2. Errors
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.53. SetPolicyDefaultVersion
Sets the specified version of the specified policy as the policy's default (operative) version.
For action details and examples see the AWS documentation: SetPolicyDefaultVersion
13.2.53.2. Errors
l InvalidInput
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.54. UpdateAccessKey
Changes the status of the specified access key from Active to Inactive, or vice versa.
For action details and examples see the AWS documentation: UpdateAccessKey
1102
13.2. Supported IAM Actions
13.2.54.2. Errors
l LimitExceeded
l NoSuchEntity
l ServiceFailure
Note By default the HyperStore system allows only two key pairs per IAM user. This restriction is con-
figurable by the "credentials.iamuser.max" (page 626) setting in mts.properties.erb. Note that an IAM
user's inactive credentials (if any) count toward this limit, as well as active credentials.
13.2.55. UpdateAssumeRolePolicy
Updates the policy that grants an IAM entity permission to assume a role.
For action details and examples see the AWS documentation: UpdateAssumeRolePolicy
Note For Conditions in a trust policy, HyperStore supports only the StringEquals condition operator
and only the following condition keys:
aws:TokenIssueTime
sts:ExternalId
saml:aud
saml:doc
saml:iss
saml:namequalifier
saml:sub
saml:sub_type
13.2.55.2. Errors
l LimitExceeded
l MalformedPolicyDocument
l NoSuchEntity
l ServiceFailure
l UnmodifiableEntity
13.2.56. UpdateGroup
Updates the name and/or the path of the specified IAM group.
1103
Chapter 13. IAM API
For action details and examples see the AWS documentation: UpdateGroup
13.2.56.2. Errors
l EntityAlreadyExists
l LimitExceeded
l NoSuchEntity
l ServiceFailure
13.2.57. UpdateRole
Updates the description or maximum session duration setting of a role.
For action details and examples see the AWS documentation: UpdateRole
13.2.57.2. Errors
l NoSuchEntity
l ServiceFailure
l UnmodifiableEntity
13.2.58. UpdateRoleDescription
Although HyperStore supports this Action, it is recommended to use UpdateRole instead.
13.2.59. UpdateSAMLProvider
Updates the metadata document for an existing SAML provider resource object.
HyperStore supports the parameters, response elements, and errors listed below.
For action details and examples see the AWS documentation: UpdateSAMLProvider
1104
13.3. Supported IAM Policy Elements
13.2.59.3. Errors
l InvalidInput
l NoSuchEntity
l ServiceFailure
13.2.60. UpdateUser
Updates the name and/or the path of the specified IAM user.
For action details and examples see the AWS documentation: UpdateUser
13.2.60.2. Errors
l EntityAlreadyExists
l EntityTemporarilyUnmodifiable
l LimitExceeded
l NoSuchEntity
l ServiceFailure
HyperStore supports AWS standard IAM policy formatting and most policy elements for granting S3 or IAM ser-
vice permissions.
1105
Chapter 13. IAM API
For guidance on how to construct IAM policies for S3 service permissions or IAM service permissions, see the
AWS documentation on this topic. For example:
http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html
https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html
l Actions, Resources, and Condition Keys for Identity And Access Management
https://docs.aws.amazon.com/IAM/latest/UserGuide/list_identityandaccessmanagement.html
Below is an example of a simple IAM policy document granting permission to list the contents of a bucket
named "bucket1":
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::bucket1"
}]
}
Note HyperStore supports most but not all of the S3 Actions and IAM Actions cited in the AWS doc-
umentation for IAM policy formation. In general, when constructing IAM policies you can use all the
Actions that correspond to operations supported by the HyperStore S3 Service and the HyperStore IAM
Service. You can check the HyperStore S3 API documentation and HyperStore IAM API documentation
if you are unsure whether a particular operation is supported. Alternatively you can check the CMC
interface for creating an IAM policy -- the interface lists all the supported S3 actions and IAM actions.
Note Actions in IAM policies are case sensitive, so be sure to exactly match the desired Action name
as it appears in the AWS documentation.
At a high level, the process of setting up and using SAML access for HyperStore works as described below.
l "Downloading the HyperStore SAML Metadata Document for IdP Setup" (page 1107)
l "Using the IAM Service to Create SAML Provider Resources" (page 1107)
1106
13.4. SAML Support
For example:
https://cmc.enterprise.com:8443/static/saml-metadata.xml
If you have configured your load balancers so that external access to the CMC is through a different port
number than the CMC is listening on internally (which is 8443 by default), then before downloading the Hyper-
Store SAML Provider Metadata document run the following commands on your Configuration Master node:
For example:
This will result in the correct CMC external access port being specified within the Service Provider Metadata
document.
You can create SAML provider resources either by using the CMC's Manage Identity Providers page, or by
using a third party IAM client to access the HyperStore IAM Service. If you are using a third party IAM client, the
relevant IAM calls are:
l CreateSAMLProvider
l ListSAMLProviders
l GetSAMLProvider
l UpdateSAMLProvider
l DeleteSAMLProvider
You should create a SAML provider resource for each IdP that will be a trusted source of incoming SAML asser-
tions.
1107
Chapter 13. IAM API
Note S3 credentials are needed to access the HyperStore IAM Service (and the CMC's IAM functions),
and the CMC's system administrative user named "admin" does not have these credentials by default.
For information on creating S3 credentials for the "admin" user so that this user can access the
IAM Service, see "S3 Access Credentials Are Needed to Access the IAM Service" (page 1071).
You can create and manage IAM roles either by using the CMC's Manage Roles page, or by using a third
party IAM client. If you are using a third party IAM client to access the HyperStore IAM Service, the relevant
IAM calls are:
l CreateRole
l ListRoles
l GetRole
l UpdateRole
l UpdateAssumRolePolicy
l DeleteRole
l AttachRolePolicy
l ListAttachedRolePolicies
l DetachRolePolicy
l PutRolePolicy
l ListRolePolicies
l GetRolePolicy
l DeleteRolePolicy
Note S3 credentials are needed to access the HyperStore IAM Service (and the CMC's IAM functions),
and the CMC's system administrative user named "admin" does not have these credentials by default.
For information on creating S3 credentials for the "admin" user so that this user can access the
IAM Service, see "S3 Access Credentials Are Needed to Access the IAM Service" (page 1071).
13.4.3.1. Limitations
l Role session policies and role tags are not supported.
l Support for Conditions in trust policies is limited; see CreateRole.
1108
13.4. SAML Support
There are two options for using this API call to assume a role:
l A third party STS client application can be used to submit an AssumeRoleWithSAML API call to Hyper-
Store's STS Service. For more information on accessing this service see "HyperStore Support for the
AWS STS API" (page 1111).
l The CMC hosts a single-sign-on (SSO) page to which an IdP can submit a SAML assertion on behalf of
a user who has successfully logged into the IdP. The IdP can submit an HTTP POST to the Location
URL identified within the AssertionConsumerService attribute of the HyperStore SAML Metadata doc-
ument. Based on the submitted SAML assertion contents, the CMC will display a list of Roles for which
the user identified in the assertion is eligible. The user can select a Role from that list, and the CMC
will then submit an AssumeRoleWithSAML request for that Role to the HyperStore STS Service. The
CMC then makes the returned temporary security credentials available for the user to copy to their clip-
board, and the user can then paste the temporary credentials into an S3 application and perform the S3
operations permitted by the Role.
1109
Chapter 13. IAM API
13.4.4.1. Limitations
Users with temporary security credentials obtained from the HyperStore STS Service:
What users with temporary security credentials can do is access the HyperStore S3 Service by using a third
party S3 client application. Their S3 permissions will be limited to those permissions ascribed to the role that
they have assumed.
1110
Chapter 14. STS API
14.1. Introduction
l Only a few STS Actions are supported -- for details see "Supported STS Actions".
l HyperStore does not allow users with temporary security credentials (obtained through the STS Ser-
vice) to perform IAM operations. The HyperStore IAM Service will reject requests that contain tem-
porary credentials. Users with temporary credentials can only access the S3 Service (within the
permission restrictions of the roles that such users assume).
l Users with temporary security credentials are not allowed to log into the CMC.
The default STS Service endpoint URLs for HTTP and HTTPS are:
l http://sts.<organization-domain>:16080
l https://sts.<organization-domain>:16443
Note Be sure to configure the STS endpoint domain in your DNS environment.
Note The STS Service uses the same listening ports as the IAM Service.
l Action
l Version
l X-Amz-Algorithm
l X-Amz-Credential
l X-Amz-Date
l X-Amz-Security-Token (only supported for GetCallerIdentity requests)
l X-Amz-Signature
l X-Amz-SignedHeaders
1111
Chapter 14. STS API
support it.
l AccessDeniedException
l InternalFailure
l InvalidAction
l InvalidClientTokenId
l InvalidParameterCombination
l InvalidParameterValue
l MissingAuthenticationToken
l MissingParameter
l ServiceUnavailable
l ValidationError
14.2.1. AssumeRole
Returns a set of temporary security credentials that you can use to access S3 resources that you might not nor-
mally have access to.
For action details and examples see the AWS documentation: AssumeRole
Note HyperStore does not allow users with temporary security credentials to perform IAM operations.
1112
14.2. Supported STS Actions
14.2.1.3. Errors
l InvalidParameterValue
l NoSuchEntity
14.2.2. AssumeRoleWithSAML
Returns a set of temporary security credentials for users who have been authenticated via a SAML authen-
tication response.
For action details and examples see the AWS documentation: AssumeRoleWithSAML
Note For an overview of HyperStore support for SAML see "SAML Support" (page 1106). For more
information about using the STS AssumeRoleWithSAML call with HyperStore see "Using the STS Ser-
vice to Assume a Role" (page 1109).
14.2.2.3. Errors
l ExpiredToken
l InvalidClientTokenId
l InvalidParameterValue
14.2.3. GetCallerIdentity
Returns details about the IAM user or role whose credentials are used to call the operation.
1113
Chapter 14. STS API
For action details and examples see the AWS documentation: GetCallerIdentity
14.2.3.2. Errors
l ExpiredToken
l InvalidClientTokenId
1114
Chapter 15. SQS API
15.1. Introduction
In the current HyperStore release, there are these limitations to the bucket notification feature and the SQS Ser-
vice:
l A third party SQS client application must be used to interface with the HyperStore SQS Service to per-
form operations such as creating and configuring queues and receiving and deleting queued mes-
sages. The CMC does not yet support SQS operations.
l A third party S3 client application must be used to execute the PutBucketNotificationConfiguraiton
operation. The CMC does not yet support this S3 operation.
l For bucket notifications to an SQS queue to work, the bucket owner must also be the owner of the
SQS queue.
l HTTPS access to the SQS Service is not supported. Only regular HTTP access is supported.
l The HyperStore SQS Service supports many of the Actions from the Amazon SQS API, but not all of
them. For more detail see "SQS Supported Actions" (page 1116).
15.1.1.1. Enabling and Using the SQS Service and Bucket Notification
HyperStore's bucket notification feature and its SQS Service are disabled by default. To enable the notification
feature and the SQS Service:
1. In common.csv:
2. In mts.properties.erb:
o Edit the cloudian.s3.unsupported property to remove notification from the list of unsupported S3
request types. Be sure to delete the preceding comma as well.
cloudian.s3.unsupported=accelerate,requestPayment,analytics,inventory,metrics,select,no
tification
1115
Chapter 15. SQS API
cloudian.s3.unsupported=accelerate,requestPayment,analytics,inventory,metrics,select
o Below the cloudian.s3.unsupported property, add this new property to the file (it is not in the file
by default):
cloudian.s3.bucketnotification=true
3. Use the installer to push the configuration changes to the cluster and restart the S3 Service and the
SQS Service.
Once you have enabled the bucket notification feature and the SQS Service, then:
l A third party SQS client application can be used to submit requests to the HyperStore SQS Service,
such as for creating and configuring a queue. For HyperStore support of SQS Actions see "SQS Sup-
ported Actions" (page 1116). The default SQS Service endpoint URL including the port number is
http://s3-sqs.<organization-domain>:18090
l A third party S3 client application can be used to submit a PutBucketNotificationConfiguration request
to the HyperStore S3 Service, to configure notifications for an existing bucket. For HyperStore support of
this S3 API method see PutBucketNotificationConfiguration. As noted previously, the bucket owner
must also be the SQS queue owner.
Note Information about requests processed by the SQS Service are logged to cloudian-sqs-request.-
log, which exists on each node. For more information see "S3 Service Logs (including Auto-Tiering,
CRR, and WORM)" (page 676).
Note The HyperStore SQS Service is disabled by default. For information about enabling the service
see "Enabling and Using the SQS Service and Bucket Notification" (page 1115).
15.2.1. ChangeMessageVisibility
Changes the visibility timeout of a specified message in a queue to a new value.
For action details and examples see the AWS documentation: ChangeMessageVisibility
1116
15.2. SQS Supported Actions
l VisibilityTimeout
15.2.1.2. Errors
l AWS.SimpleQueueService.MessageNotInflight
l ReceiptHandleIsInvalid
15.2.2. CreateQueue
Creates a new standard queue.
For action details and examples see the AWS documentation: CreateQueue
Note HyperStore currently only supports Standard queues. HyperStore does not support FIFO queues.
o DelaySeconds
o MaximumMessageSize
o MessageRetentionPeriod
o ReceiveMessageWaitTimeSeconds
o VisibilityTimeout
l QueueName
l Tag
15.2.2.3. Errors
l AWS.SimpleQueueService.QueueDeletedRecently
l QueueAlreadyExists
15.2.3. DeleteMessage
Deletes the specified message from the specified queue.
For action details and examples see the AWS documentation: DeleteMessage
1117
Chapter 15. SQS API
15.2.3.2. Errors
l InvalidIdFormat
l ReceiptHandleIsInvalid
15.2.4. DeleteQueue
Deletes the queue specified by the QueueUrl, regardless of the queue's contents.
For action details and examples see the AWS documentation: DeleteQueue
15.2.5. GetQueueAttributes
Gets attributes for the specified queue.
For action details and examples see the AWS documentation: GetQueueAttributes
Note For the list of queue attributes that HyperStore supports, see "CreateQueue" (page 1117).
l QueueUrl
15.2.5.3. Errors
l InvalidAttributeName
15.2.6. GetQueueUrl
Returns the URL of an existing Amazon SQS queue.
1118
15.2. SQS Supported Actions
For action details and examples see the AWS documentation: GetQueueUrl
15.2.6.3. Errors
l AWS.SimpleQueueService.NonExistentQueue
15.2.7. ListQueues
Returns a list of your queues in the current region.
For action details and examples see the AWS documentation: ListQueues
15.2.8. PurgeQueue
Deletes the messages in a queue specified by the QueueURL parameter.
For action details and examples see the AWS documentation: PurgeQueue
1119
Chapter 15. SQS API
15.2.8.2. Errors
l AWS.SimpleQueueService.NonExistentQueue
l AWS.SimpleQueueService.PurgeQueueInProgress
15.2.9. ReceiveMessage
Retrieves one or more messages (up to 10), from the specified queue.
For action details and examples see the AWS documentation: ReceiveMessage
15.2.9.3. Errors
l OverLimit
15.2.10. SendMessage
Delivers a message to the specified queue.
For action details and examples see the AWS documentation: SendMessage
Note The SendMessage action is not intended to be used by external SQS clients. The HyperStore S3
Service internally uses the SendMessage action to publish notification messages to a queue.
1120
15.2. SQS Supported Actions
15.2.10.3. Errors
l AWS.SimpleQueueService.UnsupportedOperation
l InvalidMessageContents
15.2.11. SetQueueAttributes
Sets the value of one or more queue attributes.
For action details and examples see the AWS documentation: SetQueueAttributes
Note For the list of queue attributes that HyperStore supports see "CreateQueue" (page 1117).
l QueueUrl
15.2.11.2. Errors
l InvalidAttributeName
1121
This page left intentionally blank
Chapter 16. Open Source License Agree-
ments
Cloudian, Inc. acknowledges the redistribution of open source components under the licenses shown below.
Component or
License License URL Copyright
Library
Copyright 2011 Dain Sundstrom
Apache http://www.apache.org/licenses/LICENSE-
Airlift [email protected] Copyright 2010
2.0 2.0
Cedric Beust [email protected]
Apache
Apache http://www.apache.org/licenses/LICENSE- Copyright © 2005-2018 The
HTTPCom-
2.0 2.0 Apache Software Foundation
ponents
GPL
http://mir- Copyright © 2017 The CentOS Pro-
CentOS and vari-
ror.centos.org/centos/6/os/i386/EULA ject
ous
1123
Chapter 16. Open Source License Agreements
Component or
License License URL Copyright
Library
2.0 2.0
Apache http://www.apache.org/licenses/LICENSE-
DropWizard None
2.0 2.0
Apache http://www.apache.org/licenses/LICENSE-
Gson Copyright 2008 Google Inc.
2.0 2.0
Apache http://www.apache.org/licenses/LICENSE-
Guava None
2.0 2.0
Public https://github.com/stephenc/high-scale-
High-scale-lib None
Domain lib/blob/master/LICENSE
Apache http://www.apache.org/licenses/LICENSE-
Jackson None
2.0 2.0
Oracle
http://www.or-
binary Copyright © 1995, 2018, Oracle
Java acle.com/technetwork/java/javase/
code and/or its affiliates.
terms/license/index.html
license
Custom:
No lim-
itation
https://github.com/xetorthio/jedis/blob/ Copyright (c) 2010 Jonathan Leibi-
Jedis if copy-
master/LICENSE.txt usky
right
include-
d
Apache http://www.apache.org/licenses/LICENSE-
JNA None
2.0 2.0
Apache http://www.apache.org/licenses/LICENSE-
Joda-Time Copyright ©2002-2017 Joda.org.
2.0 2.0
1124
Component or
License License URL Copyright
Library
Apache http://www.apache.org/licenses/LICENSE-
LZ4 None
2.0 2.0
Apache http://www.apache.org/licenses/LICENSE-
Netty None
2.0 2.0
Apache http://www.apache.org/licenses/LICENSE-
OpenCSV None
2.0 2.0
https://github.com/paul-ham-
Copyright (c) 2006 Paul Hammant
Paranamer BSD mant/paranamer/blob/
& ThoughtWorks Inc
master/LICENSE.txt
3-
Copyright (c) 2006-2015, Sal-
Redis clause http://redis.io/topics/license
vatore Sanfilippo
BSD
Apache http://www.apache.org/licenses/LICENSE-
SnakeYaml None
2.0 2.0
Apache http://www.apache.org/licenses/LICENSE-
Snappy None
2.0 2.0
1125