Class: Google::Cloud::CommerceProducer::V1beta::PrivateOffer::Term

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/cloud/commerceproducer/v1beta/private_offer.rb

Overview

Configurations for the offer term and renewal options. Extending a private offer to a customer that covers a given term constitutes a guarantee to the customer that the product will remain available to them for the duration of the term.

Defined Under Namespace

Modules: EndPolicy, StartPolicy

Instance Attribute Summary collapse

Instance Attribute Details

#duration_months::Integer

Returns Optional. Duration in months of the offer term. The offer will end on the same day of the month after this duration. If that date is not available, the offer will end on the last day of the month. For example, if the offer starts on 01/31/2024 and the duration is 13 months, the offer will end on 02/28/2025. Must be set to publish the offer if the end policy is AFTER_DURATION or MATCH_AMENDED_OFFER, and must be a positive value.

The maximum possible offer duration, including all renewal terms, cannot exceed 7 years. For example, if duration_months is 9 and term.max_renewal_count is 9, then the maximum possible offer duration is 90 months and exceeds the 7 year limit.

Note: The following fields are mutually exclusive: duration_months, scheduled_end_time. If a field in that set is populated, all other fields in the set will automatically be cleared.

Returns:

  • (::Integer)

    Optional. Duration in months of the offer term. The offer will end on the same day of the month after this duration. If that date is not available, the offer will end on the last day of the month. For example, if the offer starts on 01/31/2024 and the duration is 13 months, the offer will end on 02/28/2025. Must be set to publish the offer if the end policy is AFTER_DURATION or MATCH_AMENDED_OFFER, and must be a positive value.

    The maximum possible offer duration, including all renewal terms, cannot exceed 7 years. For example, if duration_months is 9 and term.max_renewal_count is 9, then the maximum possible offer duration is 90 months and exceeds the 7 year limit.

    Note: The following fields are mutually exclusive: duration_months, scheduled_end_time. If a field in that set is populated, all other fields in the set will automatically be cleared.



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
# File 'proto_docs/google/cloud/commerceproducer/v1beta/private_offer.rb', line 349

class Term
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Defines when an offer should start.
  module StartPolicy
    # Default value. This value is unused.
    START_POLICY_UNSPECIFIED = 0

    # The resulting order starts immediately upon the customer's acceptance
    # of the offer, if no partner approval is required, or else immediately
    # after the partner approves the purchase if order approval is required.
    # This enum value cannot be combined with `term.scheduled_start_time`.
    IMMEDIATE = 1

    # The resulting order starts at the scheduled start time.
    SCHEDULED_START_TIME = 2
  end

  # Defines when an offer should end.
  module EndPolicy
    # Default value. This value is unused.
    END_POLICY_UNSPECIFIED = 0

    # Offer ends after the specified duration.
    # If this is set, then `duration_months` must be positive.
    AFTER_DURATION = 1

    # Offer ends at the schduled time.
    SCHEDULED_END_TIME = 2

    # Offer coterms to the amended offer - the offer ends at the end of the
    # amended offer's term
    #
    # For example, if the amended offer starts on 01/15/24, and has a
    # duration of 6 months, then it ends on 07/15/24. If the current offer
    # coterms to the previous offer, and the current offer starts on
    # 05/06/24, then it will still end on 07/15/24. Assuming the current
    # offer renews 3 times, then the terms on the current offer will be:
    #
    # 1. 05/06/24 - 07/15/24 (First term, ends on 07/15 to coterm with the
    #    amended offer)
    # 2. 07/15/24 - 01/15/25 (First renewal term)
    # 3. 01/15/25 - 07/15/25 (Second renewal term)
    # 4. 07/15/25 - 01/15/26 (Third renewal term)
    #
    # As a contrast, if the current offer does not coterm with the amended
    # offer (such as when `end_policy` is `AFTER_DURATION`), then the
    # terms will be:
    #
    # 1. 05/06/24 - 11/06/24 (First term, ends on 11/06, no coterming)
    # 2. 11/06/24 - 05/06/25 (First renewal term)
    # 3. 05/06/25 - 11/06/25 (Second renewal term)
    # 4. 11/06/25 - 05/06/26 (Third renewal term)
    #
    # If this is set, then the following conditions must be met:
    #
    # * `single_product_offer.amended_private_offer` must be set, and the
    #   amended private offer must not be ended.
    # * The proration policy must not change (e.g., you cannot switch
    #   between `MONTHLY_PRORATED` and `MONTHLY_NOT_PRORATED`).
    # * The current offer must not have custom intervals (where
    #   `custom_interval_price` is set).
    # * `term.duration_months` must match the amended private offer's
    #   duration.
    # * The amended private offer must not have a standard interval
    #   of `MONTHLY_POSTPAY`.
    #
    # This is currently not supported.
    MATCH_AMENDED_OFFER = 3
  end
