google-apis-androidpublisher_v3 0.1.0 → 0.38.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,52 @@ module Google
22
22
  module Apis
23
23
  module AndroidpublisherV3
24
24
 
25
+ # Represents a targeting rule of the form: User never had `scope` before.
26
+ class AcquisitionTargetingRule
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Defines the scope of subscriptions which a targeting rule can match to target
30
+ # offers to users based on past or current entitlement.
31
+ # Corresponds to the JSON property `scope`
32
+ # @return [Google::Apis::AndroidpublisherV3::TargetingRuleScope]
33
+ attr_accessor :scope
34
+
35
+ def initialize(**args)
36
+ update!(**args)
37
+ end
38
+
39
+ # Update properties of this object
40
+ def update!(**args)
41
+ @scope = args[:scope] if args.key?(:scope)
42
+ end
43
+ end
44
+
45
+ # Request message for ActivateBasePlan.
46
+ class ActivateBasePlanRequest
47
+ include Google::Apis::Core::Hashable
48
+
49
+ def initialize(**args)
50
+ update!(**args)
51
+ end
52
+
53
+ # Update properties of this object
54
+ def update!(**args)
55
+ end
56
+ end
57
+
58
+ # Request message for ActivateSubscriptionOffer.
59
+ class ActivateSubscriptionOfferRequest
60
+ include Google::Apis::Core::Hashable
61
+
62
+ def initialize(**args)
63
+ update!(**args)
64
+ end
65
+
66
+ # Update properties of this object
67
+ def update!(**args)
68
+ end
69
+ end
70
+
25
71
  # Information about an APK. The resource for ApksService.
26
72
  class Apk
27
73
  include Google::Apis::Core::Hashable
@@ -206,7 +252,177 @@ module Google
206
252
  end
207
253
  end
208
254
 
209
- # Information about a bundle. The resource for BundlesService.
255
+ # Request message for ArchiveSubscription.
256
+ class ArchiveSubscriptionRequest
257
+ include Google::Apis::Core::Hashable
258
+
259
+ def initialize(**args)
260
+ update!(**args)
261
+ end
262
+
263
+ # Update properties of this object
264
+ def update!(**args)
265
+ end
266
+ end
267
+
268
+ # Represents a base plan that automatically renews at the end of its
269
+ # subscription period.
270
+ class AutoRenewingBasePlanType
271
+ include Google::Apis::Core::Hashable
272
+
273
+ # Required. Subscription period, specified in ISO 8601 format. For a list of
274
+ # acceptable billing periods, refer to the help center.
275
+ # Corresponds to the JSON property `billingPeriodDuration`
276
+ # @return [String]
277
+ attr_accessor :billing_period_duration
278
+
279
+ # Grace period of the subscription, specified in ISO 8601 format. Acceptable
280
+ # values are P0D (zero days), P3D (3 days), P7D (7 days), P14D (14 days), and
281
+ # P30D (30 days). If not specified, a default value will be used based on the
282
+ # recurring period duration.
283
+ # Corresponds to the JSON property `gracePeriodDuration`
284
+ # @return [String]
285
+ attr_accessor :grace_period_duration
286
+
287
+ # Whether the renewing base plan is backward compatible. The backward compatible
288
+ # base plan is returned by the Google Play Billing Library deprecated method
289
+ # querySkuDetailsAsync(). Only one renewing base plan can be marked as legacy
290
+ # compatible for a given subscription.
291
+ # Corresponds to the JSON property `legacyCompatible`
292
+ # @return [Boolean]
293
+ attr_accessor :legacy_compatible
294
+ alias_method :legacy_compatible?, :legacy_compatible
295
+
296
+ # Subscription offer id which is legacy compatible. The backward compatible
297
+ # subscription offer is returned by the Google Play Billing Library deprecated
298
+ # method querySkuDetailsAsync(). Only one subscription offer can be marked as
299
+ # legacy compatible for a given renewing base plan. To have no Subscription
300
+ # offer as legacy compatible set this field as empty string.
301
+ # Corresponds to the JSON property `legacyCompatibleSubscriptionOfferId`
302
+ # @return [String]
303
+ attr_accessor :legacy_compatible_subscription_offer_id
304
+
305
+ # The proration mode for the base plan determines what happens when a user
306
+ # switches to this plan from another base plan. If unspecified, defaults to
307
+ # CHARGE_ON_NEXT_BILLING_DATE.
308
+ # Corresponds to the JSON property `prorationMode`
309
+ # @return [String]
310
+ attr_accessor :proration_mode
311
+
312
+ # Whether users should be able to resubscribe to this base plan in Google Play
313
+ # surfaces. Defaults to RESUBSCRIBE_STATE_ACTIVE if not specified.
314
+ # Corresponds to the JSON property `resubscribeState`
315
+ # @return [String]
316
+ attr_accessor :resubscribe_state
317
+
318
+ def initialize(**args)
319
+ update!(**args)
320
+ end
321
+
322
+ # Update properties of this object
323
+ def update!(**args)
324
+ @billing_period_duration = args[:billing_period_duration] if args.key?(:billing_period_duration)
325
+ @grace_period_duration = args[:grace_period_duration] if args.key?(:grace_period_duration)
326
+ @legacy_compatible = args[:legacy_compatible] if args.key?(:legacy_compatible)
327
+ @legacy_compatible_subscription_offer_id = args[:legacy_compatible_subscription_offer_id] if args.key?(:legacy_compatible_subscription_offer_id)
328
+ @proration_mode = args[:proration_mode] if args.key?(:proration_mode)
329
+ @resubscribe_state = args[:resubscribe_state] if args.key?(:resubscribe_state)
330
+ end
331
+ end
332
+
333
+ # Information related to an auto renewing plan.
334
+ class AutoRenewingPlan
335
+ include Google::Apis::Core::Hashable
336
+
337
+ # If the subscription is currently set to auto-renew, e.g. the user has not
338
+ # canceled the subscription
339
+ # Corresponds to the JSON property `autoRenewEnabled`
340
+ # @return [Boolean]
341
+ attr_accessor :auto_renew_enabled
342
+ alias_method :auto_renew_enabled?, :auto_renew_enabled
343
+
344
+ # Price change related information of a subscription item.
345
+ # Corresponds to the JSON property `priceChangeDetails`
346
+ # @return [Google::Apis::AndroidpublisherV3::SubscriptionItemPriceChangeDetails]
347
+ attr_accessor :price_change_details
348
+
349
+ def initialize(**args)
350
+ update!(**args)
351
+ end
352
+
353
+ # Update properties of this object
354
+ def update!(**args)
355
+ @auto_renew_enabled = args[:auto_renew_enabled] if args.key?(:auto_renew_enabled)
356
+ @price_change_details = args[:price_change_details] if args.key?(:price_change_details)
357
+ end
358
+ end
359
+
360
+ # A single base plan for a subscription.
361
+ class BasePlan
362
+ include Google::Apis::Core::Hashable
363
+
364
+ # Represents a base plan that automatically renews at the end of its
365
+ # subscription period.
366
+ # Corresponds to the JSON property `autoRenewingBasePlanType`
367
+ # @return [Google::Apis::AndroidpublisherV3::AutoRenewingBasePlanType]
368
+ attr_accessor :auto_renewing_base_plan_type
369
+
370
+ # Required. Immutable. The unique identifier of this base plan. Must be unique
371
+ # within the subscription, and conform with RFC-1034. That is, this ID can only
372
+ # contain lower-case letters (a-z), numbers (0-9), and hyphens (-), and be at
373
+ # most 63 characters.
374
+ # Corresponds to the JSON property `basePlanId`
375
+ # @return [String]
376
+ attr_accessor :base_plan_id
377
+
378
+ # List of up to 20 custom tags specified for this base plan, and returned to the
379
+ # app through the billing library. Subscription offers for this base plan will
380
+ # also receive these offer tags in the billing library.
381
+ # Corresponds to the JSON property `offerTags`
382
+ # @return [Array<Google::Apis::AndroidpublisherV3::OfferTag>]
383
+ attr_accessor :offer_tags
384
+
385
+ # Pricing information for any new locations Play may launch in.
386
+ # Corresponds to the JSON property `otherRegionsConfig`
387
+ # @return [Google::Apis::AndroidpublisherV3::OtherRegionsBasePlanConfig]
388
+ attr_accessor :other_regions_config
389
+
390
+ # Represents a base plan that does not automatically renew at the end of the
391
+ # base plan, and must be manually renewed by the user.
392
+ # Corresponds to the JSON property `prepaidBasePlanType`
393
+ # @return [Google::Apis::AndroidpublisherV3::PrepaidBasePlanType]
394
+ attr_accessor :prepaid_base_plan_type
395
+
396
+ # Region-specific information for this base plan.
397
+ # Corresponds to the JSON property `regionalConfigs`
398
+ # @return [Array<Google::Apis::AndroidpublisherV3::RegionalBasePlanConfig>]
399
+ attr_accessor :regional_configs
400
+
401
+ # Output only. The state of the base plan, i.e. whether it's active. Draft and
402
+ # inactive base plans can be activated or deleted. Active base plans can be made
403
+ # inactive. Inactive base plans can be canceled. This field cannot be changed by
404
+ # updating the resource. Use the dedicated endpoints instead.
405
+ # Corresponds to the JSON property `state`
406
+ # @return [String]
407
+ attr_accessor :state
408
+
409
+ def initialize(**args)
410
+ update!(**args)
411
+ end
412
+
413
+ # Update properties of this object
414
+ def update!(**args)
415
+ @auto_renewing_base_plan_type = args[:auto_renewing_base_plan_type] if args.key?(:auto_renewing_base_plan_type)
416
+ @base_plan_id = args[:base_plan_id] if args.key?(:base_plan_id)
417
+ @offer_tags = args[:offer_tags] if args.key?(:offer_tags)
418
+ @other_regions_config = args[:other_regions_config] if args.key?(:other_regions_config)
419
+ @prepaid_base_plan_type = args[:prepaid_base_plan_type] if args.key?(:prepaid_base_plan_type)
420
+ @regional_configs = args[:regional_configs] if args.key?(:regional_configs)
421
+ @state = args[:state] if args.key?(:state)
422
+ end
423
+ end
424
+
425
+ # Information about an app bundle. The resource for BundlesService.
210
426
  class Bundle
211
427
  include Google::Apis::Core::Hashable
212
428
 
@@ -240,11 +456,11 @@ module Google
240
456
  end
241
457
  end
242
458
 
243
- # Response listing all bundles.
459
+ # Response listing all app bundles.
244
460
  class BundlesListResponse
245
461
  include Google::Apis::Core::Hashable
246
462
 
247
- # All bundles.
463
+ # All app bundles.
248
464
  # Corresponds to the JSON property `bundles`
249
465
  # @return [Array<Google::Apis::AndroidpublisherV3::Bundle>]
250
466
  attr_accessor :bundles
@@ -265,6 +481,69 @@ module Google
265
481
  end
266
482
  end
267
483
 
484
+ # Result of the cancel survey when the subscription was canceled by the user.
485
+ class CancelSurveyResult
486
+ include Google::Apis::Core::Hashable
487
+
488
+ # The reason the user selected in the cancel survey.
489
+ # Corresponds to the JSON property `reason`
490
+ # @return [String]
491
+ attr_accessor :reason
492
+
493
+ # Only set for CANCEL_SURVEY_REASON_OTHERS. This is the user's freeform response
494
+ # to the survey.
495
+ # Corresponds to the JSON property `reasonUserInput`
496
+ # @return [String]
497
+ attr_accessor :reason_user_input
498
+
499
+ def initialize(**args)
500
+ update!(**args)
501
+ end
502
+
503
+ # Update properties of this object
504
+ def update!(**args)
505
+ @reason = args[:reason] if args.key?(:reason)
506
+ @reason_user_input = args[:reason_user_input] if args.key?(:reason_user_input)
507
+ end
508
+ end
509
+
510
+ # Information specific to a subscription in canceled state.
511
+ class CanceledStateContext
512
+ include Google::Apis::Core::Hashable
513
+
514
+ # Information specific to cancellations initiated by developers.
515
+ # Corresponds to the JSON property `developerInitiatedCancellation`
516
+ # @return [Google::Apis::AndroidpublisherV3::DeveloperInitiatedCancellation]
517
+ attr_accessor :developer_initiated_cancellation
518
+
519
+ # Information specific to cancellations caused by subscription replacement.
520
+ # Corresponds to the JSON property `replacementCancellation`
521
+ # @return [Google::Apis::AndroidpublisherV3::ReplacementCancellation]
522
+ attr_accessor :replacement_cancellation
523
+
524
+ # Information specific to cancellations initiated by Google system.
525
+ # Corresponds to the JSON property `systemInitiatedCancellation`
526
+ # @return [Google::Apis::AndroidpublisherV3::SystemInitiatedCancellation]
527
+ attr_accessor :system_initiated_cancellation
528
+
529
+ # Information specific to cancellations initiated by users.
530
+ # Corresponds to the JSON property `userInitiatedCancellation`
531
+ # @return [Google::Apis::AndroidpublisherV3::UserInitiatedCancellation]
532
+ attr_accessor :user_initiated_cancellation
533
+
534
+ def initialize(**args)
535
+ update!(**args)
536
+ end
537
+
538
+ # Update properties of this object
539
+ def update!(**args)
540
+ @developer_initiated_cancellation = args[:developer_initiated_cancellation] if args.key?(:developer_initiated_cancellation)
541
+ @replacement_cancellation = args[:replacement_cancellation] if args.key?(:replacement_cancellation)
542
+ @system_initiated_cancellation = args[:system_initiated_cancellation] if args.key?(:system_initiated_cancellation)
543
+ @user_initiated_cancellation = args[:user_initiated_cancellation] if args.key?(:user_initiated_cancellation)
544
+ end
545
+ end
546
+
268
547
  # An entry of conversation between user and developer.
269
548
  class Comment
270
549
  include Google::Apis::Core::Hashable
@@ -290,6 +569,106 @@ module Google
290
569
  end
291
570
  end
292
571
 
