# 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 PlaymoviespartnerV1 # An Avail describes the Availability Window of a specific Edit in a given # country, which means the period Google is allowed to sell or rent the Edit. # Avails are exposed in EMA format Version 1.6b (available at # http://www.movielabs.com/md/avails/) # Studios can see the Avails for the Titles they own. # Post-production houses cannot see any Avails. class Avail include Google::Apis::Core::Hashable # Other identifier referring to the Edit, as defined by partner. # Example: "GOOGLER_2006" # Corresponds to the JSON property `altId` # @return [String] attr_accessor :alt_id # ID internally generated by Google to uniquely identify an Avail. # Not part of EMA Specs. # Corresponds to the JSON property `availId` # @return [String] attr_accessor :avail_id # Communicating an exempt category as defined by FCC regulations. # It is not required for non-US Avails. # Example: "1" # Corresponds to the JSON property `captionExemption` # @return [String] attr_accessor :caption_exemption # Communicating if caption file will be delivered. # Corresponds to the JSON property `captionIncluded` # @return [Boolean] attr_accessor :caption_included alias_method :caption_included?, :caption_included # Title Identifier. This should be the Title Level EIDR. # Example: "10.5240/1489-49A2-3956-4B2D-FE16-5". # Corresponds to the JSON property `contentId` # @return [String] attr_accessor :content_id # The name of the studio that owns the Edit referred in the Avail. # This is the equivalent of `studio_name` in other resources, but it follows # the EMA nomenclature. # Example: "Google Films". # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Manifestation Identifier. This should be the Manifestation # Level EIDR. # Example: "10.2340/1489-49A2-3956-4B2D-FE16-7" # Corresponds to the JSON property `encodeId` # @return [String] attr_accessor :encode_id # End of term in YYYY-MM-DD format in the timezone of the country # of the Avail. # "Open" if no end date is available. # Example: "2019-02-17" # Corresponds to the JSON property `end` # @return [String] attr_accessor :end # Other identifier referring to the episode, as defined by partner. # Only available on TV avails. # Example: "rs_googlers_s1_3". # Corresponds to the JSON property `episodeAltId` # @return [String] attr_accessor :episode_alt_id # The number assigned to the episode within a season. # Only available on TV Avails. # Example: "3". # Corresponds to the JSON property `episodeNumber` # @return [String] attr_accessor :episode_number # OPTIONAL.TV Only. Title used by involved parties to refer to this episode. # Only available on TV Avails. # Example: "Coding at Google". # Corresponds to the JSON property `episodeTitleInternalAlias` # @return [String] attr_accessor :episode_title_internal_alias # Indicates the format profile covered by the transaction. # Corresponds to the JSON property `formatProfile` # @return [String] attr_accessor :format_profile # Type of transaction. # Corresponds to the JSON property `licenseType` # @return [String] attr_accessor :license_type # Name of the post-production houses that manage the Avail. # Not part of EMA Specs. # Corresponds to the JSON property `pphNames` # @return [Array] attr_accessor :pph_names # Type of pricing that should be applied to this Avail # based on how the partner classify them. # Example: "Tier", "WSP", "SRP", or "Category". # Corresponds to the JSON property `priceType` # @return [String] attr_accessor :price_type # Value to be applied to the pricing type. # Example: "4" or "2.99" # Corresponds to the JSON property `priceValue` # @return [String] attr_accessor :price_value # Edit Identifier. This should be the Edit Level EIDR. # Example: "10.2340/1489-49A2-3956-4B2D-FE16-6" # Corresponds to the JSON property `productId` # @return [String] attr_accessor :product_id # Value representing the rating reason. # Rating reasons should be formatted as per # [EMA ratings spec](http://www.movielabs.com/md/ratings/) # and comma-separated for inclusion of multiple reasons. # Example: "L, S, V" # Corresponds to the JSON property `ratingReason` # @return [String] attr_accessor :rating_reason # Rating system applied to the version of title within territory # of Avail. # Rating systems should be formatted as per # [EMA ratings spec](http://www.movielabs.com/md/ratings/) # Example: "MPAA" # Corresponds to the JSON property `ratingSystem` # @return [String] attr_accessor :rating_system # Value representing the rating. # Ratings should be formatted as per http://www.movielabs.com/md/ratings/ # Example: "PG" # Corresponds to the JSON property `ratingValue` # @return [String] attr_accessor :rating_value # Release date of the Title in earliest released territory. # Typically it is just the year, but it is free-form as per EMA spec. # Examples: "1979", "Oct 2014" # Corresponds to the JSON property `releaseDate` # @return [String] attr_accessor :release_date # Other identifier referring to the season, as defined by partner. # Only available on TV avails. # Example: "rs_googlers_s1". # Corresponds to the JSON property `seasonAltId` # @return [String] attr_accessor :season_alt_id # The number assigned to the season within a series. # Only available on TV Avails. # Example: "1". # Corresponds to the JSON property `seasonNumber` # @return [String] attr_accessor :season_number # Title used by involved parties to refer to this season. # Only available on TV Avails. # Example: "Googlers, The". # Corresponds to the JSON property `seasonTitleInternalAlias` # @return [String] attr_accessor :season_title_internal_alias # Other identifier referring to the series, as defined by partner. # Only available on TV avails. # Example: "rs_googlers". # Corresponds to the JSON property `seriesAltId` # @return [String] attr_accessor :series_alt_id # Title used by involved parties to refer to this series. # Only available on TV Avails. # Example: "Googlers, The". # Corresponds to the JSON property `seriesTitleInternalAlias` # @return [String] attr_accessor :series_title_internal_alias # Start of term in YYYY-MM-DD format in the timezone of the # country of the Avail. # Example: "2013-05-14". # Corresponds to the JSON property `start` # @return [String] attr_accessor :start # Spoken language of the intended audience. # Language shall be encoded in accordance with RFC 5646. # Example: "fr". # Corresponds to the JSON property `storeLanguage` # @return [String] attr_accessor :store_language # First date an Edit could be publically announced as becoming # available at a specific future date in territory of Avail. # *Not* the Avail start date or pre-order start date. # Format is YYYY-MM-DD. # Only available for pre-orders. # Example: "2012-12-10" # Corresponds to the JSON property `suppressionLiftDate` # @return [String] attr_accessor :suppression_lift_date # ISO 3166-1 alpha-2 country code for the country or territory # of this Avail. # For Avails, we use Territory in lieu of Country to comply with # EMA specifications. # But please note that Territory and Country identify the same thing. # Example: "US". # Corresponds to the JSON property `territory` # @return [String] attr_accessor :territory # Title used by involved parties to refer to this content. # Example: "Googlers, The". # Only available on Movie Avails. # Corresponds to the JSON property `titleInternalAlias` # @return [String] attr_accessor :title_internal_alias # Google-generated ID identifying the video linked to this Avail, once # delivered. # Not part of EMA Specs. # Example: 'gtry456_xc' # Corresponds to the JSON property `videoId` # @return [String] attr_accessor :video_id # Work type as enumerated in EMA. # Corresponds to the JSON property `workType` # @return [String] attr_accessor :work_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @alt_id = args[:alt_id] if args.key?(:alt_id) @avail_id = args[:avail_id] if args.key?(:avail_id) @caption_exemption = args[:caption_exemption] if args.key?(:caption_exemption) @caption_included = args[:caption_included] if args.key?(:caption_included) @content_id = args[:content_id] if args.key?(:content_id) @display_name = args[:display_name] if args.key?(:display_name) @encode_id = args[:encode_id] if args.key?(:encode_id) @end = args[:end] if args.key?(:end) @episode_alt_id = args[:episode_alt_id] if args.key?(:episode_alt_id) @episode_number = args[:episode_number] if args.key?(:episode_number) @episode_title_internal_alias = args[:episode_title_internal_alias] if args.key?(:episode_title_internal_alias) @format_profile = args[:format_profile] if args.key?(:format_profile) @license_type = args[:license_type] if args.key?(:license_type) @pph_names = args[:pph_names] if args.key?(:pph_names) @price_type = args[:price_type] if args.key?(:price_type) @price_value = args[:price_value] if args.key?(:price_value) @product_id = args[:product_id] if args.key?(:product_id) @rating_reason = args[:rating_reason] if args.key?(:rating_reason) @rating_system = args[:rating_system] if args.key?(:rating_system) @rating_value = args[:rating_value] if args.key?(:rating_value) @release_date = args[:release_date] if args.key?(:release_date) @season_alt_id = args[:season_alt_id] if args.key?(:season_alt_id) @season_number = args[:season_number] if args.key?(:season_number) @season_title_internal_alias = args[:season_title_internal_alias] if args.key?(:season_title_internal_alias) @series_alt_id = args[:series_alt_id] if args.key?(:series_alt_id) @series_title_internal_alias = args[:series_title_internal_alias] if args.key?(:series_title_internal_alias) @start = args[:start] if args.key?(:start) @store_language = args[:store_language] if args.key?(:store_language) @suppression_lift_date = args[:suppression_lift_date] if args.key?(:suppression_lift_date) @territory = args[:territory] if args.key?(:territory) @title_internal_alias = args[:title_internal_alias] if args.key?(:title_internal_alias) @video_id = args[:video_id] if args.key?(:video_id) @work_type = args[:work_type] if args.key?(:work_type) end end # Response to the 'ListAvails' method. class ListAvailsResponse include Google::Apis::Core::Hashable # List of Avails that match the request criteria. # Corresponds to the JSON property `avails` # @return [Array] attr_accessor :avails # See _List methods rules_ for info about this field. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # See _List methods rules_ for more information about this field. # 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) @avails = args[:avails] if args.key?(:avails) @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 # Response to the 'ListOrders' method. class ListOrdersResponse include Google::Apis::Core::Hashable # See _List methods rules_ for info about this field. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # List of Orders that match the request criteria. # Corresponds to the JSON property `orders` # @return [Array] attr_accessor :orders # See _List methods rules_ for more information about this field. # 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) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @orders = args[:orders] if args.key?(:orders) @total_size = args[:total_size] if args.key?(:total_size) end end # Response to the 'ListStoreInfos' method. class ListStoreInfosResponse include Google::Apis::Core::Hashable # See 'List methods rules' for info about this field. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # List of StoreInfos that match the request criteria. # Corresponds to the JSON property `storeInfos` # @return [Array] attr_accessor :store_infos # See _List methods rules_ for more information about this field. # 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) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @store_infos = args[:store_infos] if args.key?(:store_infos) @total_size = args[:total_size] if args.key?(:total_size) end end # An Order tracks the fulfillment of an Edit when delivered using the # legacy, non-component-based delivery. # Each Order is uniquely identified by an `order_id`, which is generated # by Google. # Externally, Orders can also be identified by partners using its `custom_id` # (when provided). class Order include Google::Apis::Core::Hashable # Timestamp when the Order was approved. # Corresponds to the JSON property `approvedTime` # @return [String] attr_accessor :approved_time # YouTube Channel ID that should be used to fulfill the Order. # Example: "UCRG64darCZhb". # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # YouTube Channel Name that should be used to fulfill the Order. # Example: "Google_channel". # Corresponds to the JSON property `channelName` # @return [String] attr_accessor :channel_name # Countries where the Order is available, # using the "ISO 3166-1 alpha-2" format (example: "US"). # Corresponds to the JSON property `countries` # @return [Array] attr_accessor :countries # ID that can be used to externally identify an Order. # This ID is provided by partners when submitting the Avails. # Example: 'GOOGLER_2006' # Corresponds to the JSON property `customId` # @return [String] attr_accessor :custom_id # Timestamp of the earliest start date of the Avails # linked to this Order. # Corresponds to the JSON property `earliestAvailStartTime` # @return [String] attr_accessor :earliest_avail_start_time # Default Episode name, # usually in the language of the country of origin. # Only available for TV Edits # Example: "Googlers, The - Pilot". # Corresponds to the JSON property `episodeName` # @return [String] attr_accessor :episode_name # Legacy Order priority, as defined by Google. # Example: 'P0' # Corresponds to the JSON property `legacyPriority` # @return [String] attr_accessor :legacy_priority # Default Edit name, # usually in the language of the country of origin. # Example: "Googlers, The". # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A simpler representation of the priority. # Corresponds to the JSON property `normalizedPriority` # @return [String] attr_accessor :normalized_priority # ID internally generated by Google to uniquely identify an Order. # Example: 'abcde12_x' # Corresponds to the JSON property `orderId` # @return [String] attr_accessor :order_id # Timestamp when the Order was created. # Corresponds to the JSON property `orderedTime` # @return [String] attr_accessor :ordered_time # Name of the post-production house that manages the Edit ordered. # Corresponds to the JSON property `pphName` # @return [String] attr_accessor :pph_name # Order priority, as defined by Google. # The higher the value, the higher the priority. # Example: 90 # Corresponds to the JSON property `priority` # @return [Float] attr_accessor :priority # Timestamp when the Order was fulfilled. # Corresponds to the JSON property `receivedTime` # @return [String] attr_accessor :received_time # Field explaining why an Order has been rejected. # Example: "Trailer audio is 2ch mono, please re-deliver in stereo". # Corresponds to the JSON property `rejectionNote` # @return [String] attr_accessor :rejection_note # Default Season name, # usually in the language of the country of origin. # Only available for TV Edits # Example: "Googlers, The - A Brave New World". # Corresponds to the JSON property `seasonName` # @return [String] attr_accessor :season_name # Default Show name, # usually in the language of the country of origin. # Only available for TV Edits # Example: "Googlers, The". # Corresponds to the JSON property `showName` # @return [String] attr_accessor :show_name # High-level status of the order. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # Detailed status of the order # Corresponds to the JSON property `statusDetail` # @return [String] attr_accessor :status_detail # Name of the studio that owns the Edit ordered. # Corresponds to the JSON property `studioName` # @return [String] attr_accessor :studio_name # Type of the Edit linked to the Order. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # Google-generated ID identifying the video linked to this Order, once # delivered. # Example: 'gtry456_xc'. # Corresponds to the JSON property `videoId` # @return [String] attr_accessor :video_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @approved_time = args[:approved_time] if args.key?(:approved_time) @channel_id = args[:channel_id] if args.key?(:channel_id) @channel_name = args[:channel_name] if args.key?(:channel_name) @countries = args[:countries] if args.key?(:countries) @custom_id = args[:custom_id] if args.key?(:custom_id) @earliest_avail_start_time = args[:earliest_avail_start_time] if args.key?(:earliest_avail_start_time) @episode_name = args[:episode_name] if args.key?(:episode_name) @legacy_priority = args[:legacy_priority] if args.key?(:legacy_priority) @name = args[:name] if args.key?(:name) @normalized_priority = args[:normalized_priority] if args.key?(:normalized_priority) @order_id = args[:order_id] if args.key?(:order_id) @ordered_time = args[:ordered_time] if args.key?(:ordered_time) @pph_name = args[:pph_name] if args.key?(:pph_name) @priority = args[:priority] if args.key?(:priority) @received_time = args[:received_time] if args.key?(:received_time) @rejection_note = args[:rejection_note] if args.key?(:rejection_note) @season_name = args[:season_name] if args.key?(:season_name) @show_name = args[:show_name] if args.key?(:show_name) @status = args[:status] if args.key?(:status) @status_detail = args[:status_detail] if args.key?(:status_detail) @studio_name = args[:studio_name] if args.key?(:studio_name) @type = args[:type] if args.key?(:type) @video_id = args[:video_id] if args.key?(:video_id) end end # Information about a playable sequence (video) associated with an Edit # and available at the Google Play Store. # Internally, each StoreInfo is uniquely identified by a `video_id` # and `country`. # Externally, Title-level EIDR or Edit-level EIDR, if provided, # can also be used to identify a specific title or edit in a country. class StoreInfo include Google::Apis::Core::Hashable # Audio tracks available for this Edit. # Corresponds to the JSON property `audioTracks` # @return [Array] attr_accessor :audio_tracks # Country where Edit is available in ISO 3166-1 alpha-2 country # code. # Example: "US". # Corresponds to the JSON property `country` # @return [String] attr_accessor :country # Edit-level EIDR ID. # Example: "10.5240/1489-49A2-3956-4B2D-FE16-6". # Corresponds to the JSON property `editLevelEidr` # @return [String] attr_accessor :edit_level_eidr # The number assigned to the episode within a season. # Only available on TV Edits. # Example: "1". # Corresponds to the JSON property `episodeNumber` # @return [String] attr_accessor :episode_number # Whether the Edit has a 5.1 channel audio track. # Corresponds to the JSON property `hasAudio51` # @return [Boolean] attr_accessor :has_audio51 alias_method :has_audio51?, :has_audio51 # Whether the Edit has a EST offer. # Corresponds to the JSON property `hasEstOffer` # @return [Boolean] attr_accessor :has_est_offer alias_method :has_est_offer?, :has_est_offer # Whether the Edit has a HD offer. # Corresponds to the JSON property `hasHdOffer` # @return [Boolean] attr_accessor :has_hd_offer alias_method :has_hd_offer?, :has_hd_offer # Whether the Edit has info cards. # Corresponds to the JSON property `hasInfoCards` # @return [Boolean] attr_accessor :has_info_cards alias_method :has_info_cards?, :has_info_cards # Whether the Edit has a SD offer. # Corresponds to the JSON property `hasSdOffer` # @return [Boolean] attr_accessor :has_sd_offer alias_method :has_sd_offer?, :has_sd_offer # Whether the Edit has a VOD offer. # Corresponds to the JSON property `hasVodOffer` # @return [Boolean] attr_accessor :has_vod_offer alias_method :has_vod_offer?, :has_vod_offer # Timestamp when the Edit went live on the Store. # Corresponds to the JSON property `liveTime` # @return [String] attr_accessor :live_time # Knowledge Graph ID associated to this Edit, if available. # This ID links the Edit to its knowledge entity, externally accessible # at http://freebase.com. # In the absense of Title EIDR or Edit EIDR, this ID helps link together # multiple Edits across countries. # Example: '/m/0ffx29' # Corresponds to the JSON property `mid` # @return [String] attr_accessor :mid # Default Edit name, usually in the language of the country of # origin. # Example: "Googlers, The". # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Name of the post-production houses that manage the Edit. # Corresponds to the JSON property `pphNames` # @return [Array] attr_accessor :pph_names # Google-generated ID identifying the season linked to the Edit. # Only available for TV Edits. # Example: 'ster23ex' # Corresponds to the JSON property `seasonId` # @return [String] attr_accessor :season_id # Default Season name, usually in the language of the country of # origin. # Only available for TV Edits # Example: "Googlers, The - A Brave New World". # Corresponds to the JSON property `seasonName` # @return [String] attr_accessor :season_name # The number assigned to the season within a show. # Only available on TV Edits. # Example: "1". # Corresponds to the JSON property `seasonNumber` # @return [String] attr_accessor :season_number # Google-generated ID identifying the show linked to the Edit. # Only available for TV Edits. # Example: 'et2hsue_x' # Corresponds to the JSON property `showId` # @return [String] attr_accessor :show_id # Default Show name, usually in the language of the country of # origin. # Only available for TV Edits # Example: "Googlers, The". # Corresponds to the JSON property `showName` # @return [String] attr_accessor :show_name # Name of the studio that owns the Edit ordered. # Corresponds to the JSON property `studioName` # @return [String] attr_accessor :studio_name # Subtitles available for this Edit. # Corresponds to the JSON property `subtitles` # @return [Array] attr_accessor :subtitles # Title-level EIDR ID. # Example: "10.5240/1489-49A2-3956-4B2D-FE16-5". # Corresponds to the JSON property `titleLevelEidr` # @return [String] attr_accessor :title_level_eidr # Google-generated ID identifying the trailer linked to the Edit. # Example: 'bhd_4e_cx' # Corresponds to the JSON property `trailerId` # @return [String] attr_accessor :trailer_id # Edit type, like Movie, Episode or Season. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # Google-generated ID identifying the video linked to the Edit. # Example: 'gtry456_xc' # Corresponds to the JSON property `videoId` # @return [String] attr_accessor :video_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @audio_tracks = args[:audio_tracks] if args.key?(:audio_tracks) @country = args[:country] if args.key?(:country) @edit_level_eidr = args[:edit_level_eidr] if args.key?(:edit_level_eidr) @episode_number = args[:episode_number] if args.key?(:episode_number) @has_audio51 = args[:has_audio51] if args.key?(:has_audio51) @has_est_offer = args[:has_est_offer] if args.key?(:has_est_offer) @has_hd_offer = args[:has_hd_offer] if args.key?(:has_hd_offer) @has_info_cards = args[:has_info_cards] if args.key?(:has_info_cards) @has_sd_offer = args[:has_sd_offer] if args.key?(:has_sd_offer) @has_vod_offer = args[:has_vod_offer] if args.key?(:has_vod_offer) @live_time = args[:live_time] if args.key?(:live_time) @mid = args[:mid] if args.key?(:mid) @name = args[:name] if args.key?(:name) @pph_names = args[:pph_names] if args.key?(:pph_names) @season_id = args[:season_id] if args.key?(:season_id) @season_name = args[:season_name] if args.key?(:season_name) @season_number = args[:season_number] if args.key?(:season_number) @show_id = args[:show_id] if args.key?(:show_id) @show_name = args[:show_name] if args.key?(:show_name) @studio_name = args[:studio_name] if args.key?(:studio_name) @subtitles = args[:subtitles] if args.key?(:subtitles) @title_level_eidr = args[:title_level_eidr] if args.key?(:title_level_eidr) @trailer_id = args[:trailer_id] if args.key?(:trailer_id) @type = args[:type] if args.key?(:type) @video_id = args[:video_id] if args.key?(:video_id) end end end end end