Amazon Neptune · Arazzo Workflow

Amazon Neptune Analytics Create Graph and Wait

Version 1.0.0

Create a Neptune Analytics graph and poll until it becomes AVAILABLE.

1 workflow 1 source API 1 provider
View Spec View on GitHub DatabaseGraph DatabaseGremlinNeptuneProperty GraphRDFSPARQLArazzoWorkflows

Provider

amazon-neptune

Workflows

analytics-create-graph
Create an analytics graph and poll until it is AVAILABLE.
Creates a Neptune Analytics graph, then polls until its status is AVAILABLE and returns the endpoint.
2 steps inputs: deletionProtection, graphName, provisionedMemory, publicConnectivity outputs: endpoint, graphId, status
1
createGraph
createGraph
Create the Neptune Analytics graph with the requested provisioned memory and capture its identifier.
2
pollGraph
getGraph
Poll the graph details. Retry while the status is CREATING and finish once the status is AVAILABLE.

Source API Descriptions

Arazzo Workflow Specification

amazon-neptune-analytics-create-graph-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Neptune Analytics Create Graph and Wait
  summary: Create a Neptune Analytics graph and poll until it becomes AVAILABLE.
  description: >-
    Provisions a memory-optimized Neptune Analytics graph and waits for it to be
    usable. The workflow creates the graph with the requested provisioned memory,
    polls its details on a loop while the status is CREATING, and finishes once
    the status is AVAILABLE, returning the graph endpoint. The poll loop uses a
    retry delay to handle provisioning. 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: neptuneAnalyticsApi
  url: ../openapi/amazon-neptune-analytics-openapi.yml
  type: openapi
workflows:
- workflowId: analytics-create-graph
  summary: Create an analytics graph and poll until it is AVAILABLE.
  description: >-
    Creates a Neptune Analytics graph, then polls until its status is AVAILABLE
    and returns the endpoint.
  inputs:
    type: object
    required:
    - graphName
    - provisionedMemory
    properties:
      graphName:
        type: string
        description: The name of the graph (1-63 alphanumeric characters or hyphens).
      provisionedMemory:
        type: integer
        description: The provisioned memory size in Neptune Capacity Units (NCUs).
      publicConnectivity:
        type: boolean
        description: Whether the graph can be reached over the internet.
      deletionProtection:
        type: boolean
        description: Whether deletion protection is enabled.
  steps:
  - stepId: createGraph
    description: >-
      Create the Neptune Analytics graph with the requested provisioned memory
      and capture its identifier.
    operationId: createGraph
    requestBody:
      contentType: application/json
      payload:
        graphName: $inputs.graphName
        provisionedMemory: $inputs.provisionedMemory
        publicConnectivity: $inputs.publicConnectivity
        deletionProtection: $inputs.deletionProtection
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      graphId: $response.body#/id
      initialStatus: $response.body#/status
  - stepId: pollGraph
    description: >-
      Poll the graph details. Retry while the status is CREATING and finish
      once the status is AVAILABLE.
    operationId: getGraph
    parameters:
    - name: graphIdentifier
      in: path
      value: $steps.createGraph.outputs.graphId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
      endpoint: $response.body#/endpoint
    onSuccess:
    - name: graphCreating
      type: retry
      retryAfter: 30
      retryLimit: 60
      criteria:
      - context: $response.body
        condition: $.status == "CREATING"
        type: jsonpath
    - name: graphAvailable
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "AVAILABLE"
        type: jsonpath
  outputs:
    graphId: $steps.createGraph.outputs.graphId
    status: $steps.pollGraph.outputs.status
    endpoint: $steps.pollGraph.outputs.endpoint