572
+ # Request message for ConvertRegionPrices.
573
+ class ConvertRegionPricesRequest
574
+ include Google::Apis::Core::Hashable
575
+
576
+ # Represents an amount of money with its currency type.
577
+ # Corresponds to the JSON property `price`
578
+ # @return [Google::Apis::AndroidpublisherV3::Money]
579
+ attr_accessor :price
580
+
581
+ def initialize(**args)
582
+ update!(**args)
583
+ end
584
+
585
+ # Update properties of this object
586
+ def update!(**args)
587
+ @price = args[:price] if args.key?(:price)
588
+ end
589
+ end
590
+
591
+ # Response message for ConvertRegionPrices.
592
+ class ConvertRegionPricesResponse
593
+ include Google::Apis::Core::Hashable
594
+
595
+ # Converted other regions prices.
596
+ # Corresponds to the JSON property `convertedOtherRegionsPrice`
597
+ # @return [Google::Apis::AndroidpublisherV3::ConvertedOtherRegionsPrice]
598
+ attr_accessor :converted_other_regions_price
599
+
600
+ # Map from region code to converted region price.
601
+ # Corresponds to the JSON property `convertedRegionPrices`
602
+ # @return [Hash<String,Google::Apis::AndroidpublisherV3::ConvertedRegionPrice>]
603
+ attr_accessor :converted_region_prices
604
+
605
+ def initialize(**args)
606
+ update!(**args)
607
+ end
608
+
609
+ # Update properties of this object
610
+ def update!(**args)
611
+ @converted_other_regions_price = args[:converted_other_regions_price] if args.key?(:converted_other_regions_price)
612
+ @converted_region_prices = args[:converted_region_prices] if args.key?(:converted_region_prices)
613
+ end
614
+ end
615
+
616
+ # Converted other regions prices.
617
+ class ConvertedOtherRegionsPrice
618
+ include Google::Apis::Core::Hashable
619
+
620
+ # Represents an amount of money with its currency type.
621
+ # Corresponds to the JSON property `eurPrice`
622
+ # @return [Google::Apis::AndroidpublisherV3::Money]
623
+ attr_accessor :eur_price
624
+
625
+ # Represents an amount of money with its currency type.
626
+ # Corresponds to the JSON property `usdPrice`
627
+ # @return [Google::Apis::AndroidpublisherV3::Money]
628
+ attr_accessor :usd_price
629
+
630
+ def initialize(**args)
631
+ update!(**args)
632
+ end
633
+
634
+ # Update properties of this object
635
+ def update!(**args)
636
+ @eur_price = args[:eur_price] if args.key?(:eur_price)
637
+ @usd_price = args[:usd_price] if args.key?(:usd_price)
638
+ end
639
+ end
640
+
641
+ # A converted region price.
642
+ class ConvertedRegionPrice
643
+ include Google::Apis::Core::Hashable
644
+
645
+ # Represents an amount of money with its currency type.
646
+ # Corresponds to the JSON property `price`
647
+ # @return [Google::Apis::AndroidpublisherV3::Money]
648
+ attr_accessor :price
649
+
650
+ # The region code of the region.
651
+ # Corresponds to the JSON property `regionCode`
652
+ # @return [String]
653
+ attr_accessor :region_code
654
+
655
+ # Represents an amount of money with its currency type.
656
+ # Corresponds to the JSON property `taxAmount`
657
+ # @return [Google::Apis::AndroidpublisherV3::Money]
658
+ attr_accessor :tax_amount
659
+
660
+ def initialize(**args)
661
+ update!(**args)
662
+ end
663
+
664
+ # Update properties of this object
665
+ def update!(**args)
666
+ @price = args[:price] if args.key?(:price)
667
+ @region_code = args[:region_code] if args.key?(:region_code)
668
+ @tax_amount = args[:tax_amount] if args.key?(:tax_amount)
669
+ end
670
+ end
671
+
293
672
  # Country targeting specification.
294
673
  class CountryTargeting
295
674
  include Google::Apis::Core::Hashable
@@ -317,6 +696,32 @@ module Google
317
696
  end
318
697
  end
319
698
 
699
+ # Request message for DeactivateBasePlan.
700
+ class DeactivateBasePlanRequest
701
+ include Google::Apis::Core::Hashable
702
+
703
+ def initialize(**args)
704
+ update!(**args)
705
+ end
706
+
707
+ # Update properties of this object
708
+ def update!(**args)
709
+ end
710
+ end
711
+
712
+ # Request message for DeactivateSubscriptionOffer.
713
+ class DeactivateSubscriptionOfferRequest
714
+ include Google::Apis::Core::Hashable
715
+
716
+ def initialize(**args)
717
+ update!(**args)
718
+ end
719
+
720
+ # Update properties of this object
721
+ def update!(**args)
722
+ end
723
+ end
724
+
320
725
  # Represents a deobfuscation file.
321
726
  class DeobfuscationFile
322
727
  include Google::Apis::Core::Hashable
@@ -383,6 +788,71 @@ module Google
383
788
  end
384
789
  end
385
790
 
791
+ # Information specific to cancellations initiated by developers.
792
+ class DeveloperInitiatedCancellation
793
+ include Google::Apis::Core::Hashable
794
+
795
+ def initialize(**args)
796
+ update!(**args)
797
+ end
798
+
799
+ # Update properties of this object
800
+ def update!(**args)
801
+ end
802
+ end
803
+
804
+ # A group of devices. A group is defined by a set of device selectors. A device
805
+ # belongs to the group if it matches any selector (logical OR).
806
+ class DeviceGroup
807
+ include Google::Apis::Core::Hashable
808
+
809
+ # Device selectors for this group. A device matching any of the selectors is
810
+ # included in this group.
811
+ # Corresponds to the JSON property `deviceSelectors`
812
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceSelector>]
813
+ attr_accessor :device_selectors
814
+
815
+ # The name of the group.
816
+ # Corresponds to the JSON property `name`
817
+ # @return [String]
818
+ attr_accessor :name
819
+
820
+ def initialize(**args)
821
+ update!(**args)
822
+ end
823
+
824
+ # Update properties of this object
825
+ def update!(**args)
826
+ @device_selectors = args[:device_selectors] if args.key?(:device_selectors)
827
+ @name = args[:name] if args.key?(:name)
828
+ end
829
+ end
830
+
831
+ # Identifier of a device.
832
+ class DeviceId
833
+ include Google::Apis::Core::Hashable
834
+
835
+ # Value of Build.BRAND.
836
+ # Corresponds to the JSON property `buildBrand`
837
+ # @return [String]
838
+ attr_accessor :build_brand
839
+
840
+ # Value of Build.DEVICE.
841
+ # Corresponds to the JSON property `buildDevice`
842
+ # @return [String]
843
+ attr_accessor :build_device
844
+
845
+ def initialize(**args)
846
+ update!(**args)
847
+ end
848
+
849
+ # Update properties of this object
850
+ def update!(**args)
851
+ @build_brand = args[:build_brand] if args.key?(:build_brand)
852
+ @build_device = args[:build_device] if args.key?(:build_device)
853
+ end
854
+ end
855
+
386
856
  # Characteristics of the user's device.
387
857
  class DeviceMetadata
388
858
  include Google::Apis::Core::Hashable
@@ -462,17 +932,93 @@ module Google
462
932
  end
463
933
  end
464
934
 
465
- # The device spec used to generate a system APK.
466
- class DeviceSpec
935
+ # Conditions about a device's RAM capabilities.
936
+ class DeviceRam
467
937
  include Google::Apis::Core::Hashable
468
938
 
469
- # Screen dpi.
470
- # Corresponds to the JSON property `screenDensity`
939
+ # Maximum RAM in bytes (bound excluded).
940
+ # Corresponds to the JSON property `maxBytes`
471
941
  # @return [Fixnum]
472
- attr_accessor :screen_density
942
+ attr_accessor :max_bytes
473
943
 
474
- # Supported ABI architectures in the order of preference. The values should be
475
- # the string as reported by the platform, e.g. "armeabi-v7a", "x86_64".
944
+ # Minimum RAM in bytes (bound included).
945
+ # Corresponds to the JSON property `minBytes`
946
+ # @return [Fixnum]
947
+ attr_accessor :min_bytes
948
+
949
+ def initialize(**args)
950
+ update!(**args)
951
+ end
952
+
953
+ # Update properties of this object
954
+ def update!(**args)
955
+ @max_bytes = args[:max_bytes] if args.key?(:max_bytes)
956
+ @min_bytes = args[:min_bytes] if args.key?(:min_bytes)
957
+ end
958
+ end
959
+
960
+ # Selector for a device group. A selector consists of a set of conditions on the
961
+ # device that should all match (logical AND) to determine a device group
962
+ # eligibility. For instance, if a selector specifies RAM conditions, device
963
+ # model inclusion and device model exclusion, a device is considered to match if:
964
+ # device matches RAM conditions AND device matches one of the included device
965
+ # models AND device doesn't match excluded device models
966
+ class DeviceSelector
967
+ include Google::Apis::Core::Hashable
968
+
969
+ # Conditions about a device's RAM capabilities.
970
+ # Corresponds to the JSON property `deviceRam`
971
+ # @return [Google::Apis::AndroidpublisherV3::DeviceRam]
972
+ attr_accessor :device_ram
973
+
974
+ # Device models excluded by this selector, even if they match all other
975
+ # conditions.
976
+ # Corresponds to the JSON property `excludedDeviceIds`
977
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceId>]
978
+ attr_accessor :excluded_device_ids
979
+
980
+ # A device that has any of these system features is excluded by this selector,
981
+ # even if it matches all other conditions.
982
+ # Corresponds to the JSON property `forbiddenSystemFeatures`
983
+ # @return [Array<Google::Apis::AndroidpublisherV3::SystemFeature>]
984
+ attr_accessor :forbidden_system_features
985
+
986
+ # Device models included by this selector.
987
+ # Corresponds to the JSON property `includedDeviceIds`
988
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceId>]
989
+ attr_accessor :included_device_ids
990
+
991
+ # A device needs to have all these system features to be included by the
992
+ # selector.
993
+ # Corresponds to the JSON property `requiredSystemFeatures`
994
+ # @return [Array<Google::Apis::AndroidpublisherV3::SystemFeature>]
995
+ attr_accessor :required_system_features
996
+
997
+ def initialize(**args)
998
+ update!(**args)
999
+ end
1000
+
1001
+ # Update properties of this object
1002
+ def update!(**args)
1003
+ @device_ram = args[:device_ram] if args.key?(:device_ram)
1004
+ @excluded_device_ids = args[:excluded_device_ids] if args.key?(:excluded_device_ids)
1005
+ @forbidden_system_features = args[:forbidden_system_features] if args.key?(:forbidden_system_features)
1006
+ @included_device_ids = args[:included_device_ids] if args.key?(:included_device_ids)
1007
+ @required_system_features = args[:required_system_features] if args.key?(:required_system_features)
1008
+ end
1009
+ end
1010
+
1011
+ # The device spec used to generate a system APK.
1012
+ class DeviceSpec
1013
+ include Google::Apis::Core::Hashable
1014
+
1015
+ # Screen dpi.
1016
+ # Corresponds to the JSON property `screenDensity`
1017
+ # @return [Fixnum]
1018
+ attr_accessor :screen_density
1019
+
1020
+ # Supported ABI architectures in the order of preference. The values should be
1021
+ # the string as reported by the platform, e.g. "armeabi-v7a", "x86_64".
476
1022
  # Corresponds to the JSON property `supportedAbis`
477
1023
  # @return [Array<String>]
478
1024
  attr_accessor :supported_abis
@@ -494,6 +1040,105 @@ module Google
494
1040
  end
495
1041
  end
496
1042
 
1043
+ # A single device tier. Devices matching any of the device groups in
1044
+ # device_group_names are considered to match the tier.
1045
+ class DeviceTier
1046
+ include Google::Apis::Core::Hashable
1047
+
1048
+ # Groups of devices included in this tier. These groups must be defined
1049
+ # explicitly under device_groups in this configuration.
1050
+ # Corresponds to the JSON property `deviceGroupNames`
1051
+ # @return [Array<String>]
1052
+ attr_accessor :device_group_names
1053
+
1054
+ # The priority level of the tier. Tiers are evaluated in descending order of
1055
+ # level: the highest level tier has the highest priority. The highest tier
1056
+ # matching a given device is selected for that device. You should use a
1057
+ # contiguous range of levels for your tiers in a tier set; tier levels in a tier
1058
+ # set must be unique. For instance, if your tier set has 4 tiers (including the
1059
+ # global fallback), you should define tiers 1, 2 and 3 in this configuration.
1060
+ # Note: tier 0 is implicitly defined as a global fallback and selected for
1061
+ # devices that don't match any of the tiers explicitly defined here. You mustn't
1062
+ # define level 0 explicitly in this configuration.
1063
+ # Corresponds to the JSON property `level`
1064
+ # @return [Fixnum]
1065
+ attr_accessor :level
1066
+
1067
+ def initialize(**args)
1068
+ update!(**args)
1069
+ end
1070
+
1071
+ # Update properties of this object
1072
+ def update!(**args)
1073
+ @device_group_names = args[:device_group_names] if args.key?(:device_group_names)
1074
+ @level = args[:level] if args.key?(:level)
1075
+ end
1076
+ end
1077
+
1078
+ # Configuration describing device targeting criteria for the content of an app.
1079
+ class DeviceTierConfig
1080
+ include Google::Apis::Core::Hashable
1081
+
1082
+ # Definition of device groups for the app.
1083
+ # Corresponds to the JSON property `deviceGroups`
1084
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceGroup>]
1085
+ attr_accessor :device_groups
1086
+
1087
+ # Output only. The device tier config ID.
1088
+ # Corresponds to the JSON property `deviceTierConfigId`
1089
+ # @return [Fixnum]
1090
+ attr_accessor :device_tier_config_id
1091
+
1092
+ # A set of device tiers. A tier set determines what variation of app content
1093
+ # gets served to a specific device, for device-targeted content. You should
1094
+ # assign a priority level to each tier, which determines the ordering by which
1095
+ # they are evaluated by Play. See the documentation of DeviceTier.level for more
1096
+ # details.
1097
+ # Corresponds to the JSON property `deviceTierSet`
1098
+ # @return [Google::Apis::AndroidpublisherV3::DeviceTierSet]
1099
+ attr_accessor :device_tier_set
1100
+
1101
+ # Definition of user country sets for the app.
1102
+ # Corresponds to the JSON property `userCountrySets`
1103
+ # @return [Array<Google::Apis::AndroidpublisherV3::UserCountrySet>]
1104
+ attr_accessor :user_country_sets
1105
+
1106
+ def initialize(**args)
1107
+ update!(**args)
1108
+ end
1109
+
1110
+ # Update properties of this object
1111
+ def update!(**args)
1112
+ @device_groups = args[:device_groups] if args.key?(:device_groups)
1113
+ @device_tier_config_id = args[:device_tier_config_id] if args.key?(:device_tier_config_id)
1114
+ @device_tier_set = args[:device_tier_set] if args.key?(:device_tier_set)
1115
+ @user_country_sets = args[:user_country_sets] if args.key?(:user_country_sets)
1116
+ end
1117
+ end
1118
+
1119
+ # A set of device tiers. A tier set determines what variation of app content
1120
+ # gets served to a specific device, for device-targeted content. You should
1121
+ # assign a priority level to each tier, which determines the ordering by which
1122
+ # they are evaluated by Play. See the documentation of DeviceTier.level for more
1123
+ # details.
1124
+ class DeviceTierSet
1125
+ include Google::Apis::Core::Hashable
1126
+
1127
+ # Device tiers belonging to the set.
1128
+ # Corresponds to the JSON property `deviceTiers`
1129
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceTier>]
1130
+ attr_accessor :device_tiers
1131
+
1132
+ def initialize(**args)
1133
+ update!(**args)
1134
+ end
1135
+
1136
+ # Update properties of this object
1137
+ def update!(**args)
1138
+ @device_tiers = args[:device_tiers] if args.key?(:device_tiers)
1139
+ end
1140
+ end
1141
+
497
1142
  # An expansion file. The resource for ExpansionFilesService.
498
1143
  class ExpansionFile
499
1144
  include Google::Apis::Core::Hashable
@@ -541,6 +1186,45 @@ module Google
541
1186
  end
542
1187
  end
543
1188
 
