Soracom · Arazzo Workflow

Soracom Register and Activate IoT SIM

Version 1.0.0

Register a physical IoT SIM to the operator, activate it, bind it to a SIM group, and confirm its state.

1 workflow 1 source API 1 provider
View Spec View on GitHub IoTCellularLPWANSIMLoRaWANSigfoxMVNOConnectivityEdgeJapanArazzoWorkflows

Provider

soracom

Workflows

register-and-activate-sim
Register, activate, and group a single IoT SIM by SIM ID.
Registers the SIM to the operator using its PUK/PASSCODE registration secret, activates it, sets its SIM group, and reads the resulting SIM resource to verify the active status and group binding.
4 steps inputs: groupId, registrationSecret, simId outputs: groupId, simId, status
1
registerSim
registerSim
Register the IoT SIM to the operator account using its registration secret so it can be managed.
2
activateSim
activateSim
Change the SIM status to active so it can establish data sessions.
3
setSimGroup
setSimGroup
Bind the SIM to the supplied SIM group so it inherits the group's service configuration.
4
confirmSim
getSim
Read the SIM back to confirm the final active status and group binding.

Source API Descriptions

Arazzo Workflow Specification

soracom-register-and-activate-sim-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Soracom Register and Activate IoT SIM
  summary: Register a physical IoT SIM to the operator, activate it, bind it to a SIM group, and confirm its state.
  description: >-
    The end-to-end onboarding flow for a Soracom Air for Cellular SIM. The
    workflow registers the SIM to the operator using its registration secret,
    flips the SIM to the active status so it can pass traffic, binds it to a SIM
    group so it inherits Air/Beam/Harvest configuration, and finally reads the
    SIM back to confirm the registered, active, grouped state. Every step spells
    out its request inline so the flow can be read and executed without opening
    the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: simApi
  url: ../openapi/soracom-sim-api-openapi.yml
  type: openapi
workflows:
- workflowId: register-and-activate-sim
  summary: Register, activate, and group a single IoT SIM by SIM ID.
  description: >-
    Registers the SIM to the operator using its PUK/PASSCODE registration
    secret, activates it, sets its SIM group, and reads the resulting SIM
    resource to verify the active status and group binding.
  inputs:
    type: object
    required:
    - simId
    - registrationSecret
    - groupId
    properties:
      simId:
        type: string
        description: The SIM ID of the target IoT SIM (e.g. 8981100000000000000).
      registrationSecret:
        type: string
        description: The PUK or PASSCODE printed on the SIM card, used to prove ownership at registration.
      groupId:
        type: string
        description: The SIM group ID to bind the SIM to after activation.
  steps:
  - stepId: registerSim
    description: >-
      Register the IoT SIM to the operator account using its registration
      secret so it can be managed.
    operationId: registerSim
    parameters:
    - name: sim_id
      in: path
      value: $inputs.simId
    requestBody:
      contentType: application/json
      payload:
        registrationSecret: $inputs.registrationSecret
        groupId: $inputs.groupId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      registeredSimId: $response.body#/simId
      statusAfterRegister: $response.body#/status
  - stepId: activateSim
    description: >-
      Change the SIM status to active so it can establish data sessions.
    operationId: activateSim
    parameters:
    - name: sim_id
      in: path
      value: $inputs.simId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      statusAfterActivate: $response.body#/status
  - stepId: setSimGroup
    description: >-
      Bind the SIM to the supplied SIM group so it inherits the group's
      service configuration.
    operationId: setSimGroup
    parameters:
    - name: sim_id
      in: path
      value: $inputs.simId
    requestBody:
      contentType: application/json
      payload:
        groupId: $inputs.groupId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      groupId: $response.body#/groupId
  - stepId: confirmSim
    description: >-
      Read the SIM back to confirm the final active status and group binding.
    operationId: getSim
    parameters:
    - name: sim_id
      in: path
      value: $inputs.simId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      finalStatus: $response.body#/status
      finalGroupId: $response.body#/groupId
      speedClass: $response.body#/speedClass
  outputs:
    simId: $steps.registerSim.outputs.registeredSimId
    status: $steps.confirmSim.outputs.finalStatus
    groupId: $steps.confirmSim.outputs.finalGroupId