

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Actualización del estado de la versión del paquete
<a name="update-package-version-status"></a>

Cada versión del paquete CodeArtifact tiene un estado que describe el estado actual y la disponibilidad de la versión del paquete. Puede cambiar el estado de la versión del paquete mediante la consola AWS CLI y la consola.

**nota**  
Para obtener más información sobre el estado de la versión del paquete, incluida una lista de los estados disponibles, consulte [El estado de la versión del paquete](packages-overview.md#package-version-status). 

## Actualizar el estado de la versión del paquete
<a name="updating-pv-status"></a>

Establecer el estado de la versión de un paquete permite controlar cómo se puede usar una versión del paquete sin eliminarla por completo del repositorio. Por ejemplo, cuando la versión de un paquete tiene el estado de `Unlisted`, se puede seguir descargando de forma normal, pero no aparecerá en las listas de versiones de paquetes devueltas a comandos como `npm view`. La [UpdatePackageVersionsStatus API](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html) permite configurar el estado de la versión del paquete de varias versiones del mismo paquete en una sola llamada a la API. Para obtener una descripción de los diferentes estados, consulte [Información general sobre paquetes](packages-overview.md).

Utilice el comando `update-package-versions-status` para cambiar el estado de una versión de paquete a `Published`, `Unlisted`, o `Archived`. Para ver los permisos de IAM necesarios para usar el comando, consulte [Permisos de IAM necesarios para actualizar el estado de una versión de paquete](#update-package-version-status-iam). El siguiente ejemplo establece el estado de la versión 4.1.0 del paquete npm `chalk` en `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
```

Código de salida de ejemplo:

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

En este ejemplo se utiliza un paquete npm, pero el comando funciona de forma idéntica en otros formatos. Se pueden mover varias versiones al mismo estado de destino con un solo comando; consulte el siguiente ejemplo.

```
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
```

Código de salida de ejemplo:

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

Tenga en cuenta que, una vez publicada, la versión de un paquete no se puede volver a mover al estado `Unfinished`, por lo que este estado no está permitido como valor para el parámetro `--target-status`. Para mover la versión del paquete al estado `Disposed`, utilice el comando `dispose-package-versions` en su lugar, tal como se describe a continuación.

## Permisos de IAM necesarios para actualizar el estado de una versión de paquete
<a name="update-package-version-status-iam"></a>

Para llamar a `update-package-versions-status` para un paquete, debe tener el permiso `codeartifact:UpdatePackageVersionsStatus` en el recurso del paquete. Esto significa que puede otorgar permiso para llamar a `update-package-versions-status` por paquete. Por ejemplo, una política de IAM que conceda permiso para invocar `update-package-versions-status` el paquete npm *chalk* incluiría una declaración como la siguiente.

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

## Se está actualizando el estado de un paquete npm específico
<a name="update-package-version-status-scoped-npm"></a>

Para actualizar el estado de la versión del paquete de una versión del paquete npm con un alcance, utilice el parámetro `--namespace`. Por ejemplo, para eliminar la versión 8.0.0 de `@nestjs/core`, utilice el siguiente comando.

```
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
```

## Estado de actualización de un paquete de Maven
<a name="update-package-version-status-maven"></a>

Los paquetes de Maven siempre tienen un ID de grupo, que se denomina espacio de nombres en. CodeArtifact Utilice el parámetro `--namespace` para especificar el ID de grupo de Maven al llamar a `update-package-versions-status`. Por ejemplo, para archivar la versión 2.13.1 del paquete Maven `org.apache.logging.log4j:log4j`, utilice el siguiente comando.

```
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
```

## Especificación de una versión de paquete
<a name="update-status-specify-package-version-revision"></a>

La revisión de la versión de un paquete es una cadena que especifica un conjunto específico de activos y metadatos para una versión de paquete. Puede especificar una revisión de la versión del paquete para actualizar el estado de las versiones del paquete que se encuentran en un estado específico. Para especificar una revisión de la versión del paquete, utilice el parámetro `--version-revisions` para pasar una o más versiones del paquete separadas por comas y los pares de revisiones de versiones del paquete. El estado de la versión de un paquete solo se actualizará si la revisión actual de la versión del paquete coincide con el valor especificado.

**nota**  
El parámetro `—-versions` también debe definirse cuando se utilice el 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 actualizar varias versiones con un solo comando, pase a las opciones una lista separada por comas de pares de versiones y revisiones a las opciones `--version-revisions`. El siguiente comando de ejemplo define dos pares diferentes de versiones de paquetes y revisiones de versiones de paquetes.

```
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
```

Código de salida de ejemplo:

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

Al actualizar varias versiones de paquetes, las versiones que se han pasado a `--version-revisions` deben ser las mismas que las versiones pasadas a `--versions`. Si se especifica una revisión de forma incorrecta, el estado de esa versión no se actualizará.

## Uso del parámetro de estado esperado
<a name="using-expected-status"></a>

El comando `update-package-versions-status` proporciona el parámetro `--expected-status` que permite especificar el estado actual esperado de una versión del paquete. Si el estado actual no coincide con el valor al que se ha pasado a `--expected-status`, el estado de esa versión del paquete no se actualizará.

Por ejemplo, en*my\$1repo*, las versiones 4.0.0 y 4.1.0 del paquete `chalk` npm tienen actualmente un estado de. `Published` Una llamada a `update-package-versions-status` que especifique el estado esperado de no `Unlisted` podrá actualizar ambas versiones del paquete debido a la discordancia de estados.

```
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
```

Código de salida de ejemplo:

```
{
    "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"
        }
    }
}
```

## Errores con las versiones individuales de los paquetes
<a name="update-package-version-status-errors"></a>

Existen varios motivos por los que el estado de la versión de un paquete no se actualiza cuando se llama a `update-package-versions-status`. Por ejemplo, es posible que la revisión de la versión del paquete se haya especificado incorrectamente o que el estado esperado no coincida con el estado actual. En estos casos, la versión se incluirá en el mapa `failedVersions` de la respuesta de la API. Si una versión falla, es posible que se omitan las demás versiones especificadas en la misma llamada a `update-package-versions-status` y que su estado no se actualice. Estas versiones también se incluirán en el mapa `failedVersions` con un `errorCode` de `SKIPPED`.

En la implementación actual de `update-package-versions-status`, si no se puede cambiar el estado de una o más versiones, se omitirán todas las demás versiones. Es decir, todas las versiones se actualizan correctamente o no se actualiza ninguna versión. Este comportamiento no está garantizado en el contrato de la API; en el futuro, algunas versiones podrían funcionar correctamente y otras no en una sola llamada a `update-package-versions-status`.

El siguiente comando de ejemplo incluye un error en la actualización del estado de la versión provocado por una discordancia entre las versiones de un paquete. Ese error de actualización provoca que se omita otra llamada de actualización del estado de la versión.

```
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
```

Código de salida de ejemplo:

```
{
    "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="
        }
    }
}
```

## Eliminación de las versiones de los paquetes
<a name="dispose-package-versions"></a>

El estado `Disposed` del paquete tiene un comportamiento similar al de`Archived`, excepto que los activos del paquete se eliminarán permanentemente CodeArtifact para que el almacenamiento de activos ya no se facture a la cuenta del propietario del dominio. Para obtener más información sobre el estado de cada versión del paquete, consulte [El estado de la versión del paquete](packages-overview.md#package-version-status). Para cambiar el estado de una versión de paquete a `Disposed`, use el comando `dispose-package-versions`. Esta capacidad es independiente de la de `update-package-versions-status` debido a que la eliminación de una versión de paquete no es reversible. Como los activos del paquete se eliminarán, el estado de la versión no se puede volver a cambiar a `Archived`, `Unlisted` o `Published`. La única acción que se puede realizar en una versión de paquete que se ha eliminado es eliminarla mediante el comando `delete-package-versions`.

Para llamar a `dispose-package-versions` correctamente, la entidad principal de IAM que realiza la llamada debe tener el permiso `codeartifact:DisposePackageVersions` sobre el recurso del paquete.

El comportamiento del comando `dispose-package-versions` es similar a `update-package-versions-status`, incluido el comportamiento de las opciones `--version-revisions ` y `--expected-status` que se describen en las secciones de [revisión de versión](#update-status-specify-package-version-revision) y [estado esperado](#using-expected-status). Por ejemplo, el siguiente comando intenta eliminar la versión de un paquete, pero falla debido a un estado esperado que no coincide.

```
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
```

Código de salida de ejemplo:

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

Si se vuelve a ejecutar el mismo comando con un `--expected-status` de `Published`, la eliminación se realizará correctamente.

```
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
```

Código de salida de ejemplo:

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