/*
* 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 config-2014-11-12.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.ConfigService.Model
{
///
/// Provides the CustomPolicyDetails, the rule owner (Amazon Web Services
/// for managed rules, CUSTOM_POLICY
for Custom Policy rules, and CUSTOM_LAMBDA
/// for Custom Lambda rules), the rule identifier, and the events that cause the evaluation
/// of your Amazon Web Services resources.
///
public partial class Source
{
private CustomPolicyDetails _customPolicyDetails;
private Owner _owner;
private List _sourceDetails = new List();
private string _sourceIdentifier;
///
/// Gets and sets the property CustomPolicyDetails.
///
/// Provides the runtime system, policy definition, and whether debug logging is enabled.
/// Required when owner is set to CUSTOM_POLICY
.
///
///
public CustomPolicyDetails CustomPolicyDetails
{
get { return this._customPolicyDetails; }
set { this._customPolicyDetails = value; }
}
// Check to see if CustomPolicyDetails property is set
internal bool IsSetCustomPolicyDetails()
{
return this._customPolicyDetails != null;
}
///
/// Gets and sets the property Owner.
///
/// Indicates whether Amazon Web Services or the customer owns and manages the Config
/// rule.
///
///
///
/// Config Managed Rules are predefined rules owned by Amazon Web Services. For more information,
/// see Config
/// Managed Rules in the Config developer guide.
///
///
///
/// Config Custom Rules are rules that you can develop either with Guard (CUSTOM_POLICY
)
/// or Lambda (CUSTOM_LAMBDA
). For more information, see Config
/// Custom Rules in the Config developer guide.
///
///
[AWSProperty(Required=true)]
public Owner Owner
{
get { return this._owner; }
set { this._owner = value; }
}
// Check to see if Owner property is set
internal bool IsSetOwner()
{
return this._owner != null;
}
///
/// Gets and sets the property SourceDetails.
///
/// Provides the source and the message types that cause Config to evaluate your Amazon
/// Web Services resources against a rule. It also provides the frequency with which you
/// want Config to run evaluations for the rule if the trigger type is periodic.
///
///
///
/// If the owner is set to CUSTOM_POLICY
, the only acceptable values for
/// the Config rule trigger message type are ConfigurationItemChangeNotification
/// and OversizedConfigurationItemChangeNotification
.
///
///
[AWSProperty(Min=0, Max=25)]
public List SourceDetails
{
get { return this._sourceDetails; }
set { this._sourceDetails = value; }
}
// Check to see if SourceDetails property is set
internal bool IsSetSourceDetails()
{
return this._sourceDetails != null && this._sourceDetails.Count > 0;
}
///
/// Gets and sets the property SourceIdentifier.
///
/// For Config Managed rules, a predefined identifier from a list. For example, IAM_PASSWORD_POLICY
/// is a managed rule. To reference a managed rule, see List
/// of Config Managed Rules.
///
///
///
/// For Config Custom Lambda rules, the identifier is the Amazon Resource Name (ARN) of
/// the rule's Lambda function, such as arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name
.
///
///
///
/// For Config Custom Policy rules, this field will be ignored.
///
///
[AWSProperty(Min=1, Max=256)]
public string SourceIdentifier
{
get { return this._sourceIdentifier; }
set { this._sourceIdentifier = value; }
}
// Check to see if SourceIdentifier property is set
internal bool IsSetSourceIdentifier()
{
return this._sourceIdentifier != null;
}
}
}