google-apis-androidpublisher_v3 0.11.0 → 0.30.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,6 +252,170 @@ module Google
206
252
  end
207
253
  end
208
254
 
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
+ def initialize(**args)
345
+ update!(**args)
346
+ end
347
+
348
+ # Update properties of this object
349
+ def update!(**args)
350
+ @auto_renew_enabled = args[:auto_renew_enabled] if args.key?(:auto_renew_enabled)
351
+ end
352
+ end
353
+
354
+ # A single base plan for a subscription.
355
+ class BasePlan
356
+ include Google::Apis::Core::Hashable
357
+
358
+ # Represents a base plan that automatically renews at the end of its
359
+ # subscription period.
360
+ # Corresponds to the JSON property `autoRenewingBasePlanType`
361
+ # @return [Google::Apis::AndroidpublisherV3::AutoRenewingBasePlanType]
362
+ attr_accessor :auto_renewing_base_plan_type
363
+
364
+ # Required. Immutable. The unique identifier of this base plan. Must be unique
365
+ # within the subscription, and conform with RFC-1034. That is, this ID can only
366
+ # contain lower-case letters (a-z), numbers (0-9), and hyphens (-), and be at
367
+ # most 63 characters.
368
+ # Corresponds to the JSON property `basePlanId`
369
+ # @return [String]
370
+ attr_accessor :base_plan_id
371
+
372
+ # List of up to 20 custom tags specified for this base plan, and returned to the
373
+ # app through the billing library. Subscription offers for this base plan will
374
+ # also receive these offer tags in the billing library.
375
+ # Corresponds to the JSON property `offerTags`
376
+ # @return [Array<Google::Apis::AndroidpublisherV3::OfferTag>]
377
+ attr_accessor :offer_tags
378
+
379
+ # Pricing information for any new locations Play may launch in.
380
+ # Corresponds to the JSON property `otherRegionsConfig`
381
+ # @return [Google::Apis::AndroidpublisherV3::OtherRegionsBasePlanConfig]
382
+ attr_accessor :other_regions_config
383
+
384
+ # Represents a base plan that does not automatically renew at the end of the
385
+ # base plan, and must be manually renewed by the user.
386
+ # Corresponds to the JSON property `prepaidBasePlanType`
387
+ # @return [Google::Apis::AndroidpublisherV3::PrepaidBasePlanType]
388
+ attr_accessor :prepaid_base_plan_type
389
+
390
+ # Region-specific information for this base plan.
391
+ # Corresponds to the JSON property `regionalConfigs`
392
+ # @return [Array<Google::Apis::AndroidpublisherV3::RegionalBasePlanConfig>]
393
+ attr_accessor :regional_configs
394
+
395
+ # Output only. The state of the base plan, i.e. whether it's active. Draft and
396
+ # inactive base plans can be activated or deleted. Active base plans can be made
397
+ # inactive. Inactive base plans can be canceled. This field cannot be changed by
398
+ # updating the resource. Use the dedicated endpoints instead.
399
+ # Corresponds to the JSON property `state`
400
+ # @return [String]
401
+ attr_accessor :state
402
+
403
+ def initialize(**args)
404
+ update!(**args)
405
+ end
406
+
407
+ # Update properties of this object
408
+ def update!(**args)
409
+ @auto_renewing_base_plan_type = args[:auto_renewing_base_plan_type] if args.key?(:auto_renewing_base_plan_type)
410
+ @base_plan_id = args[:base_plan_id] if args.key?(:base_plan_id)
411
+ @offer_tags = args[:offer_tags] if args.key?(:offer_tags)
412
+ @other_regions_config = args[:other_regions_config] if args.key?(:other_regions_config)
413
+ @prepaid_base_plan_type = args[:prepaid_base_plan_type] if args.key?(:prepaid_base_plan_type)
414
+ @regional_configs = args[:regional_configs] if args.key?(:regional_configs)
415
+ @state = args[:state] if args.key?(:state)
416
+ end
417
+ end
418
+
209
419
  # Information about an app bundle. The resource for BundlesService.
210
420
  class Bundle
211
421
  include Google::Apis::Core::Hashable
@@ -265,6 +475,69 @@ module Google
265
475
  end
266
476
  end
267
477
 
478
+ # Result of the cancel survey when the subscription was canceled by the user.
479
+ class CancelSurveyResult
480
+ include Google::Apis::Core::Hashable
481
+
482
+ # The reason the user selected in the cancel survey.
483
+ # Corresponds to the JSON property `reason`
484
+ # @return [String]
485
+ attr_accessor :reason
486
+
487
+ # Only set for CANCEL_SURVEY_REASON_OTHERS. This is the user's freeform response
488
+ # to the survey.
489
+ # Corresponds to the JSON property `reasonUserInput`
490
+ # @return [String]
491
+ attr_accessor :reason_user_input
492
+
493
+ def initialize(**args)
494
+ update!(**args)
495
+ end
496
+
497
+ # Update properties of this object
498
+ def update!(**args)
499
+ @reason = args[:reason] if args.key?(:reason)
500
+ @reason_user_input = args[:reason_user_input] if args.key?(:reason_user_input)
501
+ end
502
+ end
503
+
504
+ # Information specific to a subscription in canceled state.
505
+ class CanceledStateContext
506
+ include Google::Apis::Core::Hashable
507
+
508
+ # Information specific to cancellations initiated by developers.
509
+ # Corresponds to the JSON property `developerInitiatedCancellation`
510
+ # @return [Google::Apis::AndroidpublisherV3::DeveloperInitiatedCancellation]
511
+ attr_accessor :developer_initiated_cancellation
512
+
513
+ # Information specific to cancellations caused by subscription replacement.
514
+ # Corresponds to the JSON property `replacementCancellation`
515
+ # @return [Google::Apis::AndroidpublisherV3::ReplacementCancellation]
516
+ attr_accessor :replacement_cancellation
517
+
518
+ # Information specific to cancellations initiated by Google system.
519
+ # Corresponds to the JSON property `systemInitiatedCancellation`
520
+ # @return [Google::Apis::AndroidpublisherV3::SystemInitiatedCancellation]
521
+ attr_accessor :system_initiated_cancellation
522
+
523
+ # Information specific to cancellations initiated by users.
524
+ # Corresponds to the JSON property `userInitiatedCancellation`
525
+ # @return [Google::Apis::AndroidpublisherV3::UserInitiatedCancellation]
526
+ attr_accessor :user_initiated_cancellation
527
+
528
+ def initialize(**args)
529
+ update!(**args)
530
+ end
531
+
532
+ # Update properties of this object
533
+ def update!(**args)
534
+ @developer_initiated_cancellation = args[:developer_initiated_cancellation] if args.key?(:developer_initiated_cancellation)
535
+ @replacement_cancellation = args[:replacement_cancellation] if args.key?(:replacement_cancellation)
536
+ @system_initiated_cancellation = args[:system_initiated_cancellation] if args.key?(:system_initiated_cancellation)
537
+ @user_initiated_cancellation = args[:user_initiated_cancellation] if args.key?(:user_initiated_cancellation)
538
+ end
539
+ end
540
+
268
541
  # An entry of conversation between user and developer.
269
542
  class Comment
270
543
  include Google::Apis::Core::Hashable
@@ -290,6 +563,106 @@ module Google
290
563
  end
291
564
  end
292
565
 
566
+ # Request message for ConvertRegionPrices.
567
+ class ConvertRegionPricesRequest
568
+ include Google::Apis::Core::Hashable
569
+
570
+ # Represents an amount of money with its currency type.
571
+ # Corresponds to the JSON property `price`
572
+ # @return [Google::Apis::AndroidpublisherV3::Money]
573
+ attr_accessor :price
574
+
575
+ def initialize(**args)
576
+ update!(**args)
577
+ end
578
+
579
+ # Update properties of this object
580
+ def update!(**args)
581
+ @price = args[:price] if args.key?(:price)
582
+ end
583
+ end
584
+
585
+ # Response message for ConvertRegionPrices.
586
+ class ConvertRegionPricesResponse
587
+ include Google::Apis::Core::Hashable
588
+
589
+ # Converted other regions prices.
590
+ # Corresponds to the JSON property `convertedOtherRegionsPrice`
591
+ # @return [Google::Apis::AndroidpublisherV3::ConvertedOtherRegionsPrice]
592
+ attr_accessor :converted_other_regions_price
593
+
594
+ # Map from region code to converted region price.
595
+ # Corresponds to the JSON property `convertedRegionPrices`
596
+ # @return [Hash<String,Google::Apis::AndroidpublisherV3::ConvertedRegionPrice>]
597
+ attr_accessor :converted_region_prices
598
+
599
+ def initialize(**args)
600
+ update!(**args)
601
+ end
602
+
603
+ # Update properties of this object
604
+ def update!(**args)
605
+ @converted_other_regions_price = args[:converted_other_regions_price] if args.key?(:converted_other_regions_price)
606
+ @converted_region_prices = args[:converted_region_prices] if args.key?(:converted_region_prices)
607
+ end
608
+ end
609
+
610
+ # Converted other regions prices.
611
+ class ConvertedOtherRegionsPrice
612
+ include Google::Apis::Core::Hashable
613
+
614
+ # Represents an amount of money with its currency type.
615
+ # Corresponds to the JSON property `eurPrice`
616
+ # @return [Google::Apis::AndroidpublisherV3::Money]
617
+ attr_accessor :eur_price
618
+
619
+ # Represents an amount of money with its currency type.
620
+ # Corresponds to the JSON property `usdPrice`
621
+ # @return [Google::Apis::AndroidpublisherV3::Money]
622
+ attr_accessor :usd_price
623
+
624
+ def initialize(**args)
625
+ update!(**args)
626
+ end
627
+
628
+ # Update properties of this object
629
+ def update!(**args)
630
+ @eur_price = args[:eur_price] if args.key?(:eur_price)
631
+ @usd_price = args[:usd_price] if args.key?(:usd_price)
632
+ end
633
+ end
634
+
635
+ # A converted region price.
636
+ class ConvertedRegionPrice
637
+ include Google::Apis::Core::Hashable
638
+
639
+ # Represents an amount of money with its currency type.
640
+ # Corresponds to the JSON property `price`
641
+ # @return [Google::Apis::AndroidpublisherV3::Money]
642
+ attr_accessor :price
643
+
644
+ # The region code of the region.
645
+ # Corresponds to the JSON property `regionCode`
646
+ # @return [String]
647
+ attr_accessor :region_code
648
+
649
+ # Represents an amount of money with its currency type.
650
+ # Corresponds to the JSON property `taxAmount`
651
+ # @return [Google::Apis::AndroidpublisherV3::Money]
652
+ attr_accessor :tax_amount
653
+
654
+ def initialize(**args)
655
+ update!(**args)
656
+ end
657
+
658
+ # Update properties of this object
659
+ def update!(**args)
660
+ @price = args[:price] if args.key?(:price)
661
+ @region_code = args[:region_code] if args.key?(:region_code)
662
+ @tax_amount = args[:tax_amount] if args.key?(:tax_amount)
663
+ end
664
+ end
665
+
293
666
  # Country targeting specification.
294
667
  class CountryTargeting
295
668
  include Google::Apis::Core::Hashable
@@ -317,6 +690,32 @@ module Google
317
690
  end
318
691
  end
319
692
 
693
+ # Request message for DeactivateBasePlan.
694
+ class DeactivateBasePlanRequest
695
+ include Google::Apis::Core::Hashable
696
+
697
+ def initialize(**args)
698
+ update!(**args)
699
+ end
700
+
701
+ # Update properties of this object
702
+ def update!(**args)
703
+ end
704
+ end
705
+
706
+ # Request message for DeactivateSubscriptionOffer.
707
+ class DeactivateSubscriptionOfferRequest
708
+ include Google::Apis::Core::Hashable
709
+
710
+ def initialize(**args)
711
+ update!(**args)
712
+ end
713
+
714
+ # Update properties of this object
715
+ def update!(**args)
716
+ end
717
+ end
718
+
320
719
  # Represents a deobfuscation file.
321
720
  class DeobfuscationFile
322
721
  include Google::Apis::Core::Hashable
@@ -383,6 +782,72 @@ module Google
383
782
  end
384
783
  end
385
784
 
785
+ # Information specific to cancellations initiated by developers.
786
+ class DeveloperInitiatedCancellation
787
+ include Google::Apis::Core::Hashable
788
+
789
+ def initialize(**args)
790
+ update!(**args)
791
+ end
792
+
793
+ # Update properties of this object
794
+ def update!(**args)
795
+ end
796
+ end
797
+
798
+ # LINT.IfChange A group of devices. A group is defined by a set of device
799
+ # selectors. A device belongs to the group if it matches any selector (logical
800
+ # OR).
801
+ class DeviceGroup
802
+ include Google::Apis::Core::Hashable
803
+
804
+ # Device selectors for this group. A device matching any of the selectors is
805
+ # included in this group.
806
+ # Corresponds to the JSON property `deviceSelectors`
807
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceSelector>]
808
+ attr_accessor :device_selectors
809
+
810
+ # The name of the group.
811
+ # Corresponds to the JSON property `name`
812
+ # @return [String]
813
+ attr_accessor :name
814
+
815
+ def initialize(**args)
816
+ update!(**args)
817
+ end
818
+
819
+ # Update properties of this object
820
+ def update!(**args)
821
+ @device_selectors = args[:device_selectors] if args.key?(:device_selectors)
822
+ @name = args[:name] if args.key?(:name)
823
+ end
824
+ end
825
+
826
+ # Identifier of a device.
827
+ class DeviceId
828
+ include Google::Apis::Core::Hashable
829
+
830
+ # Value of Build.BRAND.
831
+ # Corresponds to the JSON property `buildBrand`
832
+ # @return [String]
833
+ attr_accessor :build_brand
834
+
835
+ # Value of Build.DEVICE.
836
+ # Corresponds to the JSON property `buildDevice`
837
+ # @return [String]
838
+ attr_accessor :build_device
839
+
840
+ def initialize(**args)
841
+ update!(**args)
842
+ end
843
+
844
+ # Update properties of this object
845
+ def update!(**args)
846
+ @build_brand = args[:build_brand] if args.key?(:build_brand)
847
+ @build_device = args[:build_device] if args.key?(:build_device)
848
+ end
849
+ end
850
+
386
851
  # Characteristics of the user's device.
