/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the events-2015-10-07.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.CloudWatchEvents.Model
{
///
/// Container for the parameters to the PutTargets operation.
/// 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 Events:
///
/// -
///
/// API
/// destination
///
///
-
///
/// Amazon API Gateway REST API endpoints
///
///
-
///
/// API Gateway
///
///
-
///
/// Batch job queue
///
///
-
///
/// CloudWatch Logs group
///
///
-
///
/// CodeBuild project
///
///
-
///
/// CodePipeline
///
///
-
///
/// Amazon EC2
CreateSnapshot
API call
///
/// -
///
/// Amazon EC2
RebootInstances
API call
///
/// -
///
/// Amazon EC2
StopInstances
API call
///
/// -
///
/// Amazon EC2
TerminateInstances
API call
///
/// -
///
/// Amazon ECS tasks
///
///
-
///
/// Event bus in a different Amazon Web Services account or Region.
///
///
///
/// You can use an event bus in the US East (N. Virginia) us-east-1, US West (Oregon)
/// us-west-2, or Europe (Ireland) eu-west-1 Regions as a target for a rule.
///
///
-
///
/// Firehose delivery stream (Kinesis Data Firehose)
///
///
-
///
/// Inspector assessment template (Amazon Inspector)
///
///
-
///
/// Kinesis stream (Kinesis Data Stream)
///
///
-
///
/// Lambda function
///
///
-
///
/// Redshift clusters (Data API statement execution)
///
///
-
///
/// Amazon SNS topic
///
///
-
///
/// Amazon SQS queues (includes FIFO queues
///
///
-
///
/// SSM Automation
///
///
-
///
/// SSM OpsItem
///
///
-
///
/// SSM Run Command
///
///
-
///
/// Step Functions state machines
///
///
///
/// Creating rules with built-in targets is supported only in the Management Console.
/// The built-in targets are EC2 CreateSnapshot API call
, EC2 RebootInstances
/// API call
, EC2 StopInstances API call
, and EC2 TerminateInstances
/// API call
.
///
///
///
/// For some target types, PutTargets
provides target-specific parameters.
/// If the target is a Kinesis data stream, you can optionally specify which shard the
/// event goes to by using the KinesisParameters
argument. To invoke a command
/// on multiple EC2 instances with one rule, you can use the RunCommandParameters
/// field.
///
///
///
/// To be able to make API calls against the resources that you own, Amazon EventBridge
/// needs the appropriate permissions. For Lambda and Amazon SNS resources, EventBridge
/// relies on resource-based policies. For EC2 instances, Kinesis Data Streams, Step Functions
/// state machines and API Gateway REST APIs, EventBridge relies on IAM roles that you
/// specify in the RoleARN
argument in PutTargets
. For more
/// information, see Authentication
/// and Access Control in the Amazon EventBridge User Guide.
///
///
///
/// If another Amazon Web Services account is in the same region and has granted you permission
/// (using PutPermission
), you can send events to that account. Set 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 Arn
/// value when you run PutTargets
. If your account sends events to another
/// account, your account is charged for each sent event. Each event sent to another account
/// is charged as a custom event. The account receiving the event is not charged. For
/// more information, see Amazon
/// EventBridge Pricing.
///
///
///
/// Input
, InputPath
, and InputTransformer
are
/// not available with PutTarget
if the target is an event bus of a different
/// Amazon Web Services account.
///
///
///
/// If you are setting the event bus of another account as the target, and that account
/// granted permission to your account through an organization instead of directly by
/// the account ID, then you must specify a RoleArn
with proper permissions
/// in the Target
structure. For more information, see Sending
/// and Receiving Events Between Amazon Web Services Accounts in the Amazon EventBridge
/// User Guide.
///
///
///
/// For more information about enabling cross-account events, see PutPermission.
///
///
///
/// Input, InputPath, and InputTransformer are mutually exclusive
/// and optional parameters of a target. When a rule is triggered due to a matched event:
///
/// -
///
/// If none of the following arguments are specified for a target, then the entire event
/// is passed to the target in JSON format (unless the target is Amazon EC2 Run Command
/// or Amazon ECS task, in which case nothing from the event is passed to the target).
///
///
-
///
/// If Input is specified in the form of valid JSON, then the matched event is
/// overridden with this constant.
///
///
-
///
/// If InputPath is specified in the form of JSONPath (for example,
$.detail
),
/// 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).
///
/// -
///
/// If InputTransformer 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.
///
///
///
/// When you specify InputPath
or InputTransformer
, 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. 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, FailedEntryCount
is non-zero in the response and each entry
/// in FailedEntries
provides the ID of the failed target and the error code.
///
///
public partial class PutTargetsRequest : AmazonCloudWatchEventsRequest
{
private string _eventBusName;
private string _rule;
private List _targets = new List();
///
/// Gets and sets the property EventBusName.
///
/// The name or ARN of the event bus associated with the rule. If you omit this, the default
/// event bus is used.
///
///
[AWSProperty(Min=1, Max=1600)]
public string EventBusName
{
get { return this._eventBusName; }
set { this._eventBusName = value; }
}
// Check to see if EventBusName property is set
internal bool IsSetEventBusName()
{
return this._eventBusName != null;
}
///
/// Gets and sets the property Rule.
///
/// The name of the rule.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string Rule
{
get { return this._rule; }
set { this._rule = value; }
}
// Check to see if Rule property is set
internal bool IsSetRule()
{
return this._rule != null;
}
///
/// Gets and sets the property Targets.
///
/// The targets to update or add to the rule.
///
///
[AWSProperty(Required=true, Min=1, Max=100)]
public List Targets
{
get { return this._targets; }
set { this._targets = value; }
}
// Check to see if Targets property is set
internal bool IsSetTargets()
{
return this._targets != null && this._targets.Count > 0;
}
}
}