Red Hat Quay API ガイド


Red Hat Quay 3.13

Red Hat Quay API ガイド

Red Hat OpenShift Documentation Team

概要

Red Hat Quay API の使用

はじめに

Red Hat Quay アプリケーションプログラミングインターフェイス (API) は、Red Hat Quay 内でタスクを管理および自動化するための包括的な RESTful インターフェイスを提供します。OAuth 2.0 プロトコル に基づいて設計されたこの API は、Red Hat Quay リソースへの安全できめ細かいアクセスを可能にし、管理者とユーザーがリポジトリーの作成、イメージの管理、権限の設定などのアクションを実行できるようにします。

Red Hat Quay はセマンティックバージョニング (SemVer) の原則に従っており、次のようなリリース間で予測可能な API の安定性を確保しています。

  • メジャーリリース: 新しい機能を導入します。API 互換性に対する重大な変更が含まれる可能性があります。たとえば、Red Hat Quay 2.0 の API は Red Hat Quay 3.0 とは異なります。
  • マイナーリリース: 下位互換性を保ちながら新しい機能を追加します。たとえば、3.y リリースではバージョン 3. リリースに機能が追加されます。
  • パッチリリース: 3.y.z などのマイナーリリースとの下位互換性を維持しながら、バグ修正と改善を提供します。

次のガイドでは、Red Hat Quay API についてさらに詳しく説明し、以下のトピックの詳細を示します。

  • OAuth 2 アクセストークンと、従来の API トークンおよび Red Hat Quay のロボットトークンとの比較
  • OAuth 2 アクセストークンの生成
  • トークン管理のベストプラクティス
  • OAuth 2 アクセストークンの機能
  • Red Hat Quay API の使用
  • Red Hat Quay API 設定例

第1章 Red Hat Quay OAuth 2.0 トークンの概要

Red Hat Quay OAuth 2 トークンシステムは、Red Hat Quay の API やその他の関連リソースにアクセスするための安全で標準ベースの方法を提供します。OAuth 2 トークンベースのアプローチは、複雑な環境での認証と認可を処理するための安全な方法として使用できます。従来の API トークンと比較して、Red Hat Quay の OAuth 2 トークンシステムでは、次のように機能が拡張されています。

  • OAuth 2.0 プロトコル に準拠した標準ベースのセキュリティー。
  • OAuth 2 トークンが存在するアプリケーションを削除し、アクセスを取り消すことができます。
  • アクセス制御の設定を詳細に指定できるため、Red Hat Quay 管理者はトークンに特定の権限を割り当てることができます。
  • 委譲アクセス。これにより、サードパーティーのアプリケーションやサービスがユーザーに代わって動作できるようになります。
  • 将来を見据えた設計により、Red Hat Quay が他のサービス、プラットフォーム、統合との互換性を維持できるようになります。

Red Hat Quay は、主に OAuth 2 アクセストークンとロボットアカウントトークンという 2 種類のトークンをサポートします。3 番目のトークンタイプである OCI リファラーアクセストークン (リポジトリーの下にあるマニフェストの OCI リファラーの表示に必要) も、必要に応じて使用できます。

次の章では、各トークンタイプの詳細と生成方法について説明します。

第2章 OAuth 2 アクセストークン

OAuth 2 アクセストークン (Red Hat Quay では "API トークン" と見なされます) を使用すると、ユーザーアイデンティティー検証を必要とするアプリケーションに適した、Red Hat Quay API へのユーザー認証アクセスが可能になります。これらのトークンは、OAuth 2 認可プロセスを通じて取得されます。このプロセスでは、Red Hat Quay 管理者が自分自身または別のユーザーに代わってトークンを生成し、Red Hat Quay API エンドポイントにアクセスします。OAuth 2 トークンは、トークンに定義されたスコープに基づいて、API エンドポイントでのアクションを承認します。

注記

OAuth 2 トークンはトークンに定義されたスコープに基づいて API エンドポイントでのアクションを承認しますが、リソース自体へのアクセスは Red Hat Quay のロールベースアクセス制御 (RBAC) メカニズムによって管理されます。対象の名前空間に対して適切なロール (Admin または Creator) がある場合は、リポジトリーなどのリソースに対してアクションを作成できます。これは、API トークンに repo:admin スコープが付与されている場合でも当てはまります。

OAuth 2 アクセストークンは、Red Hat Quay UI を使用してのみ作成できます。CLI を使用して OAuth 2 アクセストークンを作成する方法はありません。OAuth 2 トークンを作成するときに、トークン所有者に対して次のオプションを選択できます。

  • Administer Organization。選択すると、ユーザーはロボットの作成、チームの作成、チームメンバーシップの調整、課金設定の変更など、組織を管理できるようになります。
  • Administer Repositories。選択すると、権限を付与したユーザーがアクセスできるすべてのリポジトリーへのユーザー管理者アクセスが提供されます。
  • Create Repositories。選択すると、権限を付与したユーザーがリポジトリーの作成を許可されている任意の名前空間にリポジトリーを作成できるようになります。
  • View all visible repositories。選択すると、権限を付与したユーザーに表示されるすべてのリポジトリーを表示しする権限およびプルする権限がユーザーに付与されます。
  • Read/Write to any accessible repositories。選択すると、権限を付与したユーザーが書き込みアクセス権を持つすべてのリポジトリーを表示、プッシュ、プルする機能がユーザーに割り当てられます。
  • Super User Access。選択すると、ユーザーの管理、組織の管理、スーパーユーザーパネルにあるその他の機能など、インストールを管理する権限がユーザーに付与されます。
  • Administer User。選択すると、ロボットの作成やリポジトリーへの権限の付与など、アカウントを管理する権限がユーザーに付与されます。
  • Read User Information。選択すると、ユーザー名やメールアドレスなどのユーザー情報を読み取る機能がユーザーに付与されます。

トークンディストリビューターは、ユーザーに代わってトークンを生成するときに付与する権限に注意する必要があります。ユーザーを完全に信頼できることを確認してから、Administer organizationSuper User Access、および Administer User などの権限を付与する必要があります。また、アクセストークンは作成時にのみ公開され、CLI から一覧表示できず、Red Hat Quay UI で表示することもできません。アクセストークンを紛失したり忘れたりした場合は、新しいトークンを作成する必要があります。トークンを復元することはできません。

OAuth 2 アクセストークンは、API 呼び出しの Authorization ヘッダーで Bearer トークンとして渡され、イメージタグ、リポジトリー、組織などの定義された API エンドポイントに認証と認可を提供するために使用されます。

API は、Red Hat Quay ホストの /api/v1 エンドポイントから使用できます。たとえば、https://<quay-server.example.com>/api/v1 です。Swagger UI を有効にすると、ユーザーがブラウザー経由でエンドポイントに接続し、Red Hat Quay の設定を GETPOSTDELETEPUT できるようになります。API は、API 呼び出しを実行して OAuth トークンを使用するアプリケーションからアクセスでき、JSON としてデータを送受信します。

Red Hat Quay では現在、OAuth 2 アクセストークンに有効期限をローテーションまたは設定する方法はなく、トークンの有効期間は 10 年です。トークンが不正使用された場合、トークンが作成されたアプリケーションを削除して、トークンを削除できますが、この操作により、その特定のアプリケーション内で作成されたすべてのトークンが削除されます。

注記

実際には、Red Hat Quay 管理者は、ユーザー用に新しい OAuth トークンを作成するたびに、組織の Applications ページで新しい OAuth アプリケーションを作成 できます。これにより、単一のアプリケーションがすべての OAuth トークンを管理する必要がなくなります。その結果、ユーザーのトークンが不正使用された場合、管理者は不正使用されたトークンのアプリケーションを削除します。これにより、同じアプリケーションの中に含まれる可能性のあるトークンを使用する他のユーザーの混乱を回避するのに役立ちます。

次のセクションでは、OAuth 2 アクセストークンを生成して再割り当てする方法を説明します。

2.1. OAuth 2 アクセストークンの作成

Red Hat Quay では、組織の API エンドポイントにアクセスする前に、OAuth 2 アクセストークンを作成する必要があります。OAuth 2 アクセストークンは、Red Hat Quay UI を使用してのみ生成できます。CLI を使用して OAuth 2 アクセストークンを生成することはできません。

OAuth2 アクセストークンを作成するには、次の手順を実行します。

前提条件

  • Red Hat Quay に管理者としてログインしている。
  • OAuth 2 アプリケーションを作成した。

手順

  1. メインページで、Organization を選択します。
  2. ナビゲーションペインで、Applications を選択します。
  3. アプリケーションの名前 (例: Test application) をクリックします。
  4. ナビゲーションペインで、Generate Token を選択します。
  5. 次のオプションのチェックボックスをオンにします。

    1. Administer Organization。選択すると、ユーザーはロボットの作成、チームの作成、チームメンバーシップの調整、課金設定の変更など、組織を管理できるようになります。
    2. Administer Repositories。選択すると、権限を付与したユーザーがアクセスできるすべてのリポジトリーへのユーザー管理者アクセスが提供されます。
    3. Create Repositories。選択すると、権限を付与したユーザーがリポジトリーの作成を許可されている任意の名前空間にリポジトリーを作成できるようになります。
    4. View all visible repositories。選択すると、権限を付与したユーザーに表示されるすべてのリポジトリーを表示しする権限およびプルする権限がユーザーに付与されます。
    5. Read/Write to any accessible repositories。選択すると、権限を付与したユーザーが書き込みアクセス権を持つすべてのリポジトリーを表示、プッシュ、プルする機能がユーザーに割り当てられます。
    6. Super User Access。選択すると、ユーザーの管理、組織の管理、スーパーユーザーパネルにあるその他の機能など、インストールを管理する権限がユーザーに付与されます。
    7. Administer User。選択すると、ロボットの作成やリポジトリーへの権限の付与など、アカウントを管理する権限がユーザーに付与されます。
    8. Read User Information。選択すると、ユーザー名やメールアドレスなどのユーザー情報を読み取る機能がユーザーに付与されます。
  6. Generate Access Token をクリックします。新しいページにリダイレクトされます。
  7. 許可する権限を確認し、Authorize Application をクリックします。Authorize Application をクリックして決定した内容を確定します。
  8. Access Token ページにリダイレクトされます。アクセストークンをコピーして保存します。

    重要

    これは、アクセストークンをコピーして保存する唯一の機会です。このページを離れると再取得できません。

2.2. OAuth アクセストークンの再割り当て

組織管理者は、特定の権限を持つ他のユーザーによって作成されるように OAuth API トークンを割り当てることができます。これにより、OAuth API トークンを作成する組織管理者権限を持たないユーザーがトークンを使用した場合でも、監査ログが正確に反映されるようになります。

注記

次の手順は、現在の Red Hat Quay UI でのみ機能します。現在、Red Hat Quay v2 UI には実装されていません。

前提条件

  • 組織管理者権限を持つユーザーとしてログインしており、OAuth API トークンを割り当てることができる。

    注記

    OAuth API トークンは、認可ではなく認証に使用されます。たとえば、OAuth トークンを割り当てるユーザーは、管理 API エンドポイントを使用するために Admin チームロールを持っている必要があります。詳細は、リポジトリーへのアクセスの管理 を参照してください。

手順

  1. オプション: まだ更新していない場合は、Red Hat Quay config.yaml ファイルを更新して、FEATURE_ASSIGN_OAUTH_TOKEN: true フィールドを含めます。

    # ...
    FEATURE_ASSIGN_OAUTH_TOKEN: true
    # ...
    Copy to Clipboard Toggle word wrap
  2. オプション: Red Hat Quay レジストリーを再起動します。
  3. 組織管理者として Red Hat Quay レジストリーにログインします。
  4. OAuth トークンを作成した組織の名前をクリックします。
  5. ナビゲーションペインで、Applications をクリックします。
  6. 適切なアプリケーション名をクリックします。
  7. ナビゲーションペインで、Generate Token をクリックします。
  8. Assign another user をクリックし、OAuth トークンを引き継ぐユーザーの名前を入力します。
  9. 新しいユーザーに付与する必要な権限のボックスをオンにします。たとえば、新しいユーザーにリポジトリーの作成のみを許可する場合は、Create Repositories クリックします。

    重要

    権限の制御は、組織内のチームロールによって定義され、ここで選択したオプションに関係なく設定する必要があります。たとえば、OAuth トークンを割り当てるユーザーは、管理 API エンドポイントを使用するために Admin チームロールを持っている必要があります。

    Super User Access ボックスをオンにしただけでは、この権限がユーザーに実際に付与されるわけではありません。config.yaml ファイルでスーパーユーザーを設定する必要があり、かつ ここでボックスをオンにする必要があります。

  10. Assign token をクリックします。ポップアップボックスに、認可を確認する次のメッセージと、承認される権限が表示されます。

    This will prompt user <username> to generate a token with the following permissions:
    repo:create
    Copy to Clipboard Toggle word wrap
  11. ポップアップボックスで Assign token をクリックします。新しいページにリダイレクトされ、次のメッセージが表示されます。

    Token assigned successfully
    Copy to Clipboard Toggle word wrap

検証

  1. OAuth トークンを再割り当てした後、割り当てられたユーザーがトークンを受け入れて、API エンドポイントの使用に必要なベアラートークンを受け取る必要があります。割り当てられたユーザーに、Red Hat Quay レジストリーにログインするよう依頼します。
  2. ユーザーは、ログインしたら、Users and Organizations の下にある自分のユーザー名をクリックする必要があります。
  3. ナビゲーションペインで、External Logins And Applications をクリックする必要があります。
  4. Authorized Applications の下で、Authorize Application をクリックしてアプリケーションを確認する必要があります。新しいページに移動し、Authorize Application をクリックして再確認する必要があります。
  5. ユーザーは、ベアラートークンが表示される新しいページにリダイレクトされます。このベアラートークンは再度表示することはできないため、保存する必要があります。

2.3. OAuth 2 アクセストークンの削除

OAuth 2 アクセストークンは OAuth アプリケーションを通じて作成されるため、ローテーションまたは更新することはできません。トークンが侵害された場合、またはトークンを削除する必要がある場合は、Red Hat Quay UI を通じて関連付けられているアプリケーションを削除する必要があります。

重要

アプリケーションを削除すると、そのアプリケーション内で作成されたすべてのトークンが削除されます。注意して使用してください。

前提条件

  • OAuth 2 アクセストークンを作成した。

手順

  1. Red Hat Quay UI で、アプリケーションをホストしている組織の名前をクリックします。次に、ナビゲーションペインで Applications をクリックします。
  2. アプリケーション名 (例: Test application) をクリックします。
  3. ナビゲーションペインで、Delete Application をクリックします。新しいページにリダイレクトされます。Delete application をクリックして確認します。

第3章 ロボットアカウントトークン

ロボットアカウント トークン は、通常の Docker v2 エンドポイント経由で Red Hat Quay レジストリーにアクセスするために使用される パスワードタイプ の認証情報です。パスワード自体は暗号化されているため、UI 上で トークン として定義されます。

ロボットアカウントトークンは、自動化および継続的インテグレーションワークフロー向けに設計された永続的なトークンです。デフォルトでは、Red Hat Quay のロボットアカウントトークンは期限切れにならず、ユーザーの操作も必要ありません。そのため、ロボットアカウントは非対話型のユースケースに最適です。

ロボットアカウントトークンは、ロボットの作成時に自動的に生成され、ユーザー固有ではありません。つまり、作成されたユーザーと組織の名前空間に接続されます。たとえば、project_tools+<robot_name> という名前のロボットは project_tools 名前空間に関連付けられます。

ロボットアカウントトークンを使用すると、ユーザーの個人認証情報を必要とせずにアクセスが可能になります。ロボットアカウントがどのように設定されているか (例: READWRITE、または ADMIN 権限のいずれか) によって、最終的にロボットアカウントが実行できるアクションが決まります。

ロボットアカウントトークンは永続的であり、デフォルトでは期限切れにならないため、手動で更新せずに Red Hat Quay に常にアクセスする必要がある自動ワークフローに最適です。ただし、ロボットアカウントトークンは UI を使用して簡単に再生成できます。CLI 経由で適切な API エンドポイントを使用して再生成することもできます。Red Hat Quay デプロイメントのセキュリティーを強化するために、管理者はロボットアカウントトークンを定期的に更新する必要があります。さらに、ロボットアカウントを使用したキーレス認証 機能により、ロボットアカウントトークンを外部 OIDC トークンと交換して 1 時間のみ有効化できるため、レジストリーのセキュリティーが強化されます。

名前空間が削除されたり、ロボットアカウント自体が削除されたりすると、コレクターの実行がスケジュールされているときにガベージコレクションが行われます。

次のセクションでは、API を使用して組織ロボットとユーザーロボットのロボットアカウントトークンを再生成する方法を説明します。

3.1. Red Hat Quay UI を使用したロボットアカウントトークンの再生成

Red Hat Quay UI を使用してロボットアカウントトークンを再生成するには、次の手順に従います。

前提条件

  • Red Hat Quay にログインしている。

手順

  1. 組織名をクリックします。
  2. ナビゲーションウィンドウで、Robot accounts をクリックします。
  3. ロボットアカウントの名前 (例: testorg3+test) をクリックします。
  4. ポップアップボックスで Regenerate token をクリックします。

3.2. Red Hat Quay API を使用したロボットアカウントトークンの再生成

Red Hat Quay API を使用してロボットアカウントトークンを再生成するには、次の手順に従います。

前提条件

手順

  • 次のコマンドを入力して、POST /api/v1/organization/{orgname}/robots/{robot_shortname}/regenerate エンドポイントを使用して組織のロボット アカウントトークンを再生成します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      "<quay-server.example.com>/api/v1/organization/<orgname>/robots/<robot_shortname>/regenerate"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "test-org+test", "created": "Fri, 10 May 2024 17:46:02 -0000", "last_accessed": null, "description": "", "token": "<example_secret>"}
    Copy to Clipboard Toggle word wrap

  • 次のコマンドを入力して、POST /api/v1/user/robots/{robot_shortname}/regenerate エンドポイントで現在のユーザーのロボット アカウントトークンを再生成します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>/regenerate"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "quayadmin+test", "created": "Fri, 10 May 2024 14:12:11 -0000", "last_accessed": null, "description": "", "token": "<example_secret>"}
    Copy to Clipboard Toggle word wrap

第4章 OCI リファラー OAuth アクセストークン

場合によっては、Red Hat Quay デプロイメントで使用するように設定されている機能に応じて、OCI リファラー OAuth アクセストークン を活用する必要があります。OCI リファラー OAuth アクセストークンは、リポジトリー下のマニフェストの OCI リファラーをリスト表示するために使用され、curl コマンドを使用して Red Hat Quay v2/auth エンドポイントに GET リクエストを送信します。

これらのトークンは Basic HTTP 認証によって取得されます。ユーザーは Base64 でエンコードされたユーザー名とパスワードを使用し、v2/auth API エンドポイントで直接認証します。そのため、このトークンはユーザーの認証情報に直接基づいており、OAuth 2 と同じ詳細な認可フローには従いませんが、ユーザーは API リクエストを承認できます。

OCI リファラー OAuth アクセストークン は、スコープベースの権限を提供せず、有効期限もありません。これらは、リポジトリーの下にあるマニフェストの OCI リファラーをリストするためにのみ使用されます。

関連情報

4.1. OCI リファラー OAuth アクセストークンの作成

この OCI リファラー OAuth アクセストークンは、リポジトリーの下にあるマニフェストの OCI リファラーをリスト表示するために使用されます。

手順

  1. config.yaml ファイルを更新して、FEATURE_REFERRERS_API: true フィールドを含めます。以下に例を示します。

    # ...
    FEATURE_REFERRERS_API: true
    # ...
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを入力し、認証情報を Base64 でエンコードします。

    $ echo -n '<username>:<password>' | base64
    Copy to Clipboard Toggle word wrap

    出力例

    abcdeWFkbWluOjE5ODlraWROZXQxIQ==
    Copy to Clipboard Toggle word wrap

  3. 次のコマンドを入力して、base64 でエンコードされた文字列を使用し、URL エンドポイントを Red Hat Quay サーバーに変更します。

    $ curl --location '<quay-server.example.com>/v2/auth?service=<quay-server.example.com>&scope=repository:quay/listocireferrs:pull,push' --header 'Authorization: Basic <base64_username:password_encode_token>' -k | jq
    Copy to Clipboard Toggle word wrap

    出力例

    {
      "token": "<example_secret>
    }
    Copy to Clipboard Toggle word wrap

第5章 Red Hat Quay API の有効化と使用

Red Hat Quay API を活用することで、コンテナーレジストリー管理を合理化し、タスクを自動化し、Red Hat Quay の機能を既存のワークフローに統合できます。これにより、効率と柔軟性 (リポジトリー管理、ユーザー管理、ユーザー権限、イメージ管理など) が向上し、組織やリポジトリー、あるいは全体的なデプロイメントの安定性などが向上します。

次のセクションでは、Red Hat Quay API を有効にして使用する方法について説明します。

5.1. API 呼び出しを受け付けるように Red Hat Quay を設定する

Red Hat Quay API を使用する前に、config.yaml ファイルで BROWSER_API_CALLS_XHR_ONLY を無効にする必要があります。これにより API calls must be invoked with an X-Requested-With header if called from a browser などのエラーを回避できます。

手順

  1. Red Hat Quay config.yaml ファイルで、BROWSER_API_CALLS_XHR_ONLYfalse に設定します。以下に例を示します。

    # ...
    BROWSER_API_CALLS_XHR_ONLY: false
    # ...
    Copy to Clipboard Toggle word wrap
  2. Red Hat Quay デプロイメントを再起動します。

5.2. Red Hat Quay API の使用

アプリケーションを作成し、必要な設定で OAuth 2 アクセストークンを生成したら、CLI から API を使用して、アクセストークンを GETPUTPOST、または DELETE 設定に渡すことができます。通常、Red Hat Quay API コマンドは次の例のようになります。

$ curl -X GET -H "Authorization: Bearer <your_access_token>" 
1

    https://<quay-server.example.com>/api/v1/<example>/<endpoint>/ 
2
Copy to Clipboard Toggle word wrap
1
Red Hat Quay UI を通じて生成された OAuth 2 アクセストークン。
2
Red Hat Quay デプロイメントの URL と API エンドポイント。

すべての Red Hat Quay API については、アプリケーションプログラミングインターフェイス (API) の章を参照してください。記載内容を理解することは、呼び出しを成功させるために非常に重要です。たとえば、createAppToken API エンドポイントの次のエントリーがあります。

*createAppToken* 
1

Create a new app specific token for user. 
2


*POST /api/v1/user/apptoken* 
3


**Authorizations: **oauth2_implicit (**user:admin**) 
4


 Request body schema (application/json)

*Path parameters* 
5


Name: **title**
Description: Friendly name to help identify the token.
Schema: string

*Responses* 
6


|HTTP Code|Description             |Schema
|201      |Successful creation     |
|400      |Bad Request             |&lt;&lt;_apierror,ApiError&gt;&gt;
|401      |Session required        |&lt;&lt;_apierror,ApiError&gt;&gt;
|403      |Unauthorized access     |&lt;&lt;_apierror,ApiError&gt;&gt;
|404      |Not found               |&lt;&lt;_apierror,ApiError&gt;&gt;
|===
Copy to Clipboard Toggle word wrap
1
API エンドポイントの名前。
2
API エンドポイントの簡単な説明。
3
呼び出しに使用される API エンドポイント。
4
API エンドポイントを使用するために必要な認可。
5
API エンドポイントで使用できるパス。この例の title は、POST/api/v1/user/apptoken エンドポイントで使用される唯一のパスです。
6
このエンドポイントの API レスポンス。

API エンドポイントを使用するには、アクセストークンを渡し、必要に応じて適切なフィールドを含めます。次の手順は、POST/api/v1/user/apptoken エンドポイントの使用方法を示しています。

前提条件

  • Red Hat Quay API にアクセスできる。そのためには、OAuth 2 アクセストークンが作成済みでなければなりません。
  • config.yaml ファイルで BROWSER_API_CALLS_XHR_ONLY: false を設定している。

手順

  • POST /api/v1/user/apptoken API 呼び出しを入力して、ユーザーアプリケーションを作成します。

    $ curl -X POST \
      -H "Authorization: Bearer <access_token>" 
    1
    
      -H "Content-Type: application/json" \
      -d '{
        "title": "MyAppToken" 
    2
    
      }' \
      "http://quay-server.example.com/api/v1/user/apptoken" 
    3
    Copy to Clipboard Toggle word wrap
    1
    Oauth アクセストークン。
    2
    アプリケーショントークンの名前。
    3
    /api/v1/user/apptoken エンドポイントが追加された Red Hat Quay デプロイメントの URL。

    出力例

    {"token": {"uuid": "6b5aa827-cee5-4fbe-a434-4b7b8a245ca7", "title": "MyAppToken", "last_accessed": null, "created": "Wed, 08 Jan 2025 19:32:48 -0000", "expiration": null, "token_code": "K2YQB1YO0ABYV5OBUYOMF9MCUABN12Y608Q9RHFXBI8K7IE8TYCI4WEEXSVH1AXWKZCKGUVA57PSA8N48PWED9F27PXATFUVUD9QDNCE9GOT9Q8ACYPIN0HL"}}
    Copy to Clipboard Toggle word wrap

検証

  • Red Hat Quay UI のナビゲーションペインでユーザー名をクリックし、Account Settings をクリックします。アプリケーションの名前は、Docker CLI and other Application Tokens の見出しの下に表示されます。以下に例を示します。

    アプリケーショントークン

5.3. API を使用した Red Hat Quay プロセスの自動化

API を使用すると、Red Hat Quay 管理者と API にアクセスできるユーザーは、リポジトリー管理やイメージのプルーニングなどの反復タスクを自動化できます。

次の例は、Python スクリプトと cron ジョブを使用して、管理者のトークン 以外 の OAuth 2 アプリケーションの削除を自動化する方法を示しています。これは、OAuth 2 アクセストークンに関連付けられたアプリケーションが一定期間後に確実に循環されるようにする場合に役立ちます。

前提条件

  • Red Hat Quay API にアクセスできる。そのためには、OAuth 2 アクセストークンが作成済みでなければなりません。
  • config.yaml ファイルで BROWSER_API_CALLS_XHR_ONLY: false を設定している。
  • Python requests ライブラリーをインストールした。
  • マシン上で cron ジョブを有効化した。
  • 削除されないものも含め、複数の組織アプリケーションを作成した。

