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


-- | Amazon CloudWatch Events 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.CloudWatchEvents</a> or <a>the AWS
--   documentation</a> to get started.
@package amazonka-cloudwatch-events
@version 1.6.1


module Network.AWS.CloudWatchEvents.Types

-- | API version <tt>2015-10-07</tt> of the Amazon CloudWatch Events SDK
--   configuration.
cloudWatchEvents :: Service

-- | The event bus policy is too long. For more information, see the
--   limits.
_PolicyLengthExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | There is concurrent modification on a rule or target.
_ConcurrentModificationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The event pattern is not valid.
_InvalidEventPatternException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This exception occurs due to unexpected causes.
_InternalException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An entity that you specified does not exist.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You tried to create more rules or add more targets to a rule than is
--   allowed.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data RuleState
Disabled :: RuleState
Enabled :: RuleState

-- | The array properties for the submitted job, such as the size of the
--   array. The array size can be between 2 and 10,000. If you specify
--   array properties for a job, it becomes an array job. This parameter is
--   used only if the target is an AWS Batch job.
--   
--   <i>See:</i> <a>batchArrayProperties</a> smart constructor.
data BatchArrayProperties

-- | Creates a value of <a>BatchArrayProperties</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>bapSize</a> - The size of the array, if this is an array batch
--   job. Valid values are integers between 2 and 10,000.</li>
--   </ul>
batchArrayProperties :: BatchArrayProperties

-- | The size of the array, if this is an array batch job. Valid values are
--   integers between 2 and 10,000.
bapSize :: Lens' BatchArrayProperties (Maybe Int)

-- | The custom parameters to be used when the target is an AWS Batch job.
--   
--   <i>See:</i> <a>batchParameters</a> smart constructor.
data BatchParameters

-- | Creates a value of <a>BatchParameters</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>bpRetryStrategy</a> - The retry strategy to use for failed
--   jobs, if the target is an AWS Batch job. The retry strategy is the
--   number of times to retry the failed job execution. Valid values are 1
--   to 10. When you specify a retry strategy here, it overrides the retry
--   strategy defined in the job definition.</li>
--   <li><a>bpArrayProperties</a> - The array properties for the submitted
--   job, such as the size of the array. The array size can be between 2
--   and 10,000. If you specify array properties for a job, it becomes an
--   array job. This parameter is used only if the target is an AWS Batch
--   job.</li>
--   <li><a>bpJobDefinition</a> - The ARN or name of the job definition to
--   use if the event target is an AWS Batch job. This job definition must
--   already exist.</li>
--   <li><a>bpJobName</a> - The name to use for this execution of the job,
--   if the target is an AWS Batch job.</li>
--   </ul>
batchParameters :: Text -> Text -> BatchParameters

-- | The retry strategy to use for failed jobs, if the target is an AWS
--   Batch job. The retry strategy is the number of times to retry the
--   failed job execution. Valid values are 1 to 10. When you specify a
--   retry strategy here, it overrides the retry strategy defined in the
--   job definition.
bpRetryStrategy :: Lens' BatchParameters (Maybe BatchRetryStrategy)

-- | The array properties for the submitted job, such as the size of the
--   array. The array size can be between 2 and 10,000. If you specify
--   array properties for a job, it becomes an array job. This parameter is
--   used only if the target is an AWS Batch job.
bpArrayProperties :: Lens' BatchParameters (Maybe BatchArrayProperties)

-- | The ARN or name of the job definition to use if the event target is an
--   AWS Batch job. This job definition must already exist.
bpJobDefinition :: Lens' BatchParameters Text

-- | The name to use for this execution of the job, if the target is an AWS
--   Batch job.
bpJobName :: Lens' BatchParameters Text

-- | The retry strategy to use for failed jobs, if the target is an AWS
--   Batch job. If you specify a retry strategy here, it overrides the
--   retry strategy defined in the job definition.
--   
--   <i>See:</i> <a>batchRetryStrategy</a> smart constructor.
data BatchRetryStrategy

-- | Creates a value of <a>BatchRetryStrategy</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>brsAttempts</a> - The number of times to attempt to retry, if
--   the job fails. Valid values are 1 to 10.</li>
--   </ul>
batchRetryStrategy :: BatchRetryStrategy

-- | The number of times to attempt to retry, if the job fails. Valid
--   values are 1 to 10.
brsAttempts :: Lens' BatchRetryStrategy (Maybe Int)

-- | The custom parameters to be used when the target is an Amazon ECS
--   cluster.
--   
--   <i>See:</i> <a>ecsParameters</a> smart constructor.
data EcsParameters

-- | Creates a value of <a>EcsParameters</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>epTaskCount</a> - The number of tasks to create based on the
--   <tt>TaskDefinition</tt> . The default is one.</li>
--   <li><a>epTaskDefinitionARN</a> - The ARN of the task definition to use
--   if the event target is an Amazon ECS cluster.</li>
--   </ul>
ecsParameters :: Text -> EcsParameters

-- | The number of tasks to create based on the <tt>TaskDefinition</tt> .
--   The default is one.
epTaskCount :: Lens' EcsParameters (Maybe Natural)

-- | The ARN of the task definition to use if the event target is an Amazon
--   ECS cluster.
epTaskDefinitionARN :: Lens' EcsParameters Text

-- | Contains the parameters needed for you to provide custom input to a
--   target based on one or more pieces of data extracted from the event.
--   
--   <i>See:</i> <a>inputTransformer</a> smart constructor.
data InputTransformer

-- | Creates a value of <a>InputTransformer</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>itInputPathsMap</a> - Map of JSON paths to be extracted from
--   the event. These are key-value pairs, where each value is a JSON path.
--   You must use JSON dot notation, not bracket notation.</li>
--   <li><a>itInputTemplate</a> - Input template where you can use the
--   values of the keys from <tt>InputPathsMap</tt> to customize the data
--   sent to the target.</li>
--   </ul>
inputTransformer :: Text -> InputTransformer

-- | Map of JSON paths to be extracted from the event. These are key-value
--   pairs, where each value is a JSON path. You must use JSON dot
--   notation, not bracket notation.
itInputPathsMap :: Lens' InputTransformer (HashMap Text Text)

-- | Input template where you can use the values of the keys from
--   <tt>InputPathsMap</tt> to customize the data sent to the target.
itInputTemplate :: Lens' InputTransformer Text

-- | This object enables you to specify a JSON path to extract from the
--   event and use as the partition key for the Amazon Kinesis stream, so
--   that you can control the shard to which the event goes. If you do not
--   include this parameter, the default is to use the <tt>eventId</tt> as
--   the partition key.
--   
--   <i>See:</i> <a>kinesisParameters</a> smart constructor.
data KinesisParameters

-- | Creates a value of <a>KinesisParameters</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>kpPartitionKeyPath</a> - The JSON path to be extracted from the
--   event and used as the partition key. For more information, see
--   <a>Amazon Kinesis Streams Key Concepts</a> in the <i>Amazon Kinesis
--   Streams Developer Guide</i> .</li>
--   </ul>
kinesisParameters :: Text -> KinesisParameters

-- | The JSON path to be extracted from the event and used as the partition
--   key. For more information, see <a>Amazon Kinesis Streams Key
--   Concepts</a> in the <i>Amazon Kinesis Streams Developer Guide</i> .
kpPartitionKeyPath :: Lens' KinesisParameters Text

-- | Represents an event to be submitted.
--   
--   <i>See:</i> <a>putEventsRequestEntry</a> smart constructor.
data PutEventsRequestEntry

-- | Creates a value of <a>PutEventsRequestEntry</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>pereTime</a> - The timestamp of the event, per <a>RFC3339</a> .
--   If no timestamp is provided, the timestamp of the <tt>PutEvents</tt>
--   call is used.</li>
--   <li><a>pereDetailType</a> - Free-form string used to decide what
--   fields to expect in the event detail.</li>
--   <li><a>pereResources</a> - AWS resources, identified by Amazon
--   Resource Name (ARN), which the event primarily concerns. Any number,
--   including zero, may be present.</li>
--   <li><a>pereSource</a> - The source of the event.</li>
--   <li><a>pereDetail</a> - A valid JSON string. There is no other schema
--   imposed. The JSON string may contain fields and nested
--   subobjects.</li>
--   </ul>
putEventsRequestEntry :: PutEventsRequestEntry

-- | The timestamp of the event, per <a>RFC3339</a> . If no timestamp is
--   provided, the timestamp of the <tt>PutEvents</tt> call is used.
pereTime :: Lens' PutEventsRequestEntry (Maybe UTCTime)

-- | Free-form string used to decide what fields to expect in the event
--   detail.
pereDetailType :: Lens' PutEventsRequestEntry (Maybe Text)

-- | AWS resources, identified by Amazon Resource Name (ARN), which the
--   event primarily concerns. Any number, including zero, may be present.
pereResources :: Lens' PutEventsRequestEntry [Text]

-- | The source of the event.
pereSource :: Lens' PutEventsRequestEntry (Maybe Text)

-- | A valid JSON string. There is no other schema imposed. The JSON string
--   may contain fields and nested subobjects.
pereDetail :: Lens' PutEventsRequestEntry (Maybe Text)

-- | Represents an event that failed to be submitted.
--   
--   <i>See:</i> <a>putEventsResultEntry</a> smart constructor.
data PutEventsResultEntry

-- | Creates a value of <a>PutEventsResultEntry</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>pereErrorCode</a> - The error code that indicates why the event
--   submission failed.</li>
--   <li><a>pereErrorMessage</a> - The error message that explains why the
--   event submission failed.</li>
--   <li><a>pereEventId</a> - The ID of the event.</li>
--   </ul>
putEventsResultEntry :: PutEventsResultEntry

-- | The error code that indicates why the event submission failed.
pereErrorCode :: Lens' PutEventsResultEntry (Maybe Text)

-- | The error message that explains why the event submission failed.
pereErrorMessage :: Lens' PutEventsResultEntry (Maybe Text)

-- | The ID of the event.
pereEventId :: Lens' PutEventsResultEntry (Maybe Text)