end

#effective_term_end_time::Google::Type::DateTime (readonly)

Returns Output only. The expected end time of the current offer term.

At the end of each offer term, an offer associated with an active order will either renew or end. When an offer renews, a new term begins and this value changes to reflect the end time of the new term. When an offer ends this value is no longer set and instead end_time is set.

When the term of an offer ends and the offer does not renew, the associated order also ends if the base standard offer has a subscription price model. Otherwise, the associated order does not end and remains active.

Not included for PRIVATE_OFFER_VIEW_BASIC. Included for PRIVATE_OFFER_VIEW_FULL when the offer has not ended and either the offer has started or the value can be derived from other fields.

For offers that have not started, this field is set when one of the following conditions is true.

  • The offer sets term.scheduled_end_time.
  • The offer sets term.scheduled_start_time and term.duration_months, the offer's term.end_policy is not MATCH_AMENDED_OFFER, and the offer does not have standard_interval set to MONTHLY_POSTPAY.

Returns:

  • (::Google::Type::DateTime)

    Output only. The expected end time of the current offer term.

    At the end of each offer term, an offer associated with an active order will either renew or end. When an offer renews, a new term begins and this value changes to reflect the end time of the new term. When an offer ends this value is no longer set and instead end_time is set.

    When the term of an offer ends and the offer does not renew, the associated order also ends if the base standard offer has a subscription price model. Otherwise, the associated order does not end and remains active.

    Not included for PRIVATE_OFFER_VIEW_BASIC. Included for PRIVATE_OFFER_VIEW_FULL when the offer has not ended and either the offer has started or the value can be derived from other fields.

    For offers that have not started, this field is set when one of the following conditions is true.

    • The offer sets term.scheduled_end_time.
    • The offer sets term.scheduled_start_time and term.duration_months, the offer's term.end_policy is not MATCH_AMENDED_OFFER, and the offer does not have standard_interval set to MONTHLY_POSTPAY.


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
# File 'proto_docs/google/cloud/commerceproducer/v1beta/private_offer.rb', line 349

