/*
* 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 iam-2010-05-08.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.IdentityManagement.Model
{
///
/// Contains the result of the simulation of a single API operation call on a single resource.
///
///
///
/// This data type is used by a member of the EvaluationResult data type.
///
///
public partial class ResourceSpecificResult
{
private Dictionary _evalDecisionDetails = new Dictionary();
private PolicyEvaluationDecisionType _evalResourceDecision;
private string _evalResourceName;
private List _matchedStatements = new List();
private List _missingContextValues = new List();
private PermissionsBoundaryDecisionDetail _permissionsBoundaryDecisionDetail;
///
/// Gets and sets the property EvalDecisionDetails.
///
/// Additional details about the results of the evaluation decision on a single resource.
/// This parameter is returned only for cross-account simulations. This parameter explains
/// how each policy type contributes to the resource-specific evaluation decision.
///
///
public Dictionary EvalDecisionDetails
{
get { return this._evalDecisionDetails; }
set { this._evalDecisionDetails = value; }
}
// Check to see if EvalDecisionDetails property is set
internal bool IsSetEvalDecisionDetails()
{
return this._evalDecisionDetails != null && this._evalDecisionDetails.Count > 0;
}
///
/// Gets and sets the property EvalResourceDecision.
///
/// The result of the simulation of the simulated API operation on the resource specified
/// in EvalResourceName
.
///
///
[AWSProperty(Required=true)]
public PolicyEvaluationDecisionType EvalResourceDecision
{
get { return this._evalResourceDecision; }
set { this._evalResourceDecision = value; }
}
// Check to see if EvalResourceDecision property is set
internal bool IsSetEvalResourceDecision()
{
return this._evalResourceDecision != null;
}
///
/// Gets and sets the property EvalResourceName.
///
/// The name of the simulated resource, in Amazon Resource Name (ARN) format.
///
///
[AWSProperty(Required=true, Min=1, Max=2048)]
public string EvalResourceName
{
get { return this._evalResourceName; }
set { this._evalResourceName = value; }
}
// Check to see if EvalResourceName property is set
internal bool IsSetEvalResourceName()
{
return this._evalResourceName != null;
}
///
/// Gets and sets the property MatchedStatements.
///
/// A list of the statements in the input policies that determine the result for this
/// part of the simulation. Remember that even if multiple statements allow the operation
/// on the resource, if any statement denies that operation, then the explicit
/// deny overrides any allow. In addition, the deny statement is the only entry included
/// in the result.
///
///
public List MatchedStatements
{
get { return this._matchedStatements; }
set { this._matchedStatements = value; }
}
// Check to see if MatchedStatements property is set
internal bool IsSetMatchedStatements()
{
return this._matchedStatements != null && this._matchedStatements.Count > 0;
}
///
/// Gets and sets the property MissingContextValues.
///
/// A list of context keys that are required by the included input policies but that were
/// not provided by one of the input parameters. This list is used when a list of ARNs
/// is included in the ResourceArns
parameter instead of "*". If you do not
/// specify individual resources, by setting ResourceArns
to "*" or by not
/// including the ResourceArns
parameter, then any missing context values
/// are instead included under the EvaluationResults
section. To discover
/// the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy
/// or GetContextKeysForPrincipalPolicy.
///
///
public List MissingContextValues
{
get { return this._missingContextValues; }
set { this._missingContextValues = value; }
}
// Check to see if MissingContextValues property is set
internal bool IsSetMissingContextValues()
{
return this._missingContextValues != null && this._missingContextValues.Count > 0;
}
///
/// Gets and sets the property PermissionsBoundaryDecisionDetail.
///
/// Contains information about the effect that a permissions boundary has on a policy
/// simulation when that boundary is applied to an IAM entity.
///
///
public PermissionsBoundaryDecisionDetail PermissionsBoundaryDecisionDetail
{
get { return this._permissionsBoundaryDecisionDetail; }
set { this._permissionsBoundaryDecisionDetail = value; }
}
// Check to see if PermissionsBoundaryDecisionDetail property is set
internal bool IsSetPermissionsBoundaryDecisionDetail()
{
return this._permissionsBoundaryDecisionDetail != null;
}
}
}