Skip to content

associate_accounts async

associate_accounts(
    arn: BillingGroupArn,
    account_ids: AccountIdList,
    *,
    config_overrides: Optional[AsyncbillingconductorClientConfig] = None,
) -> AssociateAccountsOutput

Connects an array of account IDs in a consolidated billing family to a predefined billing group. The account IDs must be a part of the consolidated billing family during the current month, and not already associated with another billing group. The maximum number of accounts that can be associated in one call is 30.

Parameters:

  • arn (BillingGroupArn) –

    The Amazon Resource Name (ARN) of the billing group that associates the array of account IDs.

  • account_ids (AccountIdList) –

    The associating array of account IDs.

Raises:

Source code in docs_src/capo_billingconductor/_services/async_billingconductor.py
async def associate_accounts(
    self,
    arn: "capo_billingconductor.types.billing_group_arn.BillingGroupArn",
    account_ids: "capo_billingconductor.types.account_id_list.AccountIdList",
    *,
    config_overrides: Optional[AsyncbillingconductorClientConfig] = None,
) -> (
    "capo_billingconductor.types.associate_accounts_output.AssociateAccountsOutput"
):
    """<p>Connects an array of account IDs in a consolidated billing family to a predefined billing group. The account IDs must be a part of the consolidated billing family during the current month, and not already associated with another billing group. The maximum number of accounts that can be associated in one call is 30. </p>

    Args:
        arn: <p> The Amazon Resource Name (ARN) of the billing group that associates the array of account IDs. </p>
        account_ids: <p> The associating array of account IDs. </p>

    Raises:
        capo_billingconductor.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action. </p>
        capo_billingconductor.errors.conflict_exception.ConflictException: <p>You can cause an inconsistent state by updating or deleting a resource. </p>
        capo_billingconductor.errors.internal_server_exception.InternalServerException: <p>An unexpected error occurred while processing a request. </p>
        capo_billingconductor.errors.resource_not_found_exception.ResourceNotFoundException: <p>The request references a resource that doesn't exist. </p>
        capo_billingconductor.errors.service_limit_exceeded_exception.ServiceLimitExceededException: <p>The request would cause a service limit to exceed. </p>
        capo_billingconductor.errors.throttling_exception.ThrottlingException: <p>The request was denied due to request throttling. </p>
        capo_billingconductor.errors.validation_exception.ValidationException: <p>The input doesn't match with the constraints specified by Amazon Web Services services.</p>
        capo_billingconductor.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_billingconductor.types.associate_accounts_input.AssociateAccountsInput]",
    ) -> AsyncOperationResponse[
        "capo_billingconductor.types.associate_accounts_output.AssociateAccountsOutput"
    ]:
        import capo_billingconductor._operations.aws_billing_conductor.associate_accounts

        (
            output,
            http_response,
        ) = await capo_billingconductor._operations.aws_billing_conductor.associate_accounts.async_associate_accounts(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("AssociateAccounts")
    )
    input_: capo_billingconductor.types.associate_accounts_input.AssociateAccountsInput = {
        "arn": arn,
        "account_ids": account_ids,
    }

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