

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Atualizar o status da versão do pacote
<a name="update-package-version-status"></a>

Cada versão do pacote CodeArtifact tem um status que descreve o estado atual e a disponibilidade da versão do pacote. Você pode alterar o status da versão do pacote usando o console AWS CLI e o console.

**nota**  
Para obter mais informações sobre o status da versão do pacote, incluindo uma lista dos status disponíveis, consulte [Satus da versão do pacote](packages-overview.md#package-version-status). 

## Atualizar o status da versão do pacote
<a name="updating-pv-status"></a>

Definir o status de uma versão de pacote permite controlar como uma versão de pacote pode ser usada sem excluí-la completamente do repositório. Por exemplo, quando uma versão de pacote tem o status de `Unlisted`, ela ainda pode ser baixada normalmente, mas não aparecerá nas listas de versões de pacotes retornadas para comandos como `npm view`. A [UpdatePackageVersionsStatus API](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html) permite definir o status da versão do pacote de várias versões do mesmo pacote em uma única chamada de API. Para obter uma descrição dos diferentes status, consulte [Visão geral dos pacotes](packages-overview.md).

Use o comando `update-package-versions-status` para alterar o status de uma versão do pacote para `Published`, `Unlisted` ou `Archived`. Para conferir as permissões necessárias do IAM para usar o comando, consulte [Permissões obrigatórias do IAM para atualizar o status da versão do pacote](#update-package-version-status-iam). O exemplo a seguir define o status da versão 4.1.0 do pacote npm `chalk` como `Archived`.

```
aws codeartifact update-package-versions-status --domain my_domain
 --domain-owner 111122223333 --repository my_repo --format npm --package chalk 
--versions 4.1.0 --target-status Archived
```

Exemplo de saída:

```
{
    "successfulVersions": {
        "4.1.0": {
            "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=",
            "status": "Archived"
        }
    },
    "failedVersions": {}
}
```

Este exemplo usa um pacote npm, mas o comando funciona de forma idêntica para outros formatos. Várias versões podem ser movidas para o mesmo status de destino usando um único comando, confira o exemplo a seguir.

```
aws codeartifact update-package-versions-status --domain my_domain
 --domain-owner 111122223333 --repository my_repo --format npm --package chalk 
--versions 4.1.0 4.1.1 --target-status Archived
```

Exemplo de saída:

```
{
    "successfulVersions": {
        "4.1.0": {
            "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=",
            "status": "Archived"
        },
        "4.1.1": {
            "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=",
            "status": "Archived"
        }
    },
    "failedVersions": {}
}
```

Observe que, uma vez publicada, uma versão do pacote não pode ser movida de volta ao estado `Unfinished`, portanto, esse status não é permitido como um valor para o parâmetro `--target-status`. Para mover a versão do pacote para o estado `Disposed`, use o comando `dispose-package-versions` no lugar, conforme descrito abaixo.

## Permissões obrigatórias do IAM para atualizar o status da versão do pacote
<a name="update-package-version-status-iam"></a>

Para chamar `update-package-versions-status` para um pacote, você deve ter a permissão `codeartifact:UpdatePackageVersionsStatus` no recurso do pacote. Isso significa que você pode conceder permissão para chamar `update-package-versions-status` por pacote. Por exemplo, uma política do IAM que concedesse permissão para chamar `update-package-versions-status` o pacote npm *chalk* incluiria uma declaração como a seguinte.

```
{
  "Action": [
    "codeartifact:UpdatePackageVersionsStatus"
  ],
  "Effect": "Allow",
  "Resource": "arn:aws:codeartifact:us-east-1:111122223333:package/my_domain/my_repo/npm//chalk"
}
```

## Atualizar o status de um pacote npm com escopo definido
<a name="update-package-version-status-scoped-npm"></a>

Para atualizar o status da versão do pacote de uma versão do pacote npm com um escopo, use o parâmetro `--namespace`. Por exemplo, para remover da lista a versão 8.0.0 do `@nestjs/core`, use o comando a seguir.

```
aws codeartifact update-package-versions-status --domain my_domain
 --domain-owner 111122223333 --repository my_repo --format npm --namespace nestjs 
--package core --versions 8.0.0 --target-status Unlisted
```

## Atualizar o status de um pacote Maven
<a name="update-package-version-status-maven"></a>

Os pacotes Maven sempre têm um ID de grupo, chamado de namespace em. CodeArtifact Use o parâmetro `--namespace` para especificar o ID do grupo Maven ao chamar `update-package-versions-status`. Por exemplo, para arquivar a versão 2.13.1 do pacote Maven `org.apache.logging.log4j:log4j`, use o comando a seguir.

```
aws codeartifact update-package-versions-status --domain my_domain
 --domain-owner 111122223333 --repository my_repo --format maven 
--namespace org.apache.logging.log4j --package log4j 
--versions 2.13.1 --target-status Archived
```

## Especificar uma revisão da versão do pacote
<a name="update-status-specify-package-version-revision"></a>

A revisão da versão do pacote é uma string que especifica um determinado conjunto de ativos e metadados da versão de um pacote. Você pode especificar uma revisão da versão do pacote para atualizar o status das versões do pacote que estão em um estado definido. Para especificar uma revisão da versão do pacote, use o parâmetro `--version-revisions` para passar uma ou mais versões do pacote separadas por vírgula e os pares de revisão da versão do pacote. O status de uma versão do pacote só será atualizado se a revisão atual da versão do pacote corresponder ao valor especificado.

**nota**  
O parâmetro `—-versions` também deve ser definido ao usar o parâmetro `--version-revisions`.

```
aws codeartifact update-package-versions-status --domain my_domain 
   --domain-owner 111122223333 --repository my_repo --format npm --package chalk 
   --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8bzVMJ4=" 
   --versions 4.1.0 --target-status Archived
```

Para atualizar várias versões com um único comando, passe uma lista separada por vírgulas de pares de versão e de revisão de versão para as opções `--version-revisions`. O comando de exemplo a seguir define dois pares diferentes de versão do pacote e de revisão da versão do pacote.

```
aws codeartifact update-package-versions-status --domain my_domain 
 --domain-owner 111122223333 --repository my_repo --format npm 
 --package chalk
 --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc="  
 --versions 4.1.0 4.0.0 --target-status Published
```

Exemplo de saída:

```
{
    "successfulVersions": {
        "4.0.0": {
            "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=",
            "status": "Published"
        },
        "4.1.0": {
            "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=",
            "status": "Published"
        }
    },
    "failedVersions": {}
}
```

Ao atualizar várias versões do pacote, as versões passadas para `--version-revisions` devem ser iguais às versões passadas para `--versions`. Se uma revisão for especificada de forma incorreta, o status dessa versão não será atualizado.

## Usar o parâmetro de status esperado
<a name="using-expected-status"></a>

O comando `update-package-versions-status` apresenta o parâmetro `--expected-status` compatível com a especificação do status atual esperado de uma versão do pacote. Se o status atual não corresponder ao valor passado para `--expected-status`, o status dessa versão do pacote não será atualizado.

Por exemplo, em*my\$1repo*, as versões 4.0.0 e 4.1.0 do pacote npm `chalk` atualmente têm o status de. `Published` Uma chamada para `update-package-versions-status` que especifica um status esperado de `Unlisted` falhará na atualização de ambas as versões do pacote devido à incompatibilidade de status.

```
aws codeartifact update-package-versions-status --domain my_domain
--domain-owner 111122223333 --repository my_repo --format npm --package chalk 
--versions 4.1.0 4.0.0 --target-status Archived --expected-status Unlisted
```

Exemplo de saída:

```
{
    "successfulVersions": {},
    "failedVersions": {
        "4.0.0": {
            "errorCode": "MISMATCHED_STATUS",
            "errorMessage": "current status: Published, expected status: Unlisted"
        },
        "4.1.0": {
            "errorCode": "MISMATCHED_STATUS",
            "errorMessage": "current status: Published, expected status: Unlisted"
        }
    }
}
```

## Erros com versões de pacotes individuais
<a name="update-package-version-status-errors"></a>

Há vários motivos pelos quais o status de uma versão do pacote não será atualizado durante a chamada de `update-package-versions-status`. Por exemplo, a revisão da versão do pacote pode ter sido especificada de maneira incorreta ou o status esperado não corresponde ao status atual. Nesses casos, a versão será incluída no mapa `failedVersions` na resposta da API. Se uma versão falhar, outras versões especificadas na mesma chamada para `update-package-versions-status` poderão ser ignoradas e não ter seu status atualizado. Essas versões também serão incluídas no mapa `failedVersions` com um `errorCode` de`SKIPPED`.

Na implementação atual do `update-package-versions-status`, se uma ou mais versões não puderem ter seu status alterado, todas as outras versões serão ignoradas. Ou seja, todas as versões são atualizadas com sucesso ou nenhuma versão é atualizada. Esse comportamento não é garantido no contrato da API; no futuro, algumas versões podem ser bem-sucedidas, enquanto outras falham em uma única chamada para `update-package-versions-status`.

O exemplo de comando a seguir inclui uma falha na atualização do status da versão causada por uma incompatibilidade na revisão da versão do pacote. Essa falha na atualização faz com que outra chamada de atualização de status da versão seja ignorada.

```
aws codeartifact update-package-versions-status --domain my_domain
  --domain-owner 111122223333 --repository my_repo 
  --format npm --package chalk 
  --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" 
  --versions 4.1.0 4.0.0 --target-status Archived
```

Exemplo de saída:

```
{
    "successfulVersions": {},
    "failedVersions": {
        "4.0.0": {
            "errorCode": "SKIPPED",
            "errorMessage": "version 4.0.0 is skipped"
        },
        "4.1.0": {
            "errorCode": "MISMATCHED_REVISION",
            "errorMessage": "current revision: 25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=, expected revision: 25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ="
        }
    }
}
```

## Descartar as versões do pacote
<a name="dispose-package-versions"></a>

O status do `Disposed` pacote tem um comportamento semelhante ao`Archived`, exceto que os ativos do pacote serão excluídos permanentemente CodeArtifact para que a conta do proprietário do domínio não seja mais cobrada pelo armazenamento de ativos. Consulte mais informações sobre o status da versão do pacote em [Satus da versão do pacote](packages-overview.md#package-version-status). Para alterar o status de uma versão do pacote para `Disposed`, use o comando `dispose-package-versions`. Esse recurso é separado de `update-package-versions-status` porque o descarte de uma versão do pacote não é reversível. Como os ativos do pacote serão excluídos, o status da versão não pode ser alterado de volta para `Archived`, `Unlisted` ou `Published`. A única ação que pode ser executada em uma versão de pacote que foi descartada é excluí-la usando o comando `delete-package-versions`.

Para chamar `dispose-package-versions` com sucesso, a entidade principal do IAM que está chamando deve ter a permissão `codeartifact:DisposePackageVersions` no recurso do pacote.

O comportamento do comando `dispose-package-versions` é semelhante a `update-package-versions-status`, incluindo o comportamento das opções `--version-revisions ` e `--expected-status` descritas nas seções de [revisão da versão](#update-status-specify-package-version-revision) e [status esperado](#using-expected-status). Por exemplo, o comando a seguir tenta descartar uma versão do pacote, mas falha devido a um status esperado incompatível.

```
aws codeartifact dispose-package-versions —domain my_domain --domain-owner 111122223333 
--repository my_repo --format npm --package chalk --versions 4.0.0 
--expected-status Unlisted
```

Exemplo de saída:

```
{
    "successfulVersions": {},
    "failedVersions": {
        "4.0.0": {
            "errorCode": "MISMATCHED_STATUS",
            "errorMessage": "current status: Published, expected status: Unlisted"
        }
    }
}
```

Se o mesmo comando for executado outra vez com um `--expected-status` de `Published`, o descarte será bem-sucedido.

```
aws codeartifact dispose-package-versions —domain my_domain --domain-owner 111122223333 
--repository my_repo --format npm --package chalk --versions 4.0.0 
--expected-status Published
```

Exemplo de saída:

```
{
    "successfulVersions": {
        "4.0.0": {
            "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=",
            "status": "Disposed"
        }
    },
    "failedVersions": {}
}
```