1189
+ # User account identifier in the third-party service.
1190
+ class ExternalAccountIdentifiers
1191
+ include Google::Apis::Core::Hashable
1192
+
1193
+ # User account identifier in the third-party service. Only present if account
1194
+ # linking happened as part of the subscription purchase flow.
1195
+ # Corresponds to the JSON property `externalAccountId`
1196
+ # @return [String]
1197
+ attr_accessor :external_account_id
1198
+
1199
+ # An obfuscated version of the id that is uniquely associated with the user's
1200
+ # account in your app. Present for the following purchases: * If account linking
1201
+ # happened as part of the subscription purchase flow. * It was specified using
1202
+ # https://developer.android.com/reference/com/android/billingclient/api/
1203
+ # BillingFlowParams.Builder#setobfuscatedaccountid when the purchase was made.
1204
+ # Corresponds to the JSON property `obfuscatedExternalAccountId`
1205
+ # @return [String]
1206
+ attr_accessor :obfuscated_external_account_id
1207
+
1208
+ # An obfuscated version of the id that is uniquely associated with the user's
1209
+ # profile in your app. Only present if specified using https://developer.android.
1210
+ # com/reference/com/android/billingclient/api/BillingFlowParams.Builder#
1211
+ # setobfuscatedprofileid when the purchase was made.
1212
+ # Corresponds to the JSON property `obfuscatedExternalProfileId`
1213
+ # @return [String]
1214
+ attr_accessor :obfuscated_external_profile_id
1215
+
1216
+ def initialize(**args)
1217
+ update!(**args)
1218
+ end
1219
+
1220
+ # Update properties of this object
1221
+ def update!(**args)
1222
+ @external_account_id = args[:external_account_id] if args.key?(:external_account_id)
1223
+ @obfuscated_external_account_id = args[:obfuscated_external_account_id] if args.key?(:obfuscated_external_account_id)
1224
+ @obfuscated_external_profile_id = args[:obfuscated_external_profile_id] if args.key?(:obfuscated_external_profile_id)
1225
+ end
1226
+ end
1227
+
544
1228
  # Defines an APK available for this application that is hosted externally and
545
1229
  # not uploaded to Google Play. This function is only available to organizations
546
1230
  # using Managed Play whose application is configured to restrict distribution to
@@ -648,6 +1332,227 @@ module Google
648
1332
  end
649
1333
  end
650
1334
 
1335
+ # Response to list generated APKs.
1336
+ class GeneratedApksListResponse
1337
+ include Google::Apis::Core::Hashable
1338
+
1339
+ # All generated APKs, grouped by the APK signing key.
1340
+ # Corresponds to the JSON property `generatedApks`
1341
+ # @return [Array<Google::Apis::AndroidpublisherV3::GeneratedApksPerSigningKey>]
1342
+ attr_accessor :generated_apks
1343
+
1344
+ def initialize(**args)
1345
+ update!(**args)
1346
+ end
1347
+
1348
+ # Update properties of this object
1349
+ def update!(**args)
1350
+ @generated_apks = args[:generated_apks] if args.key?(:generated_apks)
1351
+ end
1352
+ end
1353
+
1354
+ # Download metadata for split, standalone and universal APKs, as well as asset
1355
+ # pack slices, signed with a given key.
1356
+ class GeneratedApksPerSigningKey
1357
+ include Google::Apis::Core::Hashable
1358
+
1359
+ # SHA256 hash of the APK signing public key certificate.
1360
+ # Corresponds to the JSON property `certificateSha256Hash`
1361
+ # @return [String]
1362
+ attr_accessor :certificate_sha256_hash
1363
+
1364
+ # List of asset pack slices which will be served for this app bundle, signed
1365
+ # with a key corresponding to certificate_sha256_hash.
1366
+ # Corresponds to the JSON property `generatedAssetPackSlices`
1367
+ # @return [Array<Google::Apis::AndroidpublisherV3::GeneratedAssetPackSlice>]
1368
+ attr_accessor :generated_asset_pack_slices
1369
+
1370
+ # List of generated split APKs, signed with a key corresponding to
1371
+ # certificate_sha256_hash.
1372
+ # Corresponds to the JSON property `generatedSplitApks`
1373
+ # @return [Array<Google::Apis::AndroidpublisherV3::GeneratedSplitApk>]
1374
+ attr_accessor :generated_split_apks
1375
+
1376
+ # List of generated standalone APKs, signed with a key corresponding to
1377
+ # certificate_sha256_hash.
1378
+ # Corresponds to the JSON property `generatedStandaloneApks`
1379
+ # @return [Array<Google::Apis::AndroidpublisherV3::GeneratedStandaloneApk>]
1380
+ attr_accessor :generated_standalone_apks
1381
+
1382
+ # Download metadata for a universal APK.
1383
+ # Corresponds to the JSON property `generatedUniversalApk`
1384
+ # @return [Google::Apis::AndroidpublisherV3::GeneratedUniversalApk]
1385
+ attr_accessor :generated_universal_apk
1386
+
1387
+ def initialize(**args)
1388
+ update!(**args)
1389
+ end
1390
+
1391
+ # Update properties of this object
1392
+ def update!(**args)
1393
+ @certificate_sha256_hash = args[:certificate_sha256_hash] if args.key?(:certificate_sha256_hash)
1394
+ @generated_asset_pack_slices = args[:generated_asset_pack_slices] if args.key?(:generated_asset_pack_slices)
1395
+ @generated_split_apks = args[:generated_split_apks] if args.key?(:generated_split_apks)
1396
+ @generated_standalone_apks = args[:generated_standalone_apks] if args.key?(:generated_standalone_apks)
1397
+ @generated_universal_apk = args[:generated_universal_apk] if args.key?(:generated_universal_apk)
1398
+ end
1399
+ end
1400
+
1401
+ # Download metadata for an asset pack slice.
1402
+ class GeneratedAssetPackSlice
1403
+ include Google::Apis::Core::Hashable
1404
+
1405
+ # Download ID, which uniquely identifies the APK to download. Should be supplied
1406
+ # to `generatedapks.download` method.
1407
+ # Corresponds to the JSON property `downloadId`
1408
+ # @return [String]
1409
+ attr_accessor :download_id
1410
+
1411
+ # Name of the module that this asset slice belongs to.
1412
+ # Corresponds to the JSON property `moduleName`
1413
+ # @return [String]
1414
+ attr_accessor :module_name
1415
+
1416
+ # Asset slice ID.
1417
+ # Corresponds to the JSON property `sliceId`
1418
+ # @return [String]
1419
+ attr_accessor :slice_id
1420
+
1421
+ # Asset module version.
1422
+ # Corresponds to the JSON property `version`
1423
+ # @return [Fixnum]
1424
+ attr_accessor :version
1425
+
1426
+ def initialize(**args)
1427
+ update!(**args)
1428
+ end
1429
+
1430
+ # Update properties of this object
1431
+ def update!(**args)
1432
+ @download_id = args[:download_id] if args.key?(:download_id)
1433
+ @module_name = args[:module_name] if args.key?(:module_name)
1434
+ @slice_id = args[:slice_id] if args.key?(:slice_id)
1435
+ @version = args[:version] if args.key?(:version)
1436
+ end
1437
+ end
1438
+
1439
+ # Download metadata for a split APK.
1440
+ class GeneratedSplitApk
1441
+ include Google::Apis::Core::Hashable
1442
+
1443
+ # Download ID, which uniquely identifies the APK to download. Should be supplied
1444
+ # to `generatedapks.download` method.
1445
+ # Corresponds to the JSON property `downloadId`
1446
+ # @return [String]
1447
+ attr_accessor :download_id
1448
+
1449
+ # Name of the module that this APK belongs to.
1450
+ # Corresponds to the JSON property `moduleName`
1451
+ # @return [String]
1452
+ attr_accessor :module_name
1453
+
1454
+ # Split ID. Empty for the main split of the base module.
1455
+ # Corresponds to the JSON property `splitId`
1456
+ # @return [String]
1457
+ attr_accessor :split_id
1458
+
1459
+ # ID of the generated variant.
1460
+ # Corresponds to the JSON property `variantId`
1461
+ # @return [Fixnum]
1462
+ attr_accessor :variant_id
1463
+
1464
+ def initialize(**args)
1465
+ update!(**args)
1466
+ end
1467
+
1468
+ # Update properties of this object
1469
+ def update!(**args)
1470
+ @download_id = args[:download_id] if args.key?(:download_id)
1471
+ @module_name = args[:module_name] if args.key?(:module_name)
1472
+ @split_id = args[:split_id] if args.key?(:split_id)
1473
+ @variant_id = args[:variant_id] if args.key?(:variant_id)
1474
+ end
1475
+ end
1476
+
1477
+ # Download metadata for a standalone APK.
1478
+ class GeneratedStandaloneApk
1479
+ include Google::Apis::Core::Hashable
1480
+
1481
+ # Download ID, which uniquely identifies the APK to download. Should be supplied
1482
+ # to `generatedapks.download` method.
1483
+ # Corresponds to the JSON property `downloadId`
1484
+ # @return [String]
1485
+ attr_accessor :download_id
1486
+
1487
+ # ID of the generated variant.
1488
+ # Corresponds to the JSON property `variantId`
1489
+ # @return [Fixnum]
1490
+ attr_accessor :variant_id
1491
+
1492
+ def initialize(**args)
1493
+ update!(**args)
1494
+ end
1495
+
1496
+ # Update properties of this object
1497
+ def update!(**args)
1498
+ @download_id = args[:download_id] if args.key?(:download_id)
1499
+ @variant_id = args[:variant_id] if args.key?(:variant_id)
1500
+ end
1501
+ end
1502
+
1503
+ # Download metadata for a universal APK.
1504
+ class GeneratedUniversalApk
1505
+ include Google::Apis::Core::Hashable
1506
+
1507
+ # Download ID, which uniquely identifies the APK to download. Should be supplied
1508
+ # to `generatedapks.download` method.
1509
+ # Corresponds to the JSON property `downloadId`
1510
+ # @return [String]
1511
+ attr_accessor :download_id
1512
+
1513
+ def initialize(**args)
1514
+ update!(**args)
1515
+ end
1516
+
1517
+ # Update properties of this object
1518
+ def update!(**args)
1519
+ @download_id = args[:download_id] if args.key?(:download_id)
1520
+ end
1521
+ end
1522
+
1523
+ # An access grant resource.
1524
+ class Grant
1525
+ include Google::Apis::Core::Hashable
1526
+
1527
+ # The permissions granted to the user for this app.
1528
+ # Corresponds to the JSON property `appLevelPermissions`
1529
+ # @return [Array<String>]
1530
+ attr_accessor :app_level_permissions
1531
+
1532
+ # Required. Resource name for this grant, following the pattern "developers/`
1533
+ # developer`/users/`email`/grants/`package_name`". If this grant is for a draft
1534
+ # app, the app ID will be used in this resource name instead of the package name.
1535
+ # Corresponds to the JSON property `name`
1536
+ # @return [String]
1537
+ attr_accessor :name
1538
+
1539
+ # Immutable. The package name of the app. This will be empty for draft apps.
1540
+ # Corresponds to the JSON property `packageName`
1541
+ # @return [String]
1542
+ attr_accessor :package_name
1543
+
1544
+ def initialize(**args)
1545
+ update!(**args)
1546
+ end
1547
+
1548
+ # Update properties of this object
1549
+ def update!(**args)
1550
+ @app_level_permissions = args[:app_level_permissions] if args.key?(:app_level_permissions)
1551
+ @name = args[:name] if args.key?(:name)
1552
+ @package_name = args[:package_name] if args.key?(:package_name)
1553
+ end
1554
+ end
1555
+
651
1556
  # An uploaded image. The resource for ImagesService.
652
1557
  class Image
653
1558
  include Google::Apis::Core::Hashable
@@ -770,6 +1675,11 @@ module Google
770
1675
  # @return [Hash<String,Google::Apis::AndroidpublisherV3::InAppProductListing>]
771
1676
  attr_accessor :listings
772
1677
 
1678
+ # Details about taxation and legal compliance for managed products.
1679
+ # Corresponds to the JSON property `managedProductTaxesAndComplianceSettings`
1680
+ # @return [Google::Apis::AndroidpublisherV3::ManagedProductTaxAndComplianceSettings]
1681
+ attr_accessor :managed_product_taxes_and_compliance_settings
1682
+
773
1683
  # Package name of the parent app.
774
1684
  # Corresponds to the JSON property `packageName`
775
1685
  # @return [String]
@@ -803,6 +1713,12 @@ module Google
803
1713
  # @return [String]
804
1714
  attr_accessor :subscription_period
805
1715
 
1716
+ # Details about taxation, Google Play policy and legal compliance for
1717
+ # subscription products.
1718
+ # Corresponds to the JSON property `subscriptionTaxesAndComplianceSettings`
1719
+ # @return [Google::Apis::AndroidpublisherV3::SubscriptionTaxAndComplianceSettings]
1720
+ attr_accessor :subscription_taxes_and_compliance_settings
1721
+
806
1722
  # Trial period, specified in ISO 8601 format. Acceptable values are anything
807
1723
  # between P7D (seven days) and P999D (999 days).
808
1724
  # Corresponds to the JSON property `trialPeriod`
@@ -819,12 +1735,14 @@ module Google
819
1735
  @default_price = args[:default_price] if args.key?(:default_price)
820
1736
  @grace_period = args[:grace_period] if args.key?(:grace_period)
821
1737
  @listings = args[:listings] if args.key?(:listings)
1738
+ @managed_product_taxes_and_compliance_settings = args[:managed_product_taxes_and_compliance_settings] if args.key?(:managed_product_taxes_and_compliance_settings)
822
1739
  @package_name = args[:package_name] if args.key?(:package_name)
823
1740
  @prices = args[:prices] if args.key?(:prices)
824
1741
  @purchase_type = args[:purchase_type] if args.key?(:purchase_type)
825
1742
  @sku = args[:sku] if args.key?(:sku)
826
1743
  @status = args[:status] if args.key?(:status)
827
1744
  @subscription_period = args[:subscription_period] if args.key?(:subscription_period)
1745
+ @subscription_taxes_and_compliance_settings = args[:subscription_taxes_and_compliance_settings] if args.key?(:subscription_taxes_and_compliance_settings)
828
1746
  @trial_period = args[:trial_period] if args.key?(:trial_period)
829
1747
  end
830
1748
  end
@@ -984,30 +1902,134 @@ module Google
984
1902
  end
985
1903
  end
986
1904
 
987
- # A localized store listing. The resource for ListingsService.
988
- class Listing
1905
+ # Response listing existing device tier configs.
1906
+ class ListDeviceTierConfigsResponse
989
1907
  include Google::Apis::Core::Hashable
990
1908
 
991
- # Full description of the app.
992
- # Corresponds to the JSON property `fullDescription`
993
- # @return [String]
994
- attr_accessor :full_description
1909
+ # Device tier configs created by the developer.
1910
+ # Corresponds to the JSON property `deviceTierConfigs`
1911
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceTierConfig>]
1912
+ attr_accessor :device_tier_configs
995
1913
 
996
- # Language localization code (a BCP-47 language tag; for example, "de-AT" for
997
- # Austrian German).
998
- # Corresponds to the JSON property `language`
1914
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1915
+ # field is omitted, there are no subsequent pages.
1916
+ # Corresponds to the JSON property `nextPageToken`
999
1917
  # @return [String]
1000
- attr_accessor :language
1918
+ attr_accessor :next_page_token
1001
1919
 
1002
- # Short description of the app.
1003
- # Corresponds to the JSON property `shortDescription`
1004
- # @return [String]
1005
- attr_accessor :short_description
1920
+ def initialize(**args)
1921
+ update!(**args)
1922
+ end
1006
1923
 