手順

  1. API コマンドを実行する Python スクリプトを作成します。以下の例は、DELETE /api/v1/organization/{orgname}/applications/{client_id} API エンドポイントを使用して組織アプリケーション を削除するために使用されます。

    example.py ファイル

    import requests 
    1
    
    
    # Hard-coded values
    API_BASE_URL = "http://<quay-server.example.com>/api/v1" 
    2
    
    ACCESS_TOKEN = "<access_token>" 
    3
    
    ORG_NAME = "<organization_name>" 
    4
    
    
    def get_all_organization_applications():
        url = f"{API_BASE_URL}/organization/{ORG_NAME}/applications"
        headers = {
            "Authorization": f"Bearer {ACCESS_TOKEN}"
        }
    
        response = requests.get(url, headers=headers)
    
        if response.status_code == 200:
            try:
                applications = response.json()
                # Print the raw response for debugging
                print("Raw response:", applications)
    
                # Adjust parsing logic based on the response structure
                if isinstance(applications, dict) and 'applications' in applications:
                    applications = applications['applications']
    
                if isinstance(applications, list):
                    print("Organization applications retrieved successfully:")
                    for app in applications:
                        # Updated key from 'title' to 'name'
                        print(f"Name: {app['name']}, Client ID: {app['client_id']}")
                    return applications
                else:
                    print("Unexpected response format.")
                    return []
            except requests.exceptions.JSONDecodeError:
                print("Error decoding JSON response:", response.text)
                return []
        else:
            print(f"Failed to retrieve applications. Status code: {response.status_code}, Response: {response.text}")
            return []
    
    def delete_organization_application(client_id):
        url = f"{API_BASE_URL}/organization/{ORG_NAME}/applications/{client_id}"
        headers = {
            "Authorization": f"Bearer {ACCESS_TOKEN}"
        }
    
        response = requests.delete(url, headers=headers)
    
        if response.status_code == 204:
            print(f"Application {client_id} deleted successfully.")
        else:
            print(f"Failed to delete application {client_id}. Status code: {response.status_code}, Response: {response.text}")
    
    def main():
        applications = get_all_organization_applications()
        for app in applications:
            if app['name'] != "<admin_token_app>": <5>  # Skip the "admin-token-app"
                delete_organization_application(app['client_id'])
            else:
                print(f"Skipping deletion of application: {app['name']}")
    
    # Execute the main function
    main()
    Copy to Clipboard Toggle word wrap

    1
    Python コードに import ライブラリーを追加します。
    2
    /api/v1 が追加されたレジストリーの URL。
    3
    OAuth 2 アクセストークン。
    4
    アプリケーションを保持する組織。
    残すアプリケーショントークンの名前。
  2. スクリプトを prune_applications.py として保存します。
  3. スクリプトを自動的に実行する cron ジョブを作成します。

    1. 次のコマンドを実行して、crontab エディターを開きます。

      $ crontab -e
      Copy to Clipboard Toggle word wrap
    2. エディターで、スクリプトを実行するための cron ジョブを追加します。次の例では、スクリプトを月に 1 回実行します。

      0 0 1 * * sudo python /path/to/prune_images.py >> /var/log/prune_images.log 2>&1
      Copy to Clipboard Toggle word wrap

第6章 Red Hat Quay API の例

この章の残りの部分では、API が使用可能な機能における Red Hat Quay API の例を示します。

6.1. API を使用してユーザーアプリケーションを管理する

Red Hat Quay ユーザーは、Docker、Podman、またはその他のサービスプロバイダーのパスワードの代わりに使用できる ユーザーアプリケーション の作成、情報のリスト表示、削除を実行できます。ユーザーアプリケーショントークンはユーザー名とパスワードと同じように機能しますが、暗号化されており、Red Hat Quay に誰がアクセスしているかに関する情報を第三者に提供しません。

注記

CLI 経由で作成したユーザーアプリケーショントークンは、Red Hat Quay UI の User Settings の下に表示されます。これは、ユーザー設定で作成されるアプリケーショントークンとは異なり、まったく別のアプリケーションとして扱う必要があることに注意してください。

ユーザーアプリケーショントークンを作成するには、次の手順に従います。

前提条件

  • OAuth 2 アクセストークンを作成した。

手順

  • POST /api/v1/user/apptoken API 呼び出しを入力して、ユーザーアプリケーションを作成します。

    $ curl -X POST \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "title": "MyAppToken"
      }' \
      "http://quay-server.example.com/api/v1/user/apptoken"
    Copy to Clipboard Toggle word wrap

    出力例

    {"token": {"uuid": "6b5aa827-cee5-4fbe-a434-4b7b8a245ca7", "title": "MyAppToken", "last_accessed": null, "created": "Wed, 08 Jan 2025 19:32:48 -0000", "expiration": null, "token_code": "K2YQB1YO0ABYV5OBUYOMF9MCUABN12Y608Q9RHFXBI8K7IE8TYCI4WEEXSVH1AXWKZCKGUVA57PSA8N48PWED9F27PXATFUVUD9QDNCE9GOT9Q8ACYPIN0HL"}}
    Copy to Clipboard Toggle word wrap

  • GET /api/v1/user/apptoken コマンドを使用すると、アプリケーションの有効期限など、アプリケーションに関する情報を取得できます。以下に例を示します。

    $ curl -X GET \
      -H "Authorization: Bearer <access_token>" \
      "http://quay-server.example.com/api/v1/user/apptoken"
    Copy to Clipboard Toggle word wrap
    {"tokens": [{"uuid": "6b5aa827-cee5-4fbe-a434-4b7b8a245ca7", "title": "MyAppToken", "last_accessed": null, "created": "Wed, 08 Jan 2025 19:32:48 -0000", "expiration": null}], "only_expiring": null}
    Copy to Clipboard Toggle word wrap
  • GET /api/v1/user/apptoken/{token_uuid} コマンドを入力すると、特定のユーザーアプリケーションに関する情報を取得できます。

    $ curl -X GET \
      -H "Authorization: Bearer <access_token>" \
      "http://quay-server.example.com/api/v1/user/apptoken/<token_uuid>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"token": {"uuid": "6b5aa827-cee5-4fbe-a434-4b7b8a245ca7", "title": "MyAppToken", "last_accessed": null, "created": "Wed, 08 Jan 2025 19:32:48 -0000", "expiration": null, "token_code": "K2YQB1YO0ABYV5OBUYOMF9MCUABN12Y608Q9RHFXBI8K7IE8TYCI4WEEXSVH1AXWKZCKGUVA57PSA8N48PWED9F27PXATFUVUD9QDNCE9GOT9Q8ACYPIN0HL"}}
    Copy to Clipboard Toggle word wrap

  • DELETE /api/v1/user/apptoken/{token_uuid} エンドポイントを使用すると、ユーザーアプリケーショントークンを削除または取り消すことができます。

    $ curl -X DELETE \
      -H "Authorization: Bearer <access_token>" \
      "http://quay-server.example.com/api/v1/user/apptoken/<token_uuid>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。前述のコマンドのいずれかを入力すると、トークンのリストを返すことができます。

6.2. Red Hat Quay API エンドポイントの検出

Red Hat Quay API エンドポイントは、API を使用して検出できます。

利用可能な API エンドポイントを検出するには、次の手順に従います。

前提条件

  • OAuth 2 アクセストークンを作成した。

手順

  • Swagger API 形式で使用可能なすべての API エンドポイントをリスト表示するには、次の GET /api/v1/discovery

    $ curl -X GET "https://<quay-server.example.com>/api/v1/discovery?query=true" \
        -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    ---
    : "Manage the tags of a repository."}, {"name": "team", "description": "Create, list and manage an organization's teams."}, {"name": "trigger", "description": "Create, list and manage build triggers."}, {"name": "user", "description": "Manage the current user."}, {"name": "userfiles", "description": ""}]}
    ---
    Copy to Clipboard Toggle word wrap

6.3. Red Hat Quay API エラーの詳細を取得する

Red Hat Quay API エラーの詳細は、API を使用して検出できます。

エラーの詳細を確認するには、次の手順に従います。

前提条件

  • OAuth 2 アクセストークンを作成した。

手順

  • GET /api/v1/error/{error_type} エンドポイントを入力すると、API のエラーの詳細を取得できます。次のいずれかのエラーコードを含める必要があることに注意してください。

    Expand
    HTTP コード説明スキーマ

    200

    正常な呼び出し

    ApiErrorDescription

    400

    Bad Request (不適切な要求)

    ApiError

    401

    セッションが必要

    ApiError

    403

    不正アクセス

    ApiError

    404

    結果が見つからない

    ApiError

    $ curl -X GET "https://<quay-server.example.com>/api/v1/error/<error_type>" \
        -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    curl: (7) Failed to connect to quay-server.example.com port 443 after 0 ms: Couldn't connect to server
    Copy to Clipboard Toggle word wrap

6.4. グローバルメッセージ

グローバルメッセージは、Red Hat Quay API を使用して作成、取得、または削除できます。グローバルメッセージを作成、取得、または削除するには、次の手順に従います。

前提条件

  • OAuth 2 アクセストークンを作成した。

手順

  1. POST /api/v1/message エンドポイントを使用してメッセージを作成します。

    $ curl -X POST "https://<quay-server.example.com>/api/v1/messages" \
        -H "Authorization: Bearer <access_token>" \
        -H "Content-Type: application/json" \
        -d '{
            "message": {
                "content": "Hi",
                "media_type": "text/plain",
                "severity": "info"
            }
        }'
    Copy to Clipboard Toggle word wrap

    このコマンドは出力を返しません。

  2. GET /api/v1/messages コマンドを使用して、グローバルメッセージのリストを返します。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/messages" \
        -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"messages": [{"uuid": "ecababd4-3451-4458-b5db-801684137444", "content": "Hi", "severity": "info", "media_type": "text/plain"}]}
    Copy to Clipboard Toggle word wrap

  3. DELETE /api/v1/message/{uuid} エンドポイントを使用して、グローバルメッセージを削除します。

    $ curl -X DELETE "https://<quay-server.example.com>/api/v1/message/<uuid>" \
        -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    このコマンドは出力を返しません。

6.5. API を使用した使用状況ログの表示す

API を使用して、組織またはリポジトリー別にログを表示できます。ログは、集約 (グループ化) したり、より詳細にリスト表示したりすることもできます。ユーザー別、特定の日付範囲別、またはページ別に表示することもできます。

6.5.1. 集約されたログの表示

集約されたログは、組織、リポジトリー、特定のユーザー、または現在のユーザー別に表示できます。結果をフィルタリングするために、performerstarttime/endtimenext_page などのオプションのコマンドを渡すこともできます。

前提条件

手順

  1. GET /api/v1/user/aggregatelogs API エンドポイントを使用して、現在のユーザーの集約(またはグループ化)ログを返します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      "https://<quay-server.example.com>/api/v1/user/aggregatelogs"
    Copy to Clipboard Toggle word wrap

    出力例

    {"aggregated": [{"kind": "create_tag", "count": 1, "datetime": "Tue, 18 Jun 2024 00:00:00 -0000"}, {"kind": "manifest_label_add", "count": 1, "datetime": "Tue, 18 Jun 2024 00:00:00 -0000"}, {"kind": "push_repo", "count": 2, "datetime": "Tue, 18 Jun 2024 00:00:00 -0000"}, {"kind": "revert_tag", "count": 1, "datetime": "Tue, 18 Jun 2024 00:00:00 -0000"}]}
    Copy to Clipboard Toggle word wrap

    また、performerstarttime/endtime クエリーを渡して、特定期間における特定のユーザーの集約されたログを取得することもできます。以下に例を示します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      "<quay-server.example.com>/api/v1/user/aggregatelogs?performer=<username>&starttime=<MM/DD/YYYY>&endtime=<MM/DD/YYYY>"
    Copy to Clipboard Toggle word wrap
  2. 集計ログは、GET /api/v1/organization/{orgname}/aggregatelogs を使用して組織 で表示することもできます。以下に例を示します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      "<quay-server.example.com>/api/v1/organization/{orgname}/aggregatelogs"
    Copy to Clipboard Toggle word wrap
  3. 集計ログは、GET /api/v1/repository/{repository}/aggregatelogs コマンドを使用してリポジトリー で表示することもできます。次の例には、starttime/endtime フィールドが含まれています。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      "<quay-server.example.com>/api/v1/repository/<repository_name>/<namespace>/aggregatelogs?starttime=2024-01-01&endtime=2024-06-18""
    Copy to Clipboard Toggle word wrap

6.5.2. 詳細なログの表示

詳細なログは、組織、リポジトリー、特定のユーザー、または現在のユーザー別に表示できます。結果をフィルタリングするために、performerstarttime/endtimenext_page などのオプションのフィールドを渡すこともできます。

手順

  1. GET /api/v1/user/logs API エンドポイントを使用して、ユーザーのログエントリーの一覧を返します。以下に例を示します。

    $ curl -X GET   -H "Authorization: Bearer <bearer_token>"   -H "Accept: application/json"   "<quay-server.example.com>/api/v1/user/logs"
    Copy to Clipboard Toggle word wrap

    また、performerstartime/endtime クエリーを渡して、特定期間における特定のユーザーのログを取得することもできます。以下に例を示します。

    $ curl -X GET   -H "Authorization: Bearer <bearer_token>"   -H "Accept: application/json"   "http://quay-server.example.com/api/v1/user/logs?performer=quayuser&starttime=01/01/2024&endtime=06/18/2024"
    Copy to Clipboard Toggle word wrap

    出力例

    ---
    {"start_time": "Mon, 01 Jan 2024 00:00:00 -0000", "end_time": "Wed, 19 Jun 2024 00:00:00 -0000", "logs": [{"kind": "revert_tag", "metadata": {"username": "quayuser", "repo": "busybox", "tag": "test-two", "manifest_digest": "sha256:57583a1b9c0a7509d3417387b4f43acf80d08cdcf5266ac87987be3f8f919d5d"}, "ip": "192.168.1.131", "datetime": "Tue, 18 Jun 2024 18:59:13 -0000", "performer": {"kind": "user", "name": "quayuser", "is_robot": false, "avatar": {"name": "quayuser", "hash": "b28d563a6dc76b4431fc7b0524bbff6b810387dac86d9303874871839859c7cc", "color": "#17becf", "kind": "user"}}}, {"kind": "push_repo", "metadata": {"repo": "busybox", "namespace": "quayuser", "user-agent": "containers/5.30.1 (github.com/containers/image)", "tag": "test-two", "username": "quayuser", }
    ---
    Copy to Clipboard Toggle word wrap

  2. GET /api/v1/organization/{orgname}/logs エンドポイントを使用して、指定された組織のログを返します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      "http://<quay-server.example.com>/api/v1/organization/{orgname}/logs"
    Copy to Clipboard Toggle word wrap
  3. GET /api/v1/repository/{repository}/logs エンドポイントを使用して、指定されたリポジトリーのログを返します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      "http://<quay-server.example.com>/api/v1/repository/{repository}/logs"
    Copy to Clipboard Toggle word wrap

6.6. API を使用したログのエクスポート

詳細なログは、コールバック URL またはメールアドレスにエクスポートできます。

前提条件

手順

  1. 現在のユーザーのログをエクスポートするには、POST /api/v1/user/exportlogs エンドポイントを使用します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json" \
      -d '{
            "starttime": "<MM/DD/YYYY>",
            "endtime": "<MM/DD/YYYY>",
            "callback_email": "your.email@example.com"
          }' \
      "http://<quay-server.example.com>/api/v1/user/exportlogs"
    Copy to Clipboard Toggle word wrap

    出力例

    {"export_id": "6a0b9ea9-444c-4a19-9db8-113201c38cd4"}
    Copy to Clipboard Toggle word wrap

  2. POST /api/v1/organization/{orgname}/exportlogs エンドポイントを使用して、組織 のログをエクスポートします。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json" \
      -d '{
            "starttime": "<MM/DD/YYYY>",
            "endtime": "<MM/DD/YYYY>",
            "callback_email": "org.logs@example.com"
          }' \
      "http://<quay-server.example.com>/api/v1/organization/{orgname}/exportlogs"
    Copy to Clipboard Toggle word wrap
  3. POST /api/v1/repository/{repository}/exportlogs エンドポイントを使用して、リポジトリーのログをエクスポートします。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json" \
      -d '{
            "starttime": "2024-01-01",
            "endtime": "2024-06-18",
            "callback_url": "http://your-callback-url.example.com"
          }' \
      "http://<quay-server.example.com>/api/v1/repository/{repository}/exportlogs"
    Copy to Clipboard Toggle word wrap

6.7. API を使用してラベルを追加および管理する

Red Hat Quay 管理者は、以下の手順を使用して、API を使用してタグのラベルを追加および管理できます。

前提条件

手順

  1. GET /api/v1/repository/{repository}/manifest/{manifestref} コマンドを使用して、リポジトリー内の特定のマニフェストの詳細を取得します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>
    Copy to Clipboard Toggle word wrap
  2. GET /api/v1/repository/{repository}/manifest/{manifestref}/labels コマンドを使用して、特定のマニフェストのラベルのリストを取得します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels
    Copy to Clipboard Toggle word wrap

    出力例

    {"labels": [{"id": "e9f717d2-c1dd-4626-802d-733a029d17ad", "key": "org.opencontainers.image.url", "value": "https://github.com/docker-library/busybox", "source_type": "manifest", "media_type": "text/plain"}, {"id": "2d34ec64-4051-43ad-ae06-d5f81003576a", "key": "org.opencontainers.image.version", "value": "1.36.1-glibc", "source_type": "manifest", "media_type": "text/plain"}]}
    Copy to Clipboard Toggle word wrap

  3. GET /api/v1/repository/{repository}/manifest/{manifestref}/labels/{labelid} コマンドを使用して、特定のマニフェストに関する情報を取得します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels/<label_id>
    Copy to Clipboard Toggle word wrap

    出力例

    {"id": "e9f717d2-c1dd-4626-802d-733a029d17ad", "key": "org.opencontainers.image.url", "value": "https://github.com/docker-library/busybox", "source_type": "manifest", "media_type": "text/plain"}
    Copy to Clipboard Toggle word wrap

  4. POST /api/v1/repository/{repository}/manifest/{manifestref}/labels コマンドを使用して、特定のリポジトリーのマニフェストにラベル を追加できます。以下に例を示します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      --data '{
        "key": "<key>",
        "value": "<value>",
        "media_type": "<media_type>"
      }' \
      https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels
    Copy to Clipboard Toggle word wrap

    出力例

    {"label": {"id": "346593fd-18c8-49db-854f-4cb1fb76ff9c", "key": "example-key", "value": "example-value", "source_type": "api", "media_type": "text/plain"}}
    Copy to Clipboard Toggle word wrap

  5. DELETE /api/v1/repository/{repository}/manifest/{manifestref}/labels/{labelid} コマンドを使用してラベル を削除できます。

    $ curl -X DELETE \
      -H "Authorization: Bearer <bearer_token>" \
      https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels/<labelid>
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。上記のコマンドのいずれかを使用して、正常に削除されたことを確認できます。

6.8. API を使用してリポジトリーをミラーリングする

Red Hat Quay 管理者は、API を使用して外部リポジトリーをミラーリングできます。

前提条件

  • config.yaml ファイルで FEATURE_REPO_MIRROR: true を設定した。

手順

  • POST /api/v1/repository/{repository}/mirror エンドポイントを使用して、新しいリポジトリーミラー設定を作成します。

    $ curl -X POST "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror" \
        -H "Authorization: Bearer <access_token>" \
        -H "Content-Type: application/json" \
        -d '{
            "is_enabled": <is_enabled>,
            "external_reference": "<external_reference>",
            "external_registry_username": "<external_registry_username>",
            "external_registry_password": "<external_registry_password>",
            "sync_start_date": "<sync_start_date>",
            "sync_interval": <sync_interval>,
            "robot_username": "<robot_username>",
            "root_rule": {
                "rule": "<rule>",
                "rule_type": "<rule_type>"
            }
        }'
    Copy to Clipboard Toggle word wrap
  • GET /api/v1/repository/{repository}/mirror エンドポイントを使用して、ミラー設定に関する情報を返すことができます。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror" \
         -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"is_enabled": true, "mirror_type": "PULL", "external_reference": "https://quay.io/repository/argoproj/argocd", "external_registry_username": null, "external_registry_config": {}, "sync_interval": 86400, "sync_start_date": "2025-01-15T12:00:00Z", "sync_expiration_date": null, "sync_retries_remaining": 3, "sync_status": "NEVER_RUN", "root_rule": {"rule_kind": "tag_glob_csv", "rule_value": ["*.latest*"]}, "robot_username": "quayadmin+mirror_robot"}
    Copy to Clipboard Toggle word wrap

  • リポジトリーを同期するには、POST /api/v1/repository/{repository}/mirror/sync-now エンドポイントを使用します。以下に例を示します。

    $ curl -X POST "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror/sync-now" \
         -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

  • POST /api/v1/repository/{repository}/mirror/sync-cancel エンドポイントを使用して、同期をキャンセルすることもできます。以下はその例です。

    $ curl -X POST "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror/sync-cancel" \
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

  • ミラー設定を作成した後、PUT /api/v1/repository/{repository}/mirror コマンドを使用して変更を加えることができます。たとえば、自動同期を無効にする場合は次のようになります。

    $ curl -X PUT "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror" \
        -H "Authorization: Bearer <access_token>" \
        -H "Content-Type: application/json" \
        -d '{
            "is_enabled": <false>, 
    1
    
            "external_reference": "<external_reference>",
            "external_registry_username": "<external_registry_username>",
            "external_registry_password": "<external_registry_password>",
            "sync_start_date": "<sync_start_date>",
            "sync_interval": <sync_interval>,
            "robot_username": "<robot_username>",
            "root_rule": {
                "rule": "<rule>",
                "rule_type": "<rule_type>"
            }
        }'
    Copy to Clipboard Toggle word wrap
    1
    自動同期を無効にします。

6.9. Red Hat Quay API を使用したクォータの確立

組織またはユーザーのクォータを設定し、レジストリーのニーズに合わせてクォータポリシーをカスタマイズできます。

次のセクションでは、組織とユーザーのクォータを設定する方法と、それらの設定を変更する方法を説明します。

6.9.1. Red Hat Quay API を使用した組織のクォータの管理

組織を初めて作成した時点では、クォータは設定されていません。API を使用して、組織のクォータ制限を確認、作成、変更、または削除できます。

前提条件

  • OAuth アクセストークンを生成した。

手順

  1. 組織のクォータを設定するには、POST /api/v1/organization/{orgname}/quota エンドポイントを使用します。

    $ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota" \
         -H "Authorization: Bearer <access_token>" \
         -H "Content-Type: application/json" \
         -d '{
             "limit_bytes": 10737418240,
             "limits": "10 Gi"
         }'
    Copy to Clipboard Toggle word wrap

    出力例

    "Created"
    Copy to Clipboard Toggle word wrap

  2. GET /api/v1/organization/{orgname}/quota コマンドを使用して、他の組織のクォータエンドポイントに必要なポリシーに関する情報 (ID 番号など) を返します。以下に例を示します。

    $ curl -k -X GET -H "Authorization: Bearer <token>" -H 'Content-Type: application/json'  https://example-registry-quay-quay-enterprise.apps.docs.gcp.quaydev.org/api/v1/organization/testorg/quota  | jq
    Copy to Clipboard Toggle word wrap

    出力例

    [{"id": 1, "limit_bytes": 10737418240, "limit": "10.0 GiB", "default_config": false, "limits": [], "default_config_exists": false}]
    Copy to Clipboard Toggle word wrap

    ID 番号を取得したら、GET /api/v1/organization/{orgname}/quota/{quota_id} コマンドを使用してクォータポリシーをリスト表示できます。以下に例を示します。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>" \
         -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"id": 1, "limit_bytes": 10737418240, "limit": "10.0 GiB", "default_config": false, "limits": [], "default_config_exists": false}
    Copy to Clipboard Toggle word wrap

  3. 既存のクォータ制限を変更するには、PUT /api/v1/organization/{orgname}/quota/{quota_id} コマンドを使用します。その場合はポリシー ID が必要であることに注意してください。以下に例を示します。

    $ curl -X PUT "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>" \
         -H "Authorization: Bearer <access_token>" \
         -H "Content-Type: application/json" \
         -d '{
             "limit_bytes": <limit_in_bytes>
         }'
    Copy to Clipboard Toggle word wrap

    出力例

    {"id": 1, "limit_bytes": 21474836480, "limit": "20.0 GiB", "default_config": false, "limits": [], "default_config_exists": false}
    Copy to Clipboard Toggle word wrap

  4. 組織のクォータを削除するには、DELETE /api/v1/organization/{orgname}/quota/{quota_id} コマンドを使用します。以下に例を示します。

    $ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>" \
         -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    このコマンドは出力を返しません。

6.9.2. Red Hat Quay API を使用して組織のクォータ制限を設定する

組織に対して特定のクォータ制限を設定すると、それを超過した場合に警告が返されるか、プッシュされたイメージが完全に拒否されるようになります。

手順

  1. POST /api/v1/organization/{orgname}/quota/{quota_id}/limit コマンドを使用して、割り当てられたクォータを超えた場合にイメージを拒否するクォータポリシーを作成します。以下に例を示します。

    $ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>/limit" \
         -H "Authorization: Bearer <access_token>" \
         -H "Content-Type: application/json" \
         -d '{
               "limit_bytes": 21474836480,
               "type": "Reject", 
    1
    
               "threshold_percent": 90 
    2
    
             }'
    Copy to Clipboard Toggle word wrap
    1
    Reject または Warning のいずれか。
    2
    クォータのしきい値 (クォータに対するパーセント単位の割合)

    出力例

    "Created"
    Copy to Clipboard Toggle word wrap

  2. GET /api/v1/organization/{orgname}/quota/{quota_id}/limit を使用して、クォータ制限の ID を取得します。以下に例を示します。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>/limit" \
         -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    [{"id": 2, "type": "Reject", "limit_percent": 90}]
    Copy to Clipboard Toggle word wrap

  1. PUT/api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id} エンドポイントを使用して、ポリシーを更新します。以下に例を示します。

    $ curl -X PUT "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>/limit/<limit_id>" \
         -H "Authorization: Bearer <access_token>" \
         -H "Content-Type: application/json" \
         -d '{
               "type": "<type>",
               "threshold_percent": <threshold_percent>
             }'
    Copy to Clipboard Toggle word wrap

    出力例

    {"id": 3, "limit_bytes": 10737418240, "limit": "10.0 GiB", "default_config": false, "limits": [{"id": 2, "type": "Warning", "limit_percent": 80}], "default_config_exists": false}
    Copy to Clipboard Toggle word wrap

  2. DELETE/api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id} エンドポイントを使用して、クォータ制限を削除できます。

    $ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>/limit/<limit_id>" \
         -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    このコマンドは出力を返しません。

6.9.3. Red Hat Quay API を使用してユーザーのクォータ制限を取得する

ユーザーに対してクォータと制限を指定して、それを超過した場合に警告が返されるか、プッシュされたイメージが完全に拒否されるようにできます。ユーザーのクォータ制限は、Red Hat Quay UI で設定する必要があります。次の API を使用して、ログインしているユーザーのクォータ制限を表示できます。

