Amazon DataZone · Arazzo Workflow

Amazon DataZone Publish Data Product

Version 1.0.0

Create a project, catalog an asset in it, then search the catalog for the listing.

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

Provider

amazon-datazone

Workflows

publish-data-product
Create a project, catalog an asset under it, and surface it in listings.
Creates an owning project, catalogs a data asset, confirms the asset, and searches the domain catalog listings to verify the product is discoverable.
4 steps inputs: assetDescription, assetName, domainIdentifier, projectName, typeIdentifier outputs: assetId, listings, projectId
1
createProject
createProject
Create the project that will own the published data asset.
2
createAsset
createAsset
Catalog the data asset under the newly created owning project.
3
confirmAsset
getAsset
Read the asset back to confirm the catalog entry exists.
4
searchCatalog
searchListings
Search the domain listings so the publisher can confirm the data product is surfaced in the consumer-facing catalog.

Source API Descriptions

Arazzo Workflow Specification

amazon-datazone-publish-data-product-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon DataZone Publish Data Product
  summary: Create a project, catalog an asset in it, then search the catalog for the listing.
  description: >-
    Stands up a complete data product in one pass: it creates a project to own
    the asset, registers the data asset in the catalog, reads the asset back to
    confirm it, and finally searches the domain listings so the publisher can see
    the product surface in the catalog for consumers. 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: publish-data-product
  summary: Create a project, catalog an asset under it, and surface it in listings.
  description: >-
    Creates an owning project, catalogs a data asset, confirms the asset, and
    searches the domain catalog listings to verify the product is discoverable.
  inputs:
    type: object
    required:
    - domainIdentifier
    - projectName
    - assetName
    - typeIdentifier
    properties:
      domainIdentifier:
        type: string
        description: The identifier of the domain that owns the catalog.
      projectName:
        type: string
        description: The name of the project that will own the asset.
      assetName:
        type: string
        description: The name of the data asset to catalog.
      assetDescription:
        type: string
        description: An optional description of the data asset.
      typeIdentifier:
        type: string
        description: The asset type identifier (e.g. amazon.datazone.RelationalTable).
  steps:
  - stepId: createProject
    description: Create the project that will own the published data asset.
    operationId: createProject
    parameters:
    - name: domainIdentifier
      in: path
      value: $inputs.domainIdentifier
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.projectName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      projectId: $response.body#/id
  - stepId: createAsset
    description: Catalog the data asset under the newly created owning project.
    operationId: createAsset
    parameters:
    - name: domainIdentifier
      in: path
      value: $inputs.domainIdentifier
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.assetName
        description: $inputs.assetDescription
        domainIdentifier: $inputs.domainIdentifier
        owningProjectIdentifier: $steps.createProject.outputs.projectId
        typeIdentifier: $inputs.typeIdentifier
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      assetId: $response.body#/id
  - stepId: confirmAsset
    description: Read the asset back to confirm the catalog entry exists.
    operationId: getAsset
    parameters:
    - name: domainIdentifier
      in: path
      value: $inputs.domainIdentifier
    - name: identifier
      in: path
      value: $steps.createAsset.outputs.assetId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      assetName: $response.body#/name
  - stepId: searchCatalog
    description: >-
      Search the domain listings so the publisher can confirm the data product
      is surfaced in the consumer-facing catalog.
    operationId: searchListings
    parameters:
    - name: domainIdentifier
      in: path
      value: $inputs.domainIdentifier
    - name: maxResults
      in: query
      value: 25
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      listings: $response.body#/items
  outputs:
    projectId: $steps.createProject.outputs.projectId
    assetId: $steps.createAsset.outputs.assetId
    listings: $steps.searchCatalog.outputs.listings