import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; /** * @public */ export type { __MetadataBearer }; /** * @public * * The input for {@link LeaveOrganizationCommand}. */ export interface LeaveOrganizationCommandInput { } /** * @public * * The output of {@link LeaveOrganizationCommand}. */ export interface LeaveOrganizationCommandOutput extends __MetadataBearer { } declare const LeaveOrganizationCommand_base: { new (input: LeaveOrganizationCommandInput): import("@smithy/core/client").CommandImpl; new (...[input]: [] | [LeaveOrganizationCommandInput]): import("@smithy/core/client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/types").EndpointParameterInstructions; }; /** *

Removes a member account from its parent organization. This version of the operation * is performed by the account that wants to leave. To remove a member account as a user in * the management account, use RemoveAccountFromOrganization * instead.

*

You can only call from operation from a member account.

*

When an account leaves an organization, Organizations logs a membership event in * CloudTrail. The event is an AccountDepartedOrganization event with * departureMethod:LEFT and departureTime. This event is available * only in the management account's event history.

* *
    *
  • *

    The management account in an organization with all features enabled can * set service control policies (SCPs) that can restrict what administrators of * member accounts can do. This includes preventing them from successfully * calling LeaveOrganization and leaving the organization.

    *
  • *
  • *

    You can leave an organization as a member account only if the account is * configured with the information required to operate as a standalone account. * When you create an account in an organization using the Organizations console, * API, or CLI commands, the information required of standalone accounts is * not automatically collected. For each account that * you want to make standalone, you must perform the following steps. If any of * the steps are already completed for this account, that step doesn't * appear.

    *
      *
    • *

      Choose a support plan

      *
    • *
    • *

      Provide and verify the required contact information

      *
    • *
    • *

      Provide a current payment method

      *
    • *
    *

    Amazon Web Services uses the payment method to charge for any billable (not free tier) * Amazon Web Services activity that occurs while the account isn't attached to an * organization. For more information, see Considerations before removing an account from an organization * in the Organizations User Guide.

    *
  • *
  • *

    The account that you want to leave must not be a delegated administrator * account for any Amazon Web Services service enabled for your organization. If the account * is a delegated administrator, you must first change the delegated * administrator account to another account that is remaining in the * organization.

    *
  • *
  • *

    After the account leaves the organization, all tags that were attached to * the account object in the organization are deleted. Amazon Web Services accounts outside * of an organization do not support tags.

    *
  • *
  • *

    A newly created account has a waiting period before it can be removed from * its organization. You must wait until at least four days after the account * was created. Invited accounts aren't subject to this waiting period.

    *
  • *
  • *

    If you are using an organization principal to call * LeaveOrganization across multiple accounts, you can only do * this up to 5 accounts per second in a single organization.

    *
  • *
*
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { OrganizationsClient, LeaveOrganizationCommand } from "@aws-sdk/client-organizations"; // ES Modules import * // const { OrganizationsClient, LeaveOrganizationCommand } = require("@aws-sdk/client-organizations"); // CommonJS import * // import type { OrganizationsClientConfig } from "@aws-sdk/client-organizations"; * const config = {}; // type is OrganizationsClientConfig * const client = new OrganizationsClient(config); * const input = {}; * const command = new LeaveOrganizationCommand(input); * const response = await client.send(command); * // {}; * * ``` * * @param LeaveOrganizationCommandInput - {@link LeaveOrganizationCommandInput} * @returns {@link LeaveOrganizationCommandOutput} * @see {@link LeaveOrganizationCommandInput} for command's `input` shape. * @see {@link LeaveOrganizationCommandOutput} for command's `response` shape. * @see {@link OrganizationsClientResolvedConfig | config} for OrganizationsClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) *

You don't have permissions to perform the requested operation. The user or role that * is making the request must have at least one IAM permissions policy attached that * grants the required permissions. For more information, see Access Management in the * IAM User Guide.

* * @throws {@link AccountNotFoundException} (client fault) *

We can't find an Amazon Web Services account with the AccountId that you specified, or * the account whose credentials you used to make this request isn't a member of an * organization.

* * @throws {@link AWSOrganizationsNotInUseException} (client fault) *

Your account isn't a member of an organization. To make this request, you must use the * credentials of an account that belongs to an organization.

* * @throws {@link ConcurrentModificationException} (client fault) *

The target of the operation is currently being modified by a different request. Try * again later.

* * @throws {@link ConstraintViolationException} (client fault) *

Performing this operation violates a minimum or maximum value limit. For example, * attempting to remove the last service control policy (SCP) from an OU or root, inviting * or creating too many accounts to the organization, or attaching too many policies to an * account, OU, or root. This exception includes a reason that contains additional * information about the violated limit:

* *

Some of the reasons in the following list might not be applicable to this specific * API or operation.

*
* * * @throws {@link InvalidInputException} (client fault) *

The requested operation failed because you provided invalid values for one or more of * the request parameters. This exception includes a reason that contains additional * information about the violated limit:

* *

Some of the reasons in the following list might not be applicable to this specific * API or operation.

*
* * * @throws {@link MasterCannotLeaveOrganizationException} (client fault) *

You can't remove a management account from an organization. If you want the management * account to become a member account in another organization, you must first delete the * current organization of the management account.

* * @throws {@link ServiceException} (server fault) *

Organizations can't complete your request because of an internal service error. Try again * later.

* * @throws {@link TooManyRequestsException} (client fault) *

You have sent too many requests in too short a period of time. The quota helps protect * against denial-of-service attacks. Try again later.

*

For information about quotas that affect Organizations, see Quotas for Organizations in the * Organizations User Guide.

* * @throws {@link OrganizationsServiceException} *

Base exception class for all service exceptions from Organizations service.

* * * @example To leave an organization as a member account * ```javascript * // TThe following example shows how to remove your member account from an organization: * const input = { /* empty *\/ }; * const command = new LeaveOrganizationCommand(input); * const response = await client.send(command); * /* response is * { /* metadata only *\/ } * *\/ * ``` * * @public */ export declare class LeaveOrganizationCommand extends LeaveOrganizationCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: {}; output: {}; }; sdk: { input: LeaveOrganizationCommandInput; output: LeaveOrganizationCommandOutput; }; }; }