Offer

Represents an offer made to resellers for purchase. An offer is associated with a Sku, has a plan for payment, a price, and defines the constraints for buying.

JSON representation
{
  "name": string,
  "marketingInfo": {
    object (MarketingInfo)
  },
  "sku": {
    object (Sku)
  },
  "plan": {
    object (Plan)
  },
  "constraints": {
    object (Constraints)
  },
  "priceByResources": [
    {
      object (PriceByResource)
    }
  ],
  "startTime": string,
  "endTime": string,
  "parameterDefinitions": [
    {
      object (ParameterDefinition)
    }
  ]
}
Fields
name

string

Resource Name of the Offer. Format: accounts/{account_id}/offers/{offer_id}

marketingInfo

object (MarketingInfo)

Marketing information for the Offer.

sku

object (Sku)

SKU the offer is associated with.

plan

object (Plan)

Describes the payment plan for the Offer.

constraints

object (Constraints)

Constraints on transacting the Offer.

priceByResources[]

object (PriceByResource)

Price for each monetizable resource type.

startTime

string (Timestamp format)

Start of the Offer validity time.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

endTime

string (Timestamp format)

Output only. End of the Offer validity time.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

parameterDefinitions[]

object (ParameterDefinition)

Parameters required to use current Offer to purchase.

Plan

The payment plan for the Offer. Describes how to make a payment.

JSON representation
{
  "paymentPlan": enum (PaymentPlan),
  "paymentType": enum (PaymentType),
  "paymentCycle": {
    object (Period)
  },
  "trialPeriod": {
    object (Period)
  },
  "billingAccount": string
}
Fields
paymentPlan

enum (PaymentPlan)

Describes how a reseller will be billed.

paymentType

enum (PaymentType)

Specifies when the payment needs to happen.

paymentCycle

object (Period)

Describes how frequently the reseller will be billed, such as once per month.

trialPeriod

object (Period)

Present for Offers with a trial period. For trial-only Offers, a paid service needs to start before the trial period ends for continued service. For Regular Offers with a trial period, the regular pricing goes into effect when trial period ends, or if paid service is started before the end of the trial period.

billingAccount

string

Reseller Billing account to charge after an offer transaction. Only present for Google Cloud Platform offers.

PaymentType

Specifies when the payment needs to happen.

Enums
PAYMENT_TYPE_UNSPECIFIED Not used.
PREPAY Prepay. Amount has to be paid before service is rendered.
POSTPAY Postpay. Reseller is charged at the end of the Payment cycle.

Constraints

Represents the constraints for buying the Offer.

JSON representation
{
  "customerConstraints": {
    object (CustomerConstraints)
  }
}
Fields
customerConstraints

object (CustomerConstraints)

Represents constraints required to purchase the Offer for a customer.

CustomerConstraints

Represents constraints required to purchase the Offer for a customer.

JSON representation
{
  "allowedRegions": [
    string
  ],
  "allowedCustomerTypes": [
    enum (CustomerType)
  ],
  "promotionalOrderTypes": [
    enum (PromotionalOrderType)
  ]
}
Fields
allowedRegions[]

string

Allowed geographical regions of the customer.

allowedCustomerTypes[]

enum (CustomerType)

Allowed Customer Type.

promotionalOrderTypes[]

enum (PromotionalOrderType)

Allowed Promotional Order Type. Present for Promotional offers.

PromotionalOrderType

Constraints type for Promotional offers.

Enums
PROMOTIONAL_TYPE_UNSPECIFIED Not used.
NEW_UPGRADE Order used for new customers, trial conversions and upgrades.
TRANSFER All orders for transferring an existing customer.
PROMOTION_SWITCH Orders for modifying an existing customer's promotion on the same SKU.

PriceByResource

Represents price by resource type.

JSON representation
{
  "resourceType": enum (ResourceType),
  "price": {
    object (Price)
  },
  "pricePhases": [
    {
      object (PricePhase)
    }
  ]
}
Fields
resourceType

enum (ResourceType)

Resource Type. Example: SEAT

price

object (Price)

