# Upsert or remove entitlement overrides for a subscription

> For the complete machine-readable documentation index, see [llms.txt](https://apidocs.chargebee.com/llms.txt).


[Idempotency Supported](/docs/api/idempotency)

Upserts or removes a set of `entitlement_overrides` for a `subscription` depending on the `action` specified. The API returns the upserted or deleted `entitlement_overrides` after successfully completing the operation. The operation returns an error when the first `entitlement_override` fails to be processed. Either all the `entitlement_overrides` provided in the request are processed or none.

## Sample Request

### Adding entitlement overrides for a feature

#### cURL

```bash
curl  https://{site}.chargebee.com/api/v2/subscriptions/Jdf63vklssSDFdb/entitlement_overrides \
     -X POST  \
     -u {site_api_key}:\
     -d action="UPSERT" \
     -d "entitlement_overrides[feature_id][0]"="fea-be1a9281-d8df-48ce-82e2-294667eb4d94" \
     -d "entitlement_overrides[value][0]"="true"
```

#### .NET

```dotnet
using ChargeBee.Api;
using ChargeBee.Models;
using ChargeBee.Models.Enums;

ApiConfig.Configure("{site}","{site_api_key}");
EntityResult result = EntitlementOverride.AddEntitlementOverrideForSubscription("Jdf63vklssSDFdb")
		.Action(ActionEnum.Upsert)
		.EntitlementOverrideFeatureId(0, "fea-be1a9281-d8df-48ce-82e2-294667eb4d94")
		.EntitlementOverrideValue(0, "true")
		.Request();

EntitlementOverride entitlementOverride = result.EntitlementOverride;
```

#### Go

```go
package main
import (
    "fmt"
    "github.com/chargebee/chargebee-go/v3"
    entitlementoverrideAction "github.com/chargebee/chargebee-go/v3/actions/entitlementoverride"
    "github.com/chargebee/chargebee-go/v3/models/entitlementoverride"
    enum "github.com/chargebee/chargebee-go/v3/enum"
)
func main() {
    chargebee.Configure("{site_api_key}","{site}");
    res,err := entitlementoverrideAction.AddEntitlementOverrideForSubscription("Jdf63vklssSDFdb", &entitlementoverride.AddEntitlementOverrideForSubscriptionRequestParams{
        EntitlementOverrides : []*entitlementoverride.AddEntitlementOverrideForSubscriptionEntitlementOverrideParams{
            {
                FeatureId : "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
                Value : "true",
            },
        },
        Action : enum.ActionUpsert,
    }).Request()
    if err != nil {
        fmt.Println(err)
    } else {
        List := res.List
    }
}
```

#### Go

```go
package main

import (
  "fmt"
  "github.com/chargebee/chargebee-go/v4"
)

func main() {
  config := &chargebee.ClientConfig{
    SiteName: "{site}",
    ApiKey: "{site_api_key}",
  }    
  client := chargebee.NewClient(config)
  req := &chargebee.EntitlementOverrideAddEntitlementOverrideForSubscriptionRequest{
    EntitlementOverrides : []*chargebee.EntitlementOverrideAddEntitlementOverrideForSubscriptionEntitlementOverride{
        {
            FeatureId : "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
            Value : "true",
        },
    },
    Action : chargebee.ActionUpsert,
}
  res, err := client.EntitlementOverride.AddEntitlementOverrideForSubscription("Jdf63vklssSDFdb", req)
      if err != nil {
        fmt.Println(err)
    } else {
        List := res.List
    }
}
```

#### Java

```java
import com.chargebee.*;
import com.chargebee.ListResult;
import com.chargebee.models.*;
import com.chargebee.models.enums.*;
import java.io.IOException;
import java.util.List;

public class Sample {

    public static void main(String args[]) throws IOException, Exception {
        Environment.configure("{site}", "{site_api_key}");
        Result result = EntitlementOverride.addEntitlementOverrideForSubscription("Jdf63vklssSDFdb")
            .action(Action.UPSERT)
            .entitlementOverrideFeatureId(0, "fea-be1a9281-d8df-48ce-82e2-294667eb4d94")
            .entitlementOverrideValue(0, "true")
            .request();

    }
}
```

#### Java

```java
import com.chargebee.v4.client.ChargebeeClient;
import com.chargebee.v4.models.entitlementOverride.params.AddEntitlementOverrideForSubscriptionParams;
import com.chargebee.v4.models.entitlementOverride.responses.AddEntitlementOverrideForSubscriptionResponse;
import java.util.List;

public class AddEntitlementOverrideForSubscription {

    public static void main(String[] args) {
        ChargebeeClient client = ChargebeeClient.builder()
            .apiKey("{site_api_key}")
            .siteName("{site}")
            .build();

        AddEntitlementOverrideForSubscriptionParams.EntitlementOverridesParams entitlementOverride0 =
            AddEntitlementOverrideForSubscriptionParams.EntitlementOverridesParams.builder()
                .featureId("fea-be1a9281-d8df-48ce-82e2-294667eb4d94")
                .value("true")
                .build();

        List<AddEntitlementOverrideForSubscriptionParams.EntitlementOverridesParams> entitlementOverridesList =
            List.of(entitlementOverride0);

        AddEntitlementOverrideForSubscriptionParams params = AddEntitlementOverrideForSubscriptionParams.builder()
            .action(AddEntitlementOverrideForSubscriptionParams.Action.UPSERT)
            .entitlementOverrides(entitlementOverridesList)
            .build();

        AddEntitlementOverrideForSubscriptionResponse response = client
            .entitlementOverrides()
            .addEntitlementOverrideForSubscription("Jdf63vklssSDFdb", params);

    }
}
```

#### Node.js

```node
import Chargebee from "chargebee";

const chargebee = new Chargebee({
    site: "{site}",
    apiKey: "{site_api_key}",
});

try {
    const result = await chargebee.entitlementOverride.addEntitlementOverrideForSubscription("Jdf63vklssSDFdb", {
        entitlement_overrides: [
            {
                feature_id: "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
                value: true
            }
        ],
        action: "upsert"
    });

    console.log(result);
    const list = result.list;
} catch (err) {
    console.log(err);
}
```

#### PHP

```php
<?php

require __DIR__ . '/vendor/autoload.php';

use Chargebee\ChargebeeClient;

$chargebee = new ChargebeeClient(options: [
    "site" => "{site}",
    "apiKey" => "{site_api_key}",
]);
$result = $chargebee->entitlementOverride()->addEntitlementOverrideForSubscription("Jdf63vklssSDFdb", [
    "entitlement_overrides" => [
        [
            "feature_id" => "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
            "value" => true
        ]
    ],
    "action" => "upsert"
]);
$list = $result->list;
```

#### Python

```python
import chargebee
from chargebee import Chargebee

cb_client = Chargebee(api_key="{site_api_key}", site="{site}")
response = cb_client.EntitlementOverride.add_entitlement_override_for_subscription("Jdf63vklssSDFdb",
    cb_client.EntitlementOverride.AddEntitlementOverrideForSubscriptionParams(
        entitlement_overrides=[
            cb_client.EntitlementOverride.AddEntitlementOverrideForSubscriptionEntitlementOverrideParams(
              feature_id="fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
              value="true"
            )
        ],
        action=chargebee.Action.UPSERT
    )
)
entries = response.list
```

#### Ruby

```ruby
require 'chargebee'

ChargeBee.configure(:site => "{site}",
  :api_key => "{site_api_key}")

result = ChargeBee::EntitlementOverride.add_entitlement_override_for_subscription("Jdf63vklssSDFdb",{
  :action => "UPSERT",
  :entitlement_overrides => [
    {
      :feature_id => "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
      :value => "true"
    }
  ]
})

list = result.list
```

### Adding entitlement overrides for a feature

#### cURL

```bash
curl  https://{site}.chargebee.com/api/v2/subscriptions/Jdf63vklssSDFdb/entitlement_overrides \
     -X POST  \
     -u {site_api_key}:\
     -d action="UPSERT" \
     -d "entitlement_overrides[feature_id][0]"="fea-be1a9281-d8df-48ce-82e2-294667eb4d94" \
     -d "entitlement_overrides[value][0]"="true" \
     -d "entitlement_overrides[expires_at][0]"=1649243933
```

#### .NET

```dotnet
using ChargeBee.Api;
using ChargeBee.Models;
using ChargeBee.Models.Enums;

ApiConfig.Configure("{site}","{site_api_key}");
EntityResult result = EntitlementOverride.AddEntitlementOverrideForSubscription("Jdf63vklssSDFdb")
		.Action(ActionEnum.Upsert)
		.EntitlementOverrideFeatureId(0, "fea-be1a9281-d8df-48ce-82e2-294667eb4d94")
		.EntitlementOverrideValue(0, "true")
		.EntitlementOverrideExpiresAt(0, 1649243933)
		.Request();

EntitlementOverride entitlementOverride = result.EntitlementOverride;
```

#### Go

```go
package main
import (
    "fmt"
    "github.com/chargebee/chargebee-go/v3"
    entitlementoverrideAction "github.com/chargebee/chargebee-go/v3/actions/entitlementoverride"
    "github.com/chargebee/chargebee-go/v3/models/entitlementoverride"
    enum "github.com/chargebee/chargebee-go/v3/enum"
)
func main() {
    chargebee.Configure("{site_api_key}","{site}");
    res,err := entitlementoverrideAction.AddEntitlementOverrideForSubscription("Jdf63vklssSDFdb", &entitlementoverride.AddEntitlementOverrideForSubscriptionRequestParams{
        EntitlementOverrides : []*entitlementoverride.AddEntitlementOverrideForSubscriptionEntitlementOverrideParams{
            {
                FeatureId : "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
                Value : "true",
                ExpiresAt : chargebee.Int64(1649243933),
            },
        },
        Action : enum.ActionUpsert,
    }).Request()
    if err != nil {
        fmt.Println(err)
    } else {
        List := res.List
    }
}
```

#### Go

```go
package main

import (
  "fmt"
  "github.com/chargebee/chargebee-go/v4"
)

func main() {
  config := &chargebee.ClientConfig{
    SiteName: "{site}",
    ApiKey: "{site_api_key}",
  }    
  client := chargebee.NewClient(config)
  req := &chargebee.EntitlementOverrideAddEntitlementOverrideForSubscriptionRequest{
    EntitlementOverrides : []*chargebee.EntitlementOverrideAddEntitlementOverrideForSubscriptionEntitlementOverride{
        {
            FeatureId : "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
            Value : "true",
            ExpiresAt : chargebee.Int64(1649243933),
        },
    },
    Action : chargebee.ActionUpsert,
}
  res, err := client.EntitlementOverride.AddEntitlementOverrideForSubscription("Jdf63vklssSDFdb", req)
      if err != nil {
        fmt.Println(err)
    } else {
        List := res.List
    }
}
```

#### Java

```java
import com.chargebee.*;
import com.chargebee.ListResult;
import com.chargebee.models.*;
import com.chargebee.models.enums.*;
import java.io.IOException;
import java.util.List;
import java.sql.Timestamp;

public class Sample {

    public static void main(String args[]) throws IOException, Exception {
        Environment.configure("{site}", "{site_api_key}");
        Result result = EntitlementOverride.addEntitlementOverrideForSubscription("Jdf63vklssSDFdb")
            .action(Action.UPSERT)
            .entitlementOverrideFeatureId(0, "fea-be1a9281-d8df-48ce-82e2-294667eb4d94")
            .entitlementOverrideValue(0, "true")
            .entitlementOverrideExpiresAt(0, new Timestamp(1649243933L * 1000))
            .request();

    }
}
```

#### Java

```java
import com.chargebee.v4.client.ChargebeeClient;
import com.chargebee.v4.models.entitlementOverride.params.AddEntitlementOverrideForSubscriptionParams;
import com.chargebee.v4.models.entitlementOverride.responses.AddEntitlementOverrideForSubscriptionResponse;
import java.sql.Timestamp;
import java.util.List;

public class AddEntitlementOverrideForSubscription {

    public static void main(String[] args) {
        ChargebeeClient client = ChargebeeClient.builder()
            .apiKey("{site_api_key}")
            .siteName("{site}")
            .build();

        AddEntitlementOverrideForSubscriptionParams.EntitlementOverridesParams entitlementOverride0 =
            AddEntitlementOverrideForSubscriptionParams.EntitlementOverridesParams.builder()
                .featureId("fea-be1a9281-d8df-48ce-82e2-294667eb4d94")
                .value("true")
                .expiresAt(new Timestamp(1649243933L * 1000))
                .build();

        List<AddEntitlementOverrideForSubscriptionParams.EntitlementOverridesParams> entitlementOverridesList =
            List.of(entitlementOverride0);

        AddEntitlementOverrideForSubscriptionParams params = AddEntitlementOverrideForSubscriptionParams.builder()
            .action(AddEntitlementOverrideForSubscriptionParams.Action.UPSERT)
            .entitlementOverrides(entitlementOverridesList)
            .build();

        AddEntitlementOverrideForSubscriptionResponse response = client
            .entitlementOverrides()
            .addEntitlementOverrideForSubscription("Jdf63vklssSDFdb", params);

    }
}
```

#### Node.js

```node
import Chargebee from "chargebee";

const chargebee = new Chargebee({
    site: "{site}",
    apiKey: "{site_api_key}",
});

try {
    const result = await chargebee.entitlementOverride.addEntitlementOverrideForSubscription("Jdf63vklssSDFdb", {
        entitlement_overrides: [
            {
                feature_id: "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
                value: true,
                expires_at: 1649243933
            }
        ],
        action: "upsert"
    });

    console.log(result);
    const list = result.list;
} catch (err) {
    console.log(err);
}
```

#### PHP

```php
<?php

require __DIR__ . '/vendor/autoload.php';

use Chargebee\ChargebeeClient;

$chargebee = new ChargebeeClient(options: [
    "site" => "{site}",
    "apiKey" => "{site_api_key}",
]);
$result = $chargebee->entitlementOverride()->addEntitlementOverrideForSubscription("Jdf63vklssSDFdb", [
    "entitlement_overrides" => [
        [
            "feature_id" => "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
            "value" => true,
            "expires_at" => 1649243933
        ]
    ],
    "action" => "upsert"
]);
$list = $result->list;
```

#### Python

```python
import chargebee
from chargebee import Chargebee

cb_client = Chargebee(api_key="{site_api_key}", site="{site}")
response = cb_client.EntitlementOverride.add_entitlement_override_for_subscription("Jdf63vklssSDFdb",
    cb_client.EntitlementOverride.AddEntitlementOverrideForSubscriptionParams(
        entitlement_overrides=[
            cb_client.EntitlementOverride.AddEntitlementOverrideForSubscriptionEntitlementOverrideParams(
              feature_id="fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
              value="true",
              expires_at=1649243933
            )
        ],
        action=chargebee.Action.UPSERT
    )
)
entries = response.list
```

#### Ruby

```ruby
require 'chargebee'

ChargeBee.configure(:site => "{site}",
  :api_key => "{site_api_key}")

result = ChargeBee::EntitlementOverride.add_entitlement_override_for_subscription("Jdf63vklssSDFdb",{
  :action => "UPSERT",
  :entitlement_overrides => [
    {
      :feature_id => "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
      :value => "true",
      :expires_at => 1649243933
    }
  ]
})

list = result.list
```

### Removing entitlement overrides from a subscription

#### cURL

```bash
curl  https://{site}.chargebee.com/api/v2/subscriptions/Jdf63vkLssSDFdb/entitlement_overrides \
     -X POST  \
     -u {site_api_key}:\
     -d action="REMOVE" \
     -d "entitlement_overrides[feature_id][0]"="fea-49bdaffa-1a71-429c-b2f7-5be5f89a37eb"
```

#### .NET

```dotnet
using ChargeBee.Api;
using ChargeBee.Models;
using ChargeBee.Models.Enums;

ApiConfig.Configure("{site}","{site_api_key}");
EntityResult result = EntitlementOverride.AddEntitlementOverrideForSubscription("Jdf63vkLssSDFdb")
		.Action(ActionEnum.Remove)
		.EntitlementOverrideFeatureId(0, "fea-49bdaffa-1a71-429c-b2f7-5be5f89a37eb")
		.Request();

EntitlementOverride entitlementOverride = result.EntitlementOverride;
```

#### Go

```go
package main
import (
    "fmt"
    "github.com/chargebee/chargebee-go/v3"
    entitlementoverrideAction "github.com/chargebee/chargebee-go/v3/actions/entitlementoverride"
    "github.com/chargebee/chargebee-go/v3/models/entitlementoverride"
    enum "github.com/chargebee/chargebee-go/v3/enum"
)
func main() {
    chargebee.Configure("{site_api_key}","{site}");
    res,err := entitlementoverrideAction.AddEntitlementOverrideForSubscription("Jdf63vkLssSDFdb", &entitlementoverride.AddEntitlementOverrideForSubscriptionRequestParams{
        EntitlementOverrides : []*entitlementoverride.AddEntitlementOverrideForSubscriptionEntitlementOverrideParams{
            {
                FeatureId : "fea-49bdaffa-1a71-429c-b2f7-5be5f89a37eb",
            },
        },
        Action : enum.ActionRemove,
    }).Request()
    if err != nil {
        fmt.Println(err)
    } else {
        List := res.List
    }
}
```

#### Go

```go
package main

import (
  "fmt"
  "github.com/chargebee/chargebee-go/v4"
)

func main() {
  config := &chargebee.ClientConfig{
    SiteName: "{site}",
    ApiKey: "{site_api_key}",
  }    
  client := chargebee.NewClient(config)
  req := &chargebee.EntitlementOverrideAddEntitlementOverrideForSubscriptionRequest{
    EntitlementOverrides : []*chargebee.EntitlementOverrideAddEntitlementOverrideForSubscriptionEntitlementOverride{
        {
            FeatureId : "fea-49bdaffa-1a71-429c-b2f7-5be5f89a37eb",
        },
    },
    Action : chargebee.ActionRemove,
}
  res, err := client.EntitlementOverride.AddEntitlementOverrideForSubscription("Jdf63vkLssSDFdb", req)
      if err != nil {
        fmt.Println(err)
    } else {
        List := res.List
    }
}
```

#### Java

```java
import com.chargebee.*;
import com.chargebee.ListResult;
import com.chargebee.models.*;
import com.chargebee.models.enums.*;
import java.io.IOException;
import java.util.List;

public class Sample {

    public static void main(String args[]) throws IOException, Exception {
        Environment.configure("{site}", "{site_api_key}");
        Result result = EntitlementOverride.addEntitlementOverrideForSubscription("Jdf63vkLssSDFdb")
            .action(Action.REMOVE)
            .entitlementOverrideFeatureId(0, "fea-49bdaffa-1a71-429c-b2f7-5be5f89a37eb")
            .request();

    }
}
```

#### Java

```java
import com.chargebee.v4.client.ChargebeeClient;
import com.chargebee.v4.models.entitlementOverride.params.AddEntitlementOverrideForSubscriptionParams;
import com.chargebee.v4.models.entitlementOverride.responses.AddEntitlementOverrideForSubscriptionResponse;
import java.util.List;

public class AddEntitlementOverrideForSubscription {

    public static void main(String[] args) {
        ChargebeeClient client = ChargebeeClient.builder()
            .apiKey("{site_api_key}")
            .siteName("{site}")
            .build();

        AddEntitlementOverrideForSubscriptionParams.EntitlementOverridesParams entitlementOverride0 =
            AddEntitlementOverrideForSubscriptionParams.EntitlementOverridesParams.builder()
                .featureId("fea-49bdaffa-1a71-429c-b2f7-5be5f89a37eb")
                .build();

        List<AddEntitlementOverrideForSubscriptionParams.EntitlementOverridesParams> entitlementOverridesList =
            List.of(entitlementOverride0);

        AddEntitlementOverrideForSubscriptionParams params = AddEntitlementOverrideForSubscriptionParams.builder()
            .action(AddEntitlementOverrideForSubscriptionParams.Action.REMOVE)
            .entitlementOverrides(entitlementOverridesList)
            .build();

        AddEntitlementOverrideForSubscriptionResponse response = client
            .entitlementOverrides()
            .addEntitlementOverrideForSubscription("Jdf63vkLssSDFdb", params);

    }
}
```

#### Node.js

```node
import Chargebee from "chargebee";

const chargebee = new Chargebee({
    site: "{site}",
    apiKey: "{site_api_key}",
});

try {
    const result = await chargebee.entitlementOverride.addEntitlementOverrideForSubscription("Jdf63vkLssSDFdb", {
        entitlement_overrides: [
            {
                feature_id: "fea-49bdaffa-1a71-429c-b2f7-5be5f89a37eb"
            }
        ],
        action: "remove"
    });

    console.log(result);
    const list = result.list;
} catch (err) {
    console.log(err);
}
```

#### PHP

```php
<?php

require __DIR__ . '/vendor/autoload.php';

use Chargebee\ChargebeeClient;

$chargebee = new ChargebeeClient(options: [
    "site" => "{site}",
    "apiKey" => "{site_api_key}",
]);
$result = $chargebee->entitlementOverride()->addEntitlementOverrideForSubscription("Jdf63vkLssSDFdb", [
    "entitlement_overrides" => [
        [
            "feature_id" => "fea-49bdaffa-1a71-429c-b2f7-5be5f89a37eb"
        ]
    ],
    "action" => "remove"
]);
$list = $result->list;
```

#### Python

```python
import chargebee
from chargebee import Chargebee

cb_client = Chargebee(api_key="{site_api_key}", site="{site}")
response = cb_client.EntitlementOverride.add_entitlement_override_for_subscription("Jdf63vkLssSDFdb",
    cb_client.EntitlementOverride.AddEntitlementOverrideForSubscriptionParams(
        entitlement_overrides=[
            cb_client.EntitlementOverride.AddEntitlementOverrideForSubscriptionEntitlementOverrideParams(
              feature_id="fea-49bdaffa-1a71-429c-b2f7-5be5f89a37eb"
            )
        ],
        action=chargebee.Action.REMOVE
    )
)
entries = response.list
```

#### Ruby

```ruby
require 'chargebee'

ChargeBee.configure(:site => "{site}",
  :api_key => "{site_api_key}")

result = ChargeBee::EntitlementOverride.add_entitlement_override_for_subscription("Jdf63vkLssSDFdb",{
  :action => "REMOVE",
  :entitlement_overrides => [
    {
      :feature_id => "fea-49bdaffa-1a71-429c-b2f7-5be5f89a37eb"
    }
  ]
})

list = result.list
```

## Sample Response

```json
{
  "list": [
    {
      "entitlement_override": {
        "entity_id": "Jdf63vklssSDFdb",
        "entity_type": "subscription",
        "feature_id": "fea-be1a9281-d8df-48ce-82e2-294667eb4d94",
        "feature_name": "Quickbooks Integration_123",
        "id": "override-1935f8d6-b791-4181-9fa2-65fd8bfbd7ae",
        "name": "Available",
        "object": "entitlement_override",
        "value": "true"
      }
    },
    {..}
  ]
}
```

## URL Format

**POST** https://[site].chargebee.com/api/v2/subscriptions/{subscription-id}/entitlement_overrides

## Input Parameters

- `action` (optional, enumerated string)
  The action to perform for each `entitlement_override` specified in the `entitlement_overrides` array.
  Possible enum values:
    - `upsert`
      If the `entitlement_override` for the `subscription_id`, `feature_id`, and `entity_id` combination already exists, the `value` of the `entitlement_override` is updated. If it doesn't exist, a new `entitlement_override` is created.
    - `remove`
      Deletes the `entitlement_override` for the `subscription_id`, `feature_id`, and `entity_id` combination, if it exists.

- `entitlement_overrides` (optional, array)
  Parameters for entitlement\_overrides.
  - `feature_id` (required, string, max chars=50)
    The `id` of the `feature` for which the entitlement override is being set.
  - `entity_id` (optional, string, max chars=100)
    The `id` of the entity at whose level the entitlement override is being set for the subscription. If the `entity_id` is not currently a part of the subscription, the `entitlement_override` takes effect as soon as the entity is added to the subscription.
  - `entity_type` (optional, enumerated string)
    The type of the entity at whose level the entitlement override is being set for the subscription.
    Possible enum values:
      - `plan_price`
        Indicates that the entity is an `item_price` with [`item_type`](/docs/api/item_prices/item-price-object#item_type) set to `plan`.
      - `addon_price`
        Indicates that the entity is an `item_price` with [`item_type`](/docs/api/item_prices/item-price-object#item_type) set to `addon`.
      - `charge`
        Indicates that the entity is an `item` with [`type`](/docs/api/items/item-object#type) set to `charge`.
  - `value` (optional, string, max chars=50)
    The level of entitlement that the item has towards the feature. The possible values depend on the value of `feature.type` :
    
    -   When `feature.type` is `quantity` and:
        
    -   If `feature.levels[is_unlimited]` is not `true` for any one of `feature.levels[]`, then the value can be any one of `feature.levels[value][]`.
        
    -   If `feature.levels[is_unlimited]` is `true` for one of the `feature.levels[]`, then the value can also be:
        
        -   any one of `feature.levels[value][]`
        -   or it can be `unlimited` (case-insensitive), indicating unlimited entitlement.
    -   When `type` is `range` and:
        
    -   If `feature.levels[is_unlimited]` is not `true` for any one of `feature.levels[]`, then the value can be any whole number between `levels[value][0]` and `levels[value][1]` (inclusive).
        
    -   If `feature.levels[is_unlimited]` is `true` for one of the `feature.levels[]`, then the value can be:
        
        -   any whole number equal to or greater than `levels[value][0]`
        -   or it can be `unlimited` (case-insensitive), indicating unlimited entitlement.
    -   When `type` is `custom`, then the value can be any one of `feature.levels[value][]`.
        
    -   When `type` is `switch`, then the value is set as `true` if the feature is available; it is set as `false` when the feature is unavailable.
  - `expires_at` (optional, timestamp(UTC) in seconds)
    The expiry date for the `entitlement_override`. The `entitlement_override` object is no longer returned after this date has passed.
    
    **Constraints**
    
    -   Applicable only for subscription-level entitlement overrides. i.e. Not applicable when `entity_id` and `entity_type` are set.
    -   The `action` must be `upsert`.
    -   Must be a value in the future.
  - `effective_from` (optional, timestamp(UTC) in seconds)
    The starting date and time for the entitlement override. It indicates when the override becomes effective.
    
    **Constraints**
    
    -   Applicable only for subscription-level entitlement overrides. i.e. Not applicable when `entity_id` and `entity_type` are set.
    -   The `action` must be `upsert`.
    -   Must be a value in the future.
  - `is_enabled` (optional, boolean)

## Returns

- `entitlement_override` (Entitlement override object)
  Resource object representing entitlement\_override
