{-# 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.ServiceCatalog.ExecuteProvisionedProductServiceAction -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Executes a self-service action against a provisioned product. module Amazonka.ServiceCatalog.ExecuteProvisionedProductServiceAction ( -- * Creating a Request ExecuteProvisionedProductServiceAction (..), newExecuteProvisionedProductServiceAction, -- * Request Lenses executeProvisionedProductServiceAction_acceptLanguage, executeProvisionedProductServiceAction_parameters, executeProvisionedProductServiceAction_provisionedProductId, executeProvisionedProductServiceAction_serviceActionId, executeProvisionedProductServiceAction_executeToken, -- * Destructuring the Response ExecuteProvisionedProductServiceActionResponse (..), newExecuteProvisionedProductServiceActionResponse, -- * Response Lenses executeProvisionedProductServiceActionResponse_recordDetail, executeProvisionedProductServiceActionResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response import Amazonka.ServiceCatalog.Types -- | /See:/ 'newExecuteProvisionedProductServiceAction' smart constructor. data ExecuteProvisionedProductServiceAction = ExecuteProvisionedProductServiceAction' { -- | The language code. -- -- - @en@ - English (default) -- -- - @jp@ - Japanese -- -- - @zh@ - Chinese acceptLanguage :: Prelude.Maybe Prelude.Text, -- | A map of all self-service action parameters and their values. If a -- provided parameter is of a special type, such as @TARGET@, the provided -- value will override the default value generated by Service Catalog. If -- the parameters field is not provided, no additional parameters are -- passed and default values will be used for any special parameters such -- as @TARGET@. parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text [Prelude.Text]), -- | The identifier of the provisioned product. provisionedProductId :: Prelude.Text, -- | The self-service action identifier. For example, @act-fs7abcd89wxyz@. serviceActionId :: Prelude.Text, -- | An idempotency token that uniquely identifies the execute request. executeToken :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ExecuteProvisionedProductServiceAction' 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: -- -- 'acceptLanguage', 'executeProvisionedProductServiceAction_acceptLanguage' - The language code. -- -- - @en@ - English (default) -- -- - @jp@ - Japanese -- -- - @zh@ - Chinese -- -- 'parameters', 'executeProvisionedProductServiceAction_parameters' - A map of all self-service action parameters and their values. If a -- provided parameter is of a special type, such as @TARGET@, the provided -- value will override the default value generated by Service Catalog. If -- the parameters field is not provided, no additional parameters are -- passed and default values will be used for any special parameters such -- as @TARGET@. -- -- 'provisionedProductId', 'executeProvisionedProductServiceAction_provisionedProductId' - The identifier of the provisioned product. -- -- 'serviceActionId', 'executeProvisionedProductServiceAction_serviceActionId' - The self-service action identifier. For example, @act-fs7abcd89wxyz@. -- -- 'executeToken', 'executeProvisionedProductServiceAction_executeToken' - An idempotency token that uniquely identifies the execute request. newExecuteProvisionedProductServiceAction :: -- | 'provisionedProductId' Prelude.Text -> -- | 'serviceActionId' Prelude.Text -> -- | 'executeToken' Prelude.Text -> ExecuteProvisionedProductServiceAction newExecuteProvisionedProductServiceAction pProvisionedProductId_ pServiceActionId_ pExecuteToken_ = ExecuteProvisionedProductServiceAction' { acceptLanguage = Prelude.Nothing, parameters = Prelude.Nothing, provisionedProductId = pProvisionedProductId_, serviceActionId = pServiceActionId_, executeToken = pExecuteToken_ } -- | The language code. -- -- - @en@ - English (default) -- -- - @jp@ - Japanese -- -- - @zh@ - Chinese executeProvisionedProductServiceAction_acceptLanguage :: Lens.Lens' ExecuteProvisionedProductServiceAction (Prelude.Maybe Prelude.Text) executeProvisionedProductServiceAction_acceptLanguage = Lens.lens (\ExecuteProvisionedProductServiceAction' {acceptLanguage} -> acceptLanguage) (\s@ExecuteProvisionedProductServiceAction' {} a -> s {acceptLanguage = a} :: ExecuteProvisionedProductServiceAction) -- | A map of all self-service action parameters and their values. If a -- provided parameter is of a special type, such as @TARGET@, the provided -- value will override the default value generated by Service Catalog. If -- the parameters field is not provided, no additional parameters are -- passed and default values will be used for any special parameters such -- as @TARGET@. executeProvisionedProductServiceAction_parameters :: Lens.Lens' ExecuteProvisionedProductServiceAction (Prelude.Maybe (Prelude.HashMap Prelude.Text [Prelude.Text])) executeProvisionedProductServiceAction_parameters = Lens.lens (\ExecuteProvisionedProductServiceAction' {parameters} -> parameters) (\s@ExecuteProvisionedProductServiceAction' {} a -> s {parameters = a} :: ExecuteProvisionedProductServiceAction) Prelude.. Lens.mapping Lens.coerced -- | The identifier of the provisioned product. executeProvisionedProductServiceAction_provisionedProductId :: Lens.Lens' ExecuteProvisionedProductServiceAction Prelude.Text executeProvisionedProductServiceAction_provisionedProductId = Lens.lens (\ExecuteProvisionedProductServiceAction' {provisionedProductId} -> provisionedProductId) (\s@ExecuteProvisionedProductServiceAction' {} a -> s {provisionedProductId = a} :: ExecuteProvisionedProductServiceAction) -- | The self-service action identifier. For example, @act-fs7abcd89wxyz@. executeProvisionedProductServiceAction_serviceActionId :: Lens.Lens' ExecuteProvisionedProductServiceAction Prelude.Text executeProvisionedProductServiceAction_serviceActionId = Lens.lens (\ExecuteProvisionedProductServiceAction' {serviceActionId} -> serviceActionId) (\s@ExecuteProvisionedProductServiceAction' {} a -> s {serviceActionId = a} :: ExecuteProvisionedProductServiceAction) -- | An idempotency token that uniquely identifies the execute request. executeProvisionedProductServiceAction_executeToken :: Lens.Lens' ExecuteProvisionedProductServiceAction Prelude.Text executeProvisionedProductServiceAction_executeToken = Lens.lens (\ExecuteProvisionedProductServiceAction' {executeToken} -> executeToken) (\s@ExecuteProvisionedProductServiceAction' {} a -> s {executeToken = a} :: ExecuteProvisionedProductServiceAction) instance Core.AWSRequest ExecuteProvisionedProductServiceAction where type AWSResponse ExecuteProvisionedProductServiceAction = ExecuteProvisionedProductServiceActionResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> ExecuteProvisionedProductServiceActionResponse' Prelude.<$> (x Data..?> "RecordDetail") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable ExecuteProvisionedProductServiceAction where hashWithSalt _salt ExecuteProvisionedProductServiceAction' {..} = _salt `Prelude.hashWithSalt` acceptLanguage `Prelude.hashWithSalt` parameters `Prelude.hashWithSalt` provisionedProductId `Prelude.hashWithSalt` serviceActionId `Prelude.hashWithSalt` executeToken instance Prelude.NFData ExecuteProvisionedProductServiceAction where rnf ExecuteProvisionedProductServiceAction' {..} = Prelude.rnf acceptLanguage `Prelude.seq` Prelude.rnf parameters `Prelude.seq` Prelude.rnf provisionedProductId `Prelude.seq` Prelude.rnf serviceActionId `Prelude.seq` Prelude.rnf executeToken instance Data.ToHeaders ExecuteProvisionedProductServiceAction where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "AWS242ServiceCatalogService.ExecuteProvisionedProductServiceAction" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON ExecuteProvisionedProductServiceAction where toJSON ExecuteProvisionedProductServiceAction' {..} = Data.object ( Prelude.catMaybes [ ("AcceptLanguage" Data..=) Prelude.<$> acceptLanguage, ("Parameters" Data..=) Prelude.<$> parameters, Prelude.Just ( "ProvisionedProductId" Data..= provisionedProductId ), Prelude.Just ("ServiceActionId" Data..= serviceActionId), Prelude.Just ("ExecuteToken" Data..= executeToken) ] ) instance Data.ToPath ExecuteProvisionedProductServiceAction where toPath = Prelude.const "/" instance Data.ToQuery ExecuteProvisionedProductServiceAction where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newExecuteProvisionedProductServiceActionResponse' smart constructor. data ExecuteProvisionedProductServiceActionResponse = ExecuteProvisionedProductServiceActionResponse' { -- | An object containing detailed information about the result of -- provisioning the product. recordDetail :: Prelude.Maybe RecordDetail, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ExecuteProvisionedProductServiceActionResponse' 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: -- -- 'recordDetail', 'executeProvisionedProductServiceActionResponse_recordDetail' - An object containing detailed information about the result of -- provisioning the product. -- -- 'httpStatus', 'executeProvisionedProductServiceActionResponse_httpStatus' - The response's http status code. newExecuteProvisionedProductServiceActionResponse :: -- | 'httpStatus' Prelude.Int -> ExecuteProvisionedProductServiceActionResponse newExecuteProvisionedProductServiceActionResponse pHttpStatus_ = ExecuteProvisionedProductServiceActionResponse' { recordDetail = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | An object containing detailed information about the result of -- provisioning the product. executeProvisionedProductServiceActionResponse_recordDetail :: Lens.Lens' ExecuteProvisionedProductServiceActionResponse (Prelude.Maybe RecordDetail) executeProvisionedProductServiceActionResponse_recordDetail = Lens.lens (\ExecuteProvisionedProductServiceActionResponse' {recordDetail} -> recordDetail) (\s@ExecuteProvisionedProductServiceActionResponse' {} a -> s {recordDetail = a} :: ExecuteProvisionedProductServiceActionResponse) -- | The response's http status code. executeProvisionedProductServiceActionResponse_httpStatus :: Lens.Lens' ExecuteProvisionedProductServiceActionResponse Prelude.Int executeProvisionedProductServiceActionResponse_httpStatus = Lens.lens (\ExecuteProvisionedProductServiceActionResponse' {httpStatus} -> httpStatus) (\s@ExecuteProvisionedProductServiceActionResponse' {} a -> s {httpStatus = a} :: ExecuteProvisionedProductServiceActionResponse) instance Prelude.NFData ExecuteProvisionedProductServiceActionResponse where rnf ExecuteProvisionedProductServiceActionResponse' {..} = Prelude.rnf recordDetail `Prelude.seq` Prelude.rnf httpStatus