-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Budgets SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.Budgets</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-budgets
@version 1.4.5


module Network.AWS.Budgets.Types

-- | API version <tt>2016-10-20</tt> of the Amazon Budgets SDK
--   configuration.
budgets :: Service

-- | This exception is thrown if any request is given an invalid parameter.
--   E.g., if a required Date field is null.
_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This exception is thrown on an unknown internal failure.
_InternalErrorException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This exception is thrown if the paging token is expired - past its TTL
_ExpiredNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This exception is thrown if a requested entity is not found. E.g., if
--   a budget id doesn't exist for an account ID.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This exception is thrown if paging token signature didn't match the
--   token, or the paging token isn't for this request
_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The exception is thrown when customer tries to create a record (e.g.
--   budget) that already exists.
_DuplicateRecordException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The exception is thrown when customer tries to create a record (e.g.
--   budget), but the number this record already exceeds the limitation.
_CreationLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The type of a budget. Can be COST or USAGE.
data BudgetType
Cost :: BudgetType
Usage :: BudgetType

-- | The comparison operator of a notification. Currently we support less
--   than, equal to and greater than.
data ComparisonOperator
EqualTo :: ComparisonOperator
GreaterThan :: ComparisonOperator
LessThan :: ComparisonOperator

-- | The type of a notification. It should be ACTUAL or FORECASTED.
data NotificationType
Actual :: NotificationType
Forecasted :: NotificationType

-- | The subscription type of the subscriber. It can be SMS or EMAIL.
data SubscriptionType
Email :: SubscriptionType
SNS :: SubscriptionType

-- | The time unit of the budget. e.g. weekly, monthly, etc.
data TimeUnit
Annually :: TimeUnit
Monthly :: TimeUnit
Quarterly :: TimeUnit

-- | AWS Budget model
--   
--   <i>See:</i> <a>budget</a> smart constructor.
data Budget

-- | Creates a value of <a>Budget</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bCalculatedSpend</a> - Undocumented member.</li>
--   <li><a>bCostFilters</a> - Undocumented member.</li>
--   <li><a>bBudgetName</a> - Undocumented member.</li>
--   <li><a>bBudgetLimit</a> - Undocumented member.</li>
--   <li><a>bCostTypes</a> - Undocumented member.</li>
--   <li><a>bTimeUnit</a> - Undocumented member.</li>
--   <li><a>bTimePeriod</a> - Undocumented member.</li>
--   <li><a>bBudgetType</a> - Undocumented member.</li>
--   </ul>
budget :: Text -> Spend -> CostTypes -> TimeUnit -> TimePeriod -> BudgetType -> Budget

-- | Undocumented member.
bCalculatedSpend :: Lens' Budget (Maybe CalculatedSpend)

-- | Undocumented member.
bCostFilters :: Lens' Budget (HashMap Text [Text])

-- | Undocumented member.
bBudgetName :: Lens' Budget Text

-- | Undocumented member.
bBudgetLimit :: Lens' Budget Spend

-- | Undocumented member.
bCostTypes :: Lens' Budget CostTypes

-- | Undocumented member.
bTimeUnit :: Lens' Budget TimeUnit

-- | Undocumented member.
bTimePeriod :: Lens' Budget TimePeriod

-- | Undocumented member.
bBudgetType :: Lens' Budget BudgetType

-- | A structure holds the actual and forecasted spend for a budget.
--   
--   <i>See:</i> <a>calculatedSpend</a> smart constructor.
data CalculatedSpend

-- | Creates a value of <a>CalculatedSpend</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csForecastedSpend</a> - Undocumented member.</li>
--   <li><a>csActualSpend</a> - Undocumented member.</li>
--   </ul>
calculatedSpend :: Spend -> CalculatedSpend

-- | Undocumented member.
csForecastedSpend :: Lens' CalculatedSpend (Maybe Spend)

-- | Undocumented member.
csActualSpend :: Lens' CalculatedSpend Spend

-- | This includes the options for getting the cost of a budget.
--   
--   <i>See:</i> <a>costTypes</a> smart constructor.
data CostTypes

-- | Creates a value of <a>CostTypes</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ctIncludeTax</a> - Undocumented member.</li>
--   <li><a>ctIncludeSubscription</a> - Undocumented member.</li>
--   <li><a>ctUseBlended</a> - Undocumented member.</li>
--   </ul>
costTypes :: Bool -> Bool -> Bool -> CostTypes

-- | Undocumented member.
ctIncludeTax :: Lens' CostTypes Bool

-- | Undocumented member.
ctIncludeSubscription :: Lens' CostTypes Bool

-- | Undocumented member.
ctUseBlended :: Lens' CostTypes Bool

-- | Notification model. Each budget may contain multiple notifications
--   with different settings.
--   
--   <i>See:</i> <a>notification</a> smart constructor.
data Notification

-- | Creates a value of <a>Notification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nNotificationType</a> - Undocumented member.</li>
--   <li><a>nComparisonOperator</a> - Undocumented member.</li>
--   <li><a>nThreshold</a> - Undocumented member.</li>
--   </ul>
notification :: NotificationType -> ComparisonOperator -> Double -> Notification

-- | Undocumented member.
nNotificationType :: Lens' Notification NotificationType

-- | Undocumented member.
nComparisonOperator :: Lens' Notification ComparisonOperator

-- | Undocumented member.
nThreshold :: Lens' Notification Double

-- | A structure to relate notification and a list of subscribers who
--   belong to the notification.
--   
--   <i>See:</i> <a>notificationWithSubscribers</a> smart constructor.
data NotificationWithSubscribers