-- | Represents a target that failed to be added to a rule.
--   
--   <i>See:</i> <a>putTargetsResultEntry</a> smart constructor.
data PutTargetsResultEntry

-- | Creates a value of <a>PutTargetsResultEntry</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>ptreTargetId</a> - The ID of the target.</li>
--   <li><a>ptreErrorCode</a> - The error code that indicates why the
--   target addition failed. If the value is
--   <tt>ConcurrentModificationException</tt> , too many requests were made
--   at the same time.</li>
--   <li><a>ptreErrorMessage</a> - The error message that explains why the
--   target addition failed.</li>
--   </ul>
putTargetsResultEntry :: PutTargetsResultEntry

-- | The ID of the target.
ptreTargetId :: Lens' PutTargetsResultEntry (Maybe Text)

-- | The error code that indicates why the target addition failed. If the
--   value is <tt>ConcurrentModificationException</tt> , too many requests
--   were made at the same time.
ptreErrorCode :: Lens' PutTargetsResultEntry (Maybe Text)

-- | The error message that explains why the target addition failed.
ptreErrorMessage :: Lens' PutTargetsResultEntry (Maybe Text)

-- | Represents a target that failed to be removed from a rule.
--   
--   <i>See:</i> <a>removeTargetsResultEntry</a> smart constructor.
data RemoveTargetsResultEntry

-- | Creates a value of <a>RemoveTargetsResultEntry</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>rtreTargetId</a> - The ID of the target.</li>
--   <li><a>rtreErrorCode</a> - The error code that indicates why the
--   target removal failed. If the value is
--   <tt>ConcurrentModificationException</tt> , too many requests were made
--   at the same time.</li>
--   <li><a>rtreErrorMessage</a> - The error message that explains why the
--   target removal failed.</li>
--   </ul>
removeTargetsResultEntry :: RemoveTargetsResultEntry

-- | The ID of the target.
rtreTargetId :: Lens' RemoveTargetsResultEntry (Maybe Text)

-- | The error code that indicates why the target removal failed. If the
--   value is <tt>ConcurrentModificationException</tt> , too many requests
--   were made at the same time.
rtreErrorCode :: Lens' RemoveTargetsResultEntry (Maybe Text)

-- | The error message that explains why the target removal failed.
rtreErrorMessage :: Lens' RemoveTargetsResultEntry (Maybe Text)

-- | Contains information about a rule in Amazon CloudWatch Events.
--   
--   <i>See:</i> <a>rule</a> smart constructor.
data Rule

-- | Creates a value of <a>Rule</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>rEventPattern</a> - The event pattern of the rule. For more
--   information, see <a>Events and Event Patterns</a> in the <i>Amazon
--   CloudWatch Events User Guide</i> .</li>
--   <li><a>rState</a> - The state of the rule.</li>
--   <li><a>rARN</a> - The Amazon Resource Name (ARN) of the rule.</li>
--   <li><a>rScheduleExpression</a> - The scheduling expression. For
--   example, "cron(0 20 * * ? *)", "rate(5 minutes)".</li>
--   <li><a>rName</a> - The name of the rule.</li>
--   <li><a>rDescription</a> - The description of the rule.</li>
--   <li><a>rRoleARN</a> - The Amazon Resource Name (ARN) of the role that
--   is used for target invocation.</li>
--   </ul>
rule :: Rule

-- | The event pattern of the rule. For more information, see <a>Events and
--   Event Patterns</a> in the <i>Amazon CloudWatch Events User Guide</i> .
rEventPattern :: Lens' Rule (Maybe Text)

-- | The state of the rule.
rState :: Lens' Rule (Maybe RuleState)

-- | The Amazon Resource Name (ARN) of the rule.
rARN :: Lens' Rule (Maybe Text)

-- | The scheduling expression. For example, "cron(0 20 * * ? *)", "rate(5
--   minutes)".
rScheduleExpression :: Lens' Rule (Maybe Text)

-- | The name of the rule.
rName :: Lens' Rule (Maybe Text)

-- | The description of the rule.
rDescription :: Lens' Rule (Maybe Text)

-- | The Amazon Resource Name (ARN) of the role that is used for target
--   invocation.
rRoleARN :: Lens' Rule (Maybe Text)

-- | This parameter contains the criteria (either InstanceIds or a tag)
--   used to specify which EC2 instances are to be sent the command.
--   
--   <i>See:</i> <a>runCommandParameters</a> smart constructor.
data RunCommandParameters

-- | Creates a value of <a>RunCommandParameters</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>rcpRunCommandTargets</a> - Currently, we support including only
--   one RunCommandTarget block, which specifies either an array of
--   InstanceIds or a tag.</li>
--   </ul>
runCommandParameters :: NonEmpty RunCommandTarget -> RunCommandParameters

-- | Currently, we support including only one RunCommandTarget block, which
--   specifies either an array of InstanceIds or a tag.
rcpRunCommandTargets :: Lens' RunCommandParameters (NonEmpty RunCommandTarget)

-- | Information about the EC2 instances that are to be sent the command,
--   specified as key-value pairs. Each <tt>RunCommandTarget</tt> block can
--   include only one key, but this key may specify multiple values.
--   
--   <i>See:</i> <a>runCommandTarget</a> smart constructor.
data RunCommandTarget

-- | Creates a value of <a>RunCommandTarget</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>rctKey</a> - Can be either <tt>tag:</tt> <i>tag-key</i> or
--   <tt>InstanceIds</tt> .</li>
--   <li><a>rctValues</a> - If <tt>Key</tt> is <tt>tag:</tt> <i>tag-key</i>
--   , <tt>Values</tt> is a list of tag values. If <tt>Key</tt> is
--   <tt>InstanceIds</tt> , <tt>Values</tt> is a list of Amazon EC2
--   instance IDs.</li>
--   </ul>
runCommandTarget :: Text -> NonEmpty Text -> RunCommandTarget

-- | Can be either <tt>tag:</tt> <i>tag-key</i> or <tt>InstanceIds</tt> .
rctKey :: Lens' RunCommandTarget Text

-- | If <tt>Key</tt> is <tt>tag:</tt> <i>tag-key</i> , <tt>Values</tt> is a
--   list of tag values. If <tt>Key</tt> is <tt>InstanceIds</tt> ,
--   <tt>Values</tt> is a list of Amazon EC2 instance IDs.
rctValues :: Lens' RunCommandTarget (NonEmpty Text)

-- | This structure includes the custom parameter to be used when the
--   target is an SQS FIFO queue.
--   
--   <i>See:</i> <a>sqsParameters</a> smart constructor.
data SqsParameters

-- | Creates a value of <a>SqsParameters</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>spMessageGroupId</a> - The FIFO message group ID to use as the
--   target.</li>
--   </ul>
sqsParameters :: SqsParameters

-- | The FIFO message group ID to use as the target.
spMessageGroupId :: Lens' SqsParameters (Maybe Text)

-- | Targets are the resources to be invoked when a rule is triggered.
--   Target types include EC2 instances, AWS Lambda functions, Amazon
--   Kinesis streams, Amazon ECS tasks, AWS Step Functions state machines,
--   Run Command, and built-in targets.
--   
--   <i>See:</i> <a>target</a> smart constructor.
data Target

-- | Creates a value of <a>Target</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>tRunCommandParameters</a> - Parameters used when you are using
--   the rule to invoke Amazon EC2 Run Command.</li>
--   <li><a>tKinesisParameters</a> - The custom parameter you can use to
--   control shard assignment, when the target is an Amazon Kinesis stream.
--   If you do not include this parameter, the default is to use the
--   <tt>eventId</tt> as the partition key.</li>
--   <li><a>tInputTransformer</a> - Settings to enable you to provide
--   custom input to a target based on certain event data. You can extract
--   one or more key-value pairs from the event and then use that data to
--   send customized input to the target.</li>
--   <li><a>tSqsParameters</a> - Contains the message group ID to use when
--   the target is a FIFO queue.</li>
--   <li><a>tInput</a> - Valid JSON text passed to the target. In this
--   case, nothing from the event itself is passed to the target. For more
--   information, see <a>The JavaScript Object Notation (JSON) Data
--   Interchange Format</a> .</li>
--   <li><a>tBatchParameters</a> - Contains the job definition, job name,
--   and other parameters if the event target is an AWS Batch job. For more
--   information about AWS Batch, see <a>Jobs</a> in the <i>AWS Batch User
--   Guide</i> .</li>
--   <li><a>tEcsParameters</a> - Contains the Amazon ECS task definition
--   and task count to be used, if the event target is an Amazon ECS task.
--   For more information about Amazon ECS tasks, see <a>Task
--   Definitions</a> in the <i>Amazon EC2 Container Service Developer
--   Guide</i> .</li>
--   <li><a>tInputPath</a> - The value of the JSONPath that is used for
--   extracting part of the matched event when passing it to the target.
--   You must use JSON dot notation, not bracket notation. For more
--   information about JSON paths, see <a>JSONPath</a> .</li>
--   <li><a>tRoleARN</a> - The Amazon Resource Name (ARN) of the IAM role
--   to be used for this target when the rule is triggered. If one rule
--   triggers multiple targets, you can use a different IAM role for each
--   target.</li>
--   <li><a>tId</a> - The ID of the target.</li>
--   <li><a>tARN</a> - The Amazon Resource Name (ARN) of the target.</li>
--   </ul>
target :: Text -> Text -> Target

-- | Parameters used when you are using the rule to invoke Amazon EC2 Run
--   Command.
tRunCommandParameters :: Lens' Target (Maybe RunCommandParameters)

-- | The custom parameter you can use to control shard assignment, when the
--   target is an Amazon Kinesis stream. If you do not include this
--   parameter, the default is to use the <tt>eventId</tt> as the partition
--   key.
tKinesisParameters :: Lens' Target (Maybe KinesisParameters)

-- | Settings to enable you to provide custom input to a target based on
--   certain event data. You can extract one or more key-value pairs from
--   the event and then use that data to send customized input to the
--   target.
tInputTransformer :: Lens' Target (Maybe InputTransformer)

