Skip to content

create_access_preview async

create_access_preview(
    analyzer_arn: AnalyzerArn,
    configurations: ConfigurationsMap,
    *,
    config_overrides: Optional[AsyncAccessAnalyzerClientConfig] = None,
    client_token: Optional[str] = None,
) -> CreateAccessPreviewResponse

Creates an access preview that allows you to preview IAM Access Analyzer findings for your resource before deploying resource permissions.

Parameters:

  • analyzer_arn (AnalyzerArn) –

    The ARN of the account analyzer used to generate the access preview. You can only create an access preview for analyzers with an Account type and Active status.

  • configurations (ConfigurationsMap) –

    Access control configuration for your resource that is used to generate the access preview. The access preview includes findings for external access allowed to the resource with the proposed access control configuration. The configuration must contain exactly one element.

  • client_token (Optional[str], default: None ) –

    A client token.

Raises:

Source code in docs_src/capo_accessanalyzer/_services/async_access_analyzer.py
async def create_access_preview(
    self,
    analyzer_arn: "capo_accessanalyzer.types.analyzer_arn.AnalyzerArn",
    configurations: "capo_accessanalyzer.types.configurations_map.ConfigurationsMap",
    *,
    config_overrides: Optional[AsyncAccessAnalyzerClientConfig] = None,
    client_token: Optional[str] = None,
) -> "capo_accessanalyzer.types.create_access_preview_response.CreateAccessPreviewResponse":
    """<p>Creates an access preview that allows you to preview IAM Access Analyzer findings for your resource before deploying resource permissions.</p>

    Args:
        analyzer_arn: <p>The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the account analyzer</a> used to generate the access preview. You can only create an access preview for analyzers with an <code>Account</code> type and <code>Active</code> status.</p>
        configurations: <p>Access control configuration for your resource that is used to generate the access preview. The access preview includes findings for external access allowed to the resource with the proposed access control configuration. The configuration must contain exactly one element.</p>
        client_token: <p>A client token.</p>

    Raises:
        capo_accessanalyzer.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action.</p>
        capo_accessanalyzer.errors.conflict_exception.ConflictException: <p>A conflict exception error.</p>
        capo_accessanalyzer.errors.internal_server_exception.InternalServerException: <p>Internal server error.</p>
        capo_accessanalyzer.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource could not be found.</p>
        capo_accessanalyzer.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>Service quote met error.</p>
        capo_accessanalyzer.errors.throttling_exception.ThrottlingException: <p>Throttling limit exceeded error.</p>
        capo_accessanalyzer.errors.validation_exception.ValidationException: <p>Validation exception error.</p>
        capo_accessanalyzer.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_accessanalyzer.types.create_access_preview_request.CreateAccessPreviewRequest]",
    ) -> AsyncOperationResponse[
        "capo_accessanalyzer.types.create_access_preview_response.CreateAccessPreviewResponse"
    ]:
        import capo_accessanalyzer._operations.access_analyzer.create_access_preview

        (
            output,
            http_response,
        ) = await capo_accessanalyzer._operations.access_analyzer.create_access_preview.async_create_access_preview(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateAccessPreview")
    )
    input_: capo_accessanalyzer.types.create_access_preview_request.CreateAccessPreviewRequest = {
        "analyzer_arn": analyzer_arn,
        "configurations": configurations,
    }
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output