Skip to content

Add CMAF DRM Endpoints #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.cmaf_api import CmafApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.customdata.customdata_api import CustomdataApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.drm_api import DrmApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.cmaf_muxing_list_query_params import CmafMuxingListQueryParams
9 changes: 9 additions & 0 deletions bitmovin_api_sdk/encoding/encodings/muxings/cmaf/cmaf_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from bitmovin_api_sdk.models.response_envelope import ResponseEnvelope
from bitmovin_api_sdk.models.response_error import ResponseError
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.customdata.customdata_api import CustomdataApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.drm_api import DrmApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.cmaf_muxing_list_query_params import CmafMuxingListQueryParams


Expand All @@ -31,6 +32,14 @@ def __init__(self, api_key, tenant_org_id=None, base_url=None, logger=None):
logger=logger
)

self.drm = DrmApi(
api_key=api_key,
tenant_org_id=tenant_org_id,
base_url=base_url,
logger=logger
)


def create(self, encoding_id, cmaf_muxing, **kwargs):
# type: (string_types, CmafMuxing, dict) -> CmafMuxing
"""Add CMAF muxing
Expand Down
10 changes: 10 additions & 0 deletions bitmovin_api_sdk/encoding/encodings/muxings/cmaf/drm/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.drm_api import DrmApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.widevine.widevine_api import WidevineApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.playready.playready_api import PlayreadyApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.primetime.primetime_api import PrimetimeApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.fairplay.fairplay_api import FairplayApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.marlin.marlin_api import MarlinApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.clearkey.clearkey_api import ClearkeyApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.cenc.cenc_api import CencApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.aes.aes_api import AesApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.speke.speke_api import SpekeApi
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.aes.aes_api import AesApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.aes.customdata.customdata_api import CustomdataApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.aes.aes_encryption_drm_list_query_params import AesEncryptionDrmListQueryParams
119 changes: 119 additions & 0 deletions bitmovin_api_sdk/encoding/encodings/muxings/cmaf/drm/aes/aes_api.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# coding: utf-8

from __future__ import absolute_import

from bitmovin_api_sdk.common import BaseApi, BitmovinApiLoggerBase
from bitmovin_api_sdk.common.poscheck import poscheck_except
from bitmovin_api_sdk.models.aes_encryption_drm import AesEncryptionDrm
from bitmovin_api_sdk.models.bitmovin_response import BitmovinResponse
from bitmovin_api_sdk.models.response_envelope import ResponseEnvelope
from bitmovin_api_sdk.models.response_error import ResponseError
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.aes.customdata.customdata_api import CustomdataApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.aes.aes_encryption_drm_list_query_params import AesEncryptionDrmListQueryParams


class AesApi(BaseApi):
@poscheck_except(2)
def __init__(self, api_key, tenant_org_id=None, base_url=None, logger=None):
# type: (str, str, str, BitmovinApiLoggerBase) -> None

super(AesApi, self).__init__(
api_key=api_key,
tenant_org_id=tenant_org_id,
base_url=base_url,
logger=logger
)

self.customdata = CustomdataApi(
api_key=api_key,
tenant_org_id=tenant_org_id,
base_url=base_url,
logger=logger
)

def create(self, encoding_id, muxing_id, aes_encryption_drm, **kwargs):
# type: (string_types, string_types, AesEncryptionDrm, dict) -> AesEncryptionDrm
"""Add AES encryption configuration to CMAF

:param encoding_id: Id of the encoding.
:type encoding_id: string_types, required
:param muxing_id: Id of the CMAF muxing.
:type muxing_id: string_types, required
:param aes_encryption_drm: The AES encryption configuration to be created
:type aes_encryption_drm: AesEncryptionDrm, required
:return: AESEncryption details
:rtype: AesEncryptionDrm
"""

return self.api_client.post(
'/encoding/encodings/{encoding_id}/muxings/cmaf/{muxing_id}/drm/aes',
aes_encryption_drm,
path_params={'encoding_id': encoding_id, 'muxing_id': muxing_id},
type=AesEncryptionDrm,
**kwargs
)

def delete(self, encoding_id, muxing_id, drm_id, **kwargs):
# type: (string_types, string_types, string_types, dict) -> BitmovinResponse
"""Delete AES encryption configuration from an CMAF muxing