Price of the Offer. Present if there are no price phases.

pricePhases[]

object (PricePhase)

Specifies the price by time range.

ResourceType

Represents the type for a monetizable resource(any entity on which billing happens). For example, this could be MINUTES for Google Voice and GB for Google Drive. One SKU can map to multiple monetizable resources.

Enums
RESOURCE_TYPE_UNSPECIFIED Not used.
SEAT Seat.
MAU Monthly active user.
GB GB (used for storage SKUs).
LICENSED_USER Active licensed users(for Voice SKUs).
MINUTES Voice usage.
IAAS_USAGE For IaaS SKUs like Google Cloud Platform, monetization is based on usage accrued on your billing account irrespective of the type of monetizable resource. This enum represents an aggregated resource/container for all usage SKUs on a billing account. Currently, only applicable to Google Cloud Platform.
SUBSCRIPTION For Google Cloud Platform subscriptions like Anthos or SAP.

Price

Represents the price of the Offer.

JSON representation
{
  "basePrice": {
    object (Money)
  },
  "discount": number,
  "effectivePrice": {
    object (Money)
  },
  "externalPriceUri": string
}
Fields
basePrice

object (Money)

Base price.

discount

number

Discount percentage, represented as decimal. For example, a 20% discount will be represent as 0.2.

effectivePrice

object (Money)

Effective Price after applying the discounts.

externalPriceUri

string

Link to external price list, such as link to Google Voice rate card.

PricePhase

Specifies the price by the duration of months. For example, a 20% discount for the first six months, then a 10% discount starting on the seventh month.

JSON representation
{
  "periodType": enum (PeriodType),
  "firstPeriod": integer,
  "lastPeriod": integer,
  "price": {
    object (Price)
  },
  "priceTiers": [
    {
      object (PriceTier)
    }
  ]
}
Fields
periodType

enum (PeriodType)

Defines the phase period type.

firstPeriod

integer

Defines first period for the phase.

lastPeriod

integer

Defines first period for the phase.

price

object (Price)

Price of the phase. Present if there are no price tiers.

priceTiers[]

object (PriceTier)

Price by the resource tiers.

PriceTier

Defines price at resource tier level. For example, an offer with following definition :

  • Tier 1: Provide 25% discount for all seats between 1 and 25.
  • Tier 2: Provide 10% discount for all seats between 26 and 100.
  • Tier 3: Provide flat 15% discount for all seats above 100.

Each of these tiers is represented as a PriceTier.

JSON representation
{
  "firstResource": integer,
  "lastResource": integer,
  "price": {
    object (Price)
  }
}
Fields
firstResource

integer

First resource for which the tier price applies.

lastResource

integer

Last resource for which the tier price applies.

price

object (Price)

Price of the tier.

ParameterDefinition

Parameter's definition. Specifies what parameter is required to use the current Offer to purchase.

JSON representation
{
  "name": string,
  "parameterType": enum (ParameterType),
  "minValue": {
    object (Value)
  },
  "maxValue": {
    object (Value)
  },
  "allowedValues": [
    {
      object (Value)
    }
  ],
  "optional": boolean
}
Fields
name

string

Name of the parameter.

parameterType

enum (ParameterType)

Data type of the parameter. Minimal value, Maximum value and allowed values will use specified data type here.

minValue

object (Value)

Minimal value of the parameter, if applicable. Inclusive. For example, minimal commitment when purchasing Anthos is 0.01. Applicable to INT64 and DOUBLE parameter types.

maxValue

object (Value)

Maximum value of the parameter, if applicable. Inclusive. For example, maximum seats when purchasing Google Workspace Business Standard. Applicable to INT64 and DOUBLE parameter types.

allowedValues[]

object (Value)

If not empty, parameter values must be drawn from this list. For example, [us-west1, us-west2, ...] Applicable to STRING parameter type.

optional

boolean

If set to true, parameter is optional to purchase this Offer.

ParameterType

Data type of the parameter.

Enums
PARAMETER_TYPE_UNSPECIFIED Not used.
INT64 Int64 type.
STRING String type.
DOUBLE Double type.