-- | Contains the message group ID to use when the target is a FIFO queue.
tSqsParameters :: Lens' Target (Maybe SqsParameters)

-- | Valid JSON text passed to the target. In this case, nothing from the
--   event itself is passed to the target. For more information, see <a>The
--   JavaScript Object Notation (JSON) Data Interchange Format</a> .
tInput :: Lens' Target (Maybe Text)

-- | Contains the job definition, job name, and other parameters if the
--   event target is an AWS Batch job. For more information about AWS
--   Batch, see <a>Jobs</a> in the <i>AWS Batch User Guide</i> .
tBatchParameters :: Lens' Target (Maybe BatchParameters)

-- | Contains the Amazon ECS task definition and task count to be used, if
--   the event target is an Amazon ECS task. For more information about
--   Amazon ECS tasks, see <a>Task Definitions</a> in the <i>Amazon EC2
--   Container Service Developer Guide</i> .
tEcsParameters :: Lens' Target (Maybe EcsParameters)

-- | The value of the JSONPath that is used for extracting part of the
--   matched event when passing it to the target. You must use JSON dot
--   notation, not bracket notation. For more information about JSON paths,
--   see <a>JSONPath</a> .
tInputPath :: Lens' Target (Maybe Text)

-- | The Amazon Resource Name (ARN) of the IAM role to be used for this
--   target when the rule is triggered. If one rule triggers multiple
--   targets, you can use a different IAM role for each target.
tRoleARN :: Lens' Target (Maybe Text)

-- | The ID of the target.
tId :: Lens' Target Text

-- | The Amazon Resource Name (ARN) of the target.
tARN :: Lens' Target Text


-- | Tests whether the specified event pattern matches the provided event.
--   
--   Most services in AWS treat : or / as the same character in Amazon
--   Resource Names (ARNs). However, CloudWatch Events uses an exact match
--   in event patterns and rules. Be sure to use the correct ARN characters
--   when creating event patterns so that they match the ARN syntax in the
--   event you want to match.
module Network.AWS.CloudWatchEvents.TestEventPattern

-- | Creates a value of <a>TestEventPattern</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>tepEventPattern</a> - The event pattern. For more information,
--   see <a>Events and Event Patterns</a> in the <i>Amazon CloudWatch
--   Events User Guide</i> .</li>
--   <li><a>tepEvent</a> - The event, in JSON format, to test against the
--   event pattern.</li>
--   </ul>
testEventPattern :: Text -> Text -> TestEventPattern

-- | <i>See:</i> <a>testEventPattern</a> smart constructor.
data TestEventPattern

-- | The event pattern. For more information, see <a>Events and Event
--   Patterns</a> in the <i>Amazon CloudWatch Events User Guide</i> .
tepEventPattern :: Lens' TestEventPattern Text

-- | The event, in JSON format, to test against the event pattern.
tepEvent :: Lens' TestEventPattern Text

-- | Creates a value of <a>TestEventPatternResponse</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>teprsResult</a> - Indicates whether the event matches the event
--   pattern.</li>
--   <li><a>teprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
testEventPatternResponse :: Int -> TestEventPatternResponse

-- | <i>See:</i> <a>testEventPatternResponse</a> smart constructor.
data TestEventPatternResponse

-- | Indicates whether the event matches the event pattern.
teprsResult :: Lens' TestEventPatternResponse (Maybe Bool)

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


-- | Removes the specified targets from the specified rule. When the rule
--   is triggered, those targets are no longer be invoked.
--   
--   When you remove a target, when the associated rule triggers, removed
--   targets might continue to be invoked. Please allow a short period of
--   time for changes to take effect.
--   
--   This action can partially fail if too many requests are made at the
--   same time. If that happens, <tt>FailedEntryCount</tt> is non-zero in
--   the response and each entry in <tt>FailedEntries</tt> provides the ID
--   of the failed target and the error code.
module Network.AWS.CloudWatchEvents.RemoveTargets

-- | Creates a value of <a>RemoveTargets</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>rtRule</a> - The name of the rule.</li>
--   <li><a>rtIds</a> - The IDs of the targets to remove from the
--   rule.</li>
--   </ul>
removeTargets :: Text -> NonEmpty Text -> RemoveTargets

-- | <i>See:</i> <a>removeTargets</a> smart constructor.
data RemoveTargets

-- | The name of the rule.
rtRule :: Lens' RemoveTargets Text

-- | The IDs of the targets to remove from the rule.
rtIds :: Lens' RemoveTargets (NonEmpty Text)

-- | Creates a value of <a>RemoveTargetsResponse</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>rtrsFailedEntryCount</a> - The number of failed entries.</li>
--   <li><a>rtrsFailedEntries</a> - The failed target entries.</li>
--   <li><a>rtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
removeTargetsResponse :: Int -> RemoveTargetsResponse

-- | <i>See:</i> <a>removeTargetsResponse</a> smart constructor.
data RemoveTargetsResponse

-- | The number of failed entries.
rtrsFailedEntryCount :: Lens' RemoveTargetsResponse (Maybe Int)

-- | The failed target entries.
rtrsFailedEntries :: Lens' RemoveTargetsResponse [RemoveTargetsResultEntry]

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


-- | Revokes the permission of another AWS account to be able to put events
--   to your default event bus. Specify the account to revoke by the
--   <tt>StatementId</tt> value that you associated with the account when
--   you granted it permission with <tt>PutPermission</tt> . You can find
--   the <tt>StatementId</tt> by using <tt>DescribeEventBus</tt> .
module Network.AWS.CloudWatchEvents.RemovePermission

-- | Creates a value of <a>RemovePermission</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>rpStatementId</a> - The statement ID corresponding to the
--   account that is no longer allowed to put events to the default event
--   bus.</li>
--   </ul>
removePermission :: Text -> RemovePermission

-- | <i>See:</i> <a>removePermission</a> smart constructor.
data RemovePermission

-- | The statement ID corresponding to the account that is no longer
--   allowed to put events to the default event bus.
rpStatementId :: Lens' RemovePermission Text

-- | Creates a value of <a>RemovePermissionResponse</a> with the minimum
--   fields required to make a request.
removePermissionResponse :: RemovePermissionResponse

-- | <i>See:</i> <a>removePermissionResponse</a> smart constructor.
data RemovePermissionResponse
instance GHC.Generics.Generic Network.AWS.CloudWatchEvents.RemovePermission.RemovePermissionResponse
instance Data.Data.Data Network.AWS.CloudWatchEvents.RemovePermission.RemovePermissionResponse
instance GHC.Show.Show Network.AWS.CloudWatchEvents.RemovePermission.RemovePermissionResponse
instance GHC.Read.Read Network.AWS.CloudWatchEvents.RemovePermission.RemovePermissionResponse
instance GHC.Classes.Eq Network.AWS.CloudWatchEvents.RemovePermission.RemovePermissionResponse
instance GHC.Generics.Generic Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance Data.Data.Data Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance GHC.Show.Show Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance GHC.Read.Read Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance GHC.Classes.Eq Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance Network.AWS.Types.AWSRequest Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance Control.DeepSeq.NFData Network.AWS.CloudWatchEvents.RemovePermission.RemovePermissionResponse
instance Data.Hashable.Class.Hashable Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance Control.DeepSeq.NFData Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance Network.AWS.Data.Path.ToPath Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission
instance Network.AWS.Data.Query.ToQuery Network.AWS.CloudWatchEvents.RemovePermission.RemovePermission


-- | Adds the specified targets to the specified rule, or updates the
--   targets if they are already associated with the rule.
--   
--   Targets are the resources that are invoked when a rule is triggered.
--   
--   You can configure the following as targets for CloudWatch Events:
--   
--   <ul>
--   <li>EC2 instances</li>
--   <li>AWS Lambda functions</li>
--   <li>Streams in Amazon Kinesis Streams</li>
--   <li>Delivery streams in Amazon Kinesis Firehose</li>
--   <li>Amazon ECS tasks</li>
--   <li>AWS Step Functions state machines</li>
--   <li>AWS Batch jobs</li>
--   <li>Pipelines in Amazon Code Pipeline</li>
--   <li>Amazon Inspector assessment templates</li>
--   <li>Amazon SNS topics</li>
--   <li>Amazon SQS queues, including FIFO queues</li>
--   <li>The default event bus of another AWS account</li>
--   </ul>
--   
--   Note that creating rules with built-in targets is supported only in
--   the AWS Management Console.
--   
--   For some target types, <tt>PutTargets</tt> provides target-specific
--   parameters. If the target is an Amazon Kinesis stream, you can
--   optionally specify which shard the event goes to by using the
--   <tt>KinesisParameters</tt> argument. To invoke a command on multiple
--   EC2 instances with one rule, you can use the
--   <tt>RunCommandParameters</tt> field.
--   
--   To be able to make API calls against the resources that you own,
--   Amazon CloudWatch Events needs the appropriate permissions. For AWS
--   Lambda and Amazon SNS resources, CloudWatch Events relies on
--   resource-based policies. For EC2 instances, Amazon Kinesis streams,
--   and AWS Step Functions state machines, CloudWatch Events relies on IAM
--   roles that you specify in the <tt>RoleARN</tt> argument in
--   <tt>PutTargets</tt> . For more information, see <a>Authentication and
--   Access Control</a> in the <i>Amazon CloudWatch Events User Guide</i> .
--   
--   If another AWS account is in the same region and has granted you
--   permission (using <tt>PutPermission</tt> ), you can send events to
--   that account by setting that account's event bus as a target of the
--   rules in your account. To send the matched events to the other
--   account, specify that account's event bus as the <tt>Arn</tt> when you
--   run <tt>PutTargets</tt> . If your account sends events to another
--   account, your account is charged for each sent event. Each event sent
--   to antoher account is charged as a custom event. The account receiving
--   the event is not charged. For more information on pricing, see
--   <a>Amazon CloudWatch Pricing</a> .
--   
--   For more information about enabling cross-account events, see
--   <tt>PutPermission</tt> .
--   
--   <b>Input</b> , <b>InputPath</b> and <b>InputTransformer</b> are
--   mutually exclusive and optional parameters of a target. When a rule is
--   triggered due to a matched event:
--   
--   <ul>
--   <li>If none of the following arguments are specified for a target,
--   then the entire event is passed to the target in JSON form (unless the
--   target is Amazon EC2 Run Command or Amazon ECS task, in which case
--   nothing from the event is passed to the target).</li>
--   <li>If <b>Input</b> is specified in the form of valid JSON, then the
--   matched event is overridden with this constant.</li>
--   <li>If <b>InputPath</b> is specified in the form of JSONPath (for
--   example, <tt>&gt; .detail</tt> ), then only the part of the event
--   specified in the path is passed to the target (for example, only the
--   detail part of the event is passed).</li>
--   <li>If <b>InputTransformer</b> is specified, then one or more
--   specified JSONPaths are extracted from the event and used as values in
--   a template that you specify as the input to the target.</li>
--   </ul>
--   
--   When you specify <tt>InputPath</tt> or <tt>InputTransformer</tt> , you
--   must use JSON dot notation, not bracket notation.
--   
--   When you add targets to a rule and the associated rule triggers soon
--   after, new or updated targets might not be immediately invoked. Please
--   allow a short period of time for changes to take effect.
--   
--   This action can partially fail if too many requests are made at the
--   same time. If that happens, <tt>FailedEntryCount</tt> is non-zero in
--   the response and each entry in <tt>FailedEntries</tt> provides the ID
--   of the failed target and the error code.
module Network.AWS.CloudWatchEvents.PutTargets

