

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Comportement des API avec les référentiels en amont
<a name="upstream-repo-api-behavior"></a>

 Lorsque vous appelez certains CodeArtifact APIs référentiels connectés à des référentiels en amont, le comportement peut être différent selon que les packages ou les versions de packages sont stockés dans le référentiel cible ou dans le référentiel amont. Leur comportement APIs est documenté ici. 

Pour plus d'informations CodeArtifact APIs, consultez la [référence des CodeArtifact API](https://docs.aws.amazon.com/codeartifact/latest/APIReference/Welcome.html).

La plupart APIs des références à un package ou à une version de package renvoient une `ResourceNotFound` erreur si la version de package spécifiée n'est pas présente dans le référentiel cible. Cela est vrai même si le package ou la version du package est présent dans un référentiel en amont. En fait, les référentiels en amont sont ignorés lors de leur appel. APIs Il s' APIs agit de :
+ DeletePackageVersions
+ DescribePackageVersion
+ GetPackageVersionAsset
+ GetPackageVersionReadme
+ ListPackages
+ ListPackageVersionAssets
+ ListPackageVersionDependencies
+ ListPackageVersions
+ UpdatePackageVersionsStatus

Pour illustrer ce comportement, nous avons deux référentiels : `target-repo` et`upstream-repo`. `target-repo`est vide et a été `upstream-repo` configuré en tant que référentiel en amont. `upstream-repo`contient le package `lodash` npm.

Lorsque l'`DescribePackageVersion`API est appelée`upstream-repo`, qui contient le `lodash` package, nous obtenons le résultat suivant :

```
{
    "packageVersion": {
        "format": "npm",
        "packageName": "lodash",
        "displayName": "lodash",
        "version": "4.17.20",
        "summary": "Lodash modular utilities.",
        "homePage": "https://lodash.com/",
        "sourceCodeRepository": "https://github.com/lodash/lodash.git",
        "publishedTime": "2020-10-14T11:06:10.370000-04:00",
        "licenses": [
            {
                "name": "MIT"
            }
        ],
        "revision": "Ciqe5/9yicvkJT13b5/LdLpCyE6fqA7poa9qp+FilPs=",
        "status": "Published"
    }
```

Lorsque vous appelez la même API`target-repo`, qui est vide mais `upstream-repo` configurée en amont, nous obtenons le résultat suivant :

```
An error occurred (ResourceNotFoundException) when calling the DescribePackageVersion operation: 
Package not found in repository. RepoId: {{repo-id}}, Package = PackageCoordinate{packageType=npm, packageName=lodash},
```

 L'`CopyPackageVersions`API se comporte différemment. Par défaut, `CopyPackageVersions` l'API copie uniquement les versions de package stockées dans le référentiel cible. Si une version de package est stockée dans le référentiel en amont mais pas dans le référentiel cible, elle ne sera pas copiée. Pour inclure les versions de packages qui sont stockées uniquement dans le référentiel en amont, définissez la valeur de `includeFromUpstream` to `true` dans votre demande d'API. 

Pour plus d'informations sur l'`CopyPackageVersions`API, consultez[Copier des packages entre des référentiels](copy-package.md).