google-api-ruby-client/generated/google-apis-localservices_v1/lib/google/apis/localservices_v1/classes.rb

482 lines
20 KiB
Ruby

# Copyright 2020 Google LLC
#
# 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 LocalservicesV1
# An Account Report of a GLS account identified by their account id containing
# aggregate data gathered from a particular date range. Next ID: 18
class GoogleAdsHomeservicesLocalservicesV1AccountReport
include Google::Apis::Core::Hashable
# Unique identifier of the GLS account.
# Corresponds to the JSON property `accountId`
# @return [Fixnum]
attr_accessor :account_id
# Conatiner for aggregator specific information if lead is for an aggregator GLS
# account.
# Corresponds to the JSON property `aggregatorInfo`
# @return [Google::Apis::LocalservicesV1::GoogleAdsHomeservicesLocalservicesV1AggregatorInfo]
attr_accessor :aggregator_info
# Average review rating score from 1-5 stars.
# Corresponds to the JSON property `averageFiveStarRating`
# @return [Float]
attr_accessor :average_five_star_rating
# Average weekly budget in the currency code of the account.
# Corresponds to the JSON property `averageWeeklyBudget`
# @return [Float]
attr_accessor :average_weekly_budget
# Business name of the account.
# Corresponds to the JSON property `businessName`
# @return [String]
attr_accessor :business_name
# Currency code of the account.
# Corresponds to the JSON property `currencyCode`
# @return [String]
attr_accessor :currency_code
# Number of charged leads the account received in current specified period.
# Corresponds to the JSON property `currentPeriodChargedLeads`
# @return [Fixnum]
attr_accessor :current_period_charged_leads
# Number of connected phone calls (duration over 30s) in current specified
# period.
# Corresponds to the JSON property `currentPeriodConnectedPhoneCalls`
# @return [Fixnum]
attr_accessor :current_period_connected_phone_calls
# Number of phone calls in current specified period, including both connected
# and unconnected calls.
# Corresponds to the JSON property `currentPeriodPhoneCalls`
# @return [Fixnum]
attr_accessor :current_period_phone_calls
# Total cost of the account in current specified period in the account's
# specified currency.
# Corresponds to the JSON property `currentPeriodTotalCost`
# @return [Float]
attr_accessor :current_period_total_cost
# Number of impressions that customers have had in the past 2 days.
# Corresponds to the JSON property `impressionsLastTwoDays`
# @return [Fixnum]
attr_accessor :impressions_last_two_days
# Phone lead responsiveness of the account for the past 90 days from current
# date. This is computed by taking the total number of connected calls from
# charged phone leads and dividing by the total number of calls received.
# Corresponds to the JSON property `phoneLeadResponsiveness`
# @return [Float]
attr_accessor :phone_lead_responsiveness
# Number of charged leads the account received in previous specified period.
# Corresponds to the JSON property `previousPeriodChargedLeads`
# @return [Fixnum]
attr_accessor :previous_period_charged_leads
# Number of connected phone calls (duration over 30s) in previous specified
# period.
# Corresponds to the JSON property `previousPeriodConnectedPhoneCalls`
# @return [Fixnum]
attr_accessor :previous_period_connected_phone_calls
# Number of phone calls in previous specified period, including both connected
# and unconnected calls.
# Corresponds to the JSON property `previousPeriodPhoneCalls`
# @return [Fixnum]
attr_accessor :previous_period_phone_calls
# Total cost of the account in previous specified period in the account's
# specified currency.
# Corresponds to the JSON property `previousPeriodTotalCost`
# @return [Float]
attr_accessor :previous_period_total_cost
# Total number of reviews the account has up to current date.
# Corresponds to the JSON property `totalReview`
# @return [Fixnum]
attr_accessor :total_review
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@account_id = args[:account_id] if args.key?(:account_id)
@aggregator_info = args[:aggregator_info] if args.key?(:aggregator_info)
@average_five_star_rating = args[:average_five_star_rating] if args.key?(:average_five_star_rating)
@average_weekly_budget = args[:average_weekly_budget] if args.key?(:average_weekly_budget)
@business_name = args[:business_name] if args.key?(:business_name)
@currency_code = args[:currency_code] if args.key?(:currency_code)
@current_period_charged_leads = args[:current_period_charged_leads] if args.key?(:current_period_charged_leads)
@current_period_connected_phone_calls = args[:current_period_connected_phone_calls] if args.key?(:current_period_connected_phone_calls)
@current_period_phone_calls = args[:current_period_phone_calls] if args.key?(:current_period_phone_calls)
@current_period_total_cost = args[:current_period_total_cost] if args.key?(:current_period_total_cost)
@impressions_last_two_days = args[:impressions_last_two_days] if args.key?(:impressions_last_two_days)
@phone_lead_responsiveness = args[:phone_lead_responsiveness] if args.key?(:phone_lead_responsiveness)
@previous_period_charged_leads = args[:previous_period_charged_leads] if args.key?(:previous_period_charged_leads)
@previous_period_connected_phone_calls = args[:previous_period_connected_phone_calls] if args.key?(:previous_period_connected_phone_calls)
@previous_period_phone_calls = args[:previous_period_phone_calls] if args.key?(:previous_period_phone_calls)
@previous_period_total_cost = args[:previous_period_total_cost] if args.key?(:previous_period_total_cost)
@total_review = args[:total_review] if args.key?(:total_review)
end
end
# Conatiner for aggregator specific information if lead is for an aggregator GLS
# account.
class GoogleAdsHomeservicesLocalservicesV1AggregatorInfo
include Google::Apis::Core::Hashable
# Provider id (listed in aggregator system) which maps to a account id in GLS
# system.
# Corresponds to the JSON property `aggregatorProviderId`
# @return [String]
attr_accessor :aggregator_provider_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@aggregator_provider_id = args[:aggregator_provider_id] if args.key?(:aggregator_provider_id)
end
end
# Container for booking lead specific information.
class GoogleAdsHomeservicesLocalservicesV1BookingLead
include Google::Apis::Core::Hashable
# Timestamp of when service is provided by advertiser.
# Corresponds to the JSON property `bookingAppointmentTimestamp`
# @return [String]
attr_accessor :booking_appointment_timestamp
# Consumer email associated with the booking lead.
# Corresponds to the JSON property `consumerEmail`
# @return [String]
attr_accessor :consumer_email
# Consumer phone number associated with the booking lead.
# Corresponds to the JSON property `consumerPhoneNumber`
# @return [String]
attr_accessor :consumer_phone_number
# Name of the customer who created the lead.
# Corresponds to the JSON property `customerName`
# @return [String]
attr_accessor :customer_name
# The job type of the specified lead.
# Corresponds to the JSON property `jobType`
# @return [String]
attr_accessor :job_type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@booking_appointment_timestamp = args[:booking_appointment_timestamp] if args.key?(:booking_appointment_timestamp)
@consumer_email = args[:consumer_email] if args.key?(:consumer_email)
@consumer_phone_number = args[:consumer_phone_number] if args.key?(:consumer_phone_number)
@customer_name = args[:customer_name] if args.key?(:customer_name)
@job_type = args[:job_type] if args.key?(:job_type)
end
end
# A Detailed Lead Report of a lead identified by their lead id and contains
# consumer, account, monetization, and lead data.
class GoogleAdsHomeservicesLocalservicesV1DetailedLeadReport
include Google::Apis::Core::Hashable
# Identifies account that received the lead.
# Corresponds to the JSON property `accountId`
# @return [Fixnum]
attr_accessor :account_id
# Conatiner for aggregator specific information if lead is for an aggregator GLS
# account.
# Corresponds to the JSON property `aggregatorInfo`
# @return [Google::Apis::LocalservicesV1::GoogleAdsHomeservicesLocalservicesV1AggregatorInfo]
attr_accessor :aggregator_info
# Container for booking lead specific information.
# Corresponds to the JSON property `bookingLead`
# @return [Google::Apis::LocalservicesV1::GoogleAdsHomeservicesLocalservicesV1BookingLead]
attr_accessor :booking_lead
# Business name associated to the account.
# Corresponds to the JSON property `businessName`
# @return [String]
attr_accessor :business_name
# Whether the lead has been charged.
# Corresponds to the JSON property `chargeStatus`
# @return [String]
attr_accessor :charge_status
# Currency code.
# Corresponds to the JSON property `currencyCode`
# @return [String]
attr_accessor :currency_code
# Dispute status related to the lead.
# Corresponds to the JSON property `disputeStatus`
# @return [String]
attr_accessor :dispute_status
# Location of the associated account's home city.
# Corresponds to the JSON property `geo`
# @return [String]
attr_accessor :geo
# Lead category (e.g. hvac, plumber)
# Corresponds to the JSON property `leadCategory`
# @return [String]
attr_accessor :lead_category
# Timestamp of when the lead was created.
# Corresponds to the JSON property `leadCreationTimestamp`
# @return [String]
attr_accessor :lead_creation_timestamp
# Unique identifier of a Detailed Lead Report.
# Corresponds to the JSON property `leadId`
# @return [Fixnum]
attr_accessor :lead_id
# Price of the lead (available only after it has been charged).
# Corresponds to the JSON property `leadPrice`
# @return [Float]
attr_accessor :lead_price
# Lead type.
# Corresponds to the JSON property `leadType`
# @return [String]
attr_accessor :lead_type
# Container for message lead specific information.
# Corresponds to the JSON property `messageLead`
# @return [Google::Apis::LocalservicesV1::GoogleAdsHomeservicesLocalservicesV1MessageLead]
attr_accessor :message_lead
# Container for phone lead specific information.
# Corresponds to the JSON property `phoneLead`
# @return [Google::Apis::LocalservicesV1::GoogleAdsHomeservicesLocalservicesV1PhoneLead]
attr_accessor :phone_lead
# Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/
# time-zones).
# Corresponds to the JSON property `timezone`
# @return [Google::Apis::LocalservicesV1::GoogleTypeTimeZone]
attr_accessor :timezone
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@account_id = args[:account_id] if args.key?(:account_id)
@aggregator_info = args[:aggregator_info] if args.key?(:aggregator_info)
@booking_lead = args[:booking_lead] if args.key?(:booking_lead)
@business_name = args[:business_name] if args.key?(:business_name)
@charge_status = args[:charge_status] if args.key?(:charge_status)
@currency_code = args[:currency_code] if args.key?(:currency_code)
@dispute_status = args[:dispute_status] if args.key?(:dispute_status)
@geo = args[:geo] if args.key?(:geo)
@lead_category = args[:lead_category] if args.key?(:lead_category)
@lead_creation_timestamp = args[:lead_creation_timestamp] if args.key?(:lead_creation_timestamp)
@lead_id = args[:lead_id] if args.key?(:lead_id)
@lead_price = args[:lead_price] if args.key?(:lead_price)
@lead_type = args[:lead_type] if args.key?(:lead_type)
@message_lead = args[:message_lead] if args.key?(:message_lead)
@phone_lead = args[:phone_lead] if args.key?(:phone_lead)
@timezone = args[:timezone] if args.key?(:timezone)
end
end
# Container for message lead specific information.
class GoogleAdsHomeservicesLocalservicesV1MessageLead
include Google::Apis::Core::Hashable
# Consumer phone number associated with the message lead.
# Corresponds to the JSON property `consumerPhoneNumber`
# @return [String]
attr_accessor :consumer_phone_number
# Name of the customer who created the lead.
# Corresponds to the JSON property `customerName`
# @return [String]
attr_accessor :customer_name
# The job type of the specified lead.
# Corresponds to the JSON property `jobType`
# @return [String]
attr_accessor :job_type
# The postal code of the customer who created the lead.
# Corresponds to the JSON property `postalCode`
# @return [String]
attr_accessor :postal_code
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@consumer_phone_number = args[:consumer_phone_number] if args.key?(:consumer_phone_number)
@customer_name = args[:customer_name] if args.key?(:customer_name)
@job_type = args[:job_type] if args.key?(:job_type)
@postal_code = args[:postal_code] if args.key?(:postal_code)
end
end
# Container for phone lead specific information.
class GoogleAdsHomeservicesLocalservicesV1PhoneLead
include Google::Apis::Core::Hashable
# Timestamp of the phone call which resulted in a charged phone lead.
# Corresponds to the JSON property `chargedCallTimestamp`
# @return [String]
attr_accessor :charged_call_timestamp
# Duration of the charged phone call in seconds.
# Corresponds to the JSON property `chargedConnectedCallDurationSeconds`
# @return [String]
attr_accessor :charged_connected_call_duration_seconds
# Consumer phone number associated with the phone lead.
# Corresponds to the JSON property `consumerPhoneNumber`
# @return [String]
attr_accessor :consumer_phone_number
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@charged_call_timestamp = args[:charged_call_timestamp] if args.key?(:charged_call_timestamp)
@charged_connected_call_duration_seconds = args[:charged_connected_call_duration_seconds] if args.key?(:charged_connected_call_duration_seconds)
@consumer_phone_number = args[:consumer_phone_number] if args.key?(:consumer_phone_number)
end
end
# A page of the response received from the SearchAccountReports method. A
# paginated response where more pages are available has `next_page_token` set.
# This token can be used in a subsequent request to retrieve the next request
# page.
class GoogleAdsHomeservicesLocalservicesV1SearchAccountReportsResponse
include Google::Apis::Core::Hashable
# List of account reports which maps 1:1 to a particular linked GLS account.
# Corresponds to the JSON property `accountReports`
# @return [Array<Google::Apis::LocalservicesV1::GoogleAdsHomeservicesLocalservicesV1AccountReport>]
attr_accessor :account_reports
# Pagination token to retrieve the next page of results. When `next_page_token`
# is not filled in, there is no next page and the list returned is the last page
# in the result set.
# 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)
@account_reports = args[:account_reports] if args.key?(:account_reports)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
end
end
# A page of the response received from the SearchDetailedLeadReports method. A
# paginated response where more pages are available has `next_page_token` set.
# This token can be used in a subsequent request to retrieve the next request
# page.
class GoogleAdsHomeservicesLocalservicesV1SearchDetailedLeadReportsResponse
include Google::Apis::Core::Hashable
# List of detailed lead reports uniquely identified by external lead id.
# Corresponds to the JSON property `detailedLeadReports`
# @return [Array<Google::Apis::LocalservicesV1::GoogleAdsHomeservicesLocalservicesV1DetailedLeadReport>]
attr_accessor :detailed_lead_reports
# Pagination token to retrieve the next page of results. When `next_page_token`
# is not filled in, there is no next page and the list returned is the last page
# in the result set.
# 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)
@detailed_lead_reports = args[:detailed_lead_reports] if args.key?(:detailed_lead_reports)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
end
end
# Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/
# time-zones).
class GoogleTypeTimeZone
include Google::Apis::Core::Hashable
# IANA Time Zone Database time zone, e.g. "America/New_York".
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Optional. IANA Time Zone Database version number, e.g. "2019a".
# Corresponds to the JSON property `version`
# @return [String]
attr_accessor :version
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@id = args[:id] if args.key?(:id)
@version = args[:version] if args.key?(:version)
end
end
end
end
end