手順

  1. GET /api/v1/user/quota コマンドを使用して、クォータ制限に関する情報を返します。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/user/quota" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    [{"id": 4, "limit_bytes": 2199023255552, "limit": "2.0 TiB", "default_config": false, "limits": [], "default_config_exists": false}]
    Copy to Clipboard Toggle word wrap

  2. クォータ ID を受け取ったら、GET /api/v1/user/quota/{quota_id} エンドポイントでそれを渡し、制限に関する情報を返すことができます。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/user/quota/{quota_id}" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"id": 4, "limit_bytes": 2199023255552, "limit": "2.0 TiB", "default_config": false, "limits": [], "default_config_exists": false}
    Copy to Clipboard Toggle word wrap

  3. 制限は、GET /api/v1/user/quota/{quota_id}/limit エンドポイントを使用して確認できます。以下に例を示します。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/user/quota/{quota_id}/limit" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    [{"id": 3, "type": "Reject", "limit_percent": 100}]
    Copy to Clipboard Toggle word wrap

  4. GET /api/v1/user/quota/{quota_id}/limit/{limit_id} エンドポイントを使用して、ポリシー全体に関する追加情報を返すことができます。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/user/quota/{quota_id}/limit/{limit_id}" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"id": 4, "limit_bytes": 2199023255552, "limit": "2.0 TiB", "default_config": false, "limits": [{"id": 3, "type": "Reject", "limit_percent": 100}], "default_config_exists": false}
    Copy to Clipboard Toggle word wrap

6.10. Red Hat Quay API を使用したクォータの確立

組織は API エンドポイントを通じて作成および管理できます。Red Hat Quay API を使用すると、組織の作成、組織情報の表示、組織のプロキシーキャッシュの作成、組織へのアクセス権を持つユーザーの編集、組織の詳細の変更、組織の削除などを実行できます。

6.10.1. Red Hat Quay API を使用した組織の作成

Red Hat Quay API を使用して新しい組織を作成するには、次の手順に従います。

前提条件

手順

  1. 次のコマンドを入力して、POST /api/v1/organization/ エンドポイントを使用して新しい組織 を作成します。

    $ curl -X POST   -H "Authorization: Bearer <bearer_token>" -H "Content-Type: application/json"   -d '{
        "name": "<new_organization_name>"
      }'   "https://<quay-server.example.com>/api/v1/organization/"
    Copy to Clipboard Toggle word wrap

    出力例

    "Created"
    Copy to Clipboard Toggle word wrap
  2. 作成後、PUT /api/v1/organization/{orgname} コマンドを使用して、メールアドレスの追加など、組織の詳細を変更できます。以下に例を示します。

    $ curl -X PUT "https://<quay-server.example.com>/api/v1/organization/<orgname>" \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "email": "<org_email>",
            "invoice_email": <true/false>,
            "invoice_email_address": "<billing_email>"
          }'
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "test", "email": "new-contact@test-org.com", "avatar": {"name": "test", "hash": "a15d479002b20f211568fd4419e76686d2b88a4980a5b4c4bc10420776c5f6fe", "color": "#aec7e8", "kind": "user"}, "is_admin": true, "is_member": true, "teams": {"owners": {"name": "owners", "description": "", "role": "admin", "avatar": {"name": "owners", "hash": "6f0e3a8c0eb46e8834b43b03374ece43a030621d92a7437beb48f871e90f8d90", "color": "#c7c7c7", "kind": "team"}, "can_view": true, "repo_count": 0, "member_count": 1, "is_synced": false}}, "ordered_teams": ["owners"], "invoice_email": true, "invoice_email_address": "billing@test-org.com", "tag_expiration_s": 1209600, "is_free_account": true, "quotas": [{"id": 2, "limit_bytes": 10737418240, "limits": [{"id": 1, "type": "Reject", "limit_percent": 90}]}], "quota_report": {"quota_bytes": 0, "configured_quota": 10737418240, "running_backfill": "complete", "backfill_status": "complete"}}
    Copy to Clipboard Toggle word wrap

6.10.2. Red Hat Quay API を使用した組織の削除

Red Hat Quay API を使用して組織を削除するには、次の手順に従います。

前提条件

手順

  1. 以下のコマンドを入力して、DELETE /api/v1/organization/{orgname} エンドポイントを使用して組織 を削除します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <bearer_token>" \
      "https://<quay-server.example.com>/api/v1/organization/<organization_name>"
    Copy to Clipboard Toggle word wrap
  2. CLI から組織を削除する場合、CLI は情報を返しません。削除を確認するには、Red Hat Quay UI を確認するか、GET /api/v1/organization/{orgname} コマンドを入力して、削除された組織 の詳細が返されているかどうかを確認します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"detail": "Not Found", "error_message": "Not Found", "error_type": "not_found", "title": "not_found", "type": "http://<quay-server.example.com>/api/v1/error/not_found", "status": 404}
    Copy to Clipboard Toggle word wrap

6.10.3. API を使用して組織メンバーの情報を取得する

組織メンバーに関する情報は、Red Hat Quay API を使用して取得できます。

手順

  1. GET /api/v1/organization/{orgname}/members 使用して、組織メンバーのリストを返します。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/members" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"members": [{"name": "quayadmin", "kind": "user", "avatar": {"name": "quayadmin", "hash": "6d640d802fe23b93779b987c187a4b7a4d8fbcbd4febe7009bdff58d84498fba", "color": "#f7b6d2", "kind": "user"}, "teams": [{"name": "owners", "avatar": {"name": "owners", "hash": "6f0e3a8c0eb46e8834b43b03374ece43a030621d92a7437beb48f871e90f8d90", "color": "#c7c7c7", "kind": "team"}}], "repositories": ["testrepo"]}, {"name": "testuser", "kind": "user", "avatar": {"name": "testuser", "hash": "f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a", "color": "#6b6ecf", "kind": "user"}, "teams": [{"name": "owners", "avatar": {"name": "owners", "hash": "6f0e3a8c0eb46e8834b43b03374ece43a030621d92a7437beb48f871e90f8d90", "color": "#c7c7c7", "kind": "team"}}], "repositories": []}]}
    Copy to Clipboard Toggle word wrap

  2. GET /api/v1/organization/{orgname}/collaborators 使用して、組織の共同作業者のリストを返すことができます。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/organization/{orgname}/collaborators" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"collaborators": [user-test]}
    Copy to Clipboard Toggle word wrap

  3. ユーザーに関するより具体的な情報を取得するには、GET /api/v1/organization/{orgname}/members/{membername} エンドポイントを使用します。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/members/<membername>" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "quayadmin", "kind": "user", "avatar": {"name": "quayadmin", "hash": "6d640d802fe23b93779b987c187a4b7a4d8fbcbd4febe7009bdff58d84498fba", "color": "#f7b6d2", "kind": "user"}, "teams": [{"name": "owners", "avatar": {"name": "owners", "hash": "6f0e3a8c0eb46e8834b43b03374ece43a030621d92a7437beb48f871e90f8d90", "color": "#c7c7c7", "kind": "team"}}], "repositories": ["testrepo"]}
    Copy to Clipboard Toggle word wrap

  4. チームメンバーを削除するには、DELETE /api/v1/organization/{orgname}/members/{membername} エンドポイントを使用します。

    $ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/<orgname>/members/<membername>" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    このコマンドは出力を返しません。

6.10.4. Red Hat Quay API を使用して組織アプリケーションを作成する

組織アプリケーションは、Red Hat Quay UI を使用して作成できます。

注記

組織アプリケーションは UI を使用して作成できますが、OAuth 2 アクセストークンは UI で作成する必要があります。

手順

  1. 組織用の新しいアプリケーションを作成するには、POST /api/v1/organization/{orgname}/applications エンドポイントを使用します。以下に例を示します。

    $ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications" \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "name": "<app_name>",
            "redirect_uri": "<redirect_uri>",
            "application_uri": "<application_uri>",
            "description": "<app_description>",
            "avatar_email": "<avatar_email>"
          }'
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "new-application", "description": "", "application_uri": "", "client_id": "E6GJSHOZMFBVNHTHNB53", "client_secret": "SANSWCWSGLVAUQ60L4Q4CEO3C1QAYGEXZK2VKJNI", "redirect_uri": "", "avatar_email": null}
    Copy to Clipboard Toggle word wrap

  2. GET /api/v1/organization/{orgname}/applications エンドポイントを使用して、すべての組織アプリケーションのリストを返します。以下に例を示します。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"applications": [{"name": "test", "description": "", "application_uri": "", "client_id": "MCJ61D8KQBFS2DXM56S2", "client_secret": "J5G7CCX5QCA8Q5XZLWGI7USJPSM4M5MQHJED46CF", "redirect_uri": "", "avatar_email": null}, {"name": "new-token", "description": "", "application_uri": "", "client_id": "IG58PX2REEY9O08IZFZE", "client_secret": "2LWTWO89KH26P2CO4TWFM7PGCX4V4SUZES2CIZMR", "redirect_uri": "", "avatar_email": null}, {"name": "second-token", "description": "", "application_uri": "", "client_id": "6XBK7QY7ACSCN5XBM3GS", "client_secret": "AVKBOUXTFO3MXBBK5UJD5QCQRN2FWL3O0XPZZT78", "redirect_uri": "", "avatar_email": null}, {"name": "new-application", "description": "", "application_uri": "", "client_id": "E6GJSHOZMFBVNHTHNB53", "client_secret": "SANSWCWSGLVAUQ60L4Q4CEO3C1QAYGEXZK2VKJNI", "redirect_uri": "", "avatar_email": null}]}
    Copy to Clipboard Toggle word wrap

    GET/api/v1/organization/{orgname}/applications/{client_id} エンドポイントを使用して、特定のクライアントのアプリケーションを返すこともできます。以下に例を示します。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications/<client_id>" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "test", "description": "", "application_uri": "", "client_id": "MCJ61D8KQBFS2DXM56S2", "client_secret": "J5G7CCX5QCA8Q5XZLWGI7USJPSM4M5MQHJED46CF", "redirect_uri": "", "avatar_email": null}
    Copy to Clipboard Toggle word wrap

  3. 作成後に、組織アプリケーションを更新できます。たとえば、リダイレクト URI や新しい説明を追加する場合は、PUT /api/v1/organization/{orgname}/applications/{client_id} エンドポイントを使用します。

    $ curl -X PUT "https://quay-server.example.com/api/v1/organization/test/applications/12345" \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "name": "Updated Application Name",
            "redirect_uri": "https://example.com/oauth/callback",
            "application_uri": "https://example.com",
            "description": "Updated description for the application",
            "avatar_email": "avatar@example.com"
          }'
    Copy to Clipboard Toggle word wrap
  4. 作成後、GET /api/v1/app/{client_id} エンドポイントを使用してアプリケーション情報を返すことができます。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/app/<client_id>" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "new-application3", "description": "", "uri": "", "avatar": {"name": "new-application3", "hash": "a15d479002b20f211568fd4419e76686d2b88a4980a5b4c4bc10420776c5f6fe", "color": "#aec7e8", "kind": "app"}, "organization": {"name": "test", "email": "new-contact@test-org.com", "avatar": {"name": "test", "hash": "a15d479002b20f211568fd4419e76686d2b88a4980a5b4c4bc10420776c5f6fe", "color": "#aec7e8", "kind": "user"}, "is_admin": true, "is_member": true, "teams": {}, "ordered_teams": [], "invoice_email": true, "invoice_email_address": "billing@test-org.com", "tag_expiration_s": 1209600, "is_free_account": true, "quotas": [{"id": 2, "limit_bytes": 10737418240, "limits": [{"id": 1, "type": "Reject", "limit_percent": 90}]}], "quota_report": {"quota_bytes": 0, "configured_quota": 10737418240, "running_backfill": "complete", "backfill_status": "complete"}}}
    Copy to Clipboard Toggle word wrap

  5. 組織アプリケーション、DELETE /api/v1/organization/{orgname}/applications/{client_id} エンドポイントを使用して削除できます。以下に例を示します。

    $ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/{orgname}/applications/{client_id}" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    このコマンドは出力を返しません。

6.10.5. Red Hat Quay API を使用して組織のプロキシーキャッシュを設定する

組織のプロキシーキャッシュは、Red Hat Quay API を使用して設定できます。

手順

  1. 組織のプロキシーキャッシュ設定を作成するには、POST /api/v1/organization/{orgname}/proxycache エンドポイントを使用します。

    $ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/proxycache" \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "upstream_registry": "<upstream_registry>"
          }'
    Copy to Clipboard Toggle word wrap
  2. プロキシー設定を検証するには、POST /api/v1/organization/{orgname}/validateproxycache エンドポイントを使用します。

    $ curl -X POST "https://<quay-server.example.com>/api/v1/organization/{orgname}/validateproxycache" \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "upstream_registry": "<upstream_registry>"
          }'
    Copy to Clipboard Toggle word wrap
  3. プロキシーキャッシュに関する情報を取得するには、GET /api/v1/organization/{orgname}/proxycache エンドポイントを使用します。以下に例を示します。

    $ curl -X GET "https://<quay-server.example.com>/api/v1/organization/{orgname}/proxycache" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"upstream_registry": "quay.io", "expiration_s": 86400, "insecure": false}
    Copy to Clipboard Toggle word wrap

  4. DELETE /api/v1/organization/{orgname}/proxycache エンドポイントを使用します。

    $ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/{orgname}/proxycache" \
      -H "Authorization: Bearer <access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    "Deleted"
    Copy to Clipboard Toggle word wrap

6.11. Red Hat Quay API を使用してリポジトリー権限を管理する

リポジトリー権限は、Red Hat Quay API を使用して管理できます。たとえば、ユーザーおよびチームの権限を作成、表示、削除できます。

次の手順は、Red Hat Quay API を使用してリポジトリー権限を管理する方法を示しています。

6.11.1. Red Hat Quay API を使用してユーザー権限を管理する

Red Hat Quay API を使用してユーザー権限を管理するには、次の手順に従います。

手順

  1. ユーザーのリポジトリー権限を取得するには、GET /api/v1/repository/{repository}/permissions/user/{username} エンドポイントを使用します。以下に例を示します。

    $ curl -X GET \
      -H "Authorization: Bearer <access_token>" \
      "https://quay-server.example.com/api/v1/repository/<repository_path>/permissions/user/<username>"
    Copy to Clipboard Toggle word wrap

    出力例

    $ {"role": "read", "name": "testuser", "is_robot": false, "avatar": {"name": "testuser", "hash": "f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a", "color": "#6b6ecf", "kind": "user"}, "is_org_member": false}
    Copy to Clipboard Toggle word wrap

  2. すべてのユーザー権限は GET /api/v1/repository/{repository}/permissions/user/ エンドポイントを使用して返せます。

    $ curl -X GET \
      -H "Authorization: Bearer <access_token>" \
      "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/user/"
    Copy to Clipboard Toggle word wrap

    出力例

    {"permissions": {"quayadmin": {"role": "admin", "name": "quayadmin", "is_robot": false, "avatar": {"name": "quayadmin", "hash": "6d640d802fe23b93779b987c187a4b7a4d8fbcbd4febe7009bdff58d84498fba", "color": "#f7b6d2", "kind": "user"}, "is_org_member": true}, "test+example": {"role": "admin", "name": "test+example", "is_robot": true, "avatar": {"name": "test+example", "hash": "3b03050c26e900500437beee4f7f2a5855ca7e7c5eab4623a023ee613565a60e", "color": "#a1d99b", "kind": "robot"}, "is_org_member": true}}}
    Copy to Clipboard Toggle word wrap

  3. または、GET /api/v1/repository/{repository}/permissions/user/{username}/transitive エンドポイントを使用して、ユーザーのリポジトリー権限のみを返すこともできます。

    $ curl -X GET \
      -H "Authorization: Bearer <access_token>" \
      "https://quay-server.example.com/api/v1/repository/<repository_path>/permissions/user/<username>/transitive"
    Copy to Clipboard Toggle word wrap

    出力例

    {"permissions": [{"role": "admin"}]}
    Copy to Clipboard Toggle word wrap

  4. PUT /api/v1/repository/{repository}/permissions/user/{username} エンドポイントを使用して、ユーザーを admin にするなど、ユーザーの権限を変更できます。以下に例を示します。

    $ curl -X PUT \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{"role": "<role>"}' \
      "https://quay-server.example.com/api/v1/repository/<repository_path>/permissions/user/<username>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"role": "admin", "name": "testuser", "is_robot": false, "avatar": {"name": "testuser", "hash": "f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a", "color": "#6b6ecf", "kind": "user"}, "is_org_member": false}
    Copy to Clipboard Toggle word wrap

  5. ユーザー権限は、DELETE /api/v1/repository/{repository}/permissions/user/{username} エンドポイントを使用して削除できます。以下に例を示します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <access_token>" \
      "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/user/<username>"
    Copy to Clipboard Toggle word wrap

    このコマンドは出力を返しません。

6.11.2. Red Hat Quay API を使用してチーム権限を管理する

Red Hat Quay API を使用してチーム権限を管理するには、次の手順に従います。

  1. 指定されたチームの権限は、GET /api/v1/repository/{repository}/permissions/team/{teamname} エンドポイントを使用して返せます。

    $ curl -X GET \
      -H "Authorization: Bearer <access_token>" \
      "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/<teamname>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"role": "write"}
    Copy to Clipboard Toggle word wrap

  2. すべてのチームの権限は、GET /api/v1/repository/{repository}/permissions/team/ エンドポイントを使用して返せます。以下に例を示します。

    $ curl -X GET \
      -H "Authorization: Bearer <access_token>" \
      "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/"
    Copy to Clipboard Toggle word wrap

    出力例

    {"permissions": {"ironmanteam": {"role": "read", "name": "ironmanteam", "avatar": {"name": "ironmanteam", "hash": "8045b2361613622183e87f33a7bfc54e100a41bca41094abb64320df29ef458d", "color": "#969696", "kind": "team"}}, "sillyteam": {"role": "read", "name": "sillyteam", "avatar": {"name": "sillyteam", "hash": "f275d39bdee2766d2404e2c6dbff28fe290969242e9fcf1ffb2cde36b83448ff", "color": "#17becf", "kind": "team"}}}}
    Copy to Clipboard Toggle word wrap

  3. 指定されたチームの権限は、PUT /api/v1/repository/{repository}/permissions/team/{teamname} コマンドを使用して変更できます。以下に例を示します。

    $ curl -X PUT \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{"role": "<role>"}' \
      "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/<teamname>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"role": "admin", "name": "superteam", "avatar": {"name": "superteam", "hash": "48cb6d114200039fed5c601480653ae7371d5a8849521d4c3bf2418ea013fc0f", "color": "#9467bd", "kind": "team"}}
    Copy to Clipboard Toggle word wrap

  4. チーム権限は、DELETE /api/v1/repository/{repository}/permissions/team/{teamname} ンドを使用して削除できます。以下に例を示します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <access_token>" \
      "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/<teamname>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

6.12. Red Hat Quay API を使用して自動プルーニングポリシーを管理する

Red Hat Quay API を使用して、組織、リポジトリー、ユーザーに対して自動プルーニングポリシーを作成、取得、変更、削除できます。

手順

  1. 次のコマンドを入力し、POST /api/v1/repository エンドポイントを使用してリポジトリーを作成します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "repository": "<new_repository_name>",
        "visibility": "<private>",
        "description": "<This is a description of the new repository>."
      }' \
      "https://quay-server.example.com/api/v1/repository"
    Copy to Clipboard Toggle word wrap

    出力例

    {"namespace": "quayadmin", "name": "<new_repository_name>", "kind": "image"}
    Copy to Clipboard Toggle word wrap

  2. GET /api/v1/ repository エンドポイントでリポジトリーをリスト表示できます。以下に例を示します。

    $ curl -X GET \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      "https://quay-server.example.com/api/v1/repository?public=true&starred=false&namespace=<NAMESPACE>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"repositories": [{"namespace": "quayadmin", "name": "busybox", "description": null, "is_public": false, "kind": "image", "state": "MIRROR", "is_starred": false, "quota_report": {"quota_bytes": 2280675, "configured_quota": 2199023255552}}]}
    Copy to Clipboard Toggle word wrap

  3. 可視性は、POST /api/v1/repository/{repository}/changevisibility エンドポイントでパブリックからプライベートに変更 できます。

    $ curl -X POST \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
            "visibility": "private"
          }' \
      "https://quay-server.example.com/api/v1/repository/<NAMESPACE>/<REPO_NAME>/changevisibility"
    Copy to Clipboard Toggle word wrap

    出力例

    {"success": true}
    Copy to Clipboard Toggle word wrap

  4. Red Hat Quay UI を確認するか、以下の GET /api/v1/repository/{repository} コマンドを入力して、リポジトリー の詳細を返すことができます。

    $ curl -X GET -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"detail": "Not Found", "error_message": "Not Found", "error_type": "not_found", "title": "not_found", "type": "http://quay-server.example.com/api/v1/error/not_found", "status": 404}
    Copy to Clipboard Toggle word wrap
  5. リポジトリーの説明は PUT /api/v1/repository/{repository} エンドポイントで更新できます。

    $ curl -X PUT \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "description": "This is an updated description for the repository."
          }' \
      "https://quay-server.example.com/api/v1/repository/<NAMESPACE>/<REPOSITORY>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"success": true}
    Copy to Clipboard Toggle word wrap

  6. 以下のコマンドを入力して、DELETE /api/v1/repository/{repository} エンドポイントを使用してリポジトリー を削除します。

    $ curl -X DELETE   -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

6.12.1. Red Hat Quay API を使用した名前空間の自動プルーニングポリシーの作成

Red Hat Quay API エンドポイントを使用して、名前空間の自動プルーニングポリシーを管理できます。

前提条件

  • config.yaml ファイルで BROWSER_API_CALLS_XHR_ONLY: false を設定している。
  • OAuth アクセストークンを作成している。
  • Red Hat Quay にログインしている。

手順

  1. 次の POST /api/v1/organization/{orgname}/autoprunepolicy/ コマンドを入力して、組織で許可されるタグの数を制限する新しいポリシーを作成します。

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags", "value": 10}' http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/
    Copy to Clipboard Toggle word wrap

    または、タグの作成日から指定期間が経過すると期限切れになるようにタグを設定することもできます。

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{
    "method": "creation_date", "value": "7d"}' http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/
    Copy to Clipboard Toggle word wrap

    出力例

    {"uuid": "73d64f05-d587-42d9-af6d-e726a4a80d6e"}
    Copy to Clipboard Toggle word wrap

  2. オプション: 組織にポリシーを追加し、tagPattern フィールドと tagPatternMatches フィールドを渡して、指定された正規表現パターンに一致するタグのみをプルーニングできます。以下に例を示します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "method": "creation_date",
        "value": "7d",
        "tagPattern": "^v*",
        "tagPatternMatches": <true> 
    1
    
      }' \
      "https://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/"
    Copy to Clipboard Toggle word wrap
    1
    tagPatternMatchestrue に設定すると、指定された正規表現パターンに一致するタグがプルーニングされます。この例では、^v* に一致するタグがプルーニングされます。

    出力例

    {"uuid": "ebf7448b-93c3-4f14-bf2f-25aa6857c7b0"}
    Copy to Clipboard Toggle word wrap

  3. PUT /api/v1/organization/{orgname}/autoprunepolicy/{policy_uuid} コマンドを使用して、組織の自動プルーニングポリシーを更新できます。以下に例を示します。

    $ curl -X PUT   -H "Authorization: Bearer <bearer_token>"   -H "Content-Type: application/json"   -d '{
        "method": "creation_date",
        "value": "4d",
        "tagPattern": "^v*",
        "tagPatternMatches": true
      }'   "<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/<uuid>"
    Copy to Clipboard Toggle word wrap

    このコマンドは出力を返しません。次のステップに進みます。

  4. 次のコマンドを入力して、自動プルーニングポリシーを確認します。

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/
    Copy to Clipboard Toggle word wrap

    出力例

    {"policies": [{"uuid": "ebf7448b-93c3-4f14-bf2f-25aa6857c7b0", "method": "creation_date", "value": "4d", "tagPattern": "^v*", "tagPatternMatches": true}, {"uuid": "da4d0ad7-3c2d-4be8-af63-9c51f9a501bc", "method": "number_of_tags", "value": 10, "tagPattern": null, "tagPatternMatches": true}, {"uuid": "17b9fd96-1537-4462-a830-7f53b43f94c2", "method": "creation_date", "value": "7d", "tagPattern": "^v*", "tagPatternMatches": true}]}
    Copy to Clipboard Toggle word wrap

  5. 次のコマンドを入力すると、組織の自動プルーニングポリシーを削除できます。ポリシーを削除するには UUID が必要であることに注意してください。

    $ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/73d64f05-d587-42d9-af6d-e726a4a80d6e
    Copy to Clipboard Toggle word wrap

6.12.2. API を使用した現行ユーザーの名前空間の自動プルーニングポリシーの作成

Red Hat Quay API エンドポイントを使用して、自分のアカウントの自動プルーニングポリシーを管理できます。

注記

以下のコマンドで使用している /user/ は、現在 Red Hat Quay にログインしているユーザーを表しています。

前提条件

  • config.yaml ファイルで BROWSER_API_CALLS_XHR_ONLY: false を設定している。
  • OAuth アクセストークンを作成している。
  • Red Hat Quay にログインしている。

手順

  1. 次の POST コマンドを入力して、現在のユーザーのタグ数を制限する新しいポリシーを作成します。

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags", "value": 10}' http://<quay-server.example.com>/api/v1/user/autoprunepolicy/
    Copy to Clipboard Toggle word wrap

    出力例

    {"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859"}
    Copy to Clipboard Toggle word wrap

  2. 次のコマンドを入力して、自動プルーニングポリシーを確認します。

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/user/autoprunepolicy/
    Copy to Clipboard Toggle word wrap

    または、UUID を含めることもできます。

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/user/autoprunepolicy/8c03f995-ca6f-4928-b98d-d75ed8c14859
    Copy to Clipboard Toggle word wrap

    出力例

    {"policies": [{"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859", "method": "number_of_tags", "value": 10}]}
    Copy to Clipboard Toggle word wrap

  3. 次のコマンドを入力すると、自動プルーニングポリシーを削除できます。ポリシーを削除するには UUID が必要であることに注意してください。

    $ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/user/autoprunepolicy/8c03f995-ca6f-4928-b98d-d75ed8c14859
    Copy to Clipboard Toggle word wrap

    出力例

    {"uuid": "8c03f995-ca6f-4928-b98d-d75ed8c14859"}
    Copy to Clipboard Toggle word wrap

6.12.3. Red Hat Quay API を使用したリポジトリーの自動プルーニングポリシーの作成

Red Hat Quay API エンドポイントを使用して、リポジトリーの自動プルーニングポリシーを管理できます。

