PeopleSoft · Arazzo Workflow

PeopleSoft Provision Environment and Notify

Version 1.0.0

Pick a provisioning template, provision a Cloud Manager environment, poll until ready, then notify recipients.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Campus SolutionsCRMEnterprise SoftwareERPFinancial ManagementHCMSupply Chain ManagementArazzoWorkflows

Provider

peoplesoft

Workflows

env-provision-notify
Provision a Cloud Manager environment then notify on completion.
Selects a provisioning template, provisions an environment, polls until it is no longer provisioning, and sends a notification with the outcome.
4 steps inputs: authorization, configuration, environmentName, recipients outputs: environmentId, environments, notificationStatus
1
listTemplates
listTemplates
Retrieve the available provisioning templates and select the first one.
2
provisionEnvironment
provisionEnvironment
Provision a new environment on OCI from the selected template and capture the assigned environment id.
3
pollEnvironments
listEnvironments
Poll the environment list and retry while the new environment is still provisioning.
4
notify
sendNotification
Send an in-app notification announcing that the environment provisioning finished.

Source API Descriptions

Arazzo Workflow Specification

peoplesoft-env-provision-notify-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: PeopleSoft Provision Environment and Notify
  summary: Pick a provisioning template, provision a Cloud Manager environment, poll until ready, then notify recipients.
  description: >-
    A cross-API DevOps flow spanning the PeopleSoft Cloud Manager and
    Notification Framework. It lists available provisioning templates, requests
    a new environment from the chosen template, polls the environment list until
    the new environment leaves the provisioning state, and then sends a
    notification announcing the result. Because operationIds are reused across
    the two descriptions only by name here they remain unique, so each step
    targets its source explicitly. 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: cloudManagerApi
  url: ../openapi/cloud-manager.yml
  type: openapi
- name: notificationApi
  url: ../openapi/notification-framework.yml
  type: openapi
workflows:
- workflowId: env-provision-notify
  summary: Provision a Cloud Manager environment then notify on completion.
  description: >-
    Selects a provisioning template, provisions an environment, polls until it
    is no longer provisioning, and sends a notification with the outcome.
  inputs:
    type: object
    required:
    - authorization
    - environmentName
    - recipients
    properties:
      authorization:
        type: string
        description: HTTP Basic auth header value (e.g. "Basic dXNlcjpwYXNz").
      environmentName:
        type: string
        description: Name for the new environment.
      recipients:
        type: array
        description: List of notification recipients (addresses or user IDs).
        items:
          type: string
      configuration:
        type: object
        description: Optional environment configuration overrides.
  steps:
  - stepId: listTemplates
    description: >-
      Retrieve the available provisioning templates and select the first one.
    operationId: listTemplates
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      templates: $response.body#/templates
      firstTemplateId: $response.body#/templates/0/templateId
  - stepId: provisionEnvironment
    description: >-
      Provision a new environment on OCI from the selected template and capture
      the assigned environment id.
    operationId: provisionEnvironment
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    requestBody:
      contentType: application/json
      payload:
        templateId: $steps.listTemplates.outputs.firstTemplateId
        environmentName: $inputs.environmentName
        configuration: $inputs.configuration
    successCriteria:
    - condition: $statusCode == 202
    outputs:
      environmentId: $response.body#/environmentId
      status: $response.body#/status
  - stepId: pollEnvironments
    description: >-
      Poll the environment list and retry while the new environment is still
      provisioning.
    operationId: listEnvironments
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      environments: $response.body#/environments
    onSuccess:
    - name: stillProvisioning
      type: retry
      stepId: pollEnvironments
      retryAfter: 10
      retryLimit: 30
      criteria:
      - context: $response.body
        condition: $.environments[?(@.environmentId == '$steps.provisionEnvironment.outputs.environmentId')].status == 'provisioning'
        type: jsonpath
  - stepId: notify
    description: >-
      Send an in-app notification announcing that the environment provisioning
      finished.
    operationId: sendNotification
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    requestBody:
      contentType: application/json
      payload:
        channel: in-app
        recipients: $inputs.recipients
        message: $inputs.environmentName
    successCriteria:
    - condition: $statusCode == 202
    outputs:
      statusCode: $statusCode
  outputs:
    environmentId: $steps.provisionEnvironment.outputs.environmentId
    environments: $steps.pollEnvironments.outputs.environments
    notificationStatus: $steps.notify.outputs.statusCode