{-# 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.IoTFleetWise.GetModelManifest -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Retrieves information about a vehicle model (model manifest). module Amazonka.IoTFleetWise.GetModelManifest ( -- * Creating a Request GetModelManifest (..), newGetModelManifest, -- * Request Lenses getModelManifest_name, -- * Destructuring the Response GetModelManifestResponse (..), newGetModelManifestResponse, -- * Response Lenses getModelManifestResponse_description, getModelManifestResponse_signalCatalogArn, getModelManifestResponse_status, getModelManifestResponse_httpStatus, getModelManifestResponse_name, getModelManifestResponse_arn, getModelManifestResponse_creationTime, getModelManifestResponse_lastModificationTime, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.IoTFleetWise.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newGetModelManifest' smart constructor. data GetModelManifest = GetModelManifest' { -- | The name of the vehicle model to retrieve information about. name :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetModelManifest' 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: -- -- 'name', 'getModelManifest_name' - The name of the vehicle model to retrieve information about. newGetModelManifest :: -- | 'name' Prelude.Text -> GetModelManifest newGetModelManifest pName_ = GetModelManifest' {name = pName_} -- | The name of the vehicle model to retrieve information about. getModelManifest_name :: Lens.Lens' GetModelManifest Prelude.Text getModelManifest_name = Lens.lens (\GetModelManifest' {name} -> name) (\s@GetModelManifest' {} a -> s {name = a} :: GetModelManifest) instance Core.AWSRequest GetModelManifest where type AWSResponse GetModelManifest = GetModelManifestResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> GetModelManifestResponse' Prelude.<$> (x Data..?> "description") Prelude.<*> (x Data..?> "signalCatalogArn") Prelude.<*> (x Data..?> "status") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) Prelude.<*> (x Data..:> "name") Prelude.<*> (x Data..:> "arn") Prelude.<*> (x Data..:> "creationTime") Prelude.<*> (x Data..:> "lastModificationTime") ) instance Prelude.Hashable GetModelManifest where hashWithSalt _salt GetModelManifest' {..} = _salt `Prelude.hashWithSalt` name instance Prelude.NFData GetModelManifest where rnf GetModelManifest' {..} = Prelude.rnf name instance Data.ToHeaders GetModelManifest where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "IoTAutobahnControlPlane.GetModelManifest" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.0" :: Prelude.ByteString ) ] ) instance Data.ToJSON GetModelManifest where toJSON GetModelManifest' {..} = Data.object ( Prelude.catMaybes [Prelude.Just ("name" Data..= name)] ) instance Data.ToPath GetModelManifest where toPath = Prelude.const "/" instance Data.ToQuery GetModelManifest where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newGetModelManifestResponse' smart constructor. data GetModelManifestResponse = GetModelManifestResponse' { -- | A brief description of the vehicle model. description :: Prelude.Maybe Prelude.Text, -- | The ARN of the signal catalog associated with the vehicle model. signalCatalogArn :: Prelude.Maybe Prelude.Text, -- | The state of the vehicle model. If the status is @ACTIVE@, the vehicle -- model can\'t be edited. You can edit the vehicle model if the status is -- marked @DRAFT@. status :: Prelude.Maybe ManifestStatus, -- | The response's http status code. httpStatus :: Prelude.Int, -- | The name of the vehicle model. name :: Prelude.Text, -- | The Amazon Resource Name (ARN) of the vehicle model. arn :: Prelude.Text, -- | The time the vehicle model was created, in seconds since epoch (January -- 1, 1970 at midnight UTC time). creationTime :: Data.POSIX, -- | The last time the vehicle model was modified. lastModificationTime :: Data.POSIX } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetModelManifestResponse' 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: -- -- 'description', 'getModelManifestResponse_description' - A brief description of the vehicle model. -- -- 'signalCatalogArn', 'getModelManifestResponse_signalCatalogArn' - The ARN of the signal catalog associated with the vehicle model. -- -- 'status', 'getModelManifestResponse_status' - The state of the vehicle model. If the status is @ACTIVE@, the vehicle -- model can\'t be edited. You can edit the vehicle model if the status is -- marked @DRAFT@. -- -- 'httpStatus', 'getModelManifestResponse_httpStatus' - The response's http status code. -- -- 'name', 'getModelManifestResponse_name' - The name of the vehicle model. -- -- 'arn', 'getModelManifestResponse_arn' - The Amazon Resource Name (ARN) of the vehicle model. -- -- 'creationTime', 'getModelManifestResponse_creationTime' - The time the vehicle model was created, in seconds since epoch (January -- 1, 1970 at midnight UTC time). -- -- 'lastModificationTime', 'getModelManifestResponse_lastModificationTime' - The last time the vehicle model was modified. newGetModelManifestResponse :: -- | 'httpStatus' Prelude.Int -> -- | 'name' Prelude.Text -> -- | 'arn' Prelude.Text -> -- | 'creationTime' Prelude.UTCTime -> -- | 'lastModificationTime' Prelude.UTCTime -> GetModelManifestResponse newGetModelManifestResponse pHttpStatus_ pName_ pArn_ pCreationTime_ pLastModificationTime_ = GetModelManifestResponse' { description = Prelude.Nothing, signalCatalogArn = Prelude.Nothing, status = Prelude.Nothing, httpStatus = pHttpStatus_, name = pName_, arn = pArn_, creationTime = Data._Time Lens.# pCreationTime_, lastModificationTime = Data._Time Lens.# pLastModificationTime_ } -- | A brief description of the vehicle model. getModelManifestResponse_description :: Lens.Lens' GetModelManifestResponse (Prelude.Maybe Prelude.Text) getModelManifestResponse_description = Lens.lens (\GetModelManifestResponse' {description} -> description) (\s@GetModelManifestResponse' {} a -> s {description = a} :: GetModelManifestResponse) -- | The ARN of the signal catalog associated with the vehicle model. getModelManifestResponse_signalCatalogArn :: Lens.Lens' GetModelManifestResponse (Prelude.Maybe Prelude.Text) getModelManifestResponse_signalCatalogArn = Lens.lens (\GetModelManifestResponse' {signalCatalogArn} -> signalCatalogArn) (\s@GetModelManifestResponse' {} a -> s {signalCatalogArn = a} :: GetModelManifestResponse) -- | The state of the vehicle model. If the status is @ACTIVE@, the vehicle -- model can\'t be edited. You can edit the vehicle model if the status is -- marked @DRAFT@. getModelManifestResponse_status :: Lens.Lens' GetModelManifestResponse (Prelude.Maybe ManifestStatus) getModelManifestResponse_status = Lens.lens (\GetModelManifestResponse' {status} -> status) (\s@GetModelManifestResponse' {} a -> s {status = a} :: GetModelManifestResponse) -- | The response's http status code. getModelManifestResponse_httpStatus :: Lens.Lens' GetModelManifestResponse Prelude.Int getModelManifestResponse_httpStatus = Lens.lens (\GetModelManifestResponse' {httpStatus} -> httpStatus) (\s@GetModelManifestResponse' {} a -> s {httpStatus = a} :: GetModelManifestResponse) -- | The name of the vehicle model. getModelManifestResponse_name :: Lens.Lens' GetModelManifestResponse Prelude.Text getModelManifestResponse_name = Lens.lens (\GetModelManifestResponse' {name} -> name) (\s@GetModelManifestResponse' {} a -> s {name = a} :: GetModelManifestResponse) -- | The Amazon Resource Name (ARN) of the vehicle model. getModelManifestResponse_arn :: Lens.Lens' GetModelManifestResponse Prelude.Text getModelManifestResponse_arn = Lens.lens (\GetModelManifestResponse' {arn} -> arn) (\s@GetModelManifestResponse' {} a -> s {arn = a} :: GetModelManifestResponse) -- | The time the vehicle model was created, in seconds since epoch (January -- 1, 1970 at midnight UTC time). getModelManifestResponse_creationTime :: Lens.Lens' GetModelManifestResponse Prelude.UTCTime getModelManifestResponse_creationTime = Lens.lens (\GetModelManifestResponse' {creationTime} -> creationTime) (\s@GetModelManifestResponse' {} a -> s {creationTime = a} :: GetModelManifestResponse) Prelude.. Data._Time -- | The last time the vehicle model was modified. getModelManifestResponse_lastModificationTime :: Lens.Lens' GetModelManifestResponse Prelude.UTCTime getModelManifestResponse_lastModificationTime = Lens.lens (\GetModelManifestResponse' {lastModificationTime} -> lastModificationTime) (\s@GetModelManifestResponse' {} a -> s {lastModificationTime = a} :: GetModelManifestResponse) Prelude.. Data._Time instance Prelude.NFData GetModelManifestResponse where rnf GetModelManifestResponse' {..} = Prelude.rnf description `Prelude.seq` Prelude.rnf signalCatalogArn `Prelude.seq` Prelude.rnf status `Prelude.seq` Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf name `Prelude.seq` Prelude.rnf arn `Prelude.seq` Prelude.rnf creationTime `Prelude.seq` Prelude.rnf lastModificationTime