1007
- # Localized title of the app.
1008
- # Corresponds to the JSON property `title`
1009
- # @return [String]
1010
- attr_accessor :title
1924
+ # Update properties of this object
1925
+ def update!(**args)
1926
+ @device_tier_configs = args[:device_tier_configs] if args.key?(:device_tier_configs)
1927
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1928
+ end
1929
+ end
1930
+
1931
+ # Response message for ListSubscriptionOffers.
1932
+ class ListSubscriptionOffersResponse
1933
+ include Google::Apis::Core::Hashable
1934
+
1935
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1936
+ # field is omitted, there are no subsequent pages.
1937
+ # Corresponds to the JSON property `nextPageToken`
1938
+ # @return [String]
1939
+ attr_accessor :next_page_token
1940
+
1941
+ # The subscription offers from the specified subscription.
1942
+ # Corresponds to the JSON property `subscriptionOffers`
1943
+ # @return [Array<Google::Apis::AndroidpublisherV3::SubscriptionOffer>]
1944
+ attr_accessor :subscription_offers
1945
+
1946
+ def initialize(**args)
1947
+ update!(**args)
1948
+ end
1949
+
1950
+ # Update properties of this object
1951
+ def update!(**args)
1952
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1953
+ @subscription_offers = args[:subscription_offers] if args.key?(:subscription_offers)
1954
+ end
1955
+ end
1956
+
1957
+ # Response message for ListSubscriptions.
1958
+ class ListSubscriptionsResponse
1959
+ include Google::Apis::Core::Hashable
1960
+
1961
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1962
+ # field is omitted, there are no subsequent pages.
1963
+ # Corresponds to the JSON property `nextPageToken`
1964
+ # @return [String]
1965
+ attr_accessor :next_page_token
1966
+
1967
+ # The subscriptions from the specified app.
1968
+ # Corresponds to the JSON property `subscriptions`
1969
+ # @return [Array<Google::Apis::AndroidpublisherV3::Subscription>]
1970
+ attr_accessor :subscriptions
1971
+
1972
+ def initialize(**args)
1973
+ update!(**args)
1974
+ end
1975
+
1976
+ # Update properties of this object
1977
+ def update!(**args)
1978
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1979
+ @subscriptions = args[:subscriptions] if args.key?(:subscriptions)
1980
+ end
1981
+ end
1982
+
1983
+ # A response containing one or more users with access to an account.
1984
+ class ListUsersResponse
1985
+ include Google::Apis::Core::Hashable
1986
+
1987
+ # A token to pass to subsequent calls in order to retrieve subsequent results.
1988
+ # This will not be set if there are no more results to return.
1989
+ # Corresponds to the JSON property `nextPageToken`
1990
+ # @return [String]
1991
+ attr_accessor :next_page_token
1992
+
1993
+ # The resulting users.
1994
+ # Corresponds to the JSON property `users`
1995
+ # @return [Array<Google::Apis::AndroidpublisherV3::User>]
1996
+ attr_accessor :users
1997
+
1998
+ def initialize(**args)
1999
+ update!(**args)
2000
+ end
2001
+
2002
+ # Update properties of this object
2003
+ def update!(**args)
2004
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2005
+ @users = args[:users] if args.key?(:users)
2006
+ end
2007
+ end
2008
+
2009
+ # A localized store listing. The resource for ListingsService.
2010
+ class Listing
2011
+ include Google::Apis::Core::Hashable
2012
+
2013
+ # Full description of the app.
2014
+ # Corresponds to the JSON property `fullDescription`
2015
+ # @return [String]
2016
+ attr_accessor :full_description
2017
+
2018
+ # Language localization code (a BCP-47 language tag; for example, "de-AT" for
2019
+ # Austrian German).
2020
+ # Corresponds to the JSON property `language`
2021
+ # @return [String]
2022
+ attr_accessor :language
2023
+
2024
+ # Short description of the app.
2025
+ # Corresponds to the JSON property `shortDescription`
2026
+ # @return [String]
2027
+ attr_accessor :short_description
2028
+
2029
+ # Localized title of the app.
2030
+ # Corresponds to the JSON property `title`
2031
+ # @return [String]
2032
+ attr_accessor :title
1011
2033
 
1012
2034
  # URL of a promotional YouTube video for the app.
1013
2035
  # Corresponds to the JSON property `video`
@@ -1053,7 +2075,7 @@ module Google
1053
2075
  end
1054
2076
  end
1055
2077
 
1056
- # Release notes specification, i.e. language and text.
2078
+ # Localized text in given language.
1057
2079
  class LocalizedText
1058
2080
  include Google::Apis::Core::Hashable
1059
2081
 
@@ -1079,6 +2101,282 @@ module Google
1079
2101
  end
1080
2102
  end
1081
2103
 
2104
+ # Details about taxation and legal compliance for managed products.
2105
+ class ManagedProductTaxAndComplianceSettings
2106
+ include Google::Apis::Core::Hashable
2107
+
2108
+ # Digital content or service classification for products distributed to users in
2109
+ # the European Economic Area (EEA). The withdrawal regime under EEA consumer
2110
+ # laws depends on this classification. Refer to the [Help Center article](https:/
2111
+ # /support.google.com/googleplay/android-developer/answer/10463498) for more
2112
+ # information.
2113
+ # Corresponds to the JSON property `eeaWithdrawalRightType`
2114
+ # @return [String]
2115
+ attr_accessor :eea_withdrawal_right_type
2116
+
2117
+ # A mapping from region code to tax rate details. The keys are region codes as
2118
+ # defined by Unicode's "CLDR".
2119
+ # Corresponds to the JSON property `taxRateInfoByRegionCode`
2120
+ # @return [Hash<String,Google::Apis::AndroidpublisherV3::RegionalTaxRateInfo>]
2121
+ attr_accessor :tax_rate_info_by_region_code
2122
+
2123
+ def initialize(**args)
2124
+ update!(**args)
2125
+ end
2126
+
2127
+ # Update properties of this object
2128
+ def update!(**args)
2129
+ @eea_withdrawal_right_type = args[:eea_withdrawal_right_type] if args.key?(:eea_withdrawal_right_type)
2130
+ @tax_rate_info_by_region_code = args[:tax_rate_info_by_region_code] if args.key?(:tax_rate_info_by_region_code)
2131
+ end
2132
+ end
2133
+
2134
+ # Request message for MigrateBasePlanPrices.
2135
+ class MigrateBasePlanPricesRequest
2136
+ include Google::Apis::Core::Hashable
2137
+
2138
+ # Required. The regional prices to update.
2139
+ # Corresponds to the JSON property `regionalPriceMigrations`
2140
+ # @return [Array<Google::Apis::AndroidpublisherV3::RegionalPriceMigrationConfig>]
2141
+ attr_accessor :regional_price_migrations
2142
+
2143
+ # The version of the available regions being used for the specified resource.
2144
+ # Corresponds to the JSON property `regionsVersion`
2145
+ # @return [Google::Apis::AndroidpublisherV3::RegionsVersion]
2146
+ attr_accessor :regions_version
2147
+
2148
+ def initialize(**args)
2149
+ update!(**args)
2150
+ end
2151
+
2152
+ # Update properties of this object
2153
+ def update!(**args)
2154
+ @regional_price_migrations = args[:regional_price_migrations] if args.key?(:regional_price_migrations)
2155
+ @regions_version = args[:regions_version] if args.key?(:regions_version)
2156
+ end
2157
+ end
2158
+
2159
+ # Response message for MigrateBasePlanPrices.
2160
+ class MigrateBasePlanPricesResponse
2161
+ include Google::Apis::Core::Hashable
2162
+
2163
+ def initialize(**args)
2164
+ update!(**args)
2165
+ end
2166
+
2167
+ # Update properties of this object
2168
+ def update!(**args)
2169
+ end
2170
+ end
2171
+
2172
+ # Represents an amount of money with its currency type.
2173
+ class Money
2174
+ include Google::Apis::Core::Hashable
2175
+
2176
+ # The three-letter currency code defined in ISO 4217.
2177
+ # Corresponds to the JSON property `currencyCode`
2178
+ # @return [String]
2179
+ attr_accessor :currency_code
2180
+
2181
+ # Number of nano (10^-9) units of the amount. The value must be between -999,999,
2182
+ # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
2183
+ # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
2184
+ # negative. If `units` is negative, `nanos` must be negative or zero. For
2185
+ # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
2186
+ # Corresponds to the JSON property `nanos`
2187
+ # @return [Fixnum]
2188
+ attr_accessor :nanos
2189
+
2190
+ # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
2191
+ # 1 unit is one US dollar.
2192
+ # Corresponds to the JSON property `units`
2193
+ # @return [Fixnum]
2194
+ attr_accessor :units
2195
+
2196
+ def initialize(**args)
2197
+ update!(**args)
2198
+ end
2199
+
2200
+ # Update properties of this object
2201
+ def update!(**args)
2202
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
2203
+ @nanos = args[:nanos] if args.key?(:nanos)
2204
+ @units = args[:units] if args.key?(:units)
2205
+ end
2206
+ end
2207
+
2208
+ # Offer details information related to a purchase line item.
2209
+ class OfferDetails
2210
+ include Google::Apis::Core::Hashable
2211
+
2212
+ # The base plan ID. Present for all base plan and offers.
2213
+ # Corresponds to the JSON property `basePlanId`
2214
+ # @return [String]
2215
+ attr_accessor :base_plan_id
2216
+
2217
+ # The offer ID. Only present for discounted offers.
2218
+ # Corresponds to the JSON property `offerId`
2219
+ # @return [String]
2220
+ attr_accessor :offer_id
2221
+
2222
+ # The latest offer tags associated with the offer. It includes tags inherited
2223
+ # from the base plan.
2224
+ # Corresponds to the JSON property `offerTags`
2225
+ # @return [Array<String>]
2226
+ attr_accessor :offer_tags
2227
+
2228
+ def initialize(**args)
2229
+ update!(**args)
2230
+ end
2231
+
2232
+ # Update properties of this object
2233
+ def update!(**args)
2234
+ @base_plan_id = args[:base_plan_id] if args.key?(:base_plan_id)
2235
+ @offer_id = args[:offer_id] if args.key?(:offer_id)
2236
+ @offer_tags = args[:offer_tags] if args.key?(:offer_tags)
2237
+ end
2238
+ end
2239
+
2240
+ # Represents a custom tag specified for base plans and subscription offers.
2241
+ class OfferTag
2242
+ include Google::Apis::Core::Hashable
2243
+
2244
+ # Must conform with RFC-1034. That is, this string can only contain lower-case
2245
+ # letters (a-z), numbers (0-9), and hyphens (-), and be at most 20 characters.
2246
+ # Corresponds to the JSON property `tag`
2247
+ # @return [String]
2248
+ attr_accessor :tag
2249
+
2250
+ def initialize(**args)
2251
+ update!(**args)
2252
+ end
2253
+
2254
+ # Update properties of this object
2255
+ def update!(**args)
2256
+ @tag = args[:tag] if args.key?(:tag)
2257
+ end
2258
+ end
2259
+
2260
+ # Pricing information for any new locations Play may launch in.
2261
+ class OtherRegionsBasePlanConfig
2262
+ include Google::Apis::Core::Hashable
2263
+
2264
+ # Represents an amount of money with its currency type.
2265
+ # Corresponds to the JSON property `eurPrice`
2266
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2267
+ attr_accessor :eur_price
2268
+
2269
+ # Whether the base plan is available for new subscribers in any new locations
2270
+ # Play may launch in. If not specified, this will default to false.
2271
+ # Corresponds to the JSON property `newSubscriberAvailability`
2272
+ # @return [Boolean]
2273
+ attr_accessor :new_subscriber_availability
2274
+ alias_method :new_subscriber_availability?, :new_subscriber_availability
2275
+
2276
+ # Represents an amount of money with its currency type.
2277
+ # Corresponds to the JSON property `usdPrice`
2278
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2279
+ attr_accessor :usd_price
2280
+
2281
+ def initialize(**args)
2282
+ update!(**args)
2283
+ end
2284
+
2285
+ # Update properties of this object
2286
+ def update!(**args)
2287
+ @eur_price = args[:eur_price] if args.key?(:eur_price)
2288
+ @new_subscriber_availability = args[:new_subscriber_availability] if args.key?(:new_subscriber_availability)
2289
+ @usd_price = args[:usd_price] if args.key?(:usd_price)
2290
+ end
2291
+ end
2292
+
2293
+ # Configuration for any new locations Play may launch in specified on a
2294
+ # subscription offer.
2295
+ class OtherRegionsSubscriptionOfferConfig
2296
+ include Google::Apis::Core::Hashable
2297
+
2298
+ # Whether the subscription offer in any new locations Play may launch in the
2299
+ # future. If not specified, this will default to false.
2300
+ # Corresponds to the JSON property `otherRegionsNewSubscriberAvailability`
2301
+ # @return [Boolean]
2302
+ attr_accessor :other_regions_new_subscriber_availability
2303
+ alias_method :other_regions_new_subscriber_availability?, :other_regions_new_subscriber_availability
2304
+
2305
+ def initialize(**args)
2306
+ update!(**args)
2307
+ end
2308
+
2309
+ # Update properties of this object
2310
+ def update!(**args)
2311
+ @other_regions_new_subscriber_availability = args[:other_regions_new_subscriber_availability] if args.key?(:other_regions_new_subscriber_availability)
2312
+ end
2313
+ end
2314
+
2315
+ # Configuration for any new locations Play may launch in for a single offer
2316
+ # phase.
2317
+ class OtherRegionsSubscriptionOfferPhaseConfig
2318
+ include Google::Apis::Core::Hashable
2319
+
2320
+ # Pricing information for any new locations Play may launch in.
2321
+ # Corresponds to the JSON property `absoluteDiscounts`
2322
+ # @return [Google::Apis::AndroidpublisherV3::OtherRegionsSubscriptionOfferPhasePrices]
2323
+ attr_accessor :absolute_discounts
2324
+
2325
+ # Pricing information for any new locations Play may launch in.
2326
+ # Corresponds to the JSON property `otherRegionsPrices`
2327
+ # @return [Google::Apis::AndroidpublisherV3::OtherRegionsSubscriptionOfferPhasePrices]
2328
+ attr_accessor :other_regions_prices
2329
+
2330
+ # The fraction of the base plan price prorated over the phase duration that the
2331
+ # user pays for this offer phase. For example, if the base plan price for this
2332
+ # region is $12 for a period of 1 year, then a 50% discount for a phase of a
2333
+ # duration of 3 months would correspond to a price of $1.50. The discount must
2334
+ # be specified as a fraction strictly larger than 0 and strictly smaller than 1.
2335
+ # The resulting price will be rounded to the nearest billable unit (e.g. cents
2336
+ # for USD). The relative discount is considered invalid if the discounted price
2337
+ # ends up being smaller than the minimum price allowed in any new locations Play
2338
+ # may launch in.
2339
+ # Corresponds to the JSON property `relativeDiscount`
2340
+ # @return [Float]
2341
+ attr_accessor :relative_discount
2342
+
2343
+ def initialize(**args)
2344
+ update!(**args)
2345
+ end
2346
+
2347
+ # Update properties of this object
2348
+ def update!(**args)
2349
+ @absolute_discounts = args[:absolute_discounts] if args.key?(:absolute_discounts)
2350
+ @other_regions_prices = args[:other_regions_prices] if args.key?(:other_regions_prices)
2351
+ @relative_discount = args[:relative_discount] if args.key?(:relative_discount)
2352
+ end
2353
+ end
2354
+
2355
+ # Pricing information for any new locations Play may launch in.
2356
+ class OtherRegionsSubscriptionOfferPhasePrices
2357
+ include Google::Apis::Core::Hashable
2358
+
2359
+ # Represents an amount of money with its currency type.
2360
+ # Corresponds to the JSON property `eurPrice`
2361
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2362
+ attr_accessor :eur_price
2363
+
2364
+ # Represents an amount of money with its currency type.
2365
+ # Corresponds to the JSON property `usdPrice`
2366
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2367
+ attr_accessor :usd_price
2368
+
2369
+ def initialize(**args)
2370
+ update!(**args)
2371
+ end
2372
+
2373
+ # Update properties of this object
2374
+ def update!(**args)
2375
+ @eur_price = args[:eur_price] if args.key?(:eur_price)
2376
+ @usd_price = args[:usd_price] if args.key?(:usd_price)
2377
+ end
2378
+ end
2379
+
1082
2380
  # Information about the current page. List operations that supports paging
