self::QUERY, 'description' => << self::QUERY, 'description' => << self::QUERY, 'description' => << self::HEADER, 'type' => self::BOOL_TYPE, 'sentAs' => 'X-Newest', 'description' => << self::HEADER, 'sentAs' => sprintf('X-%s-Meta-Temp-URL-Key', ucfirst($type)), 'description' => 'The secret key value for temporary URLs.', ]; } public function tempUrlKey2($type) { return [ 'location' => self::HEADER, 'sentAs' => sprintf('X-%s-Meta-Temp-URL-Key-2', ucfirst($type)), 'description' => << self::URL, 'required' => true, 'description' => << 'query', 'description' => << 'header', 'sentAs' => sprintf('X-%s-Read', ucfirst($type)), 'description' => << self::HEADER, 'sentAs' => 'X-Container-Sync-To', 'description' => << self::HEADER, 'sentAs' => 'X-Container-Sync-Key', 'description' => << self::HEADER, 'sentAs' => sprintf('X-%s-Write', ucfirst($type)), 'description' => 'Like `readAccess` parameter, but for write access.', ]; } public function metadata($type, $remove = false) { if (true == $remove) { $type = 'Remove-'.ucfirst($type); } return [ 'location' => self::HEADER, 'type' => self::OBJECT_TYPE, 'prefix' => sprintf('X-%s-Meta-', ucfirst($type)), 'properties' => [ 'type' => self::STRING_TYPE, ], 'description' => << self::HEADER, 'sentAs' => 'X-Versions-Location', 'description' => << self::HEADER, 'sentAs' => 'X-Container-Meta-Quota-Bytes', 'description' => << self::HEADER, 'sentAs' => 'X-Container-Meta-Quota-Count', 'description' => << self::HEADER, 'sentAs' => 'X-Container-Meta-Web-Directory-Type', 'description' => << self::HEADER, 'type' => self::BOOL_TYPE, 'sentAs' => 'X-Detect-Content-Type', 'description' => << self::HEADER, 'sentAs' => 'X-Remove-Versions-Location', 'description' => 'Set to any value to disable versioning.', ]; } public function objectName(): array { return [ 'location' => self::URL, 'required' => true, 'description' => 'The unique name for the object', ]; } public function range(): array { return [ 'location' => self::HEADER, 'description' => << self::HEADER, 'sentAs' => 'If-Match', 'description' => << self::HEADER, 'sentAs' => 'If-None-Match', 'description' => << self::HEADER, 'sentAs' => 'If-Modified-Since', 'description' => << self::HEADER, 'sentAs' => 'If-Unmodified-Since', 'description' => << self::HEADER, 'sentAs' => 'X-Delete-After', 'description' => << self::HEADER, 'sentAs' => 'X-Delete-At', 'description' => 'The certain date, in UNIX Epoch timestamp format, when the object will be removed.', ]; } public function contentEncoding(): array { return [ 'location' => self::HEADER, 'sentAs' => 'Content-Encoding', 'description' => << self::HEADER, 'sentAs' => 'Content-Disposition', 'description' => << self::HEADER, 'sentAs' => 'X-Copy-From', 'description' => << self::HEADER, 'sentAs' => 'ETag', 'description' => << self::HEADER, 'sentAs' => 'Content-Type', 'description' => 'The Content-Type entity-header field indicates the media type of the entity-body', ]; } public function destination(): array { return [ 'location' => self::HEADER, 'sentAs' => 'Destination', 'description' => << self::HEADER, 'type' => self::BOOL_TYPE, 'description' => << self::RAW, 'type' => self::STRING_TYPE, 'description' => 'The content of the object in string form', ]; } public function stream(): array { return [ 'location' => self::RAW, 'type' => StreamInterface::class, 'description' => 'The content of the object in string form', ]; } public function format(): array { return [ 'location' => self::QUERY, 'type' => self::STRING_TYPE, 'description' => 'Defines the format of the collection. Will always default to `json`.', ]; } public function objectManifest(): array { return [ 'location' => self::HEADER, 'sentAs' => 'X-Object-Manifest', 'type' => self::STRING_TYPE, 'description' => <<