:param encoding_id: Id of the encoding.
:type encoding_id: string_types, required
:param muxing_id: Id of the CMAF muxing.
:type muxing_id: string_types, required
:param drm_id: Id of the AES encryption configuration.
:type drm_id: string_types, required
:return: Id of the AES encryption configuration.
:rtype: BitmovinResponse
"""

return self.api_client.delete(
'/encoding/encodings/{encoding_id}/muxings/cmaf/{muxing_id}/drm/aes/{drm_id}',
path_params={'encoding_id': encoding_id, 'muxing_id': muxing_id, 'drm_id': drm_id},
type=BitmovinResponse,
**kwargs
)

def get(self, encoding_id, muxing_id, drm_id, **kwargs):
# type: (string_types, string_types, string_types, dict) -> AesEncryptionDrm
"""AES encryption Details of an CMAF muxing

:param encoding_id: Id of the encoding.
:type encoding_id: string_types, required
:param muxing_id: Id of the CMAF muxing.
:type muxing_id: string_types, required
:param drm_id: Id of the AES encryption configuration.
:type drm_id: string_types, required
:return: AESEncryption details
:rtype: AesEncryptionDrm
"""

return self.api_client.get(
'/encoding/encodings/{encoding_id}/muxings/cmaf/{muxing_id}/drm/aes/{drm_id}',
path_params={'encoding_id': encoding_id, 'muxing_id': muxing_id, 'drm_id': drm_id},
type=AesEncryptionDrm,
**kwargs
)

def list(self, encoding_id, muxing_id, query_params=None, **kwargs):
# type: (string_types, string_types, AesEncryptionDrmListQueryParams, dict) -> AesEncryptionDrm
"""List AES encryption configurations of an CMAF muxing

:param encoding_id: Id of the encoding.
:type encoding_id: string_types, required
:param muxing_id: Id of the CMAF muxing.
:type muxing_id: string_types, required
:param query_params: Query parameters
:type query_params: AesEncryptionDrmListQueryParams
:return: List of AES encryption configurations
:rtype: AesEncryptionDrm
"""

return self.api_client.get(
'/encoding/encodings/{encoding_id}/muxings/cmaf/{muxing_id}/drm/aes',
path_params={'encoding_id': encoding_id, 'muxing_id': muxing_id},
query_params=query_params,
pagination_response=True,
type=AesEncryptionDrm,
**kwargs
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
class AesEncryptionDrmListQueryParams(object):
def __init__(self, offset=None, limit=None):
# type: (int, int) -> None
super(AesEncryptionDrmListQueryParams, self).__init__()

self.offset = offset
self.limit = limit

@property
def openapi_types(self):
types = {
'offset': 'int',
'limit': 'int'
}

return types

@property
def attribute_map(self):
attributes = {
'offset': 'offset',
'limit': 'limit'
}

return attributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.aes.customdata.customdata_api import CustomdataApi
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# coding: utf-8

from __future__ import absolute_import

from bitmovin_api_sdk.common import BaseApi, BitmovinApiLoggerBase
from bitmovin_api_sdk.common.poscheck import poscheck_except
from bitmovin_api_sdk.models.custom_data import CustomData
from bitmovin_api_sdk.models.response_envelope import ResponseEnvelope
from bitmovin_api_sdk.models.response_error import ResponseError


class CustomdataApi(BaseApi):
@poscheck_except(2)
def __init__(self, api_key, tenant_org_id=None, base_url=None, logger=None):
# type: (str, str, str, BitmovinApiLoggerBase) -> None

super(CustomdataApi, self).__init__(
api_key=api_key,
tenant_org_id=tenant_org_id,
base_url=base_url,
logger=logger
)

def get(self, encoding_id, muxing_id, drm_id, **kwargs):
# type: (string_types, string_types, string_types, dict) -> CustomData
"""AES encryption Custom Data of an CMAF muxing

:param encoding_id: Id of the encoding.
:type encoding_id: string_types, required
:param muxing_id: Id of the CMAF muxing.
:type muxing_id: string_types, required
:param drm_id: Id of the AES encryption configuration.
:type drm_id: string_types, required
:return: AES encryption custom data
:rtype: CustomData
"""

return self.api_client.get(
'/encoding/encodings/{encoding_id}/muxings/cmaf/{muxing_id}/drm/aes/{drm_id}/customData',
path_params={'encoding_id': encoding_id, 'muxing_id': muxing_id, 'drm_id': drm_id},
type=CustomData,
**kwargs
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.cenc.cenc_api import CencApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.cenc.customdata.customdata_api import CustomdataApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.cenc.cenc_drm_list_query_params import CencDrmListQueryParams
119 changes: 119 additions & 0 deletions bitmovin_api_sdk/encoding/encodings/muxings/cmaf/drm/cenc/cenc_api.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# coding: utf-8

from __future__ import absolute_import

from bitmovin_api_sdk.common import BaseApi, BitmovinApiLoggerBase
from bitmovin_api_sdk.common.poscheck import poscheck_except
from bitmovin_api_sdk.models.bitmovin_response import BitmovinResponse
from bitmovin_api_sdk.models.cenc_drm import CencDrm
from bitmovin_api_sdk.models.response_envelope import ResponseEnvelope
from bitmovin_api_sdk.models.response_error import ResponseError
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.cenc.customdata.customdata_api import CustomdataApi
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.cenc.cenc_drm_list_query_params import CencDrmListQueryParams


class CencApi(BaseApi):
@poscheck_except(2)
def __init__(self, api_key, tenant_org_id=None, base_url=None, logger=None):
# type: (str, str, str, BitmovinApiLoggerBase) -> None

super(CencApi, self).__init__(
api_key=api_key,
tenant_org_id=tenant_org_id,
base_url=base_url,
logger=logger
)

self.customdata = CustomdataApi(
api_key=api_key,
tenant_org_id=tenant_org_id,
base_url=base_url,
logger=logger
)

def create(self, encoding_id, muxing_id, cenc_drm, **kwargs):
# type: (string_types, string_types, CencDrm, dict) -> CencDrm
"""Add CENC DRM to an CMAF muxing