387
852
  class DeviceMetadata
388
853
  include Google::Apis::Core::Hashable
@@ -462,18 +927,94 @@ module Google
462
927
  end
463
928
  end
464
929
 
465
- # The device spec used to generate a system APK.
466
- class DeviceSpec
930
+ # Conditions about a device's RAM capabilities.
931
+ class DeviceRam
467
932
  include Google::Apis::Core::Hashable
468
933
 
469
- # Screen dpi.
470
- # Corresponds to the JSON property `screenDensity`
934
+ # Maximum RAM in bytes (bound excluded).
935
+ # Corresponds to the JSON property `maxBytes`
471
936
  # @return [Fixnum]
472
- attr_accessor :screen_density
937
+ attr_accessor :max_bytes
473
938
 
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".
476
- # Corresponds to the JSON property `supportedAbis`
939
+ # Minimum RAM in bytes (bound included).
940
+ # Corresponds to the JSON property `minBytes`
941
+ # @return [Fixnum]
942
+ attr_accessor :min_bytes
943
+
944
+ def initialize(**args)
945
+ update!(**args)
946
+ end
947
+
948
+ # Update properties of this object
949
+ def update!(**args)
950
+ @max_bytes = args[:max_bytes] if args.key?(:max_bytes)
951
+ @min_bytes = args[:min_bytes] if args.key?(:min_bytes)
952
+ end
953
+ end
954
+
955
+ # Selector for a device group. A selector consists of a set of conditions on the
956
+ # device that should all match (logical AND) to determine a device group
957
+ # eligibility. For instance, if a selector specifies RAM conditions, device
958
+ # model inclusion and device model exclusion, a device is considered to match if:
959
+ # device matches RAM conditions AND device matches one of the included device
960
+ # models AND device doesn't match excluded device models
961
+ class DeviceSelector
962
+ include Google::Apis::Core::Hashable
963
+
964
+ # Conditions about a device's RAM capabilities.
965
+ # Corresponds to the JSON property `deviceRam`
966
+ # @return [Google::Apis::AndroidpublisherV3::DeviceRam]
967
+ attr_accessor :device_ram
968
+
969
+ # Device models excluded by this selector, even if they match all other
970
+ # conditions.
971
+ # Corresponds to the JSON property `excludedDeviceIds`
972
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceId>]
973
+ attr_accessor :excluded_device_ids
974
+
975
+ # A device that has any of these system features is excluded by this selector,
976
+ # even if it matches all other conditions.
977
+ # Corresponds to the JSON property `forbiddenSystemFeatures`
978
+ # @return [Array<Google::Apis::AndroidpublisherV3::SystemFeature>]
979
+ attr_accessor :forbidden_system_features
980
+
981
+ # Device models included by this selector.
982
+ # Corresponds to the JSON property `includedDeviceIds`
983
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceId>]
984
+ attr_accessor :included_device_ids
985
+
986
+ # A device needs to have all these system features to be included by the
987
+ # selector.
988
+ # Corresponds to the JSON property `requiredSystemFeatures`
989
+ # @return [Array<Google::Apis::AndroidpublisherV3::SystemFeature>]
990
+ attr_accessor :required_system_features
991
+
992
+ def initialize(**args)
993
+ update!(**args)
994
+ end
995
+
996
+ # Update properties of this object
997
+ def update!(**args)
998
+ @device_ram = args[:device_ram] if args.key?(:device_ram)
999
+ @excluded_device_ids = args[:excluded_device_ids] if args.key?(:excluded_device_ids)
1000
+ @forbidden_system_features = args[:forbidden_system_features] if args.key?(:forbidden_system_features)
1001
+ @included_device_ids = args[:included_device_ids] if args.key?(:included_device_ids)
1002
+ @required_system_features = args[:required_system_features] if args.key?(:required_system_features)
1003
+ end
1004
+ end
1005
+
1006
+ # The device spec used to generate a system APK.
1007
+ class DeviceSpec
1008
+ include Google::Apis::Core::Hashable
1009
+
1010
+ # Screen dpi.
1011
+ # Corresponds to the JSON property `screenDensity`
1012
+ # @return [Fixnum]
1013
+ attr_accessor :screen_density
1014
+
1015
+ # Supported ABI architectures in the order of preference. The values should be
1016
+ # the string as reported by the platform, e.g. "armeabi-v7a", "x86_64".
1017
+ # Corresponds to the JSON property `supportedAbis`
477
1018
  # @return [Array<String>]
478
1019
  attr_accessor :supported_abis
479
1020
 
@@ -494,6 +1035,100 @@ module Google
494
1035
  end
495
1036
  end
496
1037
 
1038
+ # A single device tier. Devices matching any of the device groups in
1039
+ # device_group_names are considered to match the tier.
1040
+ class DeviceTier
1041
+ include Google::Apis::Core::Hashable
1042
+
1043
+ # Groups of devices included in this tier. These groups must be defined
1044
+ # explicitly under device_groups in this configuration.
1045
+ # Corresponds to the JSON property `deviceGroupNames`
1046
+ # @return [Array<String>]
1047
+ attr_accessor :device_group_names
1048
+
1049
+ # The priority level of the tier. Tiers are evaluated in descending order of
1050
+ # level: the highest level tier has the highest priority. The highest tier
1051
+ # matching a given device is selected for that device. You should use a
1052
+ # contiguous range of levels for your tiers in a tier set; tier levels in a tier
1053
+ # set must be unique. For instance, if your tier set has 4 tiers (including the
1054
+ # global fallback), you should define tiers 1, 2 and 3 in this configuration.
1055
+ # Note: tier 0 is implicitly defined as a global fallback and selected for
1056
+ # devices that don't match any of the tiers explicitly defined here. You mustn't
1057
+ # define level 0 explicitly in this configuration.
1058
+ # Corresponds to the JSON property `level`
1059
+ # @return [Fixnum]
1060
+ attr_accessor :level
1061
+
1062
+ def initialize(**args)
1063
+ update!(**args)
1064
+ end
1065
+
1066
+ # Update properties of this object
1067
+ def update!(**args)
1068
+ @device_group_names = args[:device_group_names] if args.key?(:device_group_names)
1069
+ @level = args[:level] if args.key?(:level)
1070
+ end
1071
+ end
1072
+
1073
+ # LINT.IfChange Configuration describing device targeting criteria for the
1074
+ # content of an app.
1075
+ class DeviceTierConfig
1076
+ include Google::Apis::Core::Hashable
1077
+
1078
+ # Definition of device groups for the app.
1079
+ # Corresponds to the JSON property `deviceGroups`
1080
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceGroup>]
1081
+ attr_accessor :device_groups
1082
+
1083
+ # Output only. The device tier config ID.
1084
+ # Corresponds to the JSON property `deviceTierConfigId`
1085
+ # @return [Fixnum]
1086
+ attr_accessor :device_tier_config_id
1087
+
1088
+ # A set of device tiers. A tier set determines what variation of app content
1089
+ # gets served to a specific device, for device-targeted content. You should
1090
+ # assign a priority level to each tier, which determines the ordering by which
1091
+ # they are evaluated by Play. See the documentation of DeviceTier.level for more
1092
+ # details.
1093
+ # Corresponds to the JSON property `deviceTierSet`
1094
+ # @return [Google::Apis::AndroidpublisherV3::DeviceTierSet]
1095
+ attr_accessor :device_tier_set
1096
+
1097
+ def initialize(**args)
1098
+ update!(**args)
1099
+ end
1100
+
1101
+ # Update properties of this object
1102
+ def update!(**args)
1103
+ @device_groups = args[:device_groups] if args.key?(:device_groups)
1104
+ @device_tier_config_id = args[:device_tier_config_id] if args.key?(:device_tier_config_id)
1105
+ @device_tier_set = args[:device_tier_set] if args.key?(:device_tier_set)
1106
+ end
1107
+ end
1108
+
1109
+ # A set of device tiers. A tier set determines what variation of app content
1110
+ # gets served to a specific device, for device-targeted content. You should
1111
+ # assign a priority level to each tier, which determines the ordering by which
1112
+ # they are evaluated by Play. See the documentation of DeviceTier.level for more
1113
+ # details.
1114
+ class DeviceTierSet
1115
+ include Google::Apis::Core::Hashable
1116
+
1117
+ # Device tiers belonging to the set.
1118
+ # Corresponds to the JSON property `deviceTiers`
1119
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceTier>]
1120
+ attr_accessor :device_tiers
1121
+
1122
+ def initialize(**args)
1123
+ update!(**args)
1124
+ end
1125
+
1126
+ # Update properties of this object
1127
+ def update!(**args)
1128
+ @device_tiers = args[:device_tiers] if args.key?(:device_tiers)
1129
+ end
1130
+ end
1131
+
497
1132
  # An expansion file. The resource for ExpansionFilesService.
498
1133
  class ExpansionFile
499
1134
  include Google::Apis::Core::Hashable
@@ -541,6 +1176,45 @@ module Google
541
1176
  end
542
1177
  end
543
1178
 
1179
+ # User account identifier in the third-party service.
1180
+ class ExternalAccountIdentifiers
1181
+ include Google::Apis::Core::Hashable
1182
+
1183
+ # User account identifier in the third-party service. Only present if account
1184
+ # linking happened as part of the subscription purchase flow.
1185
+ # Corresponds to the JSON property `externalAccountId`
1186
+ # @return [String]
1187
+ attr_accessor :external_account_id
1188
+
1189
+ # An obfuscated version of the id that is uniquely associated with the user's
1190
+ # account in your app. Present for the following purchases: * If account linking
1191
+ # happened as part of the subscription purchase flow. * It was specified using
1192
+ # https://developer.android.com/reference/com/android/billingclient/api/
1193
+ # BillingFlowParams.Builder#setobfuscatedaccountid when the purchase was made.
1194
+ # Corresponds to the JSON property `obfuscatedExternalAccountId`
1195
+ # @return [String]
1196
+ attr_accessor :obfuscated_external_account_id
1197
+
1198
+ # An obfuscated version of the id that is uniquely associated with the user's
1199
+ # profile in your app. Only present if specified using https://developer.android.
1200
+ # com/reference/com/android/billingclient/api/BillingFlowParams.Builder#
1201
+ # setobfuscatedprofileid when the purchase was made.
1202
+ # Corresponds to the JSON property `obfuscatedExternalProfileId`
1203
+ # @return [String]
1204
+ attr_accessor :obfuscated_external_profile_id
1205
+
1206
+ def initialize(**args)
1207
+ update!(**args)
1208
+ end
1209
+
1210
+ # Update properties of this object
1211
+ def update!(**args)
1212
+ @external_account_id = args[:external_account_id] if args.key?(:external_account_id)
1213
+ @obfuscated_external_account_id = args[:obfuscated_external_account_id] if args.key?(:obfuscated_external_account_id)
1214
+ @obfuscated_external_profile_id = args[:obfuscated_external_profile_id] if args.key?(:obfuscated_external_profile_id)
1215
+ end
1216
+ end
1217
+
544
1218
  # Defines an APK available for this application that is hosted externally and
545
1219
  # not uploaded to Google Play. This function is only available to organizations
546
1220
  # using Managed Play whose application is configured to restrict distribution to
@@ -648,6 +1322,227 @@ module Google
648
1322
  end
649
1323
  end
650
1324
 
