/*
* 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 ec2-2016-11-15.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.EC2.Model
{
///
/// Describes a flow log.
///
public partial class FlowLog
{
private DateTime? _creationTime;
private string _deliverCrossAccountRole;
private string _deliverLogsErrorMessage;
private string _deliverLogsPermissionArn;
private string _deliverLogsStatus;
private DestinationOptionsResponse _destinationOptions;
private string _flowLogId;
private string _flowLogStatus;
private string _logDestination;
private LogDestinationType _logDestinationType;
private string _logFormat;
private string _logGroupName;
private int? _maxAggregationInterval;
private string _resourceId;
private List _tags = new List();
private TrafficType _trafficType;
///
/// Gets and sets the property CreationTime.
///
/// The date and time the flow log was created.
///
///
public DateTime CreationTime
{
get { return this._creationTime.GetValueOrDefault(); }
set { this._creationTime = value; }
}
// Check to see if CreationTime property is set
internal bool IsSetCreationTime()
{
return this._creationTime.HasValue;
}
///
/// Gets and sets the property DeliverCrossAccountRole.
///
/// The ARN of the IAM role that allows the service to publish flow logs across accounts.
///
///
public string DeliverCrossAccountRole
{
get { return this._deliverCrossAccountRole; }
set { this._deliverCrossAccountRole = value; }
}
// Check to see if DeliverCrossAccountRole property is set
internal bool IsSetDeliverCrossAccountRole()
{
return this._deliverCrossAccountRole != null;
}
///
/// Gets and sets the property DeliverLogsErrorMessage.
///
/// Information about the error that occurred. Rate limited
indicates that
/// CloudWatch Logs throttling has been applied for one or more network interfaces, or
/// that you've reached the limit on the number of log groups that you can create. Access
/// error
indicates that the IAM role associated with the flow log does not have
/// sufficient permissions to publish to CloudWatch Logs. Unknown error
indicates
/// an internal error.
///
///
public string DeliverLogsErrorMessage
{
get { return this._deliverLogsErrorMessage; }
set { this._deliverLogsErrorMessage = value; }
}
// Check to see if DeliverLogsErrorMessage property is set
internal bool IsSetDeliverLogsErrorMessage()
{
return this._deliverLogsErrorMessage != null;
}
///
/// Gets and sets the property DeliverLogsPermissionArn.
///
/// The ARN of the IAM role allows the service to publish logs to CloudWatch Logs.
///
///
public string DeliverLogsPermissionArn
{
get { return this._deliverLogsPermissionArn; }
set { this._deliverLogsPermissionArn = value; }
}
// Check to see if DeliverLogsPermissionArn property is set
internal bool IsSetDeliverLogsPermissionArn()
{
return this._deliverLogsPermissionArn != null;
}
///
/// Gets and sets the property DeliverLogsStatus.
///
/// The status of the logs delivery (SUCCESS
| FAILED
).
///
///
public string DeliverLogsStatus
{
get { return this._deliverLogsStatus; }
set { this._deliverLogsStatus = value; }
}
// Check to see if DeliverLogsStatus property is set
internal bool IsSetDeliverLogsStatus()
{
return this._deliverLogsStatus != null;
}
///
/// Gets and sets the property DestinationOptions.
///
/// The destination options.
///
///
public DestinationOptionsResponse DestinationOptions
{
get { return this._destinationOptions; }
set { this._destinationOptions = value; }
}
// Check to see if DestinationOptions property is set
internal bool IsSetDestinationOptions()
{
return this._destinationOptions != null;
}
///
/// Gets and sets the property FlowLogId.
///
/// The ID of the flow log.
///
///
public string FlowLogId
{
get { return this._flowLogId; }
set { this._flowLogId = value; }
}
// Check to see if FlowLogId property is set
internal bool IsSetFlowLogId()
{
return this._flowLogId != null;
}
///
/// Gets and sets the property FlowLogStatus.
///
/// The status of the flow log (ACTIVE
).
///
///
public string FlowLogStatus
{
get { return this._flowLogStatus; }
set { this._flowLogStatus = value; }
}
// Check to see if FlowLogStatus property is set
internal bool IsSetFlowLogStatus()
{
return this._flowLogStatus != null;
}
///
/// Gets and sets the property LogDestination.
///
/// The Amazon Resource Name (ARN) of the destination for the flow log data.
///
///
public string LogDestination
{
get { return this._logDestination; }
set { this._logDestination = value; }
}
// Check to see if LogDestination property is set
internal bool IsSetLogDestination()
{
return this._logDestination != null;
}
///
/// Gets and sets the property LogDestinationType.
///
/// The type of destination for the flow log data.
///
///
public LogDestinationType LogDestinationType
{
get { return this._logDestinationType; }
set { this._logDestinationType = value; }
}
// Check to see if LogDestinationType property is set
internal bool IsSetLogDestinationType()
{
return this._logDestinationType != null;
}
///
/// Gets and sets the property LogFormat.
///
/// The format of the flow log record.
///
///
public string LogFormat
{
get { return this._logFormat; }
set { this._logFormat = value; }
}
// Check to see if LogFormat property is set
internal bool IsSetLogFormat()
{
return this._logFormat != null;
}
///
/// Gets and sets the property LogGroupName.
///
/// The name of the flow log group.
///
///
public string LogGroupName
{
get { return this._logGroupName; }
set { this._logGroupName = value; }
}
// Check to see if LogGroupName property is set
internal bool IsSetLogGroupName()
{
return this._logGroupName != null;
}
///
/// Gets and sets the property MaxAggregationInterval.
///
/// The maximum interval of time, in seconds, during which a flow of packets is captured
/// and aggregated into a flow log record.
///
///
///
/// When a network interface is attached to a Nitro-based
/// instance, the aggregation interval is always 60 seconds (1 minute) or less, regardless
/// of the specified value.
///
///
///
/// Valid Values: 60
| 600
///
///
public int MaxAggregationInterval
{
get { return this._maxAggregationInterval.GetValueOrDefault(); }
set { this._maxAggregationInterval = value; }
}
// Check to see if MaxAggregationInterval property is set
internal bool IsSetMaxAggregationInterval()
{
return this._maxAggregationInterval.HasValue;
}
///
/// Gets and sets the property ResourceId.
///
/// The ID of the resource being monitored.
///
///
public string ResourceId
{
get { return this._resourceId; }
set { this._resourceId = value; }
}
// Check to see if ResourceId property is set
internal bool IsSetResourceId()
{
return this._resourceId != null;
}
///
/// Gets and sets the property Tags.
///
/// The tags for the flow log.
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property TrafficType.
///
/// The type of traffic captured for the flow log.
///
///
public TrafficType TrafficType
{
get { return this._trafficType; }
set { this._trafficType = value; }
}
// Check to see if TrafficType property is set
internal bool IsSetTrafficType()
{
return this._trafficType != null;
}
}
}