/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the mediaconvert-2017-08-29.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.MediaConvert.Model
{
///
/// Settings for CMAF encryption
///
public partial class CmafEncryptionSettings
{
private string _constantInitializationVector;
private CmafEncryptionType _encryptionMethod;
private CmafInitializationVectorInManifest _initializationVectorInManifest;
private SpekeKeyProviderCmaf _spekeKeyProvider;
private StaticKeyProvider _staticKeyProvider;
private CmafKeyProviderType _type;
///
/// Gets and sets the property ConstantInitializationVector. This is a 128-bit, 16-byte
/// hex value represented by a 32-character text string. If this parameter is not set
/// then the Initialization Vector will follow the segment number by default.
///
[AWSProperty(Min=32, Max=32)]
public string ConstantInitializationVector
{
get { return this._constantInitializationVector; }
set { this._constantInitializationVector = value; }
}
// Check to see if ConstantInitializationVector property is set
internal bool IsSetConstantInitializationVector()
{
return this._constantInitializationVector != null;
}
///
/// Gets and sets the property EncryptionMethod. Specify the encryption scheme that you
/// want the service to use when encrypting your CMAF segments. Choose AES-CBC subsample
/// or AES_CTR.
///
public CmafEncryptionType EncryptionMethod
{
get { return this._encryptionMethod; }
set { this._encryptionMethod = value; }
}
// Check to see if EncryptionMethod property is set
internal bool IsSetEncryptionMethod()
{
return this._encryptionMethod != null;
}
///
/// Gets and sets the property InitializationVectorInManifest. When you use DRM with CMAF
/// outputs, choose whether the service writes the 128-bit encryption initialization vector
/// in the HLS and DASH manifests.
///
public CmafInitializationVectorInManifest InitializationVectorInManifest
{
get { return this._initializationVectorInManifest; }
set { this._initializationVectorInManifest = value; }
}
// Check to see if InitializationVectorInManifest property is set
internal bool IsSetInitializationVectorInManifest()
{
return this._initializationVectorInManifest != null;
}
///
/// Gets and sets the property SpekeKeyProvider. If your output group type is CMAF, use
/// these settings when doing DRM encryption with a SPEKE-compliant key provider. If your
/// output group type is HLS, DASH, or Microsoft Smooth, use the SpekeKeyProvider settings
/// instead.
///
public SpekeKeyProviderCmaf SpekeKeyProvider
{
get { return this._spekeKeyProvider; }
set { this._spekeKeyProvider = value; }
}
// Check to see if SpekeKeyProvider property is set
internal bool IsSetSpekeKeyProvider()
{
return this._spekeKeyProvider != null;
}
///
/// Gets and sets the property StaticKeyProvider. Use these settings to set up encryption
/// with a static key provider.
///
public StaticKeyProvider StaticKeyProvider
{
get { return this._staticKeyProvider; }
set { this._staticKeyProvider = value; }
}
// Check to see if StaticKeyProvider property is set
internal bool IsSetStaticKeyProvider()
{
return this._staticKeyProvider != null;
}
///
/// Gets and sets the property Type. Specify whether your DRM encryption key is static
/// or from a key provider that follows the SPEKE standard. For more information about
/// SPEKE, see https://docs.aws.amazon.com/speke/latest/documentation/what-is-speke.html.
///
public CmafKeyProviderType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}