前提条件

  • config.yaml ファイルで BROWSER_API_CALLS_XHR_ONLY: false を設定している。
  • OAuth アクセストークンを作成している。
  • Red Hat Quay にログインしている。

手順

  1. 次の POST /api/v1/repository/{repository}/autoprunepolicy/ コマンドを入力して、組織で許可されるタグの数を制限する新しいポリシーを作成します。

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags","value": 2}' http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/
    Copy to Clipboard Toggle word wrap

    または、タグの作成日から指定期間が経過すると期限切れになるようにタグを設定することもできます。

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "creation_date", "value": "7d"}' http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/
    Copy to Clipboard Toggle word wrap

    出力例

    {"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7"}
    Copy to Clipboard Toggle word wrap

  2. オプション: ポリシーを追加し、tagPattern フィールドと tagPatternMatches フィールドを渡して、指定された正規表現パターンに一致するタグのみをプルーニングできます。以下に例を示します。

    $ curl -X POST \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "method": "<creation_date>",
        "value": "<7d>",
        "tagPattern": "<^test.>*",
        "tagPatternMatches": <false> 
    1
    
      }' \
      "https://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/"
    Copy to Clipboard Toggle word wrap
    1
    tagPatternMatchesfalse に設定すると、指定された正規表現パターンに 一致しない すべてのタグがプルーニングされます。この例では、^test. 以外 のすべてのタグがプルーニングされます。

    出力例

    {"uuid": "b53d8d3f-2e73-40e7-96ff-736d372cd5ef"}
    Copy to Clipboard Toggle word wrap

  3. PUT /api/v1/repository/{repository}/autoprunepolicy/{policy_uuid} コマンドを使用して UUID を渡すことで、リポジトリーのポリシーを更新できます。以下に例を示します。

    $ curl -X PUT \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "method": "number_of_tags",
        "value": "5",
        "tagPattern": "^test.*",
        "tagPatternMatches": true
      }' \
      "https://quay-server.example.com/api/v1/repository/<namespace>/<repo_name>/autoprunepolicy/<uuid>"
    Copy to Clipboard Toggle word wrap

    このコマンドは出力を返しません。次の手順に進み、自動プルーニングポリシーを確認します。

  4. 次のコマンドを入力して、自動プルーニングポリシーを確認します。

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/
    Copy to Clipboard Toggle word wrap

    または、UUID を含めることもできます。

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7
    Copy to Clipboard Toggle word wrap

    出力例

    {"policies": [{"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7", "method": "number_of_tags", "value": 10}]}
    Copy to Clipboard Toggle word wrap

  5. 次のコマンドを入力すると、自動プルーニングポリシーを削除できます。ポリシーを削除するには UUID が必要であることに注意してください。

    $ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7
    Copy to Clipboard Toggle word wrap

    出力例

    {"uuid": "ce2bdcc0-ced2-4a1a-ac36-78a9c1bed8c7"}
    Copy to Clipboard Toggle word wrap

6.12.4. API を使用するユーザーのリポジトリーでの自動プルーニングポリシーの作成

リポジトリーに対する admin 権限がある限り、Red Hat Quay API エンドポイントを使用して、自分以外のユーザーアカウントのリポジトリーに対する自動プルーニングポリシーを管理できます。

前提条件

  • config.yaml ファイルで BROWSER_API_CALLS_XHR_ONLY: false を設定している。
  • OAuth アクセストークンを作成している。
  • Red Hat Quay にログインしている。
  • ポリシーを作成するリポジトリーの admin 権限がある。

手順

  1. 次の POST /api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/ コマンドを入力して、ユーザーのタグの数を制限する新しいポリシーを作成します。

    $ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags","value": 2}' https://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/
    Copy to Clipboard Toggle word wrap

    出力例

    {"uuid": "7726f79c-cbc7-490e-98dd-becdc6fefce7"}
    Copy to Clipboard Toggle word wrap

  2. オプション: 現在のユーザーに対してポリシーを追加し、tagPattern フィールドと tagPatternMatches フィールドを渡して、指定された正規表現パターンに一致するタグのみをプルーニングできます。以下に例を示します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "method": "creation_date",
        "value": "7d",
        "tagPattern": "^v*",
        "tagPatternMatches": true
      }' \
      "http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/"
    Copy to Clipboard Toggle word wrap

    出力例

    {"uuid": "b3797bcd-de72-4b71-9b1e-726dabc971be"}
    Copy to Clipboard Toggle word wrap

  3. PUT /api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/<policy_uuid> コマンドを使用して、現在のユーザーのポリシーを更新できます。以下に例を示します。

    $ curl -X PUT   -H "Authorization: Bearer <bearer_token>"   -H "Content-Type: application/json"   -d '{
        "method": "creation_date",
        "value": "4d",
        "tagPattern": "^test.",
        "tagPatternMatches": true
      }'   "https://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/<policy_uuid>"
    Copy to Clipboard Toggle word wrap

    ポリシーを更新しても、CLI に出力は返されません。

  4. 次のコマンドを入力して、自動プルーニングポリシーを確認します。

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/
    Copy to Clipboard Toggle word wrap

    または、UUID を含めることもできます。

    $ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/7726f79c-cbc7-490e-98dd-becdc6fefce7
    Copy to Clipboard Toggle word wrap

    出力例

    {"uuid": "81ee77ec-496a-4a0a-9241-eca49437d15b", "method": "creation_date", "value": "7d", "tagPattern": "^v*", "tagPatternMatches": true}
    Copy to Clipboard Toggle word wrap

  5. 次のコマンドを入力すると、自動プルーニングポリシーを削除できます。ポリシーを削除するには UUID が必要であることに注意してください。

    $ curl -X DELETE -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/repository/<user_account>/<user_repository>/autoprunepolicy/<policy_uuid>
    Copy to Clipboard Toggle word wrap

    出力例

    {"uuid": "7726f79c-cbc7-490e-98dd-becdc6fefce7"}
    Copy to Clipboard Toggle word wrap

6.13. Red Hat Quay API を使用してリポジトリーを作成および設定する

Red Hat Quay API を使用して、リポジトリーを作成、取得、変更、削除できます。

6.13.1. Red Hat Quay API を使用してリポジトリーを作成および設定する

Red Hat Quay API を使用して、リポジトリーを作成、取得、変更、削除できます。

手順

  1. 次のコマンドを入力し、POST /api/v1/repository エンドポイントを使用してリポジトリーを作成します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "repository": "<new_repository_name>",
        "visibility": "<private>",
        "description": "<This is a description of the new repository>."
      }' \
      "https://quay-server.example.com/api/v1/repository"
    Copy to Clipboard Toggle word wrap

    出力例

    {"namespace": "quayadmin", "name": "<new_repository_name>", "kind": "image"}
    Copy to Clipboard Toggle word wrap

  2. GET /api/v1/ repository エンドポイントでリポジトリーをリスト表示できます。以下に例を示します。

    $ curl -X GET \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      "https://quay-server.example.com/api/v1/repository?public=true&starred=false&namespace=<NAMESPACE>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"repositories": [{"namespace": "quayadmin", "name": "busybox", "description": null, "is_public": false, "kind": "image", "state": "MIRROR", "is_starred": false, "quota_report": {"quota_bytes": 2280675, "configured_quota": 2199023255552}}]}
    Copy to Clipboard Toggle word wrap

  3. 可視性は、POST /api/v1/repository/{repository}/changevisibility エンドポイントでパブリックからプライベートに変更 できます。

    $ curl -X POST \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
            "visibility": "private"
          }' \
      "https://quay-server.example.com/api/v1/repository/<NAMESPACE>/<REPO_NAME>/changevisibility"
    Copy to Clipboard Toggle word wrap

    出力例

    {"success": true}
    Copy to Clipboard Toggle word wrap

  4. Red Hat Quay UI を確認するか、以下の GET /api/v1/repository/{repository} コマンドを入力して、リポジトリー の詳細を返すことができます。

    $ curl -X GET -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"detail": "Not Found", "error_message": "Not Found", "error_type": "not_found", "title": "not_found", "type": "http://quay-server.example.com/api/v1/error/not_found", "status": 404}
    Copy to Clipboard Toggle word wrap
  5. リポジトリーの説明は PUT /api/v1/repository/{repository} エンドポイントで更新できます。

    $ curl -X PUT \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "description": "This is an updated description for the repository."
          }' \
      "https://quay-server.example.com/api/v1/repository/<NAMESPACE>/<REPOSITORY>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"success": true}
    Copy to Clipboard Toggle word wrap

  6. 以下のコマンドを入力して、DELETE /api/v1/repository/{repository} エンドポイントを使用してリポジトリー を削除します。

    $ curl -X DELETE   -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

6.13.2. API を使用した通知の作成

通知を追加するには、次の手順を実行します。

前提条件

  • リポジトリーが作成済みである。
  • リポジトリーの管理者権限がある。
  • OAuth アクセストークンを作成 した。
  • config.yaml ファイルで BROWSER_API_CALLS_XHR_ONLY: false を設定している。

手順

  1. 以下の POST /api/v1/repository/{repository}/notification コマンドを入力して、リポジトリーに通知を作成します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      --data '{
        "event": "<event>",
        "method": "<method>",
        "config": {
          "<config_key>": "<config_value>"
        },
        "eventConfig": {
          "<eventConfig_key>": "<eventConfig_value>"
        }
      }' \
      https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification/
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。代わりに、以下の GET /api/v1/repository/{repository}/notification/{uuid} コマンドを入力して、リポジトリー通知に関する情報を取得できます。

    {"uuid": "240662ea-597b-499d-98bb-2b57e73408d6", "title": null, "event": "repo_push", "method": "quay_notification", "config": {"target": {"name": "quayadmin", "kind": "user", "is_robot": false, "avatar": {"name": "quayadmin", "hash": "b28d563a6dc76b4431fc7b0524bbff6b810387dac86d9303874871839859c7cc", "color": "#17becf", "kind": "user"}}}, "event_config": {}, "number_of_failures": 0}
    Copy to Clipboard Toggle word wrap
  2. 以下の POST /api/v1/repository/{repository}/notification/{uuid}/test コマンドを入力して、リポジトリー通知をテスト できます。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>/test
    Copy to Clipboard Toggle word wrap

    出力例

    {}
    Copy to Clipboard Toggle word wrap

  3. 次の POST /api/v1/repository/{repository}/notification/{uuid} コマンドを入力すると、リポジトリー通知 の失敗を 0 にリセットできます。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>
    Copy to Clipboard Toggle word wrap
  4. 次の DELETE /api/v1/repository/{repository}/notification/{uuid} コマンドを入力して、リポジトリー通知を削除します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <bearer_token>" \
      https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification/<uuid>
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。代わりに、以下の GET /api/v1/repository/{repository}/notification/ コマンドを入力して、すべての通知リストを取得できます。

    $ curl -X GET  -H "Authorization: Bearer <bearer_token>"   -H "Accept: application/json"  https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification
    Copy to Clipboard Toggle word wrap

    出力例

    {"notifications": []}
    Copy to Clipboard Toggle word wrap

6.14. Red Hat Quay API を使用してロボットアカウントを作成および設定する

Red Hat Quay API を使用すると、組織とユーザーの両方に対してロボットアカウントを作成、取得、変更、削除できます。

6.14.1. Red Hat Quay API を使用したロボットアカウントの作成

Red Hat Quay API を使用してロボットアカウントを作成するには、次の手順に従います。

前提条件

手順

  • 次のコマンドを入力して、PUT /api/v1/organization/{orgname}/robots/{robot_shortname} エンドポイントを使用して組織の新しいロボット アカウントを作成します。

    $ curl -X PUT   -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots/<robot_name>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "orgname+robot-name", "created": "Fri, 10 May 2024 15:11:00 -0000", "last_accessed": null, "description": "", "token": "<example_secret>", "unstructured_metadata": null}
    Copy to Clipboard Toggle word wrap
  • 次のコマンドを入力して、PUT /api/v1/user/robots/{robot_shortname} エンドポイントで現在のユーザーの新しいロボット アカウントを作成します。

    $ curl -X PUT   -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/user/robots/<robot_name>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "quayadmin+robot-name", "created": "Fri, 10 May 2024 15:24:57 -0000", "last_accessed": null, "description": "", "token": "<example_secret>", "unstructured_metadata": null}
    Copy to Clipboard Toggle word wrap

6.14.2. Red Hat Quay API を使用してロボットアカウント情報を取得する

Red Hat Quay API を使用すると、組織およびユーザー向けに、権限などのロボットアカウント情報を取得できます。

前提条件

手順

  • GET /api/v1/organization/{orgname}/robots/{robot_shortname} API エンドポイントを使用して、組織のロボットの情報を返します。

    curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "https://quay-server.example.com/api/v1/organization/<ORGNAME>/robots/<ROBOT_SHORTNAME>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "test+example", "created": "Mon, 25 Nov 2024 16:25:16 -0000", "last_accessed": null, "description": "", "token": "BILZ6YTVAZAKOGMD9270OKN3SOD9KPB7OLKEJQOJE38NBBRUJTIH7T5859DJL31Q", "unstructured_metadata": {}}
    Copy to Clipboard Toggle word wrap

  • GET /api/v1/organization/{orgname}/robots/{robot_shortname}/permissions エンドポイントを使用して、特定の組織ロボットの権限のリストを返します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "https://quay-server.example.com/api/v1/organization/<ORGNAME>/robots/<ROBOT_SHORTNAME>/permissions"
    Copy to Clipboard Toggle word wrap

    出力例

    {"permissions": [{"repository": {"name": "testrepo", "is_public": true}, "role": "admin"}]}
    Copy to Clipboard Toggle word wrap

  • GET /api/v1/user/robots/{robot_shortname} API エンドポイントを使用して、指定された名前のユーザーのロボットを返します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "https://quay-server.example.com/api/v1/user/robots/<ROBOT_SHORTNAME>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "quayadmin+mirror_robot", "created": "Wed, 15 Jan 2025 17:22:09 -0000", "last_accessed": null, "description": "", "token": "QBFYWIWZOS1I0P0R9N1JRNP1UZAOPUIR3EB4ASPZKK9IA1SFC12LTEF7OJHB05Z8", "unstructured_metadata": {}}
    Copy to Clipboard Toggle word wrap

  • GET /api/v1/user/robots/{robot_shortname}/permissions API エンドポイントを使用して、ユーザーロボットのパーミッションの一覧を返します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "https://quay-server.example.com/api/v1/user/robots/<ROBOT_SHORTNAME>/permissions"
    Copy to Clipboard Toggle word wrap

    出力例

    {"permissions": [{"repository": {"name": "busybox", "is_public": false}, "role": "write"}]}
    Copy to Clipboard Toggle word wrap

6.14.3. Red Hat Quay API を使用したロボットアカウントの削除

Red Hat Quay API を使用してロボットアカウントを削除するには、次の手順に従います。

前提条件

手順

  1. 以下のコマンドを入力して、DELETE /api/v1/organization/{orgname}/robots/{robot_shortname} エンドポイントを使用して組織のロボット アカウントを削除します。

    curl -X DELETE \
      -H "Authorization: Bearer <bearer_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/robots/<robot_shortname>"
    Copy to Clipboard Toggle word wrap
  2. API を使用してロボットアカウントを削除する場合、CLI は情報を返しません。削除を確認するには、Red Hat Quay UI を確認するか、以下の GET /api/v1/organization/{orgname}/robots コマンドを入力して、ロボットアカウントの詳細が返されているかどうかを確認します。

    $ curl -X GET   -H "Authorization: Bearer <bearer_token>"   "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots"
    Copy to Clipboard Toggle word wrap

    出力例

    {"robots": []}
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを入力して、DELETE /api/v1/user/robots/{robot_shortname} エンドポイントで現在のユーザーのロボット アカウントを削除します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <bearer_token>" \
      "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>"
    Copy to Clipboard Toggle word wrap
  4. API を使用して現在のユーザーのロボットアカウントを削除する場合、CLI は情報を返しません。削除を確認するには、Red Hat Quay UI を確認するか、以下の GET /api/v1/user/robots/{robot_shortname} コマンドを入力して、ロボットアカウントの詳細が返されているかどうかを確認します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"message":"Could not find robot with specified username"}
    Copy to Clipboard Toggle word wrap

6.15. レジストリーコンテキストに対する検索

search API エンドポイントを使用して、すべてのレジストリーコンテキストに対して検索を実行できます。

手順

  • GET /api/v1/find/repositories エンドポイントを使用して、指定されたクエリーに一致するアプリケーションとリポジトリーのリストを取得します。

    $ curl -X GET "https://quay-server.example.com/api/v1/find/repositories?query=<repo_name>&page=1&includeUsage=true" \
      -H "Authorization: Bearer <bearer_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"results": [], "has_additional": false, "page": 2, "page_size": 10, "start_index": 10}
    Copy to Clipboard Toggle word wrap

  • GET /api/v1/find/all エンドポイントを使用して、指定したクエリーに一致するエンティティーとリソースのリストを取得します。

    $ curl -X GET "https://quay-server.example.com/api/v1/find/all?query=<mysearchterm>" \
      -H "Authorization: Bearer <bearer_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"results": [{"kind": "repository", "title": "repo", "namespace": {"title": "user", "kind": "user", "avatar": {"name": "quayadmin", "hash": "6d640d802fe23b93779b987c187a4b7a4d8fbcbd4febe7009bdff58d84498fba", "color": "#f7b6d2", "kind": "user"}, "name": "quayadmin", "score": 1, "href": "/user/quayadmin"}, "name": "busybox", "description": null, "is_public": false, "score": 4.0, "href": "/repository/quayadmin/busybox"}]}
    Copy to Clipboard Toggle word wrap

  • GET /api/v1/entities/{prefix} エンドポイントを使用して、指定した接頭辞に一致するエンティティーのリストを取得します。

    $ curl -X GET "https://quay-server.example.com/api/v1/entities/<prefix>?includeOrgs=<true_or_false>&includeTeams=<true_or_false>&namespace=<namespace>" \
      -H "Authorization: Bearer <bearer_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"results": [{"name": "quayadmin", "kind": "user", "is_robot": false, "avatar": {"name": "quayadmin", "hash": "6d640d802fe23b93779b987c187a4b7a4d8fbcbd4febe7009bdff58d84498fba", "color": "#f7b6d2", "kind": "user"}}]}
    Copy to Clipboard Toggle word wrap

6.16. API を使用した Clair セキュリティースキャンの表示

API を使用して Clair セキュリティースキャンを表示できます。

手順

  • GET /api/v1/repository/{repository}/manifest/{manifestref}/security エンドポイントを使用して、リポジトリー内の特定のマニフェストに関するセキュリティー情報を取得します。以下に例を示します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Accept: application/json" \
      "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/manifest/<manifest_digest>/security?vulnerabilities=<true_or_false>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"status": "queued", "data": null}
    Copy to Clipboard Toggle word wrap

6.17. Red Hat Quay API を使用してスーパーユーザーとしてデプロイメントを管理する

Red Hat Quay UI を通じて、スーパーユーザーは、ユーザー、サービスキー、ユーザーのクォータなど、レジストリーの側面を作成、リスト表示、変更、削除することができます。

6.17.1. Red Hat Quay API を使用したユーザーアカウントの作成

API を使用して Red Hat Quay リポジトリーの新しいユーザーを作成するには、次の手順に従います。

前提条件

  • スーパーユーザーとして Red Hat Quay デプロイメントにログインしている。
  • OAuth アクセストークンを作成 した。
  • config.yaml ファイルで BROWSER_API_CALLS_XHR_ONLY: false を設定している。

手順

  1. 次のコマンドを入力して、POST /api/v1/superuser/users/ エンドポイントを使用して新規ユーザーを作成します。

    $ curl -X POST -H "Authorization: Bearer <bearer_token>" -H "Content-Type: application/json" -d '{
      "username": "newuser",
      "email": "newuser@example.com"
    }' "https://<quay-server.example.com>/api/v1/superuser/users/"
    Copy to Clipboard Toggle word wrap

    出力例

    {"username": "newuser", "email": "newuser@example.com", "password": "123456789", "encrypted_password": "<example_encrypted_password>/JKY9pnDcsw="}
    Copy to Clipboard Toggle word wrap
  2. Red Hat Quay レジストリーエンドポイント (例: quay-server.example.com) に移動し、API 呼び出しから生成されたユーザー名とパスワードを使用してログインします。このシナリオでは、ユーザー名は newuser、パスワードは 123456789 です。または、CLI を使用してレジストリーにログインすることもできます。以下に例を示します。

    $ podman login <quay-server.example.com>
    Copy to Clipboard Toggle word wrap

    出力例

    username: newuser
    password: 123456789
    Copy to Clipboard Toggle word wrap

  3. オプション: GET /api/v1/superuser/users/ エンドポイントを使用して、スーパーユーザーを含むすべてのユーザー のリストを取得できます。

    $ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/users/"
    Copy to Clipboard Toggle word wrap

    出力例

    {"users": [{"kind": "user", "name": "quayadmin", "username": "quayadmin", "email": "quay@quay.com", "verified": true, "avatar": {"name": "quayadmin", "hash": "b28d563a6dc76b4431fc7b0524bbff6b810387dac86d9303874871839859c7cc", "color": "#17becf", "kind": "user"}, "super_user": true, "enabled": true}, {"kind": "user", "name": "newuser", "username": "newuser", "email": "newuser@example.com", "verified": true, "avatar": {"name": "newuser", "hash": "f338a2c83bfdde84abe2d3348994d70c34185a234cfbf32f9e323e3578e7e771", "color": "#9edae5", "kind": "user"}, "super_user": false, "enabled": true}]}
    Copy to Clipboard Toggle word wrap

6.17.2. Red Hat Quay API を使用したユーザーの削除

API を使用して Red Hat Quay からユーザーを削除するには、次の手順に従います。

重要

ユーザーを削除すると、このユーザーが自分のプライベートアカウントにあったリポジトリーはすべて使用できなくなります。

前提条件

  • スーパーユーザーとして Red Hat Quay デプロイメントにログインしている。
  • OAuth アクセストークンを作成 した。
  • config.yaml ファイルで BROWSER_API_CALLS_XHR_ONLY: false を設定している。

手順

  1. 以下の DELETE /api/v1/superuser/users/{username} コマンドを入力して、コマンドラインからユーザーを削除します。

    $ curl -X DELETE -H "Authorization: Bearer <insert token here>" https://<quay-server.example.com>/api/v1/superuser/users/<username>
    Copy to Clipboard Toggle word wrap
  2. CLI からユーザーを削除する場合、CLI は情報を返しません。削除を確認するには、Superuser Admin PanelUsers に移動するか、以下の GET /api/v1/superuser/users/ コマンドを入力して Red Hat Quay UI を確認します。すると、ユーザーが存在するかどうかを確認できます。

    $ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/users/"
    Copy to Clipboard Toggle word wrap

6.17.3. Red Hat Quay API を使用してスーパーユーザーとして組織を管理する

スーパーユーザーは、Red Hat Quay API を使用して組織をリスト、変更、および削除することができます。

手順

  • GET /api/v1/superuser/organizations エンドポイントを使用して、すべての組織を一覧表示します。

    $ curl -L -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "https://<quay_server>/api/v1/superuser/organizations?name=<organization_name>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"organizations": [{"name": "fed_test", "email": "fe11fc59-bd09-459a-a21c-b57692d151c9", "avatar": {"name": "fed_test", "hash": "e2ce1fb42ec2e0602362beb64b5ebd1e6ad291b710a0355f9296c16157bef3cb", "color": "#ff7f0e", "kind": "org"}, "quotas": [{"id": 3, "limit_bytes": 10737418240, "limits": []}], "quota_report": {"quota_bytes": 0, "configured_quota": 10737418240, "running_backfill": "complete", "backfill_status": "complete"}}, {"name": "test", "email": "new-contact@test-org.com", "avatar": {"name": "test", "hash": "a15d479002b20f211568fd4419e76686d2b88a4980a5b4c4bc10420776c5f6fe", "color": "#aec7e8", "kind": "org"}, "quotas": [{"id": 2, "limit_bytes": 10737418240, "limits": [{"id": 1, "type": "Reject", "limit_percent": 90}]}], "quota_report": {"quota_bytes": 0, "configured_quota": 10737418240, "running_backfill": "complete", "backfill_status": "complete"}}]}
    Copy to Clipboard Toggle word wrap

  • PUT /api/v1/superuser/organizations/{name} エンドポイントを使用して、組織の情報を変更または更新します。

    $ curl -X PUT \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "email": "<contact_email>",
            "invoice_email": <boolean_value>,
            "invoice_email_address": "<invoice_email_address>",
            "tag_expiration_s": <expiration_seconds>
          }' \
      "https://<quay_server>/api/v1/superuser/organizations/<organization_name>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "test", "email": "new-contact@test-org.com", "avatar": {"name": "test", "hash": "a15d479002b20f211568fd4419e76686d2b88a4980a5b4c4bc10420776c5f6fe", "color": "#aec7e8", "kind": "org"}, "quotas": [{"id": 2, "limit_bytes": 10737418240, "limits": [{"id": 1, "type": "Reject", "limit_percent": 90}]}], "quota_report": {"quota_bytes": 0, "configured_quota": 10737418240, "running_backfill": "complete", "backfill_status": "complete"}}
    Copy to Clipboard Toggle word wrap

  • DELETE /api/v1/superuser/organizations/{name} エンドポイントを使用して削除し、組織します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <bearer_token>" \
      "https://<quay_server>/api/v1/superuser/organizations/<organization_name>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

6.17.4. Red Hat Quay API を使用してスーパーユーザーとしてログをリスト表示する

Red Hat Quay スーパーユーザーは、現在のシステムの使用状況ログをリストできます。

手順

  • GET /api/v1/superuser/logs エンドポイントを使用して、現在のシステムの使用ログを一覧表示します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "https://<quay_server>/api/v1/superuser/logs?starttime=<start_time>&endtime=<end_time>&page=<page_number>&next_page=<next_page_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"start_time": "Mon, 17 Feb 2025 19:29:14 -0000", "end_time": "Wed, 19 Feb 2025 19:29:14 -0000", "logs": [{"kind": "login_success", "metadata": {"type": "quayauth", "useragent": "Mozilla/5.0 (X11; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0"}, "ip": "192.168.1.131", "datetime": "Tue, 18 Feb 2025 19:28:15 -0000", "namespace": {"kind": "user", "name": "quayadmin", "avatar": {"name": "quayadmin", "hash": "6d640d802fe23b93779b987c187a4b7a4d8fbcbd4febe7009bdff58d84498fba", "color": "#f7b6d2", "kind": "user"}}}], "next_page": "gAAAAABntN-KbPJDI0PpcHmWjRCmQTLiCprE_KXiOSidbGZ7Ireu8pVTgGUIstijNhmiLzlAv_S3HOsCrKWnuBmoQYZ3F53Uxg=="}
    Copy to Clipboard Toggle word wrap

  • GET /api/v1/superuser/registrysize/ エンドポイントを使用してレジストリーのサイズに関する情報を取得します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "https://<quay_server>/api/v1/superuser/registrysize/"
    Copy to Clipboard Toggle word wrap

    出力例

    {"size_bytes": 0, "last_ran": null, "running": false, "queued": false}
    Copy to Clipboard Toggle word wrap

  • POST /api/v1/superuser/registrysize/ エンドポイントを使用してレジストリーサイズ情報を定義します。

    $ curl -X POST "https://quay-server.example.com/api/v1/superuser/registrysize/" \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
        "namespace": "<namespace>",
        "last_ran": 1700000000,
        "queued": true,
        "running": false
      }'
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

