Skip to content

iter_simulate_principal_policy

iter_simulate_principal_policy(
    policy_source_arn: arnType,
    action_names: ActionNameListType,
    *,
    config_overrides: Optional[IAMClientConfig] = None,
    policy_input_list: Optional[SimulationPolicyListType] = None,
    permissions_boundary_policy_input_list: Optional[SimulationPolicyListType] = None,
    policy_exclusion_list: Optional[PolicyExclusionsListType] = None,
    resource_arns: Optional[ResourceNameListType] = None,
    resource_policy: Optional[policyDocumentType] = None,
    resource_owner: Optional[ResourceNameType] = None,
    caller_arn: Optional[ResourceNameType] = None,
    context_entries: Optional[ContextEntryListType] = None,
    resource_handling_option: Optional[ResourceHandlingOptionType] = None,
    max_items: Optional[maxItemsType] = None,
    marker: Optional[markerType] = None,
) -> Iterator[EvaluationResult]
Source code in docs_src/capo_iam/_services/iam.py
def iter_simulate_principal_policy(
    self,
    policy_source_arn: "capo_iam.types.arn_type.arnType",
    action_names: "capo_iam.types.action_name_list_type.ActionNameListType",
    *,
    config_overrides: Optional[IAMClientConfig] = None,
    policy_input_list: Optional[
        "capo_iam.types.simulation_policy_list_type.SimulationPolicyListType"
    ] = None,
    permissions_boundary_policy_input_list: Optional[
        "capo_iam.types.simulation_policy_list_type.SimulationPolicyListType"
    ] = None,
    policy_exclusion_list: Optional[
        "capo_iam.types.policy_exclusions_list_type.PolicyExclusionsListType"
    ] = None,
    resource_arns: Optional[
        "capo_iam.types.resource_name_list_type.ResourceNameListType"
    ] = None,
    resource_policy: Optional[
        "capo_iam.types.policy_document_type.policyDocumentType"
    ] = None,
    resource_owner: Optional[
        "capo_iam.types.resource_name_type.ResourceNameType"
    ] = None,
    caller_arn: Optional[
        "capo_iam.types.resource_name_type.ResourceNameType"
    ] = None,
    context_entries: Optional[
        "capo_iam.types.context_entry_list_type.ContextEntryListType"
    ] = None,
    resource_handling_option: Optional[
        "capo_iam.types.resource_handling_option_type.ResourceHandlingOptionType"
    ] = None,
    max_items: Optional["capo_iam.types.max_items_type.maxItemsType"] = None,
    marker: Optional["capo_iam.types.marker_type.markerType"] = None,
) -> "Iterator[capo_iam.types.evaluation_result.EvaluationResult]":
    _token = marker
    while True:
        _response = self.simulate_principal_policy(
            policy_source_arn,
            action_names,
            config_overrides=config_overrides,
            policy_input_list=policy_input_list,
            permissions_boundary_policy_input_list=permissions_boundary_policy_input_list,
            policy_exclusion_list=policy_exclusion_list,
            resource_arns=resource_arns,
            resource_policy=resource_policy,
            resource_owner=resource_owner,
            caller_arn=caller_arn,
            context_entries=context_entries,
            resource_handling_option=resource_handling_option,
            max_items=max_items,
            marker=_token,
        )
        _page = _resolve_path(_response, ("evaluation_results",))
        for _item in _page or []:
            yield _item
        _token = _resolve_path(_response, ("marker",))
        if not _token or not _resolve_path(_response, ("is_truncated",)):
            break