API のセットアップ

IBM Cloud® Schematics API を使用すると、Schematics で IBM Cloud 機能を自動化することができます。 CLI を使用するには、 CLI を使用するための準備 を参照してください。

サポートされている IBM Cloud® Schematics APIs、APIエンドポイント、および必要なAPIヘッダーとボディ情報の概要については、「 Schematics 」APIドキュメントを参照してください。

Schematics API の利用

Identity and Access Management トークンを使用して認証する IBM Cloud® Schematics API の使用方法について説明します。

IBM Cloud Schematics API を利用するには、 IBM Cloud の認証情報を使用して生成された IBM Cloud® Identity and Access Management (IAM)トークンを指定する必要があります。 IBM Cloud での認証方法に応じて、IBM Cloud IAM トークンの作成を自動化するための次のオプションから選択できます。

ID タイプとオプション
認証オプション 説明
IBM Cloud ユーザー名とパスワード このトピックの手順に従うことで、 IBM Cloud のIAMアクセストークンの作成を完全に自動化できます。 MFA を使用して IBM Cloud で認証する場合、MFA は Web ブラウザーと手動で対話する必要があるため、 IBM Cloud IAM トークンの作成を完全に自動化することはできません。 IBM Cloud のIAMトークンの生成を完全に自動化するには、代わりに IBM Cloud のAPIキーを使用する必要があります。
IBM Cloud の API キー IBM Cloud のユーザー名とパスワードを使用する代わりに、 IBM Cloud API キーを使用できます。 IBM Cloud 生成された API キーは、固有の鍵です。 IBM Cloud API キーのベースとは別のアカウントで作成されたワークスペースにアクセスするには、そのアカウントの API キーを生成する必要があります。
  1. IBM Cloud IAM アクセス・トークンを作成します。

API トークン要求の要求本文は、 IBM Cloud 認証方式によって異なります。

IBM Cloud のIAMトークンは、API出力の「 access_token 」フィールドで確認できます。 次のステップでさらにヘッダー情報を取得するため、IBM Cloud IAM トークンをメモしておきます。

POST `https://iam.cloud.ibm.com/identity/token`
入力パラメーター
ヘッダー :Content-Type: application/x-www-form-urlencoded:Authorization: Basic [Yng6Yng=^]
Yng6Yng= は、ユーザー名 bx およびパスワード bx に対する URL エンコードされた認証情報に相当します。
IBM Cloud ユーザー名とパスワードの本文 :grant_type: password:response_type: cloud_iam uaa:username: IBM Cloud のユーザー名。:password: IBM Cloud password.: uaa_client_id: cf:uaa_client_secret:
値は指定せずに、 uaa_client_secret キーを追加します。
IBM Cloud API キーの本文 :grant_type: urn:ibm:params:oauth:grant-type:apikey:response_type: cloud_iam uaa:apikey: IBM Cloud API キー:uaa_client_id: cf:uaa_client_secret:
値を指定せずに uaa_client_secret キーを追加します。
IBM Cloud ワンタイム・パスコードの本文 :grant_type:urn:ibm:params:oauth:grant-type:passcode:response_type: cloud_iam uaa:passcode: IBM Cloud のワンタイム・パスコード。 ibmcloud login --sso を実行し、CLI 出力の指示に従って、Web ブラウザーを使用してワンタイム・パスコードを取得します。:uaa_client_id: cf:uaa_client_secret:
値は指定せずに、 uaa_client_secret キーを追加します。

出力例

{
"access_token": "<iam_access_token>",
"refresh_token": "<iam_refresh_token>",
"uaa_token": "<uaa_token>",
"uaa_refresh_token": "<uaa_refresh_token>",
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1493747503
"scope": "ibm openid"
}
  1. 処理対象のトークンのアカウント ID を取得します。

<iam_access_token> を、前の手順で取得した API 出力の「 access_token 」フィールドから取得した IAM トークンに置き換えてください。 APIの出力結果では、「 resources.metadata.guid 」フィールドに、 IBM Cloud アカウント IDが表示されます。

GET https://accounts.cloud.ibm.com/coe/v2/accounts
IBM Cloud アカウントIDを取得するためのパラメータを入力する。
入力パラメーター
headers :Content-Type: application/json:Authorization: bearer <iam_access_token>:Accept: application/json

出力例

{
    "next_url": null,
    "total_results": 5,
    "resources": [
        {
            "metadata": {
                "guid": "<account_ID>",
                "url": "/coe/v2/accounts/<account_ID>",
                "created_at": "2020-09-29T02:49:41.842Z",
                "updated_at": "2020-08-16T18:56:00.442Z",
                "anonymousId": "1111a1aa1a1111a1aa11aa11111a1111"
            },
            "entity": {
                "name": "<account_name>",
            }
        }
        ]
}
  1. IBM Cloud 資格情報と、作業するアカウント ID が含まれる、新しい IBM Cloud IAM トークンを生成します。

IBM Cloud API キーを使用する場合、API キーの作成対象となった IBM Cloud アカウント ID を使用する必要があります。 アカウント B 内の Schematics ワークスペースまたはアクションにアクセスするには、アカウント B にログインし、アカウント B に基づく IBM Cloud API キーを作成します。

