{-# 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.MediaLive.StartChannel -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Starts an existing channel module Network.AWS.MediaLive.StartChannel ( -- * Creating a Request startChannel , StartChannel -- * Request Lenses , scChannelId -- * Destructuring the Response , startChannelResponse , StartChannelResponse -- * Response Lenses , scrsState , scrsARN , scrsPipelinesRunningCount , scrsInputSpecification , scrsInputAttachments , scrsDestinations , scrsName , scrsId , scrsEgressEndpoints , scrsEncoderSettings , scrsRoleARN , scrsResponseStatus ) where import Network.AWS.Lens import Network.AWS.MediaLive.Types import Network.AWS.MediaLive.Types.Product import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | Placeholder documentation for StartChannelRequest -- -- /See:/ 'startChannel' smart constructor. newtype StartChannel = StartChannel' { _scChannelId :: Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'StartChannel' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'scChannelId' - A request to start a channel startChannel :: Text -- ^ 'scChannelId' -> StartChannel startChannel pChannelId_ = StartChannel' {_scChannelId = pChannelId_} -- | A request to start a channel scChannelId :: Lens' StartChannel Text scChannelId = lens _scChannelId (\ s a -> s{_scChannelId = a}) instance AWSRequest StartChannel where type Rs StartChannel = StartChannelResponse request = postJSON mediaLive response = receiveJSON (\ s h x -> StartChannelResponse' <$> (x .?> "state") <*> (x .?> "arn") <*> (x .?> "pipelinesRunningCount") <*> (x .?> "inputSpecification") <*> (x .?> "inputAttachments" .!@ mempty) <*> (x .?> "destinations" .!@ mempty) <*> (x .?> "name") <*> (x .?> "id") <*> (x .?> "egressEndpoints" .!@ mempty) <*> (x .?> "encoderSettings") <*> (x .?> "roleArn") <*> (pure (fromEnum s))) instance Hashable StartChannel where instance NFData StartChannel where instance ToHeaders StartChannel where toHeaders = const (mconcat ["Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON StartChannel where toJSON = const (Object mempty) instance ToPath StartChannel where toPath StartChannel'{..} = mconcat ["/prod/channels/", toBS _scChannelId, "/start"] instance ToQuery StartChannel where toQuery = const mempty -- | Placeholder documentation for StartChannelResponse -- -- /See:/ 'startChannelResponse' smart constructor. data StartChannelResponse = StartChannelResponse' { _scrsState :: !(Maybe ChannelState) , _scrsARN :: !(Maybe Text) , _scrsPipelinesRunningCount :: !(Maybe Int) , _scrsInputSpecification :: !(Maybe InputSpecification) , _scrsInputAttachments :: !(Maybe [InputAttachment]) , _scrsDestinations :: !(Maybe [OutputDestination]) , _scrsName :: !(Maybe Text) , _scrsId :: !(Maybe Text) , _scrsEgressEndpoints :: !(Maybe [ChannelEgressEndpoint]) , _scrsEncoderSettings :: !(Maybe EncoderSettings) , _scrsRoleARN :: !(Maybe Text) , _scrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'StartChannelResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'scrsState' - Undocumented member. -- -- * 'scrsARN' - The unique arn of the channel. -- -- * 'scrsPipelinesRunningCount' - The number of currently healthy pipelines. -- -- * 'scrsInputSpecification' - Undocumented member. -- -- * 'scrsInputAttachments' - List of input attachments for channel. -- -- * 'scrsDestinations' - A list of destinations of the channel. For UDP outputs, there is one destination per output. For other types (HLS, for example), there is one destination per packager. -- -- * 'scrsName' - The name of the channel. (user-mutable) -- -- * 'scrsId' - The unique id of the channel. -- -- * 'scrsEgressEndpoints' - The endpoints where outgoing connections initiate from -- -- * 'scrsEncoderSettings' - Undocumented member. -- -- * 'scrsRoleARN' - The Amazon Resource Name (ARN) of the role assumed when running the Channel. -- -- * 'scrsResponseStatus' - -- | The response status code. startChannelResponse :: Int -- ^ 'scrsResponseStatus' -> StartChannelResponse startChannelResponse pResponseStatus_ = StartChannelResponse' { _scrsState = Nothing , _scrsARN = Nothing , _scrsPipelinesRunningCount = Nothing , _scrsInputSpecification = Nothing , _scrsInputAttachments = Nothing , _scrsDestinations = Nothing , _scrsName = Nothing , _scrsId = Nothing , _scrsEgressEndpoints = Nothing , _scrsEncoderSettings = Nothing , _scrsRoleARN = Nothing , _scrsResponseStatus = pResponseStatus_ } -- | Undocumented member. scrsState :: Lens' StartChannelResponse (Maybe ChannelState) scrsState = lens _scrsState (\ s a -> s{_scrsState = a}) -- | The unique arn of the channel. scrsARN :: Lens' StartChannelResponse (Maybe Text) scrsARN = lens _scrsARN (\ s a -> s{_scrsARN = a}) -- | The number of currently healthy pipelines. scrsPipelinesRunningCount :: Lens' StartChannelResponse (Maybe Int) scrsPipelinesRunningCount = lens _scrsPipelinesRunningCount (\ s a -> s{_scrsPipelinesRunningCount = a}) -- | Undocumented member. scrsInputSpecification :: Lens' StartChannelResponse (Maybe InputSpecification) scrsInputSpecification = lens _scrsInputSpecification (\ s a -> s{_scrsInputSpecification = a}) -- | List of input attachments for channel. scrsInputAttachments :: Lens' StartChannelResponse [InputAttachment] scrsInputAttachments = lens _scrsInputAttachments (\ s a -> s{_scrsInputAttachments = a}) . _Default . _Coerce -- | A list of destinations of the channel. For UDP outputs, there is one destination per output. For other types (HLS, for example), there is one destination per packager. scrsDestinations :: Lens' StartChannelResponse [OutputDestination] scrsDestinations = lens _scrsDestinations (\ s a -> s{_scrsDestinations = a}) . _Default . _Coerce -- | The name of the channel. (user-mutable) scrsName :: Lens' StartChannelResponse (Maybe Text) scrsName = lens _scrsName (\ s a -> s{_scrsName = a}) -- | The unique id of the channel. scrsId :: Lens' StartChannelResponse (Maybe Text) scrsId = lens _scrsId (\ s a -> s{_scrsId = a}) -- | The endpoints where outgoing connections initiate from scrsEgressEndpoints :: Lens' StartChannelResponse [ChannelEgressEndpoint] scrsEgressEndpoints = lens _scrsEgressEndpoints (\ s a -> s{_scrsEgressEndpoints = a}) . _Default . _Coerce -- | Undocumented member. scrsEncoderSettings :: Lens' StartChannelResponse (Maybe EncoderSettings) scrsEncoderSettings = lens _scrsEncoderSettings (\ s a -> s{_scrsEncoderSettings = a}) -- | The Amazon Resource Name (ARN) of the role assumed when running the Channel. scrsRoleARN :: Lens' StartChannelResponse (Maybe Text) scrsRoleARN = lens _scrsRoleARN (\ s a -> s{_scrsRoleARN = a}) -- | -- | The response status code. scrsResponseStatus :: Lens' StartChannelResponse Int scrsResponseStatus = lens _scrsResponseStatus (\ s a -> s{_scrsResponseStatus = a}) instance NFData StartChannelResponse where