

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á.

# Comportamento da API com repositórios upstream
<a name="upstream-repo-api-behavior"></a>

 Quando você chama determinados CodeArtifact APIs repositórios conectados a repositórios upstream, o comportamento pode ser diferente dependendo se os pacotes ou as versões do pacote estão armazenados no repositório de destino ou no repositório upstream. O comportamento deles APIs está documentado aqui. 

Para obter mais informações CodeArtifact APIs, consulte a [Referência CodeArtifact da API](https://docs.aws.amazon.com/codeartifact/latest/APIReference/Welcome.html).

A maioria das APIs referências a um pacote ou versão de pacote retornará um `ResourceNotFound` erro se a versão do pacote especificada não estiver presente no repositório de destino. Isso acontece mesmo se o pacote ou a versão do pacote estiver presente em um repositório upstream. Efetivamente, os repositórios upstream são ignorados ao chamá-los. APIs São APIs elas:
+ DeletePackageVersions
+ DescribePackageVersion
+ GetPackageVersionAsset
+ GetPackageVersionReadme
+ ListPackages
+ ListPackageVersionAssets
+ ListPackageVersionDependencies
+ ListPackageVersions
+ UpdatePackageVersionsStatus

Para demonstrar esse comportamento, temos dois repositórios: o `target-repo` e `upstream-repo`. O `target-repo` está vazio e tem o `upstream-repo` configurado como um repositório upstream. O `upstream-repo` contém o pacote npm `lodash`.

Ao chamar a API `DescribePackageVersion` no `upstream-repo`, que contém o pacote `lodash`, obtemos o seguinte resultado:

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

Ao chamar a mesma API no `target-repo`, que está vazio, mas tem o `upstream-repo` configurado como upstream, obtemos o seguinte resultado:

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

 A API `CopyPackageVersions` se comporta de forma diferente. Por padrão, a API `CopyPackageVersions` copia somente as versões do pacote que estão armazenadas no repositório de destino. Se uma versão do pacote for armazenada no repositório upstream, mas não no repositório de destino, ela não será copiada. Para incluir versões de pacotes que são armazenados somente no repositório upstream, defina o valor de `includeFromUpstream` para `true` na sua solicitação de API. 

Para mais informações sobre a API `CopyPackageVersions`, consulte [Copiar pacotes entre repositórios](copy-package.md).