google-apis-androidpublisher_v3 0.1.0 → 0.38.0

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