-- | Creates a value of <a>NotificationWithSubscribers</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nwsNotification</a> - Undocumented member.</li>
--   <li><a>nwsSubscribers</a> - Undocumented member.</li>
--   </ul>
notificationWithSubscribers :: Notification -> NonEmpty Subscriber -> NotificationWithSubscribers

-- | Undocumented member.
nwsNotification :: Lens' NotificationWithSubscribers Notification

-- | Undocumented member.
nwsSubscribers :: Lens' NotificationWithSubscribers (NonEmpty Subscriber)

-- | A structure represent either a cost spend or usage spend. Contains an
--   amount and a unit.
--   
--   <i>See:</i> <a>spend</a> smart constructor.
data Spend

-- | Creates a value of <a>Spend</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sAmount</a> - Undocumented member.</li>
--   <li><a>sUnit</a> - Undocumented member.</li>
--   </ul>
spend :: Text -> Text -> Spend

-- | Undocumented member.
sAmount :: Lens' Spend Text

-- | Undocumented member.
sUnit :: Lens' Spend Text

-- | Subscriber model. Each notification may contain multiple subscribers
--   with different addresses.
--   
--   <i>See:</i> <a>subscriber</a> smart constructor.
data Subscriber

-- | Creates a value of <a>Subscriber</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sSubscriptionType</a> - Undocumented member.</li>
--   <li><a>sAddress</a> - Undocumented member.</li>
--   </ul>
subscriber :: SubscriptionType -> Text -> Subscriber

-- | Undocumented member.
sSubscriptionType :: Lens' Subscriber SubscriptionType

-- | Undocumented member.
sAddress :: Lens' Subscriber Text

-- | A time period indicated the start date and end date of a budget.
--   
--   <i>See:</i> <a>timePeriod</a> smart constructor.
data TimePeriod

-- | Creates a value of <a>TimePeriod</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpStart</a> - Undocumented member.</li>
--   <li><a>tpEnd</a> - Undocumented member.</li>
--   </ul>
timePeriod :: UTCTime -> UTCTime -> TimePeriod

-- | Undocumented member.
tpStart :: Lens' TimePeriod UTCTime

-- | Undocumented member.
tpEnd :: Lens' TimePeriod UTCTime


-- | Update the information of a budget already created
module Network.AWS.Budgets.UpdateBudget

-- | Creates a value of <a>UpdateBudget</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ubAccountId</a> - Undocumented member.</li>
--   <li><a>ubNewBudget</a> - Undocumented member.</li>
--   </ul>
updateBudget :: Text -> Budget -> UpdateBudget

-- | Request of UpdateBudget
--   
--   <i>See:</i> <a>updateBudget</a> smart constructor.
data UpdateBudget

-- | Undocumented member.
ubAccountId :: Lens' UpdateBudget Text

-- | Undocumented member.
ubNewBudget :: Lens' UpdateBudget Budget

-- | Creates a value of <a>UpdateBudgetResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ubrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateBudgetResponse :: Int -> UpdateBudgetResponse

-- | Response of UpdateBudget
--   
--   <i>See:</i> <a>updateBudgetResponse</a> smart constructor.
data UpdateBudgetResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ubrsResponseStatus :: Lens' UpdateBudgetResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.UpdateBudget.UpdateBudgetResponse
instance Data.Data.Data Network.AWS.Budgets.UpdateBudget.UpdateBudgetResponse
instance GHC.Show.Show Network.AWS.Budgets.UpdateBudget.UpdateBudgetResponse
instance GHC.Read.Read Network.AWS.Budgets.UpdateBudget.UpdateBudgetResponse
instance GHC.Classes.Eq Network.AWS.Budgets.UpdateBudget.UpdateBudgetResponse
instance GHC.Generics.Generic Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance Data.Data.Data Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance GHC.Show.Show Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance GHC.Read.Read Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance GHC.Classes.Eq Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance Control.DeepSeq.NFData Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.UpdateBudget.UpdateBudget
instance Control.DeepSeq.NFData Network.AWS.Budgets.UpdateBudget.UpdateBudgetResponse


-- | Update the information about a notification already created
module Network.AWS.Budgets.UpdateNotification

-- | Creates a value of <a>UpdateNotification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>unAccountId</a> - Undocumented member.</li>
--   <li><a>unBudgetName</a> - Undocumented member.</li>
--   <li><a>unOldNotification</a> - Undocumented member.</li>
--   <li><a>unNewNotification</a> - Undocumented member.</li>
--   </ul>
updateNotification :: Text -> Text -> Notification -> Notification -> UpdateNotification

-- | Request of UpdateNotification
--   
--   <i>See:</i> <a>updateNotification</a> smart constructor.
data UpdateNotification

-- | Undocumented member.
unAccountId :: Lens' UpdateNotification Text

-- | Undocumented member.
unBudgetName :: Lens' UpdateNotification Text

-- | Undocumented member.
unOldNotification :: Lens' UpdateNotification Notification

-- | Undocumented member.
unNewNotification :: Lens' UpdateNotification Notification

-- | Creates a value of <a>UpdateNotificationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>unrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateNotificationResponse :: Int -> UpdateNotificationResponse

-- | Response of UpdateNotification
--   
--   <i>See:</i> <a>updateNotificationResponse</a> smart constructor.
data UpdateNotificationResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
unrsResponseStatus :: Lens' UpdateNotificationResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.UpdateNotification.UpdateNotificationResponse
instance Data.Data.Data Network.AWS.Budgets.UpdateNotification.UpdateNotificationResponse
instance GHC.Show.Show Network.AWS.Budgets.UpdateNotification.UpdateNotificationResponse
instance GHC.Read.Read Network.AWS.Budgets.UpdateNotification.UpdateNotificationResponse
instance GHC.Classes.Eq Network.AWS.Budgets.UpdateNotification.UpdateNotificationResponse
instance GHC.Generics.Generic Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance Data.Data.Data Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance GHC.Show.Show Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance GHC.Read.Read Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance GHC.Classes.Eq Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance Control.DeepSeq.NFData Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.UpdateNotification.UpdateNotification
instance Control.DeepSeq.NFData Network.AWS.Budgets.UpdateNotification.UpdateNotificationResponse


