Class EvaluationResult

java.lang.Object
software.amazon.awssdk.services.iam.model.EvaluationResult
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<EvaluationResult.Builder,EvaluationResult>

@Generated("software.amazon.awssdk:codegen") public final class EvaluationResult extends Object implements SdkPojo, Serializable, ToCopyableBuilder<EvaluationResult.Builder,EvaluationResult>

Contains the results of a simulation.

This data type is used by the return parameter of SimulateCustomPolicy and SimulatePrincipalPolicy .

See Also:
  • Method Details

    • evalActionName

      public final String evalActionName()

      The name of the API operation tested on the indicated resource.

      Returns:
      The name of the API operation tested on the indicated resource.
    • evalResourceName

      public final String evalResourceName()

      The ARN of the resource that the indicated API operation was tested on.

      Returns:
      The ARN of the resource that the indicated API operation was tested on.
    • evalDecision

      public final PolicyEvaluationDecisionType evalDecision()

      The result of the simulation.

      If the service returns an enum value that is not available in the current SDK version, evalDecision will return PolicyEvaluationDecisionType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from evalDecisionAsString().

      Returns:
      The result of the simulation.
      See Also:
    • evalDecisionAsString

      public final String evalDecisionAsString()

      The result of the simulation.

      If the service returns an enum value that is not available in the current SDK version, evalDecision will return PolicyEvaluationDecisionType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from evalDecisionAsString().

      Returns:
      The result of the simulation.
      See Also:
    • hasMatchedStatements

      public final boolean hasMatchedStatements()
      For responses, this returns true if the service returned a value for the MatchedStatements property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • matchedStatements

      public final List<Statement> 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.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasMatchedStatements() method.

      Returns:
      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.
    • hasMissingContextValues

      public final boolean hasMissingContextValues()
      For responses, this returns true if the service returned a value for the MissingContextValues property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • missingContextValues

      public final List<String> 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.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasMissingContextValues() method.

      Returns:
      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.
    • organizationsDecisionDetail

      public final OrganizationsDecisionDetail 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.

      Returns:
      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.
    • permissionsBoundaryDecisionDetail

      public final PermissionsBoundaryDecisionDetail permissionsBoundaryDecisionDetail()

      Contains information about the effect that a permissions boundary has on a policy simulation when the boundary is applied to an IAM entity.

      Returns:
      Contains information about the effect that a permissions boundary has on a policy simulation when the boundary is applied to an IAM entity.
    • evalDecisionDetails

      public final Map<String,PolicyEvaluationDecisionType> 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.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasEvalDecisionDetails() method.

      Returns:
      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.

    • hasEvalDecisionDetails

      public final boolean hasEvalDecisionDetails()
      For responses, this returns true if the service returned a value for the EvalDecisionDetails property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • evalDecisionDetailsAsStrings

      public final Map<String,String> evalDecisionDetailsAsStrings()

      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.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasEvalDecisionDetails() method.

      Returns:
      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.

    • hasResourceSpecificResults

      public final boolean hasResourceSpecificResults()
      For responses, this returns true if the service returned a value for the ResourceSpecificResults property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • resourceSpecificResults

      public final List<ResourceSpecificResult> resourceSpecificResults()

      The individual results of the simulation of the API operation specified in EvalActionName on each resource.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasResourceSpecificResults() method.

      Returns:
      The individual results of the simulation of the API operation specified in EvalActionName on each resource.
    • toBuilder

      public EvaluationResult.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<EvaluationResult.Builder,EvaluationResult>
      Returns:
      a builder for type T
    • builder

      public static EvaluationResult.Builder builder()
    • serializableBuilderClass

      public static Class<? extends EvaluationResult.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.