{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.ImageBuilder.Types.ImageVersion
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ImageBuilder.Types.ImageVersion where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ImageBuilder.Types.BuildType
import Amazonka.ImageBuilder.Types.ImageType
import Amazonka.ImageBuilder.Types.Platform
import qualified Amazonka.Prelude as Prelude

-- | The defining characteristics of a specific version of an Image Builder
-- image.
--
-- /See:/ 'newImageVersion' smart constructor.
data ImageVersion = ImageVersion'
  { -- | The Amazon Resource Name (ARN) of a specific version of an Image Builder
    -- image.
    --
    -- Semantic versioning is included in each object\'s Amazon Resource Name
    -- (ARN), at the level that applies to that object as follows:
    --
    -- 1.  Versionless ARNs and Name ARNs do not include specific values in any
    --     of the nodes. The nodes are either left off entirely, or they are
    --     specified as wildcards, for example: x.x.x.
    --
    -- 2.  Version ARNs have only the first three nodes:
    --     \<major>.\<minor>.\<patch>
    --
    -- 3.  Build version ARNs have all four nodes, and point to a specific
    --     build for a specific version of an object.
    ImageVersion -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | Indicates the type of build that created this image. The build can be
    -- initiated in the following ways:
    --
    -- -   __USER_INITIATED__ – A manual pipeline build request.
    --
    -- -   __SCHEDULED__ – A pipeline build initiated by a cron expression in
    --     the Image Builder pipeline, or from EventBridge.
    --
    -- -   __IMPORT__ – A VM import created the image to use as the base image
    --     for the recipe.
    ImageVersion -> Maybe BuildType
buildType :: Prelude.Maybe BuildType,
    -- | The date on which this specific version of the Image Builder image was
    -- created.
    ImageVersion -> Maybe Text
dateCreated :: Prelude.Maybe Prelude.Text,
    -- | The name of this specific version of an Image Builder image.
    ImageVersion -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The operating system version of the Amazon EC2 build instance. For
    -- example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019.
    ImageVersion -> Maybe Text
osVersion :: Prelude.Maybe Prelude.Text,
    -- | The owner of the image version.
    ImageVersion -> Maybe Text
owner :: Prelude.Maybe Prelude.Text,
    -- | The platform of the image version, for example \"Windows\" or \"Linux\".
    ImageVersion -> Maybe Platform
platform :: Prelude.Maybe Platform,
    -- | Specifies whether this image is an AMI or a container image.
    ImageVersion -> Maybe ImageType
type' :: Prelude.Maybe ImageType,
    -- | Details for a specific version of an Image Builder image. This version
    -- follows the semantic version syntax.
    --
    -- The semantic version has four nodes:
    -- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the
    -- first three, and can filter on all of them.
    --
    -- __Assignment:__ For the first three nodes you can assign any positive
    -- integer value, including zero, with an upper limit of 2^30-1, or
    -- 1073741823 for each node. Image Builder automatically assigns the build
    -- number to the fourth node.
    --
    -- __Patterns:__ You can use any numeric pattern that adheres to the
    -- assignment requirements for the nodes that you can assign. For example,
    -- you might choose a software version pattern, such as 1.0.0, or a date,
    -- such as 2021.01.01.
    --
    -- __Filtering:__ With semantic versioning, you have the flexibility to use
    -- wildcards (x) to specify the most recent versions or nodes when
    -- selecting the base image or components for your recipe. When you use a
    -- wildcard in any node, all nodes to the right of the first wildcard must
    -- also be wildcards.
    ImageVersion -> Maybe Text
version :: Prelude.Maybe Prelude.Text
  }
  deriving (ImageVersion -> ImageVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ImageVersion -> ImageVersion -> Bool
$c/= :: ImageVersion -> ImageVersion -> Bool
== :: ImageVersion -> ImageVersion -> Bool
$c== :: ImageVersion -> ImageVersion -> Bool
Prelude.Eq, ReadPrec [ImageVersion]
ReadPrec ImageVersion
Int -> ReadS ImageVersion
ReadS [ImageVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ImageVersion]
$creadListPrec :: ReadPrec [ImageVersion]
readPrec :: ReadPrec ImageVersion
$creadPrec :: ReadPrec ImageVersion
readList :: ReadS [ImageVersion]
$creadList :: ReadS [ImageVersion]
readsPrec :: Int -> ReadS ImageVersion
$creadsPrec :: Int -> ReadS ImageVersion
Prelude.Read, Int -> ImageVersion -> ShowS
[ImageVersion] -> ShowS
ImageVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ImageVersion] -> ShowS
$cshowList :: [ImageVersion] -> ShowS
show :: ImageVersion -> String
$cshow :: ImageVersion -> String
showsPrec :: Int -> ImageVersion -> ShowS
$cshowsPrec :: Int -> ImageVersion -> ShowS
Prelude.Show, forall x. Rep ImageVersion x -> ImageVersion
forall x. ImageVersion -> Rep ImageVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ImageVersion x -> ImageVersion
$cfrom :: forall x. ImageVersion -> Rep ImageVersion x
Prelude.Generic)

