amazonka-codeartifact-2.0: gen/Amazonka/CodeArtifact/Types/PackageVersionDescription.hs
{-# 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.CodeArtifact.Types.PackageVersionDescription
-- 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.CodeArtifact.Types.PackageVersionDescription where
import Amazonka.CodeArtifact.Types.LicenseInfo
import Amazonka.CodeArtifact.Types.PackageFormat
import Amazonka.CodeArtifact.Types.PackageVersionOrigin
import Amazonka.CodeArtifact.Types.PackageVersionStatus
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
-- | Details about a package version.
--
-- /See:/ 'newPackageVersionDescription' smart constructor.
data PackageVersionDescription = PackageVersionDescription'
{ -- | The name of the package that is displayed. The @displayName@ varies
-- depending on the package version\'s format. For example, if an npm
-- package is named @ui@, is in the namespace @vue@, and has the format
-- @npm@, then the @displayName@ is @\@vue\/ui@.
displayName :: Prelude.Maybe Prelude.Text,
-- | The format of the package version.
format :: Prelude.Maybe PackageFormat,
-- | The homepage associated with the package.
homePage :: Prelude.Maybe Prelude.Text,
-- | Information about licenses associated with the package version.
licenses :: Prelude.Maybe [LicenseInfo],
-- | The namespace of the package version. The package version component that
-- specifies its namespace depends on its type. For example:
--
-- - The namespace of a Maven package version is its @groupId@.
--
-- - The namespace of an npm package version is its @scope@.
--
-- - Python and NuGet package versions do not contain a corresponding
-- component, package versions of those formats do not have a
-- namespace.
namespace :: Prelude.Maybe Prelude.Text,
-- | A
-- <https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionOrigin.html PackageVersionOrigin>
-- object that contains information about how the package version was added
-- to the repository.
origin :: Prelude.Maybe PackageVersionOrigin,
-- | The name of the requested package.
packageName :: Prelude.Maybe Prelude.Text,
-- | A timestamp that contains the date and time the package version was
-- published.
publishedTime :: Prelude.Maybe Data.POSIX,
-- | The revision of the package version.
revision :: Prelude.Maybe Prelude.Text,
-- | The repository for the source code in the package version, or the source
-- code used to build it.
sourceCodeRepository :: Prelude.Maybe Prelude.Text,
-- | A string that contains the status of the package version.
status :: Prelude.Maybe PackageVersionStatus,
-- | A summary of the package version. The summary is extracted from the
-- package. The information in and detail level of the summary depends on
-- the package version\'s format.
summary :: Prelude.Maybe Prelude.Text,
-- | The version of the package.
version :: Prelude.Maybe Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'PackageVersionDescription' 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:
--
-- 'displayName', 'packageVersionDescription_displayName' - The name of the package that is displayed. The @displayName@ varies
-- depending on the package version\'s format. For example, if an npm
-- package is named @ui@, is in the namespace @vue@, and has the format
-- @npm@, then the @displayName@ is @\@vue\/ui@.
--
-- 'format', 'packageVersionDescription_format' - The format of the package version.
--
-- 'homePage', 'packageVersionDescription_homePage' - The homepage associated with the package.
--
-- 'licenses', 'packageVersionDescription_licenses' - Information about licenses associated with the package version.
--
-- 'namespace', 'packageVersionDescription_namespace' - The namespace of the package version. The package version component that
-- specifies its namespace depends on its type. For example:
--
-- - The namespace of a Maven package version is its @groupId@.
--
-- - The namespace of an npm package version is its @scope@.
--
-- - Python and NuGet package versions do not contain a corresponding
-- component, package versions of those formats do not have a
-- namespace.
--
-- 'origin', 'packageVersionDescription_origin' - A
-- <https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionOrigin.html PackageVersionOrigin>
-- object that contains information about how the package version was added
-- to the repository.
--
-- 'packageName', 'packageVersionDescription_packageName' - The name of the requested package.
--
-- 'publishedTime', 'packageVersionDescription_publishedTime' - A timestamp that contains the date and time the package version was
-- published.
--
-- 'revision', 'packageVersionDescription_revision' - The revision of the package version.
--
-- 'sourceCodeRepository', 'packageVersionDescription_sourceCodeRepository' - The repository for the source code in the package version, or the source
-- code used to build it.
--
-- 'status', 'packageVersionDescription_status' - A string that contains the status of the package version.
--
-- 'summary', 'packageVersionDescription_summary' - A summary of the package version. The summary is extracted from the
-- package. The information in and detail level of the summary depends on
-- the package version\'s format.
--
-- 'version', 'packageVersionDescription_version' - The version of the package.
newPackageVersionDescription ::
PackageVersionDescription
newPackageVersionDescription =
PackageVersionDescription'
{ displayName =
Prelude.Nothing,
format = Prelude.Nothing,
homePage = Prelude.Nothing,
licenses = Prelude.Nothing,
namespace = Prelude.Nothing,
origin = Prelude.Nothing,
packageName = Prelude.Nothing,
publishedTime = Prelude.Nothing,
revision = Prelude.Nothing,
sourceCodeRepository = Prelude.Nothing,
status = Prelude.Nothing,
summary = Prelude.Nothing,
version = Prelude.Nothing
}
-- | The name of the package that is displayed. The @displayName@ varies
-- depending on the package version\'s format. For example, if an npm
-- package is named @ui@, is in the namespace @vue@, and has the format
-- @npm@, then the @displayName@ is @\@vue\/ui@.
packageVersionDescription_displayName :: Lens.Lens' PackageVersionDescription (Prelude.Maybe Prelude.Text)
packageVersionDescription_displayName = Lens.lens (\PackageVersionDescription' {displayName} -> displayName) (\s@PackageVersionDescription' {} a -> s {displayName = a} :: PackageVersionDescription)
-- | The format of the package version.
packageVersionDescription_format :: Lens.Lens' PackageVersionDescription (Prelude.Maybe PackageFormat)
packageVersionDescription_format = Lens.lens (\PackageVersionDescription' {format} -> format) (\s@PackageVersionDescription' {} a -> s {format = a} :: PackageVersionDescription)
-- | The homepage associated with the package.
packageVersionDescription_homePage :: Lens.Lens' PackageVersionDescription (Prelude.Maybe Prelude.Text)
packageVersionDescription_homePage = Lens.lens (\PackageVersionDescription' {homePage} -> homePage) (\s@PackageVersionDescription' {} a -> s {homePage = a} :: PackageVersionDescription)
-- | Information about licenses associated with the package version.
packageVersionDescription_licenses :: Lens.Lens' PackageVersionDescription (Prelude.Maybe [LicenseInfo])
packageVersionDescription_licenses = Lens.lens (\PackageVersionDescription' {licenses} -> licenses) (\s@PackageVersionDescription' {} a -> s {licenses = a} :: PackageVersionDescription) Prelude.. Lens.mapping Lens.coerced
-- | The namespace of the package version. The package version component that
-- specifies its namespace depends on its type. For example:
--
-- - The namespace of a Maven package version is its @groupId@.
--
-- - The namespace of an npm package version is its @scope@.
--
-- - Python and NuGet package versions do not contain a corresponding
-- component, package versions of those formats do not have a
-- namespace.
packageVersionDescription_namespace :: Lens.Lens' PackageVersionDescription (Prelude.Maybe Prelude.Text)
packageVersionDescription_namespace = Lens.lens (\PackageVersionDescription' {namespace} -> namespace) (\s@PackageVersionDescription' {} a -> s {namespace = a} :: PackageVersionDescription)
-- | A
-- <https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionOrigin.html PackageVersionOrigin>
-- object that contains information about how the package version was added
-- to the repository.
packageVersionDescription_origin :: Lens.Lens' PackageVersionDescription (Prelude.Maybe PackageVersionOrigin)
packageVersionDescription_origin = Lens.lens (\PackageVersionDescription' {origin} -> origin) (\s@PackageVersionDescription' {} a -> s {origin = a} :: PackageVersionDescription)
-- | The name of the requested package.
packageVersionDescription_packageName :: Lens.Lens' PackageVersionDescription (Prelude.Maybe Prelude.Text)
packageVersionDescription_packageName = Lens.lens (\PackageVersionDescription' {packageName} -> packageName) (\s@PackageVersionDescription' {} a -> s {packageName = a} :: PackageVersionDescription)
-- | A timestamp that contains the date and time the package version was
-- published.
packageVersionDescription_publishedTime :: Lens.Lens' PackageVersionDescription (Prelude.Maybe Prelude.UTCTime)
packageVersionDescription_publishedTime = Lens.lens (\PackageVersionDescription' {publishedTime} -> publishedTime) (\s@PackageVersionDescription' {} a -> s {publishedTime = a} :: PackageVersionDescription) Prelude.. Lens.mapping Data._Time
-- | The revision of the package version.
packageVersionDescription_revision :: Lens.Lens' PackageVersionDescription (Prelude.Maybe Prelude.Text)
packageVersionDescription_revision = Lens.lens (\PackageVersionDescription' {revision} -> revision) (\s@PackageVersionDescription' {} a -> s {revision = a} :: PackageVersionDescription)
-- | The repository for the source code in the package version, or the source
-- code used to build it.
packageVersionDescription_sourceCodeRepository :: Lens.Lens' PackageVersionDescription (Prelude.Maybe Prelude.Text)
packageVersionDescription_sourceCodeRepository = Lens.lens (\PackageVersionDescription' {sourceCodeRepository} -> sourceCodeRepository) (\s@PackageVersionDescription' {} a -> s {sourceCodeRepository = a} :: PackageVersionDescription)
-- | A string that contains the status of the package version.
packageVersionDescription_status :: Lens.Lens' PackageVersionDescription (Prelude.Maybe PackageVersionStatus)
packageVersionDescription_status = Lens.lens (\PackageVersionDescription' {status} -> status) (\s@PackageVersionDescription' {} a -> s {status = a} :: PackageVersionDescription)
-- | A summary of the package version. The summary is extracted from the
-- package. The information in and detail level of the summary depends on
-- the package version\'s format.
packageVersionDescription_summary :: Lens.Lens' PackageVersionDescription (Prelude.Maybe Prelude.Text)
packageVersionDescription_summary = Lens.lens (\PackageVersionDescription' {summary} -> summary) (\s@PackageVersionDescription' {} a -> s {summary = a} :: PackageVersionDescription)
-- | The version of the package.
packageVersionDescription_version :: Lens.Lens' PackageVersionDescription (Prelude.Maybe Prelude.Text)
packageVersionDescription_version = Lens.lens (\PackageVersionDescription' {version} -> version) (\s@PackageVersionDescription' {} a -> s {version = a} :: PackageVersionDescription)
instance Data.FromJSON PackageVersionDescription where
parseJSON =
Data.withObject
"PackageVersionDescription"
( \x ->
PackageVersionDescription'
Prelude.<$> (x Data..:? "displayName")
Prelude.<*> (x Data..:? "format")
Prelude.<*> (x Data..:? "homePage")
Prelude.<*> (x Data..:? "licenses" Data..!= Prelude.mempty)
Prelude.<*> (x Data..:? "namespace")
Prelude.<*> (x Data..:? "origin")
Prelude.<*> (x Data..:? "packageName")
Prelude.<*> (x Data..:? "publishedTime")
Prelude.<*> (x Data..:? "revision")
Prelude.<*> (x Data..:? "sourceCodeRepository")
Prelude.<*> (x Data..:? "status")
Prelude.<*> (x Data..:? "summary")
Prelude.<*> (x Data..:? "version")
)
instance Prelude.Hashable PackageVersionDescription where
hashWithSalt _salt PackageVersionDescription' {..} =
_salt
`Prelude.hashWithSalt` displayName
`Prelude.hashWithSalt` format
`Prelude.hashWithSalt` homePage
`Prelude.hashWithSalt` licenses
`Prelude.hashWithSalt` namespace
`Prelude.hashWithSalt` origin
`Prelude.hashWithSalt` packageName
`Prelude.hashWithSalt` publishedTime
`Prelude.hashWithSalt` revision
`Prelude.hashWithSalt` sourceCodeRepository
`Prelude.hashWithSalt` status
`Prelude.hashWithSalt` summary
`Prelude.hashWithSalt` version
instance Prelude.NFData PackageVersionDescription where
rnf PackageVersionDescription' {..} =
Prelude.rnf displayName
`Prelude.seq` Prelude.rnf format
`Prelude.seq` Prelude.rnf homePage
`Prelude.seq` Prelude.rnf licenses
`Prelude.seq` Prelude.rnf namespace
`Prelude.seq` Prelude.rnf origin
`Prelude.seq` Prelude.rnf packageName
`Prelude.seq` Prelude.rnf publishedTime
`Prelude.seq` Prelude.rnf revision
`Prelude.seq` Prelude.rnf sourceCodeRepository
`Prelude.seq` Prelude.rnf status
`Prelude.seq` Prelude.rnf summary
`Prelude.seq` Prelude.rnf version