-- | Creates a value of <a>PutTargets</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>ptRule</a> - The name of the rule.</li>
--   <li><a>ptTargets</a> - The targets to update or add to the rule.</li>
--   </ul>
putTargets :: Text -> NonEmpty Target -> PutTargets

-- | <i>See:</i> <a>putTargets</a> smart constructor.
data PutTargets

-- | The name of the rule.
ptRule :: Lens' PutTargets Text

-- | The targets to update or add to the rule.
ptTargets :: Lens' PutTargets (NonEmpty Target)

-- | Creates a value of <a>PutTargetsResponse</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>ptrsFailedEntryCount</a> - The number of failed entries.</li>
--   <li><a>ptrsFailedEntries</a> - The failed target entries.</li>
--   <li><a>ptrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putTargetsResponse :: Int -> PutTargetsResponse

-- | <i>See:</i> <a>putTargetsResponse</a> smart constructor.
data PutTargetsResponse

-- | The number of failed entries.
ptrsFailedEntryCount :: Lens' PutTargetsResponse (Maybe Int)

-- | The failed target entries.
ptrsFailedEntries :: Lens' PutTargetsResponse [PutTargetsResultEntry]

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


-- | Creates or updates the specified rule. Rules are enabled by default,
--   or based on value of the state. You can disable a rule using
--   <tt>DisableRule</tt> .
--   
--   If you are updating an existing rule, the rule is completely replaced
--   with what you specify in this <tt>PutRule</tt> command. If you omit
--   arguments in <tt>PutRule</tt> , the old values for those arguments are
--   not kept. Instead, they are replaced with null values.
--   
--   When you create or update a rule, incoming events might not
--   immediately start matching to new or updated rules. Please allow a
--   short period of time for changes to take effect.
--   
--   A rule must contain at least an EventPattern or ScheduleExpression.
--   Rules with EventPatterns are triggered when a matching event is
--   observed. Rules with ScheduleExpressions self-trigger based on the
--   given schedule. A rule can have both an EventPattern and a
--   ScheduleExpression, in which case the rule triggers on matching events
--   as well as on a schedule.
--   
--   Most services in AWS treat : or / as the same character in Amazon
--   Resource Names (ARNs). However, CloudWatch Events uses an exact match
--   in event patterns and rules. Be sure to use the correct ARN characters
--   when creating event patterns so that they match the ARN syntax in the
--   event you want to match.
module Network.AWS.CloudWatchEvents.PutRule

-- | Creates a value of <a>PutRule</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>prEventPattern</a> - The event pattern. For more information,
--   see <a>Events and Event Patterns</a> in the <i>Amazon CloudWatch
--   Events User Guide</i> .</li>
--   <li><a>prState</a> - Indicates whether the rule is enabled or
--   disabled.</li>
--   <li><a>prScheduleExpression</a> - The scheduling expression. For
--   example, "cron(0 20 * * ? *)" or "rate(5 minutes)".</li>
--   <li><a>prDescription</a> - A description of the rule.</li>
--   <li><a>prRoleARN</a> - The Amazon Resource Name (ARN) of the IAM role
--   associated with the rule.</li>
--   <li><a>prName</a> - The name of the rule that you are creating or
--   updating.</li>
--   </ul>
putRule :: Text -> PutRule

-- | <i>See:</i> <a>putRule</a> smart constructor.
data PutRule

-- | The event pattern. For more information, see <a>Events and Event
--   Patterns</a> in the <i>Amazon CloudWatch Events User Guide</i> .
prEventPattern :: Lens' PutRule (Maybe Text)

-- | Indicates whether the rule is enabled or disabled.
prState :: Lens' PutRule (Maybe RuleState)

-- | The scheduling expression. For example, "cron(0 20 * * ? *)" or
--   "rate(5 minutes)".
prScheduleExpression :: Lens' PutRule (Maybe Text)

-- | A description of the rule.
prDescription :: Lens' PutRule (Maybe Text)

-- | The Amazon Resource Name (ARN) of the IAM role associated with the
--   rule.
prRoleARN :: Lens' PutRule (Maybe Text)

-- | The name of the rule that you are creating or updating.
prName :: Lens' PutRule Text

-- | Creates a value of <a>PutRuleResponse</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>prrsRuleARN</a> - The Amazon Resource Name (ARN) of the
--   rule.</li>
--   <li><a>prrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putRuleResponse :: Int -> PutRuleResponse

-- | <i>See:</i> <a>putRuleResponse</a> smart constructor.
data PutRuleResponse

-- | The Amazon Resource Name (ARN) of the rule.
prrsRuleARN :: Lens' PutRuleResponse (Maybe Text)

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


-- | Running <tt>PutPermission</tt> permits the specified AWS account to
--   put events to your account's default <i>event bus</i> . CloudWatch
--   Events rules in your account are triggered by these events arriving to
--   your default event bus.
--   
--   For another account to send events to your account, that external
--   account must have a CloudWatch Events rule with your account's default
--   event bus as a target.
--   
--   To enable multiple AWS accounts to put events to your default event
--   bus, run <tt>PutPermission</tt> once for each of these accounts.
--   
--   The permission policy on the default event bus cannot exceed 10KB in
--   size.
module Network.AWS.CloudWatchEvents.PutPermission

-- | Creates a value of <a>PutPermission</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>ppAction</a> - The action that you are enabling the other
--   account to perform. Currently, this must be <tt>events:PutEvents</tt>
--   .</li>
--   <li><a>ppPrincipal</a> - The 12-digit AWS account ID that you are
--   permitting to put events to your default event bus. Specify "*" to
--   permit any account to put events to your default event bus. If you
--   specify "*", avoid creating rules that may match undesirable events.
--   To create more secure rules, make sure that the event pattern for each
--   rule contains an <tt>account</tt> field with a specific account ID
--   from which to receive events. Rules with an account field do not match
--   any events sent from other accounts.</li>
--   <li><a>ppStatementId</a> - An identifier string for the external
--   account that you are granting permissions to. If you later want to
--   revoke the permission for this external account, specify this
--   <tt>StatementId</tt> when you run <tt>RemovePermission</tt> .</li>
--   </ul>
putPermission :: Text -> Text -> Text -> PutPermission

-- | <i>See:</i> <a>putPermission</a> smart constructor.
data PutPermission

-- | The action that you are enabling the other account to perform.
--   Currently, this must be <tt>events:PutEvents</tt> .
ppAction :: Lens' PutPermission Text

-- | The 12-digit AWS account ID that you are permitting to put events to
--   your default event bus. Specify "*" to permit any account to put
--   events to your default event bus. If you specify "*", avoid creating
--   rules that may match undesirable events. To create more secure rules,
--   make sure that the event pattern for each rule contains an
--   <tt>account</tt> field with a specific account ID from which to
--   receive events. Rules with an account field do not match any events
--   sent from other accounts.
ppPrincipal :: Lens' PutPermission Text

-- | An identifier string for the external account that you are granting
--   permissions to. If you later want to revoke the permission for this
--   external account, specify this <tt>StatementId</tt> when you run
--   <tt>RemovePermission</tt> .
ppStatementId :: Lens' PutPermission Text

-- | Creates a value of <a>PutPermissionResponse</a> with the minimum
--   fields required to make a request.
putPermissionResponse :: PutPermissionResponse

-- | <i>See:</i> <a>putPermissionResponse</a> smart constructor.
data PutPermissionResponse
instance GHC.Generics.Generic Network.AWS.CloudWatchEvents.PutPermission.PutPermissionResponse
instance Data.Data.Data Network.AWS.CloudWatchEvents.PutPermission.PutPermissionResponse
instance GHC.Show.Show Network.AWS.CloudWatchEvents.PutPermission.PutPermissionResponse
instance GHC.Read.Read Network.AWS.CloudWatchEvents.PutPermission.PutPermissionResponse
instance GHC.Classes.Eq Network.AWS.CloudWatchEvents.PutPermission.PutPermissionResponse
instance GHC.Generics.Generic Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance Data.Data.Data Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance GHC.Show.Show Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance GHC.Read.Read Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance GHC.Classes.Eq Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance Network.AWS.Types.AWSRequest Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance Control.DeepSeq.NFData Network.AWS.CloudWatchEvents.PutPermission.PutPermissionResponse
instance Data.Hashable.Class.Hashable Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance Control.DeepSeq.NFData Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance Network.AWS.Data.Path.ToPath Network.AWS.CloudWatchEvents.PutPermission.PutPermission
instance Network.AWS.Data.Query.ToQuery Network.AWS.CloudWatchEvents.PutPermission.PutPermission