1325
+ # Response to list generated APKs.
1326
+ class GeneratedApksListResponse
1327
+ include Google::Apis::Core::Hashable
1328
+
1329
+ # All generated APKs, grouped by the APK signing key.
1330
+ # Corresponds to the JSON property `generatedApks`
1331
+ # @return [Array<Google::Apis::AndroidpublisherV3::GeneratedApksPerSigningKey>]
1332
+ attr_accessor :generated_apks
1333
+
1334
+ def initialize(**args)
1335
+ update!(**args)
1336
+ end
1337
+
1338
+ # Update properties of this object
1339
+ def update!(**args)
1340
+ @generated_apks = args[:generated_apks] if args.key?(:generated_apks)
1341
+ end
1342
+ end
1343
+
1344
+ # Download metadata for split, standalone and universal APKs, as well as asset
1345
+ # pack slices, signed with a given key.
1346
+ class GeneratedApksPerSigningKey
1347
+ include Google::Apis::Core::Hashable
1348
+
1349
+ # SHA256 hash of the APK signing public key certificate.
1350
+ # Corresponds to the JSON property `certificateSha256Hash`
1351
+ # @return [String]
1352
+ attr_accessor :certificate_sha256_hash
1353
+
1354
+ # List of asset pack slices which will be served for this app bundle, signed
1355
+ # with a key corresponding to certificate_sha256_hash.
1356
+ # Corresponds to the JSON property `generatedAssetPackSlices`
1357
+ # @return [Array<Google::Apis::AndroidpublisherV3::GeneratedAssetPackSlice>]
1358
+ attr_accessor :generated_asset_pack_slices
1359
+
1360
+ # List of generated split APKs, signed with a key corresponding to
1361
+ # certificate_sha256_hash.
1362
+ # Corresponds to the JSON property `generatedSplitApks`
1363
+ # @return [Array<Google::Apis::AndroidpublisherV3::GeneratedSplitApk>]
1364
+ attr_accessor :generated_split_apks
1365
+
1366
+ # List of generated standalone APKs, signed with a key corresponding to
1367
+ # certificate_sha256_hash.
1368
+ # Corresponds to the JSON property `generatedStandaloneApks`
1369
+ # @return [Array<Google::Apis::AndroidpublisherV3::GeneratedStandaloneApk>]
1370
+ attr_accessor :generated_standalone_apks
1371
+
1372
+ # Download metadata for a universal APK.
1373
+ # Corresponds to the JSON property `generatedUniversalApk`
1374
+ # @return [Google::Apis::AndroidpublisherV3::GeneratedUniversalApk]
1375
+ attr_accessor :generated_universal_apk
1376
+
1377
+ def initialize(**args)
1378
+ update!(**args)
1379
+ end
1380
+
1381
+ # Update properties of this object
1382
+ def update!(**args)
1383
+ @certificate_sha256_hash = args[:certificate_sha256_hash] if args.key?(:certificate_sha256_hash)
1384
+ @generated_asset_pack_slices = args[:generated_asset_pack_slices] if args.key?(:generated_asset_pack_slices)
1385
+ @generated_split_apks = args[:generated_split_apks] if args.key?(:generated_split_apks)
1386
+ @generated_standalone_apks = args[:generated_standalone_apks] if args.key?(:generated_standalone_apks)
1387
+ @generated_universal_apk = args[:generated_universal_apk] if args.key?(:generated_universal_apk)
1388
+ end
1389
+ end
1390
+
1391
+ # Download metadata for an asset pack slice.
1392
+ class GeneratedAssetPackSlice
1393
+ include Google::Apis::Core::Hashable
1394
+
1395
+ # Download ID, which uniquely identifies the APK to download. Should be supplied
1396
+ # to `generatedapks.download` method.
1397
+ # Corresponds to the JSON property `downloadId`
1398
+ # @return [String]
1399
+ attr_accessor :download_id
1400
+
1401
+ # Name of the module that this asset slice belongs to.
1402
+ # Corresponds to the JSON property `moduleName`
1403
+ # @return [String]
1404
+ attr_accessor :module_name
1405
+
1406
+ # Asset slice ID.
1407
+ # Corresponds to the JSON property `sliceId`
1408
+ # @return [String]
1409
+ attr_accessor :slice_id
1410
+
1411
+ # Asset module version.
1412
+ # Corresponds to the JSON property `version`
1413
+ # @return [Fixnum]
1414
+ attr_accessor :version
1415
+
1416
+ def initialize(**args)
1417
+ update!(**args)
1418
+ end
1419
+
1420
+ # Update properties of this object
1421
+ def update!(**args)
1422
+ @download_id = args[:download_id] if args.key?(:download_id)
1423
+ @module_name = args[:module_name] if args.key?(:module_name)
1424
+ @slice_id = args[:slice_id] if args.key?(:slice_id)
1425
+ @version = args[:version] if args.key?(:version)
1426
+ end
1427
+ end
1428
+
1429
+ # Download metadata for a split APK.
1430
+ class GeneratedSplitApk
1431
+ include Google::Apis::Core::Hashable
1432
+
1433
+ # Download ID, which uniquely identifies the APK to download. Should be supplied
1434
+ # to `generatedapks.download` method.
1435
+ # Corresponds to the JSON property `downloadId`
1436
+ # @return [String]
1437
+ attr_accessor :download_id
1438
+
1439
+ # Name of the module that this APK belongs to.
1440
+ # Corresponds to the JSON property `moduleName`
1441
+ # @return [String]
1442
+ attr_accessor :module_name
1443
+
1444
+ # Split ID. Empty for the main split of the base module.
1445
+ # Corresponds to the JSON property `splitId`
1446
+ # @return [String]
1447
+ attr_accessor :split_id
1448
+
1449
+ # ID of the generated variant.
1450
+ # Corresponds to the JSON property `variantId`
1451
+ # @return [Fixnum]
1452
+ attr_accessor :variant_id
1453
+
1454
+ def initialize(**args)
1455
+ update!(**args)
1456
+ end
1457
+
1458
+ # Update properties of this object
1459
+ def update!(**args)
1460
+ @download_id = args[:download_id] if args.key?(:download_id)
1461
+ @module_name = args[:module_name] if args.key?(:module_name)
1462
+ @split_id = args[:split_id] if args.key?(:split_id)
1463
+ @variant_id = args[:variant_id] if args.key?(:variant_id)
1464
+ end
1465
+ end
1466
+
1467
+ # Download metadata for a standalone APK.
1468
+ class GeneratedStandaloneApk
1469
+ include Google::Apis::Core::Hashable
1470
+
1471
+ # Download ID, which uniquely identifies the APK to download. Should be supplied
1472
+ # to `generatedapks.download` method.
1473
+ # Corresponds to the JSON property `downloadId`
1474
+ # @return [String]
1475
+ attr_accessor :download_id
1476
+
1477
+ # ID of the generated variant.
1478
+ # Corresponds to the JSON property `variantId`
1479
+ # @return [Fixnum]
1480
+ attr_accessor :variant_id
1481
+
1482
+ def initialize(**args)
1483
+ update!(**args)
1484
+ end
1485
+
1486
+ # Update properties of this object
1487
+ def update!(**args)
1488
+ @download_id = args[:download_id] if args.key?(:download_id)
1489
+ @variant_id = args[:variant_id] if args.key?(:variant_id)
1490
+ end
1491
+ end
1492
+
1493
+ # Download metadata for a universal APK.
1494
+ class GeneratedUniversalApk
1495
+ include Google::Apis::Core::Hashable
1496
+
1497
+ # Download ID, which uniquely identifies the APK to download. Should be supplied
1498
+ # to `generatedapks.download` method.
1499
+ # Corresponds to the JSON property `downloadId`
1500
+ # @return [String]
1501
+ attr_accessor :download_id
1502
+
1503
+ def initialize(**args)
1504
+ update!(**args)
1505
+ end
1506
+
1507
+ # Update properties of this object
1508
+ def update!(**args)
1509
+ @download_id = args[:download_id] if args.key?(:download_id)
1510
+ end
1511
+ end
1512
+
1513
+ # An access grant resource.
1514
+ class Grant
1515
+ include Google::Apis::Core::Hashable
1516
+
1517
+ # The permissions granted to the user for this app.
1518
+ # Corresponds to the JSON property `appLevelPermissions`
1519
+ # @return [Array<String>]
1520
+ attr_accessor :app_level_permissions
1521
+
1522
+ # Required. Resource name for this grant, following the pattern "developers/`
1523
+ # developer`/users/`email`/grants/`package_name`". If this grant is for a draft
1524
+ # app, the app ID will be used in this resource name instead of the package name.
1525
+ # Corresponds to the JSON property `name`
1526
+ # @return [String]
1527
+ attr_accessor :name
1528
+
1529
+ # Immutable. The package name of the app. This will be empty for draft apps.
1530
+ # Corresponds to the JSON property `packageName`
1531
+ # @return [String]
1532
+ attr_accessor :package_name
1533
+
1534
+ def initialize(**args)
1535
+ update!(**args)
1536
+ end
1537
+
1538
+ # Update properties of this object
1539
+ def update!(**args)
1540
+ @app_level_permissions = args[:app_level_permissions] if args.key?(:app_level_permissions)
1541
+ @name = args[:name] if args.key?(:name)
1542
+ @package_name = args[:package_name] if args.key?(:package_name)
1543
+ end
1544
+ end
1545
+
651
1546
  # An uploaded image. The resource for ImagesService.
652
1547
  class Image
653
1548
  include Google::Apis::Core::Hashable
@@ -770,6 +1665,11 @@ module Google
770
1665
  # @return [Hash<String,Google::Apis::AndroidpublisherV3::InAppProductListing>]
771
1666
  attr_accessor :listings
772
1667
 
1668
+ # Details about taxation and legal compliance for managed products.
1669
+ # Corresponds to the JSON property `managedProductTaxesAndComplianceSettings`
1670
+ # @return [Google::Apis::AndroidpublisherV3::ManagedProductTaxAndComplianceSettings]
1671
+ attr_accessor :managed_product_taxes_and_compliance_settings
1672
+
773
1673
  # Package name of the parent app.
774
1674
  # Corresponds to the JSON property `packageName`
775
1675
  # @return [String]
@@ -803,6 +1703,12 @@ module Google
803
1703
  # @return [String]
804
1704
  attr_accessor :subscription_period
805
1705
 
1706
+ # Details about taxation, Google Play policy and legal compliance for
1707
+ # subscription products.
1708
+ # Corresponds to the JSON property `subscriptionTaxesAndComplianceSettings`
1709
+ # @return [Google::Apis::AndroidpublisherV3::SubscriptionTaxAndComplianceSettings]
1710
+ attr_accessor :subscription_taxes_and_compliance_settings
1711
+
806
1712
  # Trial period, specified in ISO 8601 format. Acceptable values are anything
807
1713
  # between P7D (seven days) and P999D (999 days).
808
1714
  # Corresponds to the JSON property `trialPeriod`
@@ -819,12 +1725,14 @@ module Google
819
1725
  @default_price = args[:default_price] if args.key?(:default_price)
820
1726
  @grace_period = args[:grace_period] if args.key?(:grace_period)
821
1727
  @listings = args[:listings] if args.key?(:listings)
1728
+ @managed_product_taxes_and_compliance_settings = args[:managed_product_taxes_and_compliance_settings] if args.key?(:managed_product_taxes_and_compliance_settings)
822
1729
  @package_name = args[:package_name] if args.key?(:package_name)
823
1730
  @prices = args[:prices] if args.key?(:prices)
824
1731
  @purchase_type = args[:purchase_type] if args.key?(:purchase_type)
825
1732
  @sku = args[:sku] if args.key?(:sku)
826
1733
  @status = args[:status] if args.key?(:status)
827
1734
  @subscription_period = args[:subscription_period] if args.key?(:subscription_period)
1735
+ @subscription_taxes_and_compliance_settings = args[:subscription_taxes_and_compliance_settings] if args.key?(:subscription_taxes_and_compliance_settings)
828
1736
  @trial_period = args[:trial_period] if args.key?(:trial_period)
829
1737
  end
830
1738
  end
@@ -984,28 +1892,132 @@ module Google
984
1892
  end
985
1893
  end
986
1894
 
987
- # A localized store listing. The resource for ListingsService.
988
- class Listing
1895
+ # Response listing existing device tier configs.
1896
+ class ListDeviceTierConfigsResponse
989
1897
  include Google::Apis::Core::Hashable
990
1898
 
991
- # Full description of the app.
992
- # Corresponds to the JSON property `fullDescription`
993
- # @return [String]
994
- attr_accessor :full_description
1899
+ # Device tier configs created by the developer.
1900
+ # Corresponds to the JSON property `deviceTierConfigs`
1901
+ # @return [Array<Google::Apis::AndroidpublisherV3::DeviceTierConfig>]
1902
+ attr_accessor :device_tier_configs
995
1903
 
996
- # Language localization code (a BCP-47 language tag; for example, "de-AT" for
997
- # Austrian German).
998
- # Corresponds to the JSON property `language`
1904
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1905
+ # field is omitted, there are no subsequent pages.
1906
+ # Corresponds to the JSON property `nextPageToken`
999
1907
  # @return [String]
1000
- attr_accessor :language
1908
+ attr_accessor :next_page_token
1001
1909
 
1002
- # Short description of the app.
1003
- # Corresponds to the JSON property `shortDescription`
1004
- # @return [String]
1005
- attr_accessor :short_description
1910
+ def initialize(**args)
1911
+ update!(**args)
1912
+ end
1006
1913
 