POST https://iam.cloud.ibm.com/identity/token
IAM トークンを取得するための入力パラメーター。
入力パラメーター
ヘッダー :Content-Type: application/x-www-form-urlencoded:Authorization: Basic Yng6Yng=[^]
Yng6Yng= は、ユーザー名 bx およびパスワード bx に対する、 URL でエンコードされた認証情報に相当します。
IBM Cloud ユーザー名とパスワードの本文 :grant_type: password:response_type: cloud_iam uaa:username: IBM Cloud のユーザー名。:password: IBM Cloud のパスワード。:uaa_client_ID: cf:uaa_client_secret:
値を設定せずに「 uaa_client_secret 」キーを追加します。 specified.:bss_account: 前のステップで取得した IBM Cloud のアカウント ID。
IBM Cloud API キーの本文 :grant_type: urn:ibm:params:oauth:grant-type:apikey:response_type: cloud_iam uaa:apikey: IBM Cloud のAPI キー。:uaa_client_ID: cf:uaa_client_secret:
値を設定せずに「 uaa_client_secret 」キーを追加します。 specified.:bss_account: 前のステップで取得した IBM Cloud のアカウント ID。
IBM Cloud ワンタイム・パスコードの本文 :grant_type:urn:ibm:params:oauth:grant-type:passcode:response_type: cloud_iam uaa:passcode: IBM Cloud のパスコード。:uaa_client_ID: cf:uaa_client_secret:
値は指定せずに、 uaa_client_secret キーを追加します。 :bss_account: 前のステップで取得した IBM Cloud のアカウント ID。

Example output

{
    "access_token": "<iam_token>",
    "refresh_token": "<iam_refresh_token>",
    "token_type": "Bearer",
    "expires_in": 3600,
    "expiration": 1493747503
}

APIの出力結果の「 access_token 」フィールドに IBM Cloud のIAMトークンが、「 refresh_token 」フィールドにリフレッシュトークンが表示されます。

  1. Schematics API を使用して、アカウント内のすべてのワークスペースをリストします。

すべてのワークスペースを一覧表示する構文

    GET https://schematics.cloud.ibm.com/v1/workspaces/
| Input parameters | Values |
| ----- |  --- |
| Header | `Authorization: bearer <iam_token>`|
{: caption="Input parameters to work with the IBM Cloud Schematics API." caption-side="top"}

特定のワークスペースに関する情報を取得するための構文:

GET https://schematics.cloud.ibm.com/v1/workspaces/{id}
IBM Cloud Schematics API を操作するための入力パラメーター。
入力パラメーター
ヘッダー Authorization: bearer <iam_token>: IBM Cloud の IAM アクセス・トークン。
パス id <workspace_ID>: ワークスペースの ID です。 ワークスペース ID を取得するには、ibmcloud schematics workspace list を実行します
  1. サポートされる APIs のリストについては、 IBM Cloud Schematics API 資料 を参照してください。

API を使用して、 IBM Cloud の IAM アクセストークンを更新し、新しいトークンを取得する

IBM Cloud® Identity and Access Management (IAM) アクセストークンの有効期限は1時間です。 IBM Cloud API へのアクセスを確保するには、アクセス・トークンを定期的にリフレッシュする必要があります。 同じ手順で新しいトークンを取得できます。

作業を開始する前に、新しいアクセストークンのリクエストに使用できる、有効な IBM Cloud のIAMリフレッシュトークン、または IBM Cloud のAPIキーを必ず用意してください。

  • リフレッシュ・トークン: IBM Cloud API を使用したワークスペースの作成と管理のプロセスの自動化 の説明に従います。
  • **APIキー: **IBM Cloud APIキーを以下の手順で取得してください。
    1. メニュー・バーから、「管理」 > **「アクセス (IAM)」**をクリックします。
    2. **「ユーザー」**ページをクリックして、自分を選択します。
    3. API キー ペインで、IBM Cloud API キーの作成をクリックします。
    4. API キーの**「名前」「説明」を入力し、「作成」**をクリックします。
    5. **「表示」**をクリックして、生成された API キーを確認します。
    6. API キーをコピーして、新しい IBM Cloud IAM アクセス・トークンを取得できるようにします。

IBM Cloud IAM トークンを作成する場合、または新しいリフレッシュ・トークンを取得する場合は、以下の手順を使用します。

  1. リフレッシュ・トークンまたは IBM Cloud API キーを使用して、新しい IBM Cloud IAM アクセス・トークンを生成します。
POST https://iam.cloud.ibm.com/identity/token
入力パラメーター
ヘッダー :Content-Type: application/x-www-form-urlencoded:Authorization: Basic Yng6Yng=

Yng6Yng= は、ユーザー名 bx およびパスワード bx に対する、 URL でエンコードされた認証情報に相当します。
リフレッシュ・トークン使用時の本体 :grant_type: refresh_token:response_type: cloud_iam uaa:refresh_token: IBM Cloud の IAM リフレッシュ・トークン。:uaa_client_ID: cf:uaa_client_secret::bss_account: IBM Cloud アカウント ID。

値は指定せずに、 uaa_client_secret キーを追加します。
IBM Cloud API キー使用時の本体 :grant_type: urn:ibm:params:oauth:grant-type:apikey:response_type: cloud_iam uaa:apikey: IBM Cloud のAPI キー。:uaa_client_ID: cf:uaa_client_secret:
         `uaa_client_secret` キーは値を指定せずに追加します。 |

API 出力の例

{
    "access_token": "<iam_token>",
    "refresh_token": "<iam_refresh_token>",
    "uaa_token": "<uaa_token>",
    "uaa_refresh_token": "<uaa_refresh_token>",
    "token_type": "Bearer",
    "expires_in": 3600,
    "expiration": 1493747503
}

新しい IBM Cloud のIAMトークンは「 access_token 」に、リフレッシュトークンはAPI出力の「 refresh_token 」フィールドに記載されています。

  1. 前の手順で取得したトークンを使用して、 IBM Cloud Schematics APIのドキュメントを引き続き参照してください。