1083
2381
  # return only one "page" of results. This protocol buffer message describes the
1084
2382
  # page that has been returned.
@@ -1114,6 +2412,73 @@ module Google
1114
2412
  end
1115
2413
  end
1116
2414
 
2415
+ # Information specific to a subscription in paused state.
2416
+ class PausedStateContext
2417
+ include Google::Apis::Core::Hashable
2418
+
2419
+ # Time at which the subscription will be automatically resumed.
2420
+ # Corresponds to the JSON property `autoResumeTime`
2421
+ # @return [String]
2422
+ attr_accessor :auto_resume_time
2423
+
2424
+ def initialize(**args)
2425
+ update!(**args)
2426
+ end
2427
+
2428
+ # Update properties of this object
2429
+ def update!(**args)
2430
+ @auto_resume_time = args[:auto_resume_time] if args.key?(:auto_resume_time)
2431
+ end
2432
+ end
2433
+
2434
+ # Represents a base plan that does not automatically renew at the end of the
2435
+ # base plan, and must be manually renewed by the user.
2436
+ class PrepaidBasePlanType
2437
+ include Google::Apis::Core::Hashable
2438
+
2439
+ # Required. Subscription period, specified in ISO 8601 format. For a list of
2440
+ # acceptable billing periods, refer to the help center.
2441
+ # Corresponds to the JSON property `billingPeriodDuration`
2442
+ # @return [String]
2443
+ attr_accessor :billing_period_duration
2444
+
2445
+ # Whether users should be able to extend this prepaid base plan in Google Play
2446
+ # surfaces. Defaults to TIME_EXTENSION_ACTIVE if not specified.
2447
+ # Corresponds to the JSON property `timeExtension`
2448
+ # @return [String]
2449
+ attr_accessor :time_extension
2450
+
2451
+ def initialize(**args)
2452
+ update!(**args)
2453
+ end
2454
+
2455
+ # Update properties of this object
2456
+ def update!(**args)
2457
+ @billing_period_duration = args[:billing_period_duration] if args.key?(:billing_period_duration)
2458
+ @time_extension = args[:time_extension] if args.key?(:time_extension)
2459
+ end
2460
+ end
2461
+
2462
+ # Information related to a prepaid plan.
2463
+ class PrepaidPlan
2464
+ include Google::Apis::Core::Hashable
2465
+
2466
+ # If present, this is the time after which top up purchases are allowed for the
2467
+ # prepaid plan. Will not be present for expired prepaid plans.
2468
+ # Corresponds to the JSON property `allowExtendAfterTime`
2469
+ # @return [String]
2470
+ attr_accessor :allow_extend_after_time
2471
+
2472
+ def initialize(**args)
2473
+ update!(**args)
2474
+ end
2475
+
2476
+ # Update properties of this object
2477
+ def update!(**args)
2478
+ @allow_extend_after_time = args[:allow_extend_after_time] if args.key?(:allow_extend_after_time)
2479
+ end
2480
+ end
2481
+
1117
2482
  # Definition of a price, i.e. currency and units.
1118
2483
  class Price
1119
2484
  include Google::Apis::Core::Hashable
@@ -1189,7 +2554,7 @@ module Google
1189
2554
  # @return [String]
1190
2555
  attr_accessor :order_id
1191
2556
 
1192
- # The inapp product SKU.
2557
+ # The inapp product SKU. May not be present.
1193
2558
  # Corresponds to the JSON property `productId`
1194
2559
  # @return [String]
1195
2560
  attr_accessor :product_id
@@ -1206,62 +2571,274 @@ module Google
1206
2571
  # @return [Fixnum]
1207
2572
  attr_accessor :purchase_time_millis
1208
2573
 
1209
- # The purchase token generated to identify this purchase.
1210
- # Corresponds to the JSON property `purchaseToken`
1211
- # @return [String]
1212
- attr_accessor :purchase_token
2574
+ # The purchase token generated to identify this purchase. May not be present.
2575
+ # Corresponds to the JSON property `purchaseToken`
2576
+ # @return [String]
2577
+ attr_accessor :purchase_token
2578
+
2579
+ # The type of purchase of the inapp product. This field is only set if this
2580
+ # purchase was not made using the standard in-app billing flow. Possible values
2581
+ # are: 0. Test (i.e. purchased from a license testing account) 1. Promo (i.e.
2582
+ # purchased using a promo code) 2. Rewarded (i.e. from watching a video ad
2583
+ # instead of paying)
2584
+ # Corresponds to the JSON property `purchaseType`
2585
+ # @return [Fixnum]
2586
+ attr_accessor :purchase_type
2587
+
2588
+ # The quantity associated with the purchase of the inapp product. If not present,
2589
+ # the quantity is 1.
2590
+ # Corresponds to the JSON property `quantity`
2591
+ # @return [Fixnum]
2592
+ attr_accessor :quantity
2593
+
2594
+ # ISO 3166-1 alpha-2 billing region code of the user at the time the product was
2595
+ # granted.
2596
+ # Corresponds to the JSON property `regionCode`
2597
+ # @return [String]
2598
+ attr_accessor :region_code
2599
+
2600
+ def initialize(**args)
2601
+ update!(**args)
2602
+ end
2603
+
2604
+ # Update properties of this object
2605
+ def update!(**args)
2606
+ @acknowledgement_state = args[:acknowledgement_state] if args.key?(:acknowledgement_state)
2607
+ @consumption_state = args[:consumption_state] if args.key?(:consumption_state)
2608
+ @developer_payload = args[:developer_payload] if args.key?(:developer_payload)
2609
+ @kind = args[:kind] if args.key?(:kind)
2610
+ @obfuscated_external_account_id = args[:obfuscated_external_account_id] if args.key?(:obfuscated_external_account_id)
2611
+ @obfuscated_external_profile_id = args[:obfuscated_external_profile_id] if args.key?(:obfuscated_external_profile_id)
2612
+ @order_id = args[:order_id] if args.key?(:order_id)
2613
+ @product_id = args[:product_id] if args.key?(:product_id)
2614
+ @purchase_state = args[:purchase_state] if args.key?(:purchase_state)
2615
+ @purchase_time_millis = args[:purchase_time_millis] if args.key?(:purchase_time_millis)
2616
+ @purchase_token = args[:purchase_token] if args.key?(:purchase_token)
2617
+ @purchase_type = args[:purchase_type] if args.key?(:purchase_type)
2618
+ @quantity = args[:quantity] if args.key?(:quantity)
2619
+ @region_code = args[:region_code] if args.key?(:region_code)
2620
+ end
2621
+ end
2622
+
2623
+ # Request for the product.purchases.acknowledge API.
2624
+ class ProductPurchasesAcknowledgeRequest
2625
+ include Google::Apis::Core::Hashable
2626
+
2627
+ # Payload to attach to the purchase.
2628
+ # Corresponds to the JSON property `developerPayload`
2629
+ # @return [String]
2630
+ attr_accessor :developer_payload
2631
+
2632
+ def initialize(**args)
2633
+ update!(**args)
2634
+ end
2635
+
2636
+ # Update properties of this object
2637
+ def update!(**args)
2638
+ @developer_payload = args[:developer_payload] if args.key?(:developer_payload)
2639
+ end
2640
+ end
2641
+
2642
+ # Configuration for a base plan specific to a region.
2643
+ class RegionalBasePlanConfig
2644
+ include Google::Apis::Core::Hashable
2645
+
2646
+ # Whether the base plan in the specified region is available for new subscribers.
2647
+ # Existing subscribers will not have their subscription canceled if this value
2648
+ # is set to false. If not specified, this will default to false.
2649
+ # Corresponds to the JSON property `newSubscriberAvailability`
2650
+ # @return [Boolean]
2651
+ attr_accessor :new_subscriber_availability
2652
+ alias_method :new_subscriber_availability?, :new_subscriber_availability
2653
+
2654
+ # Represents an amount of money with its currency type.
2655
+ # Corresponds to the JSON property `price`
2656
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2657
+ attr_accessor :price
2658
+
2659
+ # Required. Region code this configuration applies to, as defined by ISO 3166-2,
2660
+ # e.g. "US".
2661
+ # Corresponds to the JSON property `regionCode`
2662
+ # @return [String]
2663
+ attr_accessor :region_code
2664
+
2665
+ def initialize(**args)
2666
+ update!(**args)
2667
+ end
2668
+
2669
+ # Update properties of this object
2670
+ def update!(**args)
2671
+ @new_subscriber_availability = args[:new_subscriber_availability] if args.key?(:new_subscriber_availability)
2672
+ @price = args[:price] if args.key?(:price)
2673
+ @region_code = args[:region_code] if args.key?(:region_code)
2674
+ end
2675
+ end
2676
+
2677
+ # Configuration for a price migration.
2678
+ class RegionalPriceMigrationConfig
2679
+ include Google::Apis::Core::Hashable
2680
+
2681
+ # Required. The cutoff time for historical prices that subscribers can remain
2682
+ # paying. Subscribers who are on a price that was created before this cutoff
2683
+ # time will be migrated to the currently-offered price. These subscribers will
2684
+ # receive a notification that they will be paying a different price. Subscribers
2685
+ # who do not agree to the new price will have their subscription ended at the
2686
+ # next renewal.
2687
+ # Corresponds to the JSON property `oldestAllowedPriceVersionTime`
2688
+ # @return [String]
2689
+ attr_accessor :oldest_allowed_price_version_time
2690
+
2691
+ # Required. Region code this configuration applies to, as defined by ISO 3166-2,
2692
+ # e.g. "US".
2693
+ # Corresponds to the JSON property `regionCode`
2694
+ # @return [String]
2695
+ attr_accessor :region_code
2696
+
2697
+ def initialize(**args)
2698
+ update!(**args)
2699
+ end
2700
+
2701
+ # Update properties of this object
2702
+ def update!(**args)
2703
+ @oldest_allowed_price_version_time = args[:oldest_allowed_price_version_time] if args.key?(:oldest_allowed_price_version_time)
2704
+ @region_code = args[:region_code] if args.key?(:region_code)
2705
+ end
2706
+ end
2707
+
2708
+ # Configuration for a subscription offer in a single region.
2709
+ class RegionalSubscriptionOfferConfig
2710
+ include Google::Apis::Core::Hashable
2711
+
2712
+ # Whether the subscription offer in the specified region is available for new
2713
+ # subscribers. Existing subscribers will not have their subscription cancelled
2714
+ # if this value is set to false. If not specified, this will default to false.
2715
+ # Corresponds to the JSON property `newSubscriberAvailability`
2716
+ # @return [Boolean]
2717
+ attr_accessor :new_subscriber_availability
2718
+ alias_method :new_subscriber_availability?, :new_subscriber_availability
2719
+
2720
+ # Required. Immutable. Region code this configuration applies to, as defined by
2721
+ # ISO 3166-2, e.g. "US".
2722
+ # Corresponds to the JSON property `regionCode`
2723
+ # @return [String]
2724
+ attr_accessor :region_code
2725
+
2726
+ def initialize(**args)
2727
+ update!(**args)
2728
+ end
2729
+
2730
+ # Update properties of this object
2731
+ def update!(**args)
2732
+ @new_subscriber_availability = args[:new_subscriber_availability] if args.key?(:new_subscriber_availability)
2733
+ @region_code = args[:region_code] if args.key?(:region_code)
2734
+ end
2735
+ end
2736
+
2737
+ # Configuration for a single phase of a subscription offer in a single region.
2738
+ class RegionalSubscriptionOfferPhaseConfig
2739
+ include Google::Apis::Core::Hashable
1213
2740
 
1214
- # The type of purchase of the inapp product. This field is only set if this
1215
- # purchase was not made using the standard in-app billing flow. Possible values
1216
- # are: 0. Test (i.e. purchased from a license testing account) 1. Promo (i.e.
1217
- # purchased using a promo code) 2. Rewarded (i.e. from watching a video ad
1218
- # instead of paying)
1219
- # Corresponds to the JSON property `purchaseType`
1220
- # @return [Fixnum]
1221
- attr_accessor :purchase_type
2741
+ # Represents an amount of money with its currency type.
2742
+ # Corresponds to the JSON property `absoluteDiscount`
2743
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2744
+ attr_accessor :absolute_discount
1222
2745
 
1223
- # The quantity associated with the purchase of the inapp product.
1224
- # Corresponds to the JSON property `quantity`
1225
- # @return [Fixnum]
1226
- attr_accessor :quantity
2746
+ # Represents an amount of money with its currency type.
2747
+ # Corresponds to the JSON property `price`
2748
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2749
+ attr_accessor :price
1227
2750
 
1228
- # ISO 3166-1 alpha-2 billing region code of the user at the time the product was
1229
- # granted.
2751
+ # Required. Immutable. The region to which this config applies.
1230
2752
  # Corresponds to the JSON property `regionCode`
1231
2753
  # @return [String]
1232
2754
  attr_accessor :region_code
1233
2755
 
2756
+ # The fraction of the base plan price prorated over the phase duration that the
2757
+ # user pays for this offer phase. For example, if the base plan price for this
2758
+ # region is $12 for a period of 1 year, then a 50% discount for a phase of a
2759
+ # duration of 3 months would correspond to a price of $1.50. The discount must
2760
+ # be specified as a fraction strictly larger than 0 and strictly smaller than 1.
2761
+ # The resulting price will be rounded to the nearest billable unit (e.g. cents
2762
+ # for USD). The relative discount is considered invalid if the discounted price
2763
+ # ends up being smaller than the minimum price allowed in this region.
2764
+ # Corresponds to the JSON property `relativeDiscount`
2765
+ # @return [Float]
2766
+ attr_accessor :relative_discount
2767
+
1234
2768
  def initialize(**args)
1235
2769
  update!(**args)
1236
2770
  end
1237
2771
 
1238
2772
  # Update properties of this object
1239
2773
  def update!(**args)
1240
- @acknowledgement_state = args[:acknowledgement_state] if args.key?(:acknowledgement_state)
1241
- @consumption_state = args[:consumption_state] if args.key?(:consumption_state)
1242
- @developer_payload = args[:developer_payload] if args.key?(:developer_payload)
1243
- @kind = args[:kind] if args.key?(:kind)
1244
- @obfuscated_external_account_id = args[:obfuscated_external_account_id] if args.key?(:obfuscated_external_account_id)
1245
- @obfuscated_external_profile_id = args[:obfuscated_external_profile_id] if args.key?(:obfuscated_external_profile_id)
1246
- @order_id = args[:order_id] if args.key?(:order_id)
1247
- @product_id = args[:product_id] if args.key?(:product_id)
1248
- @purchase_state = args[:purchase_state] if args.key?(:purchase_state)
1249
- @purchase_time_millis = args[:purchase_time_millis] if args.key?(:purchase_time_millis)
1250
- @purchase_token = args[:purchase_token] if args.key?(:purchase_token)
1251
- @purchase_type = args[:purchase_type] if args.key?(:purchase_type)
1252
- @quantity = args[:quantity] if args.key?(:quantity)
2774
+ @absolute_discount = args[:absolute_discount] if args.key?(:absolute_discount)
2775
+ @price = args[:price] if args.key?(:price)
1253
2776
  @region_code = args[:region_code] if args.key?(:region_code)
