332 lines
16 KiB
Ruby
332 lines
16 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 FcmdataV1beta1
|
|
|
|
# Message delivery data for a given date, app, and analytics label combination.
|
|
class GoogleFirebaseFcmDataV1beta1AndroidDeliveryData
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The analytics label associated with the messages sent. All messages sent
|
|
# without an analytics label will be grouped together in a single entry.
|
|
# Corresponds to the JSON property `analyticsLabel`
|
|
# @return [String]
|
|
attr_accessor :analytics_label
|
|
|
|
# The app ID to which the messages were sent.
|
|
# Corresponds to the JSON property `appId`
|
|
# @return [String]
|
|
attr_accessor :app_id
|
|
|
|
# Data detailing messaging delivery
|
|
# Corresponds to the JSON property `data`
|
|
# @return [Google::Apis::FcmdataV1beta1::GoogleFirebaseFcmDataV1beta1Data]
|
|
attr_accessor :data
|
|
|
|
# Represents a whole or partial calendar date, such as a birthday. The time of
|
|
# day and time zone are either specified elsewhere or are insignificant. The
|
|
# date is relative to the Gregorian Calendar. This can represent one of the
|
|
# following: * A full date, with non-zero year, month, and day values. * A month
|
|
# and day, with a zero year (for example, an anniversary). * A year on its own,
|
|
# with a zero month and a zero day. * A year and month, with a zero day (for
|
|
# example, a credit card expiration date). Related types: * google.type.
|
|
# TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
|
|
# Corresponds to the JSON property `date`
|
|
# @return [Google::Apis::FcmdataV1beta1::GoogleTypeDate]
|
|
attr_accessor :date
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@analytics_label = args[:analytics_label] if args.key?(:analytics_label)
|
|
@app_id = args[:app_id] if args.key?(:app_id)
|
|
@data = args[:data] if args.key?(:data)
|
|
@date = args[:date] if args.key?(:date)
|
|
end
|
|
end
|
|
|
|
# Data detailing messaging delivery
|
|
class GoogleFirebaseFcmDataV1beta1Data
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Count of messages accepted by FCM intended to Android devices. The targeted
|
|
# device must have opted in to the collection of usage and diagnostic
|
|
# information.
|
|
# Corresponds to the JSON property `countMessagesAccepted`
|
|
# @return [Fixnum]
|
|
attr_accessor :count_messages_accepted
|
|
|
|
# Overview of delivery performance for messages that were successfully delivered.
|
|
# All percentages are calculated with countMessagesAccepted as the denominator.
|
|
# These categories are not mutually exclusive; a message can be delayed for
|
|
# multiple reasons.
|
|
# Corresponds to the JSON property `deliveryPerformancePercents`
|
|
# @return [Google::Apis::FcmdataV1beta1::GoogleFirebaseFcmDataV1beta1DeliveryPerformancePercents]
|
|
attr_accessor :delivery_performance_percents
|
|
|
|
# Additional information about message delivery. All percentages are calculated
|
|
# with countMessagesAccepted as the denominator.
|
|
# Corresponds to the JSON property `messageInsightPercents`
|
|
# @return [Google::Apis::FcmdataV1beta1::GoogleFirebaseFcmDataV1beta1MessageInsightPercents]
|
|
attr_accessor :message_insight_percents
|
|
|
|
# Percentage breakdown of message delivery outcomes. These categories are
|
|
# mutually exclusive. All percentages are calculated with countMessagesAccepted
|
|
# as the denominator. These categories may not account for all message outcomes.
|
|
# Corresponds to the JSON property `messageOutcomePercents`
|
|
# @return [Google::Apis::FcmdataV1beta1::GoogleFirebaseFcmDataV1beta1MessageOutcomePercents]
|
|
attr_accessor :message_outcome_percents
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@count_messages_accepted = args[:count_messages_accepted] if args.key?(:count_messages_accepted)
|
|
@delivery_performance_percents = args[:delivery_performance_percents] if args.key?(:delivery_performance_percents)
|
|
@message_insight_percents = args[:message_insight_percents] if args.key?(:message_insight_percents)
|
|
@message_outcome_percents = args[:message_outcome_percents] if args.key?(:message_outcome_percents)
|
|
end
|
|
end
|
|
|
|
# Overview of delivery performance for messages that were successfully delivered.
|
|
# All percentages are calculated with countMessagesAccepted as the denominator.
|
|
# These categories are not mutually exclusive; a message can be delayed for
|
|
# multiple reasons.
|
|
class GoogleFirebaseFcmDataV1beta1DeliveryPerformancePercents
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The percentage of accepted messages that were delayed because the device was
|
|
# in doze mode. Only [normal priority messages](https://firebase.google.com/docs/
|
|
# cloud-messaging/concept-options#setting-the-priority-of-a-message) should be
|
|
# delayed due to doze mode.
|
|
# Corresponds to the JSON property `delayedDeviceDoze`
|
|
# @return [Float]
|
|
attr_accessor :delayed_device_doze
|
|
|
|
# The percentage of accepted messages that were delayed because the target
|
|
# device was not connected at the time of sending. These messages were
|
|
# eventually delivered when the device reconnected.
|
|
# Corresponds to the JSON property `delayedDeviceOffline`
|
|
# @return [Float]
|
|
attr_accessor :delayed_device_offline
|
|
|
|
# The percentage of accepted messages that were delayed due to message
|
|
# throttling, such as [collapsible message throttling](https://firebase.google.
|
|
# com/docs/cloud-messaging/concept-options#collapsible_throttling) or [maximum
|
|
# message rate throttling](https://firebase.google.com/docs/cloud-messaging/
|
|
# concept-options#device_throttling).
|
|
# Corresponds to the JSON property `delayedMessageThrottled`
|
|
# @return [Float]
|
|
attr_accessor :delayed_message_throttled
|
|
|
|
# The percentage of accepted messages that were delayed because the intended
|
|
# device user-profile was [stopped](https://firebase.google.com/docs/cloud-
|
|
# messaging/android/receive#handling_messages) on the target device at the time
|
|
# of the send. The messages were eventually delivered when the user-profile was
|
|
# started again.
|
|
# Corresponds to the JSON property `delayedUserStopped`
|
|
# @return [Float]
|
|
attr_accessor :delayed_user_stopped
|
|
|
|
# The percentage of accepted messages that were delivered to the device without
|
|
# delay from the FCM system.
|
|
# Corresponds to the JSON property `deliveredNoDelay`
|
|
# @return [Float]
|
|
attr_accessor :delivered_no_delay
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@delayed_device_doze = args[:delayed_device_doze] if args.key?(:delayed_device_doze)
|
|
@delayed_device_offline = args[:delayed_device_offline] if args.key?(:delayed_device_offline)
|
|
@delayed_message_throttled = args[:delayed_message_throttled] if args.key?(:delayed_message_throttled)
|
|
@delayed_user_stopped = args[:delayed_user_stopped] if args.key?(:delayed_user_stopped)
|
|
@delivered_no_delay = args[:delivered_no_delay] if args.key?(:delivered_no_delay)
|
|
end
|
|
end
|
|
|
|
# Response message for ListAndroidDeliveryData.
|
|
class GoogleFirebaseFcmDataV1beta1ListAndroidDeliveryDataResponse
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The delivery data for the provided app. There will be one entry per
|
|
# combination of app, date, and analytics label.
|
|
# Corresponds to the JSON property `androidDeliveryData`
|
|
# @return [Array<Google::Apis::FcmdataV1beta1::GoogleFirebaseFcmDataV1beta1AndroidDeliveryData>]
|
|
attr_accessor :android_delivery_data
|
|
|
|
# A token, which can be sent as `page_token` to retrieve the next page. If this
|
|
# field is omitted, there are no subsequent pages.
|
|
# 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)
|
|
@android_delivery_data = args[:android_delivery_data] if args.key?(:android_delivery_data)
|
|
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
end
|
|
end
|
|
|
|
# Additional information about message delivery. All percentages are calculated
|
|
# with countMessagesAccepted as the denominator.
|
|
class GoogleFirebaseFcmDataV1beta1MessageInsightPercents
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The percentage of accepted messages that had their priority lowered from high
|
|
# to normal due to [app standby buckets](https://firebase.google.com/docs/cloud-
|
|
# messaging/concept-options#setting-the-priority-of-a-message).
|
|
# Corresponds to the JSON property `priorityLowered`
|
|
# @return [Float]
|
|
attr_accessor :priority_lowered
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@priority_lowered = args[:priority_lowered] if args.key?(:priority_lowered)
|
|
end
|
|
end
|
|
|
|
# Percentage breakdown of message delivery outcomes. These categories are
|
|
# mutually exclusive. All percentages are calculated with countMessagesAccepted
|
|
# as the denominator. These categories may not account for all message outcomes.
|
|
class GoogleFirebaseFcmDataV1beta1MessageOutcomePercents
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The percentage of all accepted messages that were successfully delivered to
|
|
# the device.
|
|
# Corresponds to the JSON property `delivered`
|
|
# @return [Float]
|
|
attr_accessor :delivered
|
|
|
|
# The percentage of accepted messages that were dropped because the application
|
|
# was force stopped on the device at the time of delivery and retries were
|
|
# unsuccessful.
|
|
# Corresponds to the JSON property `droppedAppForceStopped`
|
|
# @return [Float]
|
|
attr_accessor :dropped_app_force_stopped
|
|
|
|
# The percentage of accepted messages that were dropped because the target
|
|
# device is inactive. FCM will drop messages if the target device is deemed
|
|
# inactive by our servers. If a device does reconnect, we call [
|
|
# OnDeletedMessages()](https://firebase.google.com/docs/cloud-messaging/android/
|
|
# receive#override-ondeletedmessages) in our SDK instead of delivering the
|
|
# messages.
|
|
# Corresponds to the JSON property `droppedDeviceInactive`
|
|
# @return [Float]
|
|
attr_accessor :dropped_device_inactive
|
|
|
|
# The percentage of accepted messages that were dropped due to [too many
|
|
# undelivered non-collapsible messages](https://firebase.google.com/docs/cloud-
|
|
# messaging/concept-options#collapsible_and_non-collapsible_messages).
|
|
# Specifically, each app instance can only have 100 pending messages stored on
|
|
# our servers for a device which is disconnected. When that device reconnects,
|
|
# those messages are delivered. When there are more than the maximum pending
|
|
# messages, we call [OnDeletedMessages()](https://firebase.google.com/docs/cloud-
|
|
# messaging/android/receive#override-ondeletedmessages) in our SDK instead of
|
|
# delivering the messages.
|
|
# Corresponds to the JSON property `droppedTooManyPendingMessages`
|
|
# @return [Float]
|
|
attr_accessor :dropped_too_many_pending_messages
|
|
|
|
# The percentage of messages accepted on this day that were not dropped and not
|
|
# delivered, due to the device being disconnected (as of the end of the America/
|
|
# Los_Angeles day when the message was sent to FCM). A portion of these messages
|
|
# will be delivered the next day when the device connects but others may be
|
|
# destined to devices that ultimately never reconnect.
|
|
# Corresponds to the JSON property `pending`
|
|
# @return [Float]
|
|
attr_accessor :pending
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@delivered = args[:delivered] if args.key?(:delivered)
|
|
@dropped_app_force_stopped = args[:dropped_app_force_stopped] if args.key?(:dropped_app_force_stopped)
|
|
@dropped_device_inactive = args[:dropped_device_inactive] if args.key?(:dropped_device_inactive)
|
|
@dropped_too_many_pending_messages = args[:dropped_too_many_pending_messages] if args.key?(:dropped_too_many_pending_messages)
|
|
@pending = args[:pending] if args.key?(:pending)
|
|
end
|
|
end
|
|
|
|
# Represents a whole or partial calendar date, such as a birthday. The time of
|
|
# day and time zone are either specified elsewhere or are insignificant. The
|
|
# date is relative to the Gregorian Calendar. This can represent one of the
|
|
# following: * A full date, with non-zero year, month, and day values. * A month
|
|
# and day, with a zero year (for example, an anniversary). * A year on its own,
|
|
# with a zero month and a zero day. * A year and month, with a zero day (for
|
|
# example, a credit card expiration date). Related types: * google.type.
|
|
# TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
|
|
class GoogleTypeDate
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
|
|
# specify a year by itself or a year and month where the day isn't significant.
|
|
# Corresponds to the JSON property `day`
|
|
# @return [Fixnum]
|
|
attr_accessor :day
|
|
|
|
# Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
|
|
# and day.
|
|
# Corresponds to the JSON property `month`
|
|
# @return [Fixnum]
|
|
attr_accessor :month
|
|
|
|
# Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
|
|
# year.
|
|
# Corresponds to the JSON property `year`
|
|
# @return [Fixnum]
|
|
attr_accessor :year
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@day = args[:day] if args.key?(:day)
|
|
@month = args[:month] if args.key?(:month)
|
|
@year = args[:year] if args.key?(:year)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|