amazonka-mediapackage-1.6.0: gen/Network/AWS/MediaPackage/CreateOriginEndpoint.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.MediaPackage.CreateOriginEndpoint
-- Copyright : (c) 2013-2018 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a new OriginEndpoint record.
module Network.AWS.MediaPackage.CreateOriginEndpoint
(
-- * Creating a Request
createOriginEndpoint
, CreateOriginEndpoint
-- * Request Lenses
, coeWhitelist
, coeHlsPackage
, coeManifestName
, coeStartoverWindowSeconds
, coeDashPackage
, coeMssPackage
, coeTimeDelaySeconds
, coeCmafPackage
, coeDescription
, coeChannelId
, coeId
-- * Destructuring the Response
, createOriginEndpointResponse
, CreateOriginEndpointResponse
-- * Response Lenses
, coersWhitelist
, coersHlsPackage
, coersARN
, coersManifestName
, coersURL
, coersChannelId
, coersStartoverWindowSeconds
, coersDashPackage
, coersMssPackage
, coersId
, coersTimeDelaySeconds
, coersCmafPackage
, coersDescription
, coersResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.MediaPackage.Types
import Network.AWS.MediaPackage.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | Configuration parameters used to create a new OriginEndpoint.
--
-- /See:/ 'createOriginEndpoint' smart constructor.
data CreateOriginEndpoint = CreateOriginEndpoint'
{ _coeWhitelist :: !(Maybe [Text])
, _coeHlsPackage :: !(Maybe HlsPackage)
, _coeManifestName :: !(Maybe Text)
, _coeStartoverWindowSeconds :: !(Maybe Int)
, _coeDashPackage :: !(Maybe DashPackage)
, _coeMssPackage :: !(Maybe MssPackage)
, _coeTimeDelaySeconds :: !(Maybe Int)
, _coeCmafPackage :: !(Maybe CmafPackageCreateOrUpdateParameters)
, _coeDescription :: !(Maybe Text)
, _coeChannelId :: !Text
, _coeId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'CreateOriginEndpoint' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'coeWhitelist' - A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.
--
-- * 'coeHlsPackage' - Undocumented member.
--
-- * 'coeManifestName' - A short string that will be used as the filename of the OriginEndpoint URL (defaults to "index").
--
-- * 'coeStartoverWindowSeconds' - Maximum duration (seconds) of content to retain for startover playback. If not specified, startover playback will be disabled for the OriginEndpoint.
--
-- * 'coeDashPackage' - Undocumented member.
--
-- * 'coeMssPackage' - Undocumented member.
--
-- * 'coeTimeDelaySeconds' - Amount of delay (seconds) to enforce on the playback of live content. If not specified, there will be no time delay in effect for the OriginEndpoint.
--
-- * 'coeCmafPackage' - Undocumented member.
--
-- * 'coeDescription' - A short text description of the OriginEndpoint.
--
-- * 'coeChannelId' - The ID of the Channel that the OriginEndpoint will be associated with. This cannot be changed after the OriginEndpoint is created.
--
-- * 'coeId' - The ID of the OriginEndpoint. The ID must be unique within the region and it cannot be changed after the OriginEndpoint is created.
createOriginEndpoint
:: Text -- ^ 'coeChannelId'
-> Text -- ^ 'coeId'
-> CreateOriginEndpoint
createOriginEndpoint pChannelId_ pId_ =
CreateOriginEndpoint'
{ _coeWhitelist = Nothing
, _coeHlsPackage = Nothing
, _coeManifestName = Nothing
, _coeStartoverWindowSeconds = Nothing
, _coeDashPackage = Nothing
, _coeMssPackage = Nothing
, _coeTimeDelaySeconds = Nothing
, _coeCmafPackage = Nothing
, _coeDescription = Nothing
, _coeChannelId = pChannelId_
, _coeId = pId_
}
-- | A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.
coeWhitelist :: Lens' CreateOriginEndpoint [Text]
coeWhitelist = lens _coeWhitelist (\ s a -> s{_coeWhitelist = a}) . _Default . _Coerce
-- | Undocumented member.
coeHlsPackage :: Lens' CreateOriginEndpoint (Maybe HlsPackage)
coeHlsPackage = lens _coeHlsPackage (\ s a -> s{_coeHlsPackage = a})
-- | A short string that will be used as the filename of the OriginEndpoint URL (defaults to "index").
coeManifestName :: Lens' CreateOriginEndpoint (Maybe Text)
coeManifestName = lens _coeManifestName (\ s a -> s{_coeManifestName = a})
-- | Maximum duration (seconds) of content to retain for startover playback. If not specified, startover playback will be disabled for the OriginEndpoint.
coeStartoverWindowSeconds :: Lens' CreateOriginEndpoint (Maybe Int)
coeStartoverWindowSeconds = lens _coeStartoverWindowSeconds (\ s a -> s{_coeStartoverWindowSeconds = a})
-- | Undocumented member.
coeDashPackage :: Lens' CreateOriginEndpoint (Maybe DashPackage)
coeDashPackage = lens _coeDashPackage (\ s a -> s{_coeDashPackage = a})
-- | Undocumented member.
coeMssPackage :: Lens' CreateOriginEndpoint (Maybe MssPackage)
coeMssPackage = lens _coeMssPackage (\ s a -> s{_coeMssPackage = a})
-- | Amount of delay (seconds) to enforce on the playback of live content. If not specified, there will be no time delay in effect for the OriginEndpoint.
coeTimeDelaySeconds :: Lens' CreateOriginEndpoint (Maybe Int)
coeTimeDelaySeconds = lens _coeTimeDelaySeconds (\ s a -> s{_coeTimeDelaySeconds = a})
-- | Undocumented member.
coeCmafPackage :: Lens' CreateOriginEndpoint (Maybe CmafPackageCreateOrUpdateParameters)
coeCmafPackage = lens _coeCmafPackage (\ s a -> s{_coeCmafPackage = a})
-- | A short text description of the OriginEndpoint.
coeDescription :: Lens' CreateOriginEndpoint (Maybe Text)
coeDescription = lens _coeDescription (\ s a -> s{_coeDescription = a})
-- | The ID of the Channel that the OriginEndpoint will be associated with. This cannot be changed after the OriginEndpoint is created.
coeChannelId :: Lens' CreateOriginEndpoint Text
coeChannelId = lens _coeChannelId (\ s a -> s{_coeChannelId = a})
-- | The ID of the OriginEndpoint. The ID must be unique within the region and it cannot be changed after the OriginEndpoint is created.
coeId :: Lens' CreateOriginEndpoint Text
coeId = lens _coeId (\ s a -> s{_coeId = a})
instance AWSRequest CreateOriginEndpoint where
type Rs CreateOriginEndpoint =
CreateOriginEndpointResponse
request = postJSON mediaPackage
response
= receiveJSON
(\ s h x ->
CreateOriginEndpointResponse' <$>
(x .?> "whitelist" .!@ mempty) <*>
(x .?> "hlsPackage")
<*> (x .?> "arn")
<*> (x .?> "manifestName")
<*> (x .?> "url")
<*> (x .?> "channelId")
<*> (x .?> "startoverWindowSeconds")
<*> (x .?> "dashPackage")
<*> (x .?> "mssPackage")
<*> (x .?> "id")
<*> (x .?> "timeDelaySeconds")
<*> (x .?> "cmafPackage")
<*> (x .?> "description")
<*> (pure (fromEnum s)))
instance Hashable CreateOriginEndpoint where
instance NFData CreateOriginEndpoint where
instance ToHeaders CreateOriginEndpoint where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateOriginEndpoint where
toJSON CreateOriginEndpoint'{..}
= object
(catMaybes
[("whitelist" .=) <$> _coeWhitelist,
("hlsPackage" .=) <$> _coeHlsPackage,
("manifestName" .=) <$> _coeManifestName,
("startoverWindowSeconds" .=) <$>
_coeStartoverWindowSeconds,
("dashPackage" .=) <$> _coeDashPackage,
("mssPackage" .=) <$> _coeMssPackage,
("timeDelaySeconds" .=) <$> _coeTimeDelaySeconds,
("cmafPackage" .=) <$> _coeCmafPackage,
("description" .=) <$> _coeDescription,
Just ("channelId" .= _coeChannelId),
Just ("id" .= _coeId)])
instance ToPath CreateOriginEndpoint where
toPath = const "/origin_endpoints"
instance ToQuery CreateOriginEndpoint where
toQuery = const mempty
-- | /See:/ 'createOriginEndpointResponse' smart constructor.
data CreateOriginEndpointResponse = CreateOriginEndpointResponse'
{ _coersWhitelist :: !(Maybe [Text])
, _coersHlsPackage :: !(Maybe HlsPackage)
, _coersARN :: !(Maybe Text)
, _coersManifestName :: !(Maybe Text)
, _coersURL :: !(Maybe Text)
, _coersChannelId :: !(Maybe Text)
, _coersStartoverWindowSeconds :: !(Maybe Int)
, _coersDashPackage :: !(Maybe DashPackage)
, _coersMssPackage :: !(Maybe MssPackage)
, _coersId :: !(Maybe Text)
, _coersTimeDelaySeconds :: !(Maybe Int)
, _coersCmafPackage :: !(Maybe CmafPackage)
, _coersDescription :: !(Maybe Text)
, _coersResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'CreateOriginEndpointResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'coersWhitelist' - A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.
--
-- * 'coersHlsPackage' - Undocumented member.
--
-- * 'coersARN' - The Amazon Resource Name (ARN) assigned to the OriginEndpoint.
--
-- * 'coersManifestName' - A short string appended to the end of the OriginEndpoint URL.
--
-- * 'coersURL' - The URL of the packaged OriginEndpoint for consumption.
--
-- * 'coersChannelId' - The ID of the Channel the OriginEndpoint is associated with.
--
-- * 'coersStartoverWindowSeconds' - Maximum duration (seconds) of content to retain for startover playback. If not specified, startover playback will be disabled for the OriginEndpoint.
--
-- * 'coersDashPackage' - Undocumented member.
--
-- * 'coersMssPackage' - Undocumented member.
--
-- * 'coersId' - The ID of the OriginEndpoint.
--
-- * 'coersTimeDelaySeconds' - Amount of delay (seconds) to enforce on the playback of live content. If not specified, there will be no time delay in effect for the OriginEndpoint.
--
-- * 'coersCmafPackage' - Undocumented member.
--
-- * 'coersDescription' - A short text description of the OriginEndpoint.
--
-- * 'coersResponseStatus' - -- | The response status code.
createOriginEndpointResponse
:: Int -- ^ 'coersResponseStatus'
-> CreateOriginEndpointResponse
createOriginEndpointResponse pResponseStatus_ =
CreateOriginEndpointResponse'
{ _coersWhitelist = Nothing
, _coersHlsPackage = Nothing
, _coersARN = Nothing
, _coersManifestName = Nothing
, _coersURL = Nothing
, _coersChannelId = Nothing
, _coersStartoverWindowSeconds = Nothing
, _coersDashPackage = Nothing
, _coersMssPackage = Nothing
, _coersId = Nothing
, _coersTimeDelaySeconds = Nothing
, _coersCmafPackage = Nothing
, _coersDescription = Nothing
, _coersResponseStatus = pResponseStatus_
}
-- | A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.
coersWhitelist :: Lens' CreateOriginEndpointResponse [Text]
coersWhitelist = lens _coersWhitelist (\ s a -> s{_coersWhitelist = a}) . _Default . _Coerce
-- | Undocumented member.
coersHlsPackage :: Lens' CreateOriginEndpointResponse (Maybe HlsPackage)
coersHlsPackage = lens _coersHlsPackage (\ s a -> s{_coersHlsPackage = a})
-- | The Amazon Resource Name (ARN) assigned to the OriginEndpoint.
coersARN :: Lens' CreateOriginEndpointResponse (Maybe Text)
coersARN = lens _coersARN (\ s a -> s{_coersARN = a})
-- | A short string appended to the end of the OriginEndpoint URL.
coersManifestName :: Lens' CreateOriginEndpointResponse (Maybe Text)
coersManifestName = lens _coersManifestName (\ s a -> s{_coersManifestName = a})
-- | The URL of the packaged OriginEndpoint for consumption.
coersURL :: Lens' CreateOriginEndpointResponse (Maybe Text)
coersURL = lens _coersURL (\ s a -> s{_coersURL = a})
-- | The ID of the Channel the OriginEndpoint is associated with.
coersChannelId :: Lens' CreateOriginEndpointResponse (Maybe Text)
coersChannelId = lens _coersChannelId (\ s a -> s{_coersChannelId = a})
-- | Maximum duration (seconds) of content to retain for startover playback. If not specified, startover playback will be disabled for the OriginEndpoint.
coersStartoverWindowSeconds :: Lens' CreateOriginEndpointResponse (Maybe Int)
coersStartoverWindowSeconds = lens _coersStartoverWindowSeconds (\ s a -> s{_coersStartoverWindowSeconds = a})
-- | Undocumented member.
coersDashPackage :: Lens' CreateOriginEndpointResponse (Maybe DashPackage)
coersDashPackage = lens _coersDashPackage (\ s a -> s{_coersDashPackage = a})
-- | Undocumented member.
coersMssPackage :: Lens' CreateOriginEndpointResponse (Maybe MssPackage)
coersMssPackage = lens _coersMssPackage (\ s a -> s{_coersMssPackage = a})
-- | The ID of the OriginEndpoint.
coersId :: Lens' CreateOriginEndpointResponse (Maybe Text)
coersId = lens _coersId (\ s a -> s{_coersId = a})
-- | Amount of delay (seconds) to enforce on the playback of live content. If not specified, there will be no time delay in effect for the OriginEndpoint.
coersTimeDelaySeconds :: Lens' CreateOriginEndpointResponse (Maybe Int)
coersTimeDelaySeconds = lens _coersTimeDelaySeconds (\ s a -> s{_coersTimeDelaySeconds = a})
-- | Undocumented member.
coersCmafPackage :: Lens' CreateOriginEndpointResponse (Maybe CmafPackage)
coersCmafPackage = lens _coersCmafPackage (\ s a -> s{_coersCmafPackage = a})
-- | A short text description of the OriginEndpoint.
coersDescription :: Lens' CreateOriginEndpointResponse (Maybe Text)
coersDescription = lens _coersDescription (\ s a -> s{_coersDescription = a})
-- | -- | The response status code.
coersResponseStatus :: Lens' CreateOriginEndpointResponse Int
coersResponseStatus = lens _coersResponseStatus (\ s a -> s{_coersResponseStatus = a})
instance NFData CreateOriginEndpointResponse where