サンプル

次の例では、サービス アカウントでトークンをすでに取得していることを前提としています。

TOKEN=$(gcloud auth print-access-token)

また、${CLIENT_PROJECT} がすでに Google Cloud プロジェクトのプロジェクト ID に設定されていることを前提としています。

現在の顧客を一覧表示する

次のコマンドは、呼び出し元がアクセスできるすべてのお客様を返します。

curl -X GET -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${TOKEN}" \"https://sasportal.googleapis.com/v1alpha1/customers"

便宜上、返された顧客名を変数に保存します。

CUSTOMER_NAME=customers/...

新しいデバイス設定を作成する

まず、作成するデバイスの ${FCCID}${SN} を設定します。

FCCID=f1
SN=sn1

次に、以下のコマンドでデバイス設定を作成します。

curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${TOKEN}" \ "https://sasportal.googleapis.com/v1alpha1/${CUSTOMER_NAME}/devices" \
  -d "{ \"fcc_id\": \"$FCCID\", \"serial_number\": \"$SN\", \"preloaded_config\": { \"call_sign\": \"cs1\", \"category\": \"DEVICE_CATEGORY_A\"}}"

このコマンドは、新しく作成されたデバイス設定を返します。便宜上、デバイス名を変数に保存します。

DEVICE_NAME=customers/.../devices/...

現在のデバイスを一覧表示する

次のコマンドは、既存のデバイスを一覧表示します。

curl -X GET -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/${CUSTOMER_NAME}/devices"

デバイスを名前で取得する

次のコマンドは、デバイスを名前で取得します。

curl -X GET -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  "https://sasportal.googleapis.com/v1alpha1/${DEVICE_NAME}"

既存のデバイスを更新する

次のコマンドは、既存のデバイスを更新します。

curl -X PATCH -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  "https://sasportal.googleapis.com/v1alpha1/${DEVICE_NAME}" \

CPI と ID の確認

シークレット文字列を生成するには、次の例を使用します。

curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/installer:generateSecret" \
  -d "{}"

次の形式の値を返します。

{
  "secret": "<generated secret>"
}

その後、シークレット文字列を JWT にエンコードする必要があります。JSON Web Token 形式を使用します。ここでは、${SECRET} がシークレット文字列、${ENCODED_SECRET} が JWT 文字列、${CPI_ID} が検証する CPI の ID に設定されていることを前提としています。

次のコマンドは、CPI の ID と認証を検証します。

curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/installer:validate" \
  -d "{ \"installer_id\": \"${CPI_ID}\", \"secret\": \"${SECRET}\", \"encoded_secret\": \"${ENCODED_SECRET}\" }"

CPI で、必要なパラメータをすべて含む CBSD をインストールできるようになりました。

マルチステップ CBSD 登録

次の 2 つのセクションで取り上げる、マルチステップの CBSD 登録を実行する方法は 2 つあります。 マルチステップの CBSD 登録は、以前に CPI で署名されたパラメータまたは CPI アカウントで署名されたパラメータを使用して実行できます。

CPI で以前に署名されたデバイス パラメータを使用する場合

このサンプルでは、CPI でエンコードされた CBSD インストール パラメータを使用して無効なデバイス設定を作成し、CPI を使用していないユーザーでもデバイス設定を作成する方法を紹介します。CPI の秘密鍵を使用して、CBSD パラメータをエンコードします。そのためには、JSON Web Token 形式を使用します。${ENCODED_DEVICE} が JWT 文字列に設定され、${CPI_ID} が CPI の ID に設定されていることを前提としています。

無効にしたデバイス設定は、次のコマンドを使用して作成できます。

curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${TOKEN}" \ "https://sasportal.googleapis.com/v1alpha1/${CUSTOMER_NAME}/devices:createSigned" \
  -d "{ \"installer_id\": \"${CPI_ID}\", \"encoded_device\": \"${ENCODED_DEVICE}\", \"parent\": \"${CUSTOMER_NAME}\" }"

次に、CBSD は登録リクエストを SAS に送信して登録を完了する必要があります。

CPI アカウントを使用する場合

デバイス構成を検証する前に、まず CPI の ID を検証する必要があります。設定が完了したら、次のコマンドを使用して非アクティブなデバイス設定を作成します。

curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/${DEVICE_NAME}:signDevice" \
  -d "${DEVICE}"

${DEVICE} が、この形式で CBSD 登録パラメータの JSON 表現に設定されていることを前提としています。

次に、CBSD は登録リクエストを SAS に送信して登録を完了する必要があります。