2777
+ @relative_discount = args[:relative_discount] if args.key?(:relative_discount)
1254
2778
  end
1255
2779
  end
1256
2780
 
1257
- # Request for the product.purchases.acknowledge API.
1258
- class ProductPurchasesAcknowledgeRequest
2781
+ # Specified details about taxation in a given geographical region.
2782
+ class RegionalTaxRateInfo
1259
2783
  include Google::Apis::Core::Hashable
1260
2784
 
1261
- # Payload to attach to the purchase.
1262
- # Corresponds to the JSON property `developerPayload`
2785
+ # You must tell us if your app contains streaming products to correctly charge
2786
+ # US state and local sales tax. Field only supported in United States.
2787
+ # Corresponds to the JSON property `eligibleForStreamingServiceTaxRate`
2788
+ # @return [Boolean]
2789
+ attr_accessor :eligible_for_streaming_service_tax_rate
2790
+ alias_method :eligible_for_streaming_service_tax_rate?, :eligible_for_streaming_service_tax_rate
2791
+
2792
+ # To collect communications or amusement taxes in the United States, choose the
2793
+ # appropriate tax category. [Learn more](https://support.google.com/googleplay/
2794
+ # android-developer/answer/10463498#streaming_tax).
2795
+ # Corresponds to the JSON property `streamingTaxType`
1263
2796
  # @return [String]
1264
- attr_accessor :developer_payload
2797
+ attr_accessor :streaming_tax_type
2798
+
2799
+ # Tax tier to specify reduced tax rate. Developers who sell digital news,
2800
+ # magazines, newspapers, books, or audiobooks in various regions may be eligible
2801
+ # for reduced tax rates. [Learn more](https://support.google.com/googleplay/
2802
+ # android-developer/answer/10463498).
2803
+ # Corresponds to the JSON property `taxTier`
2804
+ # @return [String]
2805
+ attr_accessor :tax_tier
2806
+
2807
+ def initialize(**args)
2808
+ update!(**args)
2809
+ end
2810
+
2811
+ # Update properties of this object
2812
+ def update!(**args)
2813
+ @eligible_for_streaming_service_tax_rate = args[:eligible_for_streaming_service_tax_rate] if args.key?(:eligible_for_streaming_service_tax_rate)
2814
+ @streaming_tax_type = args[:streaming_tax_type] if args.key?(:streaming_tax_type)
2815
+ @tax_tier = args[:tax_tier] if args.key?(:tax_tier)
2816
+ end
2817
+ end
2818
+
2819
+ # The version of the available regions being used for the specified resource.
2820
+ class RegionsVersion
2821
+ include Google::Apis::Core::Hashable
2822
+
2823
+ # Required. A string representing version of the available regions being used
2824
+ # for the specified resource. The current version is 2022/02.
2825
+ # Corresponds to the JSON property `version`
2826
+ # @return [String]
2827
+ attr_accessor :version
2828
+
2829
+ def initialize(**args)
2830
+ update!(**args)
2831
+ end
2832
+
2833
+ # Update properties of this object
2834
+ def update!(**args)
2835
+ @version = args[:version] if args.key?(:version)
2836
+ end
2837
+ end
2838
+
2839
+ # Information specific to cancellations caused by subscription replacement.
2840
+ class ReplacementCancellation
2841
+ include Google::Apis::Core::Hashable
1265
2842
 
1266
2843
  def initialize(**args)
1267
2844
  update!(**args)
@@ -1269,7 +2846,6 @@ module Google
1269
2846
 
1270
2847
  # Update properties of this object
1271
2848
  def update!(**args)
1272
- @developer_payload = args[:developer_payload] if args.key?(:developer_payload)
1273
2849
  end
1274
2850
  end
1275
2851
 
@@ -1411,6 +2987,107 @@ module Google
1411
2987
  end
1412
2988
  end
1413
2989
 
2990
+ # Information associated with purchases made with 'Subscribe with Google'.
2991
+ class SubscribeWithGoogleInfo
2992
+ include Google::Apis::Core::Hashable
2993
+
2994
+ # The email address of the user when the subscription was purchased.
2995
+ # Corresponds to the JSON property `emailAddress`
2996
+ # @return [String]
2997
+ attr_accessor :email_address
2998
+
2999
+ # The family name of the user when the subscription was purchased.
3000
+ # Corresponds to the JSON property `familyName`
3001
+ # @return [String]
3002
+ attr_accessor :family_name
3003
+
3004
+ # The given name of the user when the subscription was purchased.
3005
+ # Corresponds to the JSON property `givenName`
3006
+ # @return [String]
3007
+ attr_accessor :given_name
3008
+
3009
+ # The Google profile id of the user when the subscription was purchased.
3010
+ # Corresponds to the JSON property `profileId`
3011
+ # @return [String]
3012
+ attr_accessor :profile_id
3013
+
3014
+ # The profile name of the user when the subscription was purchased.
3015
+ # Corresponds to the JSON property `profileName`
3016
+ # @return [String]
3017
+ attr_accessor :profile_name
3018
+
3019
+ def initialize(**args)
3020
+ update!(**args)
3021
+ end
3022
+
3023
+ # Update properties of this object
3024
+ def update!(**args)
3025
+ @email_address = args[:email_address] if args.key?(:email_address)
3026
+ @family_name = args[:family_name] if args.key?(:family_name)
3027
+ @given_name = args[:given_name] if args.key?(:given_name)
3028
+ @profile_id = args[:profile_id] if args.key?(:profile_id)
3029
+ @profile_name = args[:profile_name] if args.key?(:profile_name)
3030
+ end
3031
+ end
3032
+
3033
+ # A single subscription for an app.
3034
+ class Subscription
3035
+ include Google::Apis::Core::Hashable
3036
+
3037
+ # Output only. Whether this subscription is archived. Archived subscriptions are
3038
+ # not available to any subscriber any longer, cannot be updated, and are not
3039
+ # returned in list requests unless the show archived flag is passed in.
3040
+ # Corresponds to the JSON property `archived`
3041
+ # @return [Boolean]
3042
+ attr_accessor :archived
3043
+ alias_method :archived?, :archived
3044
+
3045
+ # The set of base plans for this subscription. Represents the prices and
3046
+ # duration of the subscription if no other offers apply.
3047
+ # Corresponds to the JSON property `basePlans`
3048
+ # @return [Array<Google::Apis::AndroidpublisherV3::BasePlan>]
3049
+ attr_accessor :base_plans
3050
+
3051
+ # Required. List of localized listings for this subscription. Must contain at
3052
+ # least an entry for the default language of the parent app.
3053
+ # Corresponds to the JSON property `listings`
3054
+ # @return [Array<Google::Apis::AndroidpublisherV3::SubscriptionListing>]
3055
+ attr_accessor :listings
3056
+
3057
+ # Immutable. Package name of the parent app.
3058
+ # Corresponds to the JSON property `packageName`
3059
+ # @return [String]
3060
+ attr_accessor :package_name
3061
+
3062
+ # Immutable. Unique product ID of the product. Unique within the parent app.
3063
+ # Product IDs must be composed of lower-case letters (a-z), numbers (0-9),
3064
+ # underscores (_) and dots (.). It must start with a lower-case letter or number,
3065
+ # and be between 1 and 40 (inclusive) characters in length.
3066
+ # Corresponds to the JSON property `productId`
3067
+ # @return [String]
3068
+ attr_accessor :product_id
3069
+
3070
+ # Details about taxation, Google Play policy and legal compliance for
3071
+ # subscription products.
3072
+ # Corresponds to the JSON property `taxAndComplianceSettings`
3073
+ # @return [Google::Apis::AndroidpublisherV3::SubscriptionTaxAndComplianceSettings]
3074
+ attr_accessor :tax_and_compliance_settings
3075
+
3076
+ def initialize(**args)
3077
+ update!(**args)
3078
+ end
3079
+
3080
+ # Update properties of this object
3081
+ def update!(**args)
3082
+ @archived = args[:archived] if args.key?(:archived)
3083
+ @base_plans = args[:base_plans] if args.key?(:base_plans)
3084
+ @listings = args[:listings] if args.key?(:listings)
3085
+ @package_name = args[:package_name] if args.key?(:package_name)
3086
+ @product_id = args[:product_id] if args.key?(:product_id)
3087
+ @tax_and_compliance_settings = args[:tax_and_compliance_settings] if args.key?(:tax_and_compliance_settings)
3088
+ end
3089
+ end
3090
+
1414
3091
  # Information provided by the user when they complete the subscription
1415
3092
  # cancellation flow (cancellation reason survey).
1416
3093
  class SubscriptionCancelSurveyResult
@@ -1445,18 +3122,250 @@ module Google
1445
3122
  class SubscriptionDeferralInfo
1446
3123
  include Google::Apis::Core::Hashable
1447
3124
 
1448
- # The desired next expiry time to assign to the subscription, in milliseconds
1449
- # since the Epoch. The given time must be later/greater than the current expiry
1450
- # time for the subscription.
1451
- # Corresponds to the JSON property `desiredExpiryTimeMillis`
1452
- # @return [Fixnum]
1453
- attr_accessor :desired_expiry_time_millis
3125
+ # The desired next expiry time to assign to the subscription, in milliseconds
3126
+ # since the Epoch. The given time must be later/greater than the current expiry
3127
+ # time for the subscription.
3128
+ # Corresponds to the JSON property `desiredExpiryTimeMillis`
3129
+ # @return [Fixnum]
3130
+ attr_accessor :desired_expiry_time_millis
3131
+
3132
+ # The expected expiry time for the subscription. If the current expiry time for
3133
+ # the subscription is not the value specified here, the deferral will not occur.
3134
+ # Corresponds to the JSON property `expectedExpiryTimeMillis`
3135
+ # @return [Fixnum]
3136
+ attr_accessor :expected_expiry_time_millis
3137
+
3138
+ def initialize(**args)
3139
+ update!(**args)
3140
+ end
3141
+
3142
+ # Update properties of this object
3143
+ def update!(**args)
3144
+ @desired_expiry_time_millis = args[:desired_expiry_time_millis] if args.key?(:desired_expiry_time_millis)
3145
+ @expected_expiry_time_millis = args[:expected_expiry_time_millis] if args.key?(:expected_expiry_time_millis)
3146
+ end
3147
+ end
3148
+
3149
+ # Price change related information of a subscription item.
3150
+ class SubscriptionItemPriceChangeDetails
3151
+ include Google::Apis::Core::Hashable
3152
+
3153
+ # The renewal time at which the price change will become effective for the user.
3154
+ # This is subject to change(to a future time) due to cases where the renewal
3155
+ # time shifts like pause.
3156
+ # Corresponds to the JSON property `expectedNewPriceChargeTime`
3157
+ # @return [String]
3158
+ attr_accessor :expected_new_price_charge_time
3159
+
3160
+ # Represents an amount of money with its currency type.
3161
+ # Corresponds to the JSON property `newPrice`
3162
+ # @return [Google::Apis::AndroidpublisherV3::Money]
3163
+ attr_accessor :new_price
3164
+
3165
+ # Price change mode specifies how the subscription item price is changing.
3166
+ # Corresponds to the JSON property `priceChangeMode`
3167
+ # @return [String]
3168
+ attr_accessor :price_change_mode
3169
+
3170
+ # State the price change is currently in.
3171
+ # Corresponds to the JSON property `priceChangeState`
3172
+ # @return [String]
3173
+ attr_accessor :price_change_state
3174
+
3175
+ def initialize(**args)
3176
+ update!(**args)
3177
+ end
3178
+
3179
+ # Update properties of this object
3180
+ def update!(**args)
3181
+ @expected_new_price_charge_time = args[:expected_new_price_charge_time] if args.key?(:expected_new_price_charge_time)
3182
+ @new_price = args[:new_price] if args.key?(:new_price)
3183
+ @price_change_mode = args[:price_change_mode] if args.key?(:price_change_mode)
3184
+ @price_change_state = args[:price_change_state] if args.key?(:price_change_state)
3185
+ end
3186
+ end
3187
+
3188
+ # The consumer-visible metadata of a subscription.
3189
+ class SubscriptionListing
3190
+ include Google::Apis::Core::Hashable
3191
+
3192
+ # A list of benefits shown to the user on platforms such as the Play Store and
3193
+ # in restoration flows in the language of this listing. Plain text. Ordered list
3194
+ # of at most four benefits.
3195
+ # Corresponds to the JSON property `benefits`
3196
+ # @return [Array<String>]
3197
+ attr_accessor :benefits
3198
+
3199
+ # The description of this subscription in the language of this listing. Maximum
3200
+ # length - 80 characters. Plain text.
3201
+ # Corresponds to the JSON property `description`
3202
+ # @return [String]
3203
+ attr_accessor :description
3204
+
3205
+ # Required. The language of this listing, as defined by BCP-47, e.g. "en-US".
3206
+ # Corresponds to the JSON property `languageCode`
3207
+ # @return [String]
3208
+ attr_accessor :language_code
3209
+
3210
+ # Required. The title of this subscription in the language of this listing.
3211
+ # Plain text.
3212
+ # Corresponds to the JSON property `title`
3213
+ # @return [String]
3214
+ attr_accessor :title
3215
+
3216
+ def initialize(**args)
3217
+ update!(**args)
3218
+ end
3219
+
3220
+ # Update properties of this object
3221
+ def update!(**args)
3222
+ @benefits = args[:benefits] if args.key?(:benefits)
3223
+ @description = args[:description] if args.key?(:description)
3224
+ @language_code = args[:language_code] if args.key?(:language_code)
3225
+ @title = args[:title] if args.key?(:title)
3226
+ end
3227
+ end
3228
+
3229
+ # A single, temporary offer
3230
+ class SubscriptionOffer
3231
+ include Google::Apis::Core::Hashable
3232
+
3233
+ # Required. Immutable. The ID of the base plan to which this offer is an
3234
+ # extension.
3235
+ # Corresponds to the JSON property `basePlanId`
3236
+ # @return [String]
3237
+ attr_accessor :base_plan_id
3238
+
3239
+ # Required. Immutable. Unique ID of this subscription offer. Must be unique
3240
+ # within the base plan.
3241
+ # Corresponds to the JSON property `offerId`
3242
+ # @return [String]
3243
+ attr_accessor :offer_id
3244
+
3245
+ # List of up to 20 custom tags specified for this offer, and returned to the app
3246
+ # through the billing library.
3247
+ # Corresponds to the JSON property `offerTags`
3248
+ # @return [Array<Google::Apis::AndroidpublisherV3::OfferTag>]
3249
+ attr_accessor :offer_tags
3250
+
3251
+ # Configuration for any new locations Play may launch in specified on a
3252
+ # subscription offer.
3253
+ # Corresponds to the JSON property `otherRegionsConfig`
3254
+ # @return [Google::Apis::AndroidpublisherV3::OtherRegionsSubscriptionOfferConfig]
3255
+ attr_accessor :other_regions_config
3256
+
3257
+ # Required. Immutable. The package name of the app the parent subscription
3258
+ # belongs to.
3259
+ # Corresponds to the JSON property `packageName`
3260
+ # @return [String]
3261
+ attr_accessor :package_name
3262
+
3263
+ # Required. The phases of this subscription offer. Must contain at least one
3264
+ # entry, and may contain at most five. Users will always receive all these
3265
+ # phases in the specified order. Phases may not be added, removed, or reordered
3266
+ # after initial creation.
3267
+ # Corresponds to the JSON property `phases`
3268
+ # @return [Array<Google::Apis::AndroidpublisherV3::SubscriptionOfferPhase>]
3269
+ attr_accessor :phases
3270
+
3271
+ # Required. Immutable. The ID of the parent subscription this offer belongs to.
3272
+ # Corresponds to the JSON property `productId`
3273
+ # @return [String]
3274
+ attr_accessor :product_id
3275
+
3276
+ # Required. The region-specific configuration of this offer. Must contain at
3277
+ # least one entry.
3278
+ # Corresponds to the JSON property `regionalConfigs`
3279
+ # @return [Array<Google::Apis::AndroidpublisherV3::RegionalSubscriptionOfferConfig>]
3280
+ attr_accessor :regional_configs
3281
+
3282
+ # Output only. The current state of this offer. Can be changed using Activate
3283
+ # and Deactivate actions. NB: the base plan state supersedes this state, so an
3284
+ # active offer may not be available if the base plan is not active.
3285
+ # Corresponds to the JSON property `state`
3286
+ # @return [String]
3287
+ attr_accessor :state
3288
+
3289
+ # Defines the rule a user needs to satisfy to receive this offer.
3290
+ # Corresponds to the JSON property `targeting`
3291
+ # @return [Google::Apis::AndroidpublisherV3::SubscriptionOfferTargeting]
3292
+ attr_accessor :targeting
3293
+
3294
+ def initialize(**args)
3295
+ update!(**args)
3296
+ end
3297
+
3298
+ # Update properties of this object
3299
+ def update!(**args)
3300
+ @base_plan_id = args[:base_plan_id] if args.key?(:base_plan_id)
3301
+ @offer_id = args[:offer_id] if args.key?(:offer_id)
3302
+ @offer_tags = args[:offer_tags] if args.key?(:offer_tags)
3303
+ @other_regions_config = args[:other_regions_config] if args.key?(:other_regions_config)
3304
+ @package_name = args[:package_name] if args.key?(:package_name)
3305
+ @phases = args[:phases] if args.key?(:phases)
3306
+ @product_id = args[:product_id] if args.key?(:product_id)
3307
+ @regional_configs = args[:regional_configs] if args.key?(:regional_configs)
3308
+ @state = args[:state] if args.key?(:state)
3309
+ @targeting = args[:targeting] if args.key?(:targeting)
3310
+ end
3311
+ end
3312
+
3313
+ # A single phase of a subscription offer.
3314
+ class SubscriptionOfferPhase
3315
+ include Google::Apis::Core::Hashable
3316
+
3317
+ # Required. The duration of a single recurrence of this phase. Specified in ISO
3318
+ # 8601 format.
3319
+ # Corresponds to the JSON property `duration`
3320
+ # @return [String]
3321
+ attr_accessor :duration
3322
+
3323
+ # Configuration for any new locations Play may launch in for a single offer
3324
+ # phase.
3325
+ # Corresponds to the JSON property `otherRegionsConfig`
3326
+ # @return [Google::Apis::AndroidpublisherV3::OtherRegionsSubscriptionOfferPhaseConfig]
3327
+ attr_accessor :other_regions_config
3328
+
3329
+ # Required. The number of times this phase repeats. If this offer phase is not
3330
+ # free, each recurrence charges the user the price of this offer phase.
3331
+ # Corresponds to the JSON property `recurrenceCount`
3332
+ # @return [Fixnum]
3333
+ attr_accessor :recurrence_count
3334
+
3335
+ # Required. The region-specific configuration of this offer phase. This list
3336
+ # must contain exactly one entry for each region for which the subscription
3337
+ # offer has a regional config.
3338
+ # Corresponds to the JSON property `regionalConfigs`
3339
+ # @return [Array<Google::Apis::AndroidpublisherV3::RegionalSubscriptionOfferPhaseConfig>]
3340
+ attr_accessor :regional_configs
3341
+
3342
+ def initialize(**args)
3343
+ update!(**args)
3344
+ end
3345
+
3346
+ # Update properties of this object
3347
+ def update!(**args)
3348
+ @duration = args[:duration] if args.key?(:duration)
3349
+ @other_regions_config = args[:other_regions_config] if args.key?(:other_regions_config)
3350
+ @recurrence_count = args[:recurrence_count] if args.key?(:recurrence_count)
3351
+ @regional_configs = args[:regional_configs] if args.key?(:regional_configs)
3352
+ end
3353
+ end
3354
+
3355
+ # Defines the rule a user needs to satisfy to receive this offer.
3356
+ class SubscriptionOfferTargeting
3357
+ include Google::Apis::Core::Hashable
3358
+
3359
+ # Represents a targeting rule of the form: User never had `scope` before.
3360
+ # Corresponds to the JSON property `acquisitionRule`
3361
+ # @return [Google::Apis::AndroidpublisherV3::AcquisitionTargetingRule]
3362
+ attr_accessor :acquisition_rule
1454
3363
 