1007
- # Localized title of the app.
1008
- # Corresponds to the JSON property `title`
1914
+ # Update properties of this object
1915
+ def update!(**args)
1916
+ @device_tier_configs = args[:device_tier_configs] if args.key?(:device_tier_configs)
1917
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1918
+ end
1919
+ end
1920
+
1921
+ # Response message for ListSubscriptionOffers.
1922
+ class ListSubscriptionOffersResponse
1923
+ include Google::Apis::Core::Hashable
1924
+
1925
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1926
+ # field is omitted, there are no subsequent pages.
1927
+ # Corresponds to the JSON property `nextPageToken`
1928
+ # @return [String]
1929
+ attr_accessor :next_page_token
1930
+
1931
+ # The subscription offers from the specified subscription.
1932
+ # Corresponds to the JSON property `subscriptionOffers`
1933
+ # @return [Array<Google::Apis::AndroidpublisherV3::SubscriptionOffer>]
1934
+ attr_accessor :subscription_offers
1935
+
1936
+ def initialize(**args)
1937
+ update!(**args)
1938
+ end
1939
+
1940
+ # Update properties of this object
1941
+ def update!(**args)
1942
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1943
+ @subscription_offers = args[:subscription_offers] if args.key?(:subscription_offers)
1944
+ end
1945
+ end
1946
+
1947
+ # Response message for ListSubscriptions.
1948
+ class ListSubscriptionsResponse
1949
+ include Google::Apis::Core::Hashable
1950
+
1951
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1952
+ # field is omitted, there are no subsequent pages.
1953
+ # Corresponds to the JSON property `nextPageToken`
1954
+ # @return [String]
1955
+ attr_accessor :next_page_token
1956
+
1957
+ # The subscriptions from the specified app.
1958
+ # Corresponds to the JSON property `subscriptions`
1959
+ # @return [Array<Google::Apis::AndroidpublisherV3::Subscription>]
1960
+ attr_accessor :subscriptions
1961
+
1962
+ def initialize(**args)
1963
+ update!(**args)
1964
+ end
1965
+
1966
+ # Update properties of this object
1967
+ def update!(**args)
1968
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1969
+ @subscriptions = args[:subscriptions] if args.key?(:subscriptions)
1970
+ end
1971
+ end
1972
+
1973
+ # A response containing one or more users with access to an account.
1974
+ class ListUsersResponse
1975
+ include Google::Apis::Core::Hashable
1976
+
1977
+ # A token to pass to subsequent calls in order to retrieve subsequent results.
1978
+ # This will not be set if there are no more results to return.
1979
+ # Corresponds to the JSON property `nextPageToken`
1980
+ # @return [String]
1981
+ attr_accessor :next_page_token
1982
+
1983
+ # The resulting users.
1984
+ # Corresponds to the JSON property `users`
1985
+ # @return [Array<Google::Apis::AndroidpublisherV3::User>]
1986
+ attr_accessor :users
1987
+
1988
+ def initialize(**args)
1989
+ update!(**args)
1990
+ end
1991
+
1992
+ # Update properties of this object
1993
+ def update!(**args)
1994
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1995
+ @users = args[:users] if args.key?(:users)
1996
+ end
1997
+ end
1998
+
1999
+ # A localized store listing. The resource for ListingsService.
2000
+ class Listing
2001
+ include Google::Apis::Core::Hashable
2002
+
2003
+ # Full description of the app.
2004
+ # Corresponds to the JSON property `fullDescription`
2005
+ # @return [String]
2006
+ attr_accessor :full_description
2007
+
2008
+ # Language localization code (a BCP-47 language tag; for example, "de-AT" for
2009
+ # Austrian German).
2010
+ # Corresponds to the JSON property `language`
2011
+ # @return [String]
2012
+ attr_accessor :language
2013
+
2014
+ # Short description of the app.
2015
+ # Corresponds to the JSON property `shortDescription`
2016
+ # @return [String]
2017
+ attr_accessor :short_description
2018
+
2019
+ # Localized title of the app.
2020
+ # Corresponds to the JSON property `title`
1009
2021
  # @return [String]
1010
2022
  attr_accessor :title
1011
2023
 
@@ -1053,7 +2065,7 @@ module Google
1053
2065
  end
1054
2066
  end
1055
2067
 
1056
- # Release notes specification, i.e. language and text.
2068
+ # Localized text in given language.
1057
2069
  class LocalizedText
1058
2070
  include Google::Apis::Core::Hashable
1059
2071
 
@@ -1079,6 +2091,250 @@ module Google
1079
2091
  end
1080
2092
  end
1081
2093
 
2094
+ # Details about taxation and legal compliance for managed products.
2095
+ class ManagedProductTaxAndComplianceSettings
2096
+ include Google::Apis::Core::Hashable
2097
+
2098
+ # Digital content or service classification for products distributed to users in
2099
+ # the European Economic Area (EEA). The withdrawal regime under EEA consumer
2100
+ # laws depends on this classification. Refer to the [Help Center article](https:/
2101
+ # /support.google.com/googleplay/android-developer/answer/10463498) for more
2102
+ # information.
2103
+ # Corresponds to the JSON property `eeaWithdrawalRightType`
2104
+ # @return [String]
2105
+ attr_accessor :eea_withdrawal_right_type
2106
+
2107
+ # A mapping from region code to tax rate details. The keys are region codes as
2108
+ # defined by Unicode's "CLDR".
2109
+ # Corresponds to the JSON property `taxRateInfoByRegionCode`
2110
+ # @return [Hash<String,Google::Apis::AndroidpublisherV3::RegionalTaxRateInfo>]
2111
+ attr_accessor :tax_rate_info_by_region_code
2112
+
2113
+ def initialize(**args)
2114
+ update!(**args)
2115
+ end
2116
+
2117
+ # Update properties of this object
2118
+ def update!(**args)
2119
+ @eea_withdrawal_right_type = args[:eea_withdrawal_right_type] if args.key?(:eea_withdrawal_right_type)
2120
+ @tax_rate_info_by_region_code = args[:tax_rate_info_by_region_code] if args.key?(:tax_rate_info_by_region_code)
2121
+ end
2122
+ end
2123
+
2124
+ # Request message for MigrateBasePlanPrices.
2125
+ class MigrateBasePlanPricesRequest
2126
+ include Google::Apis::Core::Hashable
2127
+
2128
+ # Required. The regional prices to update.
2129
+ # Corresponds to the JSON property `regionalPriceMigrations`
2130
+ # @return [Array<Google::Apis::AndroidpublisherV3::RegionalPriceMigrationConfig>]
2131
+ attr_accessor :regional_price_migrations
2132
+
2133
+ # The version of the available regions being used for the specified resource.
2134
+ # Corresponds to the JSON property `regionsVersion`
2135
+ # @return [Google::Apis::AndroidpublisherV3::RegionsVersion]
2136
+ attr_accessor :regions_version
2137
+
2138
+ def initialize(**args)
2139
+ update!(**args)
2140
+ end
2141
+
2142
+ # Update properties of this object
2143
+ def update!(**args)
2144
+ @regional_price_migrations = args[:regional_price_migrations] if args.key?(:regional_price_migrations)
2145
+ @regions_version = args[:regions_version] if args.key?(:regions_version)
2146
+ end
2147
+ end
2148
+
2149
+ # Response message for MigrateBasePlanPrices.
2150
+ class MigrateBasePlanPricesResponse
2151
+ include Google::Apis::Core::Hashable
2152
+
2153
+ def initialize(**args)
2154
+ update!(**args)
2155
+ end
2156
+
2157
+ # Update properties of this object
2158
+ def update!(**args)
2159
+ end
2160
+ end
2161
+
2162
+ # Represents an amount of money with its currency type.
2163
+ class Money
2164
+ include Google::Apis::Core::Hashable
2165
+
2166
+ # The three-letter currency code defined in ISO 4217.
2167
+ # Corresponds to the JSON property `currencyCode`
2168
+ # @return [String]
2169
+ attr_accessor :currency_code
2170
+
2171
+ # Number of nano (10^-9) units of the amount. The value must be between -999,999,
2172
+ # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
2173
+ # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
2174
+ # negative. If `units` is negative, `nanos` must be negative or zero. For
2175
+ # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
2176
+ # Corresponds to the JSON property `nanos`
2177
+ # @return [Fixnum]
2178
+ attr_accessor :nanos
2179
+
2180
+ # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
2181
+ # 1 unit is one US dollar.
2182
+ # Corresponds to the JSON property `units`
2183
+ # @return [Fixnum]
2184
+ attr_accessor :units
2185
+
2186
+ def initialize(**args)
2187
+ update!(**args)
2188
+ end
2189
+
2190
+ # Update properties of this object
2191
+ def update!(**args)
2192
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
2193
+ @nanos = args[:nanos] if args.key?(:nanos)
2194
+ @units = args[:units] if args.key?(:units)
2195
+ end
2196
+ end
2197
+
2198
+ # Represents a custom tag specified for base plans and subscription offers.
2199
+ class OfferTag
2200
+ include Google::Apis::Core::Hashable
2201
+
2202
+ # Must conform with RFC-1034. That is, this string can only contain lower-case
2203
+ # letters (a-z), numbers (0-9), and hyphens (-), and be at most 20 characters.
2204
+ # Corresponds to the JSON property `tag`
2205
+ # @return [String]
2206
+ attr_accessor :tag
2207
+
2208
+ def initialize(**args)
2209
+ update!(**args)
2210
+ end
2211
+
2212
+ # Update properties of this object
2213
+ def update!(**args)
2214
+ @tag = args[:tag] if args.key?(:tag)
2215
+ end
2216
+ end
2217
+
2218
+ # Pricing information for any new locations Play may launch in.
2219
+ class OtherRegionsBasePlanConfig
2220
+ include Google::Apis::Core::Hashable
2221
+
2222
+ # Represents an amount of money with its currency type.
2223
+ # Corresponds to the JSON property `eurPrice`
2224
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2225
+ attr_accessor :eur_price
2226
+
2227
+ # Whether the base plan is available for new subscribers in any new locations
2228
+ # Play may launch in. If not specified, this will default to false.
2229
+ # Corresponds to the JSON property `newSubscriberAvailability`
2230
+ # @return [Boolean]
2231
+ attr_accessor :new_subscriber_availability
2232
+ alias_method :new_subscriber_availability?, :new_subscriber_availability
2233
+
2234
+ # Represents an amount of money with its currency type.
2235
+ # Corresponds to the JSON property `usdPrice`
2236
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2237
+ attr_accessor :usd_price
2238
+
2239
+ def initialize(**args)
2240
+ update!(**args)
2241
+ end
2242
+
2243
+ # Update properties of this object
2244
+ def update!(**args)
2245
+ @eur_price = args[:eur_price] if args.key?(:eur_price)
2246
+ @new_subscriber_availability = args[:new_subscriber_availability] if args.key?(:new_subscriber_availability)
2247
+ @usd_price = args[:usd_price] if args.key?(:usd_price)
2248
+ end
2249
+ end
2250
+
2251
+ # Configuration for any new locations Play may launch in specified on a
2252
+ # subscription offer.
2253
+ class OtherRegionsSubscriptionOfferConfig
2254
+ include Google::Apis::Core::Hashable
2255
+
2256
+ # Whether the subscription offer in any new locations Play may launch in the
2257
+ # future. If not specified, this will default to false.
2258
+ # Corresponds to the JSON property `otherRegionsNewSubscriberAvailability`
2259
+ # @return [Boolean]
2260
+ attr_accessor :other_regions_new_subscriber_availability
2261
+ alias_method :other_regions_new_subscriber_availability?, :other_regions_new_subscriber_availability
2262
+
2263
+ def initialize(**args)
2264
+ update!(**args)
2265
+ end
2266
+
2267
+ # Update properties of this object
2268
+ def update!(**args)
2269
+ @other_regions_new_subscriber_availability = args[:other_regions_new_subscriber_availability] if args.key?(:other_regions_new_subscriber_availability)
2270
+ end
2271
+ end
2272
+
2273
+ # Configuration for any new locations Play may launch in for a single offer
2274
+ # phase.
2275
+ class OtherRegionsSubscriptionOfferPhaseConfig
2276
+ include Google::Apis::Core::Hashable
2277
+
2278
+ # Pricing information for any new locations Play may launch in.
2279
+ # Corresponds to the JSON property `absoluteDiscounts`
2280
+ # @return [Google::Apis::AndroidpublisherV3::OtherRegionsSubscriptionOfferPhasePrices]
2281
+ attr_accessor :absolute_discounts
2282
+
2283
+ # Pricing information for any new locations Play may launch in.
2284
+ # Corresponds to the JSON property `otherRegionsPrices`
2285
+ # @return [Google::Apis::AndroidpublisherV3::OtherRegionsSubscriptionOfferPhasePrices]
2286
+ attr_accessor :other_regions_prices
2287
+
2288
+ # The fraction of the base plan price prorated over the phase duration that the
2289
+ # user pays for this offer phase. For example, if the base plan price for this
2290
+ # region is $12 for a period of 1 year, then a 50% discount for a phase of a
2291
+ # duration of 3 months would correspond to a price of $1.50. The discount must
2292
+ # be specified as a fraction strictly larger than 0 and strictly smaller than 1.
2293
+ # The resulting price will be rounded to the nearest billable unit (e.g. cents
2294
+ # for USD). The relative discount is considered invalid if the discounted price
2295
+ # ends up being smaller than the minimum price allowed in any new locations Play
2296
+ # may launch in.
2297
+ # Corresponds to the JSON property `relativeDiscount`
2298
+ # @return [Float]
2299
+ attr_accessor :relative_discount
2300
+
2301
+ def initialize(**args)
2302
+ update!(**args)
2303
+ end
2304
+
2305
+ # Update properties of this object
2306
+ def update!(**args)
2307
+ @absolute_discounts = args[:absolute_discounts] if args.key?(:absolute_discounts)
2308
+ @other_regions_prices = args[:other_regions_prices] if args.key?(:other_regions_prices)
2309
+ @relative_discount = args[:relative_discount] if args.key?(:relative_discount)
2310
+ end
2311
+ end
2312
+
2313
+ # Pricing information for any new locations Play may launch in.
2314
+ class OtherRegionsSubscriptionOfferPhasePrices
2315
+ include Google::Apis::Core::Hashable
2316
+
2317
+ # Represents an amount of money with its currency type.
2318
+ # Corresponds to the JSON property `eurPrice`
2319
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2320
+ attr_accessor :eur_price
2321
+
2322
+ # Represents an amount of money with its currency type.
2323
+ # Corresponds to the JSON property `usdPrice`
2324
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2325
+ attr_accessor :usd_price
2326
+
2327
+ def initialize(**args)
2328
+ update!(**args)
2329
+ end
2330
+
2331
+ # Update properties of this object
2332
+ def update!(**args)
2333
+ @eur_price = args[:eur_price] if args.key?(:eur_price)
2334
+ @usd_price = args[:usd_price] if args.key?(:usd_price)
2335
+ end
2336
+ end
2337
+
1082
2338
  # Information about the current page. List operations that supports paging
