# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module StorageV1beta1 # A bucket. class Bucket include Google::Apis::Core::Hashable # Access controls on the bucket. # Corresponds to the JSON property `acl` # @return [Array] attr_accessor :acl # Default access controls to apply to new objects when no ACL is provided. # Corresponds to the JSON property `defaultObjectAcl` # @return [Array] attr_accessor :default_object_acl # The name of the bucket. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # The kind of item this is. For buckets, this is always storage#bucket. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The location of the bucket. Object data for objects in the bucket resides in # physical storage in this location. Can be US or EU. Defaults to US. # Corresponds to the JSON property `location` # @return [String] attr_accessor :location # The owner of the bucket. This will always be the project team's owner group. # Corresponds to the JSON property `owner` # @return [Google::Apis::StorageV1beta1::Bucket::Owner] attr_accessor :owner # The project the bucket belongs to. # Corresponds to the JSON property `projectId` # @return [Fixnum] attr_accessor :project_id # The URI of this bucket. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link # Creation time of the bucket in RFC 3339 format. # Corresponds to the JSON property `timeCreated` # @return [DateTime] attr_accessor :time_created # The bucket's website configuration. # Corresponds to the JSON property `website` # @return [Google::Apis::StorageV1beta1::Bucket::Website] attr_accessor :website def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @acl = args[:acl] if args.key?(:acl) @default_object_acl = args[:default_object_acl] if args.key?(:default_object_acl) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @location = args[:location] if args.key?(:location) @owner = args[:owner] if args.key?(:owner) @project_id = args[:project_id] if args.key?(:project_id) @self_link = args[:self_link] if args.key?(:self_link) @time_created = args[:time_created] if args.key?(:time_created) @website = args[:website] if args.key?(:website) end # The owner of the bucket. This will always be the project team's owner group. class Owner include Google::Apis::Core::Hashable # The entity, in the form group-groupId. # Corresponds to the JSON property `entity` # @return [String] attr_accessor :entity # The ID for the entity. # Corresponds to the JSON property `entityId` # @return [String] attr_accessor :entity_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @entity = args[:entity] if args.key?(:entity) @entity_id = args[:entity_id] if args.key?(:entity_id) end end # The bucket's website configuration. class Website include Google::Apis::Core::Hashable # Behaves as the bucket's directory index where missing objects are treated as # potential directories. # Corresponds to the JSON property `mainPageSuffix` # @return [String] attr_accessor :main_page_suffix # The custom object to return when a requested resource is not found. # Corresponds to the JSON property `notFoundPage` # @return [String] attr_accessor :not_found_page def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @main_page_suffix = args[:main_page_suffix] if args.key?(:main_page_suffix) @not_found_page = args[:not_found_page] if args.key?(:not_found_page) end end end # An access-control entry. class BucketAccessControl include Google::Apis::Core::Hashable # The name of the bucket. # Corresponds to the JSON property `bucket` # @return [String] attr_accessor :bucket # The domain associated with the entity, if any. # Corresponds to the JSON property `domain` # @return [String] attr_accessor :domain # The email address associated with the entity, if any. # Corresponds to the JSON property `email` # @return [String] attr_accessor :email # The entity holding the permission, in one of the following forms: # - user-userId # - user-email # - group-groupId # - group-email # - domain-domain # - allUsers # - allAuthenticatedUsers Examples: # - The user liz@example.com would be user-liz@example.com. # - The group example@googlegroups.com would be group-example@googlegroups.com. # - To refer to all members of the Google Apps for Business domain example.com, # the entity would be domain-example.com. # Corresponds to the JSON property `entity` # @return [String] attr_accessor :entity # The ID for the entity, if any. # Corresponds to the JSON property `entityId` # @return [String] attr_accessor :entity_id # The ID of the access-control entry. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # The kind of item this is. For bucket access control entries, this is always # storage#bucketAccessControl. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The access permission for the entity. Can be READER, WRITER, or OWNER. # Corresponds to the JSON property `role` # @return [String] attr_accessor :role # The link to this access-control entry. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bucket = args[:bucket] if args.key?(:bucket) @domain = args[:domain] if args.key?(:domain) @email = args[:email] if args.key?(:email) @entity = args[:entity] if args.key?(:entity) @entity_id = args[:entity_id] if args.key?(:entity_id) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @role = args[:role] if args.key?(:role) @self_link = args[:self_link] if args.key?(:self_link) end end # An access-control list. class BucketAccessControls include Google::Apis::Core::Hashable # The list of items. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # The kind of item this is. For lists of bucket access control entries, this is # always storage#bucketAccessControls. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) end end # A list of buckets. class Buckets include Google::Apis::Core::Hashable # The list of items. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # The kind of item this is. For lists of buckets, this is always storage#buckets. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The continuation token, used to page through large result sets. Provide this # value in a subsequent request to return the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # An object. class Object include Google::Apis::Core::Hashable # Access controls on the object. # Corresponds to the JSON property `acl` # @return [Array] attr_accessor :acl # The bucket containing this object. # Corresponds to the JSON property `bucket` # @return [String] attr_accessor :bucket # Cache-Control directive for the object data. # Corresponds to the JSON property `cacheControl` # @return [String] attr_accessor :cache_control # Content-Disposition of the object data. # Corresponds to the JSON property `contentDisposition` # @return [String] attr_accessor :content_disposition # Content-Encoding of the object data. # Corresponds to the JSON property `contentEncoding` # @return [String] attr_accessor :content_encoding # Content-Language of the object data. # Corresponds to the JSON property `contentLanguage` # @return [String] attr_accessor :content_language # The ID of the object. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # The kind of item this is. For objects, this is always storage#object. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Object media data. Provided on your behalf when uploading raw media or # multipart/related with an auxiliary media part. # Corresponds to the JSON property `media` # @return [Google::Apis::StorageV1beta1::Object::Media] attr_accessor :media # User-provided metadata, in key/value pairs. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata # The name of this object. Required if not specified by URL parameter. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The owner of the object. This will always be the uploader of the object. # Corresponds to the JSON property `owner` # @return [Google::Apis::StorageV1beta1::Object::Owner] attr_accessor :owner # The link to this object. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @acl = args[:acl] if args.key?(:acl) @bucket = args[:bucket] if args.key?(:bucket) @cache_control = args[:cache_control] if args.key?(:cache_control) @content_disposition = args[:content_disposition] if args.key?(:content_disposition) @content_encoding = args[:content_encoding] if args.key?(:content_encoding) @content_language = args[:content_language] if args.key?(:content_language) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @media = args[:media] if args.key?(:media) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) @owner = args[:owner] if args.key?(:owner) @self_link = args[:self_link] if args.key?(:self_link) end # Object media data. Provided on your behalf when uploading raw media or # multipart/related with an auxiliary media part. class Media include Google::Apis::Core::Hashable # Hash algorithm used. Currently only MD5 is supported. Required if a hash is # provided. # Corresponds to the JSON property `algorithm` # @return [String] attr_accessor :algorithm # Content-Type of the object data. # Corresponds to the JSON property `contentType` # @return [String] attr_accessor :content_type # URL-safe Base64-encoded data. This property can be used to insert objects # under 64KB in size, and will only be returned in response to the get method # for objects so created. When this resource is returned in response to the list # method, this property is omitted. # Corresponds to the JSON property `data` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :data # Hash of the data. Required if a hash algorithm is provided. # Corresponds to the JSON property `hash` # @return [String] attr_accessor :hash_prop # Content-Length of the data in bytes. # Corresponds to the JSON property `length` # @return [Fixnum] attr_accessor :length # Media download link. # Corresponds to the JSON property `link` # @return [String] attr_accessor :link # Creation time of the data in RFC 3339 format. # Corresponds to the JSON property `timeCreated` # @return [DateTime] attr_accessor :time_created def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @algorithm = args[:algorithm] if args.key?(:algorithm) @content_type = args[:content_type] if args.key?(:content_type) @data = args[:data] if args.key?(:data) @hash_prop = args[:hash_prop] if args.key?(:hash_prop) @length = args[:length] if args.key?(:length) @link = args[:link] if args.key?(:link) @time_created = args[:time_created] if args.key?(:time_created) end end # The owner of the object. This will always be the uploader of the object. class Owner include Google::Apis::Core::Hashable # The entity, in the form user-userId. # Corresponds to the JSON property `entity` # @return [String] attr_accessor :entity # The ID for the entity. # Corresponds to the JSON property `entityId` # @return [String] attr_accessor :entity_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @entity = args[:entity] if args.key?(:entity) @entity_id = args[:entity_id] if args.key?(:entity_id) end end end # An access-control entry. class ObjectAccessControl include Google::Apis::Core::Hashable # The name of the bucket. # Corresponds to the JSON property `bucket` # @return [String] attr_accessor :bucket # The domain associated with the entity, if any. # Corresponds to the JSON property `domain` # @return [String] attr_accessor :domain # The email address associated with the entity, if any. # Corresponds to the JSON property `email` # @return [String] attr_accessor :email # The entity holding the permission, in one of the following forms: # - user-userId # - user-email # - group-groupId # - group-email # - domain-domain # - allUsers # - allAuthenticatedUsers Examples: # - The user liz@example.com would be user-liz@example.com. # - The group example@googlegroups.com would be group-example@googlegroups.com. # - To refer to all members of the Google Apps for Business domain example.com, # the entity would be domain-example.com. # Corresponds to the JSON property `entity` # @return [String] attr_accessor :entity # The ID for the entity, if any. # Corresponds to the JSON property `entityId` # @return [String] attr_accessor :entity_id # The ID of the access-control entry. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # The kind of item this is. For object access control entries, this is always # storage#objectAccessControl. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The name of the object. # Corresponds to the JSON property `object` # @return [String] attr_accessor :object # The access permission for the entity. Can be READER or OWNER. # Corresponds to the JSON property `role` # @return [String] attr_accessor :role # The link to this access-control entry. # Corresponds to the JSON property `selfLink` # @return [String] attr_accessor :self_link def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bucket = args[:bucket] if args.key?(:bucket) @domain = args[:domain] if args.key?(:domain) @email = args[:email] if args.key?(:email) @entity = args[:entity] if args.key?(:entity) @entity_id = args[:entity_id] if args.key?(:entity_id) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @object = args[:object] if args.key?(:object) @role = args[:role] if args.key?(:role) @self_link = args[:self_link] if args.key?(:self_link) end end # An access-control list. class ObjectAccessControls include Google::Apis::Core::Hashable # The list of items. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # The kind of item this is. For lists of object access control entries, this is # always storage#objectAccessControls. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) end end # A list of objects. class Objects include Google::Apis::Core::Hashable # The list of items. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # The kind of item this is. For lists of objects, this is always storage#objects. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The continuation token, used to page through large result sets. Provide this # value in a subsequent request to return the next page of results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The list of prefixes of objects matching-but-not-listed up to and including # the requested delimiter. # Corresponds to the JSON property `prefixes` # @return [Array] attr_accessor :prefixes def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @prefixes = args[:prefixes] if args.key?(:prefixes) end end end end end