1455
- # The expected expiry time for the subscription. If the current expiry time for
1456
- # the subscription is not the value specified here, the deferral will not occur.
1457
- # Corresponds to the JSON property `expectedExpiryTimeMillis`
1458
- # @return [Fixnum]
1459
- attr_accessor :expected_expiry_time_millis
3364
+ # Represents a targeting rule of the form: User currently has `scope` [with
3365
+ # billing period `billing_period`].
3366
+ # Corresponds to the JSON property `upgradeRule`
3367
+ # @return [Google::Apis::AndroidpublisherV3::UpgradeTargetingRule]
3368
+ attr_accessor :upgrade_rule
1460
3369
 
1461
3370
  def initialize(**args)
1462
3371
  update!(**args)
@@ -1464,8 +3373,8 @@ module Google
1464
3373
 
1465
3374
  # Update properties of this object
1466
3375
  def update!(**args)
1467
- @desired_expiry_time_millis = args[:desired_expiry_time_millis] if args.key?(:desired_expiry_time_millis)
1468
- @expected_expiry_time_millis = args[:expected_expiry_time_millis] if args.key?(:expected_expiry_time_millis)
3376
+ @acquisition_rule = args[:acquisition_rule] if args.key?(:acquisition_rule)
3377
+ @upgrade_rule = args[:upgrade_rule] if args.key?(:upgrade_rule)
1469
3378
  end
1470
3379
  end
1471
3380
 
@@ -1626,7 +3535,8 @@ module Google
1626
3535
  attr_accessor :obfuscated_external_profile_id
1627
3536
 
1628
3537
  # The order id of the latest recurring order associated with the purchase of the
1629
- # subscription.
3538
+ # subscription. If the subscription was canceled because payment was declined,
3539
+ # this will be the order id from the payment declined order.
1630
3540
  # Corresponds to the JSON property `orderId`
1631
3541
  # @return [String]
1632
3542
  attr_accessor :order_id
@@ -1638,9 +3548,11 @@ module Google
1638
3548
  # @return [Fixnum]
1639
3549
  attr_accessor :payment_state
1640
3550
 
1641
- # Price of the subscription, not including tax. Price is expressed in micro-
1642
- # units, where 1,000,000 micro-units represents one unit of the currency. For
1643
- # example, if the subscription price is €1.99, price_amount_micros is 1990000.
3551
+ # Price of the subscription, For tax exclusive countries, the price doesn't
3552
+ # include tax. For tax inclusive countries, the price includes tax. Price is
3553
+ # expressed in micro-units, where 1,000,000 micro-units represents one unit of
3554
+ # the currency. For example, if the subscription price is €1.99,
3555
+ # price_amount_micros is 1990000.
1644
3556
  # Corresponds to the JSON property `priceAmountMicros`
1645
3557
  # @return [Fixnum]
1646
3558
  attr_accessor :price_amount_micros
@@ -1741,6 +3653,153 @@ module Google
1741
3653
  end
1742
3654
  end
1743
3655
 
3656
+ # Item-level info for a subscription purchase.
3657
+ class SubscriptionPurchaseLineItem
3658
+ include Google::Apis::Core::Hashable
3659
+
3660
+ # Information related to an auto renewing plan.
3661
+ # Corresponds to the JSON property `autoRenewingPlan`
3662
+ # @return [Google::Apis::AndroidpublisherV3::AutoRenewingPlan]
3663
+ attr_accessor :auto_renewing_plan
3664
+
3665
+ # Time at which the subscription expired or will expire unless the access is
3666
+ # extended (ex. renews).
3667
+ # Corresponds to the JSON property `expiryTime`
3668
+ # @return [String]
3669
+ attr_accessor :expiry_time
3670
+
3671
+ # Offer details information related to a purchase line item.
3672
+ # Corresponds to the JSON property `offerDetails`
3673
+ # @return [Google::Apis::AndroidpublisherV3::OfferDetails]
3674
+ attr_accessor :offer_details
3675
+
3676
+ # Information related to a prepaid plan.
3677
+ # Corresponds to the JSON property `prepaidPlan`
3678
+ # @return [Google::Apis::AndroidpublisherV3::PrepaidPlan]
3679
+ attr_accessor :prepaid_plan
3680
+
3681
+ # The purchased product ID (for example, 'monthly001').
3682
+ # Corresponds to the JSON property `productId`
3683
+ # @return [String]
3684
+ attr_accessor :product_id
3685
+
3686
+ def initialize(**args)
3687
+ update!(**args)
3688
+ end
3689
+
3690
+ # Update properties of this object
3691
+ def update!(**args)
3692
+ @auto_renewing_plan = args[:auto_renewing_plan] if args.key?(:auto_renewing_plan)
3693
+ @expiry_time = args[:expiry_time] if args.key?(:expiry_time)
3694
+ @offer_details = args[:offer_details] if args.key?(:offer_details)
3695
+ @prepaid_plan = args[:prepaid_plan] if args.key?(:prepaid_plan)
3696
+ @product_id = args[:product_id] if args.key?(:product_id)
3697
+ end
3698
+ end
3699
+
3700
+ # Indicates the status of a user's subscription purchase.
3701
+ class SubscriptionPurchaseV2
3702
+ include Google::Apis::Core::Hashable
3703
+
3704
+ # The acknowledgement state of the subscription.
3705
+ # Corresponds to the JSON property `acknowledgementState`
3706
+ # @return [String]
3707
+ attr_accessor :acknowledgement_state
3708
+
3709
+ # Information specific to a subscription in canceled state.
3710
+ # Corresponds to the JSON property `canceledStateContext`
3711
+ # @return [Google::Apis::AndroidpublisherV3::CanceledStateContext]
3712
+ attr_accessor :canceled_state_context
3713
+
3714
+ # User account identifier in the third-party service.
3715
+ # Corresponds to the JSON property `externalAccountIdentifiers`
3716
+ # @return [Google::Apis::AndroidpublisherV3::ExternalAccountIdentifiers]
3717
+ attr_accessor :external_account_identifiers
3718
+
3719
+ # This kind represents a SubscriptionPurchaseV2 object in the androidpublisher
3720
+ # service.
3721
+ # Corresponds to the JSON property `kind`
3722
+ # @return [String]
3723
+ attr_accessor :kind
3724
+
3725
+ # The order id of the latest order associated with the purchase of the
3726
+ # subscription. For autoRenewing subscription, this is the order id of signup
3727
+ # order if it is not renewed yet, or the last recurring order id (success,
3728
+ # pending, or declined order). For prepaid subscription, this is the order id
3729
+ # associated with the queried purchase token.
3730
+ # Corresponds to the JSON property `latestOrderId`
3731
+ # @return [String]
3732
+ attr_accessor :latest_order_id
3733
+
3734
+ # Item-level info for a subscription purchase. The items in the same purchase
3735
+ # should be either all with AutoRenewingPlan or all with PrepaidPlan.
3736
+ # Corresponds to the JSON property `lineItems`
3737
+ # @return [Array<Google::Apis::AndroidpublisherV3::SubscriptionPurchaseLineItem>]
3738
+ attr_accessor :line_items
3739
+
3740
+ # The purchase token of the old subscription if this subscription is one of the
3741
+ # following: * Re-signup of a canceled but non-lapsed subscription * Upgrade/
3742
+ # downgrade from a previous subscription. * Convert from prepaid to auto
3743
+ # renewing subscription. * Convert from an auto renewing subscription to prepaid.
3744
+ # * Topup a prepaid subscription.
3745
+ # Corresponds to the JSON property `linkedPurchaseToken`
3746
+ # @return [String]
3747
+ attr_accessor :linked_purchase_token
3748
+
3749
+ # Information specific to a subscription in paused state.
3750
+ # Corresponds to the JSON property `pausedStateContext`
3751
+ # @return [Google::Apis::AndroidpublisherV3::PausedStateContext]
3752
+ attr_accessor :paused_state_context
3753
+
3754
+ # ISO 3166-1 alpha-2 billing country/region code of the user at the time the
3755
+ # subscription was granted.
3756
+ # Corresponds to the JSON property `regionCode`
3757
+ # @return [String]
3758
+ attr_accessor :region_code
3759
+
3760
+ # Time at which the subscription was granted. Not set for pending subscriptions (
3761
+ # subscription was created but awaiting payment during signup).
3762
+ # Corresponds to the JSON property `startTime`
3763
+ # @return [String]
3764
+ attr_accessor :start_time
3765
+
3766
+ # Information associated with purchases made with 'Subscribe with Google'.
3767
+ # Corresponds to the JSON property `subscribeWithGoogleInfo`
3768
+ # @return [Google::Apis::AndroidpublisherV3::SubscribeWithGoogleInfo]
3769
+ attr_accessor :subscribe_with_google_info
3770
+
3771
+ # The current state of the subscription.
3772
+ # Corresponds to the JSON property `subscriptionState`
3773
+ # @return [String]
3774
+ attr_accessor :subscription_state
3775
+
3776
+ # Whether this subscription purchase is a test purchase.
3777
+ # Corresponds to the JSON property `testPurchase`
3778
+ # @return [Google::Apis::AndroidpublisherV3::TestPurchase]
3779
+ attr_accessor :test_purchase
3780
+
3781
+ def initialize(**args)
3782
+ update!(**args)
3783
+ end
3784
+
3785
+ # Update properties of this object
3786
+ def update!(**args)
3787
+ @acknowledgement_state = args[:acknowledgement_state] if args.key?(:acknowledgement_state)
3788
+ @canceled_state_context = args[:canceled_state_context] if args.key?(:canceled_state_context)
3789
+ @external_account_identifiers = args[:external_account_identifiers] if args.key?(:external_account_identifiers)
3790
+ @kind = args[:kind] if args.key?(:kind)
3791
+ @latest_order_id = args[:latest_order_id] if args.key?(:latest_order_id)
3792
+ @line_items = args[:line_items] if args.key?(:line_items)
3793
+ @linked_purchase_token = args[:linked_purchase_token] if args.key?(:linked_purchase_token)
3794
+ @paused_state_context = args[:paused_state_context] if args.key?(:paused_state_context)
3795
+ @region_code = args[:region_code] if args.key?(:region_code)
3796
+ @start_time = args[:start_time] if args.key?(:start_time)
3797
+ @subscribe_with_google_info = args[:subscribe_with_google_info] if args.key?(:subscribe_with_google_info)
3798
+ @subscription_state = args[:subscription_state] if args.key?(:subscription_state)
3799
+ @test_purchase = args[:test_purchase] if args.key?(:test_purchase)
3800
+ end
3801
+ end
3802
+
1744
3803
  # Request for the purchases.subscriptions.acknowledge API.
