{-# 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.GameLift.Types.Build -- 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.GameLift.Types.Build where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.GameLift.Types.BuildStatus import Amazonka.GameLift.Types.OperatingSystem import qualified Amazonka.Prelude as Prelude -- | Properties describing a custom game build. -- -- -- -- /See:/ 'newBuild' smart constructor. data Build = Build' { -- | The Amazon Resource Name -- () -- assigned to a GameLift build resource and uniquely identifies it. ARNs -- are unique across all Regions. Format is -- @arn:aws:gamelift:\::build\/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912@. -- In a GameLift build ARN, the resource ID matches the /BuildId/ value. buildArn :: Prelude.Maybe Prelude.Text, -- | A unique identifier for the build. buildId :: Prelude.Maybe Prelude.Text, -- | A time stamp indicating when this data object was created. Format is a -- number expressed in Unix time as milliseconds (for example -- @\"1469498468.057\"@). creationTime :: Prelude.Maybe Data.POSIX, -- | A descriptive label associated with a build. Build names do not need to -- be unique. It can be set using -- -- or -- . name :: Prelude.Maybe Prelude.Text, -- | Operating system that the game server binaries are built to run on. This -- value determines the type of fleet resources that you can use for this -- build. operatingSystem :: Prelude.Maybe OperatingSystem, -- | The GameLift Server SDK version used to develop your game server. serverSdkVersion :: Prelude.Maybe Prelude.Text, -- | File size of the uploaded game build, expressed in bytes. When the build -- status is @INITIALIZED@ or when using a custom Amazon S3 storage -- location, this value is 0. sizeOnDisk :: Prelude.Maybe Prelude.Natural, -- | Current status of the build. -- -- Possible build statuses include the following: -- -- - __INITIALIZED__ -- A new build has been defined, but no files have -- been uploaded. You cannot create fleets for builds that are in this -- status. When a build is successfully created, the build status is -- set to this value. -- -- - __READY__ -- The game build has been successfully uploaded. You can -- now create new fleets for this build. -- -- - __FAILED__ -- The game build upload failed. You cannot create new -- fleets for this build. status :: Prelude.Maybe BuildStatus, -- | Version information associated with a build or script. Version strings -- do not need to be unique. version :: Prelude.Maybe Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'Build' 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: -- -- 'buildArn', 'build_buildArn' - The Amazon Resource Name -- () -- assigned to a GameLift build resource and uniquely identifies it. ARNs -- are unique across all Regions. Format is -- @arn:aws:gamelift:\::build\/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912@. -- In a GameLift build ARN, the resource ID matches the /BuildId/ value. -- -- 'buildId', 'build_buildId' - A unique identifier for the build. -- -- 'creationTime', 'build_creationTime' - A time stamp indicating when this data object was created. Format is a -- number expressed in Unix time as milliseconds (for example -- @\"1469498468.057\"@). -- -- 'name', 'build_name' - A descriptive label associated with a build. Build names do not need to -- be unique. It can be set using -- -- or -- . -- -- 'operatingSystem', 'build_operatingSystem' - Operating system that the game server binaries are built to run on. This -- value determines the type of fleet resources that you can use for this -- build. -- -- 'serverSdkVersion', 'build_serverSdkVersion' - The GameLift Server SDK version used to develop your game server. -- -- 'sizeOnDisk', 'build_sizeOnDisk' - File size of the uploaded game build, expressed in bytes. When the build -- status is @INITIALIZED@ or when using a custom Amazon S3 storage -- location, this value is 0. -- -- 'status', 'build_status' - Current status of the build. -- -- Possible build statuses include the following: -- -- - __INITIALIZED__ -- A new build has been defined, but no files have -- been uploaded. You cannot create fleets for builds that are in this -- status. When a build is successfully created, the build status is -- set to this value. -- -- - __READY__ -- The game build has been successfully uploaded. You can -- now create new fleets for this build. -- -- - __FAILED__ -- The game build upload failed. You cannot create new -- fleets for this build. -- -- 'version', 'build_version' - Version information associated with a build or script. Version strings -- do not need to be unique. newBuild :: Build newBuild = Build' { buildArn = Prelude.Nothing, buildId = Prelude.Nothing, creationTime = Prelude.Nothing, name = Prelude.Nothing, operatingSystem = Prelude.Nothing, serverSdkVersion = Prelude.Nothing, sizeOnDisk = Prelude.Nothing, status = Prelude.Nothing, version = Prelude.Nothing } -- | The Amazon Resource Name -- () -- assigned to a GameLift build resource and uniquely identifies it. ARNs -- are unique across all Regions. Format is -- @arn:aws:gamelift:\::build\/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912@. -- In a GameLift build ARN, the resource ID matches the /BuildId/ value. build_buildArn :: Lens.Lens' Build (Prelude.Maybe Prelude.Text) build_buildArn = Lens.lens (\Build' {buildArn} -> buildArn) (\s@Build' {} a -> s {buildArn = a} :: Build) -- | A unique identifier for the build. build_buildId :: Lens.Lens' Build (Prelude.Maybe Prelude.Text) build_buildId = Lens.lens (\Build' {buildId} -> buildId) (\s@Build' {} a -> s {buildId = a} :: Build) -- | A time stamp indicating when this data object was created. Format is a -- number expressed in Unix time as milliseconds (for example -- @\"1469498468.057\"@). build_creationTime :: Lens.Lens' Build (Prelude.Maybe Prelude.UTCTime) build_creationTime = Lens.lens (\Build' {creationTime} -> creationTime) (\s@Build' {} a -> s {creationTime = a} :: Build) Prelude.. Lens.mapping Data._Time -- | A descriptive label associated with a build. Build names do not need to -- be unique. It can be set using -- -- or -- . build_name :: Lens.Lens' Build (Prelude.Maybe Prelude.Text) build_name = Lens.lens (\Build' {name} -> name) (\s@Build' {} a -> s {name = a} :: Build) -- | Operating system that the game server binaries are built to run on. This -- value determines the type of fleet resources that you can use for this -- build. build_operatingSystem :: Lens.Lens' Build (Prelude.Maybe OperatingSystem) build_operatingSystem = Lens.lens (\Build' {operatingSystem} -> operatingSystem) (\s@Build' {} a -> s {operatingSystem = a} :: Build) -- | The GameLift Server SDK version used to develop your game server. build_serverSdkVersion :: Lens.Lens' Build (Prelude.Maybe Prelude.Text) build_serverSdkVersion = Lens.lens (\Build' {serverSdkVersion} -> serverSdkVersion) (\s@Build' {} a -> s {serverSdkVersion = a} :: Build) -- | File size of the uploaded game build, expressed in bytes. When the build -- status is @INITIALIZED@ or when using a custom Amazon S3 storage -- location, this value is 0. build_sizeOnDisk :: Lens.Lens' Build (Prelude.Maybe Prelude.Natural) build_sizeOnDisk = Lens.lens (\Build' {sizeOnDisk} -> sizeOnDisk) (\s@Build' {} a -> s {sizeOnDisk = a} :: Build) -- | Current status of the build. -- -- Possible build statuses include the following: -- -- - __INITIALIZED__ -- A new build has been defined, but no files have -- been uploaded. You cannot create fleets for builds that are in this -- status. When a build is successfully created, the build status is -- set to this value. -- -- - __READY__ -- The game build has been successfully uploaded. You can -- now create new fleets for this build. -- -- - __FAILED__ -- The game build upload failed. You cannot create new -- fleets for this build. build_status :: Lens.Lens' Build (Prelude.Maybe BuildStatus) build_status = Lens.lens (\Build' {status} -> status) (\s@Build' {} a -> s {status = a} :: Build) -- | Version information associated with a build or script. Version strings -- do not need to be unique. build_version :: Lens.Lens' Build (Prelude.Maybe Prelude.Text) build_version = Lens.lens (\Build' {version} -> version) (\s@Build' {} a -> s {version = a} :: Build) instance Data.FromJSON Build where parseJSON = Data.withObject "Build" ( \x -> Build' Prelude.<$> (x Data..:? "BuildArn") Prelude.<*> (x Data..:? "BuildId") Prelude.<*> (x Data..:? "CreationTime") Prelude.<*> (x Data..:? "Name") Prelude.<*> (x Data..:? "OperatingSystem") Prelude.<*> (x Data..:? "ServerSdkVersion") Prelude.<*> (x Data..:? "SizeOnDisk") Prelude.<*> (x Data..:? "Status") Prelude.<*> (x Data..:? "Version") ) instance Prelude.Hashable Build where hashWithSalt _salt Build' {..} = _salt `Prelude.hashWithSalt` buildArn `Prelude.hashWithSalt` buildId `Prelude.hashWithSalt` creationTime `Prelude.hashWithSalt` name `Prelude.hashWithSalt` operatingSystem `Prelude.hashWithSalt` serverSdkVersion `Prelude.hashWithSalt` sizeOnDisk `Prelude.hashWithSalt` status `Prelude.hashWithSalt` version instance Prelude.NFData Build where rnf Build' {..} = Prelude.rnf buildArn `Prelude.seq` Prelude.rnf buildId `Prelude.seq` Prelude.rnf creationTime `Prelude.seq` Prelude.rnf name `Prelude.seq` Prelude.rnf operatingSystem `Prelude.seq` Prelude.rnf serverSdkVersion `Prelude.seq` Prelude.rnf sizeOnDisk `Prelude.seq` Prelude.rnf status `Prelude.seq` Prelude.rnf version