class Term
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Defines when an offer should start.
  module StartPolicy
    # Default value. This value is unused.
    START_POLICY_UNSPECIFIED = 0

    # The resulting order starts immediately upon the customer's acceptance
    # of the offer, if no partner approval is required, or else immediately
    # after the partner approves the purchase if order approval is required.
    # This enum value cannot be combined with `term.scheduled_start_time`.
    IMMEDIATE = 1

    # The resulting order starts at the scheduled start time.
    SCHEDULED_START_TIME = 2
  end

  # Defines when an offer should end.
  module EndPolicy
    # Default value. This value is unused.
    END_POLICY_UNSPECIFIED = 0

    # Offer ends after the specified duration.
    # If this is set, then `duration_months` must be positive.
    AFTER_DURATION = 1

    # Offer ends at the schduled time.
    SCHEDULED_END_TIME = 2

    # Offer coterms to the amended offer - the offer ends at the end of the
    # amended offer's term
    #
    # For example, if the amended offer starts on 01/15/24, and has a
    # duration of 6 months, then it ends on 07/15/24. If the current offer
    # coterms to the previous offer, and the current offer starts on
    # 05/06/24, then it will still end on 07/15/24. Assuming the current
    # offer renews 3 times, then the terms on the current offer will be:
    #
    # 1. 05/06/24 - 07/15/24 (First term, ends on 07/15 to coterm with the
    #    amended offer)
    # 2. 07/15/24 - 01/15/25 (First renewal term)
    # 3. 01/15/25 - 07/15/25 (Second renewal term)
    # 4. 07/15/25 - 01/15/26 (Third renewal term)
    #
    # As a contrast, if the current offer does not coterm with the amended
    # offer (such as when `end_policy` is `AFTER_DURATION`), then the
    # terms will be:
    #
    # 1. 05/06/24 - 11/06/24 (First term, ends on 11/06, no coterming)
    # 2. 11/06/24 - 05/06/25 (First renewal term)
    # 3. 05/06/25 - 11/06/25 (Second renewal term)
    # 4. 11/06/25 - 05/06/26 (Third renewal term)
    #
    # If this is set, then the following conditions must be met:
    #
    # * `single_product_offer.amended_private_offer` must be set, and the
    #   amended private offer must not be ended.
    # * The proration policy must not change (e.g., you cannot switch
    #   between `MONTHLY_PRORATED` and `MONTHLY_NOT_PRORATED`).
    # * The current offer must not have custom intervals (where
    #   `custom_interval_price` is set).
    # * `term.duration_months` must match the amended private offer's
    #   duration.
    # * The amended private offer must not have a standard interval
    #   of `MONTHLY_POSTPAY`.
    #
    # This is currently not supported.
    MATCH_AMENDED_OFFER = 3
  end
end

#end_policy::Google::Cloud::CommerceProducer::V1beta::PrivateOffer::Term::EndPolicy

Returns Optional. Defines when an offer should end. Must be set when publishing the offer.

Returns:



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
# File 'proto_docs/google/cloud/commerceproducer/v1beta/private_offer.rb', line 349

class Term
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Defines when an offer should start.
  module StartPolicy
    # Default value. This value is unused.
    START_POLICY_UNSPECIFIED = 0

    # The resulting order starts immediately upon the customer's acceptance
    # of the offer, if no partner approval is required, or else immediately
    # after the partner approves the purchase if order approval is required.
    # This enum value cannot be combined with `term.scheduled_start_time`.
    IMMEDIATE = 1

    # The resulting order starts at the scheduled start time.
    SCHEDULED_START_TIME = 2
  end

  # Defines when an offer should end.
  module EndPolicy
    # Default value. This value is unused.
    END_POLICY_UNSPECIFIED = 0

    # Offer ends after the specified duration.
    # If this is set, then `duration_months` must be positive.
    AFTER_DURATION = 1

    # Offer ends at the schduled time.
    SCHEDULED_END_TIME = 2

    # Offer coterms to the amended offer - the offer ends at the end of the
    # amended offer's term
    #
    # For example, if the amended offer starts on 01/15/24, and has a
    # duration of 6 months, then it ends on 07/15/24. If the current offer
    # coterms to the previous offer, and the current offer starts on
    # 05/06/24, then it will still end on 07/15/24. Assuming the current
    # offer renews 3 times, then the terms on the current offer will be:
    #
    # 1. 05/06/24 - 07/15/24 (First term, ends on 07/15 to coterm with the
    #    amended offer)
    # 2. 07/15/24 - 01/15/25 (First renewal term)
    # 3. 01/15/25 - 07/15/25 (Second renewal term)
    # 4. 07/15/25 - 01/15/26 (Third renewal term)
    #
    # As a contrast, if the current offer does not coterm with the amended
    # offer (such as when `end_policy` is `AFTER_DURATION`), then the
    # terms will be:
    #
    # 1. 05/06/24 - 11/06/24 (First term, ends on 11/06, no coterming)
    # 2. 11/06/24 - 05/06/25 (First renewal term)
    # 3. 05/06/25 - 11/06/25 (Second renewal term)
    # 4. 11/06/25 - 05/06/26 (Third renewal term)
    #
    # If this is set, then the following conditions must be met:
    #
    # * `single_product_offer.amended_private_offer` must be set, and the
    #   amended private offer must not be ended.
    # * The proration policy must not change (e.g., you cannot switch
    #   between `MONTHLY_PRORATED` and `MONTHLY_NOT_PRORATED`).
    # * The current offer must not have custom intervals (where
    #   `custom_interval_price` is set).
    # * `term.duration_months` must match the amended private offer's
    #   duration.
    # * The amended private offer must not have a standard interval
    #   of `MONTHLY_POSTPAY`.
    #
    # This is currently not supported.
    MATCH_AMENDED_OFFER = 3
  end