1745
3804
  class SubscriptionPurchasesAcknowledgeRequest
1746
3805
  include Google::Apis::Core::Hashable
@@ -1799,6 +3858,37 @@ module Google
1799
3858
  end
1800
3859
  end
1801
3860
 
3861
+ # Details about taxation, Google Play policy and legal compliance for
3862
+ # subscription products.
3863
+ class SubscriptionTaxAndComplianceSettings
3864
+ include Google::Apis::Core::Hashable
3865
+
3866
+ # Digital content or service classification for products distributed to users in
3867
+ # the European Economic Area (EEA). The withdrawal regime under EEA consumer
3868
+ # laws depends on this classification. Refer to the [Help Center article](https:/
3869
+ # /support.google.com/googleplay/android-developer/answer/10463498) for more
3870
+ # information.
3871
+ # Corresponds to the JSON property `eeaWithdrawalRightType`
3872
+ # @return [String]
3873
+ attr_accessor :eea_withdrawal_right_type
3874
+
3875
+ # A mapping from region code to tax rate details. The keys are region codes as
3876
+ # defined by Unicode's "CLDR".
3877
+ # Corresponds to the JSON property `taxRateInfoByRegionCode`
3878
+ # @return [Hash<String,Google::Apis::AndroidpublisherV3::RegionalTaxRateInfo>]
3879
+ attr_accessor :tax_rate_info_by_region_code
3880
+
3881
+ def initialize(**args)
3882
+ update!(**args)
3883
+ end
3884
+
3885
+ # Update properties of this object
3886
+ def update!(**args)
3887
+ @eea_withdrawal_right_type = args[:eea_withdrawal_right_type] if args.key?(:eea_withdrawal_right_type)
3888
+ @tax_rate_info_by_region_code = args[:tax_rate_info_by_region_code] if args.key?(:tax_rate_info_by_region_code)
3889
+ end
3890
+ end
3891
+
1802
3892
  # Response to list previously created system APK variants.
1803
3893
  class SystemApksListResponse
1804
3894
  include Google::Apis::Core::Hashable
@@ -1818,7 +3908,75 @@ module Google
1818
3908
  end
1819
3909
  end
1820
3910
 
1821
- # The testers of an app. The resource for TestersService.
3911
+ # Representation of a system feature.
3912
+ class SystemFeature
3913
+ include Google::Apis::Core::Hashable
3914
+
3915
+ # The name of the feature.
3916
+ # Corresponds to the JSON property `name`
3917
+ # @return [String]
3918
+ attr_accessor :name
3919
+
3920
+ def initialize(**args)
3921
+ update!(**args)
3922
+ end
3923
+
3924
+ # Update properties of this object
3925
+ def update!(**args)
3926
+ @name = args[:name] if args.key?(:name)
3927
+ end
3928
+ end
3929
+
3930
+ # Information specific to cancellations initiated by Google system.
3931
+ class SystemInitiatedCancellation
3932
+ include Google::Apis::Core::Hashable
3933
+
3934
+ def initialize(**args)
3935
+ update!(**args)
3936
+ end
3937
+
3938
+ # Update properties of this object
3939
+ def update!(**args)
3940
+ end
3941
+ end
3942
+
3943
+ # Defines the scope of subscriptions which a targeting rule can match to target
3944
+ # offers to users based on past or current entitlement.
3945
+ class TargetingRuleScope
3946
+ include Google::Apis::Core::Hashable
3947
+
3948
+ # The scope of the current targeting rule is the subscription with the specified
3949
+ # subscription ID. Must be a subscription within the same parent app.
3950
+ # Corresponds to the JSON property `specificSubscriptionInApp`
3951
+ # @return [String]
3952
+ attr_accessor :specific_subscription_in_app
3953
+
3954
+ def initialize(**args)
3955
+ update!(**args)
3956
+ end
3957
+
3958
+ # Update properties of this object
3959
+ def update!(**args)
3960
+ @specific_subscription_in_app = args[:specific_subscription_in_app] if args.key?(:specific_subscription_in_app)
3961
+ end
3962
+ end
3963
+
3964
+ # Whether this subscription purchase is a test purchase.
3965
+ class TestPurchase
3966
+ include Google::Apis::Core::Hashable
3967
+
3968
+ def initialize(**args)
3969
+ update!(**args)
3970
+ end
3971
+
3972
+ # Update properties of this object
3973
+ def update!(**args)
3974
+ end
3975
+ end
3976
+
3977
+ # The testers of an app. The resource for TestersService. Note: while it is
3978
+ # possible in the Play Console UI to add testers via email lists, email lists
3979
+ # are not supported by this resource.
1822
3980
  class Testers
1823
3981
  include Google::Apis::Core::Hashable
1824
3982
 
@@ -1909,7 +4067,10 @@ module Google
1909
4067
  # @return [Array<Google::Apis::AndroidpublisherV3::TrackRelease>]
1910
4068
  attr_accessor :releases
1911
4069
 
1912
- # Identifier of the track.
4070
+ # Identifier of the track. Form factor tracks have a special prefix as an
4071
+ # identifier, for example `wear:production`, `automotive:production`. [More on
4072
+ # track name](https://developers.google.com/android-publisher/tracks#ff-track-
4073
+ # name)
1913
4074
  # Corresponds to the JSON property `track`
1914
4075
  # @return [String]
1915
4076
  attr_accessor :track
@@ -1925,6 +4086,45 @@ module Google
1925
4086
  end
1926
4087
  end
1927
4088
 
4089
+ # Resource for per-track country availability information.
4090
+ class TrackCountryAvailability
4091
+ include Google::Apis::Core::Hashable
4092
+
4093
+ # A list of one or more countries where artifacts in this track are available.
4094
+ # This list includes all countries that are targeted by the track, even if only
4095
+ # specific carriers are targeted in that country.
4096
+ # Corresponds to the JSON property `countries`
4097
+ # @return [Array<Google::Apis::AndroidpublisherV3::TrackTargetedCountry>]
4098
+ attr_accessor :countries
4099
+
4100
+ # Whether artifacts in this track are available to "rest of the world" countries.
4101
+ # Corresponds to the JSON property `restOfWorld`
4102
+ # @return [Boolean]
4103
+ attr_accessor :rest_of_world
4104
+ alias_method :rest_of_world?, :rest_of_world
4105
+
4106
+ # Whether this track's availability is synced with the default production track.
4107
+ # See https://support.google.com/googleplay/android-developer/answer/7550024 for
4108
+ # more information on syncing country availability with production. Note that if
4109
+ # this is true, the returned "countries" and "rest_of_world" fields will reflect
4110
+ # the values for the default production track.
4111
+ # Corresponds to the JSON property `syncWithProduction`
4112
+ # @return [Boolean]
4113
+ attr_accessor :sync_with_production
4114
+ alias_method :sync_with_production?, :sync_with_production
4115
+
4116
+ def initialize(**args)
4117
+ update!(**args)
4118
+ end
4119
+
4120
+ # Update properties of this object
4121
+ def update!(**args)
4122
+ @countries = args[:countries] if args.key?(:countries)
4123
+ @rest_of_world = args[:rest_of_world] if args.key?(:rest_of_world)
4124
+ @sync_with_production = args[:sync_with_production] if args.key?(:sync_with_production)
4125
+ end
4126
+ end
4127
+
1928
4128
  # A release within a track.
1929
4129
  class TrackRelease
1930
4130
  include Google::Apis::Core::Hashable
@@ -1988,6 +4188,25 @@ module Google
1988
4188
  end
1989
4189
  end
1990
4190
 
4191
+ # Representation of a single country where the contents of a track are available.
4192
+ class TrackTargetedCountry
4193
+ include Google::Apis::Core::Hashable
4194
+
4195
+ # The country to target, as a two-letter CLDR code.
4196
+ # Corresponds to the JSON property `countryCode`
4197
+ # @return [String]
4198
+ attr_accessor :country_code
4199
+
4200
+ def initialize(**args)
4201
+ update!(**args)
4202
+ end
4203
+
4204
+ # Update properties of this object
4205
+ def update!(**args)
4206
+ @country_code = args[:country_code] if args.key?(:country_code)
4207
+ end
4208
+ end
4209
+
1991
4210
  # Response listing all tracks.
1992
4211
  class TracksListResponse
1993
4212
  include Google::Apis::Core::Hashable
@@ -2013,6 +4232,107 @@ module Google
2013
4232
  end
2014
4233
  end
2015
4234
 
4235
+ # Represents a targeting rule of the form: User currently has `scope` [with
4236
+ # billing period `billing_period`].
4237
+ class UpgradeTargetingRule
4238
+ include Google::Apis::Core::Hashable
4239
+
4240
+ # The specific billing period duration, specified in ISO 8601 format, that a
4241
+ # user must be currently subscribed to to be eligible for this rule. If not
4242
+ # specified, users subscribed to any billing period are matched.
4243
+ # Corresponds to the JSON property `billingPeriodDuration`
4244
+ # @return [String]
4245
+ attr_accessor :billing_period_duration
4246
+
4247
+ # Limit this offer to only once per user. If set to true, a user can never be
4248
+ # eligible for this offer again if they ever subscribed to this offer.
4249
+ # Corresponds to the JSON property `oncePerUser`
4250
+ # @return [Boolean]
4251
+ attr_accessor :once_per_user
4252
+ alias_method :once_per_user?, :once_per_user
4253
+
4254
+ # Defines the scope of subscriptions which a targeting rule can match to target
4255
+ # offers to users based on past or current entitlement.
4256
+ # Corresponds to the JSON property `scope`
4257
+ # @return [Google::Apis::AndroidpublisherV3::TargetingRuleScope]
4258
+ attr_accessor :scope
4259
+
4260
+ def initialize(**args)
4261
+ update!(**args)
4262
+ end
4263
+
4264
+ # Update properties of this object
4265
+ def update!(**args)
4266
+ @billing_period_duration = args[:billing_period_duration] if args.key?(:billing_period_duration)
4267
+ @once_per_user = args[:once_per_user] if args.key?(:once_per_user)
4268
+ @scope = args[:scope] if args.key?(:scope)
4269
+ end
4270
+ end
4271
+
4272
+ # A user resource.
4273
+ class User
4274
+ include Google::Apis::Core::Hashable
4275
+
4276
+ # Output only. The state of the user's access to the Play Console.
4277
+ # Corresponds to the JSON property `accessState`
4278
+ # @return [String]
4279
+ attr_accessor :access_state
4280
+
4281
+ # Permissions for the user which apply across the developer account.
4282
+ # Corresponds to the JSON property `developerAccountPermissions`
4283
+ # @return [Array<String>]
4284
+ attr_accessor :developer_account_permissions
4285
+
4286
+ # Immutable. The user's email address.
4287
+ # Corresponds to the JSON property `email`
4288
+ # @return [String]
4289
+ attr_accessor :email
4290
+
4291
+ # The time at which the user's access expires, if set. When setting this value,
4292
+ # it must always be in the future.
4293
+ # Corresponds to the JSON property `expirationTime`
4294
+ # @return [String]
4295
+ attr_accessor :expiration_time
4296
+
4297
+ # Output only. Per-app permissions for the user.
4298
+ # Corresponds to the JSON property `grants`
4299
+ # @return [Array<Google::Apis::AndroidpublisherV3::Grant>]
4300
+ attr_accessor :grants
4301
+
4302
+ # Required. Resource name for this user, following the pattern "developers/`
4303
+ # developer`/users/`email`".
4304
+ # Corresponds to the JSON property `name`
4305
+ # @return [String]
4306
+ attr_accessor :name
4307
+
4308
+ # Output only. Whether there are more permissions for the user that are not
4309
+ # represented here. This can happen if the caller does not have permission to
4310
+ # manage all apps in the account. This is also `true` if this user is the
4311
+ # account owner. If this field is `true`, it should be taken as a signal that
4312
+ # this user cannot be fully managed via the API. That is, the API caller is not
4313
+ # be able to manage all of the permissions this user holds, either because it
4314
+ # doesn't know about them or because the user is the account owner.
4315
+ # Corresponds to the JSON property `partial`
4316
+ # @return [Boolean]
4317
+ attr_accessor :partial
4318
+ alias_method :partial?, :partial
4319
+
4320
+ def initialize(**args)
4321
+ update!(**args)
4322
+ end
4323
+
4324
+ # Update properties of this object
4325
+ def update!(**args)
4326
+ @access_state = args[:access_state] if args.key?(:access_state)
4327
+ @developer_account_permissions = args[:developer_account_permissions] if args.key?(:developer_account_permissions)
4328
+ @email = args[:email] if args.key?(:email)
4329
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
4330
+ @grants = args[:grants] if args.key?(:grants)
4331
+ @name = args[:name] if args.key?(:name)
4332
+ @partial = args[:partial] if args.key?(:partial)
4333
+ end
4334
+ end
4335
+
2016
4336
  # User entry from conversation between user and developer.
2017
4337
  class UserComment
2018
4338
  include Google::Apis::Core::Hashable
@@ -2108,6 +4428,60 @@ module Google
2108
4428
  end
2109
4429
  end
2110
4430
 
4431
+ # A set of user countries. A country set determines what variation of app
4432
+ # content gets served to a specific location.
4433
+ class UserCountrySet
4434
+ include Google::Apis::Core::Hashable
4435
+
4436
+ # List of country codes representing countries. A Country code is represented in
4437
+ # ISO 3166 alpha-2 format. For Example:- "IT" for Italy, "GE" for Georgia.
4438
+ # Corresponds to the JSON property `countryCodes`
4439
+ # @return [Array<String>]
4440
+ attr_accessor :country_codes
4441
+
4442
+ # Country set name.
4443
+ # Corresponds to the JSON property `name`
4444
+ # @return [String]
4445
+ attr_accessor :name
4446
+
4447
+ def initialize(**args)
4448
+ update!(**args)
4449
+ end
4450
+
4451
+ # Update properties of this object
4452
+ def update!(**args)
4453
+ @country_codes = args[:country_codes] if args.key?(:country_codes)
4454
+ @name = args[:name] if args.key?(:name)
4455
+ end
4456
+ end
4457
+
4458
+ # Information specific to cancellations initiated by users.
4459
+ class UserInitiatedCancellation
4460
+ include Google::Apis::Core::Hashable
4461
+
4462
+ # Result of the cancel survey when the subscription was canceled by the user.
4463
+ # Corresponds to the JSON property `cancelSurveyResult`
4464
+ # @return [Google::Apis::AndroidpublisherV3::CancelSurveyResult]
4465
+ attr_accessor :cancel_survey_result
4466
+
4467
+ # The time at which the subscription was canceled by the user. The user might
4468
+ # still have access to the subscription after this time. Use line_items.
4469
+ # expiry_time to determine if a user still has access.
4470
+ # Corresponds to the JSON property `cancelTime`
4471
+ # @return [String]
4472
+ attr_accessor :cancel_time
4473
+
4474
+ def initialize(**args)
4475
+ update!(**args)
4476
+ end
4477
+
4478
+ # Update properties of this object
4479
+ def update!(**args)
4480
+ @cancel_survey_result = args[:cancel_survey_result] if args.key?(:cancel_survey_result)
4481
+ @cancel_time = args[:cancel_time] if args.key?(:cancel_time)
4482
+ end
4483
+ end
4484
+
2111
4485
  # A permission used by this APK.
2112
4486
  class UsesPermission
2113
4487
  include Google::Apis::Core::Hashable