-- | Sends custom events to Amazon CloudWatch Events so that they can be
--   matched to rules.
module Network.AWS.CloudWatchEvents.PutEvents

-- | Creates a value of <a>PutEvents</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>peEntries</a> - The entry that defines an event in your system.
--   You can specify several parameters for the entry such as the source
--   and type of the event, resources associated with the event, and so
--   on.</li>
--   </ul>
putEvents :: NonEmpty PutEventsRequestEntry -> PutEvents

-- | <i>See:</i> <a>putEvents</a> smart constructor.
data PutEvents

-- | The entry that defines an event in your system. You can specify
--   several parameters for the entry such as the source and type of the
--   event, resources associated with the event, and so on.
peEntries :: Lens' PutEvents (NonEmpty PutEventsRequestEntry)

-- | Creates a value of <a>PutEventsResponse</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>persFailedEntryCount</a> - The number of failed entries.</li>
--   <li><a>persEntries</a> - The successfully and unsuccessfully ingested
--   events results. If the ingestion was successful, the entry has the
--   event ID in it. Otherwise, you can use the error code and error
--   message to identify the problem with the entry.</li>
--   <li><a>persResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putEventsResponse :: Int -> PutEventsResponse

-- | <i>See:</i> <a>putEventsResponse</a> smart constructor.
data PutEventsResponse

-- | The number of failed entries.
persFailedEntryCount :: Lens' PutEventsResponse (Maybe Int)

-- | The successfully and unsuccessfully ingested events results. If the
--   ingestion was successful, the entry has the event ID in it. Otherwise,
--   you can use the error code and error message to identify the problem
--   with the entry.
persEntries :: Lens' PutEventsResponse [PutEventsResultEntry]

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


-- | Lists the targets assigned to the specified rule.
module Network.AWS.CloudWatchEvents.ListTargetsByRule

-- | Creates a value of <a>ListTargetsByRule</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>ltbrNextToken</a> - The token returned by a previous call to
--   retrieve the next set of results.</li>
--   <li><a>ltbrLimit</a> - The maximum number of results to return.</li>
--   <li><a>ltbrRule</a> - The name of the rule.</li>
--   </ul>
listTargetsByRule :: Text -> ListTargetsByRule

-- | <i>See:</i> <a>listTargetsByRule</a> smart constructor.
data ListTargetsByRule

-- | The token returned by a previous call to retrieve the next set of
--   results.
ltbrNextToken :: Lens' ListTargetsByRule (Maybe Text)

-- | The maximum number of results to return.
ltbrLimit :: Lens' ListTargetsByRule (Maybe Natural)

-- | The name of the rule.
ltbrRule :: Lens' ListTargetsByRule Text

-- | Creates a value of <a>ListTargetsByRuleResponse</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>ltbrrsNextToken</a> - Indicates whether there are additional
--   results to retrieve. If there are no more results, the value is
--   null.</li>
--   <li><a>ltbrrsTargets</a> - The targets assigned to the rule.</li>
--   <li><a>ltbrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listTargetsByRuleResponse :: Int -> ListTargetsByRuleResponse

-- | <i>See:</i> <a>listTargetsByRuleResponse</a> smart constructor.
data ListTargetsByRuleResponse

-- | Indicates whether there are additional results to retrieve. If there
--   are no more results, the value is null.
ltbrrsNextToken :: Lens' ListTargetsByRuleResponse (Maybe Text)

-- | The targets assigned to the rule.
ltbrrsTargets :: Lens' ListTargetsByRuleResponse (Maybe (NonEmpty Target))

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


-- | Lists your Amazon CloudWatch Events rules. You can either list all the
--   rules or you can provide a prefix to match to the rule names.
module Network.AWS.CloudWatchEvents.ListRules

-- | Creates a value of <a>ListRules</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>lrNextToken</a> - The token returned by a previous call to
--   retrieve the next set of results.</li>
--   <li><a>lrNamePrefix</a> - The prefix matching the rule name.</li>
--   <li><a>lrLimit</a> - The maximum number of results to return.</li>
--   </ul>
listRules :: ListRules

-- | <i>See:</i> <a>listRules</a> smart constructor.
data ListRules

-- | The token returned by a previous call to retrieve the next set of
--   results.
lrNextToken :: Lens' ListRules (Maybe Text)

-- | The prefix matching the rule name.
lrNamePrefix :: Lens' ListRules (Maybe Text)

-- | The maximum number of results to return.
lrLimit :: Lens' ListRules (Maybe Natural)

-- | Creates a value of <a>ListRulesResponse</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>lrrsRules</a> - The rules that match the specified
--   criteria.</li>
--   <li><a>lrrsNextToken</a> - Indicates whether there are additional
--   results to retrieve. If there are no more results, the value is
--   null.</li>
--   <li><a>lrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listRulesResponse :: Int -> ListRulesResponse

-- | <i>See:</i> <a>listRulesResponse</a> smart constructor.
data ListRulesResponse

-- | The rules that match the specified criteria.
lrrsRules :: Lens' ListRulesResponse [Rule]

-- | Indicates whether there are additional results to retrieve. If there
--   are no more results, the value is null.
lrrsNextToken :: Lens' ListRulesResponse (Maybe Text)

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


-- | Lists the rules for the specified target. You can see which of the
--   rules in Amazon CloudWatch Events can invoke a specific target in your
--   account.
module Network.AWS.CloudWatchEvents.ListRuleNamesByTarget

-- | Creates a value of <a>ListRuleNamesByTarget</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>lrnbtNextToken</a> - The token returned by a previous call to
--   retrieve the next set of results.</li>
--   <li><a>lrnbtLimit</a> - The maximum number of results to return.</li>
--   <li><a>lrnbtTargetARN</a> - The Amazon Resource Name (ARN) of the
--   target resource.</li>
--   </ul>
listRuleNamesByTarget :: Text -> ListRuleNamesByTarget

-- | <i>See:</i> <a>listRuleNamesByTarget</a> smart constructor.
data ListRuleNamesByTarget

-- | The token returned by a previous call to retrieve the next set of
--   results.
lrnbtNextToken :: Lens' ListRuleNamesByTarget (Maybe Text)

-- | The maximum number of results to return.
lrnbtLimit :: Lens' ListRuleNamesByTarget (Maybe Natural)

-- | The Amazon Resource Name (ARN) of the target resource.
lrnbtTargetARN :: Lens' ListRuleNamesByTarget Text

-- | Creates a value of <a>ListRuleNamesByTargetResponse</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>lrnbtrsRuleNames</a> - The names of the rules that can invoke
--   the given target.</li>
--   <li><a>lrnbtrsNextToken</a> - Indicates whether there are additional
--   results to retrieve. If there are no more results, the value is
--   null.</li>
--   <li><a>lrnbtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listRuleNamesByTargetResponse :: Int -> ListRuleNamesByTargetResponse

-- | <i>See:</i> <a>listRuleNamesByTargetResponse</a> smart constructor.
data ListRuleNamesByTargetResponse

-- | The names of the rules that can invoke the given target.
lrnbtrsRuleNames :: Lens' ListRuleNamesByTargetResponse [Text]

-- | Indicates whether there are additional results to retrieve. If there
--   are no more results, the value is null.
lrnbtrsNextToken :: Lens' ListRuleNamesByTargetResponse (Maybe Text)

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


-- | Enables the specified rule. If the rule does not exist, the operation
--   fails.
--   
--   When you enable a rule, incoming events might not immediately start
--   matching to a newly enabled rule. Please allow a short period of time
--   for changes to take effect.
module Network.AWS.CloudWatchEvents.EnableRule

-- | Creates a value of <a>EnableRule</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>erName</a> - The name of the rule.</li>
--   </ul>
enableRule :: Text -> EnableRule

-- | <i>See:</i> <a>enableRule</a> smart constructor.
data EnableRule

-- | The name of the rule.
erName :: Lens' EnableRule Text

-- | Creates a value of <a>EnableRuleResponse</a> with the minimum fields
--   required to make a request.
enableRuleResponse :: EnableRuleResponse

-- | <i>See:</i> <a>enableRuleResponse</a> smart constructor.
data EnableRuleResponse
instance GHC.Generics.Generic Network.AWS.CloudWatchEvents.EnableRule.EnableRuleResponse
instance Data.Data.Data Network.AWS.CloudWatchEvents.EnableRule.EnableRuleResponse
instance GHC.Show.Show Network.AWS.CloudWatchEvents.EnableRule.EnableRuleResponse
instance GHC.Read.Read Network.AWS.CloudWatchEvents.EnableRule.EnableRuleResponse
instance GHC.Classes.Eq Network.AWS.CloudWatchEvents.EnableRule.EnableRuleResponse
instance GHC.Generics.Generic Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance Data.Data.Data Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance GHC.Show.Show Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance GHC.Read.Read Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance GHC.Classes.Eq Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance Network.AWS.Types.AWSRequest Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance Control.DeepSeq.NFData Network.AWS.CloudWatchEvents.EnableRule.EnableRuleResponse
instance Data.Hashable.Class.Hashable Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance Control.DeepSeq.NFData Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance Network.AWS.Data.Path.ToPath Network.AWS.CloudWatchEvents.EnableRule.EnableRule
instance Network.AWS.Data.Query.ToQuery Network.AWS.CloudWatchEvents.EnableRule.EnableRule


-- | Disables the specified rule. A disabled rule won't match any events,
--   and won't self-trigger if it has a schedule expression.
--   
--   When you disable a rule, incoming events might continue to match to
--   the disabled rule. Please allow a short period of time for changes to
--   take effect.
module Network.AWS.CloudWatchEvents.DisableRule

-- | Creates a value of <a>DisableRule</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>dName</a> - The name of the rule.</li>
--   </ul>
disableRule :: Text -> DisableRule

-- | <i>See:</i> <a>disableRule</a> smart constructor.
data DisableRule

-- | The name of the rule.
dName :: Lens' DisableRule Text

