{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "azure.local",
  "info": {
    "description": "This Swagger was generated by the API Framework.",
    "title": "Azure Media Services",
    "version": "2018-03-30-preview",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/mediaservices/resource-manager/Microsoft.Media/preview/2018-03-30-preview/ContentKeyPolicies.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "mediaservices-ContentKeyPolicies",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "Impersonate your user account"
      },
      "type": "oauth2"
    }
  },
  "parameters": {
    "ApiVersion": {
      "description": "The Version of the API to be used with the client request.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "MediaServicesAccountName": {
      "description": "The Media Services account name.",
      "in": "path",
      "name": "accountName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "ResourceGroupName": {
      "description": "The name of the resource group within the Azure subscription.",
      "in": "path",
      "name": "resourceGroupName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "SubscriptionId": {
      "description": "The unique identifier for a Microsoft Azure subscription.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/contentKeyPolicies": {
      "get": {
        "description": "Lists the Content Key Policies in the account",
        "operationId": "ContentKeyPolicies_List",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          },
          {
            "description": "Restricts the set of items returned.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string"
          },
          {
            "description": "Specifies a non-negative integer n that limits the number of items returned from a collection. The service returns the number of available items up to but not greater than the specified value n.",
            "in": "query",
            "name": "$top",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Specifies the key by which the result collection should be ordered.",
            "in": "query",
            "name": "$orderby",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ContentKeyPolicyCollection"
            }
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "description": "The API error.",
              "properties": {
                "error": {
                  "description": "Information about an error.",
                  "properties": {
                    "code": {
                      "description": "A language-independent error name.",
                      "type": "string"
                    },
                    "details": {
                      "description": "The error details.",
                      "items": {
                        "$ref": "#/definitions/ODataError"
                      },
                      "type": "array"
                    },
                    "message": {
                      "description": "The error message.",
                      "type": "string"
                    },
                    "target": {
                      "description": "The target of the error (for example, the name of the property in error).",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        },
        "summary": "List Content Key Policies",
        "x-ms-examples": {
          "Lists Content Key Policies ordered by last modified.": {
            "parameters": {
              "$orderby": "properties/lastModified",
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithPlayReadyOptionAndOpenRestriction",
                      "name": "PolicyWithPlayReadyOptionAndOpenRestriction",
                      "properties": {
                        "created": "2012-11-01T00:00:00Z",
                        "description": "A policy with one PlayReady option and Open Restriction.",
                        "lastModified": "2012-11-01T00:00:00Z",
                        "options": [
                          {
                            "configuration": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration",
                              "licenses": [
                                {
                                  "allowTestDevices": false,
                                  "beginDate": null,
                                  "contentKeyLocation": {
                                    "@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader"
                                  },
                                  "contentType": "Unspecified",
                                  "expirationDate": null,
                                  "gracePeriod": null,
                                  "licenseType": "NonPersistent",
                                  "playRight": {
                                    "agcAndColorStripeRestriction": null,
                                    "allowPassingVideoContentToUnknownOutput": "NotAllowed",
                                    "analogVideoOpl": null,
                                    "compressedDigitalAudioOpl": null,
                                    "compressedDigitalVideoOpl": null,
                                    "digitalVideoOnlyContentRestriction": false,
                                    "explicitAnalogTelevisionOutputRestriction": null,
                                    "firstPlayExpiration": null,
                                    "imageConstraintForAnalogComponentVideoRestriction": false,
                                    "imageConstraintForAnalogComputerMonitorRestriction": false,
                                    "scmsRestriction": null,
                                    "uncompressedDigitalAudioOpl": null,
                                    "uncompressedDigitalVideoOpl": null
                                  },
                                  "relativeBeginDate": null,
                                  "relativeExpirationDate": null
                                }
                              ],
                              "responseCustomData": "testCustomData"
                            },
                            "name": null,
                            "policyOptionId": "294a833f-f128-48be-9edf-8d1bb5b35ff3",
                            "restriction": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                            }
                          }
                        ],
                        "policyId": "a9bacd1d-60f5-4af3-8d2b-cf46ca5c9b04"
                      },
                      "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithMultipleOptions",
                      "name": "PolicyWithMultipleOptions",
                      "properties": {
                        "created": "2015-12-01T00:00:00Z",
                        "description": "A policy with multiple options.",
                        "lastModified": "2016-12-02T00:00:00Z",
                        "options": [
                          {
                            "configuration": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                            },
                            "name": null,
                            "policyOptionId": "caf1e28c-8288-4301-8c46-c0f9312c512f",
                            "restriction": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                              "alternateVerificationKeys": [],
                              "audience": "urn:test",
                              "issuer": "http://testacs",
                              "openIdConnectDiscoveryDocument": null,
                              "primaryVerificationKey": {
                                "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                                "keyValue": ""
                              },
                              "requiredClaims": [
                                {
                                  "claimType": "urn:microsoft:azure:mediaservices:contentkeyidentifier",
                                  "claimValue": null
                                },
                                {
                                  "claimType": "DRM",
                                  "claimValue": "Widevine"
                                }
                              ],
                              "restrictionTokenType": "Jwt"
                            }
                          },
                          {
                            "configuration": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
                              "widevineTemplate": "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}"
                            },
                            "name": null,
                            "policyOptionId": "da346259-0cd6-4609-89dc-15ac131bd92f",
                            "restriction": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                            }
                          }
                        ],
                        "policyId": "ed7f3d1b-cfa7-4181-b966-e0b3027eec3a"
                      },
                      "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithClearKeyOptionAndTokenRestriction",
                      "name": "PolicyWithClearKeyOptionAndTokenRestriction",
                      "properties": {
                        "created": "2017-12-01T00:00:00Z",
                        "description": "A policy with one ClearKey option and Open Restriction.",
                        "lastModified": "2017-11-01T00:00:00Z",
                        "options": [
                          {
                            "configuration": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                            },
                            "name": null,
                            "policyOptionId": "a3448d09-567a-4642-8309-d17e846be59f",
                            "restriction": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                              "alternateVerificationKeys": [],
                              "audience": "urn:test",
                              "issuer": "http://testacs",
                              "openIdConnectDiscoveryDocument": null,
                              "primaryVerificationKey": {
                                "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                                "keyValue": ""
                              },
                              "requiredClaims": [
                                {
                                  "claimType": "urn:microsoft:azure:mediaservices:contentkeyidentifier",
                                  "claimValue": null
                                },
                                {
                                  "claimType": "DRM",
                                  "claimValue": "Widevine"
                                }
                              ],
                              "restrictionTokenType": "Jwt"
                            }
                          }
                        ],
                        "policyId": "8352435b-ebea-4681-aae7-e19277771f64"
                      },
                      "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                    }
                  ]
                }
              }
            }
          },
          "Lists Content Key Policies with created and last modified filters.": {
            "parameters": {
              "$filter": "properties/lastModified gt 2016-06-01 and properties/created lt 2013-07-01",
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": []
                }
              }
            }
          },
          "Lists all Content Key Policies": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithClearKeyOptionAndTokenRestriction",
                      "name": "PolicyWithClearKeyOptionAndTokenRestriction",
                      "properties": {
                        "created": "2017-12-01T00:00:00Z",
                        "description": "A policy with one ClearKey option and Open Restriction.",
                        "lastModified": "2017-11-01T00:00:00Z",
                        "options": [
                          {
                            "configuration": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                            },
                            "name": null,
                            "policyOptionId": "a3448d09-567a-4642-8309-d17e846be59f",
                            "restriction": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                              "alternateVerificationKeys": [],
                              "audience": "urn:test",
                              "issuer": "http://testacs",
                              "openIdConnectDiscoveryDocument": null,
                              "primaryVerificationKey": {
                                "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                                "keyValue": ""
                              },
                              "requiredClaims": [
                                {
                                  "claimType": "urn:microsoft:azure:mediaservices:contentkeyidentifier",
                                  "claimValue": null
                                },
                                {
                                  "claimType": "DRM",
                                  "claimValue": "Widevine"
                                }
                              ],
                              "restrictionTokenType": "Jwt"
                            }
                          }
                        ],
                        "policyId": "8352435b-ebea-4681-aae7-e19277771f64"
                      },
                      "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithMultipleOptions",
                      "name": "PolicyWithMultipleOptions",
                      "properties": {
                        "created": "2015-12-01T00:00:00Z",
                        "description": "A policy with multiple options.",
                        "lastModified": "2016-12-02T00:00:00Z",
                        "options": [
                          {
                            "configuration": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                            },
                            "name": null,
                            "policyOptionId": "caf1e28c-8288-4301-8c46-c0f9312c512f",
                            "restriction": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                              "alternateVerificationKeys": [],
                              "audience": "urn:test",
                              "issuer": "http://testacs",
                              "openIdConnectDiscoveryDocument": null,
                              "primaryVerificationKey": {
                                "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                                "keyValue": ""
                              },
                              "requiredClaims": [
                                {
                                  "claimType": "urn:microsoft:azure:mediaservices:contentkeyidentifier",
                                  "claimValue": null
                                },
                                {
                                  "claimType": "DRM",
                                  "claimValue": "Widevine"
                                }
                              ],
                              "restrictionTokenType": "Jwt"
                            }
                          },
                          {
                            "configuration": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
                              "widevineTemplate": "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}"
                            },
                            "name": null,
                            "policyOptionId": "da346259-0cd6-4609-89dc-15ac131bd92f",
                            "restriction": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                            }
                          }
                        ],
                        "policyId": "ed7f3d1b-cfa7-4181-b966-e0b3027eec3a"
                      },
                      "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithPlayReadyOptionAndOpenRestriction",
                      "name": "PolicyWithPlayReadyOptionAndOpenRestriction",
                      "properties": {
                        "created": "2012-11-01T00:00:00Z",
                        "description": "A policy with one PlayReady option and Open Restriction.",
                        "lastModified": "2012-11-01T00:00:00Z",
                        "options": [
                          {
                            "configuration": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration",
                              "licenses": [
                                {
                                  "allowTestDevices": false,
                                  "beginDate": null,
                                  "contentKeyLocation": {
                                    "@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader"
                                  },
                                  "contentType": "Unspecified",
                                  "expirationDate": null,
                                  "gracePeriod": null,
                                  "licenseType": "NonPersistent",
                                  "playRight": {
                                    "agcAndColorStripeRestriction": null,
                                    "allowPassingVideoContentToUnknownOutput": "NotAllowed",
                                    "analogVideoOpl": null,
                                    "compressedDigitalAudioOpl": null,
                                    "compressedDigitalVideoOpl": null,
                                    "digitalVideoOnlyContentRestriction": false,
                                    "explicitAnalogTelevisionOutputRestriction": null,
                                    "firstPlayExpiration": null,
                                    "imageConstraintForAnalogComponentVideoRestriction": false,
                                    "imageConstraintForAnalogComputerMonitorRestriction": false,
                                    "scmsRestriction": null,
                                    "uncompressedDigitalAudioOpl": null,
                                    "uncompressedDigitalVideoOpl": null
                                  },
                                  "relativeBeginDate": null,
                                  "relativeExpirationDate": null
                                }
                              ],
                              "responseCustomData": "testCustomData"
                            },
                            "name": null,
                            "policyOptionId": "294a833f-f128-48be-9edf-8d1bb5b35ff3",
                            "restriction": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                            }
                          }
                        ],
                        "policyId": "a9bacd1d-60f5-4af3-8d2b-cf46ca5c9b04"
                      },
                      "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-odata": "#/definitions/ContentKeyPolicy",
        "x-ms-pageable": {
          "nextLinkName": "@odata.nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/contentKeyPolicies/{contentKeyPolicyName}": {
      "delete": {
        "description": "Deletes a Content Key Policy in the Media Services account",
        "operationId": "ContentKeyPolicies_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Content Key Policy name.",
            "in": "path",
            "name": "contentKeyPolicyName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "NoContent"
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "description": "The API error.",
              "properties": {
                "error": {
                  "description": "Information about an error.",
                  "properties": {
                    "code": {
                      "description": "A language-independent error name.",
                      "type": "string"
                    },
                    "details": {
                      "description": "The error details.",
                      "items": {
                        "$ref": "#/definitions/ODataError"
                      },
                      "type": "array"
                    },
                    "message": {
                      "description": "The error message.",
                      "type": "string"
                    },
                    "target": {
                      "description": "The target of the error (for example, the name of the property in error).",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        },
        "summary": "Delete a Content Key Policy",
        "x-ms-examples": {
          "Delete a Key Policy": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "contentKeyPolicyName": "PolicyWithPlayReadyOptionAndOpenRestriction",
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {},
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Get the details of a Content Key Policy in the Media Services account",
        "operationId": "ContentKeyPolicies_Get",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Content Key Policy name.",
            "in": "path",
            "name": "contentKeyPolicyName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ContentKeyPolicy"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "description": "The API error.",
              "properties": {
                "error": {
                  "description": "Information about an error.",
                  "properties": {
                    "code": {
                      "description": "A language-independent error name.",
                      "type": "string"
                    },
                    "details": {
                      "description": "The error details.",
                      "items": {
                        "$ref": "#/definitions/ODataError"
                      },
                      "type": "array"
                    },
                    "message": {
                      "description": "The error message.",
                      "type": "string"
                    },
                    "target": {
                      "description": "The target of the error (for example, the name of the property in error).",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        },
        "summary": "Get a Content Key Policy",
        "x-ms-examples": {
          "Get a Content Key Policy by name": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "contentKeyPolicyName": "PolicyWithMultipleOptions",
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithMultipleOptions",
                  "name": "PolicyWithMultipleOptions",
                  "properties": {
                    "created": "2015-12-01T00:00:00Z",
                    "description": "A policy with multiple options.",
                    "lastModified": "2016-12-02T00:00:00Z",
                    "options": [
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                        },
                        "name": null,
                        "policyOptionId": "caf1e28c-8288-4301-8c46-c0f9312c512f",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                          "alternateVerificationKeys": [],
                          "audience": "urn:test",
                          "issuer": "http://testacs",
                          "openIdConnectDiscoveryDocument": null,
                          "primaryVerificationKey": {
                            "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                            "keyValue": ""
                          },
                          "requiredClaims": [
                            {
                              "claimType": "urn:microsoft:azure:mediaservices:contentkeyidentifier",
                              "claimValue": null
                            },
                            {
                              "claimType": "DRM",
                              "claimValue": "Widevine"
                            }
                          ],
                          "restrictionTokenType": "Jwt"
                        }
                      },
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
                          "widevineTemplate": "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}"
                        },
                        "name": null,
                        "policyOptionId": "da346259-0cd6-4609-89dc-15ac131bd92f",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                        }
                      }
                    ],
                    "policyId": "ed7f3d1b-cfa7-4181-b966-e0b3027eec3a"
                  },
                  "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                }
              },
              "404": {}
            }
          }
        }
      },
      "patch": {
        "description": "Updates an existing Content Key Policy in the Media Services account",
        "operationId": "ContentKeyPolicies_Update",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Content Key Policy name.",
            "in": "path",
            "name": "contentKeyPolicyName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The request parameters",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ContentKeyPolicy"
            }
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ContentKeyPolicy"
            }
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "description": "The API error.",
              "properties": {
                "error": {
                  "description": "Information about an error.",
                  "properties": {
                    "code": {
                      "description": "A language-independent error name.",
                      "type": "string"
                    },
                    "details": {
                      "description": "The error details.",
                      "items": {
                        "$ref": "#/definitions/ODataError"
                      },
                      "type": "array"
                    },
                    "message": {
                      "description": "The error message.",
                      "type": "string"
                    },
                    "target": {
                      "description": "The target of the error (for example, the name of the property in error).",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        },
        "summary": "Update a Content Key Policy",
        "x-ms-examples": {
          "Update a Content Key Policy": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "contentKeyPolicyName": "PolicyWithClearKeyOptionAndTokenRestriction",
              "parameters": {
                "properties": {
                  "description": "Updated Policy",
                  "options": [
                    {
                      "configuration": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                      },
                      "name": "ClearKeyOption",
                      "restriction": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                      }
                    }
                  ]
                }
              },
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithClearKeyOptionAndTokenRestriction",
                  "name": "PolicyWithClearKeyOptionAndTokenRestriction",
                  "properties": {
                    "created": "2017-12-01T00:00:00Z",
                    "description": "Updated Policy",
                    "lastModified": "2018-03-07T18:49:21.33Z",
                    "options": [
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                        },
                        "name": "ClearKeyOption",
                        "policyOptionId": "50159d89-f0ce-4ec2-80e5-86ee54dba014",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                        }
                      }
                    ],
                    "policyId": "8352435b-ebea-4681-aae7-e19277771f64"
                  },
                  "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Create or update a Content Key Policy in the Media Services account",
        "operationId": "ContentKeyPolicies_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Content Key Policy name.",
            "in": "path",
            "name": "contentKeyPolicyName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The request parameters",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ContentKeyPolicy"
            }
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ContentKeyPolicy"
            }
          },
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/ContentKeyPolicy"
            }
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "description": "The API error.",
              "properties": {
                "error": {
                  "description": "Information about an error.",
                  "properties": {
                    "code": {
                      "description": "A language-independent error name.",
                      "type": "string"
                    },
                    "details": {
                      "description": "The error details.",
                      "items": {
                        "$ref": "#/definitions/ODataError"
                      },
                      "type": "array"
                    },
                    "message": {
                      "description": "The error message.",
                      "type": "string"
                    },
                    "target": {
                      "description": "The target of the error (for example, the name of the property in error).",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        },
        "summary": "Create or update an Content Key Policy",
        "x-ms-examples": {
          "Creates a Content Key Policy with ClearKey option and Token Restriction": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "contentKeyPolicyName": "PolicyWithClearKeyOptionAndSwtTokenRestriction",
              "parameters": {
                "properties": {
                  "description": "ArmPolicyDescription",
                  "options": [
                    {
                      "configuration": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                      },
                      "name": "ClearKeyOption",
                      "restriction": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                        "audience": "urn:audience",
                        "issuer": "urn:issuer",
                        "primaryVerificationKey": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                          "keyValue": "AAAAAAAAAAAAAAAAAAAAAA=="
                        },
                        "restrictionTokenType": "Swt"
                      }
                    }
                  ]
                }
              },
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithClearKeyOptionAndSwtTokenRestriction",
                  "name": "PolicyWithClearKeyOptionAndSwtTokenRestriction",
                  "properties": {
                    "created": "2018-03-07T18:49:21.103Z",
                    "description": "ArmPolicyDescription",
                    "lastModified": "2018-03-07T18:49:21.103Z",
                    "options": [
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                        },
                        "name": "ClearKeyOption",
                        "policyOptionId": "5fa6f216-bfdb-4e3f-9ea5-d8dcc023ed7f",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                          "alternateVerificationKeys": [],
                          "audience": "urn:audience",
                          "issuer": "urn:issuer",
                          "openIdConnectDiscoveryDocument": null,
                          "primaryVerificationKey": {
                            "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                            "keyValue": ""
                          },
                          "requiredClaims": [],
                          "restrictionTokenType": "Swt"
                        }
                      }
                    ],
                    "policyId": "cb77b46c-f120-4e28-ae45-11be48aea02c"
                  },
                  "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithClearKeyOptionAndSwtTokenRestriction",
                  "name": "PolicyWithClearKeyOptionAndSwtTokenRestriction",
                  "properties": {
                    "created": "2018-03-07T18:49:21.103Z",
                    "description": "ArmPolicyDescription",
                    "lastModified": "2018-03-07T18:49:21.103Z",
                    "options": [
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                        },
                        "name": "ClearKeyOption",
                        "policyOptionId": "5fa6f216-bfdb-4e3f-9ea5-d8dcc023ed7f",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                          "alternateVerificationKeys": [],
                          "audience": "urn:audience",
                          "issuer": "urn:issuer",
                          "openIdConnectDiscoveryDocument": null,
                          "primaryVerificationKey": {
                            "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                            "keyValue": ""
                          },
                          "requiredClaims": [],
                          "restrictionTokenType": "Swt"
                        }
                      }
                    ],
                    "policyId": "cb77b46c-f120-4e28-ae45-11be48aea02c"
                  },
                  "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                }
              }
            }
          },
          "Creates a Content Key Policy with PlayReady option and Open Restriction": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "contentKeyPolicyName": "PolicyWithPlayReadyOptionAndOpenRestriction",
              "parameters": {
                "properties": {
                  "description": "ArmPolicyDescription",
                  "options": [
                    {
                      "configuration": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration",
                        "licenses": [
                          {
                            "allowTestDevices": true,
                            "beginDate": "2017-10-16T18:22:53.46Z",
                            "contentKeyLocation": {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader"
                            },
                            "contentType": "UltraVioletDownload",
                            "licenseType": "Persistent",
                            "playRight": {
                              "allowPassingVideoContentToUnknownOutput": "NotAllowed",
                              "imageConstraintForAnalogComponentVideoRestriction": true,
                              "scmsRestriction": 2
                            }
                          }
                        ]
                      },
                      "name": "ArmPolicyOptionName",
                      "policyOptionId": "00000000-0000-0000-0000-000000000000",
                      "restriction": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                      }
                    }
                  ],
                  "policyId": "00000000-0000-0000-0000-000000000000"
                }
              },
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithPlayReadyOptionAndOpenRestriction",
                  "name": "PolicyWithPlayReadyOptionAndOpenRestriction",
                  "properties": {
                    "created": "2012-11-01T00:00:00Z",
                    "description": "ArmPolicyDescription",
                    "lastModified": "2018-03-07T18:49:20.94Z",
                    "options": [
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration",
                          "licenses": [
                            {
                              "allowTestDevices": true,
                              "beginDate": "2017-10-16T18:22:53.46Z",
                              "contentKeyLocation": {
                                "@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader"
                              },
                              "contentType": "UltraVioletDownload",
                              "expirationDate": null,
                              "gracePeriod": null,
                              "licenseType": "Persistent",
                              "playRight": {
                                "agcAndColorStripeRestriction": null,
                                "allowPassingVideoContentToUnknownOutput": "NotAllowed",
                                "analogVideoOpl": null,
                                "compressedDigitalAudioOpl": null,
                                "compressedDigitalVideoOpl": null,
                                "digitalVideoOnlyContentRestriction": false,
                                "explicitAnalogTelevisionOutputRestriction": null,
                                "firstPlayExpiration": null,
                                "imageConstraintForAnalogComponentVideoRestriction": true,
                                "imageConstraintForAnalogComputerMonitorRestriction": false,
                                "scmsRestriction": 2,
                                "uncompressedDigitalAudioOpl": null,
                                "uncompressedDigitalVideoOpl": null
                              },
                              "relativeBeginDate": null,
                              "relativeExpirationDate": null
                            }
                          ],
                          "responseCustomData": null
                        },
                        "name": "ArmPolicyOptionName",
                        "policyOptionId": "9f60df33-124b-4590-94c8-f00d92107187",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                        }
                      }
                    ],
                    "policyId": "a9bacd1d-60f5-4af3-8d2b-cf46ca5c9b04"
                  },
                  "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithPlayReadyOptionAndOpenRestriction",
                  "name": "PolicyWithPlayReadyOptionAndOpenRestriction",
                  "properties": {
                    "created": "2012-11-01T00:00:00Z",
                    "description": "ArmPolicyDescription",
                    "lastModified": "2018-03-07T18:49:20.94Z",
                    "options": [
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration",
                          "licenses": [
                            {
                              "allowTestDevices": true,
                              "beginDate": "2017-10-16T18:22:53.46Z",
                              "contentKeyLocation": {
                                "@odata.type": "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader"
                              },
                              "contentType": "UltraVioletDownload",
                              "expirationDate": null,
                              "gracePeriod": null,
                              "licenseType": "Persistent",
                              "playRight": {
                                "agcAndColorStripeRestriction": null,
                                "allowPassingVideoContentToUnknownOutput": "NotAllowed",
                                "analogVideoOpl": null,
                                "compressedDigitalAudioOpl": null,
                                "compressedDigitalVideoOpl": null,
                                "digitalVideoOnlyContentRestriction": false,
                                "explicitAnalogTelevisionOutputRestriction": null,
                                "firstPlayExpiration": null,
                                "imageConstraintForAnalogComponentVideoRestriction": true,
                                "imageConstraintForAnalogComputerMonitorRestriction": false,
                                "scmsRestriction": 2,
                                "uncompressedDigitalAudioOpl": null,
                                "uncompressedDigitalVideoOpl": null
                              },
                              "relativeBeginDate": null,
                              "relativeExpirationDate": null
                            }
                          ],
                          "responseCustomData": null
                        },
                        "name": "ArmPolicyOptionName",
                        "policyOptionId": "9f60df33-124b-4590-94c8-f00d92107187",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                        }
                      }
                    ],
                    "policyId": "a9bacd1d-60f5-4af3-8d2b-cf46ca5c9b04"
                  },
                  "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                }
              }
            }
          },
          "Creates a Content Key Policy with Widevine option and Token Restriction": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "contentKeyPolicyName": "PolicyWithWidevineOptionAndJwtTokenRestriction",
              "parameters": {
                "properties": {
                  "description": "ArmPolicyDescription",
                  "options": [
                    {
                      "configuration": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
                        "widevineTemplate": "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}"
                      },
                      "name": "widevineoption",
                      "restriction": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                        "alternateVerificationKeys": [
                          {
                            "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                            "keyValue": "AAAAAAAAAAAAAAAAAAAAAA=="
                          }
                        ],
                        "audience": "urn:audience",
                        "issuer": "urn:issuer",
                        "primaryVerificationKey": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyRsaTokenKey",
                          "exponent": "AQAB",
                          "modulus": "AQAD"
                        },
                        "restrictionTokenType": "Jwt"
                      }
                    }
                  ]
                }
              },
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithWidevineOptionAndJwtTokenRestriction",
                  "name": "PolicyWithWidevineOptionAndJwtTokenRestriction",
                  "properties": {
                    "created": "2018-03-07T18:49:21.007Z",
                    "description": "ArmPolicyDescription",
                    "lastModified": "2018-03-07T18:49:21.007Z",
                    "options": [
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
                          "widevineTemplate": "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}"
                        },
                        "name": "widevineoption",
                        "policyOptionId": "56af71e4-6e97-4588-a162-bad1f5b03074",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                          "alternateVerificationKeys": [
                            {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                              "keyValue": ""
                            }
                          ],
                          "audience": "urn:audience",
                          "issuer": "urn:issuer",
                          "openIdConnectDiscoveryDocument": null,
                          "primaryVerificationKey": {
                            "@odata.type": "#Microsoft.Media.ContentKeyPolicyRsaTokenKey",
                            "exponent": "",
                            "modulus": ""
                          },
                          "requiredClaims": [],
                          "restrictionTokenType": "Jwt"
                        }
                      }
                    ],
                    "policyId": "f5f2f742-e073-4a7a-8663-09ffdad9d2c0"
                  },
                  "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyWithWidevineOptionAndJwtTokenRestriction",
                  "name": "PolicyWithWidevineOptionAndJwtTokenRestriction",
                  "properties": {
                    "created": "2018-03-07T18:49:21.007Z",
                    "description": "ArmPolicyDescription",
                    "lastModified": "2018-03-07T18:49:21.007Z",
                    "options": [
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
                          "widevineTemplate": "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}"
                        },
                        "name": "widevineoption",
                        "policyOptionId": "56af71e4-6e97-4588-a162-bad1f5b03074",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                          "alternateVerificationKeys": [
                            {
                              "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                              "keyValue": ""
                            }
                          ],
                          "audience": "urn:audience",
                          "issuer": "urn:issuer",
                          "openIdConnectDiscoveryDocument": null,
                          "primaryVerificationKey": {
                            "@odata.type": "#Microsoft.Media.ContentKeyPolicyRsaTokenKey",
                            "exponent": "",
                            "modulus": ""
                          },
                          "requiredClaims": [],
                          "restrictionTokenType": "Jwt"
                        }
                      }
                    ],
                    "policyId": "f5f2f742-e073-4a7a-8663-09ffdad9d2c0"
                  },
                  "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                }
              }
            }
          },
          "Creates a Content Key Policy with multiple options": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "contentKeyPolicyName": "PolicyCreatedWithMultipleOptions",
              "parameters": {
                "properties": {
                  "description": "ArmPolicyDescription",
                  "options": [
                    {
                      "configuration": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                      },
                      "name": "ClearKeyOption",
                      "restriction": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                        "audience": "urn:audience",
                        "issuer": "urn:issuer",
                        "primaryVerificationKey": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                          "keyValue": "AAAAAAAAAAAAAAAAAAAAAA=="
                        },
                        "restrictionTokenType": "Swt"
                      }
                    },
                    {
                      "configuration": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
                        "widevineTemplate": "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}"
                      },
                      "name": "widevineoption",
                      "restriction": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                      }
                    }
                  ]
                }
              },
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyCreatedWithMultipleOptions",
                  "name": "PolicyCreatedWithMultipleOptions",
                  "properties": {
                    "created": "2018-03-07T18:49:21.16Z",
                    "description": "ArmPolicyDescription",
                    "lastModified": "2018-03-07T18:49:21.16Z",
                    "options": [
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                        },
                        "name": "ClearKeyOption",
                        "policyOptionId": "3f114e9c-4b81-48ac-a7c4-79bb2bc58224",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                          "alternateVerificationKeys": [],
                          "audience": "urn:audience",
                          "issuer": "urn:issuer",
                          "openIdConnectDiscoveryDocument": null,
                          "primaryVerificationKey": {
                            "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                            "keyValue": ""
                          },
                          "requiredClaims": [],
                          "restrictionTokenType": "Swt"
                        }
                      },
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
                          "widevineTemplate": "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}"
                        },
                        "name": "widevineoption",
                        "policyOptionId": "7fc39d0a-1a75-4109-acf8-3fa6a6cdb041",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                        }
                      }
                    ],
                    "policyId": "720ef07f-a2bd-4d02-89ca-e31177e9517e"
                  },
                  "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyCreatedWithMultipleOptions",
                  "name": "PolicyCreatedWithMultipleOptions",
                  "properties": {
                    "created": "2018-03-07T18:49:21.16Z",
                    "description": "ArmPolicyDescription",
                    "lastModified": "2018-03-07T18:49:21.16Z",
                    "options": [
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                        },
                        "name": "ClearKeyOption",
                        "policyOptionId": "3f114e9c-4b81-48ac-a7c4-79bb2bc58224",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                          "alternateVerificationKeys": [],
                          "audience": "urn:audience",
                          "issuer": "urn:issuer",
                          "openIdConnectDiscoveryDocument": null,
                          "primaryVerificationKey": {
                            "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                            "keyValue": ""
                          },
                          "requiredClaims": [],
                          "restrictionTokenType": "Swt"
                        }
                      },
                      {
                        "configuration": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
                          "widevineTemplate": "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}"
                        },
                        "name": "widevineoption",
                        "policyOptionId": "7fc39d0a-1a75-4109-acf8-3fa6a6cdb041",
                        "restriction": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                        }
                      }
                    ],
                    "policyId": "720ef07f-a2bd-4d02-89ca-e31177e9517e"
                  },
                  "type": "Microsoft.Media/mediaservices/contentKeyPolicies"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/contentKeyPolicies/{contentKeyPolicyName}/getPolicyPropertiesWithSecrets": {
      "post": {
        "description": "Get a Content Key Policy including secret values",
        "operationId": "ContentKeyPolicies_GetPolicyPropertiesWithSecrets",
        "parameters": [
          {
            "$ref": "#/parameters/SubscriptionId"
          },
          {
            "$ref": "#/parameters/ResourceGroupName"
          },
          {
            "$ref": "#/parameters/MediaServicesAccountName"
          },
          {
            "description": "The Content Key Policy name.",
            "in": "path",
            "name": "contentKeyPolicyName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersion"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/ContentKeyPolicyProperties"
            }
          },
          "404": {
            "description": "NotFound"
          },
          "default": {
            "description": "Detailed error information.",
            "schema": {
              "description": "The API error.",
              "properties": {
                "error": {
                  "description": "Information about an error.",
                  "properties": {
                    "code": {
                      "description": "A language-independent error name.",
                      "type": "string"
                    },
                    "details": {
                      "description": "The error details.",
                      "items": {
                        "$ref": "#/definitions/ODataError"
                      },
                      "type": "array"
                    },
                    "message": {
                      "description": "The error message.",
                      "type": "string"
                    },
                    "target": {
                      "description": "The target of the error (for example, the name of the property in error).",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        },
        "summary": "Get a Content Key Policy with secrets",
        "x-ms-examples": {
          "Get an Content Key Policy with secrets": {
            "parameters": {
              "accountName": "contosomedia",
              "api-version": "2018-03-30-preview",
              "contentKeyPolicyName": "PolicyWithMultipleOptions",
              "resourceGroupName": "contoso",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "created": "2015-12-01T00:00:00Z",
                  "description": "A policy with multiple options.",
                  "lastModified": "2016-12-02T00:00:00Z",
                  "options": [
                    {
                      "configuration": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
                      },
                      "name": null,
                      "policyOptionId": "caf1e28c-8288-4301-8c46-c0f9312c512f",
                      "restriction": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
                        "alternateVerificationKeys": [],
                        "audience": "urn:test",
                        "issuer": "http://testacs",
                        "openIdConnectDiscoveryDocument": null,
                        "primaryVerificationKey": {
                          "@odata.type": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
                          "keyValue": "AAA="
                        },
                        "requiredClaims": [
                          {
                            "claimType": "urn:microsoft:azure:mediaservices:contentkeyidentifier",
                            "claimValue": null
                          },
                          {
                            "claimType": "DRM",
                            "claimValue": "Widevine"
                          }
                        ],
                        "restrictionTokenType": "Jwt"
                      }
                    },
                    {
                      "configuration": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
                        "widevineTemplate": "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}"
                      },
                      "name": null,
                      "policyOptionId": "da346259-0cd6-4609-89dc-15ac131bd92f",
                      "restriction": {
                        "@odata.type": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
                      }
                    }
                  ],
                  "policyId": "ed7f3d1b-cfa7-4181-b966-e0b3027eec3a"
                }
              },
              "404": {}
            }
          }
        }
      }
    }
  },
  "definitions": {
    "ContentKeyPolicy": {
      "allOf": [
        {
          "allOf": [
            {
              "description": "The core properties of ARM resources.",
              "properties": {
                "id": {
                  "description": "Fully qualified resource ID for the resource.",
                  "readOnly": true,
                  "type": "string"
                },
                "name": {
                  "description": "The name of the resource.",
                  "readOnly": true,
                  "type": "string"
                },
                "type": {
                  "description": "The type of the resource.",
                  "readOnly": true,
                  "type": "string"
                }
              },
              "x-ms-azure-resource": true
            }
          ],
          "description": "The resource model definition for a ARM proxy resource."
        }
      ],
      "description": "A Content Key Policy resource.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ContentKeyPolicyProperties",
          "x-ms-client-flatten": true
        }
      },
      "type": "object"
    },
    "ContentKeyPolicyClearKeyConfiguration": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyConfiguration"
        }
      ],
      "description": "Represents a configuration for non-DRM keys.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration"
    },
    "ContentKeyPolicyCollection": {
      "description": "A collection of ContentKeyPolicy items.",
      "properties": {
        "@odata.nextLink": {
          "description": "A link to the next page of the collection (when the collection contains too many results to return in one response).",
          "type": "string"
        },
        "value": {
          "description": "A collection of ContentKeyPolicy items.",
          "items": {
            "$ref": "#/definitions/ContentKeyPolicy"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ContentKeyPolicyConfiguration": {
      "description": "Base class for Content Key Policy configuration. A derived class must be used to create a configuration.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "ContentKeyPolicyFairPlayConfiguration": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyConfiguration"
        }
      ],
      "description": "Specifies a configuration for FairPlay licenses.",
      "properties": {
        "ask": {
          "description": "The key that must be used as FairPlay ASk.",
          "format": "byte",
          "type": "string"
        },
        "fairPlayPfx": {
          "description": "The Base64 representation of FairPlay certificate in PKCS 12 (pfx) format (including private key).",
          "type": "string"
        },
        "fairPlayPfxPassword": {
          "description": "The password encrypting FairPlay certificate in PKCS 12 (pfx) format.",
          "type": "string"
        },
        "rentalAndLeaseKeyType": {
          "description": "The rental and lease key type.",
          "enum": [
            "Unknown",
            "Undefined",
            "PersistentUnlimited",
            "PersistentLimited"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "ContentKeyPolicyFairPlayRentalAndLeaseKeyType",
            "values": [
              {
                "description": "Represents a ContentKeyPolicyFairPlayRentalAndLeaseKeyType that is unavailable in current API version.",
                "value": "Unknown"
              },
              {
                "description": "Key duration is not specified.",
                "value": "Undefined"
              },
              {
                "description": "Content key can be persisted with an unlimited duration",
                "value": "PersistentUnlimited"
              },
              {
                "description": "Content key can be persisted and the valid duration is limited by the Rental Duration value",
                "value": "PersistentLimited"
              }
            ]
          }
        },
        "rentalDuration": {
          "description": "The rental duration. Must be greater than or equal to 0.",
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "ask",
        "fairPlayPfxPassword",
        "fairPlayPfx",
        "rentalAndLeaseKeyType",
        "rentalDuration"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyFairPlayConfiguration"
    },
    "ContentKeyPolicyOpenRestriction": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyRestriction"
        }
      ],
      "description": "Represents an open restriction. License or key will be delivered on every request.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyOpenRestriction"
    },
    "ContentKeyPolicyOption": {
      "description": "Represents a policy option.",
      "properties": {
        "configuration": {
          "$ref": "#/definitions/ContentKeyPolicyConfiguration",
          "description": "The key delivery configuration."
        },
        "name": {
          "description": "The Policy Option description.",
          "type": "string"
        },
        "policyOptionId": {
          "description": "The legacy Policy Option ID.",
          "format": "uuid",
          "readOnly": true,
          "type": "string",
          "x-nullable": false
        },
        "restriction": {
          "$ref": "#/definitions/ContentKeyPolicyRestriction",
          "description": "The requirements that must be met to deliver keys with this configuration"
        }
      },
      "required": [
        "configuration",
        "restriction"
      ],
      "type": "object"
    },
    "ContentKeyPolicyPlayReadyConfiguration": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyConfiguration"
        }
      ],
      "description": "Specifies a configuration for PlayReady licenses.",
      "properties": {
        "licenses": {
          "description": "The PlayReady licenses.",
          "items": {
            "$ref": "#/definitions/ContentKeyPolicyPlayReadyLicense"
          },
          "type": "array"
        },
        "responseCustomData": {
          "description": "The custom response data.",
          "type": "string"
        }
      },
      "required": [
        "licenses"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration"
    },
    "ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyPlayReadyContentKeyLocation"
        }
      ],
      "description": "Specifies that the content key ID is in the PlayReady header.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader"
    },
    "ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyPlayReadyContentKeyLocation"
        }
      ],
      "description": "Specifies that the content key ID is specified in the PlayReady configuration.",
      "properties": {
        "keyId": {
          "description": "The content key ID.",
          "format": "uuid",
          "type": "string"
        }
      },
      "required": [
        "keyId"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromKeyIdentifier"
    },
    "ContentKeyPolicyPlayReadyContentKeyLocation": {
      "description": "Base class for content key ID location. A derived class must be used to represent the location.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "ContentKeyPolicyPlayReadyExplicitAnalogTelevisionRestriction": {
      "description": "Configures the Explicit Analog Television Output Restriction control bits. For further details see the PlayReady Compliance Rules.",
      "properties": {
        "bestEffort": {
          "description": "Indicates whether this restriction is enforced on a Best Effort basis.",
          "type": "boolean"
        },
        "configurationData": {
          "description": "Configures the restriction control bits. Must be between 0 and 3 inclusive.",
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "bestEffort",
        "configurationData"
      ],
      "type": "object"
    },
    "ContentKeyPolicyPlayReadyLicense": {
      "description": "The PlayReady license",
      "properties": {
        "allowTestDevices": {
          "description": "A flag indicating whether test devices can use the license.",
          "type": "boolean"
        },
        "beginDate": {
          "description": "The begin date of license",
          "format": "date-time",
          "type": "string"
        },
        "contentKeyLocation": {
          "$ref": "#/definitions/ContentKeyPolicyPlayReadyContentKeyLocation",
          "description": "The content key location."
        },
        "contentType": {
          "description": "The PlayReady content type.",
          "enum": [
            "Unknown",
            "Unspecified",
            "UltraVioletDownload",
            "UltraVioletStreaming"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "ContentKeyPolicyPlayReadyContentType",
            "values": [
              {
                "description": "Represents a ContentKeyPolicyPlayReadyContentType that is unavailable in current API version.",
                "value": "Unknown"
              },
              {
                "description": "Unspecified content type.",
                "value": "Unspecified"
              },
              {
                "description": "Ultraviolet download content type.",
                "value": "UltraVioletDownload"
              },
              {
                "description": "Ultraviolet streaming content type.",
                "value": "UltraVioletStreaming"
              }
            ]
          }
        },
        "expirationDate": {
          "description": "The expiration date of license.",
          "format": "date-time",
          "type": "string"
        },
        "gracePeriod": {
          "description": "The grace period of license.",
          "format": "duration",
          "type": "string"
        },
        "licenseType": {
          "description": "The license type.",
          "enum": [
            "Unknown",
            "NonPersistent",
            "Persistent"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "ContentKeyPolicyPlayReadyLicenseType",
            "values": [
              {
                "description": "Represents a ContentKeyPolicyPlayReadyLicenseType that is unavailable in current API version.",
                "value": "Unknown"
              },
              {
                "description": "Non persistent license.",
                "value": "NonPersistent"
              },
              {
                "description": "Persistent license. Allows offline playback.",
                "value": "Persistent"
              }
            ]
          }
        },
        "playRight": {
          "$ref": "#/definitions/ContentKeyPolicyPlayReadyPlayRight",
          "description": "The license PlayRight"
        },
        "relativeBeginDate": {
          "description": "The relative begin date of license.",
          "format": "duration",
          "type": "string"
        },
        "relativeExpirationDate": {
          "description": "The relative expiration date of license.",
          "format": "duration",
          "type": "string"
        }
      },
      "required": [
        "allowTestDevices",
        "licenseType",
        "contentKeyLocation",
        "contentType"
      ],
      "type": "object"
    },
    "ContentKeyPolicyPlayReadyPlayRight": {
      "description": "Configures the Play Right in the PlayReady license.",
      "properties": {
        "agcAndColorStripeRestriction": {
          "description": "Configures Automatic Gain Control (AGC) and Color Stripe in the license. Must be between 0 and 3 inclusive.",
          "format": "int32",
          "type": "integer"
        },
        "allowPassingVideoContentToUnknownOutput": {
          "description": "Configures Unknown output handling settings of the license.",
          "enum": [
            "Unknown",
            "NotAllowed",
            "Allowed",
            "AllowedWithVideoConstriction"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "ContentKeyPolicyPlayReadyUnknownOutputPassingOption",
            "values": [
              {
                "description": "Represents a ContentKeyPolicyPlayReadyUnknownOutputPassingOption that is unavailable in current API version.",
                "value": "Unknown"
              },
              {
                "description": "Passing the video portion of protected content to an Unknown Output is not allowed.",
                "value": "NotAllowed"
              },
              {
                "description": "Passing the video portion of protected content to an Unknown Output is allowed.",
                "value": "Allowed"
              },
              {
                "description": "Passing the video portion of protected content to an Unknown Output is allowed but with constrained resolution.",
                "value": "AllowedWithVideoConstriction"
              }
            ]
          }
        },
        "analogVideoOpl": {
          "description": "Specifies the output protection level for compressed digital audio.",
          "format": "int32",
          "type": "integer"
        },
        "compressedDigitalAudioOpl": {
          "description": "Specifies the output protection level for compressed digital audio.",
          "format": "int32",
          "type": "integer"
        },
        "compressedDigitalVideoOpl": {
          "description": "Specifies the output protection level for compressed digital video.",
          "format": "int32",
          "type": "integer"
        },
        "digitalVideoOnlyContentRestriction": {
          "description": "Enables the Image Constraint For Analog Component Video Restriction in the license.",
          "type": "boolean"
        },
        "explicitAnalogTelevisionOutputRestriction": {
          "$ref": "#/definitions/ContentKeyPolicyPlayReadyExplicitAnalogTelevisionRestriction",
          "description": "Configures the Explicit Analog Television Output Restriction in the license. Configuration data must be between 0 and 3 inclusive."
        },
        "firstPlayExpiration": {
          "description": "The amount of time that the license is valid after the license is first used to play content.",
          "format": "duration",
          "type": "string"
        },
        "imageConstraintForAnalogComponentVideoRestriction": {
          "description": "Enables the Image Constraint For Analog Component Video Restriction in the license.",
          "type": "boolean"
        },
        "imageConstraintForAnalogComputerMonitorRestriction": {
          "description": "Enables the Image Constraint For Analog Component Video Restriction in the license.",
          "type": "boolean"
        },
        "scmsRestriction": {
          "description": "Configures the Serial Copy Management System (SCMS) in the license. Must be between 0 and 3 inclusive.",
          "format": "int32",
          "type": "integer"
        },
        "uncompressedDigitalAudioOpl": {
          "description": "Specifies the output protection level for uncompressed digital audio.",
          "format": "int32",
          "type": "integer"
        },
        "uncompressedDigitalVideoOpl": {
          "description": "Specifies the output protection level for uncompressed digital video.",
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "digitalVideoOnlyContentRestriction",
        "imageConstraintForAnalogComponentVideoRestriction",
        "imageConstraintForAnalogComputerMonitorRestriction",
        "allowPassingVideoContentToUnknownOutput"
      ],
      "type": "object"
    },
    "ContentKeyPolicyProperties": {
      "description": "The properties of the Content Key Policy.",
      "properties": {
        "created": {
          "description": "The creation date of the Policy",
          "format": "date-time",
          "readOnly": true,
          "type": "string",
          "x-nullable": false
        },
        "description": {
          "description": "A description for the Policy.",
          "type": "string"
        },
        "lastModified": {
          "description": "The last modified date of the Policy",
          "format": "date-time",
          "readOnly": true,
          "type": "string",
          "x-nullable": false
        },
        "options": {
          "description": "The Key Policy options.",
          "items": {
            "$ref": "#/definitions/ContentKeyPolicyOption"
          },
          "type": "array"
        },
        "policyId": {
          "description": "The legacy Policy ID.",
          "format": "uuid",
          "readOnly": true,
          "type": "string",
          "x-nullable": false
        }
      },
      "required": [
        "options"
      ],
      "type": "object"
    },
    "ContentKeyPolicyRestriction": {
      "description": "Base class for Content Key Policy restrictions. A derived class must be used to create a restriction.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "ContentKeyPolicyRestrictionTokenKey": {
      "description": "Base class for Content Key Policy key for token validation. A derived class must be used to create a token key.",
      "discriminator": "@odata.type",
      "properties": {
        "@odata.type": {
          "description": "The discriminator for derived types.",
          "type": "string"
        }
      },
      "required": [
        "@odata.type"
      ],
      "type": "object"
    },
    "ContentKeyPolicyRsaTokenKey": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyRestrictionTokenKey"
        }
      ],
      "description": "Specifies a RSA key for token validation",
      "properties": {
        "exponent": {
          "description": "The RSA Parameter exponent",
          "format": "byte",
          "type": "string"
        },
        "modulus": {
          "description": "The RSA Parameter modulus",
          "format": "byte",
          "type": "string"
        }
      },
      "required": [
        "exponent",
        "modulus"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyRsaTokenKey"
    },
    "ContentKeyPolicySymmetricTokenKey": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyRestrictionTokenKey"
        }
      ],
      "description": "Specifies a symmetric key for token validation.",
      "properties": {
        "keyValue": {
          "description": "The key value of the key",
          "format": "byte",
          "type": "string"
        }
      },
      "required": [
        "keyValue"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey"
    },
    "ContentKeyPolicyTokenClaim": {
      "description": "Represents a token claim.",
      "properties": {
        "claimType": {
          "description": "Token claim type.",
          "type": "string"
        },
        "claimValue": {
          "description": "Token claim value.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ContentKeyPolicyTokenRestriction": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyRestriction"
        }
      ],
      "description": "Represents a token restriction. Provided token must match these requirements for successful license or key delivery.",
      "properties": {
        "alternateVerificationKeys": {
          "description": "A list of alternative verification keys.",
          "items": {
            "$ref": "#/definitions/ContentKeyPolicyRestrictionTokenKey"
          },
          "type": "array"
        },
        "audience": {
          "description": "The audience for the token.",
          "type": "string"
        },
        "issuer": {
          "description": "The token issuer.",
          "type": "string"
        },
        "openIdConnectDiscoveryDocument": {
          "description": "The OpenID connect discovery document.",
          "type": "string"
        },
        "primaryVerificationKey": {
          "$ref": "#/definitions/ContentKeyPolicyRestrictionTokenKey",
          "description": "The primary verification key."
        },
        "requiredClaims": {
          "description": "A list of required token claims.",
          "items": {
            "$ref": "#/definitions/ContentKeyPolicyTokenClaim"
          },
          "type": "array"
        },
        "restrictionTokenType": {
          "description": "The type of token.",
          "enum": [
            "Unknown",
            "Swt",
            "Jwt"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsExtensible": true,
            "name": "ContentKeyPolicyRestrictionTokenType",
            "values": [
              {
                "description": "Represents a ContentKeyPolicyRestrictionTokenType that is unavailable in current API version.",
                "value": "Unknown"
              },
              {
                "description": "Simple Web Token.",
                "value": "Swt"
              },
              {
                "description": "JSON Web Token.",
                "value": "Jwt"
              }
            ]
          }
        }
      },
      "required": [
        "issuer",
        "audience",
        "primaryVerificationKey",
        "restrictionTokenType"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyTokenRestriction"
    },
    "ContentKeyPolicyUnknownConfiguration": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyConfiguration"
        }
      ],
      "description": "Represents a ContentKeyPolicyConfiguration that is unavailable in the current API version.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyUnknownConfiguration"
    },
    "ContentKeyPolicyUnknownRestriction": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyRestriction"
        }
      ],
      "description": "Represents a ContentKeyPolicyRestriction that is unavailable in the current API version.",
      "properties": {},
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyUnknownRestriction"
    },
    "ContentKeyPolicyWidevineConfiguration": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyConfiguration"
        }
      ],
      "description": "Specifies a configuration for Widevine licenses.",
      "properties": {
        "widevineTemplate": {
          "description": "The Widevine template.",
          "type": "string"
        }
      },
      "required": [
        "widevineTemplate"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration"
    },
    "ContentKeyPolicyX509CertificateTokenKey": {
      "allOf": [
        {
          "$ref": "#/definitions/ContentKeyPolicyRestrictionTokenKey"
        }
      ],
      "description": "Specifies a certificate for token validation.",
      "properties": {
        "rawBody": {
          "description": "The raw data field of a certificate in PKCS 12 format (X509Certificate2 in .NET)",
          "format": "byte",
          "type": "string"
        }
      },
      "required": [
        "rawBody"
      ],
      "type": "object",
      "x-ms-discriminator-value": "#Microsoft.Media.ContentKeyPolicyX509CertificateTokenKey"
    },
    "ODataError": {}
  }
}