{-# 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.CodeArtifact.UpdatePackageVersionsStatus -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Updates the status of one or more versions of a package. Using -- @UpdatePackageVersionsStatus@, you can update the status of package -- versions to @Archived@, @Published@, or @Unlisted@. To set the status of -- a package version to @Disposed@, use -- . module Amazonka.CodeArtifact.UpdatePackageVersionsStatus ( -- * Creating a Request UpdatePackageVersionsStatus (..), newUpdatePackageVersionsStatus, -- * Request Lenses updatePackageVersionsStatus_domainOwner, updatePackageVersionsStatus_expectedStatus, updatePackageVersionsStatus_namespace, updatePackageVersionsStatus_versionRevisions, updatePackageVersionsStatus_domain, updatePackageVersionsStatus_repository, updatePackageVersionsStatus_format, updatePackageVersionsStatus_package, updatePackageVersionsStatus_versions, updatePackageVersionsStatus_targetStatus, -- * Destructuring the Response UpdatePackageVersionsStatusResponse (..), newUpdatePackageVersionsStatusResponse, -- * Response Lenses updatePackageVersionsStatusResponse_failedVersions, updatePackageVersionsStatusResponse_successfulVersions, updatePackageVersionsStatusResponse_httpStatus, ) where import Amazonka.CodeArtifact.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:/ 'newUpdatePackageVersionsStatus' smart constructor. data UpdatePackageVersionsStatus = UpdatePackageVersionsStatus' { -- | The 12-digit account number of the Amazon Web Services account that owns -- the domain. It does not include dashes or spaces. domainOwner :: Prelude.Maybe Prelude.Text, -- | The package version’s expected status before it is updated. If -- @expectedStatus@ is provided, the package version\'s status is updated -- only if its status at the time @UpdatePackageVersionsStatus@ is called -- matches @expectedStatus@. expectedStatus :: Prelude.Maybe PackageVersionStatus, -- | The namespace of the package version to be updated. 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 map of package versions and package version revisions. The map @key@ -- is the package version (for example, @3.5.2@), and the map @value@ is -- the package version revision. versionRevisions :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text), -- | The name of the domain that contains the repository that contains the -- package versions with a status to be updated. domain :: Prelude.Text, -- | The repository that contains the package versions with the status you -- want to update. repository :: Prelude.Text, -- | A format that specifies the type of the package with the statuses to -- update. format :: PackageFormat, -- | The name of the package with the version statuses to update. package :: Prelude.Text, -- | An array of strings that specify the versions of the package with the -- statuses to update. versions :: [Prelude.Text], -- | The status you want to change the package version status to. targetStatus :: PackageVersionStatus } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UpdatePackageVersionsStatus' 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: -- -- 'domainOwner', 'updatePackageVersionsStatus_domainOwner' - The 12-digit account number of the Amazon Web Services account that owns -- the domain. It does not include dashes or spaces. -- -- 'expectedStatus', 'updatePackageVersionsStatus_expectedStatus' - The package version’s expected status before it is updated. If -- @expectedStatus@ is provided, the package version\'s status is updated -- only if its status at the time @UpdatePackageVersionsStatus@ is called -- matches @expectedStatus@. -- -- 'namespace', 'updatePackageVersionsStatus_namespace' - The namespace of the package version to be updated. 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. -- -- 'versionRevisions', 'updatePackageVersionsStatus_versionRevisions' - A map of package versions and package version revisions. The map @key@ -- is the package version (for example, @3.5.2@), and the map @value@ is -- the package version revision. -- -- 'domain', 'updatePackageVersionsStatus_domain' - The name of the domain that contains the repository that contains the -- package versions with a status to be updated. -- -- 'repository', 'updatePackageVersionsStatus_repository' - The repository that contains the package versions with the status you -- want to update. -- -- 'format', 'updatePackageVersionsStatus_format' - A format that specifies the type of the package with the statuses to -- update. -- -- 'package', 'updatePackageVersionsStatus_package' - The name of the package with the version statuses to update. -- -- 'versions', 'updatePackageVersionsStatus_versions' - An array of strings that specify the versions of the package with the -- statuses to update. -- -- 'targetStatus', 'updatePackageVersionsStatus_targetStatus' - The status you want to change the package version status to. newUpdatePackageVersionsStatus :: -- | 'domain' Prelude.Text -> -- | 'repository' Prelude.Text -> -- | 'format' PackageFormat -> -- | 'package' Prelude.Text -> -- | 'targetStatus' PackageVersionStatus -> UpdatePackageVersionsStatus newUpdatePackageVersionsStatus pDomain_ pRepository_ pFormat_ pPackage_ pTargetStatus_ = UpdatePackageVersionsStatus' { domainOwner = Prelude.Nothing, expectedStatus = Prelude.Nothing, namespace = Prelude.Nothing, versionRevisions = Prelude.Nothing, domain = pDomain_, repository = pRepository_, format = pFormat_, package = pPackage_, versions = Prelude.mempty, targetStatus = pTargetStatus_ } -- | The 12-digit account number of the Amazon Web Services account that owns -- the domain. It does not include dashes or spaces. updatePackageVersionsStatus_domainOwner :: Lens.Lens' UpdatePackageVersionsStatus (Prelude.Maybe Prelude.Text) updatePackageVersionsStatus_domainOwner = Lens.lens (\UpdatePackageVersionsStatus' {domainOwner} -> domainOwner) (\s@UpdatePackageVersionsStatus' {} a -> s {domainOwner = a} :: UpdatePackageVersionsStatus) -- | The package version’s expected status before it is updated. If -- @expectedStatus@ is provided, the package version\'s status is updated -- only if its status at the time @UpdatePackageVersionsStatus@ is called -- matches @expectedStatus@. updatePackageVersionsStatus_expectedStatus :: Lens.Lens' UpdatePackageVersionsStatus (Prelude.Maybe PackageVersionStatus) updatePackageVersionsStatus_expectedStatus = Lens.lens (\UpdatePackageVersionsStatus' {expectedStatus} -> expectedStatus) (\s@UpdatePackageVersionsStatus' {} a -> s {expectedStatus = a} :: UpdatePackageVersionsStatus) -- | The namespace of the package version to be updated. 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. updatePackageVersionsStatus_namespace :: Lens.Lens' UpdatePackageVersionsStatus (Prelude.Maybe Prelude.Text) updatePackageVersionsStatus_namespace = Lens.lens (\UpdatePackageVersionsStatus' {namespace} -> namespace) (\s@UpdatePackageVersionsStatus' {} a -> s {namespace = a} :: UpdatePackageVersionsStatus) -- | A map of package versions and package version revisions. The map @key@ -- is the package version (for example, @3.5.2@), and the map @value@ is -- the package version revision. updatePackageVersionsStatus_versionRevisions :: Lens.Lens' UpdatePackageVersionsStatus (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)) updatePackageVersionsStatus_versionRevisions = Lens.lens (\UpdatePackageVersionsStatus' {versionRevisions} -> versionRevisions) (\s@UpdatePackageVersionsStatus' {} a -> s {versionRevisions = a} :: UpdatePackageVersionsStatus) Prelude.. Lens.mapping Lens.coerced -- | The name of the domain that contains the repository that contains the -- package versions with a status to be updated. updatePackageVersionsStatus_domain :: Lens.Lens' UpdatePackageVersionsStatus Prelude.Text updatePackageVersionsStatus_domain = Lens.lens (\UpdatePackageVersionsStatus' {domain} -> domain) (\s@UpdatePackageVersionsStatus' {} a -> s {domain = a} :: UpdatePackageVersionsStatus) -- | The repository that contains the package versions with the status you -- want to update. updatePackageVersionsStatus_repository :: Lens.Lens' UpdatePackageVersionsStatus Prelude.Text updatePackageVersionsStatus_repository = Lens.lens (\UpdatePackageVersionsStatus' {repository} -> repository) (\s@UpdatePackageVersionsStatus' {} a -> s {repository = a} :: UpdatePackageVersionsStatus) -- | A format that specifies the type of the package with the statuses to -- update. updatePackageVersionsStatus_format :: Lens.Lens' UpdatePackageVersionsStatus PackageFormat updatePackageVersionsStatus_format = Lens.lens (\UpdatePackageVersionsStatus' {format} -> format) (\s@UpdatePackageVersionsStatus' {} a -> s {format = a} :: UpdatePackageVersionsStatus) -- | The name of the package with the version statuses to update. updatePackageVersionsStatus_package :: Lens.Lens' UpdatePackageVersionsStatus Prelude.Text updatePackageVersionsStatus_package = Lens.lens (\UpdatePackageVersionsStatus' {package} -> package) (\s@UpdatePackageVersionsStatus' {} a -> s {package = a} :: UpdatePackageVersionsStatus) -- | An array of strings that specify the versions of the package with the -- statuses to update. updatePackageVersionsStatus_versions :: Lens.Lens' UpdatePackageVersionsStatus [Prelude.Text] updatePackageVersionsStatus_versions = Lens.lens (\UpdatePackageVersionsStatus' {versions} -> versions) (\s@UpdatePackageVersionsStatus' {} a -> s {versions = a} :: UpdatePackageVersionsStatus) Prelude.. Lens.coerced -- | The status you want to change the package version status to. updatePackageVersionsStatus_targetStatus :: Lens.Lens' UpdatePackageVersionsStatus PackageVersionStatus updatePackageVersionsStatus_targetStatus = Lens.lens (\UpdatePackageVersionsStatus' {targetStatus} -> targetStatus) (\s@UpdatePackageVersionsStatus' {} a -> s {targetStatus = a} :: UpdatePackageVersionsStatus) instance Core.AWSRequest UpdatePackageVersionsStatus where type AWSResponse UpdatePackageVersionsStatus = UpdatePackageVersionsStatusResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> UpdatePackageVersionsStatusResponse' Prelude.<$> (x Data..?> "failedVersions" Core..!@ Prelude.mempty) Prelude.<*> ( x Data..?> "successfulVersions" Core..!@ Prelude.mempty ) Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable UpdatePackageVersionsStatus where hashWithSalt _salt UpdatePackageVersionsStatus' {..} = _salt `Prelude.hashWithSalt` domainOwner `Prelude.hashWithSalt` expectedStatus `Prelude.hashWithSalt` namespace `Prelude.hashWithSalt` versionRevisions `Prelude.hashWithSalt` domain `Prelude.hashWithSalt` repository `Prelude.hashWithSalt` format `Prelude.hashWithSalt` package `Prelude.hashWithSalt` versions `Prelude.hashWithSalt` targetStatus instance Prelude.NFData UpdatePackageVersionsStatus where rnf UpdatePackageVersionsStatus' {..} = Prelude.rnf domainOwner `Prelude.seq` Prelude.rnf expectedStatus `Prelude.seq` Prelude.rnf namespace `Prelude.seq` Prelude.rnf versionRevisions `Prelude.seq` Prelude.rnf domain `Prelude.seq` Prelude.rnf repository `Prelude.seq` Prelude.rnf format `Prelude.seq` Prelude.rnf package `Prelude.seq` Prelude.rnf versions `Prelude.seq` Prelude.rnf targetStatus instance Data.ToHeaders UpdatePackageVersionsStatus where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON UpdatePackageVersionsStatus where toJSON UpdatePackageVersionsStatus' {..} = Data.object ( Prelude.catMaybes [ ("expectedStatus" Data..=) Prelude.<$> expectedStatus, ("versionRevisions" Data..=) Prelude.<$> versionRevisions, Prelude.Just ("versions" Data..= versions), Prelude.Just ("targetStatus" Data..= targetStatus) ] ) instance Data.ToPath UpdatePackageVersionsStatus where toPath = Prelude.const "/v1/package/versions/update_status" instance Data.ToQuery UpdatePackageVersionsStatus where toQuery UpdatePackageVersionsStatus' {..} = Prelude.mconcat [ "domain-owner" Data.=: domainOwner, "namespace" Data.=: namespace, "domain" Data.=: domain, "repository" Data.=: repository, "format" Data.=: format, "package" Data.=: package ] -- | /See:/ 'newUpdatePackageVersionsStatusResponse' smart constructor. data UpdatePackageVersionsStatusResponse = UpdatePackageVersionsStatusResponse' { -- | A list of @SuccessfulPackageVersionInfo@ objects, one for each package -- version with a status that successfully updated. failedVersions :: Prelude.Maybe (Prelude.HashMap Prelude.Text PackageVersionError), -- | A list of @PackageVersionError@ objects, one for each package version -- with a status that failed to update. successfulVersions :: Prelude.Maybe (Prelude.HashMap Prelude.Text SuccessfulPackageVersionInfo), -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UpdatePackageVersionsStatusResponse' 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: -- -- 'failedVersions', 'updatePackageVersionsStatusResponse_failedVersions' - A list of @SuccessfulPackageVersionInfo@ objects, one for each package -- version with a status that successfully updated. -- -- 'successfulVersions', 'updatePackageVersionsStatusResponse_successfulVersions' - A list of @PackageVersionError@ objects, one for each package version -- with a status that failed to update. -- -- 'httpStatus', 'updatePackageVersionsStatusResponse_httpStatus' - The response's http status code. newUpdatePackageVersionsStatusResponse :: -- | 'httpStatus' Prelude.Int -> UpdatePackageVersionsStatusResponse newUpdatePackageVersionsStatusResponse pHttpStatus_ = UpdatePackageVersionsStatusResponse' { failedVersions = Prelude.Nothing, successfulVersions = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | A list of @SuccessfulPackageVersionInfo@ objects, one for each package -- version with a status that successfully updated. updatePackageVersionsStatusResponse_failedVersions :: Lens.Lens' UpdatePackageVersionsStatusResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text PackageVersionError)) updatePackageVersionsStatusResponse_failedVersions = Lens.lens (\UpdatePackageVersionsStatusResponse' {failedVersions} -> failedVersions) (\s@UpdatePackageVersionsStatusResponse' {} a -> s {failedVersions = a} :: UpdatePackageVersionsStatusResponse) Prelude.. Lens.mapping Lens.coerced -- | A list of @PackageVersionError@ objects, one for each package version -- with a status that failed to update. updatePackageVersionsStatusResponse_successfulVersions :: Lens.Lens' UpdatePackageVersionsStatusResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text SuccessfulPackageVersionInfo)) updatePackageVersionsStatusResponse_successfulVersions = Lens.lens (\UpdatePackageVersionsStatusResponse' {successfulVersions} -> successfulVersions) (\s@UpdatePackageVersionsStatusResponse' {} a -> s {successfulVersions = a} :: UpdatePackageVersionsStatusResponse) Prelude.. Lens.mapping Lens.coerced -- | The response's http status code. updatePackageVersionsStatusResponse_httpStatus :: Lens.Lens' UpdatePackageVersionsStatusResponse Prelude.Int updatePackageVersionsStatusResponse_httpStatus = Lens.lens (\UpdatePackageVersionsStatusResponse' {httpStatus} -> httpStatus) (\s@UpdatePackageVersionsStatusResponse' {} a -> s {httpStatus = a} :: UpdatePackageVersionsStatusResponse) instance Prelude.NFData UpdatePackageVersionsStatusResponse where rnf UpdatePackageVersionsStatusResponse' {..} = Prelude.rnf failedVersions `Prelude.seq` Prelude.rnf successfulVersions `Prelude.seq` Prelude.rnf httpStatus