{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.Organizations.RemoveAccountFromOrganization -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Removes the specified account from the organization. -- -- -- The removed account becomes a stand-alone account that is not a member of any organization. It is no longer subject to any policies and is responsible for its own bill payments. The organization's master account is no longer charged for any expenses accrued by the member account after it is removed from the organization. -- -- This operation can be called only from the organization's master account. Member accounts can remove themselves with 'LeaveOrganization' instead. -- -- /Important:/ * You can remove an account from your organization 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 AWS Organizations console, API, or CLI commands, the information required of standalone accounts is /not/ automatically collected. For an account that you want to make standalone, you must accept the End User License Agreement (EULA), choose a support plan, provide and verify the required contact information, and provide a current payment method. AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account is not attached to an organization. To remove an account that does not yet have this information, you must sign in as the member account and follow the steps at in the /AWS Organizations User Guide/ . -- -- * You can remove a member account only after you enable IAM user access to billing in the member account. For more information, see in the /AWS Billing and Cost Management User Guide/ . -- -- -- module Network.AWS.Organizations.RemoveAccountFromOrganization ( -- * Creating a Request removeAccountFromOrganization , RemoveAccountFromOrganization -- * Request Lenses , rafoAccountId -- * Destructuring the Response , removeAccountFromOrganizationResponse , RemoveAccountFromOrganizationResponse ) where import Network.AWS.Lens import Network.AWS.Organizations.Types import Network.AWS.Organizations.Types.Product import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'removeAccountFromOrganization' smart constructor. newtype RemoveAccountFromOrganization = RemoveAccountFromOrganization' { _rafoAccountId :: Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'RemoveAccountFromOrganization' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'rafoAccountId' - The unique identifier (ID) of the member account that you want to remove from the organization. The for an account ID string requires exactly 12 digits. removeAccountFromOrganization :: Text -- ^ 'rafoAccountId' -> RemoveAccountFromOrganization removeAccountFromOrganization pAccountId_ = RemoveAccountFromOrganization' {_rafoAccountId = pAccountId_} -- | The unique identifier (ID) of the member account that you want to remove from the organization. The for an account ID string requires exactly 12 digits. rafoAccountId :: Lens' RemoveAccountFromOrganization Text rafoAccountId = lens _rafoAccountId (\ s a -> s{_rafoAccountId = a}); instance AWSRequest RemoveAccountFromOrganization where type Rs RemoveAccountFromOrganization = RemoveAccountFromOrganizationResponse request = postJSON organizations response = receiveNull RemoveAccountFromOrganizationResponse' instance Hashable RemoveAccountFromOrganization where instance NFData RemoveAccountFromOrganization where instance ToHeaders RemoveAccountFromOrganization where toHeaders = const (mconcat ["X-Amz-Target" =# ("AWSOrganizationsV20161128.RemoveAccountFromOrganization" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON RemoveAccountFromOrganization where toJSON RemoveAccountFromOrganization'{..} = object (catMaybes [Just ("AccountId" .= _rafoAccountId)]) instance ToPath RemoveAccountFromOrganization where toPath = const "/" instance ToQuery RemoveAccountFromOrganization where toQuery = const mempty -- | /See:/ 'removeAccountFromOrganizationResponse' smart constructor. data RemoveAccountFromOrganizationResponse = RemoveAccountFromOrganizationResponse' deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'RemoveAccountFromOrganizationResponse' with the minimum fields required to make a request. -- removeAccountFromOrganizationResponse :: RemoveAccountFromOrganizationResponse removeAccountFromOrganizationResponse = RemoveAccountFromOrganizationResponse' instance NFData RemoveAccountFromOrganizationResponse where