Continuous Delivery Foundation Validator API

The Validator API from Continuous Delivery Foundation — 3 operation(s) for validator.

Operations 3

POST /v4/validator Validate a given screwdriver.yaml #
POST /v4/validator/command Validate a given sd-command.yaml #
POST /v4/validator/template Validate a given sd-template.yaml #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/continuous-delivery-foundation:continuous-delivery-foundation-validator-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

continuous-delivery-foundation-validator-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Screwdriver API Documentation Validator API
  version: '3'
servers:
- url: https://api.screwdriver.cd/
security:
- jwt: []
tags:
- name: Validator
paths:
  /v4/validator:
    post:
      summary: Validate a given screwdriver.yaml
      operationId: postV4Validator
      description: Returns the parsed config or validation errors
      tags:
      - Validator
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Validation%20Input'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution%20information'
  /v4/validator/command:
    post:
      summary: Validate a given sd-command.yaml
      operationId: postV4ValidatorCommand
      description: returns the parsed config, validation errors, or both
      tags:
      - Validator
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Certify%20input%20to%20command%20validator'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Command%20validation%20output'
  /v4/validator/template:
    post:
      summary: Validate a given sd-template.yaml
      operationId: postV4ValidatorTemplate
      description: returns the parsed config, validation errors, or both
      tags:
      - Validator
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Certify%20input%20to%20template%20validator'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template%20validation%20output'
components:
  securitySchemes:
    jwt:
      type: apiKey
      name: Authorization
      in: header
x-alt-definitions:
  format:
    type: string
    description: Format of the Command
    example: habitat
    enum:
    - habitat
    - docker
    - binary
    maxLength: 16
  mode:
    type: string
    description: Mode of the Habitat command
    example: remote
    enum:
    - remote
    - local
  habitat:
    type: object
    properties:
      mode:
        $ref: '#/x-alt-definitions/mode'
      file:
        type: string
        description: File path of the Habitat artifact
        example: ./foobar.hart
      package:
        type: string
        description: Package of the Habitat command
        example: core/git/2.14.1
      command:
        type: string
        description: Executable of the Habitat command
        example: git
    required:
    - mode
    - file
    - package
    - command
  docker:
    type: object
    properties:
      image:
        type: string
        description: Image of the Docker command
        example: chefdk:1.2.3
      command:
        type: string
        description: Executable of the Docker command
        example: knife
        default: ''
    required:
    - image
  binary:
    type: object
    properties:
      file:
        type: string
        description: File of the Binary command
        example: ./foobar.sh
    required:
    - file
  clouds:
    type: array
    description: A list of cloud that template supports
    example:
    - aws
    - gcp
    - azure
    items:
      type: string
  architectures:
    type: array
    description: A list of architectures that template supports
    example:
    - x86
    - x86_64
    - arm64
    items:
      type: string
  compatibilities:
    type: object
    properties:
      clouds:
        $ref: '#/x-alt-definitions/clouds'
      architectures:
        $ref: '#/x-alt-definitions/architectures'
  Get Command:
    type: object
    properties:
      id:
        type: integer
        description: Identifier of this command
        example: 123345
        x-constraint:
          sign: positive
      namespace:
        type: string
        description: Namespace of the Command
        example: chefdk
        maxLength: 64
        pattern: ^[\w-]+$
      version:
        type: string
        description: Version of the Command
        example: '1.2'
        maxLength: 16
        pattern: ^(\d+)(\.\d+)?(\.\d+)?$
      description:
        type: string
        description: Description of the Command
        example: Installs npm modules
        maxLength: 256
      maintainer:
        type: string
        description: Maintainer of the Command
        example: foo@bar.com
        maxLength: 64
        x-format:
          email: true
      format:
        $ref: '#/x-alt-definitions/format'
      habitat:
        $ref: '#/x-alt-definitions/habitat'
      docker:
        $ref: '#/x-alt-definitions/docker'
      binary:
        $ref: '#/x-alt-definitions/binary'
      name:
        type: string
        description: Name of the Command
        example: knife
        maxLength: 64
        pattern: ^[\w-]+$
      pipelineId:
        type: integer
        description: Identifier of this pipeline
        example: 123345
        x-constraint:
          sign: positive
      createTime:
        type: string
        description: When this command was created
        example: '2038-01-19T03:14:08.131Z'
        maxLength: 32
        x-format:
          isoDate: true
      usage:
        type: string
        description: Usage and arguments of the command
        example: sd_cmd exec foo/bar@1 -h <host> -d <domain>
        maxLength: 4096
      trusted:
        type: boolean
        description: Mark whether command is trusted
      latest:
        type: boolean
        description: Whether this is latest version
      compatibilities:
        $ref: '#/x-alt-definitions/compatibilities'
    required:
    - id
    - namespace
    - version
    - description
    - maintainer
    - format
    - name
    - pipelineId
  List of commands:
    type: array
    items:
      $ref: '#/x-alt-definitions/Get%20Command'
  Model1:
    type: object
    properties:
      namespace:
        type: string
        description: Namespace of the Command
        example: chefdk
        maxLength: 64
        pattern: ^[\w-]+$
  Model2:
    type: array
    items:
      $ref: '#/x-alt-definitions/Model1'
  Command Count and List of commands:
    type: object
    properties:
      count:
        type: number
      rows:
        $ref: '#/x-alt-definitions/List of commands'
  any:
    type: array
    items:
      type: string
  value:
    type: array
    items:
      type: string
  Model3:
    type: object
    properties:
      value:
        anyOf:
        - type: string
        - $ref: '#/x-alt-definitions/value'
      description:
        type: string
    required:
    - value
  Model4:
    type: string
    enum:
    - OK
  Model5:
    type: object
    properties:
      queue:
        type: string
      store:
        type: string
      api:
        type: string
  labels:
    type: array
    description: Labels for template
    example:
    - stable
    - latest
    - beta
    items:
      type: string
  annotations:
    type: object
  blockedBy:
    type: array
    items:
      anyOf:
      - type: string
        pattern: ^~([\w-]+)$
      - type: string
        pattern: ^~sd@(\d+):(?:([\w-]+)|(stage@([\w-]+):setup))$
  freezeWindows:
    type: array
    items:
      type: string
  string:
    type: array
    items:
      type: string
  order:
    type: array
    minItems: 0
    items:
      type: string
      pattern: ^[\w-]+$
  name:
    type: string
    description: Provider name
    example: aws
    enum:
    - aws
    maxLength: 64
  List of security group IDs:
    type: array
    minItems: 1
    items:
      type: string
      description: Security group ID
      example: sg-51530134
      maxLength: 128
      pattern: ^sg-[\w]+$
  List of subnet IDs:
    type: array
    minItems: 1
    items:
      type: string
      description: Subnet ID
      example: subnet-01234567890abcdef
      maxLength: 128
      pattern: ^subnet-[\w]+$
  vpc:
    type: object
    properties:
      vpcId:
        type: string
        description: VPC ID
        example: vpc-1a2b3c4d
        maxLength: 128
        pattern: ^vpc-[\w]+$
      securityGroupIds:
        $ref: '#/x-alt-definitions/List%20of%20security%20group%20IDs'
      subnetIds:
        $ref: '#/x-alt-definitions/List%20of%20subnet%20IDs'
    required:
    - vpcId
    - securityGroupIds
    - subnetIds
  executor:
    type: string
    description: Executor name
    example: eks
    enum:
    - sls
    - eks
    maxLength: 64
  computeType:
    type: string
    description: CodeBuild compute type
    default: BUILD_GENERAL1_SMALL
    enum:
    - BUILD_GENERAL1_SMALL
    - BUILD_GENERAL1_LARGE
    - BUILD_GENERAL1_MEDIUM
    - BUILD_GENERAL1_2XLARGE
  environmentType:
    type: string
    description: CodeBuild environment type
    default: LINUX_CONTAINER
    enum:
    - ARM_CONTAINER
    - LINUX_CONTAINER
    - LINUX_GPU_CONTAINER
  provider:
    type: object
    properties:
      name:
        $ref: '#/x-alt-definitions/name'
      region:
        type: string
        description: Region where service and build will run, build region can be overridden
        example: us-west-2
        default: us-west-2
        maxLength: 64
        pattern: ^(us(-gov)?|ap|ca|cn|eu|sa|me)-(central|(north|south)?(east|west)?)-\d$
      buildRegion:
        type: string
        description: Region where builds will run if different from service region
        example: us-east-2
        default: ''
        maxLength: 64
        pattern: ^(us(-gov)?|ap|ca|cn|eu|sa|me)-(central|(north|south)?(east|west)?)-\d$
      accountId:
        description: Account ID
        example: '123456789012'
        anyOf:
        - type: string
          maxLength: 12
          pattern: ^[0-9]{12}$
        - type: integer
          minimum: 12
      vpc:
        $ref: '#/x-alt-definitions/vpc'
      role:
        type: string
        description: Role ARN
        example: arn:aws:iam::123456789012:role/aws-service-role/amazonaws.com/AWSServiceRole
        maxLength: 512
        pattern: ^arn:aws:iam::\d{12}:role\/.+
      executor:
        $ref: '#/x-alt-definitions/executor'
      clusterName:
        type: string
        description: Cluster name required if executor is eks
        example: sd-build-eks
        maxLength: 128
      cpuLimit:
        type: string
        description: CPU Limit for pod in EKS Cluster
        example: 2Gi
        maxLength: 4
      memoryLimit:
        type: string
        description: Memory Limit for pod in EKS Cluster
        example: 4Gi
        maxLength: 4
      executorLogs:
        type: boolean
        description: Enable debug logs for executor codebuild
        default: false
      launcherImage:
        type: string
        description: Screwdriver launcher image in user Registry
        example: 123456789012.dkr.ecr.us-east-2.amazonaws.com/screwdriver-hub:launcherv6.4
      launcherVersion:
        type: string
        description: Screwdriver launcher version
        example: v6.4
      privilegedMode:
        type: boolean
        description: Enable privileged mode for container
        default: false
      computeType:
        $ref: '#/x-alt-definitions/computeType'
      environmentType:
        $ref: '#/x-alt-definitions/environmentType'
      debugSession:
        type: boolean
        description: Enable debug session inside build container
        default: false
  requires:
    type: array
    items:
      anyOf:
      - type: string
        pattern: ^~([\w-]+)$
      - type: string
        maxLength: 100
        pattern: ^(([\w-]+)|(?:stage@([\w-]+):(setup|teardown)))$
      - type: string
      - type: string
        pattern: ^~?stage@([\w-]+)(?::([\w-]+))?$
      - type: string
        pattern: ^~?sd@\d+:(?:([\w-]+)|(stage@([\w-]+):(setup|teardown)))$
  secrets:
    type: array
    minItems: 0
    items:
      type: string
      maxLength: 64
      pattern: ^[A-Z_][A-Z0-9_]*$
  settings:
    type: object
  sourcePaths:
    type: array
    items:
      type: string
      maxLength: 1024
  Model6:
    type: object
    properties:
      command:
        type: string
      locked:
        type: boolean
    required:
    - command
  steps:
    type: array
    minItems: 1
    items:
      anyOf:
      - type: string
      - type: object
        properties:
          string:
            anyOf:
            - type: string
            - $ref: '#/x-alt-definitions/Model6'
  config:
    type: object
    default: {}
    properties:
      annotations:
        $ref: '#/x-alt-definitions/annotations'
      blockedBy:
        anyOf:
        - $ref: '#/x-alt-definitions/blockedBy'
        - anyOf:
          - type: string
            pattern: ^~([\w-]+)$
          - type: string
            pattern: ^~sd@(\d+):(?:([\w-]+)|(stage@([\w-]+):setup))$
      cache:
        type: boolean
      description:
        type: string
        maxLength: 100
      environment:
        type: object
        properties:
          string:
            type: string
      freezeWindows:
        anyOf:
        - $ref: '#/x-alt-definitions/freezeWindows'
        - type: string
      image:
        type: string
        pattern: ^[^;&|><*?`$()!#'" ]+$
      matrix:
        type: object
        properties:
          string:
            $ref: '#/x-alt-definitions/string'
      order:
        $ref: '#/x-alt-definitions/order'
      parameters:
        type: object
        properties:
          any:
            anyOf:
            - type: string
            - $ref: '#/x-alt-definitions/any'
            - $ref: '#/x-alt-definitions/Model3'
      provider:
        anyOf:
        - $ref: '#/x-alt-definitions/provider'
        - type: string
          pattern: ^(?:(?:https:\/\/(?:[^@/:\s]+@)?)|git@|org-\d+@)+([^/:\s]+)(?:\/|:)([^/:\s]+)\/([^\s]+?)(?:\.git)(#[^: \s]* [^: \s]*|#[^: \s]+)?(:[^: \s]* [^: \s]*|:[^: \s]+)?$
      requires:
        anyOf:
        - $ref: '#/x-alt-definitions/requires'
        - anyOf:
          - type: string
            pattern: ^~([\w-]+)$
          - type: string
            maxLength: 100
            pattern: ^(([\w-]+)|(?:stage@([\w-]+):(setup|teardown)))$
          - type: string
          - type: string
            pattern: ^~?stage@([\w-]+)(?::([\w-]+))?$
          - type: string
            pattern: ^~?sd@\d+:(?:([\w-]+)|(stage@([\w-]+):(setup|teardown)))$
      secrets:
        $ref: '#/x-alt-definitions/secrets'
      settings:
        $ref: '#/x-alt-definitions/settings'
      sourcePaths:
        anyOf:
        - $ref: '#/x-alt-definitions/sourcePaths'
        - type: string
          maxLength: 1024
      template:
        type: string
        pattern: ^([\w/-]+)(?:@((?:(?:\d+)(?:\.\d+)?(?:\.\d+)?)|(?:[a-zA-Z][\w-.]+)))?$
      templateId:
        type:
        - integer
        - 'null'
        description: Identifier for this job's template
        example: 123345
        x-constraint:
          sign: positive
      steps:
        $ref: '#/x-alt-definitions/steps'
  Get Template:
    type: object
    properties:
      id:
        type: integer
        description: Identifier of this template
        example: 123345
        x-constraint:
          sign: positive
      labels:
        $ref: '#/x-alt-definitions/labels'
      config:
        $ref: '#/x-alt-definitions/config'
      name:
        type: string
        description: Template name
        example: nodejs/lib
        maxLength: 64
      version:
        type: string
        description: Version of the Template
        example: '1.2'
        maxLength: 16
        pattern: ^(\d+)(\.\d+)?(\.\d+)?$
      description:
        type: string
        description: Description of the Template
        example: Installs npm modules
        maxLength: 256
      maintainer:
        type: string
        description: Maintainer of the Template
        example: foo@bar.com
        maxLength: 64
        x-format:
          email: true
      pipelineId:
        type: integer
        description: Identifier of this pipeline
        example: 123345
        x-constraint:
          sign: positive
      namespace:
        type: string
        description: Namespace of the Template
        example: node
        maxLength: 64
        pattern: ^[\w-]+$
      images:
        type: object
        properties:
          string:
            type: string
            pattern: ^[^;&|><*?`$()!#'" ]+$
      createTime:
        type: string
        description: When this template was created
        example: '2038-01-19T03:14:08.131Z'
        maxLength: 32
        x-format:
          isoDate: true
      trusted:
        type: boolean
        description: Mark whether template is trusted
      latest:
        type: boolean
        description: Whether this is latest version
      compatibilities:
        $ref: '#/x-alt-definitions/compatibilities'
    required:
    - id
    - labels
    - name
    - version
    - description
    - maintainer
    - pipelineId
  List of templates:
    type: array
    items:
      $ref: '#/x-alt-definitions/Get%20Template'
  Model7:
    type: object
    properties:
      namespace:
        type: string
        description: Namespace of the Template
        example: node
        maxLength: 64
        pattern: ^[\w-]+$
  Model8:
    type: array
    items:
      $ref: '#/x-alt-definitions/Model7'
  Template Count and List of templates:
    type: object
    properties:
      count:
        type: number
      rows:
        $ref: '#/x-alt-definitions/List of templates'
  environment:
    type: array
    items:
      type: object
      properties:
        string:
          type: string
  parentBuildId:
    type: array
    description: Identifier(s) of this parent build(s)
    example:
    - 111
    - 222
    items:
      type: integer
      x-constraint:
        sign: positive
  templateType:
    type: string
    description: Template Type
    example: PIPELINE
    default: JOB
    enum:
    - JOB
    - PIPELINE
    maxLength: 16
  Model9:
    type: object
    properties:
      id:
        type: integer
        description: Identifier of this template
        example: 123345
        x-constraint:
          sign: positive
      pipelineId:
        type: integer
        description: Identifier of this pipeline
        example: 123345
        x-constraint:
          sign: positive
      namespace:
        type: string
        description: Namespace of the Template
        example: node
        maxLength: 64
        pattern: ^[\w-]+$
      name:
        type: string
        description: Name of the template
        example: nodePipeline
        maxLength: 64
        pattern: ^[\w-]+$
      maintainer:
        type: string
        description: Maintainer of the Template
        example: foo@bar.com
        maxLength: 64
        x-format:
          email: true
      trustedSinceVersion:
        type: string
        description: The version since the template is marked as trusted
        example: 1.2.3
        maxLength: 16
        pattern: ^(\d+)\.(\d+)\.(\d+)$
      latestVersion:
        type: string
        description: Latest version of the template
        example: 1.2.3
        maxLength: 16
        pattern: ^(\d+)\.(\d+)\.(\d+)$
      createTime:
        type: string
        description: When this template was created
        example: '2038-01-19T03:14:08.131Z'
        maxLength: 32
        x-format:
          isoDate: true
      updateTime:
        type: string
        description: When this template was updated
        example: '2038-01-19T03:14:08.131Z'
        maxLength: 32
        x-format:
          isoDate: true
      templateType:
        $ref: '#/x-alt-definitions/templateType'
    required:
    - id
    - pipelineId
    - namespace
    - name
    - maintainer
    - templateType
  List of pipeline templates:
    type: array
    items:
      $ref: '#/x-alt-definitions/Model9'
  Pipeline Template Count and List of templates:
    type: object
    properties:
      count:
        type: number
      rows:
        $ref: '#/x-alt-definitions/List of pipeline templates'
  Model10:
    type: object
    properties:
      command:
        type: string
    required:
    - command