amazonka-appstream-2.0: gen/Amazonka/AppStream/CreateImageBuilderStreamingURL.hs
{-# 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.AppStream.CreateImageBuilderStreamingURL
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a URL to start an image builder streaming session.
module Amazonka.AppStream.CreateImageBuilderStreamingURL
( -- * Creating a Request
CreateImageBuilderStreamingURL (..),
newCreateImageBuilderStreamingURL,
-- * Request Lenses
createImageBuilderStreamingURL_validity,
createImageBuilderStreamingURL_name,
-- * Destructuring the Response
CreateImageBuilderStreamingURLResponse (..),
newCreateImageBuilderStreamingURLResponse,
-- * Response Lenses
createImageBuilderStreamingURLResponse_expires,
createImageBuilderStreamingURLResponse_streamingURL,
createImageBuilderStreamingURLResponse_httpStatus,
)
where
import Amazonka.AppStream.Types
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
-- | /See:/ 'newCreateImageBuilderStreamingURL' smart constructor.
data CreateImageBuilderStreamingURL = CreateImageBuilderStreamingURL'
{ -- | The time that the streaming URL will be valid, in seconds. Specify a
-- value between 1 and 604800 seconds. The default is 3600 seconds.
validity :: Prelude.Maybe Prelude.Integer,
-- | The name of the image builder.
name :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateImageBuilderStreamingURL' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'validity', 'createImageBuilderStreamingURL_validity' - The time that the streaming URL will be valid, in seconds. Specify a
-- value between 1 and 604800 seconds. The default is 3600 seconds.
--
-- 'name', 'createImageBuilderStreamingURL_name' - The name of the image builder.
newCreateImageBuilderStreamingURL ::
-- | 'name'
Prelude.Text ->
CreateImageBuilderStreamingURL
newCreateImageBuilderStreamingURL pName_ =
CreateImageBuilderStreamingURL'
{ validity =
Prelude.Nothing,
name = pName_
}
-- | The time that the streaming URL will be valid, in seconds. Specify a
-- value between 1 and 604800 seconds. The default is 3600 seconds.
createImageBuilderStreamingURL_validity :: Lens.Lens' CreateImageBuilderStreamingURL (Prelude.Maybe Prelude.Integer)
createImageBuilderStreamingURL_validity = Lens.lens (\CreateImageBuilderStreamingURL' {validity} -> validity) (\s@CreateImageBuilderStreamingURL' {} a -> s {validity = a} :: CreateImageBuilderStreamingURL)
-- | The name of the image builder.
createImageBuilderStreamingURL_name :: Lens.Lens' CreateImageBuilderStreamingURL Prelude.Text
createImageBuilderStreamingURL_name = Lens.lens (\CreateImageBuilderStreamingURL' {name} -> name) (\s@CreateImageBuilderStreamingURL' {} a -> s {name = a} :: CreateImageBuilderStreamingURL)
instance
Core.AWSRequest
CreateImageBuilderStreamingURL
where
type
AWSResponse CreateImageBuilderStreamingURL =
CreateImageBuilderStreamingURLResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
CreateImageBuilderStreamingURLResponse'
Prelude.<$> (x Data..?> "Expires")
Prelude.<*> (x Data..?> "StreamingURL")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance
Prelude.Hashable
CreateImageBuilderStreamingURL
where
hashWithSalt
_salt
CreateImageBuilderStreamingURL' {..} =
_salt
`Prelude.hashWithSalt` validity
`Prelude.hashWithSalt` name
instance
Prelude.NFData
CreateImageBuilderStreamingURL
where
rnf CreateImageBuilderStreamingURL' {..} =
Prelude.rnf validity `Prelude.seq` Prelude.rnf name
instance
Data.ToHeaders
CreateImageBuilderStreamingURL
where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "PhotonAdminProxyService.CreateImageBuilderStreamingURL" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateImageBuilderStreamingURL where
toJSON CreateImageBuilderStreamingURL' {..} =
Data.object
( Prelude.catMaybes
[ ("Validity" Data..=) Prelude.<$> validity,
Prelude.Just ("Name" Data..= name)
]
)
instance Data.ToPath CreateImageBuilderStreamingURL where
toPath = Prelude.const "/"
instance Data.ToQuery CreateImageBuilderStreamingURL where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newCreateImageBuilderStreamingURLResponse' smart constructor.
data CreateImageBuilderStreamingURLResponse = CreateImageBuilderStreamingURLResponse'
{ -- | The elapsed time, in seconds after the Unix epoch, when this URL
-- expires.
expires :: Prelude.Maybe Data.POSIX,
-- | The URL to start the AppStream 2.0 streaming session.
streamingURL :: 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 'CreateImageBuilderStreamingURLResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'expires', 'createImageBuilderStreamingURLResponse_expires' - The elapsed time, in seconds after the Unix epoch, when this URL
-- expires.
--
-- 'streamingURL', 'createImageBuilderStreamingURLResponse_streamingURL' - The URL to start the AppStream 2.0 streaming session.
--
-- 'httpStatus', 'createImageBuilderStreamingURLResponse_httpStatus' - The response's http status code.
newCreateImageBuilderStreamingURLResponse ::
-- | 'httpStatus'
Prelude.Int ->
CreateImageBuilderStreamingURLResponse
newCreateImageBuilderStreamingURLResponse
pHttpStatus_ =
CreateImageBuilderStreamingURLResponse'
{ expires =
Prelude.Nothing,
streamingURL = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | The elapsed time, in seconds after the Unix epoch, when this URL
-- expires.
createImageBuilderStreamingURLResponse_expires :: Lens.Lens' CreateImageBuilderStreamingURLResponse (Prelude.Maybe Prelude.UTCTime)
createImageBuilderStreamingURLResponse_expires = Lens.lens (\CreateImageBuilderStreamingURLResponse' {expires} -> expires) (\s@CreateImageBuilderStreamingURLResponse' {} a -> s {expires = a} :: CreateImageBuilderStreamingURLResponse) Prelude.. Lens.mapping Data._Time
-- | The URL to start the AppStream 2.0 streaming session.
createImageBuilderStreamingURLResponse_streamingURL :: Lens.Lens' CreateImageBuilderStreamingURLResponse (Prelude.Maybe Prelude.Text)
createImageBuilderStreamingURLResponse_streamingURL = Lens.lens (\CreateImageBuilderStreamingURLResponse' {streamingURL} -> streamingURL) (\s@CreateImageBuilderStreamingURLResponse' {} a -> s {streamingURL = a} :: CreateImageBuilderStreamingURLResponse)
-- | The response's http status code.
createImageBuilderStreamingURLResponse_httpStatus :: Lens.Lens' CreateImageBuilderStreamingURLResponse Prelude.Int
createImageBuilderStreamingURLResponse_httpStatus = Lens.lens (\CreateImageBuilderStreamingURLResponse' {httpStatus} -> httpStatus) (\s@CreateImageBuilderStreamingURLResponse' {} a -> s {httpStatus = a} :: CreateImageBuilderStreamingURLResponse)
instance
Prelude.NFData
CreateImageBuilderStreamingURLResponse
where
rnf CreateImageBuilderStreamingURLResponse' {..} =
Prelude.rnf expires
`Prelude.seq` Prelude.rnf streamingURL
`Prelude.seq` Prelude.rnf httpStatus