# ContentKeyPolicyOption

### object
Represents a policy option.

**configuration**  
object  
**Required**  
The key delivery configuration.

### Variants  
Discriminated by `@odata.type`. Select one variant:

---

### Microsoft.Media.ContentKeyPolicyClearKeyConfiguration  
object  
[ContentKeyPolicyClearKeyConfiguration](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicyclearkeyconfiguration)  
Represents a configuration for non-DRM keys.

- **@odata.type**  
string  
**Required**  
The discriminator for derived types.

---

### Microsoft.Media.ContentKeyPolicyFairPlayConfiguration  
object  
[ContentKeyPolicyFairPlayConfiguration](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicyfairplayconfiguration)  
Specifies a configuration for FairPlay licenses.

- **@odata.type**  
string  
**Required**  
The discriminator for derived types.
- **ask**  
string or null  
**Required**  
**format:** byte  
The key that must be used as FairPlay Application Secret key. This needs to be base64 encoded.
- **fairPlayPfx**  
string or null  
**Required**  
The Base64 representation of FairPlay certificate in PKCS 12 (pfx) format (including private key).
- **fairPlayPfxPassword**  
string or null  
**Required**  
The password encrypting FairPlay certificate in PKCS 12 (pfx) format.
- **offlineRentalConfiguration**  
object  
[ContentKeyPolicyFairPlayOfflineRentalConfiguration](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicyfairplayofflinerentalconfiguration)  
**Optional**  
Offline rental policy
  
  - **playbackDurationSeconds**  
integer  
**Required**  
Playback duration
  - **storageDurationSeconds**  
integer  
**Required**  
Storage duration
  - **rentalAndLeaseKeyType**  
enum  
**Required**  
The rental and lease key type.  
**Allowed values:** Unknown, Undefined, DualExpiry, Persistent, Unlimited, PersistentLimited
  - **rentalDuration**  
integer  
**Required**  
The rental duration. Must be greater than or equal to 0.

---

### Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration  
object  
[ContentKeyPolicyPlayReadyConfiguration](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicyplayreadyconfiguration)  
Specifies a configuration for PlayReady licenses.

- **@odata.type**  
string  
**Required**  
The discriminator for derived types.
- **licenses**  
list of objects  
[ContentKeyPolicyPlayReadyLicense](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicyplayreadylicense)  
**Required**  
The PlayReady licenses.

---

#### Properties

- **allowTestDevices**  
boolean  
**Required**  
A flag indicating whether test devices can use the license.
- **beginDate**  
string  
**Optional**  
**format:** date-time  
The begin date of license  
- **contentKeyLocation**  
object  
**Required**  
The content key location.

##### Variants  
Discriminated by `@odata.type`. Select one variant:

---

##### Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader  
object  
[ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicyplayreadycontentencryptionkeyfromheader)  
Specifies that the content key ID is in the PlayReady header.

- **@odata.type**  
string  
**Required**  
The discriminator for derived types.

---

##### Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier  
object  
[ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicyplayreadycontentencryptionkeyfromkeyidentifier)  
Specifies that the content key ID is specified in the PlayReady configuration.

- **@odata.type**  
string  
**Required**  
The discriminator for derived types.

---

### Additional Sections

**keyId**  
string or null  
**Required**  
**format:** uuid  
The content key ID.
  
**contentType**  
enum  
**Required**  
The PlayReady content type.  
**Allowed values:** Unknown, Unspecified, UltraVioletDownload, UltraVioletStreaming

- **expirationDate**  
string  
**Optional**  
**format:** date-time  
The expiration date of license.
- **gracePeriod**  
string  
**Optional**  
**format:** duration  
The grace period of license.
- **licenseType**  
enum  
**Required**  
The license type.  
**Allowed values:** Unknown, NonPersistent, Persistent
- **playRight**  
object  
[ContentKeyPolicyPlayReadyPlayRight](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicyplayreadyplayright)  
**Optional**  
The license PlayRight

**Show properties**

There are multiple properties detailing the configurations of content keys, policy options, and licensing details.

---

### Microsoft.Media.ContentKeyPolicyUnknownConfiguration  
object  
[ContentKeyPolicyUnknownConfiguration](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicyunknownconfiguration)  
Represents a ContentKeyPolicyConfiguration that is unavailable in the current API version.

- **@odata.type**  
string  
**Required**  
The discriminator for derived types.

---

### Microsoft.Media.ContentKeyPolicyWidevineConfiguration  
object  
[ContentKeyPolicyWidevineConfiguration](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicywidevineconfiguration)  
Specifies a configuration for Widevine licenses.

- **@odata.type**  
string  
**Required**  
The discriminator for derived types.
- **widevineTemplate**  
string  
**Required**  
The Widevine template.
- **name**  
string  
**Optional**  
The Policy Option description.
- **policyOptionId**  
string  
**Optional**  
**format:** uuid  
The legacy Policy Option ID.
- **restriction**  
object  
**Required**  
The requirements that must be met to deliver keys with this configuration.

---

### Variants  
Discriminated by `@odata.type`. Select one variant:

---

#### Microsoft.Media.ContentKeyPolicyOpenRestriction  
object  
[ContentKeyPolicyOpenRestriction](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicyopenrestriction)  
Represents an open restriction. License or key will be delivered on every request.

- **@odata.type**  
string  
**Required**  
The discriminator for derived types.

---

#### Microsoft.Media.ContentKeyPolicyTokenRestriction  
object  
[ContentKeyPolicyTokenRestriction](https://docs.mediakind.com/api-reference/media-api/schemas/contentkeypolicytokenrestriction)  
Represents a token restriction. Provided token must match these requirements for successful license or key delivery.

- **@odata.type**  
string  
**Required**  
The discriminator for derived types.

---

### alternateVerificationKeys  
list of objects  
**Optional**  
A list of alternative verification keys.

---

### primaryVerificationKey  
object or null  
**Required**  
The primary verification key.
