File: classes.rb

package info (click to toggle)
ruby-google-api-client 0.53.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 75,020 kB
  • sloc: ruby: 626,567; makefile: 4
file content (685 lines) | stat: -rw-r--r-- 31,597 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
# Copyright 2015 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

require 'date'
require 'google/apis/core/base_service'
require 'google/apis/core/json_representation'
require 'google/apis/core/hashable'
require 'google/apis/errors'

module Google
  module Apis
    module ResellerV1
      
      # JSON template for address of a customer.
      class Address
        include Google::Apis::Core::Hashable
      
        # A customer's physical address. An address can be composed of one to three
        # lines. The addressline2 and addressLine3 are optional.
        # Corresponds to the JSON property `addressLine1`
        # @return [String]
        attr_accessor :address_line1
      
        # Line 2 of the address.
        # Corresponds to the JSON property `addressLine2`
        # @return [String]
        attr_accessor :address_line2
      
        # Line 3 of the address.
        # Corresponds to the JSON property `addressLine3`
        # @return [String]
        attr_accessor :address_line3
      
        # The customer contact's name. This is required.
        # Corresponds to the JSON property `contactName`
        # @return [String]
        attr_accessor :contact_name
      
        # For countryCode information, see the ISO 3166 country code elements. Verify
        # that country is approved for resale of Google products. This property is
        # required when creating a new customer.
        # Corresponds to the JSON property `countryCode`
        # @return [String]
        attr_accessor :country_code
      
        # Identifies the resource as a customer address. Value: customers#address
        # Corresponds to the JSON property `kind`
        # @return [String]
        attr_accessor :kind
      
        # An example of a locality value is the city of San Francisco.
        # Corresponds to the JSON property `locality`
        # @return [String]
        attr_accessor :locality
      
        # The company or company division name. This is required.
        # Corresponds to the JSON property `organizationName`
        # @return [String]
        attr_accessor :organization_name
      
        # A postalCode example is a postal zip code such as 94043. This property is
        # required when creating a new customer.
        # Corresponds to the JSON property `postalCode`
        # @return [String]
        attr_accessor :postal_code
      
        # An example of a region value is CA for the state of California.
        # Corresponds to the JSON property `region`
        # @return [String]
        attr_accessor :region
      
        def initialize(**args)
           update!(**args)
        end
      
        # Update properties of this object
        def update!(**args)
          @address_line1 = args[:address_line1] if args.key?(:address_line1)
          @address_line2 = args[:address_line2] if args.key?(:address_line2)
          @address_line3 = args[:address_line3] if args.key?(:address_line3)
          @contact_name = args[:contact_name] if args.key?(:contact_name)
          @country_code = args[:country_code] if args.key?(:country_code)
          @kind = args[:kind] if args.key?(:kind)
          @locality = args[:locality] if args.key?(:locality)
          @organization_name = args[:organization_name] if args.key?(:organization_name)
          @postal_code = args[:postal_code] if args.key?(:postal_code)
          @region = args[:region] if args.key?(:region)
        end
      end
      
      # JSON template for the ChangePlan rpc request.
      class ChangePlanRequest
        include Google::Apis::Core::Hashable
      
        # Google-issued code (100 char max) for discounted pricing on subscription plans.
        # Deal code must be included in changePlan request in order to receive
        # discounted rate. This property is optional. If a deal code has already been
        # added to a subscription, this property may be left empty and the existing
        # discounted rate will still apply (if not empty, only provide the deal code
        # that is already present on the subscription). If a deal code has never been
        # added to a subscription and this property is left blank, regular pricing will
        # apply.
        # Corresponds to the JSON property `dealCode`
        # @return [String]
        attr_accessor :deal_code
      
        # Identifies the resource as a subscription change plan request. Value:
        # subscriptions#changePlanRequest
        # Corresponds to the JSON property `kind`
        # @return [String]
        attr_accessor :kind
      
        # The planName property is required. This is the name of the subscription's
        # payment plan. For more information about the Google payment plans, see API
        # concepts. Possible values are: - ANNUAL_MONTHLY_PAY - The annual commitment
        # plan with monthly payments *Caution: *ANNUAL_MONTHLY_PAY is returned as ANNUAL
        # in all API responses. - ANNUAL_YEARLY_PAY - The annual commitment plan with
        # yearly payments - FLEXIBLE - The flexible plan - TRIAL - The 30-day free trial
        # plan
        # Corresponds to the JSON property `planName`
        # @return [String]
        attr_accessor :plan_name
      
        # This is an optional property. This purchase order (PO) information is for
        # resellers to use for their company tracking usage. If a purchaseOrderId value
        # is given it appears in the API responses and shows up in the invoice. The
        # property accepts up to 80 plain text characters.
        # Corresponds to the JSON property `purchaseOrderId`
        # @return [String]
        attr_accessor :purchase_order_id
      
        # JSON template for subscription seats.
        # Corresponds to the JSON property `seats`
        # @return [Google::Apis::ResellerV1::Seats]
        attr_accessor :seats
      
        def initialize(**args)
           update!(**args)
        end
      
        # Update properties of this object
        def update!(**args)
          @deal_code = args[:deal_code] if args.key?(:deal_code)
          @kind = args[:kind] if args.key?(:kind)
          @plan_name = args[:plan_name] if args.key?(:plan_name)
          @purchase_order_id = args[:purchase_order_id] if args.key?(:purchase_order_id)
          @seats = args[:seats] if args.key?(:seats)
        end
      end
      
      # JSON template for a customer.
      class Customer
        include Google::Apis::Core::Hashable
      
        # Like the "Customer email" in the reseller tools, this email is the secondary
        # contact used if something happens to the customer's service such as service
        # outage or a security issue. This property is required when creating a new
        # customer and should not use the same domain as customerDomain .
        # Corresponds to the JSON property `alternateEmail`
        # @return [String]
        attr_accessor :alternate_email
      
        # The customer's primary domain name string. customerDomain is required when
        # creating a new customer. Do not include the www prefix in the domain when
        # adding a customer.
        # Corresponds to the JSON property `customerDomain`
        # @return [String]
        attr_accessor :customer_domain
      
        # Whether the customer's primary domain has been verified.
        # Corresponds to the JSON property `customerDomainVerified`
        # @return [Boolean]
        attr_accessor :customer_domain_verified
        alias_method :customer_domain_verified?, :customer_domain_verified
      
        # This property will always be returned in a response as the unique identifier
        # generated by Google. In a request, this property can be either the primary
        # domain or the unique identifier generated by Google.
        # Corresponds to the JSON property `customerId`
        # @return [String]
        attr_accessor :customer_id
      
        # Identifies the resource as a customer. Value: reseller#customer
        # Corresponds to the JSON property `kind`
        # @return [String]
        attr_accessor :kind
      
        # Customer contact phone number. Must start with "+" followed by the country
        # code. The rest of the number can be contiguous numbers or respect the phone
        # local format conventions, but it must be a real phone number and not, for
        # example, "123". This field is silently ignored if invalid.
        # Corresponds to the JSON property `phoneNumber`
        # @return [String]
        attr_accessor :phone_number
      
        # JSON template for address of a customer.
        # Corresponds to the JSON property `postalAddress`
        # @return [Google::Apis::ResellerV1::Address]
        attr_accessor :postal_address
      
        # URL to customer's Admin console dashboard. The read-only URL is generated by
        # the API service. This is used if your client application requires the customer
        # to complete a task in the Admin console.
        # Corresponds to the JSON property `resourceUiUrl`
        # @return [String]
        attr_accessor :resource_ui_url
      
        def initialize(**args)
           update!(**args)
        end
      
        # Update properties of this object
        def update!(**args)
          @alternate_email = args[:alternate_email] if args.key?(:alternate_email)
          @customer_domain = args[:customer_domain] if args.key?(:customer_domain)
          @customer_domain_verified = args[:customer_domain_verified] if args.key?(:customer_domain_verified)
          @customer_id = args[:customer_id] if args.key?(:customer_id)
          @kind = args[:kind] if args.key?(:kind)
          @phone_number = args[:phone_number] if args.key?(:phone_number)
          @postal_address = args[:postal_address] if args.key?(:postal_address)
          @resource_ui_url = args[:resource_ui_url] if args.key?(:resource_ui_url)
        end
      end
      
      # JSON template for a subscription renewal settings.
      class RenewalSettings
        include Google::Apis::Core::Hashable
      
        # Identifies the resource as a subscription renewal setting. Value:
        # subscriptions#renewalSettings
        # Corresponds to the JSON property `kind`
        # @return [String]
        attr_accessor :kind
      
        # Renewal settings for the annual commitment plan. For more detailed information,
        # see renewal options in the administrator help center. When renewing a
        # subscription, the renewalType is a required property.
        # Corresponds to the JSON property `renewalType`
        # @return [String]
        attr_accessor :renewal_type
      
        def initialize(**args)
           update!(**args)
        end
      
        # Update properties of this object
        def update!(**args)
          @kind = args[:kind] if args.key?(:kind)
          @renewal_type = args[:renewal_type] if args.key?(:renewal_type)
        end
      end
      
      # JSON template for resellernotify getwatchdetails response.
      class ResellernotifyGetwatchdetailsResponse
        include Google::Apis::Core::Hashable
      
        # List of registered service accounts.
        # Corresponds to the JSON property `serviceAccountEmailAddresses`
        # @return [Array<String>]
        attr_accessor :service_account_email_addresses
      
        # Topic name of the PubSub
        # Corresponds to the JSON property `topicName`
        # @return [String]
        attr_accessor :topic_name
      
        def initialize(**args)
           update!(**args)
        end
      
        # Update properties of this object
        def update!(**args)
          @service_account_email_addresses = args[:service_account_email_addresses] if args.key?(:service_account_email_addresses)
          @topic_name = args[:topic_name] if args.key?(:topic_name)
        end
      end
      
      # JSON template for resellernotify response.
      class ResellernotifyResource
        include Google::Apis::Core::Hashable
      
        # Topic name of the PubSub
        # Corresponds to the JSON property `topicName`
        # @return [String]
        attr_accessor :topic_name
      
        def initialize(**args)
           update!(**args)
        end
      
        # Update properties of this object
        def update!(**args)
          @topic_name = args[:topic_name] if args.key?(:topic_name)
        end
      end
      
      # JSON template for subscription seats.
      class Seats
        include Google::Apis::Core::Hashable
      
        # Identifies the resource as a subscription seat setting. Value: subscriptions#
        # seats
        # Corresponds to the JSON property `kind`
        # @return [String]
        attr_accessor :kind
      
        # Read-only field containing the current number of users that are assigned a
        # license for the product defined in skuId. This field's value is equivalent to
        # the numerical count of users returned by the Enterprise License Manager API
        # method: listForProductAndSku
        # Corresponds to the JSON property `licensedNumberOfSeats`
        # @return [Fixnum]
        attr_accessor :licensed_number_of_seats
      
        # This is a required property and is exclusive to subscriptions with FLEXIBLE or
        # TRIAL plans. This property sets the maximum number of licensed users allowed
        # on a subscription. This quantity can be increased up to the maximum limit
        # defined in the reseller's contract. The minimum quantity is the current number
        # of users in the customer account. *Note: *G Suite subscriptions automatically
        # assign a license to every user.
        # Corresponds to the JSON property `maximumNumberOfSeats`
        # @return [Fixnum]
        attr_accessor :maximum_number_of_seats
      
        # This is a required property and is exclusive to subscriptions with
        # ANNUAL_MONTHLY_PAY and ANNUAL_YEARLY_PAY plans. This property sets the maximum
        # number of licenses assignable to users on a subscription. The reseller can add
        # more licenses, but once set, the numberOfSeats cannot be reduced until renewal.
        # The reseller is invoiced based on the numberOfSeats value regardless of how
        # many of these user licenses are assigned. *Note: *G Suite subscriptions
        # automatically assign a license to every user.
        # Corresponds to the JSON property `numberOfSeats`
        # @return [Fixnum]
        attr_accessor :number_of_seats
      
        def initialize(**args)
           update!(**args)
        end
      
        # Update properties of this object
        def update!(**args)
          @kind = args[:kind] if args.key?(:kind)
          @licensed_number_of_seats = args[:licensed_number_of_seats] if args.key?(:licensed_number_of_seats)
          @maximum_number_of_seats = args[:maximum_number_of_seats] if args.key?(:maximum_number_of_seats)
          @number_of_seats = args[:number_of_seats] if args.key?(:number_of_seats)
        end
      end
      
      # JSON template for a subscription.
      class Subscription
        include Google::Apis::Core::Hashable
      
        # Read-only field that returns the current billing method for a subscription.
        # Corresponds to the JSON property `billingMethod`
        # @return [String]
        attr_accessor :billing_method
      
        # The creationTime property is the date when subscription was created. It is in
        # milliseconds using the Epoch format. See an example Epoch converter.
        # Corresponds to the JSON property `creationTime`
        # @return [Fixnum]
        attr_accessor :creation_time
      
        # Primary domain name of the customer
        # Corresponds to the JSON property `customerDomain`
        # @return [String]
        attr_accessor :customer_domain
      
        # This property will always be returned in a response as the unique identifier
        # generated by Google. In a request, this property can be either the primary
        # domain or the unique identifier generated by Google.
        # Corresponds to the JSON property `customerId`
        # @return [String]
        attr_accessor :customer_id
      
        # Google-issued code (100 char max) for discounted pricing on subscription plans.
        # Deal code must be included in insert requests in order to receive discounted
        # rate. This property is optional, regular pricing applies if left empty.
        # Corresponds to the JSON property `dealCode`
        # @return [String]
        attr_accessor :deal_code
      
        # Identifies the resource as a Subscription. Value: reseller#subscription
        # Corresponds to the JSON property `kind`
        # @return [String]
        attr_accessor :kind
      
        # The plan property is required. In this version of the API, the G Suite plans
        # are the flexible plan, annual commitment plan, and the 30-day free trial plan.
        # For more information about the API"s payment plans, see the API concepts.
        # Corresponds to the JSON property `plan`
        # @return [Google::Apis::ResellerV1::Subscription::Plan]
        attr_accessor :plan
      
        # This is an optional property. This purchase order (PO) information is for
        # resellers to use for their company tracking usage. If a purchaseOrderId value
        # is given it appears in the API responses and shows up in the invoice. The
        # property accepts up to 80 plain text characters.
        # Corresponds to the JSON property `purchaseOrderId`
        # @return [String]
        attr_accessor :purchase_order_id
      
        # JSON template for a subscription renewal settings.
        # Corresponds to the JSON property `renewalSettings`
        # @return [Google::Apis::ResellerV1::RenewalSettings]
        attr_accessor :renewal_settings
      
        # URL to customer's Subscriptions page in the Admin console. The read-only URL
        # is generated by the API service. This is used if your client application
        # requires the customer to complete a task using the Subscriptions page in the
        # Admin console.
        # Corresponds to the JSON property `resourceUiUrl`
        # @return [String]
        attr_accessor :resource_ui_url
      
        # JSON template for subscription seats.
        # Corresponds to the JSON property `seats`
        # @return [Google::Apis::ResellerV1::Seats]
        attr_accessor :seats
      
        # A required property. The skuId is a unique system identifier for a product's
        # SKU assigned to a customer in the subscription. For products and SKUs
        # available in this version of the API, see Product and SKU IDs.
        # Corresponds to the JSON property `skuId`
        # @return [String]
        attr_accessor :sku_id
      
        # Read-only external display name for a product's SKU assigned to a customer in
        # the subscription. SKU names are subject to change at Google's discretion. For
        # products and SKUs available in this version of the API, see Product and SKU
        # IDs.
        # Corresponds to the JSON property `skuName`
        # @return [String]
        attr_accessor :sku_name
      
        # This is an optional property.
        # Corresponds to the JSON property `status`
        # @return [String]
        attr_accessor :status
      
        # The subscriptionId is the subscription identifier and is unique for each
        # customer. This is a required property. Since a subscriptionId changes when a
        # subscription is updated, we recommend not using this ID as a key for
        # persistent data. Use the subscriptionId as described in retrieve all reseller
        # subscriptions.
        # Corresponds to the JSON property `subscriptionId`
        # @return [String]
        attr_accessor :subscription_id
      
        # Read-only field containing an enumerable of all the current suspension reasons
        # for a subscription. It is possible for a subscription to have many concurrent,
        # overlapping suspension reasons. A subscription's STATUS is SUSPENDED until all
        # pending suspensions are removed. Possible options include: -
        # PENDING_TOS_ACCEPTANCE - The customer has not logged in and accepted the G
        # Suite Resold Terms of Services. - RENEWAL_WITH_TYPE_CANCEL - The customer's
        # commitment ended and their service was cancelled at the end of their term. -
        # RESELLER_INITIATED - A manual suspension invoked by a Reseller. - TRIAL_ENDED -
        # The customer's trial expired without a plan selected. - OTHER - The customer
        # is suspended for an internal Google reason (e.g. abuse or otherwise).
        # Corresponds to the JSON property `suspensionReasons`
        # @return [Array<String>]
        attr_accessor :suspension_reasons
      
        # Read-only transfer related information for the subscription. For more
        # information, see retrieve transferable subscriptions for a customer.
        # Corresponds to the JSON property `transferInfo`
        # @return [Google::Apis::ResellerV1::Subscription::TransferInfo]
        attr_accessor :transfer_info
      
        # The G Suite annual commitment and flexible payment plans can be in a 30-day
        # free trial. For more information, see the API concepts.
        # Corresponds to the JSON property `trialSettings`
        # @return [Google::Apis::ResellerV1::Subscription::TrialSettings]
        attr_accessor :trial_settings
      
        def initialize(**args)
           update!(**args)
        end
      
        # Update properties of this object
        def update!(**args)
          @billing_method = args[:billing_method] if args.key?(:billing_method)
          @creation_time = args[:creation_time] if args.key?(:creation_time)
          @customer_domain = args[:customer_domain] if args.key?(:customer_domain)
          @customer_id = args[:customer_id] if args.key?(:customer_id)
          @deal_code = args[:deal_code] if args.key?(:deal_code)
          @kind = args[:kind] if args.key?(:kind)
          @plan = args[:plan] if args.key?(:plan)
          @purchase_order_id = args[:purchase_order_id] if args.key?(:purchase_order_id)
          @renewal_settings = args[:renewal_settings] if args.key?(:renewal_settings)
          @resource_ui_url = args[:resource_ui_url] if args.key?(:resource_ui_url)
          @seats = args[:seats] if args.key?(:seats)
          @sku_id = args[:sku_id] if args.key?(:sku_id)
          @sku_name = args[:sku_name] if args.key?(:sku_name)
          @status = args[:status] if args.key?(:status)
          @subscription_id = args[:subscription_id] if args.key?(:subscription_id)
          @suspension_reasons = args[:suspension_reasons] if args.key?(:suspension_reasons)
          @transfer_info = args[:transfer_info] if args.key?(:transfer_info)
          @trial_settings = args[:trial_settings] if args.key?(:trial_settings)
        end
        
        # The plan property is required. In this version of the API, the G Suite plans
        # are the flexible plan, annual commitment plan, and the 30-day free trial plan.
        # For more information about the API"s payment plans, see the API concepts.
        class Plan
          include Google::Apis::Core::Hashable
        
          # In this version of the API, annual commitment plan's interval is one year. *
          # Note: *When billingMethod value is OFFLINE, the subscription property object
          # plan.commitmentInterval is omitted in all API responses.
          # Corresponds to the JSON property `commitmentInterval`
          # @return [Google::Apis::ResellerV1::Subscription::Plan::CommitmentInterval]
          attr_accessor :commitment_interval
        
          # The isCommitmentPlan property's boolean value identifies the plan as an annual
          # commitment plan: - true — The subscription's plan is an annual commitment plan.
          # - false — The plan is not an annual commitment plan.
          # Corresponds to the JSON property `isCommitmentPlan`
          # @return [Boolean]
          attr_accessor :is_commitment_plan
          alias_method :is_commitment_plan?, :is_commitment_plan
        
          # The planName property is required. This is the name of the subscription's plan.
          # For more information about the Google payment plans, see the API concepts.
          # Possible values are: - ANNUAL_MONTHLY_PAY — The annual commitment plan with
          # monthly payments. *Caution: *ANNUAL_MONTHLY_PAY is returned as ANNUAL in all
          # API responses. - ANNUAL_YEARLY_PAY — The annual commitment plan with yearly
          # payments - FLEXIBLE — The flexible plan - TRIAL — The 30-day free trial plan.
          # A subscription in trial will be suspended after the 30th free day if no
          # payment plan is assigned. Calling changePlan will assign a payment plan to a
          # trial but will not activate the plan. A trial will automatically begin its
          # assigned payment plan after its 30th free day or immediately after calling
          # startPaidService. - FREE — The free plan is exclusive to the Cloud Identity
          # SKU and does not incur any billing.
          # Corresponds to the JSON property `planName`
          # @return [String]
          attr_accessor :plan_name
        
          def initialize(**args)
             update!(**args)
          end
        
          # Update properties of this object
          def update!(**args)
            @commitment_interval = args[:commitment_interval] if args.key?(:commitment_interval)
            @is_commitment_plan = args[:is_commitment_plan] if args.key?(:is_commitment_plan)
            @plan_name = args[:plan_name] if args.key?(:plan_name)
          end
          
          # In this version of the API, annual commitment plan's interval is one year. *
          # Note: *When billingMethod value is OFFLINE, the subscription property object
          # plan.commitmentInterval is omitted in all API responses.
          class CommitmentInterval
            include Google::Apis::Core::Hashable
          
            # An annual commitment plan's interval's endTime in milliseconds using the UNIX
            # Epoch format. See an example Epoch converter.
            # Corresponds to the JSON property `endTime`
            # @return [Fixnum]
            attr_accessor :end_time
          
            # An annual commitment plan's interval's startTime in milliseconds using UNIX
            # Epoch format. See an example Epoch converter.
            # Corresponds to the JSON property `startTime`
            # @return [Fixnum]
            attr_accessor :start_time
          
            def initialize(**args)
               update!(**args)
            end
          
            # Update properties of this object
            def update!(**args)
              @end_time = args[:end_time] if args.key?(:end_time)
              @start_time = args[:start_time] if args.key?(:start_time)
            end
          end
        end
        
        # Read-only transfer related information for the subscription. For more
        # information, see retrieve transferable subscriptions for a customer.
        class TransferInfo
          include Google::Apis::Core::Hashable
        
          # When inserting a subscription, this is the minimum number of seats listed in
          # the transfer order for this product. For example, if the customer has 20 users,
          # the reseller cannot place a transfer order of 15 seats. The minimum is 20
          # seats.
          # Corresponds to the JSON property `minimumTransferableSeats`
          # @return [Fixnum]
          attr_accessor :minimum_transferable_seats
        
          # The time when transfer token or intent to transfer will expire. The time is in
          # milliseconds using UNIX Epoch format.
          # Corresponds to the JSON property `transferabilityExpirationTime`
          # @return [Fixnum]
          attr_accessor :transferability_expiration_time
        
          def initialize(**args)
             update!(**args)
          end
        
          # Update properties of this object
          def update!(**args)
            @minimum_transferable_seats = args[:minimum_transferable_seats] if args.key?(:minimum_transferable_seats)
            @transferability_expiration_time = args[:transferability_expiration_time] if args.key?(:transferability_expiration_time)
          end
        end
        
        # The G Suite annual commitment and flexible payment plans can be in a 30-day
        # free trial. For more information, see the API concepts.
        class TrialSettings
          include Google::Apis::Core::Hashable
        
          # Determines if a subscription's plan is in a 30-day free trial or not: - true —
          # The plan is in trial. - false — The plan is not in trial.
          # Corresponds to the JSON property `isInTrial`
          # @return [Boolean]
          attr_accessor :is_in_trial
          alias_method :is_in_trial?, :is_in_trial
        
          # Date when the trial ends. The value is in milliseconds using the UNIX Epoch
          # format. See an example Epoch converter.
          # Corresponds to the JSON property `trialEndTime`
          # @return [Fixnum]
          attr_accessor :trial_end_time
        
          def initialize(**args)
             update!(**args)
          end
        
          # Update properties of this object
          def update!(**args)
            @is_in_trial = args[:is_in_trial] if args.key?(:is_in_trial)
            @trial_end_time = args[:trial_end_time] if args.key?(:trial_end_time)
          end
        end
      end
      
      # JSON template for a subscription list.
      class Subscriptions
        include Google::Apis::Core::Hashable
      
        # Identifies the resource as a collection of subscriptions. Value: reseller#
        # subscriptions
        # Corresponds to the JSON property `kind`
        # @return [String]
        attr_accessor :kind
      
        # The continuation token, used to page through large result sets. Provide this
        # value in a subsequent request to return the next page of results.
        # Corresponds to the JSON property `nextPageToken`
        # @return [String]
        attr_accessor :next_page_token
      
        # The subscriptions in this page of results.
        # Corresponds to the JSON property `subscriptions`
        # @return [Array<Google::Apis::ResellerV1::Subscription>]
        attr_accessor :subscriptions
      
        def initialize(**args)
           update!(**args)
        end
      
        # Update properties of this object
        def update!(**args)
          @kind = args[:kind] if args.key?(:kind)
          @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
          @subscriptions = args[:subscriptions] if args.key?(:subscriptions)
        end
      end
    end
  end
end