:param encoding_id: Id of the encoding.
:type encoding_id: string_types, required
:param muxing_id: Id of the CMAF muxing.
:type muxing_id: string_types, required
:param cenc_drm: The CencDrm to be created
:type cenc_drm: CencDrm, required
:return: CENC DRM
:rtype: CencDrm
"""

return self.api_client.post(
'/encoding/encodings/{encoding_id}/muxings/cmaf/{muxing_id}/drm/cenc',
cenc_drm,
path_params={'encoding_id': encoding_id, 'muxing_id': muxing_id},
type=CencDrm,
**kwargs
)

def delete(self, encoding_id, muxing_id, drm_id, **kwargs):
# type: (string_types, string_types, string_types, dict) -> BitmovinResponse
"""Delete CENC DRM from an CMAF muxing

:param encoding_id: Id of the encoding.
:type encoding_id: string_types, required
:param muxing_id: Id of the CMAF muxing
:type muxing_id: string_types, required
:param drm_id: Id of the cenc drm.
:type drm_id: string_types, required
:return: Id of the CENC DRM
:rtype: BitmovinResponse
"""

return self.api_client.delete(
'/encoding/encodings/{encoding_id}/muxings/cmaf/{muxing_id}/drm/cenc/{drm_id}',
path_params={'encoding_id': encoding_id, 'muxing_id': muxing_id, 'drm_id': drm_id},
type=BitmovinResponse,
**kwargs
)

def get(self, encoding_id, muxing_id, drm_id, **kwargs):
# type: (string_types, string_types, string_types, dict) -> CencDrm
"""CENC DRM Details of an CMAF muxing

:param encoding_id: Id of the encoding.
:type encoding_id: string_types, required
:param muxing_id: Id of the CMAF muxing.
:type muxing_id: string_types, required
:param drm_id: Id of the cenc drm.
:type drm_id: string_types, required
:return: CENC DRM
:rtype: CencDrm
"""

return self.api_client.get(
'/encoding/encodings/{encoding_id}/muxings/cmaf/{muxing_id}/drm/cenc/{drm_id}',
path_params={'encoding_id': encoding_id, 'muxing_id': muxing_id, 'drm_id': drm_id},
type=CencDrm,
**kwargs
)

def list(self, encoding_id, muxing_id, query_params=None, **kwargs):
# type: (string_types, string_types, CencDrmListQueryParams, dict) -> CencDrm
"""List CENC DRMs of an CMAF muxing

:param encoding_id: Id of the encoding.
:type encoding_id: string_types, required
:param muxing_id: Id of the CMAF muxing.
:type muxing_id: string_types, required
:param query_params: Query parameters
:type query_params: CencDrmListQueryParams
:return: List of CENC DRMs
:rtype: CencDrm
"""

return self.api_client.get(
'/encoding/encodings/{encoding_id}/muxings/cmaf/{muxing_id}/drm/cenc',
path_params={'encoding_id': encoding_id, 'muxing_id': muxing_id},
query_params=query_params,
pagination_response=True,
type=CencDrm,
**kwargs
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
class CencDrmListQueryParams(object):
def __init__(self, offset=None, limit=None):
# type: (string_types, string_types) -> None
super(CencDrmListQueryParams, self).__init__()

self.offset = offset
self.limit = limit

@property
def openapi_types(self):
types = {
'offset': 'string_types',
'limit': 'string_types'
}

return types

@property
def attribute_map(self):
attributes = {
'offset': 'offset',
'limit': 'limit'
}

return attributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from bitmovin_api_sdk.encoding.encodings.muxings.cmaf.drm.cenc.customdata.customdata_api import CustomdataApi
Loading