6.17.5. Red Hat Quay API を使用した組織のクォータの管理

クォータは、スーパーユーザー管理者権限を持つ Red Hat Quay API を使用して管理できます。これらのエンドポイントにより、スーパーユーザーはレジストリー内のすべての組織のクォータポリシーを管理できます。

手順

  1. POST /api/v1/superuser/organization/{namespace}/quota API エンドポイントを使用して、組織のクォータポリシーを作成します。

    $ curl -X POST "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota" \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
        "limit_bytes": 10737418240
      }'
    Copy to Clipboard Toggle word wrap

    出力例

    "Created"
    Copy to Clipboard Toggle word wrap

  2. GET /api/v1/superuser/organization/{namespace}/quota API エンドポイントを使用して、クォータ ID を含むポリシーに関する情報を取得します。

    $ curl -X GET "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota" \
      -H "Authorization: Bearer <ACCESS_TOKEN>"
    Copy to Clipboard Toggle word wrap

    出力例

    [{"id": 2, "limit_bytes": 10737418240, "limit": "10.0 GiB", "default_config": false, "limits": [{"id": 1, "type": "Reject", "limit_percent": 90}], "default_config_exists": false}]
    Copy to Clipboard Toggle word wrap

  3. PUT /api/v1/superuser/organization/{namespace}/quota/{quota_id} API エンドポイントを使用してクォータポリシーを変更します。

    $ curl -X PUT "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota/<quota_id>" \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
        "limit_bytes": <NEW_QUOTA_LIMIT>
      }'
    Copy to Clipboard Toggle word wrap

    出力例

    {"id": 2, "limit_bytes": 10737418240, "limit": "10.0 GiB", "default_config": false, "limits": [{"id": 1, "type": "Reject", "limit_percent": 90}], "default_config_exists": false}
    Copy to Clipboard Toggle word wrap

  4. DELETE /api/v1/superuser/organization/{namespace}/quota/{quota_id} API エンドポイントを使用して、以下を行います。

    $ curl -X DELETE "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota/<quota_id>" \
      -H "Authorization: Bearer <ACCESS_TOKEN>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

6.17.6. Red Hat Quay API を使用したユーザークォータの管理

スーパーユーザーとして、指定された組織のユーザークォータを管理できます。

手順

  1. 組織内の特定ユーザーのクォータポリシーを作成するには、POST /api/v1/superuser/users/{namespace}/quota エンドポイントを使用します。

    $ curl -X POST "https://quay-server.example.com/api/v1/superuser/users/<username>/quota" \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
            "limit_bytes": <QUOTA_LIMIT>
          }'
    Copy to Clipboard Toggle word wrap

    出力例

    "Created"
    Copy to Clipboard Toggle word wrap

  2. GET /api/v1/superuser/users/{namespace}/quota エンドポイントを使用して、ユーザーの割り当てられたクォータの一覧を返します。

    $ curl -X GET "https://quay-server.example.com/api/v1/superuser/users/<username>/quota" \
      -H "Authorization: Bearer <ACCESS_TOKEN>"
    Copy to Clipboard Toggle word wrap

    出力例

    [{"id": 6, "limit_bytes": 10737418240, "limit": "10.0 GiB", "default_config": false, "limits": [], "default_config_exists": false}]
    Copy to Clipboard Toggle word wrap

  3. PUT /api/v1/superuser/users/{namespace}/quota/{quota_id} エンドポイントを使用して、ユーザーのポリシーを調整します。

    $ curl -X PUT "https://quay-server.example.com/api/v1/superuser/users/<username>/quota/<quota_id>" \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
        "limit_bytes": <NEW_QUOTA_LIMIT>
      }'
    Copy to Clipboard Toggle word wrap

    出力例

    {"id": 6, "limit_bytes": 10737418240, "limit": "10.0 GiB", "default_config": false, "limits": [], "default_config_exists": false}
    Copy to Clipboard Toggle word wrap

  4. DELETE /api/v1/superuser/users/{namespace}/quota/{quota_id} エンドポイントを使用して、ユーザーのポリシーを削除します。

    $ curl -X DELETE "https://quay-server.example.com/api/v1/superuser/users/<username>/quota/<quota_id>" \
      -H "Authorization: Bearer <ACCESS_TOKEN>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

6.17.7. Red Hat Quay API を使用したビルド情報の取得

スーパーユーザーは、Red Hat Quay API を使用してビルドに関する情報を取得できます。

手順

  1. GET /api/v1/superuser/{build_uuid}/build エンドポイントを使用して、ビルドに関する情報を返します。

    $ curl -X GET "https://quay-server.example.com/api/v1/superuser/<build_uuid>/build" \
      -H "Authorization: Bearer <ACCESS_TOKEN>"
    Copy to Clipboard Toggle word wrap
  2. GET /api/v1/superuser/{build_uuid}/status API エンドポイントを使用して、ビルド uuids で指定されるビルドのステータスを返します。

    $ curl -X GET "https://quay-server.example.com/api/v1/superuser/<build_uuid>/status" \
      -H "Authorization: Bearer <ACCESS_TOKEN>"
    Copy to Clipboard Toggle word wrap
  3. GET /api/v1/superuser/{build_uuid}/logs API エンドポイントを使用して、ビルド uuid で指定したビルドのビルドログを返します。

    $ curl -X GET "https://quay-server.example.com/api/v1/superuser/<build_uuid>/logs" \
      -H "Authorization: Bearer <ACCESS_TOKEN>"
    Copy to Clipboard Toggle word wrap

6.17.8. Red Hat Quay API を使用してスーパーユーザーとしてサービスキーを管理する

スーパーユーザーは、Red Hat Quay API を使用してサービスキーを作成、リスト、変更、および削除できます。

手順

  • POST /api/v1/superuser/keys エンドポイントを使用してサービスキーを作成します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "service": "<service_name>",
            "expiration": <unix_timestamp>
          }' \
      "<quay_server>/api/v1/superuser/keys"
    Copy to Clipboard Toggle word wrap

    出力例

    {"message":""}
    Copy to Clipboard Toggle word wrap

  • POST /api/v1/superuser/approvedkeys/{kid} エンドポイントを使用して、サービスキーを承認します。

    $ curl -X POST \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "notes": "<approval_notes>"
          }' \
      "https://<quay_server>/api/v1/superuser/approvedkeys/<kid>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

  • GET /api/v1/superuser/keys エンドポイントを使用してサービスキーを一覧表示します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "https://<quay_server>/api/v1/superuser/keys"
    Copy to Clipboard Toggle word wrap

    出力例

    {"keys":[{"approval":{"approval_type":"ServiceKeyApprovalType.AUTOMATIC","approved_date":"Mon, 20 Jan 2025 14:46:01 GMT","approver":null,"notes":""},"created_date":"Mon, 20 Jan 2025 14:46:01 GMT","expiration_date":"Wed, 05 Feb 2025 22:03:37 GMT","jwk":{"e":"AQAB","kid":"<example>","kty":"RSA","n":"<example>"},"kid":"7fr8soqXGgea8JqjwgItjjJT9GKlt-bMyMCDmvzy6WQ","metadata":{"created_by":"CLI tool"},"name":"http://quay-server.example.com:80","rotation_duration":null,"service":"quay"}]}
    Copy to Clipboard Toggle word wrap

  • GET /api/v1/superuser/keys/{kid} エンドポイントを使用して、kid でサービスアカウントに関する情報を取得します。

    $ curl -X GET \
      -H "Authorization: Bearer <bearer_token>" \
      "https://<quay_server>/api/v1/superuser/keys/<kid>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"approval":{"approval_type":"ServiceKeyApprovalType.AUTOMATIC","approved_date":"Mon, 20 Jan 2025 14:46:01 GMT","approver":null,"notes":""},"created_date":"Mon, 20 Jan 2025 14:46:01 GMT","expiration_date":"Wed, 05 Feb 2025 22:03:37 GMT","jwk":{"e":"AQAB","kid":"7fr8soqXGgea8JqjwgItjjJT9GKlt-bMyMCDmvzy6WQ","kty":"RSA","n":"5iMX7RQ_4F_zdb1qonMsuWUDauCOqEyRpD8L_EhgnwDxrgMHuOlJ4_7sEOrOa3Jkx3QhwIW6LJCP69PR5X0wvz6vmC1DoWEaWv41bAq23Knzj7gUU9-N_fkZPZN9NQwZ-D-Zqg9L1c_cJF93Dy93py8_JswWFDj1FxMaThJmrX68wBwjhF-JLYqgCAGFyezzJ3oTpO-esV9v6R7skfkaqtx_cjLZk_0cKB4VKTtxiy2A8D_5nANTOSSbZLXNh2Vatgh3yrOmnTTNLIs0YO3vFIuylEkczHlln-40UMAzRB3HNspUySyzImO_2yGdrA762LATQrOzJN8E1YKCADx5CQ"},"kid":"7fr8soqXGgea8JqjwgItjjJT9GKlt-bMyMCDmvzy6WQ","metadata":{"created_by":"CLI tool"},"name":"http://quay-server.example.com:80","rotation_duration":null,"service":"quay"}
    Copy to Clipboard Toggle word wrap

  • PUT /api/v1/superuser/keys/{kid} エンドポイントを使用して、メタデータなどのサービスキーを更新します。

    $ curl -X PUT \
      -H "Authorization: Bearer <bearer_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "name": "<service_key_name>",
            "metadata": {"<key>": "<value>"},
            "expiration": <unix_timestamp>
          }' \
      "https://<quay_server>/api/v1/superuser/keys/<kid>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"approval":{"approval_type":"ServiceKeyApprovalType.AUTOMATIC","approved_date":"Mon, 20 Jan 2025 14:46:01 GMT","approver":null,"notes":""},"created_date":"Mon, 20 Jan 2025 14:46:01 GMT","expiration_date":"Mon, 03 Mar 2025 10:40:00 GMT","jwk":{"e":"AQAB","kid":"7fr8soqXGgea8JqjwgItjjJT9GKlt-bMyMCDmvzy6WQ","kty":"RSA","n":"5iMX7RQ_4F_zdb1qonMsuWUDauCOqEyRpD8L_EhgnwDxrgMHuOlJ4_7sEOrOa3Jkx3QhwIW6LJCP69PR5X0wvz6vmC1DoWEaWv41bAq23Knzj7gUU9-N_fkZPZN9NQwZ-D-Zqg9L1c_cJF93Dy93py8_JswWFDj1FxMaThJmrX68wBwjhF-JLYqgCAGFyezzJ3oTpO-esV9v6R7skfkaqtx_cjLZk_0cKB4VKTtxiy2A8D_5nANTOSSbZLXNh2Vatgh3yrOmnTTNLIs0YO3vFIuylEkczHlln-40UMAzRB3HNspUySyzImO_2yGdrA762LATQrOzJN8E1YKCADx5CQ"},"kid":"7fr8soqXGgea8JqjwgItjjJT9GKlt-bMyMCDmvzy6WQ","metadata":{"created_by":"CLI tool","environment":"production"},"name":"quay-service-key-updated","rotation_duration":null,"service":"quay"}
    Copy to Clipboard Toggle word wrap

  • DELETE /api/v1/superuser/keys/{kid} エンドポイントを使用してサービスキーを削除します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <bearer_token>" \
      "https://<quay_server>/api/v1/superuser/keys/<kid>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

6.18. Red Hat Quay API を使用したタグの管理

タグは、Red Hat Quay API を使用して変更、復元、削除、またはリストできます。

手順

  1. PUT /api/v1/repository/{repository}/tag/{tag} エンドポイントを使用して、タグが参照するイメージを変更するか、新規タグを作成します。

    $ curl -X PUT "https://quay-server.example.com/api/v1/repository/<namespace>/<repo_name>/tag/<tag_name>" \
      -H "Authorization: Bearer <ACCESS_TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{"manifest_digest": "<MANIFEST_DIGEST>"}'
    Copy to Clipboard Toggle word wrap

    出力例

    "Updated"
    Copy to Clipboard Toggle word wrap

  2. POST /api/v1/repository/{repository}/tag/{tag}/restore エンドポイントを使用して、リポジトリータグをリポジトリーの以前のイメージに復元します。

    $ curl -X POST "https://quay-server.example.com/api/v1/repository/<namespace>/<repo_name>/tag/<tag_name>/restore" \
      -H "Authorization: Bearer <your_access_token>" \
      -H "Content-Type: application/json" \
      -d '{"manifest_digest": "sha256:<your_manifest_digest>"}'
    Copy to Clipboard Toggle word wrap

    出力例

    {}
    Copy to Clipboard Toggle word wrap

  3. GET /api/v1/repository/{repository}/tag/ エンドポイントを使用して、リポジトリータグの一覧を取得します。

    $ curl -X GET "https://quay-server.example.com/api/v1/repository/<namespace>/<repo_name>/tag/" \
      -H "Authorization: Bearer <your_access_token>" \
      -H "Content-Type: application/json"
    Copy to Clipboard Toggle word wrap

    出力例

    {"tags": [{"name": "test", "reversion": true, "start_ts": 1740496373, "manifest_digest": "sha256:d08334991a3dba62307016833083d6433f489ab0f7d36d0a4771a20b4569b2f6", "is_manifest_list": false, "size": 2280303, "last_modified": "Tue, 25 Feb 2025 15:12:53 -0000"}, {"name": "test", "reversion": false, "start_ts": 1740495442, "end_ts": 1740496373, "manifest_digest": "sha256:d08334991a3dba62307016833083d6433f489ab0f7d36d0a4771a20b4569b2f6", "is_manifest_list": false, "size": 2280303, "last_modified": "Tue, 25 Feb 2025 14:57:22 -0000", "expiration": "Tue, 25 Feb 2025 15:12:53 -0000"}, {"name": "test", "reversion": false, "start_ts": 1740495408, "end_ts": 1740495442, "manifest_digest": "sha256:d08334991a3dba62307016833083d6433f489ab0f7d36d0a4771a20b4569b2f6", "is_manifest_list": false, "size": 2280303, "last_modified": "Tue, 25 Feb 2025 14:56:48 -0000", "expiration": "Tue, 25 Feb 2025 14:57:22 -0000"}], "page": 1, "has_additional": false}
    Copy to Clipboard Toggle word wrap

  4. DELETE /api/v1/repository/{repository}/tag/{tag} エンドポイントを使用して、リポジトリーからタグを削除します。

    $ curl -X DELETE "https://quay-server.example.com/api/v1/repository/<namespace>/<repo_name>/tag/<tag_name>" \
      -H "Authorization: Bearer <your_access_token>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

6.19. API を使用したチームの管理

チームは Red Hat Quay API を使用して管理できます。

6.19.1. API を使用したチームメンバーとリポジトリー権限の管理

チームにメンバーを追加する (直接招待またはメールによる)、またはチームからメンバーを削除するには、次の手順に従います。

前提条件

手順

  • PUT /api/v1/organization/{orgname}/team/{teamname}/members/{membername} コマンドを入力して、既存のチームにメンバーを追加または招待します。

    $ curl -X PUT \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/members/<member_name>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "testuser", "kind": "user", "is_robot": false, "avatar": {"name": "testuser", "hash": "d51d17303dc3271ac3266fb332d7df919bab882bbfc7199d2017a4daac8979f0", "color": "#5254a3", "kind": "user"}, "invited": false}
    Copy to Clipboard Toggle word wrap

  • DELETE /api/v1/organization/{orgname}/team/{teamname}/members/{membername} コマンドを入力して、チームのメンバーを削除します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/members/<member_name>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力しません。メンバーが削除されたことを確認するには、GET /api/v1/organization/{orgname}/team/{teamname}/members コマンドを実行して、そのメンバーが出力で返されていないことを確認します。

    $ curl -X GET \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/members"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "owners", "members": [{"name": "quayadmin", "kind": "user", "is_robot": false, "avatar": {"name": "quayadmin", "hash": "b28d563a6dc76b4431fc7b0524bbff6b810387dac86d9303874871839859c7cc", "color": "#17becf", "kind": "user"}, "invited": false}, {"name": "test-org+test", "kind": "user", "is_robot": true, "avatar": {"name": "test-org+test", "hash": "aa85264436fe9839e7160bf349100a9b71403a5e9ec684d5b5e9571f6c821370", "color": "#8c564b", "kind": "robot"}, "invited": false}], "can_edit": true}
    Copy to Clipboard Toggle word wrap

  • PUT /api/v1/organization/{orgname}/team/{teamname}/invite/{email} コマンドを入力して、メールアドレスで既存のチームにユーザーを招待することができます。

    $ curl -X PUT \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/invite/<email>"
    Copy to Clipboard Toggle word wrap
  • DELETE /api/v1/organization/{orgname}/team/{teamname}/invite/{email} コマンドを入力して、チームに参加するメールアドレスの招待を削除できます。以下に例を示します。

    $ curl -X DELETE \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/invite/<email>"
    Copy to Clipboard Toggle word wrap

6.19.2. API を使用して組織内のチームのロールを設定する

API を使用して組織内のチームのロールを表示および設定するには、次の手順に従います。

前提条件

手順

  1. 組織のチームのリポジトリー権限のリストを返すには、次の GET/api/v1/organization/{orgname}/team/{teamname}/permissions コマンドを入力します。このコマンドで情報を取得するには、チームがリポジトリーに追加されている必要があることに注意してください。

    $ curl -X GET \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/permissions"
    Copy to Clipboard Toggle word wrap

    出力例

    {"permissions": [{"repository": {"name": "api-repo", "is_public": true}, "role": "admin"}]}
    Copy to Clipboard Toggle word wrap

  2. PUT/api/v1/organization/{orgname}/team/{teamname} コマンドを使用して、組織内のチームを作成または更新し、指定されたロールを adminmember、または creator にすることができます。以下に例を示します。

    $ curl -X PUT \
      -H "Authorization: Bearer <your_access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "role": "<role>"
      }' \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"name": "testteam", "description": "", "can_view": true, "role": "creator", "avatar": {"name": "testteam", "hash": "827f8c5762148d7e85402495b126e0a18b9b168170416ed04b49aae551099dc8", "color": "#ff7f0e", "kind": "team"}, "new_team": false}
    Copy to Clipboard Toggle word wrap

6.19.3. API を使用した組織内のチームの削除

API を使用して組織内のチームを削除するには、次の手順に従います。

前提条件

手順

  • DELETE /api/v1/organization/{orgname}/team/{teamname} コマンドを入力して、組織内のチーム を削除できます。

    $ curl -X DELETE \
      -H "Authorization: Bearer <your_access_token>" \
      "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

6.20. Red Hat Quay API を使用したビルドの管理

ビルドは Red Hat Quay API を使用して管理できます。

手順

  1. GET /api/v1/repository/{repository}/trigger/ エンドポイントを使用して、指定されたリポジトリーのトリガーを一覧表示します。

    $ curl -X GET "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/" \
      -H "Authorization: Bearer <your_access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"triggers": [{"id": "32ca5eae-a29f-46c7-8f44-3221ca417c92", "service": "custom-git", "is_active": false, "build_source": null, "repository_url": null, "config": {}, "can_invoke": true, "enabled": true, "disabled_reason": null}]}
    Copy to Clipboard Toggle word wrap

  2. POST /api/v1/repository/{repository}/trigger/{trigger_uuid}/activate エンドポイントを使用して、指定したビルドトリガーをアクティブにします。

    $ curl -X POST "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid/activate" \
      -H "Authorization: Bearer <your_access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "config": {
          "branch": "main"
        },
        "pull_robot": "example+robot"
      }'
    Copy to Clipboard Toggle word wrap
  3. POST /api/v1/repository/{repository}/trigger/{trigger_uuid}/start エンドポイントを使用して、指定されたトリガーからビルドを手動で起動します。

    $ curl -X POST "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid/start" \
      -H "Authorization: Bearer <your_access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "branch_name": "main",
        "commit_sha": "abcdef1234567890",
        "refs": "refs/heads/main"
      }'
    Copy to Clipboard Toggle word wrap
  4. GET /api/v1/repository/{repository}/trigger/{trigger_uuid}/builds エンドポイントを使用して、指定されたトリガーによって開始されたビルドを一覧表示します。

    $ curl -X GET "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid/builds?limit=10" \
      -H "Authorization: Bearer <your_access_token>"
    Copy to Clipboard Toggle word wrap
  5. GET /api/v1/repository/{repository}/trigger/{trigger_uuid} エンドポイントを使用して、指定したビルドトリガーの情報を取得します。

    $ curl -X GET "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid" \
      -H "Authorization: Bearer <your_access_token>"
    Copy to Clipboard Toggle word wrap
  6. PUT /api/v1/repository/{repository}/trigger/{trigger_uuid} エンドポイントを使用して、指定されたビルドトリガーを更新します。

    $ curl -X PUT "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid" \
      -H "Authorization: Bearer <your_access_token>" \
      -H "Content-Type: application/json" \
      -d '{"enabled": true}'
    Copy to Clipboard Toggle word wrap
  7. DELETE /api/v1/repository/{repository}/trigger/{trigger_uuid} エンドポイントを使用して、指定したビルドトリガーを削除します。

    $ curl -X DELETE "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid" \
      -H "Authorization: Bearer <your_access_token>"
    Copy to Clipboard Toggle word wrap

6.21. Red Hat Quay API を使用して現在のユーザーオプションを管理する

リポジトリーにスターを付けたり、アカウントに関する情報を取得したりするなどの一部のユーザーオプションは、Red Hat Quay API で利用できます。

手順

  1. GET /api/v1/user/ エンドポイントを使用して、認証ユーザーのユーザー情報を取得します。

    $ curl -X GET "https://quay-server.example.com/api/v1/user/" \
      -H "Authorization: Bearer <your_access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"anonymous": false, "username": "quayadmin", "avatar": {"name": "quayadmin", "hash": "6d640d802fe23b93779b987c187a4b7a4d8fbcbd4febe7009bdff58d84498fba", "color": "#f7b6d2", "kind": "user"}, "can_create_repo": true, "is_me": true, "verified": true, "email": "test@gmil.com", "logins": [], "invoice_email": false, "invoice_email_address": null, "preferred_namespace": false, "tag_expiration_s": 1209600, "prompts": [], "company": null, "family_name": null, "given_name": null, "location": null, "is_free_account": true, "has_password_set": true, "quotas": [{"id": 4, "limit_bytes": 2199023255552, "limits": [{"id": 3, "type": "Reject", "limit_percent": 100}]}], "quota_report": {"quota_bytes": 2280675, "configured_quota": 2199023255552, "running_backfill": "complete", "backfill_status": "complete"}, "organizations": [{"name": "test", "avatar": {"name": "test", "hash": "a15d479002b20f211568fd4419e76686d2b88a4980a5b4c4bc10420776c5f6fe", "color": "#aec7e8", "kind": "org"}, "can_create_repo": true, "public": false, "is_org_admin": true, "preferred_namespace": false}, {"name": "sample", "avatar": {"name": "sample", "hash": "ba560c68f1d26e8c6b911ac9b5d10d513e7e43e576cc2baece1b8a46f36a29a5", "color": "#b5cf6b", "kind": "org"}, "can_create_repo": true, "public": false, "is_org_admin": true, "preferred_namespace": false}], "super_user": true}
    Copy to Clipboard Toggle word wrap

  2. GET /api/v1/users/{username} エンドポイントを使用して、指定されたユーザーのユーザー情報を取得します。

    $ curl -X GET "https://quay-server.example.com/api/v1/users/example_user" \
      -H "Authorization: Bearer <your_access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"anonymous": false, "username": "testuser", "avatar": {"name": "testuser", "hash": "f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a", "color": "#6b6ecf", "kind": "user"}, "super_user": false}
    Copy to Clipboard Toggle word wrap

  3. POST /api/v1/user/starred エンドポイントを使用して、リポジトリーを表します。

    $ curl -X POST "https://quay-server.example.com/api/v1/user/starred" \
      -H "Authorization: Bearer <your_access_token>" \
      -H "Content-Type: application/json" \
      -d '{
            "namespace": "<namespace>",
            "repository": "<repository_name>"
          }'
    Copy to Clipboard Toggle word wrap

    出力例

    {"namespace": "test", "repository": "testrepo"}
    Copy to Clipboard Toggle word wrap

  4. GET /api/v1/user/starred エンドポイントを使用して、スター付きリポジトリーをすべてリストします。

    $ curl -X GET "https://quay-server.example.com/api/v1/user/starred?next_page=<next_page_token>" \
      -H "Authorization: Bearer <your_access_token>"
    Copy to Clipboard Toggle word wrap

    出力例

    {"repositories": [{"namespace": "test", "name": "testrepo", "description": "This repository is now under maintenance.", "is_public": true}]}
    Copy to Clipboard Toggle word wrap

  5. DELETE /api/v1/user/starred/{repository} エンドポイントを使用して、リポジトリーからスターを削除します。

    $ curl -X DELETE "https://quay-server.example.com/api/v1/user/starred/namespace/repository-name" \
      -H "Authorization: Bearer <your_access_token>"
    Copy to Clipboard Toggle word wrap

    このコマンドは CLI に出力を返しません。

第7章 Red Hat Quay アプリケーションプログラミングインターフェイス (API)

この API を使用すると、Red Hat Quay リポジトリー、ユーザー、および組織の使用に必要な多くの操作を実行できます。

7.1. 認可

oauth2_implicit

スコープ

以下のスコープは、API エンドポイントへのアクセスを制御するのに使用されます。

Expand
スコープ説明

repo:read

このアプリケーションは、付与ユーザーまたはロボットアカウントに表示されるすべてのリポジトリーを表示し、プルできます。

repo:write

このアプリケーションは、付与ユーザーまたはロボットアカウントに書き込みのアクセス権が割り当てられているリポジトリーをすべて表示、プッシュ、およびプルできます。

repo:admin

このアプリケーションには、付与ユーザーまたはロボットアカウントがアクセスできるすべてのリポジトリーに管理者権限が割り当てられます。

repo:create

このアプリケーションは、付与ユーザーまたはロボットアカウントがリポジトリーを作成できる namespace にリポジトリーを作成できます。

user:read

このアプリケーションは、ユーザー名やメールアドレスなどのユーザー情報を読み取ることができます。