end

#max_renewal_count::Integer

Returns Optional. The max number of renewals allowed, after the initial term ends. This field is only relevant to standard interval offers with interval of 'MONTHLY_PRORATED', 'MONTHLY_NOT_PRORATED', 'QUARTERLY_NOT_PRORATED' or 'YEARLY_NOT_PRORATED'. Other types of offers cannot be renewed.

For example, if the initial term is 1 year and the max renewals is 3, the customer can renew the offer for up to 3 additional years after the initial term ends. Customers control whether they renew the offer.

Allowing a customer to renew an offer does not constitute a guarantee to the customer that the offered product will still be available to be renewed at the renewal date.

An offer with a max renewal count of 0 cannot be renewed. Must be non-negative.

Note: The following fields are mutually exclusive: max_renewal_count, unlimited_renewal. If a field in that set is populated, all other fields in the set will automatically be cleared.

Returns:

  • (::Integer)

    Optional. The max number of renewals allowed, after the initial term ends. This field is only relevant to standard interval offers with interval of 'MONTHLY_PRORATED', 'MONTHLY_NOT_PRORATED', 'QUARTERLY_NOT_PRORATED' or 'YEARLY_NOT_PRORATED'. Other types of offers cannot be renewed.

    For example, if the initial term is 1 year and the max renewals is 3, the customer can renew the offer for up to 3 additional years after the initial term ends. Customers control whether they renew the offer.

    Allowing a customer to renew an offer does not constitute a guarantee to the customer that the offered product will still be available to be renewed at the renewal date.

    An offer with a max renewal count of 0 cannot be renewed. Must be non-negative.

    Note: The following fields are mutually exclusive: max_renewal_count, unlimited_renewal. If a field in that set is populated, all other fields in the set will automatically be cleared.



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
# File 'proto_docs/google/cloud/commerceproducer/v1beta/private_offer.rb', line 349

class Term
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Defines when an offer should start.
  module StartPolicy
    # Default value. This value is unused.
    START_POLICY_UNSPECIFIED = 0

    # The resulting order starts immediately upon the customer's acceptance
    # of the offer, if no partner approval is required, or else immediately
    # after the partner approves the purchase if order approval is required.
    # This enum value cannot be combined with `term.scheduled_start_time`.
    IMMEDIATE = 1

    # The resulting order starts at the scheduled start time.
    SCHEDULED_START_TIME = 2
  end

  # Defines when an offer should end.
  module EndPolicy
    # Default value. This value is unused.
    END_POLICY_UNSPECIFIED = 0

    # Offer ends after the specified duration.
    # If this is set, then `duration_months` must be positive.
    AFTER_DURATION = 1

    # Offer ends at the schduled time.
    SCHEDULED_END_TIME = 2

    # Offer coterms to the amended offer - the offer ends at the end of the
    # amended offer's term
    #
    # For example, if the amended offer starts on 01/15/24, and has a
    # duration of 6 months, then it ends on 07/15/24. If the current offer
    # coterms to the previous offer, and the current offer starts on
    # 05/06/24, then it will still end on 07/15/24. Assuming the current
    # offer renews 3 times, then the terms on the current offer will be:
    #
    # 1. 05/06/24 - 07/15/24 (First term, ends on 07/15 to coterm with the
    #    amended offer)
    # 2. 07/15/24 - 01/15/25 (First renewal term)
    # 3. 01/15/25 - 07/15/25 (Second renewal term)
    # 4. 07/15/25 - 01/15/26 (Third renewal term)
    #
    # As a contrast, if the current offer does not coterm with the amended
    # offer (such as when `end_policy` is `AFTER_DURATION`), then the
    # terms will be:
    #
    # 1. 05/06/24 - 11/06/24 (First term, ends on 11/06, no coterming)
    # 2. 11/06/24 - 05/06/25 (First renewal term)
    # 3. 05/06/25 - 11/06/25 (Second renewal term)
    # 4. 11/06/25 - 05/06/26 (Third renewal term)
    #
    # If this is set, then the following conditions must be met:
    #
    # * `single_product_offer.amended_private_offer` must be set, and the
    #   amended private offer must not be ended.
    # * The proration policy must not change (e.g., you cannot switch
    #   between `MONTHLY_PRORATED` and `MONTHLY_NOT_PRORATED`).
    # * The current offer must not have custom intervals (where
    #   `custom_interval_price` is set).
    # * `term.duration_months` must match the amended private offer's
    #   duration.
    # * The amended private offer must not have a standard interval
    #   of `MONTHLY_POSTPAY`.
    #
    # This is currently not supported.
    MATCH_AMENDED_OFFER = 3
  end