-- | Update a subscriber
module Network.AWS.Budgets.UpdateSubscriber

-- | Creates a value of <a>UpdateSubscriber</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usAccountId</a> - Undocumented member.</li>
--   <li><a>usBudgetName</a> - Undocumented member.</li>
--   <li><a>usNotification</a> - Undocumented member.</li>
--   <li><a>usOldSubscriber</a> - Undocumented member.</li>
--   <li><a>usNewSubscriber</a> - Undocumented member.</li>
--   </ul>
updateSubscriber :: Text -> Text -> Notification -> Subscriber -> Subscriber -> UpdateSubscriber

-- | Request of UpdateSubscriber
--   
--   <i>See:</i> <a>updateSubscriber</a> smart constructor.
data UpdateSubscriber

-- | Undocumented member.
usAccountId :: Lens' UpdateSubscriber Text

-- | Undocumented member.
usBudgetName :: Lens' UpdateSubscriber Text

-- | Undocumented member.
usNotification :: Lens' UpdateSubscriber Notification

-- | Undocumented member.
usOldSubscriber :: Lens' UpdateSubscriber Subscriber

-- | Undocumented member.
usNewSubscriber :: Lens' UpdateSubscriber Subscriber

-- | Creates a value of <a>UpdateSubscriberResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateSubscriberResponse :: Int -> UpdateSubscriberResponse

-- | Response of UpdateSubscriber
--   
--   <i>See:</i> <a>updateSubscriberResponse</a> smart constructor.
data UpdateSubscriberResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
usrsResponseStatus :: Lens' UpdateSubscriberResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriberResponse
instance Data.Data.Data Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriberResponse
instance GHC.Show.Show Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriberResponse
instance GHC.Read.Read Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriberResponse
instance GHC.Classes.Eq Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriberResponse
instance GHC.Generics.Generic Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance Data.Data.Data Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance GHC.Show.Show Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance GHC.Read.Read Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance GHC.Classes.Eq Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance Control.DeepSeq.NFData Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriber
instance Control.DeepSeq.NFData Network.AWS.Budgets.UpdateSubscriber.UpdateSubscriberResponse


module Network.AWS.Budgets.Waiters


-- | Get subscribers of a notification
module Network.AWS.Budgets.DescribeSubscribersForNotification

-- | Creates a value of <a>DescribeSubscribersForNotification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsfnNextToken</a> - Undocumented member.</li>
--   <li><a>dsfnMaxResults</a> - Undocumented member.</li>
--   <li><a>dsfnAccountId</a> - Undocumented member.</li>
--   <li><a>dsfnBudgetName</a> - Undocumented member.</li>
--   <li><a>dsfnNotification</a> - Undocumented member.</li>
--   </ul>
describeSubscribersForNotification :: Text -> Text -> Notification -> DescribeSubscribersForNotification

-- | Request of DescribeSubscribersForNotification
--   
--   <i>See:</i> <a>describeSubscribersForNotification</a> smart
--   constructor.
data DescribeSubscribersForNotification

-- | Undocumented member.
dsfnNextToken :: Lens' DescribeSubscribersForNotification (Maybe Text)

-- | Undocumented member.
dsfnMaxResults :: Lens' DescribeSubscribersForNotification (Maybe Natural)

-- | Undocumented member.
dsfnAccountId :: Lens' DescribeSubscribersForNotification Text

-- | Undocumented member.
dsfnBudgetName :: Lens' DescribeSubscribersForNotification Text

-- | Undocumented member.
dsfnNotification :: Lens' DescribeSubscribersForNotification Notification

-- | Creates a value of <a>DescribeSubscribersForNotificationResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsfnrsNextToken</a> - Undocumented member.</li>
--   <li><a>dsfnrsSubscribers</a> - Undocumented member.</li>
--   <li><a>dsfnrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSubscribersForNotificationResponse :: Int -> DescribeSubscribersForNotificationResponse

-- | Response of DescribeSubscribersForNotification
--   
--   <i>See:</i> <a>describeSubscribersForNotificationResponse</a> smart
--   constructor.
data DescribeSubscribersForNotificationResponse

-- | Undocumented member.
dsfnrsNextToken :: Lens' DescribeSubscribersForNotificationResponse (Maybe Text)

-- | Undocumented member.
dsfnrsSubscribers :: Lens' DescribeSubscribersForNotificationResponse (Maybe (NonEmpty Subscriber))

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsfnrsResponseStatus :: Lens' DescribeSubscribersForNotificationResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotificationResponse
instance Data.Data.Data Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotificationResponse
instance GHC.Show.Show Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotificationResponse
instance GHC.Read.Read Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotificationResponse
instance GHC.Classes.Eq Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotificationResponse
instance GHC.Generics.Generic Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance Data.Data.Data Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance GHC.Show.Show Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance GHC.Read.Read Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance GHC.Classes.Eq Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance Control.DeepSeq.NFData Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotification
instance Control.DeepSeq.NFData Network.AWS.Budgets.DescribeSubscribersForNotification.DescribeSubscribersForNotificationResponse


-- | Get notifications of a budget
module Network.AWS.Budgets.DescribeNotificationsForBudget

