{-# 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.Location.GetMapSprites -- 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 the sprite sheet corresponding to a map resource. The sprite -- sheet is a PNG image paired with a JSON document describing the offsets -- of individual icons that will be displayed on a rendered map. module Amazonka.Location.GetMapSprites ( -- * Creating a Request GetMapSprites (..), newGetMapSprites, -- * Request Lenses getMapSprites_fileName, getMapSprites_mapName, -- * Destructuring the Response GetMapSpritesResponse (..), newGetMapSpritesResponse, -- * Response Lenses getMapSpritesResponse_blob, getMapSpritesResponse_contentType, getMapSpritesResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.Location.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newGetMapSprites' smart constructor. data GetMapSprites = GetMapSprites' { -- | The name of the sprite file. Use the following file names for the sprite -- sheet: -- -- - @sprites.png@ -- -- - @sprites\@2x.png@ for high pixel density displays -- -- For the JSON document containing image offsets. Use the following file -- names: -- -- - @sprites.json@ -- -- - @sprites\@2x.json@ for high pixel density displays fileName :: Prelude.Text, -- | The map resource associated with the sprite file. mapName :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetMapSprites' 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: -- -- 'fileName', 'getMapSprites_fileName' - The name of the sprite file. Use the following file names for the sprite -- sheet: -- -- - @sprites.png@ -- -- - @sprites\@2x.png@ for high pixel density displays -- -- For the JSON document containing image offsets. Use the following file -- names: -- -- - @sprites.json@ -- -- - @sprites\@2x.json@ for high pixel density displays -- -- 'mapName', 'getMapSprites_mapName' - The map resource associated with the sprite file. newGetMapSprites :: -- | 'fileName' Prelude.Text -> -- | 'mapName' Prelude.Text -> GetMapSprites newGetMapSprites pFileName_ pMapName_ = GetMapSprites' { fileName = pFileName_, mapName = pMapName_ } -- | The name of the sprite file. Use the following file names for the sprite -- sheet: -- -- - @sprites.png@ -- -- - @sprites\@2x.png@ for high pixel density displays -- -- For the JSON document containing image offsets. Use the following file -- names: -- -- - @sprites.json@ -- -- - @sprites\@2x.json@ for high pixel density displays getMapSprites_fileName :: Lens.Lens' GetMapSprites Prelude.Text getMapSprites_fileName = Lens.lens (\GetMapSprites' {fileName} -> fileName) (\s@GetMapSprites' {} a -> s {fileName = a} :: GetMapSprites) -- | The map resource associated with the sprite file. getMapSprites_mapName :: Lens.Lens' GetMapSprites Prelude.Text getMapSprites_mapName = Lens.lens (\GetMapSprites' {mapName} -> mapName) (\s@GetMapSprites' {} a -> s {mapName = a} :: GetMapSprites) instance Core.AWSRequest GetMapSprites where type AWSResponse GetMapSprites = GetMapSpritesResponse request overrides = Request.get (overrides defaultService) response = Response.receiveBytes ( \s h x -> GetMapSpritesResponse' Prelude.<$> (Prelude.pure (Prelude.Just (Prelude.coerce x))) Prelude.<*> (h Data..#? "Content-Type") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable GetMapSprites where hashWithSalt _salt GetMapSprites' {..} = _salt `Prelude.hashWithSalt` fileName `Prelude.hashWithSalt` mapName instance Prelude.NFData GetMapSprites where rnf GetMapSprites' {..} = Prelude.rnf fileName `Prelude.seq` Prelude.rnf mapName instance Data.ToHeaders GetMapSprites where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToPath GetMapSprites where toPath GetMapSprites' {..} = Prelude.mconcat [ "/maps/v0/maps/", Data.toBS mapName, "/sprites/", Data.toBS fileName ] instance Data.ToQuery GetMapSprites where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newGetMapSpritesResponse' smart constructor. data GetMapSpritesResponse = GetMapSpritesResponse' { -- | Contains the body of the sprite sheet or JSON offset file. blob :: Prelude.Maybe Prelude.ByteString, -- | The content type of the sprite sheet and offsets. For example, the -- sprite sheet content type is @image\/png@, and the sprite offset JSON -- document is @application\/json@. contentType :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetMapSpritesResponse' 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: -- -- 'blob', 'getMapSpritesResponse_blob' - Contains the body of the sprite sheet or JSON offset file. -- -- 'contentType', 'getMapSpritesResponse_contentType' - The content type of the sprite sheet and offsets. For example, the -- sprite sheet content type is @image\/png@, and the sprite offset JSON -- document is @application\/json@. -- -- 'httpStatus', 'getMapSpritesResponse_httpStatus' - The response's http status code. newGetMapSpritesResponse :: -- | 'httpStatus' Prelude.Int -> GetMapSpritesResponse newGetMapSpritesResponse pHttpStatus_ = GetMapSpritesResponse' { blob = Prelude.Nothing, contentType = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Contains the body of the sprite sheet or JSON offset file. getMapSpritesResponse_blob :: Lens.Lens' GetMapSpritesResponse (Prelude.Maybe Prelude.ByteString) getMapSpritesResponse_blob = Lens.lens (\GetMapSpritesResponse' {blob} -> blob) (\s@GetMapSpritesResponse' {} a -> s {blob = a} :: GetMapSpritesResponse) -- | The content type of the sprite sheet and offsets. For example, the -- sprite sheet content type is @image\/png@, and the sprite offset JSON -- document is @application\/json@. getMapSpritesResponse_contentType :: Lens.Lens' GetMapSpritesResponse (Prelude.Maybe Prelude.Text) getMapSpritesResponse_contentType = Lens.lens (\GetMapSpritesResponse' {contentType} -> contentType) (\s@GetMapSpritesResponse' {} a -> s {contentType = a} :: GetMapSpritesResponse) -- | The response's http status code. getMapSpritesResponse_httpStatus :: Lens.Lens' GetMapSpritesResponse Prelude.Int getMapSpritesResponse_httpStatus = Lens.lens (\GetMapSpritesResponse' {httpStatus} -> httpStatus) (\s@GetMapSpritesResponse' {} a -> s {httpStatus = a} :: GetMapSpritesResponse) instance Prelude.NFData GetMapSpritesResponse where rnf GetMapSpritesResponse' {..} = Prelude.rnf blob `Prelude.seq` Prelude.rnf contentType `Prelude.seq` Prelude.rnf httpStatus