Ejemplos

En los siguientes ejemplos, suponemos que ya obtuviste un token con tu cuenta de servicio:

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

También suponemos que ya configuraste ${CLIENT_PROJECT} como el ID del proyecto de Google Cloud.

Enumera los clientes actuales

El siguiente comando devuelve todos los clientes a los que el emisor tiene acceso:

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"

Para mayor comodidad, guarda el nombre del cliente que se devolvió en una variable:

CUSTOMER_NAME=customers/...

Cómo crear una nueva configuración del dispositivo

Primero, configura ${FCCID} y ${SN} del dispositivo que deseas crear:

FCCID=f1
SN=sn1

Luego, crea la configuración del dispositivo con el siguiente comando:

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\"}}"

El comando devuelve una configuración del dispositivo recién creada. Para mayor comodidad, guarda el nombre del dispositivo en una variable:

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

Enumera los dispositivos actuales

El siguiente comando enumera los dispositivos existentes.

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"

Recupera el dispositivo por su nombre

El siguiente comando recupera dispositivos por nombre.

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}"

Actualiza un dispositivo existente

El siguiente comando actualiza los dispositivos existentes.

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}" \

Valida tu identidad y certificación de CPI

Usa el siguiente ejemplo para generar la cadena secreta:

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 "{}"

Esto devuelve un valor con el siguiente formato:

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

Luego, la cadena secreta se debe codificar en un JWT. Usa el formato de token web JSON. Suponemos que configuraste ${SECRET} como la cadena secreta, ${ENCODED_SECRET} como la cadena JWT y ${CPI_ID} como el ID del CPI que se validará.

El siguiente comando valida la identidad y la certificación del 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:validate" \
  -d "{ \"installer_id\": \"${CPI_ID}\", \"secret\": \"${SECRET}\", \"encoded_secret\": \"${ENCODED_SECRET}\" }"

Ahora, el CPI puede instalar un CBSD que tenga todos los parámetros obligatorios.

Registro de CBSD en varios pasos

En las siguientes dos secciones, se describen dos formas de realizar el registro de CBSD en varios pasos. Puedes realizar el registro de CBSD en varios pasos con parámetros firmados previamente por un CPI o con una cuenta de CPI.

Con parámetros del dispositivo firmados previamente por un CPI

En este ejemplo, se muestra cómo crear una configuración de dispositivo inactivo con parámetros de instalación de CBSD que un CPI codificó previamente, de modo que la configuración la puedan crear incluso los usuarios que no son CPI. Usa la clave privada del CPI para codificar los parámetros del CBSD. Para ello, usamos el formato de token web JSON. Suponemos que configuraste ${ENCODED_DEVICE} como la cadena JWT y ${CPI_ID} como el ID del CPI.

Luego, se puede crear la configuración del dispositivo inactivo con el siguiente comando:

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}\" }"

Luego, el CBSD debe enviar una solicitud de registro al SAS para completar su registro.

Con una cuenta de CPI

Primero, se debe validar la identidad del CPI antes de intentar validar la configuración de un dispositivo. Cuando finalices, usa el siguiente comando para crear una configuración de dispositivo inactivo:

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}"

Suponemos que estableciste ${DEVICE} para que sea la representación JSON de los parámetros de registro del CBSD en este formato.

Luego, el CBSD debe enviar una solicitud de registro al SAS para completar su registro.