-- | Creates a value of <a>DescribeNotificationsForBudget</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnfbNextToken</a> - Undocumented member.</li>
--   <li><a>dnfbMaxResults</a> - Undocumented member.</li>
--   <li><a>dnfbAccountId</a> - Undocumented member.</li>
--   <li><a>dnfbBudgetName</a> - Undocumented member.</li>
--   </ul>
describeNotificationsForBudget :: Text -> Text -> DescribeNotificationsForBudget

-- | Request of DescribeNotificationsForBudget
--   
--   <i>See:</i> <a>describeNotificationsForBudget</a> smart constructor.
data DescribeNotificationsForBudget

-- | Undocumented member.
dnfbNextToken :: Lens' DescribeNotificationsForBudget (Maybe Text)

-- | Undocumented member.
dnfbMaxResults :: Lens' DescribeNotificationsForBudget (Maybe Natural)

-- | Undocumented member.
dnfbAccountId :: Lens' DescribeNotificationsForBudget Text

-- | Undocumented member.
dnfbBudgetName :: Lens' DescribeNotificationsForBudget Text

-- | Creates a value of <a>DescribeNotificationsForBudgetResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnfbrsNextToken</a> - Undocumented member.</li>
--   <li><a>dnfbrsNotifications</a> - Undocumented member.</li>
--   <li><a>dnfbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeNotificationsForBudgetResponse :: Int -> DescribeNotificationsForBudgetResponse

-- | Response of GetNotificationsForBudget
--   
--   <i>See:</i> <a>describeNotificationsForBudgetResponse</a> smart
--   constructor.
data DescribeNotificationsForBudgetResponse

-- | Undocumented member.
dnfbrsNextToken :: Lens' DescribeNotificationsForBudgetResponse (Maybe Text)

-- | Undocumented member.
dnfbrsNotifications :: Lens' DescribeNotificationsForBudgetResponse [Notification]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dnfbrsResponseStatus :: Lens' DescribeNotificationsForBudgetResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudgetResponse
instance Data.Data.Data Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudgetResponse
instance GHC.Show.Show Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudgetResponse
instance GHC.Read.Read Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudgetResponse
instance GHC.Classes.Eq Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudgetResponse
instance GHC.Generics.Generic Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance Data.Data.Data Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance GHC.Show.Show Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance GHC.Read.Read Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance GHC.Classes.Eq Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance Control.DeepSeq.NFData Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudget
instance Control.DeepSeq.NFData Network.AWS.Budgets.DescribeNotificationsForBudget.DescribeNotificationsForBudgetResponse


-- | Get all budgets for an account
module Network.AWS.Budgets.DescribeBudgets

-- | Creates a value of <a>DescribeBudgets</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbNextToken</a> - Undocumented member.</li>
--   <li><a>dbMaxResults</a> - Undocumented member.</li>
--   <li><a>dbAccountId</a> - Undocumented member.</li>
--   </ul>
describeBudgets :: Text -> DescribeBudgets

-- | Request of DescribeBudgets
--   
--   <i>See:</i> <a>describeBudgets</a> smart constructor.
data DescribeBudgets

-- | Undocumented member.
dbNextToken :: Lens' DescribeBudgets (Maybe Text)

-- | Undocumented member.
dbMaxResults :: Lens' DescribeBudgets (Maybe Natural)

-- | Undocumented member.
dbAccountId :: Lens' DescribeBudgets Text

-- | Creates a value of <a>DescribeBudgetsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbrsNextToken</a> - Undocumented member.</li>
--   <li><a>dbrsBudgets</a> - Undocumented member.</li>
--   <li><a>dbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeBudgetsResponse :: Int -> DescribeBudgetsResponse

-- | Response of DescribeBudgets
--   
--   <i>See:</i> <a>describeBudgetsResponse</a> smart constructor.
data DescribeBudgetsResponse

-- | Undocumented member.
dbrsNextToken :: Lens' DescribeBudgetsResponse (Maybe Text)

-- | Undocumented member.
dbrsBudgets :: Lens' DescribeBudgetsResponse [Budget]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dbrsResponseStatus :: Lens' DescribeBudgetsResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.DescribeBudgets.DescribeBudgetsResponse
instance Data.Data.Data Network.AWS.Budgets.DescribeBudgets.DescribeBudgetsResponse
instance GHC.Show.Show Network.AWS.Budgets.DescribeBudgets.DescribeBudgetsResponse
instance GHC.Read.Read Network.AWS.Budgets.DescribeBudgets.DescribeBudgetsResponse
instance GHC.Classes.Eq Network.AWS.Budgets.DescribeBudgets.DescribeBudgetsResponse
instance GHC.Generics.Generic Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance Data.Data.Data Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance GHC.Show.Show Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance GHC.Read.Read Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance GHC.Classes.Eq Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance Control.DeepSeq.NFData Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.DescribeBudgets.DescribeBudgets
instance Control.DeepSeq.NFData Network.AWS.Budgets.DescribeBudgets.DescribeBudgetsResponse


-- | Get a single budget
module Network.AWS.Budgets.DescribeBudget

-- | Creates a value of <a>DescribeBudget</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>desAccountId</a> - Undocumented member.</li>
--   <li><a>desBudgetName</a> - Undocumented member.</li>
--   </ul>
describeBudget :: Text -> Text -> DescribeBudget

-- | Request of DescribeBudget
--   
--   <i>See:</i> <a>describeBudget</a> smart constructor.
data DescribeBudget

-- | Undocumented member.
desAccountId :: Lens' DescribeBudget Text

-- | Undocumented member.
desBudgetName :: Lens' DescribeBudget Text

