

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アップストリームリポジトリでの API 動作
<a name="upstream-repo-api-behavior"></a>

 アップストリームリポジトリに接続されているリポジトリで特定のCodeArtifact APIを呼び出すと、パッケージまたはパッケージバージョンがターゲットリポジトリかアップストリームリポジトリに格納されているかどうかによって、動作が異なる場合があります。これらのAPIの動作については、こちらを参照してください。

CodeArtifact APIの詳細については、[CodeArtifact APIリファレンス](https://docs.aws.amazon.com/codeartifact/latest/APIReference/Welcome.html)を参照してください。

パッケージやパッケージバージョンを参照するほとんどのAPIは、指定されたパッケージバージョンがターゲットリポジトリに存在しない場合、`ResourceNotFound`エラーを返します。これは、パッケージまたはパッケージバージョンがアップストリームリポジトリに存在する場合にも当てはまります。実際には、これらのAPIを呼び出すとき、アップストリームリポジトリは無視されます。それらのAPIは次のとおりです:
+ DeletePackageVersions
+ DescribePackageVersion
+ GetPackageVersionAsset
+ GetPackageVersionReadme
+ ListPackages
+ ListPackageVersionAssets
+ ListPackageVersionDependencies
+ ListPackageVersions
+ UpdatePackageVersionsStatus

この動作を確認するには、`target-repo`と`upstream-repo`の2つのリポジトリがあります:`target-repo`は空で、アップストリームリポジトリとして設定されている`upstream-repo`を持っています。`upstream-repo`にはnpmパッケージ`lodash`が含まれます。

`lodash`パッケージを含む`upstream-repo`上にある `DescribePackageVersion`APIを呼び出すと、次の結果が得られます。

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

空でありながらアップストリームとして設定されている `upstream-repo` を持つ `target-repo` 上の同じ API を呼び出すと、以下の結果が得られます。

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

 `CopyPackageVersions`APIの動作は異なります。デフォルトでは、`CopyPackageVersions`API は、ターゲットリポジトリに格納されているパッケージバージョンのみをコピーします。パッケージバージョンがアップストリームリポジトリに格納されているが、ターゲットリポジトリには保存されていない場合、コピーされません。アップストリームリポジトリにのみ格納されているパッケージのパッケージバージョンを含めるには、APIリクエストの`includeFromUpstream`の値を`true`にセットします。

`CopyPackageVersions`APIの詳細については、[リポジトリ間でのパッケージのコピー](copy-package.md) を参照してください。