263 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			263 lines
		
	
	
		
			9.3 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 FcmV1
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class AndroidConfig
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class AndroidFcmOptions
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class AndroidNotification
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class ApnsConfig
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class ApnsFcmOptions
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class Color
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class FcmOptions
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class LightSettings
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class Message
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class Notification
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class SendMessageRequest
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class WebpushConfig
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class WebpushFcmOptions
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation; end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        include Google::Apis::Core::JsonObjectSupport
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class AndroidConfig
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :collapse_key, as: 'collapseKey'
							 | 
						||
| 
								 | 
							
								          hash :data, as: 'data'
							 | 
						||
| 
								 | 
							
								          property :direct_boot_ok, as: 'directBootOk'
							 | 
						||
| 
								 | 
							
								          property :fcm_options, as: 'fcmOptions', class: Google::Apis::FcmV1::AndroidFcmOptions, decorator: Google::Apis::FcmV1::AndroidFcmOptions::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          property :notification, as: 'notification', class: Google::Apis::FcmV1::AndroidNotification, decorator: Google::Apis::FcmV1::AndroidNotification::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          property :priority, as: 'priority'
							 | 
						||
| 
								 | 
							
								          property :restricted_package_name, as: 'restrictedPackageName'
							 | 
						||
| 
								 | 
							
								          property :ttl, as: 'ttl'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class AndroidFcmOptions
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :analytics_label, as: 'analyticsLabel'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class AndroidNotification
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :body, as: 'body'
							 | 
						||
| 
								 | 
							
								          collection :body_loc_args, as: 'bodyLocArgs'
							 | 
						||
| 
								 | 
							
								          property :body_loc_key, as: 'bodyLocKey'
							 | 
						||
| 
								 | 
							
								          property :channel_id, as: 'channelId'
							 | 
						||
| 
								 | 
							
								          property :click_action, as: 'clickAction'
							 | 
						||
| 
								 | 
							
								          property :color, as: 'color'
							 | 
						||
| 
								 | 
							
								          property :default_light_settings, as: 'defaultLightSettings'
							 | 
						||
| 
								 | 
							
								          property :default_sound, as: 'defaultSound'
							 | 
						||
| 
								 | 
							
								          property :default_vibrate_timings, as: 'defaultVibrateTimings'
							 | 
						||
| 
								 | 
							
								          property :event_time, as: 'eventTime'
							 | 
						||
| 
								 | 
							
								          property :icon, as: 'icon'
							 | 
						||
| 
								 | 
							
								          property :image, as: 'image'
							 | 
						||
| 
								 | 
							
								          property :light_settings, as: 'lightSettings', class: Google::Apis::FcmV1::LightSettings, decorator: Google::Apis::FcmV1::LightSettings::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          property :local_only, as: 'localOnly'
							 | 
						||
| 
								 | 
							
								          property :notification_count, as: 'notificationCount'
							 | 
						||
| 
								 | 
							
								          property :notification_priority, as: 'notificationPriority'
							 | 
						||
| 
								 | 
							
								          property :sound, as: 'sound'
							 | 
						||
| 
								 | 
							
								          property :sticky, as: 'sticky'
							 | 
						||
| 
								 | 
							
								          property :tag, as: 'tag'
							 | 
						||
| 
								 | 
							
								          property :ticker, as: 'ticker'
							 | 
						||
| 
								 | 
							
								          property :title, as: 'title'
							 | 
						||
| 
								 | 
							
								          collection :title_loc_args, as: 'titleLocArgs'
							 | 
						||
| 
								 | 
							
								          property :title_loc_key, as: 'titleLocKey'
							 | 
						||
| 
								 | 
							
								          collection :vibrate_timings, as: 'vibrateTimings'
							 | 
						||
| 
								 | 
							
								          property :visibility, as: 'visibility'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class ApnsConfig
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :fcm_options, as: 'fcmOptions', class: Google::Apis::FcmV1::ApnsFcmOptions, decorator: Google::Apis::FcmV1::ApnsFcmOptions::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          hash :headers, as: 'headers'
							 | 
						||
| 
								 | 
							
								          hash :payload, as: 'payload'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class ApnsFcmOptions
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :analytics_label, as: 'analyticsLabel'
							 | 
						||
| 
								 | 
							
								          property :image, as: 'image'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class Color
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :alpha, as: 'alpha'
							 | 
						||
| 
								 | 
							
								          property :blue, as: 'blue'
							 | 
						||
| 
								 | 
							
								          property :green, as: 'green'
							 | 
						||
| 
								 | 
							
								          property :red, as: 'red'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class FcmOptions
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :analytics_label, as: 'analyticsLabel'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class LightSettings
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :color, as: 'color', class: Google::Apis::FcmV1::Color, decorator: Google::Apis::FcmV1::Color::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          property :light_off_duration, as: 'lightOffDuration'
							 | 
						||
| 
								 | 
							
								          property :light_on_duration, as: 'lightOnDuration'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class Message
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :android, as: 'android', class: Google::Apis::FcmV1::AndroidConfig, decorator: Google::Apis::FcmV1::AndroidConfig::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          property :apns, as: 'apns', class: Google::Apis::FcmV1::ApnsConfig, decorator: Google::Apis::FcmV1::ApnsConfig::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          property :condition, as: 'condition'
							 | 
						||
| 
								 | 
							
								          hash :data, as: 'data'
							 | 
						||
| 
								 | 
							
								          property :fcm_options, as: 'fcmOptions', class: Google::Apis::FcmV1::FcmOptions, decorator: Google::Apis::FcmV1::FcmOptions::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          property :name, as: 'name'
							 | 
						||
| 
								 | 
							
								          property :notification, as: 'notification', class: Google::Apis::FcmV1::Notification, decorator: Google::Apis::FcmV1::Notification::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          property :token, as: 'token'
							 | 
						||
| 
								 | 
							
								          property :topic, as: 'topic'
							 | 
						||
| 
								 | 
							
								          property :webpush, as: 'webpush', class: Google::Apis::FcmV1::WebpushConfig, decorator: Google::Apis::FcmV1::WebpushConfig::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class Notification
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :body, as: 'body'
							 | 
						||
| 
								 | 
							
								          property :image, as: 'image'
							 | 
						||
| 
								 | 
							
								          property :title, as: 'title'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class SendMessageRequest
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :message, as: 'message', class: Google::Apis::FcmV1::Message, decorator: Google::Apis::FcmV1::Message::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          property :validate_only, as: 'validateOnly'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class WebpushConfig
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          hash :data, as: 'data'
							 | 
						||
| 
								 | 
							
								          property :fcm_options, as: 'fcmOptions', class: Google::Apis::FcmV1::WebpushFcmOptions, decorator: Google::Apis::FcmV1::WebpushFcmOptions::Representation
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								          hash :headers, as: 'headers'
							 | 
						||
| 
								 | 
							
								          hash :notification, as: 'notification'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      class WebpushFcmOptions
							 | 
						||
| 
								 | 
							
								        # @private
							 | 
						||
| 
								 | 
							
								        class Representation < Google::Apis::Core::JsonRepresentation
							 | 
						||
| 
								 | 
							
								          property :analytics_label, as: 'analyticsLabel'
							 | 
						||
| 
								 | 
							
								          property :link, as: 'link'
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								end
							 |