{-# 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.SSM.GetOpsItem -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Get information about an OpsItem by using the ID. You must have -- permission in Identity and Access Management (IAM) to view information -- about an OpsItem. For more information, see -- -- in the /Amazon Web Services Systems Manager User Guide/. -- -- Operations engineers and IT professionals use Amazon Web Services -- Systems Manager OpsCenter to view, investigate, and remediate -- operational issues impacting the performance and health of their Amazon -- Web Services resources. For more information, see -- -- in the /Amazon Web Services Systems Manager User Guide/. module Amazonka.SSM.GetOpsItem ( -- * Creating a Request GetOpsItem (..), newGetOpsItem, -- * Request Lenses getOpsItem_opsItemArn, getOpsItem_opsItemId, -- * Destructuring the Response GetOpsItemResponse (..), newGetOpsItemResponse, -- * Response Lenses getOpsItemResponse_opsItem, getOpsItemResponse_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.SSM.Types -- | /See:/ 'newGetOpsItem' smart constructor. data GetOpsItem = GetOpsItem' { -- | The OpsItem Amazon Resource Name (ARN). opsItemArn :: Prelude.Maybe Prelude.Text, -- | The ID of the OpsItem that you want to get. opsItemId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetOpsItem' 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: -- -- 'opsItemArn', 'getOpsItem_opsItemArn' - The OpsItem Amazon Resource Name (ARN). -- -- 'opsItemId', 'getOpsItem_opsItemId' - The ID of the OpsItem that you want to get. newGetOpsItem :: -- | 'opsItemId' Prelude.Text -> GetOpsItem newGetOpsItem pOpsItemId_ = GetOpsItem' { opsItemArn = Prelude.Nothing, opsItemId = pOpsItemId_ } -- | The OpsItem Amazon Resource Name (ARN). getOpsItem_opsItemArn :: Lens.Lens' GetOpsItem (Prelude.Maybe Prelude.Text) getOpsItem_opsItemArn = Lens.lens (\GetOpsItem' {opsItemArn} -> opsItemArn) (\s@GetOpsItem' {} a -> s {opsItemArn = a} :: GetOpsItem) -- | The ID of the OpsItem that you want to get. getOpsItem_opsItemId :: Lens.Lens' GetOpsItem Prelude.Text getOpsItem_opsItemId = Lens.lens (\GetOpsItem' {opsItemId} -> opsItemId) (\s@GetOpsItem' {} a -> s {opsItemId = a} :: GetOpsItem) instance Core.AWSRequest GetOpsItem where type AWSResponse GetOpsItem = GetOpsItemResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> GetOpsItemResponse' Prelude.<$> (x Data..?> "OpsItem") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable GetOpsItem where hashWithSalt _salt GetOpsItem' {..} = _salt `Prelude.hashWithSalt` opsItemArn `Prelude.hashWithSalt` opsItemId instance Prelude.NFData GetOpsItem where rnf GetOpsItem' {..} = Prelude.rnf opsItemArn `Prelude.seq` Prelude.rnf opsItemId instance Data.ToHeaders GetOpsItem where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ("AmazonSSM.GetOpsItem" :: Prelude.ByteString), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON GetOpsItem where toJSON GetOpsItem' {..} = Data.object ( Prelude.catMaybes [ ("OpsItemArn" Data..=) Prelude.<$> opsItemArn, Prelude.Just ("OpsItemId" Data..= opsItemId) ] ) instance Data.ToPath GetOpsItem where toPath = Prelude.const "/" instance Data.ToQuery GetOpsItem where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newGetOpsItemResponse' smart constructor. data GetOpsItemResponse = GetOpsItemResponse' { -- | The OpsItem. opsItem :: Prelude.Maybe OpsItem, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetOpsItemResponse' 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: -- -- 'opsItem', 'getOpsItemResponse_opsItem' - The OpsItem. -- -- 'httpStatus', 'getOpsItemResponse_httpStatus' - The response's http status code. newGetOpsItemResponse :: -- | 'httpStatus' Prelude.Int -> GetOpsItemResponse newGetOpsItemResponse pHttpStatus_ = GetOpsItemResponse' { opsItem = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The OpsItem. getOpsItemResponse_opsItem :: Lens.Lens' GetOpsItemResponse (Prelude.Maybe OpsItem) getOpsItemResponse_opsItem = Lens.lens (\GetOpsItemResponse' {opsItem} -> opsItem) (\s@GetOpsItemResponse' {} a -> s {opsItem = a} :: GetOpsItemResponse) -- | The response's http status code. getOpsItemResponse_httpStatus :: Lens.Lens' GetOpsItemResponse Prelude.Int getOpsItemResponse_httpStatus = Lens.lens (\GetOpsItemResponse' {httpStatus} -> httpStatus) (\s@GetOpsItemResponse' {} a -> s {httpStatus = a} :: GetOpsItemResponse) instance Prelude.NFData GetOpsItemResponse where rnf GetOpsItemResponse' {..} = Prelude.rnf opsItem `Prelude.seq` Prelude.rnf httpStatus