-- |
-- Create a value of 'ImageVersion' 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:
--
-- 'arn', 'imageVersion_arn' - The Amazon Resource Name (ARN) of a specific version of an Image Builder
-- image.
--
-- Semantic versioning is included in each object\'s Amazon Resource Name
-- (ARN), at the level that applies to that object as follows:
--
-- 1.  Versionless ARNs and Name ARNs do not include specific values in any
--     of the nodes. The nodes are either left off entirely, or they are
--     specified as wildcards, for example: x.x.x.
--
-- 2.  Version ARNs have only the first three nodes:
--     \<major>.\<minor>.\<patch>
--
-- 3.  Build version ARNs have all four nodes, and point to a specific
--     build for a specific version of an object.
--
-- 'buildType', 'imageVersion_buildType' - Indicates the type of build that created this image. The build can be
-- initiated in the following ways:
--
-- -   __USER_INITIATED__ – A manual pipeline build request.
--
-- -   __SCHEDULED__ – A pipeline build initiated by a cron expression in
--     the Image Builder pipeline, or from EventBridge.
--
-- -   __IMPORT__ – A VM import created the image to use as the base image
--     for the recipe.
--
-- 'dateCreated', 'imageVersion_dateCreated' - The date on which this specific version of the Image Builder image was
-- created.
--
-- 'name', 'imageVersion_name' - The name of this specific version of an Image Builder image.
--
-- 'osVersion', 'imageVersion_osVersion' - The operating system version of the Amazon EC2 build instance. For
-- example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019.
--
-- 'owner', 'imageVersion_owner' - The owner of the image version.
--
-- 'platform', 'imageVersion_platform' - The platform of the image version, for example \"Windows\" or \"Linux\".
--
-- 'type'', 'imageVersion_type' - Specifies whether this image is an AMI or a container image.
--
-- 'version', 'imageVersion_version' - Details for a specific version of an Image Builder image. This version
-- follows the semantic version syntax.
--
-- The semantic version has four nodes:
-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the
-- first three, and can filter on all of them.
--
-- __Assignment:__ For the first three nodes you can assign any positive
-- integer value, including zero, with an upper limit of 2^30-1, or
-- 1073741823 for each node. Image Builder automatically assigns the build
-- number to the fourth node.
--
-- __Patterns:__ You can use any numeric pattern that adheres to the
-- assignment requirements for the nodes that you can assign. For example,
-- you might choose a software version pattern, such as 1.0.0, or a date,
-- such as 2021.01.01.
--
-- __Filtering:__ With semantic versioning, you have the flexibility to use
-- wildcards (x) to specify the most recent versions or nodes when
-- selecting the base image or components for your recipe. When you use a
-- wildcard in any node, all nodes to the right of the first wildcard must
-- also be wildcards.
newImageVersion ::
  ImageVersion
newImageVersion :: ImageVersion
newImageVersion =
  ImageVersion'
    { $sel:arn:ImageVersion' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:buildType:ImageVersion' :: Maybe BuildType
buildType = forall a. Maybe a
Prelude.Nothing,
      $sel:dateCreated:ImageVersion' :: Maybe Text
dateCreated = forall a. Maybe a
Prelude.Nothing,
      $sel:name:ImageVersion' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:osVersion:ImageVersion' :: Maybe Text
osVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:owner:ImageVersion' :: Maybe Text
owner = forall a. Maybe a
Prelude.Nothing,
      $sel:platform:ImageVersion' :: Maybe Platform
platform = forall a. Maybe a
Prelude.Nothing,
      $sel:type':ImageVersion' :: Maybe ImageType
type' = forall a. Maybe a
Prelude.Nothing,
      $sel:version:ImageVersion' :: Maybe Text
version = forall a. Maybe a
Prelude.Nothing
    }