-- | Creates a value of <a>DisableRuleResponse</a> with the minimum fields
--   required to make a request.
disableRuleResponse :: DisableRuleResponse

-- | <i>See:</i> <a>disableRuleResponse</a> smart constructor.
data DisableRuleResponse
instance GHC.Generics.Generic Network.AWS.CloudWatchEvents.DisableRule.DisableRuleResponse
instance Data.Data.Data Network.AWS.CloudWatchEvents.DisableRule.DisableRuleResponse
instance GHC.Show.Show Network.AWS.CloudWatchEvents.DisableRule.DisableRuleResponse
instance GHC.Read.Read Network.AWS.CloudWatchEvents.DisableRule.DisableRuleResponse
instance GHC.Classes.Eq Network.AWS.CloudWatchEvents.DisableRule.DisableRuleResponse
instance GHC.Generics.Generic Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance Data.Data.Data Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance GHC.Show.Show Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance GHC.Read.Read Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance GHC.Classes.Eq Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance Network.AWS.Types.AWSRequest Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance Control.DeepSeq.NFData Network.AWS.CloudWatchEvents.DisableRule.DisableRuleResponse
instance Data.Hashable.Class.Hashable Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance Control.DeepSeq.NFData Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance Network.AWS.Data.Path.ToPath Network.AWS.CloudWatchEvents.DisableRule.DisableRule
instance Network.AWS.Data.Query.ToQuery Network.AWS.CloudWatchEvents.DisableRule.DisableRule


-- | Describes the specified rule.
module Network.AWS.CloudWatchEvents.DescribeRule

-- | Creates a value of <a>DescribeRule</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>desName</a> - The name of the rule.</li>
--   </ul>
describeRule :: Text -> DescribeRule

-- | <i>See:</i> <a>describeRule</a> smart constructor.
data DescribeRule

-- | The name of the rule.
desName :: Lens' DescribeRule Text

-- | Creates a value of <a>DescribeRuleResponse</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>drrsEventPattern</a> - The event pattern. For more information,
--   see <a>Events and Event Patterns</a> in the <i>Amazon CloudWatch
--   Events User Guide</i> .</li>
--   <li><a>drrsState</a> - Specifies whether the rule is enabled or
--   disabled.</li>
--   <li><a>drrsARN</a> - The Amazon Resource Name (ARN) of the rule.</li>
--   <li><a>drrsScheduleExpression</a> - The scheduling expression. For
--   example, "cron(0 20 * * ? *)", "rate(5 minutes)".</li>
--   <li><a>drrsName</a> - The name of the rule.</li>
--   <li><a>drrsDescription</a> - The description of the rule.</li>
--   <li><a>drrsRoleARN</a> - The Amazon Resource Name (ARN) of the IAM
--   role associated with the rule.</li>
--   <li><a>drrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeRuleResponse :: Int -> DescribeRuleResponse

-- | <i>See:</i> <a>describeRuleResponse</a> smart constructor.
data DescribeRuleResponse

-- | The event pattern. For more information, see <a>Events and Event
--   Patterns</a> in the <i>Amazon CloudWatch Events User Guide</i> .
drrsEventPattern :: Lens' DescribeRuleResponse (Maybe Text)

-- | Specifies whether the rule is enabled or disabled.
drrsState :: Lens' DescribeRuleResponse (Maybe RuleState)

-- | The Amazon Resource Name (ARN) of the rule.
drrsARN :: Lens' DescribeRuleResponse (Maybe Text)

-- | The scheduling expression. For example, "cron(0 20 * * ? *)", "rate(5
--   minutes)".
drrsScheduleExpression :: Lens' DescribeRuleResponse (Maybe Text)

-- | The name of the rule.
drrsName :: Lens' DescribeRuleResponse (Maybe Text)

-- | The description of the rule.
drrsDescription :: Lens' DescribeRuleResponse (Maybe Text)

-- | The Amazon Resource Name (ARN) of the IAM role associated with the
--   rule.
drrsRoleARN :: Lens' DescribeRuleResponse (Maybe Text)

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


-- | Displays the external AWS accounts that are permitted to write events
--   to your account using your account's event bus, and the associated
--   policy. To enable your account to receive events from other accounts,
--   use <tt>PutPermission</tt> .
module Network.AWS.CloudWatchEvents.DescribeEventBus

-- | Creates a value of <a>DescribeEventBus</a> with the minimum fields
--   required to make a request.
describeEventBus :: DescribeEventBus

-- | <i>See:</i> <a>describeEventBus</a> smart constructor.
data DescribeEventBus

-- | Creates a value of <a>DescribeEventBusResponse</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>debrsARN</a> - The Amazon Resource Name (ARN) of the account
--   permitted to write events to the current account.</li>
--   <li><a>debrsName</a> - The name of the event bus. Currently, this is
--   always <tt>default</tt> .</li>
--   <li><a>debrsPolicy</a> - The policy that enables the external account
--   to send events to your account.</li>
--   <li><a>debrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEventBusResponse :: Int -> DescribeEventBusResponse

-- | <i>See:</i> <a>describeEventBusResponse</a> smart constructor.
data DescribeEventBusResponse

-- | The Amazon Resource Name (ARN) of the account permitted to write
--   events to the current account.
debrsARN :: Lens' DescribeEventBusResponse (Maybe Text)

-- | The name of the event bus. Currently, this is always <tt>default</tt>
--   .
debrsName :: Lens' DescribeEventBusResponse (Maybe Text)

-- | The policy that enables the external account to send events to your
--   account.
debrsPolicy :: Lens' DescribeEventBusResponse (Maybe Text)

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


-- | Deletes the specified rule.
--   
--   You must remove all targets from a rule using <tt>RemoveTargets</tt>
--   before you can delete the rule.
--   
--   When you delete a rule, incoming events might continue to match to the
--   deleted rule. Please allow a short period of time for changes to take
--   effect.
module Network.AWS.CloudWatchEvents.DeleteRule

-- | Creates a value of <a>DeleteRule</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>drName</a> - The name of the rule.</li>
--   </ul>
deleteRule :: Text -> DeleteRule

-- | <i>See:</i> <a>deleteRule</a> smart constructor.
data DeleteRule

-- | The name of the rule.
drName :: Lens' DeleteRule Text

-- | Creates a value of <a>DeleteRuleResponse</a> with the minimum fields
--   required to make a request.
deleteRuleResponse :: DeleteRuleResponse

-- | <i>See:</i> <a>deleteRuleResponse</a> smart constructor.
data DeleteRuleResponse
instance GHC.Generics.Generic Network.AWS.CloudWatchEvents.DeleteRule.DeleteRuleResponse
instance Data.Data.Data Network.AWS.CloudWatchEvents.DeleteRule.DeleteRuleResponse
instance GHC.Show.Show Network.AWS.CloudWatchEvents.DeleteRule.DeleteRuleResponse
instance GHC.Read.Read Network.AWS.CloudWatchEvents.DeleteRule.DeleteRuleResponse
instance GHC.Classes.Eq Network.AWS.CloudWatchEvents.DeleteRule.DeleteRuleResponse
instance GHC.Generics.Generic Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance Data.Data.Data Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance GHC.Show.Show Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance GHC.Read.Read Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance GHC.Classes.Eq Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance Network.AWS.Types.AWSRequest Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance Control.DeepSeq.NFData Network.AWS.CloudWatchEvents.DeleteRule.DeleteRuleResponse
instance Data.Hashable.Class.Hashable Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance Control.DeepSeq.NFData Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance Network.AWS.Data.Path.ToPath Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule
instance Network.AWS.Data.Query.ToQuery Network.AWS.CloudWatchEvents.DeleteRule.DeleteRule


module Network.AWS.CloudWatchEvents.Waiters


-- | Amazon CloudWatch Events helps you to respond to state changes in your
--   AWS resources. When your resources change state, they automatically
--   send events into an event stream. You can create rules that match
--   selected events in the stream and route them to targets to take
--   action. You can also use rules to take action on a pre-determined
--   schedule. For example, you can configure rules to:
--   
--   <ul>
--   <li>Automatically invoke an AWS Lambda function to update DNS entries
--   when an event notifies you that Amazon EC2 instance enters the running
--   state.</li>
--   <li>Direct specific API records from CloudTrail to an Amazon Kinesis
--   stream for detailed analysis of potential security or availability
--   risks.</li>
--   <li>Periodically invoke a built-in target to create a snapshot of an
--   Amazon EBS volume.</li>
--   </ul>
--   
--   For more information about the features of Amazon CloudWatch Events,
--   see the <a>Amazon CloudWatch Events User Guide</a> .
module Network.AWS.CloudWatchEvents

-- | API version <tt>2015-10-07</tt> of the Amazon CloudWatch Events SDK
--   configuration.
cloudWatchEvents :: Service

-- | The event bus policy is too long. For more information, see the
--   limits.
_PolicyLengthExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | There is concurrent modification on a rule or target.
_ConcurrentModificationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The event pattern is not valid.
_InvalidEventPatternException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This exception occurs due to unexpected causes.
_InternalException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An entity that you specified does not exist.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You tried to create more rules or add more targets to a rule than is
--   allowed.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data RuleState
Disabled :: RuleState
Enabled :: RuleState

-- | The array properties for the submitted job, such as the size of the
--   array. The array size can be between 2 and 10,000. If you specify
--   array properties for a job, it becomes an array job. This parameter is
--   used only if the target is an AWS Batch job.
--   
--   <i>See:</i> <a>batchArrayProperties</a> smart constructor.
data BatchArrayProperties

-- | Creates a value of <a>BatchArrayProperties</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>bapSize</a> - The size of the array, if this is an array batch
--   job. Valid values are integers between 2 and 10,000.</li>
--   </ul>
batchArrayProperties :: BatchArrayProperties

-- | The size of the array, if this is an array batch job. Valid values are
--   integers between 2 and 10,000.
bapSize :: Lens' BatchArrayProperties (Maybe Int)

-- | The custom parameters to be used when the target is an AWS Batch job.
--   
--   <i>See:</i> <a>batchParameters</a> smart constructor.
data BatchParameters

