コンテナレジストリを構成するためのAPIを記述します。 APIを使用するには、User Access KeyとSecret Access Keyが必要です。 User Access KeyとSecret Access KeyはNHN Cloudコンソールのアカウント > APIセキュリティ設定 ページで作成します。
APIを使用するにはサービスAppKeyが必要です。サービスAppkeyはコンソール上部のURL & Appkey メニューで確認が可能です。 APIドメインは次のとおりです。
リージョン | ドメイン |
---|---|
韓国(パンギョ)リージョン | https://kr1-ncr.api.nhncloudservice.com |
韓国(ピョンチョン)リージョン | https://kr2-ncr.api.nhncloudservice.com |
APIヘッダは次のとおりです。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
X-TC-AUTHENTICATION-ID | Header | String | O | User Access Key |
X-TC-AUTHENTICATION-SECRET | Header | String | X (作成した場合は必須) | Secret Access Key |
すべてのAPIリクエストに 200 OKを返します。詳細なレスポンス結果はレスポンス本文ヘッダを参照します。
名前 | 種類 | 形式 | 説明 |
---|---|---|---|
header | Body | Object | |
header.isSuccessful | Body | Boolean | true:正常 false:エラー |
header.resultCode | Body | Integer | 200:正常 10000以上:エラー |
header.resultMessage | Body | String | "SUCCESS":正常 その他:エラー原因メッセージ |
注意] APIレスポンスにガイドに記載されていないフィールドが表示される場合があります。このようなフィールドはNHN Cloudの内部用途で使用され、事前告知なしに変更される可能性があるため、使用しないでください。
注意]リソースを作成する際に入力しなかったオプションフィールドは、照会時にレスポンス本文に表示されない場合があります。
コンテナレジストリリストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
registries | Body | Array | O | コンテナレジストリリスト |
registries.project_id | Body | Integer | O | コンテナレジストリID |
registries.name | Body | String | O | コンテナレジストリ名 |
registries.creation_time | Body | String | O | 作成時間 |
registries.update_time | Body | String | O | 変更時間 |
registries.repo_count | Body | Integer | O | コンテナレジストリにあるイメージ数 |
registries.metadata | Body | Object map[string]string | O | コンテナレジストリ設定 |
registries.metadata.auto_scan | Body | String | O | イメージをpushする時、自動的にスキャンするかどうか: true/false |
registries.metadata.severity | Body | String | X | 脆弱性の深刻度: critical/medium/high/low/none |
registries.metadata.prevent_vul | Body | String | O | イメージの脆弱性深刻度に応じてpull防止設定を行うかどうか:true/false |
registries.metadata.reuse_sys_cve_allowlist | Body | String | O | 共通CVE許可リストを使用するかどうか:true/false |
registries.cve_allowlist | Body | Object | O | 脆弱性許可リスト |
registries.cve_allowlist.id | Body | Integer | O | 脆弱性許可リストID |
registries.cve_allowlist.items | Body | Object List | O | CVEリスト |
registries.cve_allowlist.items.cve_id | Body | String | X | CVE ID |
registries.registry_id | Body | Integer | O | 0でなければイメージキャッシュタイプ。0は一般タイプ |
registries.usage | Body | Integer | O | コンテナレジストリ使用量 |
registries.uri | Body | String | O | コンテナレジストリアクセスURI |
registries.private_uri | Body | String | O | コンテナレジストリアクセスPrivate URI |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"registries": [
{
"project_id": 2,
"name": "hy",
"creation_time": "2023-03-14T02:41:10.525Z",
"update_time": "2023-03-14T02:41:10.525Z",
"repo_count": 2,
"metadata": {
"auto_scan": "true",
"prevent_vul": "true",
"public": "false",
"retention_id": "1",
"severity": "critical"
},
"cve_allowlist": {
"id": 2,
"project_id": 2,
"items": []
},
"registry_id": 0,
"usage": 57464288,
"uri": "63ae9964-alp-kr1-registry.container.cloud.toastoven.net/hy",
"private_uri": "private-63ae9964-alp-kr1-registry.container.cloud.toastoven.net/hy"
}
]
}
コンテナレジストリ情報を照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryNameOrId | URL | String | O | レジストリ名またはID、名前が数字だけの場合はX-Is-Resource-Name値をtrueに設定 |
X-Is-Resource-Name | Header | String | X | registryNameOrId値の名前かどうか、true/false |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
registry | Body | Object | O | コンテナレジストリ情報 |
registry.project_id | Body | Integer | O | コンテナレジストリID |
registry.name | Body | String | O | コンテナレジストリ名 |
registry.creation_time | Body | String | O | 作成時間 |
registry.update_time | Body | String | O | 変更時間 |
registry.repo_count | Body | Integer | O | コンテナレジストリにあるイメージ数 |
registry.metadata | Body | Object map[string]string | O | コンテナレジストリ設定 |
registry.metadata.auto_scan | Body | String | O | イメージをpushする時、自動的にスキャンするかどうか:true/false |
registry.metadata.severity | Body | String | X | 脆弱性の深刻度: critical/medium/high/low/none |
registry.metadata.prevent_vul | Body | String | O | イメージの脆弱性の深刻度に応じてpull防止設定を行うかどうか:true/false |
registry.metadata.reuse_sys_cve_allowlist | Body | String | O | 共通CVE許可リストを使用するかどうか:true/false |
registry.cve_allowlist | Body | Object | O | 脆弱性許可リスト |
registry.cve_allowlist.id | Body | Integer | O | 脆弱性許可リストID |
registry.cve_allowlist.items | Body | Object List | O | CVEリスト |
registry.cve_allowlist.items.cve_id | Body | String | X | CVE ID |
registry.registry_id | Body | Integer | O | 0でなければイメージキャッシュタイプ。0は一般タイプ |
registry.usage | Body | Integer | O | コンテナレジストリ使用量 |
registry.uri | Body | String | O | コンテナレジストリアクセスURI |
registry.private_uri | Body | String | O | コンテナレジストリアクセスPrivate URI |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"registry": {
"project_id": 2,
"name": "hy",
"creation_time": "2023-03-14T02:41:10.525Z",
"update_time": "2023-03-14T02:41:10.525Z",
"repo_count": 2,
"metadata": {
"auto_scan": "true",
"prevent_vul": "true",
"public": "false",
"retention_id": "1",
"severity": "critical"
},
"cve_allowlist": {
"id": 2,
"project_id": 2,
"items": []
},
"registry_id": 0,
"usage": 57464288,
"uri": "63ae9964-alp-kr1-registry.container.cloud.toastoven.net/hy",
"private_uri": "private-63ae9964-alp-kr1-registry.container.cloud.toastoven.net/hy"
}
}
コンテナレジストリを作成します。
POST /ncr/v2.0/appkeys/{appKey}/registries
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
project_name | Body | String | O | コンテナレジストリ名 |
metadata | Body | Object map[string]string | X | コンテナレジストリ設定 |
metadata.auto_scan | Body | String | X | イメージをpushする時、自動的にスキャンするかどうか:true/false |
metadata.severity | Body | String | X | 脆弱性の深刻度:critical/medium/high/low/none |
metadata.prevent_vul | Body | String | X | イメージの脆弱性の深刻度に応じてpull防止設定を行うかどうか:true/false |
metadata.reuse_sys_cve_allowlist | Body | String | X | 共通CVE許可リストを使用するかどうか:true/false |
registry_id | Body | Integer | X | イメージキャッシュタイプのレジストリ作成時に必要なイメージキャッシュID |
例
{
"project_name": "registry"
}
このAPIは共通情報のみレスポンスします。
コンテナレジストリを削除します。
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryNameOrId | URL | String | O | レジストリ名またはID、名前が数字だけの場合はX-Is-Resource-Name値をtrueに設定 |
X-Is-Resource-Name | Header | String | X | registryNameOrId値の名前かどうか、true/false |
このAPIは共通情報のみレスポンスします。
コンテナレジストリを変更します。
PUT /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryNameOrId | URL | String | O | レジストリ名またはID、名前が数字だけの場合はX-Is-Resource-Name値をtrueに設定 |
X-Is-Resource-Name | Header | String | X | registryNameOrId値の名前かどうか、true/false |
metadata | Body | Object map[string]string | X | コンテナレジストリ設定 |
metadata.auto_scan | Body | String | X | イメージをpushする時、自動的にスキャンするかどうか:true/false |
metadata.severity | Body | String | X | 脆弱性の深刻度:critical/medium/high/low/none |
metadata.prevent_vul | Body | String | X | イメージの脆弱性の深刻度に応じてpull防止設定を行うかどうか:true/false |
metadata.reuse_sys_cve_allowlist | Body | String | X | 共通CVE許可リストを使用するかどうか:true/false |
cve_allowlist | Body | Object | 設定されている時は必須 | 脆弱性許可リスト |
cve_allowlist.items | Body | Object List | 設定されている時は必須 | CVEリスト |
cve_allowlist.items.cve_id | Body | String | 設定されている時は必須 | CVE ID |
例
{
"metadata": {
"auto_scan": "true"
},
"cve_allowlist": {
"items": [
{
"cve_id": "CVE-2011-3374"
}
]
}
}
このAPIは共通情報のみレスポンスします。
イメージ保護ポリシーリストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/immutabletagrules
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
immutable_tag_rules | Body | Array | O | イメージ保護ポリシーリスト |
immutable_tag_rules.id | Body | Integer | O | イメージ保護ポリシーID |
immutable_tag_rules.disabled | Body | Boolean | O | イメージ保護ポリシーを無効にするかどうか |
immutable_tag_rules.scope | Body | Object | O | イメージに対する保護ポリシー情報 |
immutable_tag_rules.scope.include | Body | Boolean | O | イメージに対する保護ポリシーの設定有無 |
immutable_tag_rules.scope.pattern | Body | String | O | 保護対象イメージ |
immutable_tag_rules.tag | Body | Object | O | タグに対する保護ポリシー情報 |
immutable_tag_rules.tag.include | Body | Boolean | O | タグに対する保護ポリシー設定の有無 |
immutable_tag_rules.tag.pattern | Body | String | O | 保護対象タグ |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"immutable_tag_rules": [
{
"id": 1,
"disabled": false,
"scope": {
"include": true,
"pattern": "**"
},
"tag": {
"include": true,
"pattern": "**"
}
}
]
}
イメージ保護ポリシーを作成します。
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/immutabletagrules
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
registryId | URL | String | O | レジストリID |
scope | Body | Object | X | イメージに対する保護ポリシー情報 |
scope.include | Body | Boolean | X | イメージに対する保護ポリシー設定の有無 |
scope.pattern | Body | String | X | 保護対象イメージ 全体イメージ対象: ** 入力 |
tag | Body | Object | X | タグに対する保護ポリシー情報 |
tag.include | Body | Boolean | X | タグに対する保護ポリシー設定の有無 |
tag.pattern | Body | String | X | 保護対象タグ 全体タグ対象:** 入力 |
例
{
"scope": {
"include": true,
"pattern": "test"
}
}
このAPIは共通情報のみレスポンスします。
イメージ保護ポリシーを削除します。
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/immutabletagrules/{rule_id}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
rule_id | URL | String | O | イメージ保護ポリシーID |
このAPIは共通情報のみレスポンスします。
イメージ保護ポリシーを変更します。
PUT /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/immutabletagrules/{rule_id}
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
rule_id | URL | String | O | イメージ保護ポリシーID |
disabled | Body | Boolean | X | イメージ保護ポリシーを無効化にするかどうか |
scope | Body | Object | O | イメージに対する保護ポリシー情報 |
scope.include | Body | Boolean | O | イメージに対する保護ポリシー設定の有無 |
scope.pattern | Body | String | O | 保護対象イメージ |
tag | Body | Object | O | タグに対する保護ポリシー情報 |
tag.include | Body | Boolean | O | タグに対する保護ポリシー設定の有無 |
tag.pattern | Body | String | O | 保護対象タグ |
例
{
"disabled": true,
"scope": {
"include": true,
"pattern": "test"
},
"tag": {
"include": false,
"pattern": "**"
}
}
このAPIは共通情報のみレスポンスします。
イメージクリーンアップポリシーリストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
retention_rules | Body | Array | O | イメージクリーンアップポリシーリスト |
retention_rules.id | Body | Integer | O | イメージクリーンアップポリシーID |
retention_rules.disabled | Body | Boolean | O | イメージクリーンアップポリシーを無効にするかどうか |
retention_rules.parameters | Body | Object map | O | クリーンアップポリシー設定 |
retention_rules.parameters.always | Body | Integer | X | 常にn個のアーティファクトのみ保管 |
retention_rules.parameters.latest_pulled_n_images | Body | Integer | X | 直近にPullしたn個のアーティファクトのみ保管 |
retention_rules.parameters.latest_pushed_n_images | Body | Integer | X | 直近にPushしたn個のアーティファクトのみ保管 |
retention_rules.parameters.n_days_since_last_pull | Body | Integer | X | Pushした日付がn日のアーティファクトのみ保管 |
retention_rules.parameters.n_days_since_last_push | Body | Integer | X | Pullした日付がnのアーティファクトのみ保管 |
retention_rules.tag | Body | Object | O | タグに対するクリーンアップポリシー情報 |
retention_rules.tag.include | Body | Boolean | O | タグに対するクリーンアップポリシー設定の有無 |
retention_rules.tag.pattern | Body | String | O | クリーンアップ対象タグ |
retention_rules.tag.untagged | Body | Boolean | O | タグが付けられていないアーティファクトを含めるかどうか |
retention_rules.scope | Body | Object | O | イメージに対するクリーンアップポリシー情報 |
retention_rules.scope.include | Body | Boolean | O | イメージに対するクリーンアップポリシー設定の有無 |
retention_rules.scope.pattern | Body | String | O | クリーンアップ対象イメージ |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"retention_rules": [
{
"id": 1,
"disabled": false,
"parameters": {
"always": -1
},
"tag": {
"include": true,
"pattern": "**",
"untagged": false
},
"scope": {
"include": true,
"pattern": "**"
}
}
]
}
イメージクリーンアップポリシーを作成します。
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
tag | Body | Object | X | タグに対するクリーンアップポリシー情報 |
tag.include | Body | Boolean | X | タグに対するクリーンアップポリシー設定の有無 |
tag.pattern | Body | String | X | クリーンアップ対象タグ 全体タグ対象:** 入力 |
tag.untagged | Body | Boolean | X | タグが付けられていないアーティファクトを含めるかどうか |
scope | Body | Object | X | イメージに対するクリーンアップポリシー情報 |
scope.include | Body | Boolean | X | イメージに対するクリーンアップポリシー設定の有無 |
scope.pattern | Body | String | X | クリーンアップ対象イメージ 全体イメージ対象:** 入力 |
disabled | Body | Boolean | X | イメージクリーンアップポリシーを無効にするかどうか 未入力時は無効(false)設定 |
parameters | Body | Object map | O | クリーンアップポリシー設定 |
parameters.always | Body | Integer | X | 常にn個のアーティファクトのみ保管 |
parameters.latest_pulled_n_images | Body | Integer | X | 直近にPullしたn個のアーティファクトのみ保管 |
parameters.latest_pushed_n_images | Body | Integer | X | 直近にPushしたn個のアーティファクトのみ保管 |
parameters.n_days_since_last_pull | Body | Integer | X | Pushした日付がn日のアーティファクトのみ保管 |
parameters.n_days_since_last_push | Body | Integer | X | Pullした日付がn日のアーティファクトのみ保管 |
例
{
"scope": {
"include": true,
"pattern": "test"
},
"parameters": {
"latest_pulled_n_images": 2
}
}
このAPIは共通情報のみレスポンスします。
イメージ保護ポリシーを削除します。
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
id | Query | Integer | O | イメージクリーンアップポリシーID |
このAPIは共通情報のみレスポンスします。
イメージ保護ポリシーを変更します。
PUT /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/{rule_id}
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
rule_id | URL | String | O | イメージクリーンアップポリシーID |
disabled | Body | Boolean | X | イメージクリーンアップポリシーを無効にするかどうか |
tag | Body | Object | O | タグに対するクリーンアップポリシー情報 |
tag.include | Body | Boolean | O | タグに対するクリーンアップポリシー設定の有無 |
tag.pattern | Body | String | O | クリーンアップ対象タグ |
tag.untagged | Body | Boolean | O | タグが付けられていないアーティファクト含めるかどうか |
scope | Body | Object | O | イメージに対するクリーンアップポリシー情報 |
scope.include | Body | Boolean | O | イメージに対するクリーンアップポリシー設定の有無 |
scope.pattern | Body | String | O | クリーンアップ対象イメージ |
parameters | Body | Object map | O | クリーンアップポリシー設定 |
parameters.always | Body | Integer | 設定されている場合は必須 | 常にn個のアーティファクトのみ保管 |
parameters.latest_pulled_n_images | Body | Integer | 設定されている場合は必須 | 直近にPullしたn個のアーティファクトのみ保管 |
parameters.latest_pushed_n_images | Body | Integer | 設定されている場合は必須 | 直近にPushしたn個のアーティファクトのみ保管 |
parameters.n_days_since_last_pull | Body | Integer | 設定されている場合は必須 | Pushした日付がn日のアーティファクトのみ保管 |
parameters.n_days_since_last_push | Body | Integer | 設定されている場合は必須 | Pullした日付がn日のアーティファクトのみ保管 |
例
{
"disabled": true,
"scope": {
"include": true,
"pattern": "test"
},
"tag": {
"include": false,
"pattern": "**",
"untagged": false
},
"parameters": {
"latest_pulled_n_images": 2
}
}
このAPIは共通情報のみレスポンスします。
イメージクリーンアップヒストリーリストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/executions
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
executions | Body | Array | O | イメージクリーンアップヒストリーリスト |
executions.id | Body | Integer | O | イメージクリーンアップヒストリーID |
executions.dry_run | Body | Boolean | O | テスト実行を行うかどうか |
executions.trigger | Body | String | O | イメージクリーンアップ実行方式 |
executions.start_time | Body | String | O | イメージクリーンアップ開始時間 |
executions.end_time | Body | String | O | イメージクリーンアップ終了時間 |
executions.status | Body | String | O | イメージクリーンアップ状態 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"executions": [
{
"id": 350,
"dry_run": false,
"trigger": "MANUAL",
"start_time": "2023-03-27T17:34:53Z",
"end_time": "2023-03-27T17:34:54Z",
"status": "Success"
}
]
}
イメージクリーンアップヒストリーを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/executions/{executionId}/tasks
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
executionId | URL | String | O | イメージクリーンアップヒストリーID |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
tasks | Body | Array | O | タスクリスト |
tasks.id | Body | Integer | O | タスクID |
tasks.repository | Body | String | O | クリーンアップされたイメージ名 |
tasks.retained | Body | Integer | O | イメージ保護設定の有無 |
tasks.total | Body | Integer | O | クリーンアップされた数 |
tasks.start_time | Body | String | O | クリーンアップ開始時間 |
tasks.end_time | Body | String | O | クリーンアップ終了時間 |
tasks.status | Body | String | O | タスク状態 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"tasks": [
{
"id": 350,
"repository": "busybox",
"retained": 1,
"total": 1,
"start_time": "2023-03-27T17:34:53Z",
"end_time": "2023-03-27T17:34:54Z",
"status": "Success"
}
]
}
イメージクリーンアップヒストリーログを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/executions/{executionId}/tasks/{taskId}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
executionId | URL | String | O | イメージクリーンアップヒストリーID |
taskId | URL | String | O | イメージクリーンアップタスクID |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
tasks | Body | String | O | イメージクリーンアップログ |
イメージクリーンアップポリシーを実行します。
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/executions
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
dry_run | Body | Boolean | X | テスト実行有無 |
このAPIは共通情報のみレスポンスします。
イメージクリーンアップ周期を照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/schedule
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
trigger | Body | Object | O | イメージクリーンアップ周期情報 |
trigger.kind | Body | String | O | イメージクリーンアップタイプ |
trigger.settings | Body | Object | O | イメージクリーンアップ周期設定 |
trigger.settings.cron | Body | String | O | イメージクリーンアップ周期 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"trigger": {
"kind": "Schedule",
"settings": {
"cron": ""
}
}
}
イメージクリーンアップ周期を作成します。
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/schedule
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryId | URL | String | O | レジストリID |
settings | Body | Object | O | イメージクリーンアップ周期設定 |
settings.cron | Body | String | O | イメージクリーンアップ周期 |
例
{
"settings": {
"cron": "0 0 * * 0"
}
}
このAPIは共通情報のみレスポンスします。
Webフックリストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/webhook/policies
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryNameOrId | URL | String | O | レジストリ名またはID。名前が数字だけの場合はX-Is-Resource-Name値をtrueに設定 |
X-Is-Resource-Name | Header | String | X | registryNameOrId値が名前かどうか。true/false |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
policies | Body | Array | O | Webフックリスト |
policies.creation_time | Body | String | O | Webフック作成時間 |
policies.enabled | Body | Boolean | O | Webフックが有効かどうか |
policies.event_types | Body | String List | O | Webフックイベントタイプ、PUSH_ARTIFACT/PULL_ARTIFACT/DELETE_ARTIFACT |
policies.id | Body | Integer | O | WebフックID |
policies.name | Body | String | O | Webフック名 |
policies.project_id | Body | Integer | O | レジストリID |
policies.targets | Body | Object List | O | Webフック情報 |
policies.targets.address | Body | String | O | Webフックエンドポイント |
policies.targets.type | Body | String | O | Webフック通知タイプ、http/slack |
policies.targets.auth_header | Body | String | X | 認証ヘッダ |
policies.targets.skip_cert_verify | Body | Boolean | X | 証明書検証有無 |
policies.update_time | Body | String | O | Webフック変更時間 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"policies": [
{
"creation_time": "2023-03-27T22:53:16.719Z",
"enabled": true,
"event_types": [
"PUSH_ARTIFACT",
"PULL_ARTIFACT",
"DELETE_ARTIFACT"
],
"id": 1,
"name": "test",
"project_id": 2,
"targets": [
{
"address": "https://192.168.0.1",
"skip_cert_verify": true,
"type": "http"
}
],
"update_time": "2023-03-27T22:53:16.719Z"
}
]
}
Webフックを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/webhook/policies/{policyId}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryNameOrId | URL | String | O | レジストリ名またはID。名前が数字だけの場合はX-Is-Resource-Name値をtrueに設定 |
X-Is-Resource-Name | Header | String | X | registryNameOrId値が名前かどうか。true/false |
policyId | URL | String | O | WebフックID |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
policy | Body | Object | O | Webフック情報 |
policy.creation_time | Body | String | O | Webフック作成時間 |
policy.enabled | Body | Boolean | O | Webフックが有効かどうか |
policy.event_types | Body | String List | O | Webフックイベントタイプ、PUSH_ARTIFACT/PULL_ARTIFACT/DELETE_ARTIFACT |
policy.id | Body | Integer | O | WebフックID |
policy.name | Body | String | O | Webフック名 |
policy.project_id | Body | Integer | O | レジストリID |
policy.targets | Body | Object List | O | Webフック情報 |
policy.targets.address | Body | String | O | Webフックエンドポイント |
policy.targets.type | Body | String | O | Webフック通知タイプ、http/slack |
policy.targets.auth_header | Body | String | X | 認証ヘッダ |
policy.targets.skip_cert_verify | Body | Boolean | X | 証明書検証有無 |
policy.update_time | Body | String | O | Webフック変更時間 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"policy": {
"creation_time": "2023-03-27T22:53:16.719Z",
"enabled": true,
"event_types": [
"PUSH_ARTIFACT",
"PULL_ARTIFACT",
"DELETE_ARTIFACT"
],
"id": 1,
"name": "test",
"project_id": 2,
"targets": [
{
"address": "https://192.168.0.1",
"skip_cert_verify": true,
"type": "http"
}
],
"update_time": "2023-03-27T22:53:16.719Z"
}
}
Webフックを作成します。
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/webhook/policies
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryNameOrId | URL | String | O | レジストリ名またはID。名前が数字だけの場合はX-Is-Resource-Name値をtrueに設定 |
X-Is-Resource-Name | Header | String | X | registryNameOrId値が名前かどうか。true/false |
enabled | Body | Boolean | X | Webフックが有効かどうか 未入力時false設定 |
event_types | Body | String List | O | Webフックイベントタイプ、PUSH_ARTIFACT/PULL_ARTIFACT/DELETE_ARTIFACT |
name | Body | String | X | Webフック名 |
targets | Body | Object List | O | Webフック情報 |
targets.address | Body | String | O | Webフックエンドポイント |
targets.type | Body | String | O | Webフック通知タイプ、http/slack |
targets.auth_header | Body | String | X | 認証ヘッダ |
targets.skip_cert_verify | Body | Boolean | X | 証明書検証有無 |
例
{
"event_types": [
"PUSH_ARTIFACT",
"PULL_ARTIFACT",
"DELETE_ARTIFACT"
],
"name": "test",
"targets": [
{
"address":"https://192.168.1.1:8080",
"skip_cert_verify":true,
"type":"http"
}
]
}
このAPIは共通情報のみレスポンスします。
Webフックを削除します。
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/webhook/policies/{policyId}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryNameOrId | URL | String | O | レジストリ名またはID。名前が数字だけの場合はX-Is-Resource-Name値をtrueに設定 |
X-Is-Resource-Name | Header | String | X | registryNameOrId値が名前かどうか。true/false |
policyId | URL | String | O | WebフックID |
このAPIは共通情報のみレスポンスします。
Webフックを変更します。
PUT /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/webhook/policies/{policyId}
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryNameOrId | URL | String | O | レジストリ名またはID。名前が数字だけの場合はX-Is-Resource-Name値をtrueに設定 |
X-Is-Resource-Name | Header | String | X | registryNameOrId値が名前かどうか。true/false |
policyId | URL | String | O | WebフックID |
enabled | Body | Boolean | X | Webフックが有効かどうか |
event_types | Body | String List | O | Webフックイベントタイプ、PUSH_ARTIFACT/PULL_ARTIFACT/DELETE_ARTIFACT |
name | Body | String | X | Webフック名 |
targets | Body | Object List | O | Webフック情報 |
targets.address | Body | String | O | Webフックエンドポイント |
targets.type | Body | String | O | Webフック通知タイプ、http/slack |
targets.auth_header | Body | String | X | 認証ヘッダ |
targets.skip_cert_verify | Body | Boolean | X | 証明書検証有無 |
例
{
"event_types": [
"PUSH_ARTIFACT"
],
"targets": [
{
"address":"https://192.168.1.1:8080",
"skip_cert_verify":true,
"type":"http"
}
]
}
このAPIは共通情報のみレスポンスします。
コンテナイメージリストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryName | URL | String | O | レジストリ名 |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
images | Body | Array | O | コンテナイメージリスト |
images.id | Body | Integer | O | コンテナイメージID |
images.name | Body | String | O | コンテナイメージ名 |
images.project_id | Body | Integer | O | レジストリID |
images.pull_count | Body | Integer | O | コンテナイメージpull回数 |
images.artifact_count | Body | Integer | O | コンテナイメージアーティファクト数 |
images.creation_time | Body | String | O | コンテナイメージ作成時間 |
images.update_time | Body | String | O | コンテナイメージ変更時間 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"images": [
{
"id": 1,
"name": "hy/busybox",
"project_id": 2,
"description": "",
"pull_count": 8,
"artifact_count": 1,
"creation_time": "2023-03-27T01:55:13.176Z",
"update_time": "2023-03-27T02:02:07.764Z"
}
]
}
コンテナイメージを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryNameOrId | URL | String | O | レジストリ名またはID |
imageName | URL | String | O | コンテナイメージ名 |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
image | Body | Object | O | コンテナイメージリスト |
image.id | Body | Integer | O | コンテナイメージID |
image.name | Body | String | O | コンテナイメージ名 |
image.project_id | Body | Integer | O | レジストリID |
image.pull_count | Body | Integer | O | コンテナイメージpull回数 |
image.artifact_count | Body | Integer | O | コンテナイメージアーティファクト数 |
image.creation_time | Body | String | O | コンテナイメージ作成時間 |
image.update_time | Body | String | O | コンテナイメージ変更時間 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"image": {
"id": 1,
"name": "hy/busybox",
"project_id": 2,
"description": "",
"pull_count": 8,
"artifact_count": 1,
"creation_time": "2023-03-27T01:55:13.176Z",
"update_time": "2023-03-27T02:02:07.764Z"
}
}
コンテナイメージを削除します。
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryName | URL | String | O | レジストリ名 |
imageName | URL | String | O | コンテナイメージ名 |
このAPIは共通情報のみレスポンスします。
アーティファクトリストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/images/{imageName}/artifacts
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryNameOrId | URL | String | O | レジストリ名またはID |
imageName | URL | String | O | コンテナイメージ名 |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
with_scan_overview | Query | String | X | 脆弱性情報を照会するかどうか |
with_accessory | Query | String | X | 認証情報を照会するかどうか |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
artifacts | Body | Array | O | アーティファクトリスト |
artifacts.digest | Body | String | O | アーティファクトダイジェスト |
artifacts.extra_attrs | Body | Object | O | アーティファクト追加情報 |
artifacts.scan_overview | Body | Object | X | アーティファクトスキャン情報 |
artifacts.accessories | Body | Object | X | アーティファクト認証情報 |
artifacts.manifest_media_type | Body | String | O | アーティファクトタイプ |
artifacts.media_type | Body | String | O | アーティファクトタイプ |
artifacts.size | Body | Integer | O | アーティファクトサイズ |
artifacts.pull_time | Body | String | O | アーティファクトpull時間 |
artifacts.push_time | Body | String | O | アーティファクトpush時間 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"artifacts": [
{
"digest": "sha256:ba7000206594c2d72c3ab550453004c0dc50961157e5ebd2fb8ea1890099d02d",
"extra_attrs": {
"architecture": "arm64",
"author": "",
"config": {
"Cmd": [
"sh"
],
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
]
},
"created": "2023-03-17T01:46:42.521879748Z",
"os": "linux"
},
"icon": "sha256:0048162a053eef4d4ce3fe7518615bef084403614f8bca43b40ae2e762e11e06",
"id": 1,
"labels": null,
"manifest_media_type": "application/vnd.docker.distribution.manifest.v2+json",
"media_type": "application/vnd.docker.container.image.v1+json",
"project_id": 2,
"pull_time": "2023-03-27T02:02:01.703Z",
"push_time": "2023-03-27T01:55:14.082Z",
"references": null,
"repository_id": 1,
"size": 2003144,
"tags": [
{
"artifact_id": 1,
"id": 1,
"immutable": false,
"name": "latest",
"pull_time": "2023-03-27T02:02:01.703Z",
"push_time": "2023-03-27T01:55:14.642Z",
"repository_id": 1,
"signed": false
}
],
"type": "IMAGE",
"accessories": null
}
]
}
アーティファクトを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryName | URL | String | O | レジストリ名 |
imageName | URL | String | O | コンテナイメージ名 |
reference | URL | String | O | アーティファクト名 |
with_scan_overview | Query | String | X | 脆弱性情報を照会するかどうか |
with_accessory | Query | String | X | 認証情報を照会するかどうか |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
artifact | Body | Object | O | アーティファクト情報 |
artifact.digest | Body | String | O | アーティファクトダイジェスト |
artifact.extra_attrs | Body | Object | O | アーティファクト追加情報 |
artifact.scan_overview | Body | Object | X | アーティファクトスキャン情報 |
artifact.accessories | Body | Object | X | アーティファクト認証情報 |
artifact.manifest_media_type | Body | String | O | アーティファクトタイプ |
artifact.media_type | Body | String | O | アーティファクトタイプ |
artifact.size | Body | Integer | O | アーティファクトサイズ |
artifact.pull_time | Body | String | O | アーティファクトpull時間 |
artifact.push_time | Body | String | O | アーティファクトpush時間 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"artifact": {
"digest": "sha256:ba7000206594c2d72c3ab550453004c0dc50961157e5ebd2fb8ea1890099d02d",
"extra_attrs": {
"architecture": "arm64",
"author": "",
"config": {
"Cmd": [
"sh"
],
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
]
},
"created": "2023-03-17T01:46:42.521879748Z",
"os": "linux"
},
"icon": "sha256:0048162a053eef4d4ce3fe7518615bef084403614f8bca43b40ae2e762e11e06",
"id": 1,
"labels": null,
"manifest_media_type": "application/vnd.docker.distribution.manifest.v2+json",
"media_type": "application/vnd.docker.container.image.v1+json",
"project_id": 2,
"pull_time": "2023-03-27T02:02:01.703Z",
"push_time": "2023-03-27T01:55:14.082Z",
"references": null,
"repository_id": 1,
"size": 2003144,
"tags": [
{
"artifact_id": 1,
"id": 1,
"immutable": false,
"name": "latest",
"pull_time": "2023-03-27T02:02:01.703Z",
"push_time": "2023-03-27T01:55:14.642Z",
"repository_id": 1,
"signed": false
}
],
"type": "IMAGE",
"accessories": null
}
}
アーティファクトを削除します。
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryName | URL | String | O | レジストリ名 |
imageName | URL | String | O | コンテナイメージ名 |
reference | URL | String | O | アーティファクト名 |
このAPIは共通情報のみレスポンスします。
アーティファクトタグリストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}/tags
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryName | URL | String | O | レジストリ名 |
imageName | URL | String | O | コンテナイメージ名 |
reference | URL | String | O | アーティファクト名 |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
tags | Body | Array | O | アーティファクトタグリスト |
tags.id | Body | Integer | O | アーティファクトタグID |
tags.name | Body | String | O | アーティファクトタグ名 |
tags.pull_time | Body | String | O | アーティファクトタグpull時間 |
tags.push_time | Body | String | O | アーティファクトタグpush時間 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"tags": [
{
"artifact_id": 1,
"id": 1,
"immutable": false,
"name": "latest",
"pull_time": "2023-03-27T02:02:01.703Z",
"push_time": "2023-03-27T01:55:14.642Z",
"repository_id": 1,
"signed": false
}
]
}
アーティファクトタグを作成します。
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}/tags
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryName | URL | String | O | レジストリ名 |
imageName | URL | String | O | コンテナイメージ名 |
reference | URL | String | O | アーティファクト名 |
name | Body | String | O | アーティファクトタグ名 |
例
{
"name": "test"
}
このAPIは共通情報のみレスポンスします。
アーティファクトタグを削除します。
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}/tags/{tagName}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryName | URL | String | O | レジストリ名 |
imageName | URL | String | O | コンテナイメージ名 |
reference | URL | String | O | アーティファクト名 |
tagName | URL | String | O | アーティファクトタグ名 |
このAPIは共通情報のみレスポンスします。
アーティファクト脆弱性情報を照会します。
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}/additions/vulnerabilities
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryName | URL | String | O | レジストリ名 |
imageName | URL | String | O | コンテナイメージ名 |
reference | URL | String | O | アーティファクト名 |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
vulnerability | Body | Object | O | 脆弱性情報 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"vulnerability": {
"application/vnd.security.vulnerability.report; version=1.1": {
"generated_at": "2023-03-30T00:00:17.415030483Z",
"scanner": {
"name": "Trivy",
"vendor": "Aqua Security",
"version": "v0.35.0"
},
"severity": "Unknown",
"vulnerabilities": [{
"id": "CVE-2011-3374",
"package": "apt",
"version": "2.2.4",
"fix_version": "",
"severity": "Low",
"description": "It was found that apt-key in apt, all versions, do not correctly validate gpg keys with the master keyring, leading to a potential man-in-the-middle attack.",
"links": [
"https://avd.aquasec.com/nvd/cve-2011-3374"
],
"artifact_digests": [
"sha256:d77ece68485895479a344efa4934f80ad07a2814c3473d8580d3f31b35a615df"
],
"preferred_cvss": {
"score_v3": null,
"score_v2": null,
"vector_v3": "",
"vector_v2": ""
},
"cwe_ids": [
"CWE-347"
],
"vendor_attributes": {
"CVSS": {
"nvd": {
"V2Score": 4.3,
"V2Vector": "AV:N/AC:M/Au:N/C:N/I:P/A:N",
"V3Score": 3.7,
"V3Vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
}
}
}
}
]
}
}
}
アーティファクトをスキャンします。
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}/scan
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
registryName | URL | String | O | レジストリ名 |
imageName | URL | String | O | コンテナイメージ名 |
reference | URL | String | O | アーティファクト名 |
このAPIは共通情報のみレスポンスします。
複製リストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/replications/policies
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
policies | Body | Array | O | 複製リスト |
policies.filters | Body | Object List | O | 複製対象設定情報 |
policies.filters.type | Body | String | O | 複製対象タイプ |
policies.filters.value | Body | String | O | 複製対象フィルタ値 |
policies.dest_registry | Body | Object | O | 対象レジストリ情報 |
policies.dest_registsry.name | Body | String | O | 対象リージョン名 |
policies.dest_registsry.id | Body | Integer | X | 対象リージョンID、値が存在する場合はPush複製 |
policies.creation_time | Body | String | O | 作成時間 |
policies.src_registry | Body | Object | O | ソースレジストリ情報 |
policies.src_registry.name | Body | String | O | ソースリージョン名 |
policies.src_registry.id | Body | Integer | X | ソースリージョンID、値が存在する場合はPull複製 |
policies.trigger | Body | Object | O | 複製実行方式 |
policies.trigger.type | Body | String | O | manual(設定しない)/scheduled(ユーザー設定)/event_based(イベントベース) |
policies.trigger.trigger_settings | Body | Object | X | 複製実行周期、複製実行方式がscheduledの場合は必須 |
policies.trigger.trigger_settings.cron | Body | String | X | 複製実行周期(Unix cron式使用) |
policies.dest_namespace | Body | String | X | 対象レジストリ |
policies.id | Body | Integer | O | 複製ID |
policies.enabled | Body | Boolean | O | 複製が有効かどうか |
policies.name | Body | String | O | 複製名 |
policies.dest_project_id | Body | String | O | 複製対象プロジェクト |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"policies": [
{
"update_time": "2023-03-27T23:59:49.381Z",
"dest_namespace_replace_count": 1,
"filters": [
{
"type": "resource",
"value": "image"
},
{
"type": "name",
"value": "**"
},
{
"type": "tag",
"value": "image"
}
],
"dest_registry": {
"status": "healthy",
"credential": {
"access_key": "admin",
"access_secret": "*****",
"type": "basic"
},
"update_time": "2023-03-27T23:59:49.378Z",
"name": "KR2",
"url": "https://bddcecbd-alp-kr2-registry.container.cloud.toastoven.net",
"insecure": true,
"creation_time": "2023-03-14T02:41:04.893Z",
"type": "harbor",
"id": 1,
"description": "replication"
},
"creation_time": "2023-03-27T23:59:49.112Z",
"src_registry": {
"status": "healthy",
"credential": {
"access_secret": "*****",
"type": "secret"
},
"update_time": "",
"name": "Local",
"url": "http://harbor-63ae9964-core:80",
"insecure": true,
"creation_time": "0001-01-01T00:00:00Z",
"type": "harbor"
},
"trigger": {
"type": "event_based",
"trigger_settings": {}
},
"id": 3,
"enabled": true,
"name": "test",
"dest_project_id": "8x5SEWjM"
}
]
}
複製を照会します。
GET /ncr/v2.0/appkeys/{appKey}/replications/policies/{policyId}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
policyId | URL | String | O | 複製ID |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
policy | Body | Object | O | 複製情報 |
policy.filters | Body | Object List | O | 複製対象設定情報 |
policy.filters.type | Body | String | O | 複製対象タイプ |
policy.filters.value | Body | String | O | 複製対象フィルタ値 |
policy.dest_registry | Body | Object | O | 対象レジストリ情報 |
policy.dest_registsry.name | Body | String | O | 対象リージョン名 |
policy.dest_registsry.id | Body | Integer | X | 対象リージョンID、値が存在する場合はPush複製 |
policy.creation_time | Body | String | O | 作成時間 |
policy.src_registry | Body | Object | O | ソースレジストリ情報 |
policy.src_registry.name | Body | String | O | ソースリージョン名 |
policy.src_registry.id | Body | Integer | X | ソースリージョンID、値が存在する場合はPull複製 |
policy.trigger | Body | Object | O | 複製実行方式 |
policy.trigger.type | Body | String | O | manual(設定しない)/scheduled(ユーザー設定)/event_based(イベントベース) |
policy.trigger.trigger_settings | Body | Object | X | 複製実行周期、複製実行方式がscheduledの場合は必須 |
policy.trigger.trigger_settings.cron | Body | String | X | 複製実行周期(Unix cron式使用) |
policy.dest_namespace | Body | String | X | 対象レジストリ |
policy.id | Body | Integer | O | 複製ID |
policy.enabled | Body | Boolean | O | 複製が有効かどうか |
policy.name | Body | String | O | 複製名 |
policy.dest_project_id | Body | String | O | 複製対象プロジェクト |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"policy": {
"update_time": "2023-03-30T02:34:23.501Z",
"dest_namespace_replace_count": 1,
"filters": [
{
"type": "resource",
"value": "image"
},
{
"type": "name",
"value": "**"
},
{
"type": "tag",
"value": "image"
}
],
"dest_registry": {
"status": "healthy",
"credential": {
"access_key": "admin",
"access_secret": "*****",
"type": "basic"
},
"update_time": "2023-03-30T02:34:23.496Z",
"name": "KR2",
"url": "https://bddcecbd-alp-kr2-registry.container.cloud.toastoven.net",
"insecure": true,
"creation_time": "2023-03-14T02:41:04.893Z",
"type": "harbor",
"id": 1,
"description": "replication"
},
"creation_time": "2023-03-30T02:34:23.154Z",
"src_registry": {
"status": "healthy",
"credential": {
"access_secret": "*****",
"type": "secret"
},
"update_time": "",
"name": "Local",
"url": "http://harbor-63ae9964-core:80",
"insecure": true,
"creation_time": "0001-01-01T00:00:00Z",
"type": "harbor"
},
"trigger": {
"type": "event_based",
"trigger_settings": {}
},
"id": 12,
"enabled": true,
"name": "test",
"dest_project_id": "8x5SEWjM"
}
}
複製を作成します。
POST /ncr/v2.0/appkeys/{appKey}/replications/policies
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
dest_registry | Body | Object | X | Push複製の対象レジストリ情報 |
dest_registry.name | Body | String | O | Push複製の対象リージョン名、KR2 |
dest_registry.id | Body | Integer | O | Push複製の対象リージョンID、1 |
src_registry | Body | Object | X | Pull複製の対象レジストリ情報 |
src_registry.name | Body | String | O | Pull複製の対象リージョン名、KR2 |
src_registry.id | Body | Integer | O | Pull複製の対象リージョンID, 1 |
trigger | Body | Object | O | 複製実行方式 |
trigger.type | Body | String | O | Push複製、manual(設定しない)/scheduled(ユーザー設定)/event_based(イベントベース) Pull複製、manual/scheduled |
trigger.trigger_settings | Body | Object | X | 複製実行周期、複製実行方式がscheduledの場合は必須設定 |
trigger.trigger_settings.cron | Body | String | X | 複製実行周期設定(Unix cron式使用) |
dest_namespace | Body | String | X | 対象レジストリ |
filters | Body | Object List | X | 複製する対象設定情報、全体を対象にする場合は設定しない |
filters.type | Body | String | X | 複製する対象設定、name(イメージ名)/tag(タグ名) |
filters.value | Body | String | X | フィルタリングする値 |
filters.decoration | Body | String | X | フィルタタイプがtagの場合は設定、matches(該当する)/excludes(除外した) |
name | Body | String | O | 複製名 |
dest_project_id | Body | String | X | 複製対象プロジェクト |
例
{
"name": "test",
"dest_registry": {
"name": "KR2",
"id":1
},
"trigger": {
"type":"event_based"
}
}
このAPIは共通情報のみレスポンスします。
複製を削除します。
DELETE /ncr/v2.0/appkeys/{appKey}/replications/policies/{policyId}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
policyId | URL | String | O | 複製ID |
このAPIは共通情報のみレスポンスします。
複製を変更します。
PUT /ncr/v2.0/appkeys/{appKey}/replications/policies/{policyId}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
policyId | URL | String | O | 複製ID |
dest_registry | Body | Object | X | Push複製の対象レジストリ情報 |
dest_registry.name | Body | String | X | Push複製の対象リージョン名、KR2 |
dest_registry.id | Body | Integer | X | Push複製の対象リージョンID, 1 |
src_registry | Body | Object | X | Pull複製の対象レジストリ情報 |
src_registry.name | Body | String | X | Pull複製の対象リージョン名、KR2 |
src_registry.id | Body | Integer | X | Pull複製の対象リージョンID、1 |
trigger | Body | Object | O | 複製実行方式 |
trigger.type | Body | String | O | Push複製、manual(設定しない)/scheduled(ユーザー設定)/event_based(イベントベース) Pull複製、manual/scheduled |
trigger.trigger_settings | Body | Object | 設定されている場合は必須 | 複製実行周期、複製実行方式がscheduledの場合は必須設定 |
trigger.trigger_settings.cron | Body | String | 設定されている場合は必須 | 複製実行周期設定(Unix cron式使用) |
dest_namespace | Body | String | 設定されている場合は必須 | 対象レジストリ |
filters | Body | Object List | 設定されている場合は必須 | 複製する対象設定情報、全体を対象にする場合は設定しない |
filters.type | Body | String | 設定されている場合は必須 | 複製する対象設定、name(イメージ名)/tag(タグ名) |
filters.value | Body | String | 設定されている場合は必須 | フィルタリングする値 |
filters.decoration | Body | String | 設定されている場合は必須 | フィルタタイプがtagの場合は設定、matches(該当する)/excludes(除外した) |
name | Body | String | O | 複製名 |
dest_project_id | Body | String | X | 複製対象プロジェクト |
例
{
"name": "test",
"dest_registry": {
"name": "KR2",
"id":1
},
"trigger": {
"type":"event_based"
}
}
このAPIは共通情報のみレスポンスします。
複製ヒストリーリストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/replications/executions
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
executions | Body | Array | O | 複製ヒストリーリスト |
executions.status | Body | String | O | 複製状態 |
executions.status_text | Body | String | O | 複製状態 |
executions.trigger | Body | String | O | 複製実行方式 |
executions.start_time | Body | String | O | 複製開始時間 |
executions.end_time | Body | String | O | 複製終了時間 |
executions.id | Body | Integer | O | 複製ヒストリーID |
executions.policy_id | Body | Integer | O | 複製ID |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"executions": [
{
"status": "Succeed",
"status_text": "no resources need to be replicated",
"trigger": "scheduled",
"start_time": "2023-03-29T09:39:59.09Z",
"end_time": "2023-03-29T09:39:59.373Z",
"id": 845,
"policy_id": 9
}
]
}
複製ヒストリーを照会します。
GET /ncr/v2.0/appkeys/{appKey}/replications/executions/{executionId}/tasks
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
executionId | URL | String | O | 複製ヒストリーID |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
tasks | Body | Array | O | 複製ヒストリー詳細情報 |
tasks.status | Body | String | O | 複製状態 |
tasks.start_time | Body | String | O | 複製開始時間 |
tasks.dst_resource | Body | String | O | 対象リソース |
tasks.src_resource | Body | String | O | ソースリソース |
tasks.id | Body | Integer | O | Task ID |
tasks.execution_id | Body | Integer | O | 複製ヒストリーID |
tasks.end_time | Body | String | O | 複製終了時間 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"tasks": [
{
"status": "Succeed",
"job_id": "e71b392a391027ced941c4bd",
"start_time": "2023-03-30T08:25:21Z",
"dst_resource": "hy/nginx [1 item(s) in total]",
"src_resource": "hy/nginx [1 item(s) in total]",
"resource_type": "artifact",
"operation": "copy",
"id": 430,
"execution_id": 894,
"end_time": "2023-03-30T08:25:46Z"
}
]
}
複製ヒストリーログを照会します。
GET /ncr/v2.0/appkeys/{appKey}/replications/executions/{executionId}/tasks/{taskId}/log
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
executionId | URL | String | O | 複製ヒストリーID |
taskId | URL | String | O | 複製ヒストリーtask ID |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
log | Body | String | O | 複製ヒストリーログ |
複製を実行します。
POST /ncr/v2.0/appkeys/{appKey}/replications/executions
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
policy_id | Body | Integer | O | 複製ID |
例
{
"policy_id": 15
}
このAPIは共通情報のみレスポンスします。
イメージキャッシュリストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/endpoints
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
page | Query | Integer | X | 照会するページ番号 |
page_size | Query | Integer | X | 照会するページサイズ(default: 10) |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
endpoints | Body | Array | O | イメージキャッシュリスト |
endpoints.status | Body | String | O | イメージキャッシュ状態 |
endpoints.credential | Body | Object | O | ソースレジストリ認証情報 |
endpoints.credential.access_key | Body | String | O | ソースレジストリaccess ID |
endpoints.credential.access_secret | Body | String | O | ソースレジストリaccess secret |
endpoints.update_time | Body | String | O | 変更時間 |
endpoints.name | Body | String | O | イメージキャッシュ名 |
endpoints.url | Body | String | O | ソースレジストリアドレス |
endpoints.insecure | Body | Boolean | O | 証明書検証有無 |
endpoints.creation_time | Body | String | O | 作成時間 |
endpoints.type | Body | String | O | ソースレジストリタイプ |
endpoints.id | Body | Integer | O | イメージキャッシュID |
endpoints.description | Body | Integer | O | イメージキャッシュの説明 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"endpoints": [
{
"status": "healthy",
"credential": {
"access_key": "hnk8WpQl8uYGGzDiXVAb",
"access_secret": "*****",
"type": "basic"
},
"update_time": "2023-03-28T01:59:42.025Z",
"name": "cache",
"url": "https://095679f7-kr1-registry.container.nhncloud.com",
"insecure": false,
"creation_time": "2023-03-28T01:59:42.025Z",
"type": "ncr",
"id": 3,
"description": "proxycache/ncr"
}
]
}
イメージキャッシュを作成します
POST /ncr/v2.0/appkeys/{appKey}/endpoints
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
name | Body | String | O | イメージキャッシュ名 |
url | Body | String | O | ソースレジストリアドレス |
type | Body | String | O | ソースレジストリタイプ、harbor/docker-hub/docker-registry/google-gcr/aws-ecr/azure-acr/quay/ncr |
credential | Body | Object | O | ソースレジストリ認証情報 |
credential.access_key | Body | String | O | ソースレジストリaccess ID |
credential.access_secret | Body | String | O | ソースレジストリaccess secret |
insecure | Body | Boolean | X | 証明書検証有無 |
例
{
"name": "test",
"url": "https://095679f7-kr1-registry.container.nhncloud.com",
"type": "ncr",
"credential": {
"access_key": "hnk8WpQl8uYGGzDiXVAb",
"access_secret": "EL3vl7gPWeaEqwGs"
}
}
このAPIは共通情報のみレスポンスします。
イメージキャッシュを削除します。
DELETE /ncr/v2.0/appkeys/{appKey}/endpoints/{endpointId}
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
endpointId | URL | String | O | イメージキャッシュID |
このAPIは共通情報のみレスポンスします。
イメージキャッシュを変更します。
PUT /ncr/v2.0/appkeys/{appKey}/endpoints/{endpointId}
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
endpointId | URL | String | O | イメージキャッシュID |
name | Body | String | X | イメージキャッシュ名 |
url | Body | String | X | ソースレジストリアドレス |
access_key | Body | String | X | ソースレジストリaccess ID |
access_secret | Body | String | X | ソースレジストリaccess secret |
insecure | Body | Boolean | X | 証明書検証有無 |
例
{
"name": "test",
"url": "https://095679f7-kr1-registry.container.nhncloud.com",
"access_key": "hnk8WpQl8uYGGzDiXVAb",
"access_secret": "EL3vl7gPWeaEqwGs"
}
このAPIは共通情報のみレスポンスします。
スキャン周期を照会します。
GET /ncr/v2.0/appkeys/{appKey}/scanAll/schedule
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
schedule | Body | Object | O | スキャン周期情報 |
schedule.id | Body | Integer | O | スキャン周期ID |
schedule.schedule | Body | Object | O | スキャン周期 |
schedule.schedule.cron | Body | String | O | スキャン周期のcron形式 |
schedule.schedule.type | Body | String | O | スキャン周期タイプ |
schedule.status | Body | String | O | 状態 |
schedule.creation_time | Body | String | O | 作成時間 |
schedule.update_time | Body | String | O | 変更時間 |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"schedule": {
"id": 5,
"schedule": {
"cron": "0 0 * * *",
"type": "Daily"
},
"status": "Running",
"creation_time": "2023-03-28T05:49:33.364Z",
"update_time": "2023-03-28T05:49:33.364Z"
}
}
スキャン周期を設定します。
PUT /ncr/v2.0/appkeys/{appKey}/scanAll/schedule
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
schedule | Body | Object | O | スキャン周期情報 |
schedule.cron | Body | String | O | スキャン周期のcron形式 |
schedule.type | Body | String | O | スキャン周期タイプ |
例
{
"schedule": {
"cron": "0 0 * * *",
"type": "Daily"
}
}
このAPIは共通情報のみレスポンスします。
共通CVE許可リストを照会します。
GET /ncr/v2.0/appkeys/{appKey}/CVEAllowlist
このAPIはリクエスト本文を要求しません。
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
cve_allowlist | Body | Object | O | 許可リスト情報 |
cve_allowlist.id | Body | Integer | O | 許可リストID |
cve_allowlist.items | Body | Object List | O | 許可リスト |
cve_allowlist.items.cve_id | Body | String | X | CVE ID |
例
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"cve_allowlist": {
"id": 14,
"project_id": 0,
"items": [
{
"cve_id": "CVE-2011-3374"
}
]
}
}
共通CVE許可リストを変更します。
PUT /ncr/v2.0/appkeys/{appKey}/CVEAllowlist
名前 | 種類 | 形式 | 必須 | 説明 |
---|---|---|---|---|
appKey | URL | String | O | サービスAppkey |
items | Body | Object List | O | 許可リスト |
items.cve_id | Body | String | O | CVE ID |
例
{
"items": [{
"cve_id": "CVE-2011-3374"
}]
}
このAPIは共通情報のみレスポンスします。