Cisco Expressway · Arazzo Workflow

Cisco Expressway Create DNS Zone Routing

Version 1.0.0

Create a DNS zone for endpoint discovery and a search rule that routes to it.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub CollaborationFirewall TraversalH.323Session Border ControllerSIPUnified CommunicationsVideo ConferencingArazzoWorkflows

Provider

cisco-expressway

Workflows

create-dns-zone-routing
Create a DNS zone plus a search rule and confirm via zone status.
Creates a DNS zone for SIP and H.323 discovery, creates a search rule that targets it, and reads zone status to confirm the zone is present.
3 steps inputs: aliasPatternString, host, password, ruleName, username, zoneName outputs: ruleName, zoneName, zoneStatus
1
createDnsZone
createDnsZone
Create a DNS zone that locates endpoints through DNS lookups for SIP and H.323 calls.
2
createRoutingRule
createSearchRule
Create a search rule that forwards matching aliases to the new DNS zone.
3
confirmZoneStatus
listZoneStatus
Read zone connectivity status and confirm the new DNS zone is present in the returned array.

Source API Descriptions

Arazzo Workflow Specification

cisco-expressway-create-dns-zone-routing-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Cisco Expressway Create DNS Zone Routing
  summary: Create a DNS zone for endpoint discovery and a search rule that routes to it.
  description: >-
    Enables DNS-based endpoint discovery by creating a DNS zone, creating a
    search rule that forwards matching aliases to that zone, and then reading
    zone connectivity status to confirm the new zone is being tracked. 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: configurationApi
  url: ../openapi/cisco-expressway-configuration-api-openapi.yml
  type: openapi
- name: statusApi
  url: ../openapi/cisco-expressway-status-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-dns-zone-routing
  summary: Create a DNS zone plus a search rule and confirm via zone status.
  description: >-
    Creates a DNS zone for SIP and H.323 discovery, creates a search rule that
    targets it, and reads zone status to confirm the zone is present.
  inputs:
    type: object
    required:
    - host
    - username
    - password
    - zoneName
    - ruleName
    - aliasPatternString
    properties:
      host:
        type: string
        description: FQDN or IP address of the Expressway node (server variable host).
      username:
        type: string
        description: Expressway administrator username for HTTP Basic auth.
      password:
        type: string
        description: Expressway administrator password for HTTP Basic auth.
      zoneName:
        type: string
        description: Name for the DNS zone to create.
      ruleName:
        type: string
        description: Name for the search rule that routes to the DNS zone.
      aliasPatternString:
        type: string
        description: Regex pattern matched against the destination alias.
  steps:
  - stepId: createDnsZone
    description: >-
      Create a DNS zone that locates endpoints through DNS lookups for SIP and
      H.323 calls.
    operationId: createDnsZone
    parameters:
    - name: Authorization
      in: header
      value: Basic $inputs.username:$inputs.password
    requestBody:
      contentType: application/json
      payload:
        Name: $inputs.zoneName
        SIPMode: 'On'
        H323Mode: 'Off'
        FallbackTransportProtocol: TLS
        IncludeAddressRecord: 'On'
        MediaEncryptionMode: Auto
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      zoneName: $response.body#/Name
  - stepId: createRoutingRule
    description: >-
      Create a search rule that forwards matching aliases to the new DNS zone.
    operationId: createSearchRule
    parameters:
    - name: Authorization
      in: header
      value: Basic $inputs.username:$inputs.password
    requestBody:
      contentType: application/json
      payload:
        Name: $inputs.ruleName
        Priority: 100
        AliasPatternType: Regex
        AliasPatternString: $inputs.aliasPatternString
        TargetZone: $steps.createDnsZone.outputs.zoneName
        Protocol: SIP
        Mode: 'On'
        State: Enabled
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      ruleName: $response.body#/Name
  - stepId: confirmZoneStatus
    description: >-
      Read zone connectivity status and confirm the new DNS zone is present in
      the returned array.
    operationId: listZoneStatus
    parameters:
    - name: Authorization
      in: header
      value: Basic $inputs.username:$inputs.password
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $[?(@.ZoneName == '$inputs.zoneName')]
      type: jsonpath
    outputs:
      zoneStatus: $response.body
  outputs:
    zoneName: $steps.createDnsZone.outputs.zoneName
    ruleName: $steps.createRoutingRule.outputs.ruleName
    zoneStatus: $steps.confirmZoneStatus.outputs.zoneStatus