end

#scheduled_end_time::Google::Type::DateTime

Returns Optional. Specified end time of the offer. Must be set to publish the offer if the end policy is SCHEDULED_END_TIME. When set, the time must be in the future and at a day boundary in the America/Los_Angeles time zone, and must be after term.scheduled_start_time if applicable.

Note: The following fields are mutually exclusive: scheduled_end_time, duration_months. If a field in that set is populated, all other fields in the set will automatically be cleared.

Returns:

  • (::Google::Type::DateTime)

    Optional. Specified end time of the offer. Must be set to publish the offer if the end policy is SCHEDULED_END_TIME. When set, the time must be in the future and at a day boundary in the America/Los_Angeles time zone, and must be after term.scheduled_start_time if applicable.

    Note: The following fields are mutually exclusive: scheduled_end_time, duration_months. If a field in that set is populated, all other fields in the set will automatically be cleared.



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
# File 'proto_docs/google/cloud/commerceproducer/v1beta/private_offer.rb', line 349

class Term
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Defines when an offer should start.
  module StartPolicy
    # Default value. This value is unused.
    START_POLICY_UNSPECIFIED = 0

    # The resulting order starts immediately upon the customer's acceptance
    # of the offer, if no partner approval is required, or else immediately
    # after the partner approves the purchase if order approval is required.
    # This enum value cannot be combined with `term.scheduled_start_time`.
    IMMEDIATE = 1

    # The resulting order starts at the scheduled start time.
    SCHEDULED_START_TIME = 2
  end

  # Defines when an offer should end.
  module EndPolicy
    # Default value. This value is unused.
    END_POLICY_UNSPECIFIED = 0

    # Offer ends after the specified duration.
    # If this is set, then `duration_months` must be positive.
    AFTER_DURATION = 1

    # Offer ends at the schduled time.
    SCHEDULED_END_TIME = 2

    # Offer coterms to the amended offer - the offer ends at the end of the
    # amended offer's term
    #
    # For example, if the amended offer starts on 01/15/24, and has a
    # duration of 6 months, then it ends on 07/15/24. If the current offer
    # coterms to the previous offer, and the current offer starts on
    # 05/06/24, then it will still end on 07/15/24. Assuming the current
    # offer renews 3 times, then the terms on the current offer will be:
    #
    # 1. 05/06/24 - 07/15/24 (First term, ends on 07/15 to coterm with the
    #    amended offer)
    # 2. 07/15/24 - 01/15/25 (First renewal term)
    # 3. 01/15/25 - 07/15/25 (Second renewal term)
    # 4. 07/15/25 - 01/15/26 (Third renewal term)
    #
    # As a contrast, if the current offer does not coterm with the amended
    # offer (such as when `end_policy` is `AFTER_DURATION`), then the
    # terms will be:
    #
    # 1. 05/06/24 - 11/06/24 (First term, ends on 11/06, no coterming)
    # 2. 11/06/24 - 05/06/25 (First renewal term)
    # 3. 05/06/25 - 11/06/25 (Second renewal term)
    # 4. 11/06/25 - 05/06/26 (Third renewal term)
    #
    # If this is set, then the following conditions must be met:
    #
    # * `single_product_offer.amended_private_offer` must be set, and the
    #   amended private offer must not be ended.
    # * The proration policy must not change (e.g., you cannot switch
    #   between `MONTHLY_PRORATED` and `MONTHLY_NOT_PRORATED`).
    # * The current offer must not have custom intervals (where
    #   `custom_interval_price` is set).
    # * `term.duration_months` must match the amended private offer's
    #   duration.
    # * The amended private offer must not have a standard interval
    #   of `MONTHLY_POSTPAY`.
    #
    # This is currently not supported.
    MATCH_AMENDED_OFFER = 3
  end