-- | Creates a value of <a>DescribeBudgetResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>desrsBudget</a> - Undocumented member.</li>
--   <li><a>desrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeBudgetResponse :: Int -> DescribeBudgetResponse

-- | Response of DescribeBudget
--   
--   <i>See:</i> <a>describeBudgetResponse</a> smart constructor.
data DescribeBudgetResponse

-- | Undocumented member.
desrsBudget :: Lens' DescribeBudgetResponse (Maybe Budget)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
desrsResponseStatus :: Lens' DescribeBudgetResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.DescribeBudget.DescribeBudgetResponse
instance Data.Data.Data Network.AWS.Budgets.DescribeBudget.DescribeBudgetResponse
instance GHC.Show.Show Network.AWS.Budgets.DescribeBudget.DescribeBudgetResponse
instance GHC.Read.Read Network.AWS.Budgets.DescribeBudget.DescribeBudgetResponse
instance GHC.Classes.Eq Network.AWS.Budgets.DescribeBudget.DescribeBudgetResponse
instance GHC.Generics.Generic Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance Data.Data.Data Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance GHC.Show.Show Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance GHC.Read.Read Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance GHC.Classes.Eq Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance Control.DeepSeq.NFData Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.DescribeBudget.DescribeBudget
instance Control.DeepSeq.NFData Network.AWS.Budgets.DescribeBudget.DescribeBudgetResponse


-- | Delete a Subscriber for a notification
module Network.AWS.Budgets.DeleteSubscriber

-- | Creates a value of <a>DeleteSubscriber</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsAccountId</a> - Undocumented member.</li>
--   <li><a>dsBudgetName</a> - Undocumented member.</li>
--   <li><a>dsNotification</a> - Undocumented member.</li>
--   <li><a>dsSubscriber</a> - Undocumented member.</li>
--   </ul>
deleteSubscriber :: Text -> Text -> Notification -> Subscriber -> DeleteSubscriber

-- | Request of DeleteSubscriber
--   
--   <i>See:</i> <a>deleteSubscriber</a> smart constructor.
data DeleteSubscriber

-- | Undocumented member.
dsAccountId :: Lens' DeleteSubscriber Text

-- | Undocumented member.
dsBudgetName :: Lens' DeleteSubscriber Text

-- | Undocumented member.
dsNotification :: Lens' DeleteSubscriber Notification

-- | Undocumented member.
dsSubscriber :: Lens' DeleteSubscriber Subscriber

-- | Creates a value of <a>DeleteSubscriberResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteSubscriberResponse :: Int -> DeleteSubscriberResponse

-- | Response of DeleteSubscriber
--   
--   <i>See:</i> <a>deleteSubscriberResponse</a> smart constructor.
data DeleteSubscriberResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsrsResponseStatus :: Lens' DeleteSubscriberResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriberResponse
instance Data.Data.Data Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriberResponse
instance GHC.Show.Show Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriberResponse
instance GHC.Read.Read Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriberResponse
instance GHC.Classes.Eq Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriberResponse
instance GHC.Generics.Generic Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance Data.Data.Data Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance GHC.Show.Show Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance GHC.Read.Read Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance GHC.Classes.Eq Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance Control.DeepSeq.NFData Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriber
instance Control.DeepSeq.NFData Network.AWS.Budgets.DeleteSubscriber.DeleteSubscriberResponse


-- | Delete a notification and related subscribers
module Network.AWS.Budgets.DeleteNotification

-- | Creates a value of <a>DeleteNotification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnAccountId</a> - Undocumented member.</li>
--   <li><a>dnBudgetName</a> - Undocumented member.</li>
--   <li><a>dnNotification</a> - Undocumented member.</li>
--   </ul>
deleteNotification :: Text -> Text -> Notification -> DeleteNotification

-- | Request of DeleteNotification
--   
--   <i>See:</i> <a>deleteNotification</a> smart constructor.
data DeleteNotification

-- | Undocumented member.
dnAccountId :: Lens' DeleteNotification Text

-- | Undocumented member.
dnBudgetName :: Lens' DeleteNotification Text

-- | Undocumented member.
dnNotification :: Lens' DeleteNotification Notification

-- | Creates a value of <a>DeleteNotificationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteNotificationResponse :: Int -> DeleteNotificationResponse

-- | Response of DeleteNotification
--   
--   <i>See:</i> <a>deleteNotificationResponse</a> smart constructor.
data DeleteNotificationResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dnrsResponseStatus :: Lens' DeleteNotificationResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.DeleteNotification.DeleteNotificationResponse
instance Data.Data.Data Network.AWS.Budgets.DeleteNotification.DeleteNotificationResponse
instance GHC.Show.Show Network.AWS.Budgets.DeleteNotification.DeleteNotificationResponse
instance GHC.Read.Read Network.AWS.Budgets.DeleteNotification.DeleteNotificationResponse
instance GHC.Classes.Eq Network.AWS.Budgets.DeleteNotification.DeleteNotificationResponse
instance GHC.Generics.Generic Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance Data.Data.Data Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance GHC.Show.Show Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance GHC.Read.Read Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance GHC.Classes.Eq Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance Control.DeepSeq.NFData Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.DeleteNotification.DeleteNotification
instance Control.DeepSeq.NFData Network.AWS.Budgets.DeleteNotification.DeleteNotificationResponse


-- | Delete a budget and related notifications
module Network.AWS.Budgets.DeleteBudget

-- | Creates a value of <a>DeleteBudget</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dAccountId</a> - Undocumented member.</li>
--   <li><a>dBudgetName</a> - Undocumented member.</li>
--   </ul>
deleteBudget :: Text -> Text -> DeleteBudget

-- | Request of DeleteBudget
--   
--   <i>See:</i> <a>deleteBudget</a> smart constructor.
data DeleteBudget

