Skip to content

disassociate_accounts async

disassociate_accounts(
    account_ids: AccountIdList,
    *,
    config_overrides: Optional[AsyncComputeOptimizerAutomationClientConfig] = None,
    client_token: Optional[ClientToken] = None,
) -> DisassociateAccountsResponse

Disassociates member accounts from your organization's management account, removing centralized automation capabilities. Once disassociated, organization rules no longer apply to the member account, and the management account (or delegated administrator) cannot create Automation rules for that account.

Only the management account or a delegated administrator can perform this action.

Parameters:

  • account_ids (AccountIdList) –

    The IDs of the member accounts to disassociate.

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

    A unique identifier to ensure idempotency of the request.

Raises:

Source code in docs_src/capo_compute_optimizer_automation/_services/async_compute_optimizer_automation.py
async def disassociate_accounts(
    self,
    account_ids: "capo_compute_optimizer_automation.types.account_id_list.AccountIdList",
    *,
    config_overrides: Optional[AsyncComputeOptimizerAutomationClientConfig] = None,
    client_token: Optional[
        "capo_compute_optimizer_automation.types.client_token.ClientToken"
    ] = None,
) -> "capo_compute_optimizer_automation.types.disassociate_accounts_response.DisassociateAccountsResponse":
    """<p> Disassociates member accounts from your organization's management account, removing centralized automation capabilities. Once disassociated, organization rules no longer apply to the member account, and the management account (or delegated administrator) cannot create Automation rules for that account. </p> <note> <p>Only the management account or a delegated administrator can perform this action.</p> </note>

    Args:
        account_ids: <p> The IDs of the member accounts to disassociate. </p>
        client_token: <p> A unique identifier to ensure idempotency of the request. </p>

    Raises:
        capo_compute_optimizer_automation.errors.access_denied_exception.AccessDeniedException: <p> You do not have sufficient permissions to perform this action. </p>
        capo_compute_optimizer_automation.errors.forbidden_exception.ForbiddenException: <p> You are not authorized to perform this action. </p>
        capo_compute_optimizer_automation.errors.idempotency_token_in_use_exception.IdempotencyTokenInUseException: <p> The specified client token is already in use. </p>
        capo_compute_optimizer_automation.errors.idempotent_parameter_mismatch_exception.IdempotentParameterMismatchException: <p>Exception thrown when the same client token is used with different parameters, indicating a mismatch in idempotent request parameters.</p>
        capo_compute_optimizer_automation.errors.internal_server_exception.InternalServerException: <p> An internal error occurred while processing the request. </p>
        capo_compute_optimizer_automation.errors.invalid_parameter_value_exception.InvalidParameterValueException: <p> One or more parameter values are not valid. </p>
        capo_compute_optimizer_automation.errors.not_management_account_exception.NotManagementAccountException: <p> The operation can only be performed by a management account. </p>
        capo_compute_optimizer_automation.errors.opt_in_required_exception.OptInRequiredException: <p> The account must be opted in to Compute Optimizer Automation before performing this action. </p>
        capo_compute_optimizer_automation.errors.service_unavailable_exception.ServiceUnavailableException: <p> The service is temporarily unavailable. </p>
        capo_compute_optimizer_automation.errors.throttling_exception.ThrottlingException: <p> The request was denied due to request throttling. </p>
        capo_compute_optimizer_automation.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_compute_optimizer_automation.types.disassociate_accounts_request.DisassociateAccountsRequest]",
    ) -> AsyncOperationResponse[
        "capo_compute_optimizer_automation.types.disassociate_accounts_response.DisassociateAccountsResponse"
    ]:
        import capo_compute_optimizer_automation._operations.compute_optimizer_automation_service.disassociate_accounts

        (
            output,
            http_response,
        ) = await capo_compute_optimizer_automation._operations.compute_optimizer_automation_service.disassociate_accounts.async_disassociate_accounts(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("DisassociateAccounts")
    )
    input_: capo_compute_optimizer_automation.types.disassociate_accounts_request.DisassociateAccountsRequest = {
        "account_ids": account_ids
    }
    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