/* * 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 results of a simulation. /// /// /// /// This data type is used by the return parameter of SimulateCustomPolicy /// and SimulatePrincipalPolicy . /// /// public partial class EvaluationResult { private string _evalActionName; private PolicyEvaluationDecisionType _evalDecision; private Dictionary _evalDecisionDetails = new Dictionary(); private string _evalResourceName; private List _matchedStatements = new List(); private List _missingContextValues = new List(); private OrganizationsDecisionDetail _organizationsDecisionDetail; private PermissionsBoundaryDecisionDetail _permissionsBoundaryDecisionDetail; private List _resourceSpecificResults = new List(); /// /// Gets and sets the property EvalActionName. /// /// The name of the API operation tested on the indicated resource. /// /// [AWSProperty(Required=true, Min=3, Max=128)] public string EvalActionName { get { return this._evalActionName; } set { this._evalActionName = value; } } // Check to see if EvalActionName property is set internal bool IsSetEvalActionName() { return this._evalActionName != null; } /// /// Gets and sets the property EvalDecision. /// /// The result of the simulation. /// /// [AWSProperty(Required=true)] public PolicyEvaluationDecisionType EvalDecision { get { return this._evalDecision; } set { this._evalDecision = value; } } // Check to see if EvalDecision property is set internal bool IsSetEvalDecision() { return this._evalDecision != null; } /// /// Gets and sets the property EvalDecisionDetails. /// /// Additional details about the results of the cross-account evaluation decision. This /// parameter is populated for only cross-account simulations. It contains a brief summary /// of how each policy type contributes to the final evaluation decision. /// /// /// /// If the simulation evaluates policies within the same account and includes a resource /// ARN, then the parameter is present but the response is empty. If the simulation evaluates /// policies within the same account and specifies all resources (*), then /// the parameter is not returned. /// /// /// /// When you make a cross-account request, Amazon Web Services evaluates the request in /// the trusting account and the trusted account. The request is allowed only if both /// evaluations return true. For more information about how policies are /// evaluated, see Evaluating /// policies within a single account. /// /// /// /// If an Organizations SCP included in the evaluation denies access, the simulation ends. /// In this case, policy evaluation does not proceed any further and this parameter is /// not returned. /// /// 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 EvalResourceName. /// /// The ARN of the resource that the indicated API operation was tested on. /// /// [AWSProperty(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 /// scenario. Remember that even if multiple statements allow the operation on the resource, /// if only one 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 the resource in /// a simulation is "*", either explicitly, or when the ResourceArns parameter /// blank. If you include a list of resources, then any missing context values are instead /// included under the ResourceSpecificResults 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 OrganizationsDecisionDetail. /// /// A structure that details how Organizations and its service control policies affect /// the results of the simulation. Only applies if the simulated user's account is part /// of an organization. /// /// public OrganizationsDecisionDetail OrganizationsDecisionDetail { get { return this._organizationsDecisionDetail; } set { this._organizationsDecisionDetail = value; } } // Check to see if OrganizationsDecisionDetail property is set internal bool IsSetOrganizationsDecisionDetail() { return this._organizationsDecisionDetail != null; } /// /// Gets and sets the property PermissionsBoundaryDecisionDetail. /// /// Contains information about the effect that a permissions boundary has on a policy /// simulation when the 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; } /// /// Gets and sets the property ResourceSpecificResults. /// /// The individual results of the simulation of the API operation specified in EvalActionName /// on each resource. /// /// public List ResourceSpecificResults { get { return this._resourceSpecificResults; } set { this._resourceSpecificResults = value; } } // Check to see if ResourceSpecificResults property is set internal bool IsSetResourceSpecificResults() { return this._resourceSpecificResults != null && this._resourceSpecificResults.Count > 0; } } }