- [JSON representation](https://developers.google.com/payments/reseller/subscription/reference/rest/v1/PromotionSpec#SCHEMA_REPRESENTATION)

Describes the spec for one promotion.

| JSON representation |
|---|
| ``` { "promotion": string, "type": enum (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/PromotionType`), // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "introductoryPricingDetails": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/IntroductoryPricingDetails`) }, "freeTrialDuration": { object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/Duration`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| `promotion` | `string` Required. Promotion resource name that identifies a promotion. The format is 'partners/{partner_id}/promotions/{promotion_id}'. |
| `type` | ``enum (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/PromotionType`)`` Output only. The type of the promotion for the spec. |
| The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `introductoryPricingDetails` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/IntroductoryPricingDetails`)`` Output only. The details of the introductory pricing spec if the promotion is of type INTRODUCTORY_PRICING. |
| `freeTrialDuration` | ``object (`https://developers.google.com/payments/reseller/subscription/reference/rest/v1/Duration`)`` Output only. The duration of the free trial if the promotion is of type FREE_TRIAL. |
| End of mutually exclusive fields. ||