1083
2339
  # return only one "page" of results. This protocol buffer message describes the
1084
2340
  # page that has been returned.
@@ -1114,6 +2370,73 @@ module Google
1114
2370
  end
1115
2371
  end
1116
2372
 
2373
+ # Information specific to a subscription in paused state.
2374
+ class PausedStateContext
2375
+ include Google::Apis::Core::Hashable
2376
+
2377
+ # Time at which the subscription will be automatically resumed.
2378
+ # Corresponds to the JSON property `autoResumeTime`
2379
+ # @return [String]
2380
+ attr_accessor :auto_resume_time
2381
+
2382
+ def initialize(**args)
2383
+ update!(**args)
2384
+ end
2385
+
2386
+ # Update properties of this object
2387
+ def update!(**args)
2388
+ @auto_resume_time = args[:auto_resume_time] if args.key?(:auto_resume_time)
2389
+ end
2390
+ end
2391
+
2392
+ # Represents a base plan that does not automatically renew at the end of the
2393
+ # base plan, and must be manually renewed by the user.
2394
+ class PrepaidBasePlanType
2395
+ include Google::Apis::Core::Hashable
2396
+
2397
+ # Required. Subscription period, specified in ISO 8601 format. For a list of
2398
+ # acceptable billing periods, refer to the help center.
2399
+ # Corresponds to the JSON property `billingPeriodDuration`
2400
+ # @return [String]
2401
+ attr_accessor :billing_period_duration
2402
+
2403
+ # Whether users should be able to extend this prepaid base plan in Google Play
2404
+ # surfaces. Defaults to TIME_EXTENSION_ACTIVE if not specified.
2405
+ # Corresponds to the JSON property `timeExtension`
2406
+ # @return [String]
2407
+ attr_accessor :time_extension
2408
+
2409
+ def initialize(**args)
2410
+ update!(**args)
2411
+ end
2412
+
2413
+ # Update properties of this object
2414
+ def update!(**args)
2415
+ @billing_period_duration = args[:billing_period_duration] if args.key?(:billing_period_duration)
2416
+ @time_extension = args[:time_extension] if args.key?(:time_extension)
2417
+ end
2418
+ end
2419
+
2420
+ # Information related to a prepaid plan.
2421
+ class PrepaidPlan
2422
+ include Google::Apis::Core::Hashable
2423
+
2424
+ # If present, this is the time after which top up purchases are allowed for the
2425
+ # prepaid plan. Will not be present for expired prepaid plans.
2426
+ # Corresponds to the JSON property `allowExtendAfterTime`
2427
+ # @return [String]
2428
+ attr_accessor :allow_extend_after_time
2429
+
2430
+ def initialize(**args)
2431
+ update!(**args)
2432
+ end
2433
+
2434
+ # Update properties of this object
2435
+ def update!(**args)
2436
+ @allow_extend_after_time = args[:allow_extend_after_time] if args.key?(:allow_extend_after_time)
2437
+ end
2438
+ end
2439
+
1117
2440
  # Definition of a price, i.e. currency and units.
1118
2441
  class Price
1119
2442
  include Google::Apis::Core::Hashable
@@ -1189,7 +2512,7 @@ module Google
1189
2512
  # @return [String]
1190
2513
  attr_accessor :order_id
1191
2514
 
1192
- # The inapp product SKU.
2515
+ # The inapp product SKU. May not be present.
1193
2516
  # Corresponds to the JSON property `productId`
1194
2517
  # @return [String]
1195
2518
  attr_accessor :product_id
@@ -1206,7 +2529,7 @@ module Google
1206
2529
  # @return [Fixnum]
1207
2530
  attr_accessor :purchase_time_millis
1208
2531
 
1209
- # The purchase token generated to identify this purchase.
2532
+ # The purchase token generated to identify this purchase. May not be present.
1210
2533
  # Corresponds to the JSON property `purchaseToken`
1211
2534
  # @return [String]
1212
2535
  attr_accessor :purchase_token
@@ -1220,7 +2543,8 @@ module Google
1220
2543
  # @return [Fixnum]
1221
2544
  attr_accessor :purchase_type
1222
2545
 
1223
- # The quantity associated with the purchase of the inapp product.
2546
+ # The quantity associated with the purchase of the inapp product. If not present,
2547
+ # the quantity is 1.
1224
2548
  # Corresponds to the JSON property `quantity`
1225
2549
  # @return [Fixnum]
1226
2550
  attr_accessor :quantity
@@ -1273,19 +2597,230 @@ module Google
1273
2597
  end
1274
2598
  end
1275
2599
 
1276
- # An Android app review.
1277
- class Review
2600
+ # Configuration for a base plan specific to a region.
2601
+ class RegionalBasePlanConfig
1278
2602
  include Google::Apis::Core::Hashable
1279
2603
 
1280
- # The name of the user who wrote the review.
1281
- # Corresponds to the JSON property `authorName`
1282
- # @return [String]
1283
- attr_accessor :author_name
2604
+ # Whether the base plan in the specified region is available for new subscribers.
2605
+ # Existing subscribers will not have their subscription canceled if this value
2606
+ # is set to false. If not specified, this will default to false.
2607
+ # Corresponds to the JSON property `newSubscriberAvailability`
2608
+ # @return [Boolean]
2609
+ attr_accessor :new_subscriber_availability
2610
+ alias_method :new_subscriber_availability?, :new_subscriber_availability
1284
2611
 
1285
- # A repeated field containing comments for the review.
1286
- # Corresponds to the JSON property `comments`
1287
- # @return [Array<Google::Apis::AndroidpublisherV3::Comment>]
1288
- attr_accessor :comments
2612
+ # Represents an amount of money with its currency type.
2613
+ # Corresponds to the JSON property `price`
2614
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2615
+ attr_accessor :price
2616
+
2617
+ # Required. Region code this configuration applies to, as defined by ISO 3166-2,
2618
+ # e.g. "US".
2619
+ # Corresponds to the JSON property `regionCode`
2620
+ # @return [String]
2621
+ attr_accessor :region_code
2622
+
2623
+ def initialize(**args)
2624
+ update!(**args)
2625
+ end
2626
+
2627
+ # Update properties of this object
2628
+ def update!(**args)
2629
+ @new_subscriber_availability = args[:new_subscriber_availability] if args.key?(:new_subscriber_availability)
2630
+ @price = args[:price] if args.key?(:price)
2631
+ @region_code = args[:region_code] if args.key?(:region_code)
2632
+ end
2633
+ end
2634
+
2635
+ # Configuration for a price migration.
2636
+ class RegionalPriceMigrationConfig
2637
+ include Google::Apis::Core::Hashable
2638
+
2639
+ # Required. The cutoff time for historical prices that subscribers can remain
2640
+ # paying. Subscribers who are on a price that was created before this cutoff
2641
+ # time will be migrated to the currently-offered price. These subscribers will
2642
+ # receive a notification that they will be paying a different price. Subscribers
2643
+ # who do not agree to the new price will have their subscription ended at the
2644
+ # next renewal.
2645
+ # Corresponds to the JSON property `oldestAllowedPriceVersionTime`
2646
+ # @return [String]
2647
+ attr_accessor :oldest_allowed_price_version_time
2648
+
2649
+ # Required. Region code this configuration applies to, as defined by ISO 3166-2,
2650
+ # e.g. "US".
2651
+ # Corresponds to the JSON property `regionCode`
2652
+ # @return [String]
2653
+ attr_accessor :region_code
2654
+
2655
+ def initialize(**args)
2656
+ update!(**args)
2657
+ end
2658
+
2659
+ # Update properties of this object
2660
+ def update!(**args)
2661
+ @oldest_allowed_price_version_time = args[:oldest_allowed_price_version_time] if args.key?(:oldest_allowed_price_version_time)
2662
+ @region_code = args[:region_code] if args.key?(:region_code)
2663
+ end
2664
+ end
2665
+
2666
+ # Configuration for a subscription offer in a single region.
2667
+ class RegionalSubscriptionOfferConfig
2668
+ include Google::Apis::Core::Hashable
2669
+
2670
+ # Whether the subscription offer in the specified region is available for new
2671
+ # subscribers. Existing subscribers will not have their subscription cancelled
2672
+ # if this value is set to false. If not specified, this will default to false.
2673
+ # Corresponds to the JSON property `newSubscriberAvailability`
2674
+ # @return [Boolean]
2675
+ attr_accessor :new_subscriber_availability
2676
+ alias_method :new_subscriber_availability?, :new_subscriber_availability
2677
+
2678
+ # Required. Immutable. Region code this configuration applies to, as defined by
2679
+ # ISO 3166-2, e.g. "US".
2680
+ # Corresponds to the JSON property `regionCode`
2681
+ # @return [String]
2682
+ attr_accessor :region_code
2683
+
2684
+ def initialize(**args)
2685
+ update!(**args)
2686
+ end
2687
+
2688
+ # Update properties of this object
2689
+ def update!(**args)
2690
+ @new_subscriber_availability = args[:new_subscriber_availability] if args.key?(:new_subscriber_availability)
2691
+ @region_code = args[:region_code] if args.key?(:region_code)
2692
+ end
2693
+ end
2694
+
2695
+ # Configuration for a single phase of a subscription offer in a single region.
2696
+ class RegionalSubscriptionOfferPhaseConfig
2697
+ include Google::Apis::Core::Hashable
2698
+
2699
+ # Represents an amount of money with its currency type.
2700
+ # Corresponds to the JSON property `absoluteDiscount`
2701
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2702
+ attr_accessor :absolute_discount
2703
+
2704
+ # Represents an amount of money with its currency type.
2705
+ # Corresponds to the JSON property `price`
2706
+ # @return [Google::Apis::AndroidpublisherV3::Money]
2707
+ attr_accessor :price
2708
+
2709
+ # Required. Immutable. The region to which this config applies.
2710
+ # Corresponds to the JSON property `regionCode`
2711
+ # @return [String]
2712
+ attr_accessor :region_code
2713
+
2714
+ # The fraction of the base plan price prorated over the phase duration that the
2715
+ # user pays for this offer phase. For example, if the base plan price for this
2716
+ # region is $12 for a period of 1 year, then a 50% discount for a phase of a
2717
+ # duration of 3 months would correspond to a price of $1.50. The discount must
2718
+ # be specified as a fraction strictly larger than 0 and strictly smaller than 1.
2719
+ # The resulting price will be rounded to the nearest billable unit (e.g. cents
2720
+ # for USD). The relative discount is considered invalid if the discounted price
2721
+ # ends up being smaller than the minimum price allowed in this region.
2722
+ # Corresponds to the JSON property `relativeDiscount`
2723
+ # @return [Float]
2724
+ attr_accessor :relative_discount
2725
+
2726
+ def initialize(**args)
2727
+ update!(**args)
2728
+ end
2729
+
2730
+ # Update properties of this object
2731
+ def update!(**args)
2732
+ @absolute_discount = args[:absolute_discount] if args.key?(:absolute_discount)
2733
+ @price = args[:price] if args.key?(:price)
2734
+ @region_code = args[:region_code] if args.key?(:region_code)
2735
+ @relative_discount = args[:relative_discount] if args.key?(:relative_discount)
2736
+ end
2737
+ end
2738
+
2739
+ # Specified details about taxation in a given geographical region.
2740
+ class RegionalTaxRateInfo
2741
+ include Google::Apis::Core::Hashable
2742
+
2743
+ # You must tell us if your app contains streaming products to correctly charge
2744
+ # US state and local sales tax. Field only supported in United States.
2745
+ # Corresponds to the JSON property `eligibleForStreamingServiceTaxRate`
2746
+ # @return [Boolean]
2747
+ attr_accessor :eligible_for_streaming_service_tax_rate
2748
+ alias_method :eligible_for_streaming_service_tax_rate?, :eligible_for_streaming_service_tax_rate
2749
+
2750
+ # To collect communications or amusement taxes in the United States, choose the
2751
+ # appropriate tax category. By default Google will determine the collected rate
2752
+ # based on the buyer ZIP code. [Learn more](https://support.google.com/
2753
+ # googleplay/android-developer/answer/10463498#streaming_tax).
2754
+ # Corresponds to the JSON property `streamingTaxType`
2755
+ # @return [String]
2756
+ attr_accessor :streaming_tax_type
2757
+
2758
+ # Tax tier to specify reduced tax rate. Developers who sell digital news,
2759
+ # magazines, newspapers, books, or audiobooks in various regions may be eligible
2760
+ # for reduced tax rates. [Learn more](https://support.google.com/googleplay/
2761
+ # android-developer/answer/10463498).
2762
+ # Corresponds to the JSON property `taxTier`
2763
+ # @return [String]
2764
+ attr_accessor :tax_tier
2765
+
2766
+ def initialize(**args)
2767
+ update!(**args)
2768
+ end
2769
+
2770
+ # Update properties of this object
2771
+ def update!(**args)
2772
+ @eligible_for_streaming_service_tax_rate = args[:eligible_for_streaming_service_tax_rate] if args.key?(:eligible_for_streaming_service_tax_rate)
2773
+ @streaming_tax_type = args[:streaming_tax_type] if args.key?(:streaming_tax_type)
2774
+ @tax_tier = args[:tax_tier] if args.key?(:tax_tier)
2775
+ end
2776
+ end
2777
+
2778
+ # The version of the available regions being used for the specified resource.
2779
+ class RegionsVersion
2780
+ include Google::Apis::Core::Hashable
2781
+
2782
+ # Required. A string representing version of the available regions being used
2783
+ # for the specified resource. The current version is 2022/01.
2784
+ # Corresponds to the JSON property `version`
2785
+ # @return [String]
2786
+ attr_accessor :version
2787
+
2788
+ def initialize(**args)
2789
+ update!(**args)
2790
+ end
2791
+
2792
+ # Update properties of this object
2793
+ def update!(**args)
2794
+ @version = args[:version] if args.key?(:version)
2795
+ end
2796
+ end
2797
+
2798
+ # Information specific to cancellations caused by subscription replacement.
2799
+ class ReplacementCancellation
2800
+ include Google::Apis::Core::Hashable
2801
+
2802
+ def initialize(**args)
2803
+ update!(**args)
2804
+ end
2805
+
2806
+ # Update properties of this object
2807
+ def update!(**args)
2808
+ end
2809
+ end
2810
+
2811
+ # An Android app review.
2812
+ class Review
2813
+ include Google::Apis::Core::Hashable
2814
+
2815
+ # The name of the user who wrote the review.
2816
+ # Corresponds to the JSON property `authorName`
2817
+ # @return [String]
2818
+ attr_accessor :author_name
2819
+
2820
+ # A repeated field containing comments for the review.
2821
+ # Corresponds to the JSON property `comments`
2822
+ # @return [Array<Google::Apis::AndroidpublisherV3::Comment>]
2823
+ attr_accessor :comments
1289
2824
 
