# Plan

Plans define the network options and parameters offered to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances (data, sms, voice) and limits are configurable, and Gigs will work with you to find the best balance for your users.

## Properties

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `object` | string | Yes | Type of object is always `plan`. |
| `id` | string | Yes | Unique identifier for the plan. |
| `metadata` | object | Yes | A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata) related to the resource. |
| `activationTrigger` | creation | usageStarted | Yes | Indicates when a subscription will activate.  - `creation`: As soon as it is created. The user does not need to take any further action. - `usageStarted`: When the user starts using subscription allowance on their device.  |
| `allowances` | object | Yes | Usage allowances included in the plan - i.e. how many bytes of data, voice minutes & sms messages the user has access to. |
| `coverage` | object | Yes | The geographic coverage of the plan. |
| `createdAt` | string | Yes | Time when the plan was created. |
| `description` | string,null | Yes | The plan's description, meant to be displayable to the users. |
| `firstPeriodTrigger` | activation | creation | Yes | Indicates when a subscription's first period will start.  - `creation`: As soon as the subscription is created. - `activation`: When the subscription's status transitions from `pending` to `active`.   <!-- theme: info --> > #### Preview > > This property is currently in preview and might change in the future. > > We’re excited to hear your feedback and ideas. Please send an email > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.  |
| `image` | string,null | Yes | The plan's image, meant to be displayable to the users. |
| `limits` | object | Yes | Usage limits for the plan - i.e. the maximum available bandwidth, fair-use data limits and throttling threshold. |
| `name` | string | Yes | The plan's name, meant to be displayable to the users. |
| `price` | object | Yes | The price of the plan. |
| `provider` | string | Yes | The ID of the network provider supported by this plan. |
| `requirements` | object | Yes | Required information that must be collected from the user in order to create a subscription with this plan. |
| `simTypes` | string[] | Yes | List of SIM types supported by this plan. Can be `eSIM`, `pSIM`, or both. |
| `status` | available | archived | pending | draft | Yes |  |
| `validity` | object | Yes | Plan validity information - i.e. subscription period length, and the minimum number of periods before the plan can be ended. |
| `data` | integer | Yes | <!-- theme: warning --> > #### Deprecated > > This property is deprecated and will be removed in the future. > Use `allowances` instead.   The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data. |
| `dataUnit` | string | Yes | <!-- theme: warning --> > #### Deprecated > > This property is deprecated and will be removed in the future. > Use `allowances` instead.   The unit of the data value is always `byte`. |
| `sms` | integer | Yes | <!-- theme: warning --> > #### Deprecated > > This property is deprecated and will be removed in the future. > Use `allowances` instead.   The sms allowance included in this plan. A value of `-1` indicates unlimited sms. |
| `smsUnit` | string | Yes | <!-- theme: warning --> > #### Deprecated > > This property is deprecated and will be removed in the future. > Use `allowances` instead.   The unit of the sms value is always `message`. |
| `voice` | integer | Yes | <!-- theme: warning --> > #### Deprecated > > This property is deprecated and will be removed in the future. > Use `allowances` instead.   The voice allowance included in this plan. A value of `-1` indicates unlimited voice. |
| `voiceUnit` | string | Yes | <!-- theme: warning --> > #### Deprecated > > This property is deprecated and will be removed in the future. > Use `allowances` instead.   The unit of the voice value is always `second`. |
