427 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			427 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# 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 PolyV1
 | 
						|
      
 | 
						|
      # Represents and describes an asset in the Poly library. An asset is a 3D model
 | 
						|
      # or scene created using [Tilt Brush](//www.tiltbrush.com),
 | 
						|
      # [Blocks](//vr.google.com/blocks/), or any 3D program that produces a file
 | 
						|
      # that can be upload to Poly.
 | 
						|
      class Asset
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The author's publicly visible name. Use this name when giving credit to the
 | 
						|
        # author. For more information, see [Licensing](/poly/discover/licensing).
 | 
						|
        # Corresponds to the JSON property `authorName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :author_name
 | 
						|
      
 | 
						|
        # For published assets, the time when the asset was published.
 | 
						|
        # For unpublished assets, the time when the asset was created.
 | 
						|
        # Corresponds to the JSON property `createTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :create_time
 | 
						|
      
 | 
						|
        # The human-readable description, set by the asset's author.
 | 
						|
        # Corresponds to the JSON property `description`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :description
 | 
						|
      
 | 
						|
        # The human-readable name, set by the asset's author.
 | 
						|
        # Corresponds to the JSON property `displayName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :display_name
 | 
						|
      
 | 
						|
        # A list of Formats where each
 | 
						|
        # format describes one representation of the asset.
 | 
						|
        # Corresponds to the JSON property `formats`
 | 
						|
        # @return [Array<Google::Apis::PolyV1::Format>]
 | 
						|
        attr_accessor :formats
 | 
						|
      
 | 
						|
        # Whether this asset has been curated by the Poly team.
 | 
						|
        # Corresponds to the JSON property `isCurated`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :is_curated
 | 
						|
        alias_method :is_curated?, :is_curated
 | 
						|
      
 | 
						|
        # The license under which the author has made the asset available
 | 
						|
        # for use, if any.
 | 
						|
        # Corresponds to the JSON property `license`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :license
 | 
						|
      
 | 
						|
        # The unique identifier for the asset in the form:
 | 
						|
        # `assets/`ASSET_ID``.
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        # Hints for displaying the asset, based on information available when the asset
 | 
						|
        # was uploaded.
 | 
						|
        # Corresponds to the JSON property `presentationParams`
 | 
						|
        # @return [Google::Apis::PolyV1::PresentationParams]
 | 
						|
        attr_accessor :presentation_params
 | 
						|
      
 | 
						|
        # Represents a file in Poly, which can be a root,
 | 
						|
        # resource, or thumbnail file.
 | 
						|
        # Corresponds to the JSON property `thumbnail`
 | 
						|
        # @return [Google::Apis::PolyV1::File]
 | 
						|
        attr_accessor :thumbnail
 | 
						|
      
 | 
						|
        # The time when the asset was last modified. For published assets, whose
 | 
						|
        # contents are immutable, the update time changes only when metadata
 | 
						|
        # properties, such as visibility, are updated.
 | 
						|
        # Corresponds to the JSON property `updateTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :update_time
 | 
						|
      
 | 
						|
        # The visibility of the asset and who can access it.
 | 
						|
        # Corresponds to the JSON property `visibility`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :visibility
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @author_name = args[:author_name] if args.key?(:author_name)
 | 
						|
          @create_time = args[:create_time] if args.key?(:create_time)
 | 
						|
          @description = args[:description] if args.key?(:description)
 | 
						|
          @display_name = args[:display_name] if args.key?(:display_name)
 | 
						|
          @formats = args[:formats] if args.key?(:formats)
 | 
						|
          @is_curated = args[:is_curated] if args.key?(:is_curated)
 | 
						|
          @license = args[:license] if args.key?(:license)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
          @presentation_params = args[:presentation_params] if args.key?(:presentation_params)
 | 
						|
          @thumbnail = args[:thumbnail] if args.key?(:thumbnail)
 | 
						|
          @update_time = args[:update_time] if args.key?(:update_time)
 | 
						|
          @visibility = args[:visibility] if args.key?(:visibility)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Represents a file in Poly, which can be a root,
 | 
						|
      # resource, or thumbnail file.
 | 
						|
      class File
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The MIME content-type, such as `image/png`.
 | 
						|
        # For more information, see
 | 
						|
        # [MIME types](//developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/
 | 
						|
        # MIME_types).
 | 
						|
        # Corresponds to the JSON property `contentType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :content_type
 | 
						|
      
 | 
						|
        # The path of the resource file relative to the root file.
 | 
						|
        # For root or thumbnail files, this is just the filename.
 | 
						|
        # Corresponds to the JSON property `relativePath`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :relative_path
 | 
						|
      
 | 
						|
        # The URL where the file data can be retrieved.
 | 
						|
        # Corresponds to the JSON property `url`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :url
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @content_type = args[:content_type] if args.key?(:content_type)
 | 
						|
          @relative_path = args[:relative_path] if args.key?(:relative_path)
 | 
						|
          @url = args[:url] if args.key?(:url)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The same asset can be represented in different formats, for example,
 | 
						|
      # a [WaveFront .obj](//en.wikipedia.org/wiki/Wavefront_.obj_file) file with its
 | 
						|
      # corresponding .mtl file or a [Khronos glTF](//www.khronos.org/gltf) file
 | 
						|
      # with its corresponding .glb binary data. A format refers to a specific
 | 
						|
      # representation of an asset and contains all information needed to
 | 
						|
      # retrieve and describe this representation.
 | 
						|
      class Format
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Information on the complexity of this Format.
 | 
						|
        # Corresponds to the JSON property `formatComplexity`
 | 
						|
        # @return [Google::Apis::PolyV1::FormatComplexity]
 | 
						|
        attr_accessor :format_complexity
 | 
						|
      
 | 
						|
        # A short string that identifies the format type of this representation.
 | 
						|
        # Possible values are: `FBX`, `GLTF`, `GLTF2`, `OBJ`, and `TILT`.
 | 
						|
        # Corresponds to the JSON property `formatType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :format_type
 | 
						|
      
 | 
						|
        # A list of dependencies of the root element. May include, but is not
 | 
						|
        # limited to, materials, textures, and shader programs.
 | 
						|
        # Corresponds to the JSON property `resources`
 | 
						|
        # @return [Array<Google::Apis::PolyV1::File>]
 | 
						|
        attr_accessor :resources
 | 
						|
      
 | 
						|
        # Represents a file in Poly, which can be a root,
 | 
						|
        # resource, or thumbnail file.
 | 
						|
        # Corresponds to the JSON property `root`
 | 
						|
        # @return [Google::Apis::PolyV1::File]
 | 
						|
        attr_accessor :root
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @format_complexity = args[:format_complexity] if args.key?(:format_complexity)
 | 
						|
          @format_type = args[:format_type] if args.key?(:format_type)
 | 
						|
          @resources = args[:resources] if args.key?(:resources)
 | 
						|
          @root = args[:root] if args.key?(:root)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Information on the complexity of this Format.
 | 
						|
      class FormatComplexity
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A non-negative integer that represents the level of detail (LOD) of this
 | 
						|
        # format relative to other formats of the same asset with the same
 | 
						|
        # format_type.
 | 
						|
        # This hint allows you to sort formats from the most-detailed (0) to
 | 
						|
        # least-detailed (integers greater than 0).
 | 
						|
        # Corresponds to the JSON property `lodHint`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :lod_hint
 | 
						|
      
 | 
						|
        # The estimated number of triangles.
 | 
						|
        # Corresponds to the JSON property `triangleCount`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :triangle_count
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @lod_hint = args[:lod_hint] if args.key?(:lod_hint)
 | 
						|
          @triangle_count = args[:triangle_count] if args.key?(:triangle_count)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A response message from a request to list.
 | 
						|
      class ListAssetsResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A list of assets that match the criteria specified in the request.
 | 
						|
        # Corresponds to the JSON property `assets`
 | 
						|
        # @return [Array<Google::Apis::PolyV1::Asset>]
 | 
						|
        attr_accessor :assets
 | 
						|
      
 | 
						|
        # The continuation token for retrieving the next page. If empty,
 | 
						|
        # indicates that there are no more pages. To get the next page, submit the
 | 
						|
        # same request specifying this value as the
 | 
						|
        # page_token.
 | 
						|
        # Corresponds to the JSON property `nextPageToken`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :next_page_token
 | 
						|
      
 | 
						|
        # The total number of assets in the list, without pagination.
 | 
						|
        # Corresponds to the JSON property `totalSize`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :total_size
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @assets = args[:assets] if args.key?(:assets)
 | 
						|
          @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
 | 
						|
          @total_size = args[:total_size] if args.key?(:total_size)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A response message from a request to list.
 | 
						|
      class ListLikedAssetsResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A list of assets that match the criteria specified in the request.
 | 
						|
        # Corresponds to the JSON property `assets`
 | 
						|
        # @return [Array<Google::Apis::PolyV1::Asset>]
 | 
						|
        attr_accessor :assets
 | 
						|
      
 | 
						|
        # The continuation token for retrieving the next page. If empty,
 | 
						|
        # indicates that there are no more pages. To get the next page, submit the
 | 
						|
        # same request specifying this value as the
 | 
						|
        # page_token.
 | 
						|
        # Corresponds to the JSON property `nextPageToken`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :next_page_token
 | 
						|
      
 | 
						|
        # The total number of assets in the list, without pagination.
 | 
						|
        # Corresponds to the JSON property `totalSize`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :total_size
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @assets = args[:assets] if args.key?(:assets)
 | 
						|
          @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
 | 
						|
          @total_size = args[:total_size] if args.key?(:total_size)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A response message from a request to list.
 | 
						|
      class ListUserAssetsResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The continuation token for retrieving the next page. If empty,
 | 
						|
        # indicates that there are no more pages. To get the next page, submit the
 | 
						|
        # same request specifying this value as the
 | 
						|
        # page_token.
 | 
						|
        # Corresponds to the JSON property `nextPageToken`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :next_page_token
 | 
						|
      
 | 
						|
        # The total number of assets in the list, without pagination.
 | 
						|
        # Corresponds to the JSON property `totalSize`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :total_size
 | 
						|
      
 | 
						|
        # A list of UserAssets matching the request.
 | 
						|
        # Corresponds to the JSON property `userAssets`
 | 
						|
        # @return [Array<Google::Apis::PolyV1::UserAsset>]
 | 
						|
        attr_accessor :user_assets
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
 | 
						|
          @total_size = args[:total_size] if args.key?(:total_size)
 | 
						|
          @user_assets = args[:user_assets] if args.key?(:user_assets)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Hints for displaying the asset, based on information available when the asset
 | 
						|
      # was uploaded.
 | 
						|
      class PresentationParams
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The materials' diffuse/albedo color. This does not apply to vertex colors
 | 
						|
        # or texture maps.
 | 
						|
        # Corresponds to the JSON property `colorSpace`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :color_space
 | 
						|
      
 | 
						|
        # A [Quaternion](//en.wikipedia.org/wiki/Quaternion). Please note: if in the
 | 
						|
        # response you see "w: 1" and nothing else this is the default value of
 | 
						|
        # [0, 0, 0, 1] where x,y, and z are 0.
 | 
						|
        # Corresponds to the JSON property `orientingRotation`
 | 
						|
        # @return [Google::Apis::PolyV1::Quaternion]
 | 
						|
        attr_accessor :orienting_rotation
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @color_space = args[:color_space] if args.key?(:color_space)
 | 
						|
          @orienting_rotation = args[:orienting_rotation] if args.key?(:orienting_rotation)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A [Quaternion](//en.wikipedia.org/wiki/Quaternion). Please note: if in the
 | 
						|
      # response you see "w: 1" and nothing else this is the default value of
 | 
						|
      # [0, 0, 0, 1] where x,y, and z are 0.
 | 
						|
      class Quaternion
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The scalar component.
 | 
						|
        # Corresponds to the JSON property `w`
 | 
						|
        # @return [Float]
 | 
						|
        attr_accessor :w
 | 
						|
      
 | 
						|
        # The x component.
 | 
						|
        # Corresponds to the JSON property `x`
 | 
						|
        # @return [Float]
 | 
						|
        attr_accessor :x
 | 
						|
      
 | 
						|
        # The y component.
 | 
						|
        # Corresponds to the JSON property `y`
 | 
						|
        # @return [Float]
 | 
						|
        attr_accessor :y
 | 
						|
      
 | 
						|
        # The z component.
 | 
						|
        # Corresponds to the JSON property `z`
 | 
						|
        # @return [Float]
 | 
						|
        attr_accessor :z
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @w = args[:w] if args.key?(:w)
 | 
						|
          @x = args[:x] if args.key?(:x)
 | 
						|
          @y = args[:y] if args.key?(:y)
 | 
						|
          @z = args[:z] if args.key?(:z)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Data about the user's asset.
 | 
						|
      class UserAsset
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Represents and describes an asset in the Poly library. An asset is a 3D model
 | 
						|
        # or scene created using [Tilt Brush](//www.tiltbrush.com),
 | 
						|
        # [Blocks](//vr.google.com/blocks/), or any 3D program that produces a file
 | 
						|
        # that can be upload to Poly.
 | 
						|
        # Corresponds to the JSON property `asset`
 | 
						|
        # @return [Google::Apis::PolyV1::Asset]
 | 
						|
        attr_accessor :asset
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @asset = args[:asset] if args.key?(:asset)
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |