Cloudflare · Arazzo Workflow

Cloudflare Upload Custom SSL Certificate

Version 1.0.0

Upload a custom SSL certificate, read it back, then remove it.

1 workflow 1 source API 1 provider
View Spec View on GitHub AI GatewayAPI GatewayArtificial IntelligenceCDNCloudContainersDDoS ProtectionDNSEdgeEdge ComputingObject StoragePlatformReal-Time CommunicationSecurityServerlessWeb PerformanceArazzoWorkflows

Provider

cloudflare

Workflows

upload-custom-ssl-certificate
Upload a custom SSL certificate, fetch it by id, then delete it.
Creates a custom SSL configuration from a certificate and private key, retrieves it by id to confirm it persisted, and then deletes it.
3 steps inputs: bundleMethod, certificate, privateKey, zoneId outputs: certificateId, deletedId, status
1
uploadCertificate
custom-ssl-for-a-zone-create-ssl-configuration
Upload the certificate and private key as a custom SSL configuration.
2
getCertificate
custom-ssl-for-a-zone-ssl-configuration-details
Read the custom SSL configuration back by id to confirm it persisted.
3
deleteCertificate
custom-ssl-for-a-zone-delete-ssl-configuration
Delete the custom SSL configuration to complete the rotation cycle.

Source API Descriptions

Arazzo Workflow Specification

cloudflare-upload-custom-ssl-certificate-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Cloudflare Upload Custom SSL Certificate
  summary: Upload a custom SSL certificate, read it back, then remove it.
  description: >-
    Enterprise zones can serve their own custom SSL certificates. The workflow
    uploads a certificate and private key as a custom SSL configuration, reads
    the configuration back by id to confirm it persisted, and deletes it to
    complete a clean rotation cycle. The certificate and private key are
    supplied as PEM strings. Each step inlines its request and asserts both the
    documented HTTP 200 status and the Cloudflare {success, result} envelope
    flag.
  version: 1.0.0
sourceDescriptions:
- name: cloudflareZonesApi
  url: ../openapi/cloudflare-zones--openapi-original.yml
  type: openapi
workflows:
- workflowId: upload-custom-ssl-certificate
  summary: Upload a custom SSL certificate, fetch it by id, then delete it.
  description: >-
    Creates a custom SSL configuration from a certificate and private key,
    retrieves it by id to confirm it persisted, and then deletes it.
  inputs:
    type: object
    required:
    - zoneId
    - certificate
    - privateKey
    properties:
      zoneId:
        type: string
        description: The unique identifier of the zone.
      certificate:
        type: string
        description: The PEM-encoded certificate (and any intermediate chain).
      privateKey:
        type: string
        description: The PEM-encoded private key for the certificate.
      bundleMethod:
        type: string
        description: The bundling method (ubiquitous, optimal, or force).
  steps:
  - stepId: uploadCertificate
    description: Upload the certificate and private key as a custom SSL configuration.
    operationId: custom-ssl-for-a-zone-create-ssl-configuration
    parameters:
    - name: zone_id
      in: path
      value: $inputs.zoneId
    requestBody:
      contentType: application/json
      payload:
        certificate: $inputs.certificate
        private_key: $inputs.privateKey
        bundle_method: $inputs.bundleMethod
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.success == true
      type: jsonpath
    outputs:
      certificateId: $response.body#/result/id
  - stepId: getCertificate
    description: Read the custom SSL configuration back by id to confirm it persisted.
    operationId: custom-ssl-for-a-zone-ssl-configuration-details
    parameters:
    - name: zone_id
      in: path
      value: $inputs.zoneId
    - name: custom_certificate_id
      in: path
      value: $steps.uploadCertificate.outputs.certificateId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.success == true
      type: jsonpath
    outputs:
      certificateId: $response.body#/result/id
      status: $response.body#/result/status
  - stepId: deleteCertificate
    description: Delete the custom SSL configuration to complete the rotation cycle.
    operationId: custom-ssl-for-a-zone-delete-ssl-configuration
    parameters:
    - name: zone_id
      in: path
      value: $inputs.zoneId
    - name: custom_certificate_id
      in: path
      value: $steps.uploadCertificate.outputs.certificateId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.success == true
      type: jsonpath
    outputs:
      deletedId: $response.body#/result/id
  outputs:
    certificateId: $steps.uploadCertificate.outputs.certificateId
    status: $steps.getCertificate.outputs.status
    deletedId: $steps.deleteCertificate.outputs.deletedId