-- | Creates a value of <a>BatchParameters</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>bpRetryStrategy</a> - The retry strategy to use for failed
--   jobs, if the target is an AWS Batch job. The retry strategy is the
--   number of times to retry the failed job execution. Valid values are 1
--   to 10. When you specify a retry strategy here, it overrides the retry
--   strategy defined in the job definition.</li>
--   <li><a>bpArrayProperties</a> - The array properties for the submitted
--   job, such as the size of the array. The array size can be between 2
--   and 10,000. If you specify array properties for a job, it becomes an
--   array job. This parameter is used only if the target is an AWS Batch
--   job.</li>
--   <li><a>bpJobDefinition</a> - The ARN or name of the job definition to
--   use if the event target is an AWS Batch job. This job definition must
--   already exist.</li>
--   <li><a>bpJobName</a> - The name to use for this execution of the job,
--   if the target is an AWS Batch job.</li>
--   </ul>
batchParameters :: Text -> Text -> BatchParameters

-- | The retry strategy to use for failed jobs, if the target is an AWS
--   Batch job. The retry strategy is the number of times to retry the
--   failed job execution. Valid values are 1 to 10. When you specify a
--   retry strategy here, it overrides the retry strategy defined in the
--   job definition.
bpRetryStrategy :: Lens' BatchParameters (Maybe BatchRetryStrategy)

-- | The array properties for the submitted job, such as the size of the
--   array. The array size can be between 2 and 10,000. If you specify
--   array properties for a job, it becomes an array job. This parameter is
--   used only if the target is an AWS Batch job.
bpArrayProperties :: Lens' BatchParameters (Maybe BatchArrayProperties)

-- | The ARN or name of the job definition to use if the event target is an
--   AWS Batch job. This job definition must already exist.
bpJobDefinition :: Lens' BatchParameters Text

-- | The name to use for this execution of the job, if the target is an AWS
--   Batch job.
bpJobName :: Lens' BatchParameters Text

-- | The retry strategy to use for failed jobs, if the target is an AWS
--   Batch job. If you specify a retry strategy here, it overrides the
--   retry strategy defined in the job definition.
--   
--   <i>See:</i> <a>batchRetryStrategy</a> smart constructor.
data BatchRetryStrategy

-- | Creates a value of <a>BatchRetryStrategy</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>brsAttempts</a> - The number of times to attempt to retry, if
--   the job fails. Valid values are 1 to 10.</li>
--   </ul>
batchRetryStrategy :: BatchRetryStrategy

-- | The number of times to attempt to retry, if the job fails. Valid
--   values are 1 to 10.
brsAttempts :: Lens' BatchRetryStrategy (Maybe Int)

-- | The custom parameters to be used when the target is an Amazon ECS
--   cluster.
--   
--   <i>See:</i> <a>ecsParameters</a> smart constructor.
data EcsParameters

-- | Creates a value of <a>EcsParameters</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>epTaskCount</a> - The number of tasks to create based on the
--   <tt>TaskDefinition</tt> . The default is one.</li>
--   <li><a>epTaskDefinitionARN</a> - The ARN of the task definition to use
--   if the event target is an Amazon ECS cluster.</li>
--   </ul>
ecsParameters :: Text -> EcsParameters

-- | The number of tasks to create based on the <tt>TaskDefinition</tt> .
--   The default is one.
epTaskCount :: Lens' EcsParameters (Maybe Natural)

-- | The ARN of the task definition to use if the event target is an Amazon
--   ECS cluster.
epTaskDefinitionARN :: Lens' EcsParameters Text

-- | Contains the parameters needed for you to provide custom input to a
--   target based on one or more pieces of data extracted from the event.
--   
--   <i>See:</i> <a>inputTransformer</a> smart constructor.
data InputTransformer

-- | Creates a value of <a>InputTransformer</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>itInputPathsMap</a> - Map of JSON paths to be extracted from
--   the event. These are key-value pairs, where each value is a JSON path.
--   You must use JSON dot notation, not bracket notation.</li>
--   <li><a>itInputTemplate</a> - Input template where you can use the
--   values of the keys from <tt>InputPathsMap</tt> to customize the data
--   sent to the target.</li>
--   </ul>
inputTransformer :: Text -> InputTransformer

-- | Map of JSON paths to be extracted from the event. These are key-value
--   pairs, where each value is a JSON path. You must use JSON dot
--   notation, not bracket notation.
itInputPathsMap :: Lens' InputTransformer (HashMap Text Text)

-- | Input template where you can use the values of the keys from
--   <tt>InputPathsMap</tt> to customize the data sent to the target.
itInputTemplate :: Lens' InputTransformer Text

-- | This object enables you to specify a JSON path to extract from the
--   event and use as the partition key for the Amazon Kinesis stream, so
--   that you can control the shard to which the event goes. If you do not
--   include this parameter, the default is to use the <tt>eventId</tt> as
--   the partition key.
--   
--   <i>See:</i> <a>kinesisParameters</a> smart constructor.
data KinesisParameters

-- | Creates a value of <a>KinesisParameters</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>kpPartitionKeyPath</a> - The JSON path to be extracted from the
--   event and used as the partition key. For more information, see
--   <a>Amazon Kinesis Streams Key Concepts</a> in the <i>Amazon Kinesis
--   Streams Developer Guide</i> .</li>
--   </ul>
kinesisParameters :: Text -> KinesisParameters

-- | The JSON path to be extracted from the event and used as the partition
--   key. For more information, see <a>Amazon Kinesis Streams Key
--   Concepts</a> in the <i>Amazon Kinesis Streams Developer Guide</i> .
kpPartitionKeyPath :: Lens' KinesisParameters Text

-- | Represents an event to be submitted.
--   
--   <i>See:</i> <a>putEventsRequestEntry</a> smart constructor.
data PutEventsRequestEntry

-- | Creates a value of <a>PutEventsRequestEntry</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>pereTime</a> - The timestamp of the event, per <a>RFC3339</a> .
--   If no timestamp is provided, the timestamp of the <tt>PutEvents</tt>
--   call is used.</li>
--   <li><a>pereDetailType</a> - Free-form string used to decide what
--   fields to expect in the event detail.</li>
--   <li><a>pereResources</a> - AWS resources, identified by Amazon
--   Resource Name (ARN), which the event primarily concerns. Any number,
--   including zero, may be present.</li>
--   <li><a>pereSource</a> - The source of the event.</li>
--   <li><a>pereDetail</a> - A valid JSON string. There is no other schema
--   imposed. The JSON string may contain fields and nested
--   subobjects.</li>
--   </ul>
putEventsRequestEntry :: PutEventsRequestEntry

-- | The timestamp of the event, per <a>RFC3339</a> . If no timestamp is
--   provided, the timestamp of the <tt>PutEvents</tt> call is used.
pereTime :: Lens' PutEventsRequestEntry (Maybe UTCTime)

-- | Free-form string used to decide what fields to expect in the event
--   detail.
pereDetailType :: Lens' PutEventsRequestEntry (Maybe Text)

-- | AWS resources, identified by Amazon Resource Name (ARN), which the
--   event primarily concerns. Any number, including zero, may be present.
pereResources :: Lens' PutEventsRequestEntry [Text]

-- | The source of the event.
pereSource :: Lens' PutEventsRequestEntry (Maybe Text)

-- | A valid JSON string. There is no other schema imposed. The JSON string
--   may contain fields and nested subobjects.
pereDetail :: Lens' PutEventsRequestEntry (Maybe Text)

-- | Represents an event that failed to be submitted.
--   
--   <i>See:</i> <a>putEventsResultEntry</a> smart constructor.
data PutEventsResultEntry

-- | Creates a value of <a>PutEventsResultEntry</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>pereErrorCode</a> - The error code that indicates why the event
--   submission failed.</li>
--   <li><a>pereErrorMessage</a> - The error message that explains why the
--   event submission failed.</li>
--   <li><a>pereEventId</a> - The ID of the event.</li>
--   </ul>
putEventsResultEntry :: PutEventsResultEntry

-- | The error code that indicates why the event submission failed.
pereErrorCode :: Lens' PutEventsResultEntry (Maybe Text)

-- | The error message that explains why the event submission failed.
pereErrorMessage :: Lens' PutEventsResultEntry (Maybe Text)

-- | The ID of the event.
pereEventId :: Lens' PutEventsResultEntry (Maybe Text)

-- | Represents a target that failed to be added to a rule.
--   
--   <i>See:</i> <a>putTargetsResultEntry</a> smart constructor.
data PutTargetsResultEntry

-- | Creates a value of <a>PutTargetsResultEntry</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>ptreTargetId</a> - The ID of the target.</li>
--   <li><a>ptreErrorCode</a> - The error code that indicates why the
--   target addition failed. If the value is
--   <tt>ConcurrentModificationException</tt> , too many requests were made
--   at the same time.</li>
--   <li><a>ptreErrorMessage</a> - The error message that explains why the
--   target addition failed.</li>
--   </ul>
putTargetsResultEntry :: PutTargetsResultEntry

-- | The ID of the target.
ptreTargetId :: Lens' PutTargetsResultEntry (Maybe Text)

-- | The error code that indicates why the target addition failed. If the
--   value is <tt>ConcurrentModificationException</tt> , too many requests
--   were made at the same time.
ptreErrorCode :: Lens' PutTargetsResultEntry (Maybe Text)

-- | The error message that explains why the target addition failed.
ptreErrorMessage :: Lens' PutTargetsResultEntry (Maybe Text)

-- | Represents a target that failed to be removed from a rule.
--   
--   <i>See:</i> <a>removeTargetsResultEntry</a> smart constructor.
data RemoveTargetsResultEntry

-- | Creates a value of <a>RemoveTargetsResultEntry</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>rtreTargetId</a> - The ID of the target.</li>
--   <li><a>rtreErrorCode</a> - The error code that indicates why the
--   target removal failed. If the value is
--   <tt>ConcurrentModificationException</tt> , too many requests were made
--   at the same time.</li>
--   <li><a>rtreErrorMessage</a> - The error message that explains why the
--   target removal failed.</li>
--   </ul>
removeTargetsResultEntry :: RemoveTargetsResultEntry