-- | The Amazon Resource Name (ARN) of a specific version of an Image Builder
-- image.
--
-- Semantic versioning is included in each object\'s Amazon Resource Name
-- (ARN), at the level that applies to that object as follows:
--
-- 1.  Versionless ARNs and Name ARNs do not include specific values in any
--     of the nodes. The nodes are either left off entirely, or they are
--     specified as wildcards, for example: x.x.x.
--
-- 2.  Version ARNs have only the first three nodes:
--     \<major>.\<minor>.\<patch>
--
-- 3.  Build version ARNs have all four nodes, and point to a specific
--     build for a specific version of an object.
imageVersion_arn :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_arn :: Lens' ImageVersion (Maybe Text)
imageVersion_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
arn :: Maybe Text
$sel:arn:ImageVersion' :: ImageVersion -> Maybe Text
arn} -> Maybe Text
arn) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:arn:ImageVersion' :: Maybe Text
arn = Maybe Text
a} :: ImageVersion)

-- | Indicates the type of build that created this image. The build can be
-- initiated in the following ways:
--
-- -   __USER_INITIATED__ – A manual pipeline build request.
--
-- -   __SCHEDULED__ – A pipeline build initiated by a cron expression in
--     the Image Builder pipeline, or from EventBridge.
--
-- -   __IMPORT__ – A VM import created the image to use as the base image
--     for the recipe.
imageVersion_buildType :: Lens.Lens' ImageVersion (Prelude.Maybe BuildType)
imageVersion_buildType :: Lens' ImageVersion (Maybe BuildType)
imageVersion_buildType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe BuildType
buildType :: Maybe BuildType
$sel:buildType:ImageVersion' :: ImageVersion -> Maybe BuildType
buildType} -> Maybe BuildType
buildType) (\s :: ImageVersion
s@ImageVersion' {} Maybe BuildType
a -> ImageVersion
s {$sel:buildType:ImageVersion' :: Maybe BuildType
buildType = Maybe BuildType
a} :: ImageVersion)

-- | The date on which this specific version of the Image Builder image was
-- created.
imageVersion_dateCreated :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_dateCreated :: Lens' ImageVersion (Maybe Text)
imageVersion_dateCreated = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
dateCreated :: Maybe Text
$sel:dateCreated:ImageVersion' :: ImageVersion -> Maybe Text
dateCreated} -> Maybe Text
dateCreated) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:dateCreated:ImageVersion' :: Maybe Text
dateCreated = Maybe Text
a} :: ImageVersion)

-- | The name of this specific version of an Image Builder image.
imageVersion_name :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_name :: Lens' ImageVersion (Maybe Text)
imageVersion_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
name :: Maybe Text
$sel:name:ImageVersion' :: ImageVersion -> Maybe Text
name} -> Maybe Text
name) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:name:ImageVersion' :: Maybe Text
name = Maybe Text
a} :: ImageVersion)

-- | The operating system version of the Amazon EC2 build instance. For
-- example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019.
imageVersion_osVersion :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_osVersion :: Lens' ImageVersion (Maybe Text)
imageVersion_osVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
osVersion :: Maybe Text
$sel:osVersion:ImageVersion' :: ImageVersion -> Maybe Text
osVersion} -> Maybe Text
osVersion) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:osVersion:ImageVersion' :: Maybe Text
osVersion = Maybe Text
a} :: ImageVersion)

-- | The owner of the image version.
imageVersion_owner :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_owner :: Lens' ImageVersion (Maybe Text)
imageVersion_owner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
owner :: Maybe Text
$sel:owner:ImageVersion' :: ImageVersion -> Maybe Text
owner} -> Maybe Text
owner) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:owner:ImageVersion' :: Maybe Text
owner = Maybe Text
a} :: ImageVersion)

-- | The platform of the image version, for example \"Windows\" or \"Linux\".
imageVersion_platform :: Lens.Lens' ImageVersion (Prelude.Maybe Platform)
imageVersion_platform :: Lens' ImageVersion (Maybe Platform)
imageVersion_platform = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Platform
platform :: Maybe Platform
$sel:platform:ImageVersion' :: ImageVersion -> Maybe Platform
platform} -> Maybe Platform
platform) (\s :: ImageVersion
s@ImageVersion' {} Maybe Platform
a -> ImageVersion
s {$sel:platform:ImageVersion' :: Maybe Platform
platform = Maybe Platform
a} :: ImageVersion)

-- | Specifies whether this image is an AMI or a container image.
imageVersion_type :: Lens.Lens' ImageVersion (Prelude.Maybe ImageType)
imageVersion_type :: Lens' ImageVersion (Maybe ImageType)
imageVersion_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe ImageType
type' :: Maybe ImageType
$sel:type':ImageVersion' :: ImageVersion -> Maybe ImageType
type'} -> Maybe ImageType
type') (\s :: ImageVersion
s@ImageVersion' {} Maybe ImageType
a -> ImageVersion
s {$sel:type':ImageVersion' :: Maybe ImageType
type' = Maybe ImageType
a} :: ImageVersion)