-- | Undocumented member.
dAccountId :: Lens' DeleteBudget Text

-- | Undocumented member.
dBudgetName :: Lens' DeleteBudget Text

-- | Creates a value of <a>DeleteBudgetResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteBudgetResponse :: Int -> DeleteBudgetResponse

-- | Response of DeleteBudget
--   
--   <i>See:</i> <a>deleteBudgetResponse</a> smart constructor.
data DeleteBudgetResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DeleteBudgetResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.DeleteBudget.DeleteBudgetResponse
instance Data.Data.Data Network.AWS.Budgets.DeleteBudget.DeleteBudgetResponse
instance GHC.Show.Show Network.AWS.Budgets.DeleteBudget.DeleteBudgetResponse
instance GHC.Read.Read Network.AWS.Budgets.DeleteBudget.DeleteBudgetResponse
instance GHC.Classes.Eq Network.AWS.Budgets.DeleteBudget.DeleteBudgetResponse
instance GHC.Generics.Generic Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance Data.Data.Data Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance GHC.Show.Show Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance GHC.Read.Read Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance GHC.Classes.Eq Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance Control.DeepSeq.NFData Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.DeleteBudget.DeleteBudget
instance Control.DeepSeq.NFData Network.AWS.Budgets.DeleteBudget.DeleteBudgetResponse


-- | Create a new Subscriber for a notification
module Network.AWS.Budgets.CreateSubscriber

-- | Creates a value of <a>CreateSubscriber</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csAccountId</a> - Undocumented member.</li>
--   <li><a>csBudgetName</a> - Undocumented member.</li>
--   <li><a>csNotification</a> - Undocumented member.</li>
--   <li><a>csSubscriber</a> - Undocumented member.</li>
--   </ul>
createSubscriber :: Text -> Text -> Notification -> Subscriber -> CreateSubscriber

-- | Request of CreateSubscriber
--   
--   <i>See:</i> <a>createSubscriber</a> smart constructor.
data CreateSubscriber

-- | Undocumented member.
csAccountId :: Lens' CreateSubscriber Text

-- | Undocumented member.
csBudgetName :: Lens' CreateSubscriber Text

-- | Undocumented member.
csNotification :: Lens' CreateSubscriber Notification

-- | Undocumented member.
csSubscriber :: Lens' CreateSubscriber Subscriber

-- | Creates a value of <a>CreateSubscriberResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createSubscriberResponse :: Int -> CreateSubscriberResponse

-- | Response of CreateSubscriber
--   
--   <i>See:</i> <a>createSubscriberResponse</a> smart constructor.
data CreateSubscriberResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
csrsResponseStatus :: Lens' CreateSubscriberResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.CreateSubscriber.CreateSubscriberResponse
instance Data.Data.Data Network.AWS.Budgets.CreateSubscriber.CreateSubscriberResponse
instance GHC.Show.Show Network.AWS.Budgets.CreateSubscriber.CreateSubscriberResponse
instance GHC.Read.Read Network.AWS.Budgets.CreateSubscriber.CreateSubscriberResponse
instance GHC.Classes.Eq Network.AWS.Budgets.CreateSubscriber.CreateSubscriberResponse
instance GHC.Generics.Generic Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance Data.Data.Data Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance GHC.Show.Show Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance GHC.Read.Read Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance GHC.Classes.Eq Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance Control.DeepSeq.NFData Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.CreateSubscriber.CreateSubscriber
instance Control.DeepSeq.NFData Network.AWS.Budgets.CreateSubscriber.CreateSubscriberResponse


-- | Create a new Notification with subscribers for a budget
module Network.AWS.Budgets.CreateNotification

-- | Creates a value of <a>CreateNotification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cnAccountId</a> - Undocumented member.</li>
--   <li><a>cnBudgetName</a> - Undocumented member.</li>
--   <li><a>cnNotification</a> - Undocumented member.</li>
--   <li><a>cnSubscribers</a> - Undocumented member.</li>
--   </ul>
createNotification :: Text -> Text -> Notification -> NonEmpty Subscriber -> CreateNotification

-- | Request of CreateNotification
--   
--   <i>See:</i> <a>createNotification</a> smart constructor.
data CreateNotification

-- | Undocumented member.
cnAccountId :: Lens' CreateNotification Text

-- | Undocumented member.
cnBudgetName :: Lens' CreateNotification Text

-- | Undocumented member.
cnNotification :: Lens' CreateNotification Notification

-- | Undocumented member.
cnSubscribers :: Lens' CreateNotification (NonEmpty Subscriber)

-- | Creates a value of <a>CreateNotificationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cnrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createNotificationResponse :: Int -> CreateNotificationResponse

-- | Response of CreateNotification
--   
--   <i>See:</i> <a>createNotificationResponse</a> smart constructor.
data CreateNotificationResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cnrsResponseStatus :: Lens' CreateNotificationResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.CreateNotification.CreateNotificationResponse
instance Data.Data.Data Network.AWS.Budgets.CreateNotification.CreateNotificationResponse
instance GHC.Show.Show Network.AWS.Budgets.CreateNotification.CreateNotificationResponse
instance GHC.Read.Read Network.AWS.Budgets.CreateNotification.CreateNotificationResponse
instance GHC.Classes.Eq Network.AWS.Budgets.CreateNotification.CreateNotificationResponse
instance GHC.Generics.Generic Network.AWS.Budgets.CreateNotification.CreateNotification
instance Data.Data.Data Network.AWS.Budgets.CreateNotification.CreateNotification
instance GHC.Show.Show Network.AWS.Budgets.CreateNotification.CreateNotification
instance GHC.Read.Read Network.AWS.Budgets.CreateNotification.CreateNotification
instance GHC.Classes.Eq Network.AWS.Budgets.CreateNotification.CreateNotification
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.CreateNotification.CreateNotification
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.CreateNotification.CreateNotification
instance Control.DeepSeq.NFData Network.AWS.Budgets.CreateNotification.CreateNotification
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.CreateNotification.CreateNotification
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.CreateNotification.CreateNotification
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.CreateNotification.CreateNotification
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.CreateNotification.CreateNotification
instance Control.DeepSeq.NFData Network.AWS.Budgets.CreateNotification.CreateNotificationResponse


