Muestras

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} en el ID del proyecto del proyecto de Google Cloud.

Mostrar lista de clientes actuales

El siguiente comando muestra 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, guarde el nombre del cliente que se mostró en una variable:

CUSTOMER_NAME=customers/...

Crear una nueva configuración de dispositivo

Primero, configura los valores de ${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 muestra una configuración de dispositivo recién creada. Para mayor comodidad, guarda el nombre del dispositivo en una variable:

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

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

Recuperar dispositivo por 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}"

Actualizar 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 string 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 muestra un valor con el siguiente formato:

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

La string secreta se debe codificar en un JWT. Usa el formato de token web JSON. Suponemos que estableciste ${SECRET} en la string secreta, ${ENCODED_SECRET} en la string JWT y ${CPI_ID} en el ID de la CPI para 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}\" }"

El CPI ahora tiene la capacidad de instalar un CBSD que tiene todos los parámetros obligatorios.

Registro de CBSD de varios pasos

Hay dos maneras de realizar el registro de CBSD de varios pasos que se tratan en las siguientes dos secciones. Puedes realizar un registro CBSD de varios pasos con parámetros firmados anteriormente por un CPI o con una cuenta de CPI.

Con parámetros de dispositivos 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 previamente codificados mediante un CPI, de modo que los usuarios que no usan CPI puedan crear la configuración. Usa la clave privada de CPI para codificar los parámetros de CBSD. Para ello, usamos el formato de token web JSON. Suponemos que estableciste ${ENCODED_DEVICE} en la string JWT y ${CPI_ID} en el ID del CPI.

La configuración del dispositivo inactivo se puede crear 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 a SAS para completar el registro.

Con una cuenta de CPI

Primero, se debe validar la identidad del CPI antes de intentar validar la configuración de un dispositivo. Una vez hecho esto, usa el siguiente comando para crear una configuración de dispositivo inactiva:

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} como la representación JSON de los parámetros de registro del CBSD en este formato.

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