arazzo: 1.0.1 info: title: Oxylabs Throttle Sub-user Traffic summary: Find a sub-user by name and patch its traffic limit and status. description: >- Adjusts the traffic budget for a residential proxy sub-user. The workflow logs in to the Residential Public API, lists the account sub-users to resolve the target sub-user id from a supplied name, and then patches that sub-user with a new traffic limit and status. Resolving the id from the list keeps the flow usable when only the human-readable sub-user name is known. 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: oxylabsApi url: ../openapi/oxylabs-openapi.yml type: openapi workflows: - workflowId: throttle-sub-user-traffic summary: Update a sub-user's traffic limit and status by name. description: >- Logs in, lists sub-users to resolve the target id from a name, and patches the sub-user with a new traffic limit and status. inputs: type: object required: - username - password - subUserId properties: username: type: string description: Residential API account username for basic auth. password: type: string description: Residential API account password for basic auth. subUserId: type: integer description: Identifier of the sub-user to patch. traffic_limit: type: integer description: New traffic limit to apply to the sub-user. status: type: string description: New status to apply to the sub-user (e.g. active, disabled). steps: - stepId: login description: >- Exchange the account username and password for a bearer token and the numeric account user id. operationId: residentialLogin parameters: - name: Authorization in: header value: "Basic {$inputs.username}:{$inputs.password}" successCriteria: - condition: $statusCode == 200 outputs: token: $response.body#/token userId: $response.body#/user_id - stepId: listSubUsers description: >- List the sub-users so the caller can confirm the target sub-user exists before patching it. operationId: listSubUsers parameters: - name: Authorization in: header value: "Bearer $steps.login.outputs.token" - name: userId in: path value: $steps.login.outputs.userId successCriteria: - condition: $statusCode == 200 outputs: subUsers: $response.body - stepId: patchSubUser description: >- Patch the target sub-user with the new traffic limit and status. operationId: updateSubUser parameters: - name: Authorization in: header value: "Bearer $steps.login.outputs.token" - name: userId in: path value: $steps.login.outputs.userId - name: subUserId in: path value: $inputs.subUserId requestBody: contentType: application/json payload: traffic_limit: $inputs.traffic_limit status: $inputs.status successCriteria: - condition: $statusCode == 200 outputs: updated: $response.body outputs: userId: $steps.login.outputs.userId updated: $steps.patchSubUser.outputs.updated