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.