-- | The ID of the target.
rtreTargetId :: Lens' RemoveTargetsResultEntry (Maybe Text)

-- | The error code that indicates why the target removal failed. If the
--   value is <tt>ConcurrentModificationException</tt> , too many requests
--   were made at the same time.
rtreErrorCode :: Lens' RemoveTargetsResultEntry (Maybe Text)

-- | The error message that explains why the target removal failed.
rtreErrorMessage :: Lens' RemoveTargetsResultEntry (Maybe Text)

-- | Contains information about a rule in Amazon CloudWatch Events.
--   
--   <i>See:</i> <a>rule</a> smart constructor.
data Rule

-- | Creates a value of <a>Rule</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>rEventPattern</a> - The event pattern of the rule. For more
--   information, see <a>Events and Event Patterns</a> in the <i>Amazon
--   CloudWatch Events User Guide</i> .</li>
--   <li><a>rState</a> - The state of the rule.</li>
--   <li><a>rARN</a> - The Amazon Resource Name (ARN) of the rule.</li>
--   <li><a>rScheduleExpression</a> - The scheduling expression. For
--   example, "cron(0 20 * * ? *)", "rate(5 minutes)".</li>
--   <li><a>rName</a> - The name of the rule.</li>
--   <li><a>rDescription</a> - The description of the rule.</li>
--   <li><a>rRoleARN</a> - The Amazon Resource Name (ARN) of the role that
--   is used for target invocation.</li>
--   </ul>
rule :: Rule

-- | The event pattern of the rule. For more information, see <a>Events and
--   Event Patterns</a> in the <i>Amazon CloudWatch Events User Guide</i> .
rEventPattern :: Lens' Rule (Maybe Text)

-- | The state of the rule.
rState :: Lens' Rule (Maybe RuleState)

-- | The Amazon Resource Name (ARN) of the rule.
rARN :: Lens' Rule (Maybe Text)

-- | The scheduling expression. For example, "cron(0 20 * * ? *)", "rate(5
--   minutes)".
rScheduleExpression :: Lens' Rule (Maybe Text)

-- | The name of the rule.
rName :: Lens' Rule (Maybe Text)

-- | The description of the rule.
rDescription :: Lens' Rule (Maybe Text)

-- | The Amazon Resource Name (ARN) of the role that is used for target
--   invocation.
rRoleARN :: Lens' Rule (Maybe Text)

-- | This parameter contains the criteria (either InstanceIds or a tag)
--   used to specify which EC2 instances are to be sent the command.
--   
--   <i>See:</i> <a>runCommandParameters</a> smart constructor.
data RunCommandParameters

-- | Creates a value of <a>RunCommandParameters</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>rcpRunCommandTargets</a> - Currently, we support including only
--   one RunCommandTarget block, which specifies either an array of
--   InstanceIds or a tag.</li>
--   </ul>
runCommandParameters :: NonEmpty RunCommandTarget -> RunCommandParameters

-- | Currently, we support including only one RunCommandTarget block, which
--   specifies either an array of InstanceIds or a tag.
rcpRunCommandTargets :: Lens' RunCommandParameters (NonEmpty RunCommandTarget)

-- | Information about the EC2 instances that are to be sent the command,
--   specified as key-value pairs. Each <tt>RunCommandTarget</tt> block can
--   include only one key, but this key may specify multiple values.
--   
--   <i>See:</i> <a>runCommandTarget</a> smart constructor.
data RunCommandTarget

-- | Creates a value of <a>RunCommandTarget</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>rctKey</a> - Can be either <tt>tag:</tt> <i>tag-key</i> or
--   <tt>InstanceIds</tt> .</li>
--   <li><a>rctValues</a> - If <tt>Key</tt> is <tt>tag:</tt> <i>tag-key</i>
--   , <tt>Values</tt> is a list of tag values. If <tt>Key</tt> is
--   <tt>InstanceIds</tt> , <tt>Values</tt> is a list of Amazon EC2
--   instance IDs.</li>
--   </ul>
runCommandTarget :: Text -> NonEmpty Text -> RunCommandTarget

-- | Can be either <tt>tag:</tt> <i>tag-key</i> or <tt>InstanceIds</tt> .
rctKey :: Lens' RunCommandTarget Text

-- | If <tt>Key</tt> is <tt>tag:</tt> <i>tag-key</i> , <tt>Values</tt> is a
--   list of tag values. If <tt>Key</tt> is <tt>InstanceIds</tt> ,
--   <tt>Values</tt> is a list of Amazon EC2 instance IDs.
rctValues :: Lens' RunCommandTarget (NonEmpty Text)

-- | This structure includes the custom parameter to be used when the
--   target is an SQS FIFO queue.
--   
--   <i>See:</i> <a>sqsParameters</a> smart constructor.
data SqsParameters

-- | Creates a value of <a>SqsParameters</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>spMessageGroupId</a> - The FIFO message group ID to use as the
--   target.</li>
--   </ul>
sqsParameters :: SqsParameters

-- | The FIFO message group ID to use as the target.
spMessageGroupId :: Lens' SqsParameters (Maybe Text)

-- | Targets are the resources to be invoked when a rule is triggered.
--   Target types include EC2 instances, AWS Lambda functions, Amazon
--   Kinesis streams, Amazon ECS tasks, AWS Step Functions state machines,
--   Run Command, and built-in targets.
--   
--   <i>See:</i> <a>target</a> smart constructor.
data Target

-- | Creates a value of <a>Target</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>tRunCommandParameters</a> - Parameters used when you are using
--   the rule to invoke Amazon EC2 Run Command.</li>
--   <li><a>tKinesisParameters</a> - The custom parameter you can use to
--   control shard assignment, when the target is an Amazon Kinesis stream.
--   If you do not include this parameter, the default is to use the
--   <tt>eventId</tt> as the partition key.</li>
--   <li><a>tInputTransformer</a> - Settings to enable you to provide
--   custom input to a target based on certain event data. You can extract
--   one or more key-value pairs from the event and then use that data to
--   send customized input to the target.</li>
--   <li><a>tSqsParameters</a> - Contains the message group ID to use when
--   the target is a FIFO queue.</li>
--   <li><a>tInput</a> - Valid JSON text passed to the target. In this
--   case, nothing from the event itself is passed to the target. For more
--   information, see <a>The JavaScript Object Notation (JSON) Data
--   Interchange Format</a> .</li>
--   <li><a>tBatchParameters</a> - Contains the job definition, job name,
--   and other parameters if the event target is an AWS Batch job. For more
--   information about AWS Batch, see <a>Jobs</a> in the <i>AWS Batch User
--   Guide</i> .</li>
--   <li><a>tEcsParameters</a> - Contains the Amazon ECS task definition
--   and task count to be used, if the event target is an Amazon ECS task.
--   For more information about Amazon ECS tasks, see <a>Task
--   Definitions</a> in the <i>Amazon EC2 Container Service Developer
--   Guide</i> .</li>
--   <li><a>tInputPath</a> - The value of the JSONPath that is used for
--   extracting part of the matched event when passing it to the target.
--   You must use JSON dot notation, not bracket notation. For more
--   information about JSON paths, see <a>JSONPath</a> .</li>
--   <li><a>tRoleARN</a> - The Amazon Resource Name (ARN) of the IAM role
--   to be used for this target when the rule is triggered. If one rule
--   triggers multiple targets, you can use a different IAM role for each
--   target.</li>
--   <li><a>tId</a> - The ID of the target.</li>
--   <li><a>tARN</a> - The Amazon Resource Name (ARN) of the target.</li>
--   </ul>
target :: Text -> Text -> Target

-- | Parameters used when you are using the rule to invoke Amazon EC2 Run
--   Command.
tRunCommandParameters :: Lens' Target (Maybe RunCommandParameters)

-- | The custom parameter you can use to control shard assignment, when the
--   target is an Amazon Kinesis stream. If you do not include this
--   parameter, the default is to use the <tt>eventId</tt> as the partition
--   key.
tKinesisParameters :: Lens' Target (Maybe KinesisParameters)

-- | Settings to enable you to provide custom input to a target based on
--   certain event data. You can extract one or more key-value pairs from
--   the event and then use that data to send customized input to the
--   target.
tInputTransformer :: Lens' Target (Maybe InputTransformer)

-- | Contains the message group ID to use when the target is a FIFO queue.
tSqsParameters :: Lens' Target (Maybe SqsParameters)

-- | Valid JSON text passed to the target. In this case, nothing from the
--   event itself is passed to the target. For more information, see <a>The
--   JavaScript Object Notation (JSON) Data Interchange Format</a> .
tInput :: Lens' Target (Maybe Text)

-- | Contains the job definition, job name, and other parameters if the
--   event target is an AWS Batch job. For more information about AWS
--   Batch, see <a>Jobs</a> in the <i>AWS Batch User Guide</i> .
tBatchParameters :: Lens' Target (Maybe BatchParameters)

-- | Contains the Amazon ECS task definition and task count to be used, if
--   the event target is an Amazon ECS task. For more information about
--   Amazon ECS tasks, see <a>Task Definitions</a> in the <i>Amazon EC2
--   Container Service Developer Guide</i> .
tEcsParameters :: Lens' Target (Maybe EcsParameters)

-- | The value of the JSONPath that is used for extracting part of the
--   matched event when passing it to the target. You must use JSON dot
--   notation, not bracket notation. For more information about JSON paths,
--   see <a>JSONPath</a> .
tInputPath :: Lens' Target (Maybe Text)

-- | The Amazon Resource Name (ARN) of the IAM role to be used for this
--   target when the rule is triggered. If one rule triggers multiple
--   targets, you can use a different IAM role for each target.
tRoleARN :: Lens' Target (Maybe Text)

-- | The ID of the target.
tId :: Lens' Target Text

-- | The Amazon Resource Name (ARN) of the target.
tARN :: Lens' Target Text