org:admin

このアプリケーションは、ロボットの作成、チームの作成、チームのメンバーシップの調整、請求設定の変更など、組織の管理を行うことができます。このパーミッションを付与する前に、要求元アプリケーションに絶対の信頼が必要です。

super:user

このアプリケーションは、ユーザーの管理、スーパーユーザーパネルにある組織およびその他の機能の管理など、インストールを管理できます。このパーミッションを付与する前に、要求元アプリケーションに絶対の信頼が必要です。

user:admin

このアプリケーションは、ロボットの作成、リポジトリーへのパーミッションを付与するなど、アカウントを管理できます。このパーミッションを付与する前に、要求元アプリケーションに絶対の信頼が必要です。

7.2. appspecifictokens

現在のユーザーのアプリケーション固有のトークンを管理します。

7.2.1. createAppToken

ユーザー向けに新規アプリケーション固有のトークンを作成します。

POST /api/v1/user/apptoken

認可: oauth2_implicit (user:admin)

要求の body スキーマ (application/json)

新しいトークンの説明。

Expand
名前説明スキーマ

title
必須

トークンの特定に役立つ分かりやすい名前

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
 $ curl -X POST \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "MyAppToken"
  }' \
  "http://quay-server.example.com/api/v1/user/apptoken"
Copy to Clipboard Toggle word wrap

7.2.2. listAppTokens

ユーザーのアプリケーション固有のトークンをリスト表示します。

GET /api/v1/user/apptoken

認可: oauth2_implicit (user:admin)

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

expiring
任意

true の場合には、まもなく有効期限が切れるトークンのみを返します。

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <access_token>" \
  "http://quay-server.example.com/api/v1/user/apptoken"
Copy to Clipboard Toggle word wrap

7.2.3. getAppToken

ユーザーの特定のアプリケーショントークンを返します。

GET /api/v1/user/apptoken/{token_uuid}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

token_uuid
必須

アプリケーション固有のトークンの uuid

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <access_token>" \
  "http://quay-server.example.com/api/v1/user/apptoken/<token_uuid>"
Copy to Clipboard Toggle word wrap

7.2.4. revokeAppToken

ユーザーの特定のアプリケーショントークンを取り消します。

DELETE /api/v1/user/apptoken/{token_uuid}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

token_uuid
必須

アプリケーション固有のトークンの uuid

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE \
  -H "Authorization: Bearer <access_token>" \
  "http://quay-server.example.com/api/v1/user/apptoken/<token_uuid>"
Copy to Clipboard Toggle word wrap

7.3. build

リポジトリービルドの作成、リスト表示、キャンセル、およびステータス/ログの取得

7.3.1. getRepoBuildStatus

ビルドの uuid で指定したビルドのステータスを返します。

GET /api/v1/repository/{repository}/build/{build_uuid}/status

認可: oauth2_implicit(repo:read)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

build_uuid
必須

ビルドの UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

7.3.2. getRepoBuildLogs

ビルド uuid で指定したビルドのビルドログを返します。

GET /api/v1/repository/{repository}/build/{build_uuid}/logs

認可: oauth2_implicit(repo:read)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

build_uuid
必須

ビルドの UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

7.3.3. getRepoBuild

ビルドに関する情報を返します。

GET /api/v1/repository/{repository}/build/{build_uuid}

認可: oauth2_implicit(repo:read)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

build_uuid
必須

ビルドの UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

7.3.4. cancelRepoBuild

リポジトリービルドをキャンセルします。

DELETE /api/v1/repository/{repository}/build/{build_uuid}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

build_uuid
必須

ビルドの UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

7.3.5. requestRepoBuild

指定の入力からリポジトリーをビルドし、プッシュすることを要求します。

POST /api/v1/repository/{repository}/build/

認可: oauth2_implicit (repo:write)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

新規リポジトリービルドの説明。

Expand
名前説明スキーマ

file_id
任意

ビルド仕様のアップロード時に生成されたファイル ID

string

archive_url
任意

ビルドする .tar.gz の URL。"http" または "https" で開始する必要があります。

string

subdirectory
任意

Dockerfile があるサブディレクトリー。このサブディレクトリーまたは dockerfile_path のみを指定できます。

string

dockerfile_path
任意

docker ファイルへのパス。このパスまたはサブディレクトリーのみを指定できます。

string

context
任意

dockerfile のコンテキストを指定します。これは任意です。

string

pull_robot
任意

プル認証情報として使用する Quay ロボットアカウントのユーザー名

string

tags
任意

ビルドイメージがプッシュされるタグ。指定のない場合は、"latest" が使用されます。

string の配列
non-empty unique

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

7.3.6. getRepoBuilds

リポジトリービルドのリストを取得します。

GET /api/v1/repository/{repository}/build/

認可: oauth2_implicit(repo:read)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

since
任意

指定の unix タイムコード以降の全ビルドを返します。

integer

query

limit
任意

返すビルドの最大数

integer

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

7.4. discovery

API 検出情報。

7.4.1. discovery

Swagger API 形式で利用可能なすべての API エンドポイントをリスト表示します。

GET /api/v1/discovery

認可: 

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

internal
任意

内部 API を含めるかどうか。

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/discovery?query=true" \
    -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.5. error

エラー詳細 API。

7.5.1. getErrorDescription

エラーの詳細情報を取得します。

GET /api/v1/error/{error_type}

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

error_type
必須

エラーのタイプを特定するエラーコード。

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

ApiErrorDescription

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/error/<error_type>" \
    -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.6. globalmessages

メッセージ API。

7.6.1. createGlobalMessage

メッセージを作成します。

POST /api/v1/messages

認可: oauth2_implicit(super:user)

要求の body スキーマ (application/json)

新規メッセージの作成

Expand
名前説明スキーマ

message
必須

単一メッセージ

object

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://<quay-server.example.com>/api/v1/messages" \
    -H "Authorization: Bearer <access_token>" \
    -H "Content-Type: application/json" \
    -d '{
        "message": {
            "content": "Hi",
            "media_type": "text/plain",
            "severity": "info"
        }
    }'
Copy to Clipboard Toggle word wrap

7.6.2. getGlobalMessages

スーパーユーザーのメッセージを返します。

GET /api/v1/messages

認可: 

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/messages" \
    -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.6.3. deleteGlobalMessage

メッセージを削除します。

DELETE /api/v1/message/{uuid}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

uuid
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://<quay-server.example.com>/api/v1/message/<uuid>" \
    -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.7. logs

組織またはリポジトリーの使用状況ログにアクセスします。

7.7.1. getAggregateUserLogs

現在のユーザーの集計ログを返します。

GET /api/v1/user/aggregatelogs

認可: oauth2_implicit (user:admin)

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

performer
任意

ログをフィルターするユーザー名。

string

query

endtime
任意

ログの最新時間。形式: "%m/%d/%Y"(UTC)

string

query

starttime
任意

ログの最初の時間。形式: "%m/%d/%Y"(UTC)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  "<quay-server.example.com>/api/v1/user/aggregatelogs?performer=<username>&starttime=<MM/DD/YYYY>&endtime=<MM/DD/YYYY>"
Copy to Clipboard Toggle word wrap

7.7.2. exportUserLogs

現在のユーザーの集計ログを返します。

POST /api/v1/user/exportlogs

認可: oauth2_implicit (user:admin)

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

endtime
任意

ログの最新時間。形式: "%m/%d/%Y"(UTC)

string

query

starttime
任意

ログの最初の時間。形式: "%m/%d/%Y"(UTC)

string

要求の body スキーマ (application/json)

エクスポートログ操作の設定

Expand
名前説明スキーマ

callback_url
任意

エクスポートされたログに対するリンクで呼び出すコールバック URL

string

callback_email
任意

エクスポートされたログに対するリンクをメールで送信するメールアドレス

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
        "starttime": "<MM/DD/YYYY>",
        "endtime": "<MM/DD/YYYY>",
        "callback_email": "your.email@example.com"
      }' \
  "http://<quay-server.example.com>/api/v1/user/exportlogs"
Copy to Clipboard Toggle word wrap

7.7.3. listUserLogs

現在のユーザーのログをリスト表示します。

GET /api/v1/user/logs

認可: oauth2_implicit (user:admin)

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

next_page
任意

次のページのページトークン

string

query

performer
任意

ログをフィルターするユーザー名。

string

query

endtime
任意

ログの最新時間。形式: "%m/%d/%Y"(UTC)

string

query

starttime
任意

ログの最初の時間。形式: "%m/%d/%Y"(UTC)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET   -H "Authorization: Bearer <bearer_token>"   -H "Accept: application/json"   "<quay-server.example.com>/api/v1/user/logs"
Copy to Clipboard Toggle word wrap

7.7.4. getAggregateOrgLogs

指定した組織の集計ログを取得します。

GET /api/v1/organization/{orgname}/aggregatelogs

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

performer
任意

ログをフィルターするユーザー名。

string

query

endtime
任意

ログの最新時間。形式: "%m/%d/%Y"(UTC)

string

query

starttime
任意

ログの最初の時間。形式: "%m/%d/%Y"(UTC)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  "<quay-server.example.com>/api/v1/organization/{orgname}/aggregatelogs"
Copy to Clipboard Toggle word wrap

7.7.5. exportOrgLogs

指定した組織のログをエクスポートします。

POST /api/v1/organization/{orgname}/exportlogs

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

endtime
任意

ログの最新時間。形式: "%m/%d/%Y"(UTC)

string

query

starttime
任意

ログの最初の時間。形式: "%m/%d/%Y"(UTC)

string

要求の body スキーマ (application/json)

エクスポートログ操作の設定

Expand
名前説明スキーマ

callback_url
任意

エクスポートされたログに対するリンクで呼び出すコールバック URL

string

callback_email
任意

エクスポートされたログに対するリンクをメールで送信するメールアドレス

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
        "starttime": "<MM/DD/YYYY>",
        "endtime": "<MM/DD/YYYY>",
        "callback_email": "org.logs@example.com"
      }' \
  "http://<quay-server.example.com>/api/v1/organization/{orgname}/exportlogs"
Copy to Clipboard Toggle word wrap

7.7.6. listOrgLogs

指定した組織のログをリスト表示します。

GET /api/v1/organization/{orgname}/logs

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

next_page
任意

次のページのページトークン

string

query

performer
任意

ログをフィルターするユーザー名。

string

query

endtime
任意

ログの最新時間。形式: "%m/%d/%Y"(UTC)

string

query

starttime
任意

ログの最初の時間。形式: "%m/%d/%Y"(UTC)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  "http://<quay-server.example.com>/api/v1/organization/{orgname}/logs"
Copy to Clipboard Toggle word wrap

7.7.7. getAggregateRepoLogs

指定したリポジトリーの集計ログを返します。

GET /api/v1/repository/{repository}/aggregatelogs

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

endtime
任意

ログの最新時間。形式: "%m/%d/%Y"(UTC)

string

query

starttime
任意

ログの最初の時間。形式: "%m/%d/%Y"(UTC)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  "<quay-server.example.com>/api/v1/repository/<repository_name>/<namespace>/aggregatelogs?starttime=2024-01-01&endtime=2024-06-18""
Copy to Clipboard Toggle word wrap

7.7.8. exportRepoLogs

指定したリポジトリーのログのエクスポートをキューに入れます。

POST /api/v1/repository/{repository}/exportlogs

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

endtime
任意

ログの最新時間。形式: "%m/%d/%Y"(UTC)

string

query

starttime
任意

ログの最初の時間。形式: "%m/%d/%Y"(UTC)

string

要求の body スキーマ (application/json)

エクスポートログ操作の設定

Expand
名前説明スキーマ

callback_url
任意

エクスポートされたログに対するリンクで呼び出すコールバック URL

string

callback_email
任意

エクスポートされたログに対するリンクをメールで送信するメールアドレス

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
        "starttime": "2024-01-01",
        "endtime": "2024-06-18",
        "callback_url": "http://your-callback-url.example.com"
      }' \
  "http://<quay-server.example.com>/api/v1/repository/{repository}/exportlogs"
Copy to Clipboard Toggle word wrap

7.7.9. listRepoLogs

指定したリポジトリーのログをリスト表示します。

GET /api/v1/repository/{repository}/logs

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

next_page
任意

次のページのページトークン

string

query

endtime
任意

ログの最新時間。形式: "%m/%d/%Y"(UTC)

string

query

starttime
任意

ログの最初の時間。形式: "%m/%d/%Y"(UTC)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  "http://<quay-server.example.com>/api/v1/repository/{repository}/logs"
Copy to Clipboard Toggle word wrap

7.8. マニフェスト

リポジトリーのマニフェストを管理します。

7.8.1. getManifestLabel

マニフェストで特定の ID のラベルを取得します。

GET /api/v1/repository/{repository}/manifest/{manifestref}/labels/{labelid}

認可: oauth2_implicit(repo:read)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

manifestref
必須

マニフェストのダイジェスト

string

path

labelid
必須

ラベルの ID

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels/<label_id>
Copy to Clipboard Toggle word wrap

7.8.2. deleteManifestLabel

マニフェストから既存のラベルを削除します。

DELETE /api/v1/repository/{repository}/manifest/{manifestref}/labels/{labelid}

認可: oauth2_implicit (repo:write)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

manifestref
必須

マニフェストのダイジェスト

string

path

labelid
必須

ラベルの ID

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels/<labelid>
Copy to Clipboard Toggle word wrap

7.8.3. addManifestLabel

タグマニフェストに新規ラベルを追加します。

POST /api/v1/repository/{repository}/manifest/{manifestref}/labels

認可: oauth2_implicit (repo:write)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

manifestref
必須

マニフェストのダイジェスト

string

要求の body スキーマ (application/json)

マニフェストにラベルを追加します。

Expand
名前説明スキーマ

key
必須

ラベルのキー

string

value
必須

ラベルの値

string

media_type
必須

このラベルのメディアタイプ

 
レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  --data '{
    "key": "<key>",
    "value": "<value>",
    "media_type": "<media_type>"
  }' \
  https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels
Copy to Clipboard Toggle word wrap

7.8.4. listManifestLabels

GET /api/v1/repository/{repository}/manifest/{manifestref}/labels

認可: oauth2_implicit(repo:read)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

manifestref
必須

マニフェストのダイジェスト

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

filter
必須

これが指定されている場合には、指定の接頭辞に一致するラベルのみが返されます。

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels
Copy to Clipboard Toggle word wrap

7.8.5. getRepoManifest

GET /api/v1/repository/{repository}/manifest/{manifestref}

認可: oauth2_implicit(repo:read)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

manifestref
必須

マニフェストのダイジェスト

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>
Copy to Clipboard Toggle word wrap

7.9. mirror

7.9.1. syncCancel

指定したリポジトリーのミラーリング設定の sync_status を更新します。

POST /api/v1/repository/{repository}/mirror/sync-cancel

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror/sync-cancel" \
Copy to Clipboard Toggle word wrap

7.9.2. syncNow

指定したリポジトリーのミラーリング設定の sync_status を更新します。

POST /api/v1/repository/{repository}/mirror/sync-now

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror/sync-now" \
     -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.9.3. getRepoMirrorConfig

指定したリポジトリーのミラーリング設定を返します。

GET /api/v1/repository/{repository}/mirror

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

ViewMirrorConfig

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror" \
     -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.9.4. changeRepoMirrorConfig

ユーザーがリポジトリーのミラーリング設定を変更できるようにします。

PUT /api/v1/repository/{repository}/mirror

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

リポジトリーミラーリング設定を更新します。

Expand
名前説明スキーマ

is_enabled
任意

同期を有効または無効にするために使用されます。

boolean

external_reference
任意

外部リポジトリーの場所。

string

external_registry_username
任意

外部レジストリーでの認証に使用されるユーザー名。

 

external_registry_password
任意

外部レジストリーでの認証に使用されるパスワード。

 

sync_start_date
任意

このリポジトリーの次の同期時間を決定します。

string

sync_interval
任意

next_start_date が同期を開始するまでの秒数。

integer

robot_username
任意

イメージのプッシュに使用されるロボットのユーザー名。

string

root_rule
任意

同期する必要のあるタグの判別に使用する glob パターンのリスト。

object

external_registry_config
任意

 

object

レスポンス
Expand
HTTP コード説明スキーマ

201

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror" \
    -H "Authorization: Bearer <access_token>" \
    -H "Content-Type: application/json" \
    -d '{
        "is_enabled": <false>, 
1

        "external_reference": "<external_reference>",
        "external_registry_username": "<external_registry_username>",
        "external_registry_password": "<external_registry_password>",
        "sync_start_date": "<sync_start_date>",
        "sync_interval": <sync_interval>,
        "robot_username": "<robot_username>",
        "root_rule": {
            "rule": "<rule>",
            "rule_type": "<rule_type>"
        }
    }'
Copy to Clipboard Toggle word wrap
1
自動同期を無効にします。

7.9.5. createRepoMirrorConfig

特定のリポジトリーの RepoMirrorConfig を作成します。

POST /api/v1/repository/{repository}/mirror

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

リポジトリーのミラーリング設定を作成します。

Expand
名前説明スキーマ

is_enabled
任意

同期を有効または無効にするために使用されます。

boolean

external_reference
必須

外部リポジトリーの場所。

string

external_registry_username
任意

外部レジストリーでの認証に使用されるユーザー名。

 

external_registry_password
任意

外部レジストリーでの認証に使用されるパスワード。

 

sync_start_date
必須

このリポジトリーの次の同期時間を決定します。

string

sync_interval
必須

next_start_date が同期を開始するまでの秒数。

integer

robot_username
必須

イメージのプッシュに使用されるロボットのユーザー名。

string

root_rule
必須

同期する必要のあるタグの判別に使用する glob パターンのリスト。

object

external_registry_config
任意

 

object

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://<quay-server.example.com>/api/v1/repository/<namespace>/<repo>/mirror" \
    -H "Authorization: Bearer <access_token>" \
    -H "Content-Type: application/json" \
    -d '{
        "is_enabled": <is_enabled>,
        "external_reference": "<external_reference>",
        "external_registry_username": "<external_registry_username>",
        "external_registry_password": "<external_registry_password>",
        "sync_start_date": "<sync_start_date>",
        "sync_interval": <sync_interval>,
        "robot_username": "<robot_username>",
        "root_rule": {
            "rule": "<rule>",
            "rule_type": "<rule_type>"
        }
    }'
Copy to Clipboard Toggle word wrap

7.10. namespacequota

7.10.1. listUserQuota

GET /api/v1/user/quota

認可: oauth2_implicit (user:admin)

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/user/quota" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.10.2. getOrganizationQuotaLimit

GET /api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id}

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

path

limit_id
必須

 

string

path

orgname
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>/limit/<limit_id>" \
     -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.10.3. changeOrganizationQuotaLimit

PUT /api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

path

limit_id
必須

 

string

path

orgname
必須

 

string

要求の body スキーマ (application/json)

変更する組織のクォータ制限の説明

Expand
名前説明スキーマ

type
任意

割り当て制限のタイプ: "Warning" または "Reject"

string

threshold_percent
任意

クォータのしきい値 (クォータのパーセント単位)

integer

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>/limit/<limit_id>" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -d '{
           "type": "<type>",
           "threshold_percent": <threshold_percent>
         }'
Copy to Clipboard Toggle word wrap

7.10.4. deleteOrganizationQuotaLimit

DELETE /api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

path

limit_id
必須

 

string

path

orgname
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>/limit/<limit_id>" \
     -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.10.5. createOrganizationQuotaLimit

POST /api/v1/organization/{orgname}/quota/{quota_id}/limit

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

path

orgname
必須

 

string

要求の body スキーマ (application/json)

新しい組織のクォータ制限の説明

Expand
名前説明スキーマ

type
必須

割り当て制限のタイプ: "Warning" または "Reject"

string

threshold_percent
必須

クォータのしきい値 (クォータのパーセント単位)

integer

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>/limit" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -d '{
           "limit_bytes": 21474836480,
           "type": "Reject", 
1

           "threshold_percent": 90 
2

         }'
Copy to Clipboard Toggle word wrap

7.10.6. listOrganizationQuotaLimit

GET /api/v1/organization/{orgname}/quota/{quota_id}/limit

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

path

orgname
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>/limit" \
     -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.10.7. getUserQuotaLimit

GET /api/v1/user/quota/{quota_id}/limit/{limit_id}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

path

limit_id
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/user/quota/{quota_id}/limit/{limit_id}" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.10.8. listUserQuotaLimit

GET /api/v1/user/quota/{quota_id}/limit

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/user/quota/{quota_id}/limit" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.10.9. getOrganizationQuota

GET /api/v1/organization/{orgname}/quota/{quota_id}

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

path

orgname
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>" \
     -H "Authorization: Bearer <access_token>"S
Copy to Clipboard Toggle word wrap

7.10.10. changeOrganizationQuota

PUT /api/v1/organization/{orgname}/quota/{quota_id}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

path

orgname
必須

 

string

要求の body スキーマ (application/json)

新しい組織の割り当ての説明

Expand
名前説明スキーマ

limit_bytes
任意

組織で許可されているバイト数

integer

limits
任意

人間が判読可能な組織のストレージ容量。Mi、Gi、Ti などの SI 単位だけでなく、GB や MB などの非標準単位も受け入れます。limit_bytes と相互に排他的である必要があります。

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -d '{
         "limit_bytes": <limit_in_bytes>
     }'
Copy to Clipboard Toggle word wrap

7.10.11. deleteOrganizationQuota

DELETE /api/v1/organization/{orgname}/quota/{quota_id}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

path

orgname
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota/<quota_id>" \
     -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.10.12. createOrganizationQuota

新しい組織のクォータを作成します。

POST /api/v1/organization/{orgname}/quota

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

 

string

要求の body スキーマ (application/json)

新しい組織の割り当ての説明

Expand
名前説明スキーマ

limit_bytes
必須

組織で許可されているバイト数

integer

limits
任意

人間が判読可能な組織のストレージ容量。Mi、Gi、Ti などの SI 単位だけでなく、GB や MB などの非標準単位も受け入れます。limit_bytes と相互に排他的である必要があります。

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/quota" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -d '{
         "limit_bytes": 10737418240,
         "limits": "10 Gi"
     }'
Copy to Clipboard Toggle word wrap

7.10.13. listOrganizationQuota

GET /api/v1/organization/{orgname}/quota

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -k -X GET -H "Authorization: Bearer <token>" -H 'Content-Type: application/json'  https://<quay-server.example.com>/api/v1/organization/<organization_name>/quota
Copy to Clipboard Toggle word wrap

7.10.14. getUserQuota

GET /api/v1/user/quota/{quota_id}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

quota_id
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/user/quota/{quota_id}" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.11. organization

組織、メンバーおよび OAuth アプリケーションを管理します。

7.11.1. createOrganization

新しい組織を作成します。

POST /api/v1/organization/

認可: oauth2_implicit (user:admin)

要求の body スキーマ (application/json)

新しい組織の説明。

Expand
名前説明スキーマ

name
必須

組織のユーザー名

string

email
任意

組織の連絡先メール

string

recaptcha_response
任意

検証用の recaptcha 応答コード (無効となっている場合もある)。

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST   -H "Authorization: Bearer <bearer_token>" -H "Content-Type: application/json"   -d '{
    "name": "<new_organization_name>"
  }'   "https://<quay-server.example.com>/api/v1/organization/"
Copy to Clipboard Toggle word wrap

7.11.2. validateProxyCacheConfig

POST /api/v1/organization/{orgname}/validateproxycache

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

 

string

要求の body スキーマ (application/json)

組織のプロキシーキャッシュ設定

Expand
名前説明スキーマ

upstream_registry
必須

キャッシュされるアップストリームレジストリーの名前

string

レスポンス
Expand
HTTP コード説明スキーマ

202

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://<quay-server.example.com>/api/v1/organization/{orgname}/validateproxycache" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "upstream_registry": "<upstream_registry>"
      }'
Copy to Clipboard Toggle word wrap

7.11.3. getOrganizationCollaborators

指定した組織の外部コラボレーターをリスト表示します。

GET /api/v1/organization/{orgname}/collaborators

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/{orgname}/collaborators" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.11.4. getOrganizationApplication

指定の組織、指定の client_id のアプリケーションを取得します。

GET /api/v1/organization/{orgname}/applications/{client_id}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

client_id
必須

OAuth クライアント ID

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications/<client_id>" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.11.5. updateOrganizationApplication

この組織のアプリケーションを更新します。

PUT /api/v1/organization/{orgname}/applications/{client_id}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

client_id
必須

OAuth クライアント ID

string

path

orgname
必須

組織の名前

string

要求の body スキーマ (application/json)

更新アプリケーションの説明。

Expand
名前説明スキーマ

name
必須

アプリケーションの名前

string

redirect_uri
必須

アプリケーションの OAuth リダイレクトの URI

string

application_uri
必須

アプリケーションのホームページの URI

string

description
任意

アプリケーションの人間が判読できる説明

string

avatar_email
任意

アプリケーションに使用するアバターのメールアドレス

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT "https://quay-server.example.com/api/v1/organization/test/applications/12345" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Updated Application Name",
        "redirect_uri": "https://example.com/oauth/callback",
        "application_uri": "https://example.com",
        "description": "Updated description for the application",
        "avatar_email": "avatar@example.com"
      }'
Copy to Clipboard Toggle word wrap

7.11.6. deleteOrganizationApplication

この組織のアプリケーションを削除します。

DELETE /api/v1/organization/{orgname}/applications/{client_id}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

client_id
必須

OAuth クライアント ID

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/{orgname}/applications/{client_id}" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.11.7. createOrganizationApplication

この組織に新しいアプリケーションを作成します。

POST /api/v1/organization/{orgname}/applications

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

要求の body スキーマ (application/json)

新しい組織アプリケーションを説明します。

Expand
名前説明スキーマ

name
必須

アプリケーションの名前

string

redirect_uri
任意

アプリケーションの OAuth リダイレクトの URI

string

application_uri
任意

アプリケーションのホームページの URI

string

description
任意

アプリケーションの人間が判読できる説明

string

avatar_email
任意

アプリケーションに使用するアバターのメールアドレス

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "<app_name>",
        "redirect_uri": "<redirect_uri>",
        "application_uri": "<application_uri>",
        "description": "<app_description>",
        "avatar_email": "<avatar_email>"
      }'
Copy to Clipboard Toggle word wrap

7.11.8. getOrganizationApplications

指定した組織のアプリケーションをリスト表示します。

GET /api/v1/organization/{orgname}/applications

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/applications" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.11.9. getProxyCacheConfig

組織のプロキシーキャッシュ設定を取得します。

GET /api/v1/organization/{orgname}/proxycache

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/{orgname}/proxycache" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.11.10. deleteProxyCacheConfig

組織のプロキシーキャッシュ設定を削除します。

DELETE /api/v1/organization/{orgname}/proxycache

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/{orgname}/proxycache" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.11.11. createProxyCacheConfig