end

#scheduled_start_time::Google::Type::DateTime

Returns Optional. The scheduled start time of the offer. Cannot exceed one year from the time of publish.

If the start policy is SCHEDULED_START_TIME, a future time at a day boundary in the America/Los_Angeles time zone must be provided when publishing the offer.

If the offer amends another private or standard offer, then the scheduled start time must be:

  • Before or equal to the amended offer's end time if the offer's end policy is not MATCH_AMENDED_OFFER. Otherwise, it has to be strictly before the amended offer's end time.
  • Before or equal to the start time of the next pending installment of the amended offer, if amending a private offer with custom installments. For example, if the amended offer has installments on 01/01, 02/01, 03/01, 04/01, and today is 02/15, then the new offer's scheduled_start_time must be at or before 03/01.

Returns:

  • (::Google::Type::DateTime)

    Optional. The scheduled start time of the offer. Cannot exceed one year from the time of publish.

    If the start policy is SCHEDULED_START_TIME, a future time at a day boundary in the America/Los_Angeles time zone must be provided when publishing the offer.

    If the offer amends another private or standard offer, then the scheduled start time must be:

    • Before or equal to the amended offer's end time if the offer's end policy is not MATCH_AMENDED_OFFER. Otherwise, it has to be strictly before the amended offer's end time.
    • Before or equal to the start time of the next pending installment of the amended offer, if amending a private offer with custom installments. For example, if the amended offer has installments on 01/01, 02/01, 03/01, 04/01, and today is 02/15, then the new offer's scheduled_start_time must be at or before 03/01.


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
# File 'proto_docs/google/cloud/commerceproducer/v1beta/private_offer.rb', line 349

class Term
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Defines when an offer should start.
  module StartPolicy
    # Default value. This value is unused.
    START_POLICY_UNSPECIFIED = 0

    # The resulting order starts immediately upon the customer's acceptance
    # of the offer, if no partner approval is required, or else immediately
    # after the partner approves the purchase if order approval is required.
    # This enum value cannot be combined with `term.scheduled_start_time`.
    IMMEDIATE = 1

    # The resulting order starts at the scheduled start time.
    SCHEDULED_START_TIME = 2
  end

  # Defines when an offer should end.
  module EndPolicy
    # Default value. This value is unused.
    END_POLICY_UNSPECIFIED = 0

    # Offer ends after the specified duration.
    # If this is set, then `duration_months` must be positive.
    AFTER_DURATION = 1

    # Offer ends at the schduled time.
    SCHEDULED_END_TIME = 2

    # Offer coterms to the amended offer - the offer ends at the end of the
    # amended offer's term
    #
    # For example, if the amended offer starts on 01/15/24, and has a
    # duration of 6 months, then it ends on 07/15/24. If the current offer
    # coterms to the previous offer, and the current offer starts on
    # 05/06/24, then it will still end on 07/15/24. Assuming the current
    # offer renews 3 times, then the terms on the current offer will be:
    #
    # 1. 05/06/24 - 07/15/24 (First term, ends on 07/15 to coterm with the
    #    amended offer)
    # 2. 07/15/24 - 01/15/25 (First renewal term)
    # 3. 01/15/25 - 07/15/25 (Second renewal term)
    # 4. 07/15/25 - 01/15/26 (Third renewal term)
    #
    # As a contrast, if the current offer does not coterm with the amended
    # offer (such as when `end_policy` is `AFTER_DURATION`), then the
    # terms will be:
    #
    # 1. 05/06/24 - 11/06/24 (First term, ends on 11/06, no coterming)
    # 2. 11/06/24 - 05/06/25 (First renewal term)
    # 3. 05/06/25 - 11/06/25 (Second renewal term)
    # 4. 11/06/25 - 05/06/26 (Third renewal term)
    #
    # If this is set, then the following conditions must be met:
    #
    # * `single_product_offer.amended_private_offer` must be set, and the
    #   amended private offer must not be ended.
    # * The proration policy must not change (e.g., you cannot switch
    #   between `MONTHLY_PRORATED` and `MONTHLY_NOT_PRORATED`).
    # * The current offer must not have custom intervals (where
    #   `custom_interval_price` is set).
    # * `term.duration_months` must match the amended private offer's
    #   duration.
    # * The amended private offer must not have a standard interval
    #   of `MONTHLY_POSTPAY`.
    #
    # This is currently not supported.
    MATCH_AMENDED_OFFER = 3
  end
