arazzo: 1.0.1
info:
title: emnify Suspend SIM When Active
summary: Authenticate, read a SIM, and suspend it only when it is currently Activated.
description: >-
A cost-control flow. emnify charges for activated SIMs, so this workflow
authenticates, retrieves the SIM to inspect its current status, and branches:
when the SIM is Activated (status id 1) it patches the status to Suspended
(id 2); otherwise it ends without making a change. Every step spells out its
request inline, including the Bearer Authorization header threaded from the
authenticate step.
version: 1.0.0
sourceDescriptions:
- name: subpackageAuthenticationApi
url: ../openapi/emnify-subpackage-authentication-api-openapi.yml
type: openapi
- name: subpackageSimApi
url: ../openapi/emnify-subpackage-sim-api-openapi.yml
type: openapi
workflows:
- workflowId: suspend-sim-when-active
summary: Suspend an Activated SIM to stop accruing charges.
description: >-
Authenticates, fetches the SIM by ID, and suspends it only when its current
status is Activated.
inputs:
type: object
required:
- applicationToken
- simId
properties:
applicationToken:
type: string
description: emnify application token used to obtain an auth_token.
simId:
type: integer
description: The numeric ID of the SIM to inspect and suspend.
steps:
- stepId: authenticate
description: Exchange the application token for an auth_token used as a Bearer token.
operationId: authenticate
requestBody:
contentType: application/json
payload:
application_token: $inputs.applicationToken
successCriteria:
- condition: $statusCode == 200
outputs:
authToken: $response.body#/auth_token
- stepId: getSim
description: Retrieve SIM details so its current status can be evaluated.
operationId: sim-by-id-get
parameters:
- name: sim_id
in: path
value: $inputs.simId
- name: Authorization
in: header
value: Bearer $steps.authenticate.outputs.authToken
successCriteria:
- condition: $statusCode == 200
outputs:
statusId: $response.body#/status/id
iccid: $response.body#/iccid
onSuccess:
- name: simActivated
type: goto
stepId: suspendSim
criteria:
- context: $response.body
condition: $.status.id == 1
type: jsonpath
- name: simNotActivated
type: end
criteria:
- context: $response.body
condition: $.status.id != 1
type: jsonpath
- stepId: suspendSim
description: Update the SIM status to Suspended (id 2) to stop accruing charges.
operationId: sim-by-id-patch
parameters:
- name: sim_id
in: path
value: $inputs.simId
- name: Authorization
in: header
value: Bearer $steps.authenticate.outputs.authToken
requestBody:
contentType: application/json
payload:
status:
id: 2
successCriteria:
- condition: $statusCode == 204
outputs:
suspendedSimId: $inputs.simId
outputs:
iccid: $steps.getSim.outputs.iccid
suspendedSimId: $steps.suspendSim.outputs.suspendedSimId
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.