/*
* 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 logs-2014-03-28.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.CloudWatchLogs.Model
{
///
/// Container for the parameters to the PutAccountPolicy operation.
/// Creates an account-level data protection policy that applies to all log groups in
/// the account. A data protection policy can help safeguard sensitive data that's ingested
/// by your log groups by auditing and masking the sensitive log data. Each account can
/// have only one account-level policy.
///
///
///
/// Sensitive data is detected and masked when it is ingested into a log group. When you
/// set a data protection policy, log events ingested into the log groups before that
/// time are not masked.
///
///
///
/// If you use PutAccountPolicy
to create a data protection policy for your
/// whole account, it applies to both existing log groups and all log groups that are
/// created later in this account. The account policy is applied to existing log groups
/// with eventual consistency. It might take up to 5 minutes before sensitive data in
/// existing log groups begins to be masked.
///
///
///
/// By default, when a user views a log event that includes masked data, the sensitive
/// data is replaced by asterisks. A user who has the logs:Unmask
permission
/// can use a GetLogEvents
/// or FilterLogEvents
/// operation with the unmask
parameter set to true
to view
/// the unmasked log events. Users with the logs:Unmask
can also view unmasked
/// data in the CloudWatch Logs console by running a CloudWatch Logs Insights query with
/// the unmask
query command.
///
///
///
/// For more information, including a list of types of data that can be audited and masked,
/// see Protect
/// sensitive log data with masking.
///
///
///
/// To use the PutAccountPolicy
operation, you must be signed on with the
/// logs:PutDataProtectionPolicy
and logs:PutAccountPolicy
permissions.
///
///
///
/// The PutAccountPolicy
operation applies to all log groups in the account.
/// You can also use PutDataProtectionPolicy
/// to create a data protection policy that applies to just one log group. If a log group
/// has its own data protection policy and the account also has an account-level data
/// protection policy, then the two policies are cumulative. Any sensitive term specified
/// in either policy is masked.
///
///
public partial class PutAccountPolicyRequest : AmazonCloudWatchLogsRequest
{
private string _policyDocument;
private string _policyName;
private PolicyType _policyType;
private Scope _scope;
///
/// Gets and sets the property PolicyDocument.
///
/// Specify the data protection policy, in JSON.
///
///
///
/// This policy must include two JSON blocks:
///
/// -
///
/// The first block must include both a
DataIdentifer
array and an Operation
/// property with an Audit
action. The DataIdentifer
array lists
/// the types of sensitive data that you want to mask. For more information about the
/// available options, see Types
/// of data that you can mask.
///
///
///
/// The Operation
property with an Audit
action is required
/// to find the sensitive data terms. This Audit
action must contain a FindingsDestination
/// object. You can optionally use that FindingsDestination
object to list
/// one or more destinations to send audit findings to. If you specify destinations such
/// as log groups, Kinesis Data Firehose streams, and S3 buckets, they must already exist.
///
/// -
///
/// The second block must include both a
DataIdentifer
array and an Operation
/// property with an Deidentify
action. The DataIdentifer
array
/// must exactly match the DataIdentifer
array in the first block of the
/// policy.
///
///
///
/// The Operation
property with the Deidentify
action is what
/// actually masks the data, and it must contain the "MaskConfig": {}
object.
/// The "MaskConfig": {}
object must be empty.
///
///
///
/// For an example data protection policy, see the Examples section on this page.
///
///
///
/// The contents of the two DataIdentifer
arrays must match exactly.
///
///
///
/// In addition to the two JSON blocks, the policyDocument
can also include
/// Name
, Description
, and Version
fields. The
/// Name
is different than the operation's policyName
parameter,
/// and is used as a dimension when CloudWatch Logs reports audit findings metrics to
/// CloudWatch.
///
///
///
/// The JSON specified in policyDocument
can be up to 30,720 characters.
///
///
[AWSProperty(Required=true)]
public string PolicyDocument
{
get { return this._policyDocument; }
set { this._policyDocument = value; }
}
// Check to see if PolicyDocument property is set
internal bool IsSetPolicyDocument()
{
return this._policyDocument != null;
}
///
/// Gets and sets the property PolicyName.
///
/// A name for the policy. This must be unique within the account.
///
///
[AWSProperty(Required=true)]
public string PolicyName
{
get { return this._policyName; }
set { this._policyName = value; }
}
// Check to see if PolicyName property is set
internal bool IsSetPolicyName()
{
return this._policyName != null;
}
///
/// Gets and sets the property PolicyType.
///
/// Currently the only valid value for this parameter is DATA_PROTECTION_POLICY
.
///
///
[AWSProperty(Required=true)]
public PolicyType PolicyType
{
get { return this._policyType; }
set { this._policyType = value; }
}
// Check to see if PolicyType property is set
internal bool IsSetPolicyType()
{
return this._policyType != null;
}
///
/// Gets and sets the property Scope.
///
/// Currently the only valid value for this parameter is ALL
, which specifies
/// that the data protection policy applies to all log groups in the account. If you omit
/// this parameter, the default of ALL
is used.
///
///
public Scope Scope
{
get { return this._scope; }
set { this._scope = value; }
}
// Check to see if Scope property is set
internal bool IsSetScope()
{
return this._scope != null;
}
}
}