Amazon DataZone · Arazzo Workflow

Amazon DataZone Provision Domain

Version 1.0.0

Create a DataZone domain and poll until it becomes AVAILABLE.

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

Provider

amazon-datazone

Workflows

provision-domain
Create a DataZone domain and wait for it to reach AVAILABLE status.
Creates a domain with the supplied name and execution role, then repeatedly reads the domain until its status is AVAILABLE before returning its identifier and portal URL.
2 steps inputs: description, domainExecutionRole, name outputs: arn, domainId, portalUrl, status
1
createDomain
createDomain
Submit the request to create the DataZone domain. The domain is created asynchronously and starts in the CREATING state.
2
pollDomain
getDomain
Read the domain detail until provisioning completes. Repeats while the status is still CREATING and proceeds once it reaches AVAILABLE.

Source API Descriptions

Arazzo Workflow Specification

amazon-datazone-provision-domain-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon DataZone Provision Domain
  summary: Create a DataZone domain and poll until it becomes AVAILABLE.
  description: >-
    Stands up a new Amazon DataZone domain, the organizational boundary that
    holds a data catalog and governance policies. The workflow submits the
    create request, then polls the domain detail endpoint until the asynchronous
    provisioning transitions from CREATING to AVAILABLE so callers know the
    domain is ready to host projects. 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-domain
  summary: Create a DataZone domain and wait for it to reach AVAILABLE status.
  description: >-
    Creates a domain with the supplied name and execution role, then repeatedly
    reads the domain until its status is AVAILABLE before returning its
    identifier and portal URL.
  inputs:
    type: object
    required:
    - name
    - domainExecutionRole
    properties:
      name:
        type: string
        description: The name of the DataZone domain to create.
      description:
        type: string
        description: An optional human-readable description of the domain.
      domainExecutionRole:
        type: string
        description: ARN of the IAM role DataZone uses to execute domain operations.
  steps:
  - stepId: createDomain
    description: >-
      Submit the request to create the DataZone domain. The domain is created
      asynchronously and starts in the CREATING state.
    operationId: createDomain
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        description: $inputs.description
        domainExecutionRole: $inputs.domainExecutionRole
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      domainId: $response.body#/id
      initialStatus: $response.body#/status
  - stepId: pollDomain
    description: >-
      Read the domain detail until provisioning completes. Repeats while the
      status is still CREATING and proceeds once it reaches AVAILABLE.
    operationId: getDomain
    parameters:
    - name: domainIdentifier
      in: path
      value: $steps.createDomain.outputs.domainId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.status == "AVAILABLE"
      type: jsonpath
    outputs:
      status: $response.body#/status
      portalUrl: $response.body#/portalUrl
      arn: $response.body#/arn
  outputs:
    domainId: $steps.createDomain.outputs.domainId
    status: $steps.pollDomain.outputs.status
    portalUrl: $steps.pollDomain.outputs.portalUrl
    arn: $steps.pollDomain.outputs.arn