1290
2825
  # Unique identifier for this review.
1291
2826
  # Corresponds to the JSON property `reviewId`
@@ -1411,23 +2946,318 @@ module Google
1411
2946
  end
1412
2947
  end
1413
2948
 
2949
+ # Information associated with purchases made with 'Subscribe with Google'.
2950
+ class SubscribeWithGoogleInfo
2951
+ include Google::Apis::Core::Hashable
2952
+
2953
+ # The email address of the user when the subscription was purchased.
2954
+ # Corresponds to the JSON property `emailAddress`
2955
+ # @return [String]
2956
+ attr_accessor :email_address
2957
+
2958
+ # The family name of the user when the subscription was purchased.
2959
+ # Corresponds to the JSON property `familyName`
2960
+ # @return [String]
2961
+ attr_accessor :family_name
2962
+
2963
+ # The given name of the user when the subscription was purchased.
2964
+ # Corresponds to the JSON property `givenName`
2965
+ # @return [String]
2966
+ attr_accessor :given_name
2967
+
2968
+ # The Google profile id of the user when the subscription was purchased.
2969
+ # Corresponds to the JSON property `profileId`
2970
+ # @return [String]
2971
+ attr_accessor :profile_id
2972
+
2973
+ # The profile name of the user when the subscription was purchased.
2974
+ # Corresponds to the JSON property `profileName`
2975
+ # @return [String]
2976
+ attr_accessor :profile_name
2977
+
2978
+ def initialize(**args)
2979
+ update!(**args)
2980
+ end
2981
+
2982
+ # Update properties of this object
2983
+ def update!(**args)
2984
+ @email_address = args[:email_address] if args.key?(:email_address)
2985
+ @family_name = args[:family_name] if args.key?(:family_name)
2986
+ @given_name = args[:given_name] if args.key?(:given_name)
2987
+ @profile_id = args[:profile_id] if args.key?(:profile_id)
2988
+ @profile_name = args[:profile_name] if args.key?(:profile_name)
2989
+ end
2990
+ end
2991
+
2992
+ # A single subscription for an app.
2993
+ class Subscription
2994
+ include Google::Apis::Core::Hashable
2995
+
2996
+ # Output only. Whether this subscription is archived. Archived subscriptions are
2997
+ # not available to any subscriber any longer, cannot be updated, and are not
2998
+ # returned in list requests unless the show archived flag is passed in.
2999
+ # Corresponds to the JSON property `archived`
3000
+ # @return [Boolean]
3001
+ attr_accessor :archived
3002
+ alias_method :archived?, :archived
3003
+
3004
+ # The set of base plans for this subscription. Represents the prices and
3005
+ # duration of the subscription if no other offers apply.
3006
+ # Corresponds to the JSON property `basePlans`
3007
+ # @return [Array<Google::Apis::AndroidpublisherV3::BasePlan>]
3008
+ attr_accessor :base_plans
3009
+
3010
+ # Required. List of localized listings for this subscription. Must contain at
3011
+ # least an entry for the default language of the parent app.
3012
+ # Corresponds to the JSON property `listings`
3013
+ # @return [Array<Google::Apis::AndroidpublisherV3::SubscriptionListing>]
3014
+ attr_accessor :listings
3015
+
3016
+ # Immutable. Package name of the parent app.
3017
+ # Corresponds to the JSON property `packageName`
3018
+ # @return [String]
3019
+ attr_accessor :package_name
3020
+
3021
+ # Immutable. Unique product ID of the product. Unique within the parent app.
3022
+ # Product IDs must be composed of lower-case letters (a-z), numbers (0-9),
3023
+ # underscores (_) and dots (.). It must start with a lower-case letter or number,
3024
+ # and be between 1 and 40 (inclusive) characters in length.
3025
+ # Corresponds to the JSON property `productId`
3026
+ # @return [String]
3027
+ attr_accessor :product_id
3028
+
3029
+ # Details about taxation, Google Play policy and legal compliance for
3030
+ # subscription products.
3031
+ # Corresponds to the JSON property `taxAndComplianceSettings`
3032
+ # @return [Google::Apis::AndroidpublisherV3::SubscriptionTaxAndComplianceSettings]
3033
+ attr_accessor :tax_and_compliance_settings
3034
+
3035
+ def initialize(**args)
3036
+ update!(**args)
3037
+ end
3038
+
3039
+ # Update properties of this object
3040
+ def update!(**args)
3041
+ @archived = args[:archived] if args.key?(:archived)
3042
+ @base_plans = args[:base_plans] if args.key?(:base_plans)
3043
+ @listings = args[:listings] if args.key?(:listings)
3044
+ @package_name = args[:package_name] if args.key?(:package_name)
3045
+ @product_id = args[:product_id] if args.key?(:product_id)
3046
+ @tax_and_compliance_settings = args[:tax_and_compliance_settings] if args.key?(:tax_and_compliance_settings)
3047
+ end
3048
+ end
3049
+
1414
3050
  # Information provided by the user when they complete the subscription
1415
3051
  # cancellation flow (cancellation reason survey).
1416
3052
  class SubscriptionCancelSurveyResult
1417
3053
  include Google::Apis::Core::Hashable
1418
3054
 
1419
- # The cancellation reason the user chose in the survey. Possible values are: 0.
1420
- # Other 1. I don't use this service enough 2. Technical issues 3. Cost-related
1421
- # reasons 4. I found a better app
1422
- # Corresponds to the JSON property `cancelSurveyReason`
3055
+ # The cancellation reason the user chose in the survey. Possible values are: 0.
3056
+ # Other 1. I don't use this service enough 2. Technical issues 3. Cost-related
3057
+ # reasons 4. I found a better app
3058
+ # Corresponds to the JSON property `cancelSurveyReason`
3059
+ # @return [Fixnum]
3060
+ attr_accessor :cancel_survey_reason
3061
+
3062
+ # The customized input cancel reason from the user. Only present when
3063
+ # cancelReason is 0.
3064
+ # Corresponds to the JSON property `userInputCancelReason`
3065
+ # @return [String]
3066
+ attr_accessor :user_input_cancel_reason
3067
+
3068
+ def initialize(**args)
3069
+ update!(**args)
3070
+ end
3071
+
3072
+ # Update properties of this object
3073
+ def update!(**args)
3074
+ @cancel_survey_reason = args[:cancel_survey_reason] if args.key?(:cancel_survey_reason)
3075
+ @user_input_cancel_reason = args[:user_input_cancel_reason] if args.key?(:user_input_cancel_reason)
3076
+ end
3077
+ end
3078
+
3079
+ # A SubscriptionDeferralInfo contains the data needed to defer a subscription
3080
+ # purchase to a future expiry time.
3081
+ class SubscriptionDeferralInfo
3082
+ include Google::Apis::Core::Hashable
3083
+
3084
+ # The desired next expiry time to assign to the subscription, in milliseconds
3085
+ # since the Epoch. The given time must be later/greater than the current expiry
3086
+ # time for the subscription.
3087
+ # Corresponds to the JSON property `desiredExpiryTimeMillis`
3088
+ # @return [Fixnum]
3089
+ attr_accessor :desired_expiry_time_millis
3090
+
3091
+ # The expected expiry time for the subscription. If the current expiry time for
3092
+ # the subscription is not the value specified here, the deferral will not occur.
3093
+ # Corresponds to the JSON property `expectedExpiryTimeMillis`
3094
+ # @return [Fixnum]
3095
+ attr_accessor :expected_expiry_time_millis
3096
+
3097
+ def initialize(**args)
3098
+ update!(**args)
3099
+ end
3100
+
3101
+ # Update properties of this object
3102
+ def update!(**args)
3103
+ @desired_expiry_time_millis = args[:desired_expiry_time_millis] if args.key?(:desired_expiry_time_millis)
3104
+ @expected_expiry_time_millis = args[:expected_expiry_time_millis] if args.key?(:expected_expiry_time_millis)
3105
+ end
3106
+ end
3107
+
3108
+ # The consumer-visible metadata of a subscription.
3109
+ class SubscriptionListing
3110
+ include Google::Apis::Core::Hashable
3111
+
3112
+ # A list of benefits shown to the user on platforms such as the Play Store and
3113
+ # in restoration flows in the language of this listing. Plain text. Ordered list
3114
+ # of at most four benefits.
3115
+ # Corresponds to the JSON property `benefits`
3116
+ # @return [Array<String>]
3117
+ attr_accessor :benefits
3118
+
3119
+ # The description of this subscription in the language of this listing. Maximum
3120
+ # length - 80 characters. Plain text.
3121
+ # Corresponds to the JSON property `description`
3122
+ # @return [String]
3123
+ attr_accessor :description
3124
+
3125
+ # Required. The language of this listing, as defined by BCP-47, e.g. "en-US".
3126
+ # Corresponds to the JSON property `languageCode`
3127
+ # @return [String]
3128
+ attr_accessor :language_code
3129
+
3130
+ # Required. The title of this subscription in the language of this listing.
3131
+ # Plain text.
3132
+ # Corresponds to the JSON property `title`
3133
+ # @return [String]
3134
+ attr_accessor :title
3135
+
3136
+ def initialize(**args)
3137
+ update!(**args)
3138
+ end
3139
+
3140
+ # Update properties of this object
3141
+ def update!(**args)
3142
+ @benefits = args[:benefits] if args.key?(:benefits)
3143
+ @description = args[:description] if args.key?(:description)
3144
+ @language_code = args[:language_code] if args.key?(:language_code)
3145
+ @title = args[:title] if args.key?(:title)
3146
+ end
3147
+ end
3148
+
3149
+ # A single, temporary offer
3150
+ class SubscriptionOffer
3151
+ include Google::Apis::Core::Hashable
3152
+
3153
+ # Required. Immutable. The ID of the base plan to which this offer is an
3154
+ # extension.
3155
+ # Corresponds to the JSON property `basePlanId`
3156
+ # @return [String]
3157
+ attr_accessor :base_plan_id
3158
+
3159
+ # Required. Immutable. Unique ID of this subscription offer. Must be unique
3160
+ # within the base plan.
3161
+ # Corresponds to the JSON property `offerId`
3162
+ # @return [String]
3163
+ attr_accessor :offer_id
3164
+
3165
+ # List of up to 20 custom tags specified for this offer, and returned to the app
3166
+ # through the billing library.
3167
+ # Corresponds to the JSON property `offerTags`
3168
+ # @return [Array<Google::Apis::AndroidpublisherV3::OfferTag>]
3169
+ attr_accessor :offer_tags
3170
+
3171
+ # Configuration for any new locations Play may launch in specified on a
3172
+ # subscription offer.
3173
+ # Corresponds to the JSON property `otherRegionsConfig`
3174
+ # @return [Google::Apis::AndroidpublisherV3::OtherRegionsSubscriptionOfferConfig]
3175
+ attr_accessor :other_regions_config
3176
+
3177
+ # Required. Immutable. The package name of the app the parent subscription
3178
+ # belongs to.
3179
+ # Corresponds to the JSON property `packageName`
3180
+ # @return [String]
3181
+ attr_accessor :package_name
3182
+
3183
+ # Required. The phases of this subscription offer. Must contain at least one
3184
+ # entry, and may contain at most five. Users will always receive all these
3185
+ # phases in the specified order. Phases may not be added, removed, or reordered
3186
+ # after initial creation.
3187
+ # Corresponds to the JSON property `phases`
3188
+ # @return [Array<Google::Apis::AndroidpublisherV3::SubscriptionOfferPhase>]
3189
+ attr_accessor :phases
3190
+
3191
+ # Required. Immutable. The ID of the parent subscription this offer belongs to.
3192
+ # Corresponds to the JSON property `productId`
3193
+ # @return [String]
3194
+ attr_accessor :product_id
3195
+
3196
+ # Required. The region-specific configuration of this offer. Must contain at
3197
+ # least one entry.
3198
+ # Corresponds to the JSON property `regionalConfigs`
3199
+ # @return [Array<Google::Apis::AndroidpublisherV3::RegionalSubscriptionOfferConfig>]
3200
+ attr_accessor :regional_configs
3201
+
3202
+ # Output only. The current state of this offer. Can be changed using Activate
3203
+ # and Deactivate actions. NB: the base plan state supersedes this state, so an
3204
+ # active offer may not be available if the base plan is not active.
3205
+ # Corresponds to the JSON property `state`
3206
+ # @return [String]
3207
+ attr_accessor :state
3208
+
3209
+ # Defines the rule a user needs to satisfy to receive this offer.
3210
+ # Corresponds to the JSON property `targeting`
3211
+ # @return [Google::Apis::AndroidpublisherV3::SubscriptionOfferTargeting]
3212
+ attr_accessor :targeting
3213
+
3214
+ def initialize(**args)
3215
+ update!(**args)
3216
+ end
3217
+
3218
+ # Update properties of this object
3219
+ def update!(**args)
3220
+ @base_plan_id = args[:base_plan_id] if args.key?(:base_plan_id)
3221
+ @offer_id = args[:offer_id] if args.key?(:offer_id)
3222
+ @offer_tags = args[:offer_tags] if args.key?(:offer_tags)
3223
+ @other_regions_config = args[:other_regions_config] if args.key?(:other_regions_config)
3224
+ @package_name = args[:package_name] if args.key?(:package_name)
3225
+ @phases = args[:phases] if args.key?(:phases)
3226
+ @product_id = args[:product_id] if args.key?(:product_id)
3227
+ @regional_configs = args[:regional_configs] if args.key?(:regional_configs)
3228
+ @state = args[:state] if args.key?(:state)
3229
+ @targeting = args[:targeting] if args.key?(:targeting)
3230
+ end
3231
+ end
3232
+
3233
+ # A single phase of a subscription offer.
3234
+ class SubscriptionOfferPhase
3235
+ include Google::Apis::Core::Hashable
3236
+
3237
+ # Required. The duration of a single recurrence of this phase. Specified in ISO
3238
+ # 8601 format.
3239
+ # Corresponds to the JSON property `duration`
3240
+ # @return [String]
3241
+ attr_accessor :duration
3242
+
3243
+ # Configuration for any new locations Play may launch in for a single offer
3244
+ # phase.
3245
+ # Corresponds to the JSON property `otherRegionsConfig`
3246
+ # @return [Google::Apis::AndroidpublisherV3::OtherRegionsSubscriptionOfferPhaseConfig]
3247
+ attr_accessor :other_regions_config
3248
+
3249
+ # Required. The number of times this phase repeats. If this offer phase is not
3250
+ # free, each recurrence charges the user the price of this offer phase.
3251
+ # Corresponds to the JSON property `recurrenceCount`
1423
3252
  # @return [Fixnum]