組織のプロキシーキャッシュ設定を作成します。

POST /api/v1/organization/{orgname}/proxycache

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

要求の body スキーマ (application/json)

組織のプロキシーキャッシュ設定

Expand
名前説明スキーマ

upstream_registry
必須

キャッシュされるアップストリームレジストリーの名前

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://<quay-server.example.com>/api/v1/organization/<orgname>/proxycache" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "upstream_registry": "<upstream_registry>"
      }'
Copy to Clipboard Toggle word wrap

7.11.12. getOrganizationMember

組織のメンバーの詳細を取得します。

GET /api/v1/organization/{orgname}/members/{membername}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

membername
必須

組織メンバーのユーザー名

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/members/<membername>" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.11.13. removeOrganizationMember

組織からメンバーを削除し、そのリポジトリーの特権をすべて破棄して組織の全チームから削除します。

DELETE /api/v1/organization/{orgname}/members/{membername}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

membername
必須

組織メンバーのユーザー名

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://<quay-server.example.com>/api/v1/organization/<orgname>/members/<membername>" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.11.14. getOrganizationMembers

指定した組織のメンバー (人間) をリスト表示します。

GET /api/v1/organization/{orgname}/members

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/organization/<orgname>/members" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.11.15. getOrganization

指定した組織の詳細を取得します。

GET /api/v1/organization/{orgname}

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>"
Copy to Clipboard Toggle word wrap

7.11.16. changeOrganizationDetails

指定した組織の詳細を変更します。

PUT /api/v1/organization/{orgname}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

要求の body スキーマ (application/json)

既存組織の更新の説明

Expand
名前説明スキーマ

email
任意

組織の連絡先メール

string

invoice_email
任意

組織が請求書のメールを受信する必要があるかどうか。

boolean

invoice_email_address
任意

請求書を受信するメールアドレス

 

tag_expiration_s
任意

タグの有効期限 (秒)

integer

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>"
Copy to Clipboard Toggle word wrap

7.11.17. deleteAdminedOrganization

指定した組織を削除します。

DELETE /api/v1/organization/{orgname}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>"
Copy to Clipboard Toggle word wrap

7.11.18. getApplicationInformation

指定したアプリケーションに関する情報を取得します。

GET /api/v1/app/{client_id}

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

client_id
必須

OAuth クライアント ID

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://<quay-server.example.com>/api/v1/app/<client_id>" \
  -H "Authorization: Bearer <access_token>"
Copy to Clipboard Toggle word wrap

7.12. permission

リポジトリーのパーミッションを管理します。

7.12.1. getUserTransitivePermission

指定したユーザーのパーミッションを取得します。

GET /api/v1/repository/{repository}/permissions/user/{username}/transitive

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

username
必須

パーミッションが適用されるユーザー名

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <access_token>" \
  "https://quay-server.example.com/api/v1/repository/<repository_path>/permissions/user/<username>/transitive"
Copy to Clipboard Toggle word wrap

7.12.2. getUserPermissions

指定したユーザーのパーミッションを取得します。

GET /api/v1/repository/{repository}/permissions/user/{username}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

username
必須

パーミッションが適用されるユーザーのユーザー名

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <access_token>" \
  "https://quay-server.example.com/api/v1/repository/<repository_path>/permissions/user/<username>"
Copy to Clipboard Toggle word wrap

7.12.3. changeUserPermissions

既存リポジトリーのパーミッションを更新します。

PUT /api/v1/repository/{repository}/permissions/user/{username}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

username
必須

パーミッションが適用されるユーザーのユーザー名

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

ユーザーパーミッションの説明。

Expand
名前説明スキーマ

role
必須

ユーザーに使用するロール

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{"role": "admin"}' \
  https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository>/permissions/user/<username>
Copy to Clipboard Toggle word wrap

7.12.4. deleteUserPermissions

ユーザーのパーミッションを削除します。

DELETE /api/v1/repository/{repository}/permissions/user/{username}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

username
必須

パーミッションが適用されるユーザーのユーザー名

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository>/permissions/user/<username>
Copy to Clipboard Toggle word wrap

7.12.5. getTeamPermissions

指定したチームのパーミッションをフェッチします。

GET /api/v1/repository/{repository}/permissions/team/{teamname}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

teamname
必須

パーミッションが適用されるチームの名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <access_token>" \
  "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/<teamname>"
Copy to Clipboard Toggle word wrap

7.12.6. changeTeamPermissions

既存のチームパーミッションを更新します。

PUT /api/v1/repository/{repository}/permissions/team/{teamname}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

teamname
必須

パーミッションが適用されるチームの名前

string

要求の body スキーマ (application/json)

チームパーミッションの説明。

Expand
名前説明スキーマ

role
必須

チームに使用するロール

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

$ curl -X PUT \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{"role": "<role>"}' \
  "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/<teamname>"
Copy to Clipboard Toggle word wrap

7.12.7. deleteTeamPermissions

指定したチームのパーミッションを削除します。

DELETE /api/v1/repository/{repository}/permissions/team/{teamname}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

teamname
必須

パーミッションが適用されるチームの名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE \
  -H "Authorization: Bearer <access_token>" \
  "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/<teamname>"
Copy to Clipboard Toggle word wrap

7.12.8. listRepoTeamPermissions

すべてのチームパーミッションをリスト表示します。

GET /api/v1/repository/{repository}/permissions/team/

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <access_token>" \
  "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/permissions/team/"
Copy to Clipboard Toggle word wrap

7.12.9. listRepoUserPermissions

全ユーザーパーミッションをリスト表示します。

GET /api/v1/repository/{repository}/permissions/user/

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository>/permissions/user/<username>/
Copy to Clipboard Toggle word wrap

7.13. policy

7.13.1. createOrganizationAutoPrunePolicy

組織の自動プルーニングポリシーを作成します。

POST /api/v1/organization/{orgname}/autoprunepolicy/

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

要求の body スキーマ (application/json)

ユーザーの namespace に適用されるポリシー設定

Expand
名前説明スキーマ

method
必須

タグのプルーニングに使用するメソッド (number_of_tags、creation_date)

string

value
必須

プルーニング方法に使用する値 (タグの数 (例: 10)、時間デルタ (例: 7d (7 日)))

 

tagPattern
optional

このパターンに一致するタグのみがプルーニングされます

string

tagPatternMatches
optional

プルーニングされたタグが tagPattern と一致するかどうかを決定する

boolean

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags", "value": 10}' http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/
Copy to Clipboard Toggle word wrap

7.13.2. listOrganizationAutoPrunePolicies

組織の自動プルーニングポリシーを一覧表示します。

GET /api/v1/organization/{orgname}/autoprunepolicy/

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/organization/example_org/autoprunepolicy/" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.13.3. getOrganizationAutoPrunePolicy

組織の自動プルーニングポリシーを取得します。

GET /api/v1/organization/{orgname}/autoprunepolicy/{policy_uuid}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

policy_uuid
required

ポリシーの一意の ID

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET -H "Authorization: Bearer <access_token>" http://<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/<policy_uuid>
Copy to Clipboard Toggle word wrap

7.13.4. deleteOrganizationAutoPrunePolicy

組織の自動プルーニングポリシーを削除します。

DELETE /api/v1/organization/{orgname}/autoprunepolicy/{policy_uuid}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

policy_uuid
required

ポリシーの一意の ID

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://quay-server.example.com/api/v1/organization/example_org/autoprunepolicy/example_policy_uuid" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.13.5. updateOrganizationAutoPrunePolicy

組織の自動プルーニングポリシーを更新します。

PUT /api/v1/organization/{orgname}/autoprunepolicy/{policy_uuid}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

policy_uuid
required

ポリシーの一意の ID

string

path

orgname
必須

組織の名前

string

要求の body スキーマ (application/json)

ユーザーの namespace に適用されるポリシー設定

Expand
名前説明スキーマ

method
必須

タグのプルーニングに使用するメソッド (number_of_tags、creation_date)

string

value
必須

プルーニング方法に使用する値 (タグの数 (例: 10)、時間デルタ (例: 7d (7 日)))

 

tagPattern
optional

このパターンに一致するタグのみがプルーニングされます

string

tagPatternMatches
optional

プルーニングされたタグが tagPattern と一致するかどうかを決定する

boolean

レスポンス
Expand
HTTP コード説明スキーマ

204

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT   -H "Authorization: Bearer <bearer_token>"   -H "Content-Type: application/json"   -d '{
    "method": "creation_date",
    "value": "4d",
    "tagPattern": "^v*",
    "tagPatternMatches": true
  }'   "<quay-server.example.com>/api/v1/organization/<organization_name>/autoprunepolicy/<uuid>"
Copy to Clipboard Toggle word wrap

7.13.6. createRepositoryAutoPrunePolicy

リポジトリーの自動プルーニングポリシーを作成します。

POST /api/v1/repository/{repository}/autoprunepolicy/

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

ユーザーの namespace に適用されるポリシー設定

Expand
名前説明スキーマ

method
必須

タグのプルーニングに使用するメソッド (number_of_tags、creation_date)

string

value
必須

プルーニング方法に使用する値 (タグの数 (例: 10)、時間デルタ (例: 7d (7 日)))

 

tagPattern
optional

このパターンに一致するタグのみがプルーニングされます

string

tagPatternMatches
optional

プルーニングされたタグが tagPattern と一致するかどうかを決定する

boolean

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" -d '{"method": "number_of_tags","value": 2}' http://<quay-server.example.com>/api/v1/repository/<organization_name>/<repository_name>/autoprunepolicy/
Copy to Clipboard Toggle word wrap

7.13.7. listRepositoryAutoPrunePolicies

リポジトリーの自動プルーニングポリシーをリスト表示します。

GET /api/v1/repository/{repository}/autoprunepolicy/

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/autoprunepolicy/" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.13.8. getRepositoryAutoPrunePolicy

リポジトリーの自動プルーニングポリシーを取得します。

GET /api/v1/repository/{repository}/autoprunepolicy/{policy_uuid}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

policy_uuid
required

ポリシーの一意の ID

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/autoprunepolicy/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.13.9. deleteRepositoryAutoPrunePolicy

リポジトリーの自動プルーニングポリシーを削除します。

DELETE /api/v1/repository/{repository}/autoprunepolicy/{policy_uuid}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

policy_uuid
required

ポリシーの一意の ID

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/autoprunepolicy/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.13.10. updateRepositoryAutoPrunePolicy

リポジトリーの自動プルーニングポリシーを更新します。

PUT /api/v1/repository/{repository}/autoprunepolicy/{policy_uuid}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

policy_uuid
required

ポリシーの一意の ID

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

ユーザーの namespace に適用されるポリシー設定

Expand
名前説明スキーマ

method
必須

タグのプルーニングに使用するメソッド (number_of_tags、creation_date)

string

value
必須

プルーニング方法に使用する値 (タグの数 (例: 10)、時間デルタ (例: 7d (7 日)))

 

tagPattern
optional

このパターンに一致するタグのみがプルーニングされます

string

tagPatternMatches
optional

プルーニングされたタグが tagPattern と一致するかどうかを決定する

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "number_of_tags",
    "value": "5",
    "tagPattern": "^test.*",
    "tagPatternMatches": true
  }' \
  "https://quay-server.example.com/api/v1/repository/<namespace>/<repo_name>/autoprunepolicy/<uuid>"
Copy to Clipboard Toggle word wrap

7.13.11. createUserAutoPrunePolicy

現在ログインしているユーザーの自動プルーニングポリシーを作成します。

POST /api/v1/user/autoprunepolicy/

認可: oauth2_implicit (user:admin)

要求の body スキーマ (application/json)

ユーザーの namespace に適用されるポリシー設定

Expand
名前説明スキーマ

method
必須

タグのプルーニングに使用するメソッド (number_of_tags、creation_date)

string

value
必須

プルーニング方法に使用する値 (タグの数 (例: 10)、時間デルタ (例: 7d (7 日)))

 

tagPattern
optional

このパターンに一致するタグのみがプルーニングされます

string

tagPatternMatches
optional

プルーニングされたタグが tagPattern と一致するかどうかを決定する

boolean

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://quay-server.example.com/api/v1/user/autoprunepolicy/" \
  -H "Authorization: Bearer <your_access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "number_of_tags",
    "value": 10,
    "tagPattern": "v*",
    "tagPatternMatches": true
  }'
Copy to Clipboard Toggle word wrap

7.13.12. listUserAutoPrunePolicies

現在ログインしているユーザーの自動プルーニングポリシーをリスト表示します。

GET /api/v1/user/autoprunepolicy/

認可: oauth2_implicit (user:admin)

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/user/autoprunepolicy/" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.13.13. getUserAutoPrunePolicy

現在ログインしているユーザーの自動プルーニングポリシーを取得します。

GET /api/v1/user/autoprunepolicy/{policy_uuid}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

policy_uuid
required

ポリシーの一意の ID

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/user/autoprunepolicy/{policy_uuid}" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.13.14. deleteUserAutoPrunePolicy

現在ログインしているユーザーの自動プルーニングポリシーを削除します。

DELETE /api/v1/user/autoprunepolicy/{policy_uuid}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

policy_uuid
required

ポリシーの一意の ID

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://quay-server.example.com/api/v1/user/autoprunepolicy/<policy_uuid>" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.13.15. updateUserAutoPrunePolicy

現在ログインしているユーザーの自動プルーニングポリシーを更新します。

PUT /api/v1/user/autoprunepolicy/{policy_uuid}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

policy_uuid
required

ポリシーの一意の ID

string

要求の body スキーマ (application/json)

ユーザーの namespace に適用されるポリシー設定

Expand
名前説明スキーマ

method
必須

タグのプルーニングに使用するメソッド (number_of_tags、creation_date)

string

value
必須

プルーニング方法に使用する値 (タグの数 (例: 10)、時間デルタ (例: 7d (7 日)))

 

tagPattern
optional

このパターンに一致するタグのみがプルーニングされます

string

tagPatternMatches
optional

プルーニングされたタグが tagPattern と一致するかどうかを決定する

boolean

レスポンス
Expand
HTTP コード説明スキーマ

204

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT "https://quay-server.example.com/api/v1/user/autoprunepolicy/<policy_uuid>" \
  -H "Authorization: Bearer <your_access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "number_of_tags",
    "value": "10",
    "tagPattern": ".*-old",
    "tagPatternMatches": true
  }'
Copy to Clipboard Toggle word wrap

7.14. prototype

リポジトリーに追加されたデフォルトのパーミッションを管理します。

7.14.1. updateOrganizationPrototypePermission

既存のパーミッションプロトタイプのロールを更新します。

PUT /api/v1/organization/{orgname}/prototypes/{prototypeid}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

prototypeid
必須

プロトタイプの ID

string

path

orgname
必須

組織の名前

string

要求の body スキーマ (application/json)

新しいプロトタイプロールの説明

Expand
名前説明スキーマ

role
任意

パーミッションに適用する必要のあるロール

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  --data '{
    "role": "write"
  }' \
  https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes/<prototypeid>
Copy to Clipboard Toggle word wrap

7.14.2. deleteOrganizationPrototypePermission

既存のパーミッションのプロトタイプを削除します。

DELETE /api/v1/organization/{orgname}/prototypes/{prototypeid}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

prototypeid
必須

プロトタイプの ID

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes/<prototype_id>
Copy to Clipboard Toggle word wrap

7.14.3. createOrganizationPrototypePermission

新規パーミッションのプロトタイプを作成します。

POST /api/v1/organization/{orgname}/prototypes

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

要求の body スキーマ (application/json)

新しいプロトタイプの説明

Expand
名前説明スキーマ

role
必須

委譲に適用する必要のあるロール

string

activating_user
任意

ルールが適用されるユーザーを作成するリポジトリー

object

委譲
必須

ルールでアクセス権を付与するユーザーまたはチームに関する情報

object

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST   -H "Authorization: Bearer <bearer_token>"   -H "Content-Type: application/json"   --data '{
    "role": "<admin_read_or_write>",
    "delegate": {
      "name": "<username>",
      "kind": "user"
    },
    "activating_user": {
      "name": "<robot_name>"
    }
  }'   https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes
Copy to Clipboard Toggle word wrap

7.14.4. getOrganizationPrototypePermissions

この組織の既存のプロトタイプをリスト表示します。

GET /api/v1/organization/{orgname}/prototypes

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes
Copy to Clipboard Toggle word wrap

7.15. referrers

v2 API リファラーのリストを示します。

7.15.1. getReferrers

イメージダイジェストの v2 API リファラーのリストを示します。

GET /v2/{organization_name}/{repository_name}/referrers/{digest}
要求の body スキーマ (application/json)

イメージダイジェストのリファラー。

Expand

タイプ

名前

説明

スキーマ

path

orgname
必須

組織の名前

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

referrers
必須

リポジトリー配下にあるマニフェストの OCI リファラーを検索します。

string

7.16. repository

リポジトリーをリスト表示、作成、管理します。

7.16.1. createRepo

新規リポジトリーを作成します。

POST /api/v1/repository

認可: oauth2_implicit(repo:create)

要求の body スキーマ (application/json)

新規リポジトリーの説明

Expand
名前説明スキーマ

repository
必須

Repository name

string

visibility
必須

リポジトリーの初期の表示内容

string

namespace
任意

リポジトリーを作成する namespace。省略すると、呼び出し元のユーザー名が使用されます。

string

description
必須

リポジトリーの Markdown でエンコードされた説明

string

repo_kind
任意

リポジトリーの種類

 
レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "repository": "<new_repository_name>",
    "visibility": "<public>",
    "description": "<This is a description of the new repository>."
  }' \
  "https://quay-server.example.com/api/v1/repository"
Copy to Clipboard Toggle word wrap

7.16.2. listRepos

さまざまな状況で現在のユーザーに表示されるリポジトリーのリストを取得します。

GET /api/v1/repository

認可: oauth2_implicit(repo:read)

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

next_page
任意

次のページのページトークン

string

query

repo_kind
任意

返すリポジトリーの種類

string

query

popularity
任意

リポジトリーの人気指標を含めるかどうか。

boolean

query

last_modified
任意

リポジトリーの最終変更時を含めるかどうか。

boolean

query

public
必須

公開されているリポジトリーをユーザーに表示するように追加します。

boolean

query

starred
必須

ユーザーがスターをつけたリポジトリーを返すようにフィルタリングします。

boolean

query

namespace
必須

この namespace に返されたリポジトリーをフィルターします。

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  "https://quay-server.example.com/api/v1/repository?public=true&starred=false&namespace=<NAMESPACE>"
Copy to Clipboard Toggle word wrap

7.16.3. changeRepoVisibility

リポジトリーの可視性を変更します。

POST /api/v1/repository/{repository}/changevisibility

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

リポジトリーの可視性を変更します。

Expand
名前説明スキーマ

visibility
必須

リポジトリーの初期の表示内容

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンド例
$ curl -X POST \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
        "visibility": "private"
      }' \
  "https://quay-server.example.com/api/v1/repository/<NAMESPACE>/<REPO_NAME>/changevisibility"
Copy to Clipboard Toggle word wrap

7.16.4. changeRepoState

リポジトリーの状態を変更します。

PUT /api/v1/repository/{repository}/changestate

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

リポジトリーの状態を変更します。

Expand
名前説明スキーマ

状態
必須

プッシュが許可されるかどうかを決定します。

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例

7.16.5. getRepo

指定したリポジトリーを取得します。

GET /api/v1/repository/{repository}

認可: oauth2_implicit(repo:read)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

includeTags
任意

リポジトリータグを含めるかどうか。

boolean

query

includeStats
任意

アクション統計を含めるかどうか。

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
Copy to Clipboard Toggle word wrap

7.16.6. updateRepo

指定したリポジトリーにある説明を更新します。

PUT /api/v1/repository/{repository}

認可: oauth2_implicit (repo:write)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

リポジトリーで更新できるフィールド。

Expand
名前説明スキーマ

description
必須

リポジトリーの Markdown でエンコードされた説明

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "description": "This is an updated description for the repository."
      }' \
  "https://quay-server.example.com/api/v1/repository/<NAMESPACE>/<REPOSITORY>"
Copy to Clipboard Toggle word wrap

7.16.7. deleteRepository

リポジトリーを削除します。

DELETE /api/v1/repository/{repository}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE   -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
Copy to Clipboard Toggle word wrap

7.17. repositorynotification

リポジトリーイベント/通知をリスト表示、作成、管理します。

7.17.1. testRepoNotification

このリポジトリーのテスト通知をキューに入れます。

POST /api/v1/repository/{repository}/notification/{uuid}/test

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

uuid
必須

通知の UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>/test
Copy to Clipboard Toggle word wrap

7.17.2. getRepoNotification

指定した通知の情報を取得します。

GET /api/v1/repository/{repository}/notification/{uuid}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

uuid
必須

通知の UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>
Copy to Clipboard Toggle word wrap

7.17.3. deleteRepoNotification

指定した通知を削除します。

DELETE /api/v1/repository/{repository}/notification/{uuid}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

uuid
必須

通知の UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification/<uuid>
Copy to Clipboard Toggle word wrap

7.17.4. resetRepositoryNotificationFailures

リポジトリーの失敗通知を 0 件にリセットします。

POST /api/v1/repository/{repository}/notification/{uuid}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

uuid
必須

通知の UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

204

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>
Copy to Clipboard Toggle word wrap

7.17.5. createRepoNotification

POST /api/v1/repository/{repository}/notification/

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

リポジトリーでの通知作成に関する情報

Expand
名前説明スキーマ

event
必須

通知が応答するイベント

string

method
必須

通知の方法 (メールや Web コールバックなど)

string

config
必須

特定の通知メソッドに関する JSON 設定情報

object

eventConfig
必須

特定の通知イベントに関する JSON 設定情報

object

title
任意

人間が判読できる通知のタイトル

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  --data '{
    "event": "<event>",
    "method": "<method>",
    "config": {
      "<config_key>": "<config_value>"
    },
    "eventConfig": {
      "<eventConfig_key>": "<eventConfig_value>"
    }
  }' \
  https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification/
Copy to Clipboard Toggle word wrap

7.17.6. listRepoNotifications

指定したリポジトリーの通知をリスト表示します。

GET /api/v1/repository/{repository}/notification/

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET  -H "Authorization: Bearer <bearer_token>"   -H "Accept: application/json"  https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification
Copy to Clipboard Toggle word wrap

7.18. robot

ユーザーおよび組織のロボットアカウントを管理します。

7.18.1. getUserRobots

ユーザーが利用可能なロボットをリスト表示します。

GET /api/v1/user/robots

認可: oauth2_implicit (user:admin)

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

limit
任意

これが指定されている場合には、返すべきロボットの数。

integer

query

token
任意

False の場合には、ロボットのトークンは返されません。

boolean

query

permissions
任意

ロボットのパーミッションがあるリポジトリーおよびチームを含めるかどうか。

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/user/robots?limit=10&token=false&permissions=true" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.18.2. getOrgRobotPermissions

組織のロボットのリポジトリーパーミッションリストを返します。

GET /api/v1/organization/{orgname}/robots/{robot_shortname}/permissions

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

robot_shortname
必須

ユーザーまたは組織の接頭辞を含まない、ロボットの省略名

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://quay-server.example.com/api/v1/organization/<ORGNAME>/robots/<ROBOT_SHORTNAME>/permissions"
Copy to Clipboard Toggle word wrap

7.18.3. regenerateOrgRobotToken

組織のロボットのトークンを再生成します。

POST /api/v1/organization/{orgname}/robots/{robot_shortname}/regenerate

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

robot_shortname
必須

ユーザーまたは組織の接頭辞を含まない、ロボットの省略名

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/organization/<orgname>/robots/<robot_shortname>/regenerate"
Copy to Clipboard Toggle word wrap

7.18.4. getUserRobotPermissions

ユーザーのロボットのリポジトリーパーミッションリストを返します。

GET /api/v1/user/robots/{robot_shortname}/permissions

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

robot_shortname
必須

ユーザーまたは組織の接頭辞を含まない、ロボットの省略名

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://quay-server.example.com/api/v1/user/robots/<ROBOT_SHORTNAME>/permissions"
Copy to Clipboard Toggle word wrap

7.18.5. regenerateUserRobotToken

ユーザーのロボットのトークンを再生成します。

POST /api/v1/user/robots/{robot_shortname}/regenerate

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

robot_shortname
必須

ユーザーまたは組織の接頭辞を含まない、ロボットの省略名

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>/regenerate"
Copy to Clipboard Toggle word wrap

7.18.6. getOrgRobot

指定された名前の組織のロボットを返します。

GET /api/v1/organization/{orgname}/robots/{robot_shortname}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

robot_shortname
必須

ユーザーまたは組織の接頭辞を含まない、ロボットの省略名

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://quay-server.example.com/api/v1/organization/<ORGNAME>/robots/<ROBOT_SHORTNAME>"
Copy to Clipboard Toggle word wrap

7.18.7. createOrgRobot

組織に新しいロボットを作成します。

PUT /api/v1/organization/{orgname}/robots/{robot_shortname}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

robot_shortname
必須

ユーザーまたは組織の接頭辞を含まない、ロボットの省略名

string

path

orgname
必須

組織の名前

string

要求の body スキーマ (application/json)

ロボット作成のデータ (任意)

Expand
名前説明スキーマ

description
任意

ロボットのテキスト形式の説明 (任意)

string

unstructured_metadata
任意

ロボットの非構造化メタデータ (任意)

object

レスポンス
Expand
HTTP コード説明スキーマ

201

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT   -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots/<robot_name>"
Copy to Clipboard Toggle word wrap

7.18.8. deleteOrgRobot

既存の組織ロボットを削除します。

DELETE /api/v1/organization/{orgname}/robots/{robot_shortname}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

robot_shortname
必須

ユーザーまたは組織の接頭辞を含まない、ロボットの省略名

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>/robots/<robot_shortname>"
Copy to Clipboard Toggle word wrap

7.18.9. getOrgRobots

組織のロボットをリスト表示します。

GET /api/v1/organization/{orgname}/robots

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname
必須

組織の名前

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

limit
任意

これが指定されている場合には、返すべきロボットの数。

integer

query

token
任意

False の場合には、ロボットのトークンは返されません。

boolean

query

permissions
任意

ロボットのパーミッションがあるリポジトリーおよびチームを含めるかどうか。

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots"
Copy to Clipboard Toggle word wrap

7.18.10. getUserRobot

指定の名前のユーザーのロボットを返します。

GET /api/v1/user/robots/{robot_shortname}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

robot_shortname
必須

ユーザーまたは組織の接頭辞を含まない、ロボットの省略名

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>"
Copy to Clipboard Toggle word wrap

7.18.11. createUserRobot

指定の名前で新たなユーザーロボットを作成します。

PUT /api/v1/user/robots/{robot_shortname}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

robot_shortname
必須

