{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.ECS.DeleteCapacityProvider -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Deletes the specified capacity provider. -- -- The @FARGATE@ and @FARGATE_SPOT@ capacity providers are reserved and -- can\'t be deleted. You can disassociate them from a cluster using either -- the PutClusterCapacityProviders API or by deleting the cluster. -- -- Prior to a capacity provider being deleted, the capacity provider must -- be removed from the capacity provider strategy from all services. The -- UpdateService API can be used to remove a capacity provider from a -- service\'s capacity provider strategy. When updating a service, the -- @forceNewDeployment@ option can be used to ensure that any tasks using -- the Amazon EC2 instance capacity provided by the capacity provider are -- transitioned to use the capacity from the remaining capacity providers. -- Only capacity providers that aren\'t associated with a cluster can be -- deleted. To remove a capacity provider from a cluster, you can either -- use PutClusterCapacityProviders or delete the cluster. module Amazonka.ECS.DeleteCapacityProvider ( -- * Creating a Request DeleteCapacityProvider (..), newDeleteCapacityProvider, -- * Request Lenses deleteCapacityProvider_capacityProvider, -- * Destructuring the Response DeleteCapacityProviderResponse (..), newDeleteCapacityProviderResponse, -- * Response Lenses deleteCapacityProviderResponse_capacityProvider, deleteCapacityProviderResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.ECS.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newDeleteCapacityProvider' smart constructor. data DeleteCapacityProvider = DeleteCapacityProvider' { -- | The short name or full Amazon Resource Name (ARN) of the capacity -- provider to delete. capacityProvider :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteCapacityProvider' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'capacityProvider', 'deleteCapacityProvider_capacityProvider' - The short name or full Amazon Resource Name (ARN) of the capacity -- provider to delete. newDeleteCapacityProvider :: -- | 'capacityProvider' Prelude.Text -> DeleteCapacityProvider newDeleteCapacityProvider pCapacityProvider_ = DeleteCapacityProvider' { capacityProvider = pCapacityProvider_ } -- | The short name or full Amazon Resource Name (ARN) of the capacity -- provider to delete. deleteCapacityProvider_capacityProvider :: Lens.Lens' DeleteCapacityProvider Prelude.Text deleteCapacityProvider_capacityProvider = Lens.lens (\DeleteCapacityProvider' {capacityProvider} -> capacityProvider) (\s@DeleteCapacityProvider' {} a -> s {capacityProvider = a} :: DeleteCapacityProvider) instance Core.AWSRequest DeleteCapacityProvider where type AWSResponse DeleteCapacityProvider = DeleteCapacityProviderResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> DeleteCapacityProviderResponse' Prelude.<$> (x Data..?> "capacityProvider") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DeleteCapacityProvider where hashWithSalt _salt DeleteCapacityProvider' {..} = _salt `Prelude.hashWithSalt` capacityProvider instance Prelude.NFData DeleteCapacityProvider where rnf DeleteCapacityProvider' {..} = Prelude.rnf capacityProvider instance Data.ToHeaders DeleteCapacityProvider where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "AmazonEC2ContainerServiceV20141113.DeleteCapacityProvider" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DeleteCapacityProvider where toJSON DeleteCapacityProvider' {..} = Data.object ( Prelude.catMaybes [ Prelude.Just ("capacityProvider" Data..= capacityProvider) ] ) instance Data.ToPath DeleteCapacityProvider where toPath = Prelude.const "/" instance Data.ToQuery DeleteCapacityProvider where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDeleteCapacityProviderResponse' smart constructor. data DeleteCapacityProviderResponse = DeleteCapacityProviderResponse' { -- | The details of the capacity provider. capacityProvider :: Prelude.Maybe CapacityProvider, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteCapacityProviderResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'capacityProvider', 'deleteCapacityProviderResponse_capacityProvider' - The details of the capacity provider. -- -- 'httpStatus', 'deleteCapacityProviderResponse_httpStatus' - The response's http status code. newDeleteCapacityProviderResponse :: -- | 'httpStatus' Prelude.Int -> DeleteCapacityProviderResponse newDeleteCapacityProviderResponse pHttpStatus_ = DeleteCapacityProviderResponse' { capacityProvider = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The details of the capacity provider. deleteCapacityProviderResponse_capacityProvider :: Lens.Lens' DeleteCapacityProviderResponse (Prelude.Maybe CapacityProvider) deleteCapacityProviderResponse_capacityProvider = Lens.lens (\DeleteCapacityProviderResponse' {capacityProvider} -> capacityProvider) (\s@DeleteCapacityProviderResponse' {} a -> s {capacityProvider = a} :: DeleteCapacityProviderResponse) -- | The response's http status code. deleteCapacityProviderResponse_httpStatus :: Lens.Lens' DeleteCapacityProviderResponse Prelude.Int deleteCapacityProviderResponse_httpStatus = Lens.lens (\DeleteCapacityProviderResponse' {httpStatus} -> httpStatus) (\s@DeleteCapacityProviderResponse' {} a -> s {httpStatus = a} :: DeleteCapacityProviderResponse) instance Prelude.NFData DeleteCapacityProviderResponse where rnf DeleteCapacityProviderResponse' {..} = Prelude.rnf capacityProvider `Prelude.seq` Prelude.rnf httpStatus