/*
* 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
{
///
/// Specifies which resource types Config records for configuration changes. In the recording
/// group, you specify whether you want to record all supported resource types or to include
/// or exclude specific types of resources.
///
///
///
/// By default, Config records configuration changes for all supported types of Regional
/// resources that Config discovers in the Amazon Web Services Region in which it
/// is running. Regional resources are tied to a Region and can be used only in that Region.
/// Examples of Regional resources are Amazon EC2 instances and Amazon EBS volumes.
///
///
///
/// You can also have Config record supported types of global resources. Global
/// resources are not tied to a specific Region and can be used in all Regions. The global
/// resource types that Config supports include IAM users, groups, roles, and customer
/// managed policies.
///
///
///
/// Global resource types onboarded to Config recording after February 2022 will be recorded
/// only in the service's home Region for the commercial partition and Amazon Web Services
/// GovCloud (US-West) for the Amazon Web Services GovCloud (US) partition. You can view
/// the Configuration Items for these new global resource types only in their home Region
/// and Amazon Web Services GovCloud (US-West).
///
///
///
/// If you don't want Config to record all resources, you can specify which types of resources
/// Config records with the resourceTypes
parameter.
///
///
///
/// For a list of supported resource types, see Supported
/// Resource Types in the Config developer guide.
///
///
///
/// For more information and a table of the Home Regions for Global Resource Types Onboarded
/// after February 2022, see Selecting
/// Which Resources Config Records in the Config developer guide.
///
///
public partial class RecordingGroup
{
private bool? _allSupported;
private ExclusionByResourceTypes _exclusionByResourceTypes;
private bool? _includeGlobalResourceTypes;
private RecordingStrategy _recordingStrategy;
private List _resourceTypes = new List();
///
/// Gets and sets the property AllSupported.
///
/// Specifies whether Config records configuration changes for all supported regional
/// resource types.
///
///
///
/// If you set this field to true
, when Config adds support for a new type
/// of regional resource, Config starts recording resources of that type automatically.
///
///
///
/// If you set this field to true
, you cannot enumerate specific resource
/// types to record in the resourceTypes
field of RecordingGroup,
/// or to exclude in the resourceTypes
field of ExclusionByResourceTypes.
///
///
public bool AllSupported
{
get { return this._allSupported.GetValueOrDefault(); }
set { this._allSupported = value; }
}
// Check to see if AllSupported property is set
internal bool IsSetAllSupported()
{
return this._allSupported.HasValue;
}
///
/// Gets and sets the property ExclusionByResourceTypes.
///
/// An object that specifies how Config excludes resource types from being recorded by
/// the configuration recorder.
///
///
///
/// To use this option, you must set the useOnly
field of RecordingStrategy
/// to EXCLUSION_BY_RESOURCE_TYPES
.
///
///
public ExclusionByResourceTypes ExclusionByResourceTypes
{
get { return this._exclusionByResourceTypes; }
set { this._exclusionByResourceTypes = value; }
}
// Check to see if ExclusionByResourceTypes property is set
internal bool IsSetExclusionByResourceTypes()
{
return this._exclusionByResourceTypes != null;
}
///
/// Gets and sets the property IncludeGlobalResourceTypes.
///
/// Specifies whether Config records configuration changes for all supported global resources.
///
///
///
/// Before you set this field to true
, set the allSupported
/// field of RecordingGroup
/// to true
. Optionally, you can set the useOnly
field of RecordingStrategy
/// to ALL_SUPPORTED_RESOURCE_TYPES
.
///
///
///
/// If you set this field to true
, when Config adds support for a new type
/// of global resource in the Region where you set up the configuration recorder, Config
/// starts recording resources of that type automatically.
///
///
///
/// If you set this field to false
but list global resource types in the
/// resourceTypes
field of RecordingGroup,
/// Config will still record configuration changes for those specified resource types
/// regardless of if you set the includeGlobalResourceTypes
field
/// to false.
///
///
///
/// If you do not want to record configuration changes to global resource types, make
/// sure to not list them in the resourceTypes
field in addition to setting
/// the includeGlobalResourceTypes
field to false.
///
///
///
public bool IncludeGlobalResourceTypes
{
get { return this._includeGlobalResourceTypes.GetValueOrDefault(); }
set { this._includeGlobalResourceTypes = value; }
}
// Check to see if IncludeGlobalResourceTypes property is set
internal bool IsSetIncludeGlobalResourceTypes()
{
return this._includeGlobalResourceTypes.HasValue;
}
///
/// Gets and sets the property RecordingStrategy.
///
/// An object that specifies the recording strategy for the configuration recorder.
///
/// -
///
/// If you set the
useOnly
field of RecordingStrategy
/// to ALL_SUPPORTED_RESOURCE_TYPES
, Config records configuration changes
/// for all supported regional resource types. You also must set the allSupported
/// field of RecordingGroup
/// to true
. When Config adds support for a new type of regional resource,
/// Config automatically starts recording resources of that type.
///
/// -
///
/// If you set the
useOnly
field of RecordingStrategy
/// to INCLUSION_BY_RESOURCE_TYPES
, Config records configuration changes
/// for only the resource types you specify in the resourceTypes
field of
/// RecordingGroup.
///
/// -
///
/// If you set the
useOnly
field of RecordingStrategy
/// to EXCLUSION_BY_RESOURCE_TYPES
, Config records configuration changes
/// for all supported resource types except the resource types that you specify as exemptions
/// to exclude from being recorded in the resourceTypes
field of ExclusionByResourceTypes.
///
///
///
/// The recordingStrategy
field is optional when you set the allSupported
/// field of RecordingGroup
/// to true
.
///
///
///
/// The recordingStrategy
field is optional when you list resource types
/// in the resourceTypes
field of RecordingGroup.
///
///
///
/// The recordingStrategy
field is required if you list resource types to
/// exclude from recording in the resourceTypes
field of ExclusionByResourceTypes.
///
///
///
/// If you choose EXCLUSION_BY_RESOURCE_TYPES
for the recording strategy,
/// the exclusionByResourceTypes
field will override other properties in
/// the request.
///
///
///
/// For example, even if you set includeGlobalResourceTypes
to false, global
/// resource types will still be automatically recorded in this option unless those resource
/// types are specifically listed as exemptions in the resourceTypes
field
/// of exclusionByResourceTypes
.
///
///
///
/// By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES
recording strategy,
/// when Config adds support for a new resource type in the Region where you set up the
/// configuration recorder, including global resource types, Config starts recording resources
/// of that type automatically.
///
///
///
public RecordingStrategy RecordingStrategy
{
get { return this._recordingStrategy; }
set { this._recordingStrategy = value; }
}
// Check to see if RecordingStrategy property is set
internal bool IsSetRecordingStrategy()
{
return this._recordingStrategy != null;
}
///
/// Gets and sets the property ResourceTypes.
///
/// A comma-separated list that specifies which resource types Config records.
///
///
///
/// Optionally, you can set the useOnly
field of RecordingStrategy
/// to INCLUSION_BY_RESOURCE_TYPES
.
///
///
///
/// To record all configuration changes, set the allSupported
field of RecordingGroup
/// to true
, and either omit this field or don't specify any resource types
/// in this field. If you set the allSupported
field to false
/// and specify values for resourceTypes
, when Config adds support for a
/// new type of resource, it will not record resources of that type unless you manually
/// add that type to your recording group.
///
///
///
/// For a list of valid resourceTypes
values, see the Resource Type Value
/// column in Supported
/// Amazon Web Services resource Types in the Config developer guide.
///
///
///
/// Region Availability
///
///
///
/// Before specifying a resource type for Config to track, check Resource
/// Coverage by Region Availability to see if the resource type is supported in the
/// Amazon Web Services Region where you set up Config. If a resource type is supported
/// by Config in at least one Region, you can enable the recording of that resource type
/// in all Regions supported by Config, even if the specified resource type is not supported
/// in the Amazon Web Services Region where you set up Config.
///
///
///
public List ResourceTypes
{
get { return this._resourceTypes; }
set { this._resourceTypes = value; }
}
// Check to see if ResourceTypes property is set
internal bool IsSetResourceTypes()
{
return this._resourceTypes != null && this._resourceTypes.Count > 0;
}
}
}