end

#start_policy::Google::Cloud::CommerceProducer::V1beta::PrivateOffer::Term::StartPolicy

Returns Optional. Defines when the resulting order should start. Must be set when publishing the offer.

Returns:



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
# File 'proto_docs/google/cloud/commerceproducer/v1beta/private_offer.rb', line 349

class Term
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Defines when an offer should start.
  module StartPolicy
    # Default value. This value is unused.
    START_POLICY_UNSPECIFIED = 0

    # The resulting order starts immediately upon the customer's acceptance
    # of the offer, if no partner approval is required, or else immediately
    # after the partner approves the purchase if order approval is required.
    # This enum value cannot be combined with `term.scheduled_start_time`.
    IMMEDIATE = 1

    # The resulting order starts at the scheduled start time.
    SCHEDULED_START_TIME = 2
  end

  # Defines when an offer should end.
  module EndPolicy
    # Default value. This value is unused.
    END_POLICY_UNSPECIFIED = 0

    # Offer ends after the specified duration.
    # If this is set, then `duration_months` must be positive.
    AFTER_DURATION = 1

    # Offer ends at the schduled time.
    SCHEDULED_END_TIME = 2

    # Offer coterms to the amended offer - the offer ends at the end of the
    # amended offer's term
    #
    # For example, if the amended offer starts on 01/15/24, and has a
    # duration of 6 months, then it ends on 07/15/24. If the current offer
    # coterms to the previous offer, and the current offer starts on
    # 05/06/24, then it will still end on 07/15/24. Assuming the current
    # offer renews 3 times, then the terms on the current offer will be:
    #
    # 1. 05/06/24 - 07/15/24 (First term, ends on 07/15 to coterm with the
    #    amended offer)
    # 2. 07/15/24 - 01/15/25 (First renewal term)
    # 3. 01/15/25 - 07/15/25 (Second renewal term)
    # 4. 07/15/25 - 01/15/26 (Third renewal term)
    #
    # As a contrast, if the current offer does not coterm with the amended
    # offer (such as when `end_policy` is `AFTER_DURATION`), then the
    # terms will be:
    #
    # 1. 05/06/24 - 11/06/24 (First term, ends on 11/06, no coterming)
    # 2. 11/06/24 - 05/06/25 (First renewal term)
    # 3. 05/06/25 - 11/06/25 (Second renewal term)
    # 4. 11/06/25 - 05/06/26 (Third renewal term)
    #
    # If this is set, then the following conditions must be met:
    #
    # * `single_product_offer.amended_private_offer` must be set, and the
    #   amended private offer must not be ended.
    # * The proration policy must not change (e.g., you cannot switch
    #   between `MONTHLY_PRORATED` and `MONTHLY_NOT_PRORATED`).
    # * The current offer must not have custom intervals (where
    #   `custom_interval_price` is set).
    # * `term.duration_months` must match the amended private offer's
    #   duration.
    # * The amended private offer must not have a standard interval
    #   of `MONTHLY_POSTPAY`.
    #
    # This is currently not supported.
    MATCH_AMENDED_OFFER = 3
  end
