Amazon DataZone · Arazzo Workflow

Amazon DataZone Provision Environment

Version 1.0.0

Create a project environment and poll the environment list until it is ACTIVE.

1 workflow 1 source API 1 provider
View Spec View on GitHub Data CatalogData GovernanceData ManagementData SharingAnalyticsArazzoWorkflows

Provider

amazon-datazone

Workflows

provision-environment
Create an environment in a project and wait until it reports ACTIVE.
Creates an environment from a profile under a project, then lists the project's environments and repeats until the created environment is ACTIVE.
2 steps inputs: description, domainIdentifier, environmentProfileIdentifier, name, projectIdentifier outputs: environmentId, environments
1
createEnvironment
createEnvironment
Create the environment under the project from the supplied environment profile. The environment starts in the CREATING state.
2
waitForEnvironment
listEnvironments
List the project's environments and repeat until the created environment reports ACTIVE. The list is scoped to the owning project.

Source API Descriptions

Arazzo Workflow Specification

amazon-datazone-provision-environment-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon DataZone Provision Environment
  summary: Create a project environment and poll the environment list until it is ACTIVE.
  description: >-
    Provisions an analytics environment inside an Amazon DataZone project from an
    environment profile, then polls the project's environment list until the new
    environment transitions from CREATING to ACTIVE. This gives data teams a
    ready-to-use compute and access environment (for example Athena and Glue
    access) bound to their project. 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: dataZoneApi
  url: ../openapi/amazon-datazone-openapi.yml
  type: openapi
workflows:
- workflowId: provision-environment
  summary: Create an environment in a project and wait until it reports ACTIVE.
  description: >-
    Creates an environment from a profile under a project, then lists the
    project's environments and repeats until the created environment is ACTIVE.
  inputs:
    type: object
    required:
    - domainIdentifier
    - projectIdentifier
    - name
    - environmentProfileIdentifier
    properties:
      domainIdentifier:
        type: string
        description: The identifier of the domain that owns the project.
      projectIdentifier:
        type: string
        description: The identifier of the project to create the environment in.
      name:
        type: string
        description: The name of the environment to create.
      description:
        type: string
        description: An optional description of the environment.
      environmentProfileIdentifier:
        type: string
        description: The environment profile that defines the environment blueprint.
  steps:
  - stepId: createEnvironment
    description: >-
      Create the environment under the project from the supplied environment
      profile. The environment starts in the CREATING state.
    operationId: createEnvironment
    parameters:
    - name: domainIdentifier
      in: path
      value: $inputs.domainIdentifier
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        description: $inputs.description
        domainIdentifier: $inputs.domainIdentifier
        projectIdentifier: $inputs.projectIdentifier
        environmentProfileIdentifier: $inputs.environmentProfileIdentifier
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      environmentId: $response.body#/id
      initialStatus: $response.body#/status
  - stepId: waitForEnvironment
    description: >-
      List the project's environments and repeat until the created environment
      reports ACTIVE. The list is scoped to the owning project.
    operationId: listEnvironments
    parameters:
    - name: domainIdentifier
      in: path
      value: $inputs.domainIdentifier
    - name: projectIdentifier
      in: query
      value: $inputs.projectIdentifier
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.items[?(@.id == "$steps.createEnvironment.outputs.environmentId")].status == "ACTIVE"
      type: jsonpath
    outputs:
      environments: $response.body#/items
  outputs:
    environmentId: $steps.createEnvironment.outputs.environmentId
    environments: $steps.waitForEnvironment.outputs.environments