サンプル

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

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 の身元と認定を検証する

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

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 つの方法について説明します。CPI が以前に署名したパラメータまたは CPI アカウントを使用して、複数ステップの CBSD 登録を行うことができます。

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 に送信して登録を完了する必要があります。