/*
* 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 cloudtrail-2013-11-01.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.CloudTrail.Model
{
///
/// Container for the parameters to the CreateTrail operation.
/// Creates a trail that specifies the settings for delivery of log data to an Amazon
/// S3 bucket.
///
public partial class CreateTrailRequest : AmazonCloudTrailRequest
{
private string _cloudWatchLogsLogGroupArn;
private string _cloudWatchLogsRoleArn;
private bool? _enableLogFileValidation;
private bool? _includeGlobalServiceEvents;
private bool? _isMultiRegionTrail;
private bool? _isOrganizationTrail;
private string _kmsKeyId;
private string _name;
private string _s3BucketName;
private string _s3KeyPrefix;
private string _snsTopicName;
private List _tagsList = new List();
///
/// Gets and sets the property CloudWatchLogsLogGroupArn.
///
/// Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier
/// that represents the log group to which CloudTrail logs will be delivered. You must
/// use a log group that exists in your account.
///
///
///
/// Not required unless you specify CloudWatchLogsRoleArn
.
///
///
public string CloudWatchLogsLogGroupArn
{
get { return this._cloudWatchLogsLogGroupArn; }
set { this._cloudWatchLogsLogGroupArn = value; }
}
// Check to see if CloudWatchLogsLogGroupArn property is set
internal bool IsSetCloudWatchLogsLogGroupArn()
{
return this._cloudWatchLogsLogGroupArn != null;
}
///
/// Gets and sets the property CloudWatchLogsRoleArn.
///
/// Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's
/// log group. You must use a role that exists in your account.
///
///
public string CloudWatchLogsRoleArn
{
get { return this._cloudWatchLogsRoleArn; }
set { this._cloudWatchLogsRoleArn = value; }
}
// Check to see if CloudWatchLogsRoleArn property is set
internal bool IsSetCloudWatchLogsRoleArn()
{
return this._cloudWatchLogsRoleArn != null;
}
///
/// Gets and sets the property EnableLogFileValidation.
///
/// Specifies whether log file integrity validation is enabled. The default is false.
///
///
///
/// When you disable log file integrity validation, the chain of digest files is broken
/// after one hour. CloudTrail does not create digest files for log files that were delivered
/// during a period in which log file integrity validation was disabled. For example,
/// if you enable log file integrity validation at noon on January 1, disable it at noon
/// on January 2, and re-enable it at noon on January 10, digest files will not be created
/// for the log files delivered from noon on January 2 to noon on January 10. The same
/// applies whenever you stop CloudTrail logging or delete a trail.
///
///
///
public bool EnableLogFileValidation
{
get { return this._enableLogFileValidation.GetValueOrDefault(); }
set { this._enableLogFileValidation = value; }
}
// Check to see if EnableLogFileValidation property is set
internal bool IsSetEnableLogFileValidation()
{
return this._enableLogFileValidation.HasValue;
}
///
/// Gets and sets the property IncludeGlobalServiceEvents.
///
/// Specifies whether the trail is publishing events from global services such as IAM
/// to the log files.
///
///
public bool IncludeGlobalServiceEvents
{
get { return this._includeGlobalServiceEvents.GetValueOrDefault(); }
set { this._includeGlobalServiceEvents = value; }
}
// Check to see if IncludeGlobalServiceEvents property is set
internal bool IsSetIncludeGlobalServiceEvents()
{
return this._includeGlobalServiceEvents.HasValue;
}
///
/// Gets and sets the property IsMultiRegionTrail.
///
/// Specifies whether the trail is created in the current Region or in all Regions. The
/// default is false, which creates a trail only in the Region where you are signed in.
/// As a best practice, consider creating trails that log events in all Regions.
///
///
public bool IsMultiRegionTrail
{
get { return this._isMultiRegionTrail.GetValueOrDefault(); }
set { this._isMultiRegionTrail = value; }
}
// Check to see if IsMultiRegionTrail property is set
internal bool IsSetIsMultiRegionTrail()
{
return this._isMultiRegionTrail.HasValue;
}
///
/// Gets and sets the property IsOrganizationTrail.
///
/// Specifies whether the trail is created for all accounts in an organization in Organizations,
/// or only for the current Amazon Web Services account. The default is false, and cannot
/// be true unless the call is made on behalf of an Amazon Web Services account that is
/// the management account or delegated administrator account for an organization in Organizations.
///
///
public bool IsOrganizationTrail
{
get { return this._isOrganizationTrail.GetValueOrDefault(); }
set { this._isOrganizationTrail = value; }
}
// Check to see if IsOrganizationTrail property is set
internal bool IsSetIsOrganizationTrail()
{
return this._isOrganizationTrail.HasValue;
}
///
/// Gets and sets the property KmsKeyId.
///
/// Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value
/// can be an alias name prefixed by alias/
, a fully specified ARN to an
/// alias, a fully specified ARN to a key, or a globally unique identifier.
///
///
///
/// CloudTrail also supports KMS multi-Region keys. For more information about multi-Region
/// keys, see Using
/// multi-Region keys in the Key Management Service Developer Guide.
///
///
///
/// Examples:
///
/// -
///
///
alias/MyAliasName
///
/// -
///
///
arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
///
/// -
///
///
arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012
///
///
/// -
///
///
12345678-1234-1234-1234-123456789012
///
///
///
public string KmsKeyId
{
get { return this._kmsKeyId; }
set { this._kmsKeyId = value; }
}
// Check to see if KmsKeyId property is set
internal bool IsSetKmsKeyId()
{
return this._kmsKeyId != null;
}
///
/// Gets and sets the property Name.
///
/// Specifies the name of the trail. The name must meet the following requirements:
///
/// -
///
/// Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_),
/// or dashes (-)
///
///
-
///
/// Start with a letter or number, and end with a letter or number
///
///
-
///
/// Be between 3 and 128 characters
///
///
-
///
/// Have no adjacent periods, underscores or dashes. Names like
my-_namespace
/// and my--namespace
are not valid.
///
/// -
///
/// Not be in IP address format (for example, 192.168.5.4)
///
///
///
[AWSProperty(Required=true)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property S3BucketName.
///
/// Specifies the name of the Amazon S3 bucket designated for publishing log files. See
/// Amazon
/// S3 Bucket Naming Requirements.
///
///
[AWSProperty(Required=true)]
public string S3BucketName
{
get { return this._s3BucketName; }
set { this._s3BucketName = value; }
}
// Check to see if S3BucketName property is set
internal bool IsSetS3BucketName()
{
return this._s3BucketName != null;
}
///
/// Gets and sets the property S3KeyPrefix.
///
/// Specifies the Amazon S3 key prefix that comes after the name of the bucket you have
/// designated for log file delivery. For more information, see Finding
/// Your CloudTrail Log Files. The maximum length is 200 characters.
///
///
public string S3KeyPrefix
{
get { return this._s3KeyPrefix; }
set { this._s3KeyPrefix = value; }
}
// Check to see if S3KeyPrefix property is set
internal bool IsSetS3KeyPrefix()
{
return this._s3KeyPrefix != null;
}
///
/// Gets and sets the property SnsTopicName.
///
/// Specifies the name of the Amazon SNS topic defined for notification of log file delivery.
/// The maximum length is 256 characters.
///
///
public string SnsTopicName
{
get { return this._snsTopicName; }
set { this._snsTopicName = value; }
}
// Check to see if SnsTopicName property is set
internal bool IsSetSnsTopicName()
{
return this._snsTopicName != null;
}
///
/// Gets and sets the property TagsList.
///
[AWSProperty(Max=200)]
public List TagsList
{
get { return this._tagsList; }
set { this._tagsList = value; }
}
// Check to see if TagsList property is set
internal bool IsSetTagsList()
{
return this._tagsList != null && this._tagsList.Count > 0;
}
}
}