end

#unlimited_renewal::Boolean (readonly)

Deprecated.

This field is deprecated and may be removed in the next major version update.

Returns Output only. Deprecated: This field can only be true on existing offers with standard interval of 'MONTHLY_POSTPAY'. As of May 2024, we no longer allow unlimited renewals.

Note: The following fields are mutually exclusive: unlimited_renewal, max_renewal_count. If a field in that set is populated, all other fields in the set will automatically be cleared.

Returns:

  • (::Boolean)

    Output only. Deprecated: This field can only be true on existing offers with standard interval of 'MONTHLY_POSTPAY'. As of May 2024, we no longer allow unlimited renewals.

    Note: The following fields are mutually exclusive: unlimited_renewal, max_renewal_count. If a field in that set is populated, all other fields in the set will automatically be cleared.



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
# File 'proto_docs/google/cloud/commerceproducer/v1beta/private_offer.rb', line 349

class Term
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Defines when an offer should start.
  module StartPolicy
    # Default value. This value is unused.
    START_POLICY_UNSPECIFIED = 0

    # The resulting order starts immediately upon the customer's acceptance
    # of the offer, if no partner approval is required, or else immediately
    # after the partner approves the purchase if order approval is required.
    # This enum value cannot be combined with `term.scheduled_start_time`.
    IMMEDIATE = 1

    # The resulting order starts at the scheduled start time.
    SCHEDULED_START_TIME = 2
  end

  # Defines when an offer should end.
  module EndPolicy
    # Default value. This value is unused.
    END_POLICY_UNSPECIFIED = 0

    # Offer ends after the specified duration.
    # If this is set, then `duration_months` must be positive.
    AFTER_DURATION = 1

    # Offer ends at the schduled time.
    SCHEDULED_END_TIME = 2

    # Offer coterms to the amended offer - the offer ends at the end of the
    # amended offer's term
    #
    # For example, if the amended offer starts on 01/15/24, and has a
    # duration of 6 months, then it ends on 07/15/24. If the current offer
    # coterms to the previous offer, and the current offer starts on
    # 05/06/24, then it will still end on 07/15/24. Assuming the current
    # offer renews 3 times, then the terms on the current offer will be:
    #
    # 1. 05/06/24 - 07/15/24 (First term, ends on 07/15 to coterm with the
    #    amended offer)
    # 2. 07/15/24 - 01/15/25 (First renewal term)
    # 3. 01/15/25 - 07/15/25 (Second renewal term)
    # 4. 07/15/25 - 01/15/26 (Third renewal term)
    #
    # As a contrast, if the current offer does not coterm with the amended
    # offer (such as when `end_policy` is `AFTER_DURATION`), then the
    # terms will be:
    #
    # 1. 05/06/24 - 11/06/24 (First term, ends on 11/06, no coterming)
    # 2. 11/06/24 - 05/06/25 (First renewal term)
    # 3. 05/06/25 - 11/06/25 (Second renewal term)
    # 4. 11/06/25 - 05/06/26 (Third renewal term)
    #
    # If this is set, then the following conditions must be met:
    #
    # * `single_product_offer.amended_private_offer` must be set, and the
    #   amended private offer must not be ended.
    # * The proration policy must not change (e.g., you cannot switch
    #   between `MONTHLY_PRORATED` and `MONTHLY_NOT_PRORATED`).
    # * The current offer must not have custom intervals (where
    #   `custom_interval_price` is set).
    # * `term.duration_months` must match the amended private offer's
    #   duration.
    # * The amended private offer must not have a standard interval
    #   of `MONTHLY_POSTPAY`.
    #
    # This is currently not supported.
    MATCH_AMENDED_OFFER = 3
  end
end