-- | Details for a specific version of an Image Builder image. This version
-- follows the semantic version syntax.
--
-- The semantic version has four nodes:
-- \<major>.\<minor>.\<patch>\/\<build>. You can assign values for the
-- first three, and can filter on all of them.
--
-- __Assignment:__ For the first three nodes you can assign any positive
-- integer value, including zero, with an upper limit of 2^30-1, or
-- 1073741823 for each node. Image Builder automatically assigns the build
-- number to the fourth node.
--
-- __Patterns:__ You can use any numeric pattern that adheres to the
-- assignment requirements for the nodes that you can assign. For example,
-- you might choose a software version pattern, such as 1.0.0, or a date,
-- such as 2021.01.01.
--
-- __Filtering:__ With semantic versioning, you have the flexibility to use
-- wildcards (x) to specify the most recent versions or nodes when
-- selecting the base image or components for your recipe. When you use a
-- wildcard in any node, all nodes to the right of the first wildcard must
-- also be wildcards.
imageVersion_version :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_version :: Lens' ImageVersion (Maybe Text)
imageVersion_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
version :: Maybe Text
$sel:version:ImageVersion' :: ImageVersion -> Maybe Text
version} -> Maybe Text
version) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:version:ImageVersion' :: Maybe Text
version = Maybe Text
a} :: ImageVersion)

instance Data.FromJSON ImageVersion where
  parseJSON :: Value -> Parser ImageVersion
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ImageVersion"
      ( \Object
x ->
          Maybe Text
-> Maybe BuildType
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Platform
-> Maybe ImageType
-> Maybe Text
-> ImageVersion
ImageVersion'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"buildType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"dateCreated")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"osVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"owner")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"platform")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"type")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"version")
      )

instance Prelude.Hashable ImageVersion where
  hashWithSalt :: Int -> ImageVersion -> Int
hashWithSalt Int
_salt ImageVersion' {Maybe Text
Maybe BuildType
Maybe ImageType
Maybe Platform
version :: Maybe Text
type' :: Maybe ImageType
platform :: Maybe Platform
owner :: Maybe Text
osVersion :: Maybe Text
name :: Maybe Text
dateCreated :: Maybe Text
buildType :: Maybe BuildType
arn :: Maybe Text
$sel:version:ImageVersion' :: ImageVersion -> Maybe Text
$sel:type':ImageVersion' :: ImageVersion -> Maybe ImageType
$sel:platform:ImageVersion' :: ImageVersion -> Maybe Platform
$sel:owner:ImageVersion' :: ImageVersion -> Maybe Text
$sel:osVersion:ImageVersion' :: ImageVersion -> Maybe Text
$sel:name:ImageVersion' :: ImageVersion -> Maybe Text
$sel:dateCreated:ImageVersion' :: ImageVersion -> Maybe Text
$sel:buildType:ImageVersion' :: ImageVersion -> Maybe BuildType
$sel:arn:ImageVersion' :: ImageVersion -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BuildType
buildType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dateCreated
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
osVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
owner
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Platform
platform
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImageType
type'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
version

instance Prelude.NFData ImageVersion where
  rnf :: ImageVersion -> ()
rnf ImageVersion' {Maybe Text
Maybe BuildType
Maybe ImageType
Maybe Platform
version :: Maybe Text
type' :: Maybe ImageType
platform :: Maybe Platform
owner :: Maybe Text
osVersion :: Maybe Text
name :: Maybe Text
dateCreated :: Maybe Text
buildType :: Maybe BuildType
arn :: Maybe Text
$sel:version:ImageVersion' :: ImageVersion -> Maybe Text
$sel:type':ImageVersion' :: ImageVersion -> Maybe ImageType
$sel:platform:ImageVersion' :: ImageVersion -> Maybe Platform
$sel:owner:ImageVersion' :: ImageVersion -> Maybe Text
$sel:osVersion:ImageVersion' :: ImageVersion -> Maybe Text
$sel:name:ImageVersion' :: ImageVersion -> Maybe Text
$sel:dateCreated:ImageVersion' :: ImageVersion -> Maybe Text
$sel:buildType:ImageVersion' :: ImageVersion -> Maybe BuildType
$sel:arn:ImageVersion' :: ImageVersion -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BuildType
buildType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dateCreated
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
osVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
owner
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Platform
platform
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImageType
type'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
version