1424
- attr_accessor :cancel_survey_reason
3253
+ attr_accessor :recurrence_count
1425
3254
 
1426
- # The customized input cancel reason from the user. Only present when
1427
- # cancelReason is 0.
1428
- # Corresponds to the JSON property `userInputCancelReason`
1429
- # @return [String]
1430
- attr_accessor :user_input_cancel_reason
3255
+ # Required. The region-specific configuration of this offer phase. This list
3256
+ # must contain exactly one entry for each region for which the subscription
3257
+ # offer has a regional config.
3258
+ # Corresponds to the JSON property `regionalConfigs`
3259
+ # @return [Array<Google::Apis::AndroidpublisherV3::RegionalSubscriptionOfferPhaseConfig>]
3260
+ attr_accessor :regional_configs
1431
3261
 
1432
3262
  def initialize(**args)
1433
3263
  update!(**args)
@@ -1435,28 +3265,27 @@ module Google
1435
3265
 
1436
3266
  # Update properties of this object
1437
3267
  def update!(**args)
1438
- @cancel_survey_reason = args[:cancel_survey_reason] if args.key?(:cancel_survey_reason)
1439
- @user_input_cancel_reason = args[:user_input_cancel_reason] if args.key?(:user_input_cancel_reason)
3268
+ @duration = args[:duration] if args.key?(:duration)
3269
+ @other_regions_config = args[:other_regions_config] if args.key?(:other_regions_config)
3270
+ @recurrence_count = args[:recurrence_count] if args.key?(:recurrence_count)
3271
+ @regional_configs = args[:regional_configs] if args.key?(:regional_configs)
1440
3272
  end
1441
3273
  end
1442
3274
 
1443
- # A SubscriptionDeferralInfo contains the data needed to defer a subscription
1444
- # purchase to a future expiry time.
1445
- class SubscriptionDeferralInfo
3275
+ # Defines the rule a user needs to satisfy to receive this offer.
3276
+ class SubscriptionOfferTargeting
1446
3277
  include Google::Apis::Core::Hashable
1447
3278
 
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
3279
+ # Represents a targeting rule of the form: User never had `scope` before.
3280
+ # Corresponds to the JSON property `acquisitionRule`
3281
+ # @return [Google::Apis::AndroidpublisherV3::AcquisitionTargetingRule]
3282
+ attr_accessor :acquisition_rule
1454
3283
 
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
3284
+ # Represents a targeting rule of the form: User currently has `scope` [with
3285
+ # billing period `billing_period`].
3286
+ # Corresponds to the JSON property `upgradeRule`
3287
+ # @return [Google::Apis::AndroidpublisherV3::UpgradeTargetingRule]
3288
+ attr_accessor :upgrade_rule
1460
3289
 
1461
3290
  def initialize(**args)
1462
3291
  update!(**args)
@@ -1464,8 +3293,8 @@ module Google
1464
3293
 
1465
3294
  # Update properties of this object
1466
3295
  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)
3296
+ @acquisition_rule = args[:acquisition_rule] if args.key?(:acquisition_rule)
3297
+ @upgrade_rule = args[:upgrade_rule] if args.key?(:upgrade_rule)
1469
3298
  end
1470
3299
  end
1471
3300
 
@@ -1744,6 +3573,147 @@ module Google
1744
3573
  end
1745
3574
  end
1746
3575
 
3576
+ # Item-level info for a subscription purchase.
3577
+ class SubscriptionPurchaseLineItem
3578
+ include Google::Apis::Core::Hashable
3579
+
3580
+ # Information related to an auto renewing plan.
3581
+ # Corresponds to the JSON property `autoRenewingPlan`
3582
+ # @return [Google::Apis::AndroidpublisherV3::AutoRenewingPlan]
3583
+ attr_accessor :auto_renewing_plan
3584
+
3585
+ # Time at which the subscription expired or will expire unless the access is
3586
+ # extended (ex. renews).
3587
+ # Corresponds to the JSON property `expiryTime`
3588
+ # @return [String]
3589
+ attr_accessor :expiry_time
3590
+
3591
+ # Information related to a prepaid plan.
3592
+ # Corresponds to the JSON property `prepaidPlan`
3593
+ # @return [Google::Apis::AndroidpublisherV3::PrepaidPlan]
3594
+ attr_accessor :prepaid_plan
3595
+
3596
+ # The purchased product ID (for example, 'monthly001').
3597
+ # Corresponds to the JSON property `productId`
3598
+ # @return [String]
3599
+ attr_accessor :product_id
3600
+
3601
+ def initialize(**args)
3602
+ update!(**args)
3603
+ end
3604
+
3605
+ # Update properties of this object
3606
+ def update!(**args)
3607
+ @auto_renewing_plan = args[:auto_renewing_plan] if args.key?(:auto_renewing_plan)
3608
+ @expiry_time = args[:expiry_time] if args.key?(:expiry_time)
3609
+ @prepaid_plan = args[:prepaid_plan] if args.key?(:prepaid_plan)
3610
+ @product_id = args[:product_id] if args.key?(:product_id)
3611
+ end
3612
+ end
3613
+
3614
+ # Indicates the status of a user's subscription purchase.
3615
+ class SubscriptionPurchaseV2
3616
+ include Google::Apis::Core::Hashable
3617
+
3618
+ # The acknowledgement state of the subscription.
3619
+ # Corresponds to the JSON property `acknowledgementState`
3620
+ # @return [String]
3621
+ attr_accessor :acknowledgement_state
3622
+
3623
+ # Information specific to a subscription in canceled state.
3624
+ # Corresponds to the JSON property `canceledStateContext`
3625
+ # @return [Google::Apis::AndroidpublisherV3::CanceledStateContext]
3626
+ attr_accessor :canceled_state_context
3627
+
3628
+ # User account identifier in the third-party service.
3629
+ # Corresponds to the JSON property `externalAccountIdentifiers`
3630
+ # @return [Google::Apis::AndroidpublisherV3::ExternalAccountIdentifiers]
3631
+ attr_accessor :external_account_identifiers
3632
+
3633
+ # This kind represents a SubscriptionPurchaseV2 object in the androidpublisher
3634
+ # service.
3635
+ # Corresponds to the JSON property `kind`
3636
+ # @return [String]
3637
+ attr_accessor :kind
3638
+
3639
+ # The order id of the latest order associated with the purchase of the
3640
+ # subscription. For autoRenewing subscription, this is the order id of signup
3641
+ # order if it is not renewed yet, or the last recurring order id (success,
3642
+ # pending, or declined order). For prepaid subscription, this is the order id
3643
+ # associated with the queried purchase token.
3644
+ # Corresponds to the JSON property `latestOrderId`
3645
+ # @return [String]
3646
+ attr_accessor :latest_order_id
3647
+
3648
+ # Item-level info for a subscription purchase. The items in the same purchase
3649
+ # should be either all with AutoRenewingPlan or all with PrepaidPlan.
3650
+ # Corresponds to the JSON property `lineItems`
3651
+ # @return [Array<Google::Apis::AndroidpublisherV3::SubscriptionPurchaseLineItem>]
3652
+ attr_accessor :line_items
3653
+
3654
+ # The purchase token of the old subscription if this subscription is one of the
3655
+ # following: * Re-signup of a canceled but non-lapsed subscription * Upgrade/
3656
+ # downgrade from a previous subscription. * Convert from prepaid to auto
3657
+ # renewing subscription. * Convert from an auto renewing subscription to prepaid.
3658
+ # * Topup a prepaid subscription.
3659
+ # Corresponds to the JSON property `linkedPurchaseToken`
3660
+ # @return [String]
3661
+ attr_accessor :linked_purchase_token
3662
+
3663
+ # Information specific to a subscription in paused state.
3664
+ # Corresponds to the JSON property `pausedStateContext`
3665
+ # @return [Google::Apis::AndroidpublisherV3::PausedStateContext]
3666
+ attr_accessor :paused_state_context
3667
+
3668
+ # ISO 3166-1 alpha-2 billing country/region code of the user at the time the
3669
+ # subscription was granted.
3670
+ # Corresponds to the JSON property `regionCode`
3671
+ # @return [String]
3672
+ attr_accessor :region_code
3673
+
3674
+ # Time at which the subscription was granted. Not set for pending subscriptions (
3675
+ # subscription was created but awaiting payment during signup).
3676
+ # Corresponds to the JSON property `startTime`
3677
+ # @return [String]
3678
+ attr_accessor :start_time
3679
+
3680
+ # Information associated with purchases made with 'Subscribe with Google'.
3681
+ # Corresponds to the JSON property `subscribeWithGoogleInfo`
3682
+ # @return [Google::Apis::AndroidpublisherV3::SubscribeWithGoogleInfo]
3683
+ attr_accessor :subscribe_with_google_info
3684
+
3685
+ # The current state of the subscription.
3686
+ # Corresponds to the JSON property `subscriptionState`
3687
+ # @return [String]
3688
+ attr_accessor :subscription_state
3689
+
3690
+ # Whether this subscription purchase is a test purchase.
3691
+ # Corresponds to the JSON property `testPurchase`
3692
+ # @return [Google::Apis::AndroidpublisherV3::TestPurchase]
3693
+ attr_accessor :test_purchase
3694
+
3695
+ def initialize(**args)
3696
+ update!(**args)
3697
+ end
3698
+
3699
+ # Update properties of this object
3700
+ def update!(**args)
3701
+ @acknowledgement_state = args[:acknowledgement_state] if args.key?(:acknowledgement_state)
3702
+ @canceled_state_context = args[:canceled_state_context] if args.key?(:canceled_state_context)
3703
+ @external_account_identifiers = args[:external_account_identifiers] if args.key?(:external_account_identifiers)
3704
+ @kind = args[:kind] if args.key?(:kind)
3705
+ @latest_order_id = args[:latest_order_id] if args.key?(:latest_order_id)
3706
+ @line_items = args[:line_items] if args.key?(:line_items)
3707
+ @linked_purchase_token = args[:linked_purchase_token] if args.key?(:linked_purchase_token)
3708
+ @paused_state_context = args[:paused_state_context] if args.key?(:paused_state_context)
3709
+ @region_code = args[:region_code] if args.key?(:region_code)
3710
+ @start_time = args[:start_time] if args.key?(:start_time)
3711
+ @subscribe_with_google_info = args[:subscribe_with_google_info] if args.key?(:subscribe_with_google_info)
3712
+ @subscription_state = args[:subscription_state] if args.key?(:subscription_state)
3713
+ @test_purchase = args[:test_purchase] if args.key?(:test_purchase)
3714
+ end
3715
+ end
3716
+
1747
3717
  # Request for the purchases.subscriptions.acknowledge API.
1748
3718
  class SubscriptionPurchasesAcknowledgeRequest
1749
3719
  include Google::Apis::Core::Hashable
@@ -1802,6 +3772,37 @@ module Google
1802
3772
  end
1803
3773
  end
1804
3774
 