ユーザーまたは組織の接頭辞を含まない、ロボットの省略名

string

要求の body スキーマ (application/json)

ロボット作成のデータ (任意)

Expand
名前説明スキーマ

description
任意

ロボットのテキスト形式の説明 (任意)

string

unstructured_metadata
任意

ロボットの非構造化メタデータ (任意)

object

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT   -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/user/robots/<robot_name>"
Copy to Clipboard Toggle word wrap

7.18.12. deleteUserRobot

既存のロボットを削除します。

DELETE /api/v1/user/robots/{robot_shortname}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

robot_shortname
必須

ユーザーまたは組織の接頭辞を含まない、ロボットの省略名

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>"
Copy to Clipboard Toggle word wrap

7.18.13. 認証フェデレーションロボットトークン

ロボットアイデンティティーフェデレーションメカニズムを使用して、期限切れのロボットトークンを返します。

oauth2/federation/robot/token の取得

認可: oauth2_implicit (robot:auth)

レスポンス
Expand
HTTP コード説明スキーマ

200

認証とトークン生成が成功しました

{ "token": "string" }

401

Unauthorized: 認証が欠落しているか無効です

{ "error": "string" }

リクエストボディー
Expand
タイプ名前説明スキーマ

body

auth_result
required

ロボットのアイデンティティーに関する情報を含む認証プロセスの結果。

{ "missing": "boolean", "error_message": "string", "context": { "robot": "RobotObject" } }

コマンドの例
$ curl -X GET "https://quay-server.example.com/oauth2/federation/robot/token" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.18.14. createOrgRobotFederation

指定された組織ロボットのフェデレーション設定を作成します。

POST /api/v1/organization/{orgname}/robots/{robot_shortname}/federation

指定された組織ロボットのフェデレーション設定を取得します。

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

orgname + robot_shortname 必須

組織名とロボットの短縮名 (ユーザー名や組織の接頭辞なし)

string

レスポンス
Expand
HTTP コード説明スキーマ

201

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

コマンドの例
$ curl -X POST "https://quay-server.example.com/api/v1/organization/{orgname}/robots/{robot_shortname}/federation" \
  -H "Authorization: Bearer <your_access_token>" \
  -H "Content-Type: application/json"
Copy to Clipboard Toggle word wrap

7.20. secscan

リポジトリーの脆弱性およびその他のセキュリティー情報をリスト表示および管理します。

7.20.1. getRepoManifestSecurity

GET /api/v1/repository/{repository}/manifest/{manifestref}/security

認可: oauth2_implicit(repo:read)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

manifestref
必須

マニフェストのダイジェスト

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

vulnerabilities
任意

脆弱性情報を含めます

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/manifest/<manifest_digest>/security?vulnerabilities=<true_or_false>"
Copy to Clipboard Toggle word wrap

7.21. superuser

スーパーユーザー API。

7.21.1. createInstallUser

新しいユーザーを作成します。

POST /api/v1/superuser/users/

認可: oauth2_implicit(super:user)

要求の body スキーマ (application/json)

ユーザー作成のデータ

Expand
名前説明スキーマ

username
必須

作成されるユーザーの名前

string

email
任意

作成中のユーザーのメールアドレス

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST -H "Authorization: Bearer <bearer_token>" -H "Content-Type: application/json" -d '{
  "username": "newuser",
  "email": "newuser@example.com"
}' "https://<quay-server.example.com>/api/v1/superuser/users/"
Copy to Clipboard Toggle word wrap

7.21.2. deleteInstallUser

ユーザーを削除します。

DELETE /api/v1/superuser/users/{username}

認可: oauth2_implicit(super:user)

要求の body スキーマ (application/json)

ユーザーを削除するためのデータ

Expand
名前説明スキーマ

username
必須

削除するユーザーのユーザー名

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/users/{username}"
Copy to Clipboard Toggle word wrap

7.21.3. listAllUsers

システム内の全ユーザーリストを返します。

GET /api/v1/superuser/users/

認可: oauth2_implicit(super:user)

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

next_page
任意

次のページのページトークン

string

query

limit
任意

ページごとに返す結果の数を制限します。最大 100 です。

integer

query

disabled
任意

false の場合には、有効なユーザーのみが返されます。

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/users/"
Copy to Clipboard Toggle word wrap

7.21.4. listAllLogs

現在のシステムの使用状況ログをリスト表示します。

GET /api/v1/superuser/logs

認可: oauth2_implicit(super:user)

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

next_page
任意

次のページのページトークン

string

query

page
任意

ログのページ番号

integer

query

endtime
任意

最後にログを取得した時間 (%m/%d/%Y %Z)

string

query

starttime
任意

最初にログを取得する時間 (%m/%d/%Y %Z)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/logs?starttime=<start_time>&endtime=<end_time>&page=<page_number>&next_page=<next_page_token>"
Copy to Clipboard Toggle word wrap

7.21.5. listAllOrganizations

現在のシステムの組織をリスト表示します。

GET /api/v1/superuser/organizations

認可: oauth2_implicit(super:user)

クエリーパラメーター
Expand
タイプ名前説明スキーマ

path

name
必須

管理対象の組織名

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/organizations/"
Copy to Clipboard Toggle word wrap

7.21.6. createServiceKey

POST /api/v1/superuser/keys

認可: oauth2_implicit(super:user)

要求の body スキーマ (application/json)

サービスキーの作成の説明

Expand
名前説明スキーマ

サービス
必須

このキーで認証されるサービス

string

name
任意

サービスキーの判別しやすい名前

string

metadata
任意

このキーのメタデータのキー/値のペア

object

notes
任意

指定すると、キーにメモを追加で指定できます。

string

有効期限
必須

unix タイムスタンプとしての有効期限

 
レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "service": "<service_name>",
        "expiration": <unix_timestamp>
      }' \
  "<quay_server>/api/v1/superuser/keys"
Copy to Clipboard Toggle word wrap

7.21.7. listServiceKeys

GET /api/v1/superuser/keys

認可: oauth2_implicit(super:user)

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/keys"
Copy to Clipboard Toggle word wrap

7.21.8. changeUserQuotaSuperUser

PUT /api/v1/superuser/organization/{namespace}/quota/{quota_id}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

namespace
必須

 

string

path

quota_id
必須

 

string

要求の body スキーマ (application/json)

新しい組織の割り当ての説明

Expand
名前説明スキーマ

limit_bytes
任意

組織で許可されているバイト数

integer

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota/<quota_id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "limit_bytes": <NEW_QUOTA_LIMIT>
  }'
Copy to Clipboard Toggle word wrap

7.21.9. deleteUserQuotaSuperUser

DELETE /api/v1/superuser/organization/{namespace}/quota/{quota_id}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

namespace
必須

 

string

path

quota_id
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota/<quota_id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
Copy to Clipboard Toggle word wrap

7.21.10. createUserQuotaSuperUser

POST /api/v1/superuser/organization/{namespace}/quota

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

namespace
必須

 

string

要求の body スキーマ (application/json)

新しい組織の割り当ての説明

Expand
名前説明スキーマ

limit_bytes
必須

組織で許可されているバイト数

integer

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "limit_bytes": 10737418240
  }'
Copy to Clipboard Toggle word wrap

7.21.11. listUserQuotaSuperUser

GET /api/v1/superuser/organization/{namespace}/quota

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

namespace
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/superuser/organization/<namespace>/quota" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
Copy to Clipboard Toggle word wrap

7.21.12. changeOrganizationQuotaSuperUser

PUT /api/v1/superuser/users/{namespace}/quota/{quota_id}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

namespace
必須

 

string

path

quota_id
必須

 

string

要求の body スキーマ (application/json)

新しい組織の割り当ての説明

Expand
名前説明スキーマ

limit_bytes
任意

組織で許可されているバイト数

integer

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT "https://quay-server.example.com/api/v1/superuser/users/<username>/quota/<quota_id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "limit_bytes": <NEW_QUOTA_LIMIT>
  }'
Copy to Clipboard Toggle word wrap

7.21.13. deleteOrganizationQuotaSuperUser

DELETE /api/v1/superuser/users/{namespace}/quota/{quota_id}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

namespace
必須

 

string

path

quota_id
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://quay-server.example.com/api/v1/superuser/users/<username>/quota/<quota_id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
Copy to Clipboard Toggle word wrap

7.21.14. createOrganizationQuotaSuperUser

POST /api/v1/superuser/users/{namespace}/quota

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

namespace
必須

 

string

要求の body スキーマ (application/json)

新しい組織の割り当ての説明

Expand
名前説明スキーマ

limit_bytes
任意

組織で許可されているバイト数

integer

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://quay-server.example.com/api/v1/superuser/users/<username>/quota" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
        "limit_bytes": <QUOTA_LIMIT>
      }'
Copy to Clipboard Toggle word wrap

7.21.15. listOrganizationQuotaSuperUser

GET /api/v1/superuser/users/{namespace}/quota

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

namespace
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/superuser/users/<username>/quota" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
Copy to Clipboard Toggle word wrap

7.21.16. changeOrganization

指定したユーザーの情報を更新します。

PUT /api/v1/superuser/organizations/{name}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

name
必須

管理する組織の名前

string

要求の body スキーマ (application/json)

既存組織の更新の説明

Expand
名前説明スキーマ

email
任意

組織の連絡先メール

string

invoice_email
任意

組織が請求書のメールを受信する必要があるかどうか。

boolean

invoice_email_address
任意

請求書を受信するメールアドレス

 

tag_expiration_s
任意

タグの有効期限 (秒)

integer

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "email": "<contact_email>",
        "invoice_email": <boolean_value>,
        "invoice_email_address": "<invoice_email_address>",
        "tag_expiration_s": <expiration_seconds>
      }' \
  "https://<quay_server>/api/v1/superuser/organizations/<organization_name>"
Copy to Clipboard Toggle word wrap

7.21.17. deleteOrganization

指定した組織を削除します。

DELETE /api/v1/superuser/organizations/{name}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

name
必須

管理する組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/organizations/<organization_name>"
Copy to Clipboard Toggle word wrap

7.21.18. approveServiceKey

POST /api/v1/superuser/approvedkeys/{kid}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

kid
必須

サービスキーの一意識別子

string

要求の body スキーマ (application/json)

サービスキーの承認に関する情報

Expand
名前説明スキーマ

notes
任意

オプションの承認に関する注意事項

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "notes": "<approval_notes>"
      }' \
  "https://<quay_server>/api/v1/superuser/approvedkeys/<kid>"
Copy to Clipboard Toggle word wrap

7.21.19. deleteServiceKey

DELETE /api/v1/superuser/keys/{kid}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

kid
必須

サービスキーの一意識別子

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/keys/<kid>"
Copy to Clipboard Toggle word wrap

7.21.20. updateServiceKey

PUT /api/v1/superuser/keys/{kid}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

kid
必須

サービスキーの一意識別子

string

要求の body スキーマ (application/json)

サービスキーの更新の説明

Expand
名前説明スキーマ

name
任意

サービスキーの判別しやすい名前

string

metadata
任意

このキーのメタデータのキー/値のペア

object

expiration
任意

unix タイムスタンプとしての有効期限

 
レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "<service_key_name>",
        "metadata": {"<key>": "<value>"},
        "expiration": <unix_timestamp>
      }' \
  "https://<quay_server>/api/v1/superuser/keys/<kid>"
Copy to Clipboard Toggle word wrap

7.21.21. getServiceKey

GET /api/v1/superuser/keys/{kid}

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

kid
必須

サービスキーの一意識別子

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/keys/<kid>"
Copy to Clipboard Toggle word wrap

7.21.22. getRepoBuildStatusSuperUser

ビルドの uuid で指定したビルドのステータスを返します。

GET /api/v1/superuser/{build_uuid}/status

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

build_uuid
必須

ビルドの UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/superuser/<build_uuid>/status" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
Copy to Clipboard Toggle word wrap

7.21.23. getRepoBuildSuperUser

ビルドに関する情報を返します。

GET /api/v1/superuser/{build_uuid}/build

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

build_uuid
必須

ビルドの UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/superuser/<build_uuid>/build" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
Copy to Clipboard Toggle word wrap

7.21.24. getRepoBuildLogsSuperUser

ビルド uuid で指定したビルドのビルドログを返します。

GET /api/v1/superuser/{build_uuid}/logs

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

build_uuid
必須

ビルドの UUID

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/superuser/<build_uuid>/logs" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
Copy to Clipboard Toggle word wrap

7.21.25. getRegistrySize

GET /api/v1/superuser/registrysize/

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

namespace
必須

 

string

イメージレジストリーサイズの説明

Expand
名前説明スキーマ

size_bytes*
optional

組織で許可されているバイト数

integer

last_ran

 

integer

queued

 

boolean

running

 

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

作成済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  "https://<quay_server>/api/v1/superuser/registrysize/"
Copy to Clipboard Toggle word wrap

7.21.26. postRegistrySize

POST /api/v1/superuser/registrysize/

認可: oauth2_implicit(super:user)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

namespace
必須

 

string

要求の body スキーマ (application/json)

イメージレジストリーサイズの説明

Expand
名前説明スキーマ

last_ran

 

integer

queued

 

boolean

running

 

boolean

レスポンス
Expand
HTTP コード説明スキーマ

201

作成済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://quay-server.example.com/api/v1/superuser/registrysize/" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "namespace": "<namespace>",
    "last_ran": 1700000000,
    "queued": true,
    "running": false
  }'
Copy to Clipboard Toggle word wrap

7.22. tag

リポジトリーのタグを管理します。

7.22.1. restoreTag

リポジトリーの以前のイメージに、リポジトリータグを復元します。

POST /api/v1/repository/{repository}/tag/{tag}/restore

認可: oauth2_implicit (repo:write)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

tag
必須

タグの名前

string

要求の body スキーマ (application/json)

タグを特定のイメージに復元します。

Expand
名前説明スキーマ

manifest_digest
必須

指定されている場合には、使用する必要があるマニフェストダイジェスト。

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  --data '{
    "manifest_digest": <manifest_digest>
  }' \
  quay-server.example.com/api/v1/repository/quayadmin/busybox/tag/test/restore
Copy to Clipboard Toggle word wrap

7.22.2. changeTag

タグが参照するイメージを変更するか、新規タグを作成します。

PUT /api/v1/repository/{repository}/tag/{tag}

認可: oauth2_implicit (repo:write)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

tag
必須

タグの名前

string

要求の body スキーマ (application/json)

特定のタグを変更します。

Expand
名前説明スキーマ

manifest_digest
任意

(指定されている場合) タグが参照すべきマニフェストダイジェスト

 

expiration
任意

(指定されている場合) イメージの有効期限

 
レスポンス
Expand
HTTP コード説明スキーマ

201

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Content-Type: application/json" \
  --data '{
    "manifest_digest": "<manifest_digest>"
  }' \
  https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/tag/<tag>
Copy to Clipboard Toggle word wrap

7.22.3. deleteFullTag

指定したリポジトリータグを削除します。

DELETE /api/v1/repository/{repository}/tag/{tag}

認可: oauth2_implicit (repo:write)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

path

tag
必須

タグの名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://quay-server.example.com/api/v1/repository/<namespace>/<repo_name>/tag/<tag_name>" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.22.4. listRepoTags

GET /api/v1/repository/{repository}/tag/

認可: oauth2_implicit(repo:read)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

onlyActiveTags
任意

アクティブなタグだけに絞り込みます。

boolean

query

page
任意

結果のページインデックス。デフォルトは 1 です。

integer

query

limit
任意

ページごとに返す結果の数を制限します。最大 100 です。

integer

query

filter_tag_name
任意

構文: <op>:<name> 操作に基づいてタグ名をフィルターします。<op> には 'like' または 'eq' を指定できます。

string

query

specificTag
任意

特定のタグだけに絞り込みます。

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <bearer_token>" \
  -H "Accept: application/json" \
  https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/tag/
Copy to Clipboard Toggle word wrap

7.23. team

組織のチームを作成、リスト表示、および管理します。

7.23.1. getOrganizationTeamPermissions

組織のチームのリポジトリーパーミッションのリストを返します。

GET /api/v1/organization/{orgname}/team/{teamname}/permissions

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

teamname
必須

チームの名前

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <your_access_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/permissions"
Copy to Clipboard Toggle word wrap

7.23.2. updateOrganizationTeamMember

既存のチームにメンバーを追加または調整します。

PUT /api/v1/organization/{orgname}/team/{teamname}/members/{membername}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

teamname
必須

チームの名前

string

path

membername
必須

チームメンバーのユーザー名

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT \
  -H "Authorization: Bearer <your_access_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/members/<member_name>"
Copy to Clipboard Toggle word wrap

7.23.3. deleteOrganizationTeamMember

チームのメンバーを削除します。

If the user is merely invited to join the team, then the invite is removed instead.
Copy to Clipboard Toggle word wrap
DELETE /api/v1/organization/{orgname}/team/{teamname}/members/{membername}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

teamname
必須

チームの名前

string

path

membername
必須

チームメンバーのユーザー名

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE \
  -H "Authorization: Bearer <your_access_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/members/<member_name>"
Copy to Clipboard Toggle word wrap

7.23.4. getOrganizationTeamMembers

指定したチームのメンバーのリストを取得します。

GET /api/v1/organization/{orgname}/team/{teamname}/members

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

teamname
必須

チームの名前

string

path

orgname
必須

組織の名前

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

includePending
任意

保留中のメンバーを含めるかどうか。

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET \
  -H "Authorization: Bearer <your_access_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/members"
Copy to Clipboard Toggle word wrap

7.23.5. inviteTeamMemberEmail

既存のチームに招待するメールアドレスを追加します。

PUT /api/v1/organization/{orgname}/team/{teamname}/invite/{email}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

email
必須

 

string

path

teamname
必須

 

string

path

orgname
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT \
  -H "Authorization: Bearer <your_access_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/invite/<email>"
Copy to Clipboard Toggle word wrap

7.23.6. deleteTeamMemberEmailInvite

チームへの参加を招待するメールアドレスを削除します。

DELETE /api/v1/organization/{orgname}/team/{teamname}/invite/{email}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

email
必須

 

string

path

teamname
必須

 

string

path

orgname
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例

+

$ curl -X DELETE \
  -H "Authorization: Bearer <your_access_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>/invite/<email>"
Copy to Clipboard Toggle word wrap

7.23.7. updateOrganizationTeam

指定したチームの組織全体のパーミッションを更新します。

注記

この API はチームの作成にも使用されます。

PUT /api/v1/organization/{orgname}/team/{teamname}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

teamname
必須

チームの名前

string

path

orgname
必須

組織の名前

string

要求の body スキーマ (application/json)

チームの説明

Expand
名前説明スキーマ

role
必須

チームに適用する必要のある組織全体のパーミッション

string

description
任意

チームの Markdown の説明

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -k -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' -H "Authorization: Bearer <bearer_token>"  --data '{"role": "creator"}' https://<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>
Copy to Clipboard Toggle word wrap

7.23.8. deleteOrganizationTeam

指定したチームを削除します。

DELETE /api/v1/organization/{orgname}/team/{teamname}

認可: oauth2_implicit(org:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

teamname
必須

チームの名前

string

path

orgname
必須

組織の名前

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE \
  -H "Authorization: Bearer <your_access_token>" \
  "<quay-server.example.com>/api/v1/organization/<organization_name>/team/<team_name>"
Copy to Clipboard Toggle word wrap

7.24. trigger

ビルドトリガーを作成、リスト表示、管理します。

7.24.1. activateBuildTrigger

指定したビルドトリガーをアクティブにします。

POST /api/v1/repository/{repository}/trigger/{trigger_uuid}/activate

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

trigger_uuid
必須

ビルドトリガーの UUID

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)
Expand
名前説明スキーマ

config
必須

任意の json

object

pull_robot
任意

イメージのプルに使用するロボットの名前

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid/activate" \
  -H "Authorization: Bearer <your_access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "config": {
      "branch": "main"
    },
    "pull_robot": "example+robot"
  }'
Copy to Clipboard Toggle word wrap

7.24.2. listTriggerRecentBuilds

指定したトリガーで開始するビルドをリスト表示します。

GET /api/v1/repository/{repository}/trigger/{trigger_uuid}/builds

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

trigger_uuid
必須

ビルドトリガーの UUID

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

limit
任意

返すビルドの最大数

integer

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid/builds?limit=10" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.24.3. manuallyStartBuildTrigger

指定したトリガーからビルドを手動で開始します。

POST /api/v1/repository/{repository}/trigger/{trigger_uuid}/start

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

trigger_uuid
必須

ビルドトリガーの UUID

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

ビルドトリガーをアクティベートするための実行パラメーター (任意)

Expand
名前説明スキーマ

branch_name
任意

(SCM のみ) 指定した場合のビルドするブランチの名前。

string

commit_sha
任意

(カスタムのみ) 指定されている場合は、git リポジトリーのチェックアウトに使用する ref/SHA1。

string

refs
任意

(SCM のみ) 指定されている場合のビルドの ref。

 
レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid/start" \
  -H "Authorization: Bearer <your_access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "branch_name": "main",
    "commit_sha": "abcdef1234567890",
    "refs": "refs/heads/main"
  }'
Copy to Clipboard Toggle word wrap

7.24.4. getBuildTrigger

指定したビルドトリガーの情報を取得します。

GET /api/v1/repository/{repository}/trigger/{trigger_uuid}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

trigger_uuid
必須

ビルドトリガーの UUID

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.24.5. updateBuildTrigger

指定したビルドトリガーを更新します。

PUT /api/v1/repository/{repository}/trigger/{trigger_uuid}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

trigger_uuid
必須

ビルドトリガーの UUID

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

要求の body スキーマ (application/json)

ビルドトリガーを更新するオプション

Expand
名前説明スキーマ

enabled
必須

ビルドトリガーが有効かどうか。

boolean

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X PUT "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid" \
  -H "Authorization: Bearer <your_access_token>" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true}'
Copy to Clipboard Toggle word wrap

7.24.6. deleteBuildTrigger

指定したビルドトリガーを削除します。

DELETE /api/v1/repository/{repository}/trigger/{trigger_uuid}

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

trigger_uuid
必須

ビルドトリガーの UUID

string

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/example-trigger-uuid" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.24.7. listBuildTriggers

指定したリポジトリーのトリガーをリスト表示します。

GET /api/v1/repository/{repository}/trigger/

認可: oauth2_implicit(repo:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/repository/example_namespace/example_repo/trigger/" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.25. user

現行ユーザーを管理します。

7.25.1. createStar

リポジトリーを表示します。

POST /api/v1/user/starred

認可: oauth2_implicit(repo:read)

要求の body スキーマ (application/json)
Expand
名前説明スキーマ

namespace
必須

リポジトリーが属する namespace

string

repository
必須

Repository name

string

レスポンス
Expand
HTTP コード説明スキーマ

201

作成に成功

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X POST "https://quay-server.example.com/api/v1/user/starred" \
  -H "Authorization: Bearer <your_access_token>" \
  -H "Content-Type: application/json" \
  -d '{
        "namespace": "<namespace>",
        "repository": "<repository_name>"
      }'
Copy to Clipboard Toggle word wrap

7.25.2. listStarredRepos

星付きのリポジトリーをすべてリスト表示します。

GET /api/v1/user/starred

認可: oauth2_implicit (user:admin)

クエリーパラメーター
Expand
タイプ名前説明スキーマ

query

next_page
任意

次のページのページトークン

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/user/starred?next_page=<next_page_token>" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.25.3. getLoggedInUser

認証ユーザーのユーザー情報を取得します。

GET /api/v1/user/

認可: oauth2_implicit (user:read)

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

UserView

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/user/" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.25.4. deleteStar

リポジトリーから星を削除します。

DELETE /api/v1/user/starred/{repository}

認可: oauth2_implicit (user:admin)

パスパラメーター
Expand
タイプ名前説明スキーマ

path

repository
必須

リポジトリーの完全パス (例: namespace/name)

string

レスポンス
Expand
HTTP コード説明スキーマ

204

削除済み

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X DELETE "https://quay-server.example.com/api/v1/user/starred/namespace/repository-name" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.25.5. getUserInformation

指定したユーザーのユーザー情報を取得します。

GET /api/v1/users/{username}

認可: 

パスパラメーター
Expand
タイプ名前説明スキーマ

path

username
必須

 

string

レスポンス
Expand
HTTP コード説明スキーマ

200

正常な呼び出し

 

400

Bad Request (不適切な要求)

ApiError

401

セッションが必要

ApiError

403

不正アクセス

ApiError

404

結果が見つからない

ApiError

コマンドの例
$ curl -X GET "https://quay-server.example.com/api/v1/users/example_user" \
  -H "Authorization: Bearer <your_access_token>"
Copy to Clipboard Toggle word wrap

7.26. 定義

7.26.1. ApiError

Expand
名前説明スキーマ

status
任意

応答のステータスコード

integer

type
任意

エラーのタイプへの参照。

string

detail
任意

エラーの特定インスタンスの詳細。

string

title
任意

エラーのタイプを識別する一意のエラーコード。

string

error_message
任意

非推奨。

string

error_type
任意

非推奨。

string

7.26.2. UserView

Expand
名前説明スキーマ

verified
任意

ユーザーのメールアドレスが検証済みかどうか。

boolean

anonymous
任意

このユーザーデータがゲストユーザーを表す場合は True

boolean

email
任意

ユーザーのメールアドレス

string

avatar
任意

ユーザーのアイコンを表すアバターデータ

object

organizations
任意

ユーザーがメンバーとなっている組織に関する情報

object の配列。

logins
任意

ユーザーが認証された外部ログインプロバイダーのリスト

object の配列。

can_create_repo
任意

ユーザーにリポジトリー作成のパーミッションが割り当てられているかどうか。

boolean

preferred_namespace
任意

true の場合、ユーザーの namespace が表示されることが優先される namespace。

boolean

7.26.3. ViewMirrorConfig

Expand
名前説明スキーマ

is_enabled
任意

同期を有効または無効にするために使用されます。

boolean

external_reference
任意

外部リポジトリーの場所。

string

external_registry_username
任意

外部レジストリーでの認証に使用されるユーザー名。

 

external_registry_password
任意

外部レジストリーでの認証に使用されるパスワード。

 

sync_start_date
任意

このリポジトリーの次の同期時間を決定します。

string

sync_interval
任意

next_start_date が同期を開始するまでの秒数。

integer

robot_username
任意

イメージのプッシュに使用されるロボットのユーザー名。

string

root_rule
任意

同期する必要のあるタグの判別に使用する glob パターンのリスト。

object

external_registry_config
任意

 

object

7.26.4. ApiErrorDescription

Expand
名前説明スキーマ

type
任意

エラータイプリソースへの参照。

string

title
任意

エラーのタイトル。エラーの種類を一意に識別するために使用できます。

string

description
任意

問題の修正時に役立つ可能性のある詳細な説明。

string

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る