-- | Create a new budget
module Network.AWS.Budgets.CreateBudget

-- | Creates a value of <a>CreateBudget</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbNotificationsWithSubscribers</a> - Undocumented member.</li>
--   <li><a>cbAccountId</a> - Undocumented member.</li>
--   <li><a>cbBudget</a> - Undocumented member.</li>
--   </ul>
createBudget :: Text -> Budget -> CreateBudget

-- | Request of CreateBudget
--   
--   <i>See:</i> <a>createBudget</a> smart constructor.
data CreateBudget

-- | Undocumented member.
cbNotificationsWithSubscribers :: Lens' CreateBudget [NotificationWithSubscribers]

-- | Undocumented member.
cbAccountId :: Lens' CreateBudget Text

-- | Undocumented member.
cbBudget :: Lens' CreateBudget Budget

-- | Creates a value of <a>CreateBudgetResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createBudgetResponse :: Int -> CreateBudgetResponse

-- | Response of CreateBudget
--   
--   <i>See:</i> <a>createBudgetResponse</a> smart constructor.
data CreateBudgetResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cbrsResponseStatus :: Lens' CreateBudgetResponse Int
instance GHC.Generics.Generic Network.AWS.Budgets.CreateBudget.CreateBudgetResponse
instance Data.Data.Data Network.AWS.Budgets.CreateBudget.CreateBudgetResponse
instance GHC.Show.Show Network.AWS.Budgets.CreateBudget.CreateBudgetResponse
instance GHC.Read.Read Network.AWS.Budgets.CreateBudget.CreateBudgetResponse
instance GHC.Classes.Eq Network.AWS.Budgets.CreateBudget.CreateBudgetResponse
instance GHC.Generics.Generic Network.AWS.Budgets.CreateBudget.CreateBudget
instance Data.Data.Data Network.AWS.Budgets.CreateBudget.CreateBudget
instance GHC.Show.Show Network.AWS.Budgets.CreateBudget.CreateBudget
instance GHC.Read.Read Network.AWS.Budgets.CreateBudget.CreateBudget
instance GHC.Classes.Eq Network.AWS.Budgets.CreateBudget.CreateBudget
instance Network.AWS.Types.AWSRequest Network.AWS.Budgets.CreateBudget.CreateBudget
instance Data.Hashable.Class.Hashable Network.AWS.Budgets.CreateBudget.CreateBudget
instance Control.DeepSeq.NFData Network.AWS.Budgets.CreateBudget.CreateBudget
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Budgets.CreateBudget.CreateBudget
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Budgets.CreateBudget.CreateBudget
instance Network.AWS.Data.Path.ToPath Network.AWS.Budgets.CreateBudget.CreateBudget
instance Network.AWS.Data.Query.ToQuery Network.AWS.Budgets.CreateBudget.CreateBudget
instance Control.DeepSeq.NFData Network.AWS.Budgets.CreateBudget.CreateBudgetResponse


-- | All public APIs for AWS Budgets
module Network.AWS.Budgets

-- | API version <tt>2016-10-20</tt> of the Amazon Budgets SDK
--   configuration.
budgets :: Service

-- | This exception is thrown if any request is given an invalid parameter.
--   E.g., if a required Date field is null.
_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This exception is thrown on an unknown internal failure.
_InternalErrorException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This exception is thrown if the paging token is expired - past its TTL
_ExpiredNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This exception is thrown if a requested entity is not found. E.g., if
--   a budget id doesn't exist for an account ID.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This exception is thrown if paging token signature didn't match the
--   token, or the paging token isn't for this request
_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The exception is thrown when customer tries to create a record (e.g.
--   budget) that already exists.
_DuplicateRecordException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The exception is thrown when customer tries to create a record (e.g.
--   budget), but the number this record already exceeds the limitation.
_CreationLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The type of a budget. Can be COST or USAGE.
data BudgetType
Cost :: BudgetType
Usage :: BudgetType

-- | The comparison operator of a notification. Currently we support less
--   than, equal to and greater than.
data ComparisonOperator
EqualTo :: ComparisonOperator
GreaterThan :: ComparisonOperator
LessThan :: ComparisonOperator

-- | The type of a notification. It should be ACTUAL or FORECASTED.
data NotificationType
Actual :: NotificationType
Forecasted :: NotificationType

-- | The subscription type of the subscriber. It can be SMS or EMAIL.
data SubscriptionType
Email :: SubscriptionType
SNS :: SubscriptionType

-- | The time unit of the budget. e.g. weekly, monthly, etc.
data TimeUnit
Annually :: TimeUnit
Monthly :: TimeUnit
Quarterly :: TimeUnit

-- | AWS Budget model
--   
--   <i>See:</i> <a>budget</a> smart constructor.
data Budget