3775
+ # Details about taxation, Google Play policy and legal compliance for
3776
+ # subscription products.
3777
+ class SubscriptionTaxAndComplianceSettings
3778
+ include Google::Apis::Core::Hashable
3779
+
3780
+ # Digital content or service classification for products distributed to users in
3781
+ # the European Economic Area (EEA). The withdrawal regime under EEA consumer
3782
+ # laws depends on this classification. Refer to the [Help Center article](https:/
3783
+ # /support.google.com/googleplay/android-developer/answer/10463498) for more
3784
+ # information.
3785
+ # Corresponds to the JSON property `eeaWithdrawalRightType`
3786
+ # @return [String]
3787
+ attr_accessor :eea_withdrawal_right_type
3788
+
3789
+ # A mapping from region code to tax rate details. The keys are region codes as
3790
+ # defined by Unicode's "CLDR".
3791
+ # Corresponds to the JSON property `taxRateInfoByRegionCode`
3792
+ # @return [Hash<String,Google::Apis::AndroidpublisherV3::RegionalTaxRateInfo>]
3793
+ attr_accessor :tax_rate_info_by_region_code
3794
+
3795
+ def initialize(**args)
3796
+ update!(**args)
3797
+ end
3798
+
3799
+ # Update properties of this object
3800
+ def update!(**args)
3801
+ @eea_withdrawal_right_type = args[:eea_withdrawal_right_type] if args.key?(:eea_withdrawal_right_type)
3802
+ @tax_rate_info_by_region_code = args[:tax_rate_info_by_region_code] if args.key?(:tax_rate_info_by_region_code)
3803
+ end
3804
+ end
3805
+
1805
3806
  # Response to list previously created system APK variants.
1806
3807
  class SystemApksListResponse
1807
3808
  include Google::Apis::Core::Hashable
@@ -1821,7 +3822,75 @@ module Google
1821
3822
  end
1822
3823
  end
1823
3824
 
1824
- # The testers of an app. The resource for TestersService.
3825
+ # Representation of a system feature.
3826
+ class SystemFeature
3827
+ include Google::Apis::Core::Hashable
3828
+
3829
+ # The name of the feature.
3830
+ # Corresponds to the JSON property `name`
3831
+ # @return [String]
3832
+ attr_accessor :name
3833
+
3834
+ def initialize(**args)
3835
+ update!(**args)
3836
+ end
3837
+
3838
+ # Update properties of this object
3839
+ def update!(**args)
3840
+ @name = args[:name] if args.key?(:name)
3841
+ end
3842
+ end
3843
+
3844
+ # Information specific to cancellations initiated by Google system.
3845
+ class SystemInitiatedCancellation
3846
+ include Google::Apis::Core::Hashable
3847
+
3848
+ def initialize(**args)
3849
+ update!(**args)
3850
+ end
3851
+
3852
+ # Update properties of this object
3853
+ def update!(**args)
3854
+ end
3855
+ end
3856
+
3857
+ # Defines the scope of subscriptions which a targeting rule can match to target
3858
+ # offers to users based on past or current entitlement.
3859
+ class TargetingRuleScope
3860
+ include Google::Apis::Core::Hashable
3861
+
3862
+ # The scope of the current targeting rule is the subscription with the specified
3863
+ # subscription ID. Must be a subscription within the same parent app.
3864
+ # Corresponds to the JSON property `specificSubscriptionInApp`
3865
+ # @return [String]
3866
+ attr_accessor :specific_subscription_in_app
3867
+
3868
+ def initialize(**args)
3869
+ update!(**args)
3870
+ end
3871
+
3872
+ # Update properties of this object
3873
+ def update!(**args)
3874
+ @specific_subscription_in_app = args[:specific_subscription_in_app] if args.key?(:specific_subscription_in_app)
3875
+ end
3876
+ end
3877
+
3878
+ # Whether this subscription purchase is a test purchase.
3879
+ class TestPurchase
3880
+ include Google::Apis::Core::Hashable
3881
+
3882
+ def initialize(**args)
3883
+ update!(**args)
3884
+ end
3885
+
3886
+ # Update properties of this object
3887
+ def update!(**args)
3888
+ end
3889
+ end
3890
+
3891
+ # The testers of an app. The resource for TestersService. Note: while it is
3892
+ # possible in the Play Console UI to add testers via email lists, email lists
3893
+ # are not supported by this resource.
1825
3894
  class Testers
1826
3895
  include Google::Apis::Core::Hashable
1827
3896
 
@@ -1928,6 +3997,45 @@ module Google
1928
3997
  end
1929
3998
  end
1930
3999
 
4000
+ # Resource for per-track country availability information.
4001
+ class TrackCountryAvailability
4002
+ include Google::Apis::Core::Hashable
4003
+
4004
+ # A list of one or more countries where artifacts in this track are available.
4005
+ # This list includes all countries that are targeted by the track, even if only
4006
+ # specific carriers are targeted in that country.
4007
+ # Corresponds to the JSON property `countries`
4008
+ # @return [Array<Google::Apis::AndroidpublisherV3::TrackTargetedCountry>]
4009
+ attr_accessor :countries
4010
+
4011
+ # Whether artifacts in this track are available to "rest of the world" countries.
4012
+ # Corresponds to the JSON property `restOfWorld`
4013
+ # @return [Boolean]
4014
+ attr_accessor :rest_of_world
4015
+ alias_method :rest_of_world?, :rest_of_world
4016
+
4017
+ # Whether this track's availability is synced with the default production track.
4018
+ # See https://support.google.com/googleplay/android-developer/answer/7550024 for
4019
+ # more information on syncing country availability with production. Note that if
4020
+ # this is true, the returned "countries" and "rest_of_world" fields will reflect
4021
+ # the values for the default production track.
4022
+ # Corresponds to the JSON property `syncWithProduction`
4023
+ # @return [Boolean]
4024
+ attr_accessor :sync_with_production
4025
+ alias_method :sync_with_production?, :sync_with_production
4026
+
4027
+ def initialize(**args)
4028
+ update!(**args)
4029
+ end
4030
+
4031
+ # Update properties of this object
4032
+ def update!(**args)
4033
+ @countries = args[:countries] if args.key?(:countries)
4034
+ @rest_of_world = args[:rest_of_world] if args.key?(:rest_of_world)
4035
+ @sync_with_production = args[:sync_with_production] if args.key?(:sync_with_production)
4036
+ end
4037
+ end
4038
+
1931
4039
  # A release within a track.
1932
4040
  class TrackRelease
1933
4041
  include Google::Apis::Core::Hashable
@@ -1991,6 +4099,25 @@ module Google
1991
4099
  end
1992
4100
  end
1993
4101
 
4102
+ # Representation of a single country where the contents of a track are available.
4103
+ class TrackTargetedCountry
4104
+ include Google::Apis::Core::Hashable
4105
+
4106
+ # The country to target, as a two-letter CLDR code.
4107
+ # Corresponds to the JSON property `countryCode`
4108
+ # @return [String]
4109
+ attr_accessor :country_code
4110
+
4111
+ def initialize(**args)
4112
+ update!(**args)
4113
+ end
4114
+
4115
+ # Update properties of this object
4116
+ def update!(**args)
4117
+ @country_code = args[:country_code] if args.key?(:country_code)
4118
+ end
4119
+ end
4120
+
1994
4121
  # Response listing all tracks.
1995
4122
  class TracksListResponse
1996
4123
  include Google::Apis::Core::Hashable
@@ -2016,6 +4143,107 @@ module Google
2016
4143
  end
2017
4144
  end
2018
4145
 
4146
+ # Represents a targeting rule of the form: User currently has `scope` [with
4147
+ # billing period `billing_period`].
4148
+ class UpgradeTargetingRule
4149
+ include Google::Apis::Core::Hashable
4150
+
4151
+ # The specific billing period duration, specified in ISO 8601 format, that a
4152
+ # user must be currently subscribed to to be eligible for this rule. If not
4153
+ # specified, users subscribed to any billing period are matched.
4154
+ # Corresponds to the JSON property `billingPeriodDuration`
4155
+ # @return [String]
4156
+ attr_accessor :billing_period_duration
4157
+
4158
+ # Limit this offer to only once per user. If set to true, a user can never be
4159
+ # eligible for this offer again if they ever subscribed to this offer.
4160
+ # Corresponds to the JSON property `oncePerUser`
4161
+ # @return [Boolean]
4162
+ attr_accessor :once_per_user
4163
+ alias_method :once_per_user?, :once_per_user
4164
+
4165
+ # Defines the scope of subscriptions which a targeting rule can match to target
4166
+ # offers to users based on past or current entitlement.
4167
+ # Corresponds to the JSON property `scope`
4168
+ # @return [Google::Apis::AndroidpublisherV3::TargetingRuleScope]
4169
+ attr_accessor :scope
4170
+
4171
+ def initialize(**args)
4172
+ update!(**args)
4173
+ end
4174
+
4175
+ # Update properties of this object
4176
+ def update!(**args)
4177
+ @billing_period_duration = args[:billing_period_duration] if args.key?(:billing_period_duration)
4178
+ @once_per_user = args[:once_per_user] if args.key?(:once_per_user)
4179
+ @scope = args[:scope] if args.key?(:scope)
4180
+ end
4181
+ end
4182
+
4183
+ # A user resource.
4184
+ class User
4185
+ include Google::Apis::Core::Hashable
4186
+
4187
+ # Output only. The state of the user's access to the Play Console.
4188
+ # Corresponds to the JSON property `accessState`
4189
+ # @return [String]
4190
+ attr_accessor :access_state
4191
+
4192
+ # Permissions for the user which apply across the developer account.
4193
+ # Corresponds to the JSON property `developerAccountPermissions`
4194
+ # @return [Array<String>]
4195
+ attr_accessor :developer_account_permissions
4196
+
4197
+ # Immutable. The user's email address.
4198
+ # Corresponds to the JSON property `email`
4199
+ # @return [String]
4200
+ attr_accessor :email
4201
+
4202
+ # The time at which the user's access expires, if set. When setting this value,
4203
+ # it must always be in the future.
4204
+ # Corresponds to the JSON property `expirationTime`
4205
+ # @return [String]
4206
+ attr_accessor :expiration_time
4207
+
4208
+ # Output only. Per-app permissions for the user.
4209
+ # Corresponds to the JSON property `grants`
4210
+ # @return [Array<Google::Apis::AndroidpublisherV3::Grant>]
4211
+ attr_accessor :grants
4212
+
4213
+ # Required. Resource name for this user, following the pattern "developers/`
4214
+ # developer`/users/`email`".
4215
+ # Corresponds to the JSON property `name`
4216
+ # @return [String]
4217
+ attr_accessor :name
4218
+
4219
+ # Output only. Whether there are more permissions for the user that are not
4220
+ # represented here. This can happen if the caller does not have permission to
4221
+ # manage all apps in the account. This is also `true` if this user is the
4222
+ # account owner. If this field is `true`, it should be taken as a signal that
4223
+ # this user cannot be fully managed via the API. That is, the API caller is not
4224
+ # be able to manage all of the permissions this user holds, either because it
4225
+ # doesn't know about them or because the user is the account owner.
4226
+ # Corresponds to the JSON property `partial`
4227
+ # @return [Boolean]
4228
+ attr_accessor :partial
4229
+ alias_method :partial?, :partial
4230
+
4231
+ def initialize(**args)
4232
+ update!(**args)
4233
+ end
4234
+
4235
+ # Update properties of this object
4236
+ def update!(**args)
4237
+ @access_state = args[:access_state] if args.key?(:access_state)
4238
+ @developer_account_permissions = args[:developer_account_permissions] if args.key?(:developer_account_permissions)
4239
+ @email = args[:email] if args.key?(:email)
4240
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
4241
+ @grants = args[:grants] if args.key?(:grants)
4242
+ @name = args[:name] if args.key?(:name)
4243
+ @partial = args[:partial] if args.key?(:partial)
4244
+ end
4245
+ end
4246
+
2019
4247
  # User entry from conversation between user and developer.
2020
4248
  class UserComment
2021
4249
  include Google::Apis::Core::Hashable
@@ -2111,6 +4339,33 @@ module Google
2111
4339
  end
2112
4340
  end
2113
4341
 
4342
+ # Information specific to cancellations initiated by users.
4343
+ class UserInitiatedCancellation
4344
+ include Google::Apis::Core::Hashable
4345
+
4346
+ # Result of the cancel survey when the subscription was canceled by the user.
4347
+ # Corresponds to the JSON property `cancelSurveyResult`
4348
+ # @return [Google::Apis::AndroidpublisherV3::CancelSurveyResult]
4349
+ attr_accessor :cancel_survey_result
4350
+
4351
+ # The time at which the subscription was canceled by the user. The user might
4352
+ # still have access to the subscription after this time. Use line_items.
4353
+ # expiry_time to determine if a user still has access.
4354
+ # Corresponds to the JSON property `cancelTime`
4355
+ # @return [String]
4356
+ attr_accessor :cancel_time
4357
+
4358
+ def initialize(**args)
4359
+ update!(**args)
4360
+ end
4361
+
4362
+ # Update properties of this object
4363
+ def update!(**args)
4364
+ @cancel_survey_result = args[:cancel_survey_result] if args.key?(:cancel_survey_result)
4365
+ @cancel_time = args[:cancel_time] if args.key?(:cancel_time)
4366
+ end
4367
+ end
4368
+
2114
4369
  # A permission used by this APK.
2115
4370
  class UsesPermission
2116
4371
  include Google::Apis::Core::Hashable