-- | Creates a value of <a>Budget</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bCalculatedSpend</a> - Undocumented member.</li>
--   <li><a>bCostFilters</a> - Undocumented member.</li>
--   <li><a>bBudgetName</a> - Undocumented member.</li>
--   <li><a>bBudgetLimit</a> - Undocumented member.</li>
--   <li><a>bCostTypes</a> - Undocumented member.</li>
--   <li><a>bTimeUnit</a> - Undocumented member.</li>
--   <li><a>bTimePeriod</a> - Undocumented member.</li>
--   <li><a>bBudgetType</a> - Undocumented member.</li>
--   </ul>
budget :: Text -> Spend -> CostTypes -> TimeUnit -> TimePeriod -> BudgetType -> Budget

-- | Undocumented member.
bCalculatedSpend :: Lens' Budget (Maybe CalculatedSpend)

-- | Undocumented member.
bCostFilters :: Lens' Budget (HashMap Text [Text])

-- | Undocumented member.
bBudgetName :: Lens' Budget Text

-- | Undocumented member.
bBudgetLimit :: Lens' Budget Spend

-- | Undocumented member.
bCostTypes :: Lens' Budget CostTypes

-- | Undocumented member.
bTimeUnit :: Lens' Budget TimeUnit

-- | Undocumented member.
bTimePeriod :: Lens' Budget TimePeriod

-- | Undocumented member.
bBudgetType :: Lens' Budget BudgetType

-- | A structure holds the actual and forecasted spend for a budget.
--   
--   <i>See:</i> <a>calculatedSpend</a> smart constructor.
data CalculatedSpend

-- | Creates a value of <a>CalculatedSpend</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csForecastedSpend</a> - Undocumented member.</li>
--   <li><a>csActualSpend</a> - Undocumented member.</li>
--   </ul>
calculatedSpend :: Spend -> CalculatedSpend

-- | Undocumented member.
csForecastedSpend :: Lens' CalculatedSpend (Maybe Spend)

-- | Undocumented member.
csActualSpend :: Lens' CalculatedSpend Spend

-- | This includes the options for getting the cost of a budget.
--   
--   <i>See:</i> <a>costTypes</a> smart constructor.
data CostTypes

-- | Creates a value of <a>CostTypes</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ctIncludeTax</a> - Undocumented member.</li>
--   <li><a>ctIncludeSubscription</a> - Undocumented member.</li>
--   <li><a>ctUseBlended</a> - Undocumented member.</li>
--   </ul>
costTypes :: Bool -> Bool -> Bool -> CostTypes

-- | Undocumented member.
ctIncludeTax :: Lens' CostTypes Bool

-- | Undocumented member.
ctIncludeSubscription :: Lens' CostTypes Bool

-- | Undocumented member.
ctUseBlended :: Lens' CostTypes Bool

-- | Notification model. Each budget may contain multiple notifications
--   with different settings.
--   
--   <i>See:</i> <a>notification</a> smart constructor.
data Notification

-- | Creates a value of <a>Notification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nNotificationType</a> - Undocumented member.</li>
--   <li><a>nComparisonOperator</a> - Undocumented member.</li>
--   <li><a>nThreshold</a> - Undocumented member.</li>
--   </ul>
notification :: NotificationType -> ComparisonOperator -> Double -> Notification

-- | Undocumented member.
nNotificationType :: Lens' Notification NotificationType

-- | Undocumented member.
nComparisonOperator :: Lens' Notification ComparisonOperator

-- | Undocumented member.
nThreshold :: Lens' Notification Double

-- | A structure to relate notification and a list of subscribers who
--   belong to the notification.
--   
--   <i>See:</i> <a>notificationWithSubscribers</a> smart constructor.
data NotificationWithSubscribers

-- | Creates a value of <a>NotificationWithSubscribers</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nwsNotification</a> - Undocumented member.</li>
--   <li><a>nwsSubscribers</a> - Undocumented member.</li>
--   </ul>
notificationWithSubscribers :: Notification -> NonEmpty Subscriber -> NotificationWithSubscribers

-- | Undocumented member.
nwsNotification :: Lens' NotificationWithSubscribers Notification

-- | Undocumented member.
nwsSubscribers :: Lens' NotificationWithSubscribers (NonEmpty Subscriber)

-- | A structure represent either a cost spend or usage spend. Contains an
--   amount and a unit.
--   
--   <i>See:</i> <a>spend</a> smart constructor.
data Spend

-- | Creates a value of <a>Spend</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sAmount</a> - Undocumented member.</li>
--   <li><a>sUnit</a> - Undocumented member.</li>
--   </ul>
spend :: Text -> Text -> Spend

-- | Undocumented member.
sAmount :: Lens' Spend Text

-- | Undocumented member.
sUnit :: Lens' Spend Text

-- | Subscriber model. Each notification may contain multiple subscribers
--   with different addresses.
--   
--   <i>See:</i> <a>subscriber</a> smart constructor.
data Subscriber

-- | Creates a value of <a>Subscriber</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sSubscriptionType</a> - Undocumented member.</li>
--   <li><a>sAddress</a> - Undocumented member.</li>
--   </ul>
subscriber :: SubscriptionType -> Text -> Subscriber

-- | Undocumented member.
sSubscriptionType :: Lens' Subscriber SubscriptionType

-- | Undocumented member.
sAddress :: Lens' Subscriber Text

-- | A time period indicated the start date and end date of a budget.
--   
--   <i>See:</i> <a>timePeriod</a> smart constructor.
data TimePeriod

-- | Creates a value of <a>TimePeriod</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpStart</a> - Undocumented member.</li>
--   <li><a>tpEnd</a> - Undocumented member.</li>
--   </ul>
timePeriod :: UTCTime -> UTCTime -> TimePeriod

-- | Undocumented member.
tpStart :: Lens' TimePeriod UTCTime

-- | Undocumented member.
tpEnd :: Lens' TimePeriod UTCTime
