Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
description: Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argo-workflows.readthedocs.io/en/latest/
title: Argo Workflows ArchivedWorkflowService Cluster Workflow Template Service API
version: 3.6.0
servers:
- url: http://localhost:2746
- url: https://localhost:2746
security:
- BearerToken: []
tags:
- name: ClusterWorkflowTemplateService
paths:
/api/v1/cluster-workflow-templates:
get:
tags:
- ClusterWorkflowTemplateService
operationId: ClusterWorkflowTemplateService_ListClusterWorkflowTemplates
parameters:
- description: 'A selector to restrict the list of returned objects by their labels.
Defaults to everything.
+optional.'
name: listOptions.labelSelector
in: query
schema:
type: string
- description: 'A selector to restrict the list of returned objects by their fields.
Defaults to everything.
+optional.'
name: listOptions.fieldSelector
in: query
schema:
type: string
- description: 'Watch for changes to the described resources and return them as a stream of
add, update, and remove notifications. Specify resourceVersion.
+optional.'
name: listOptions.watch
in: query
schema:
type: boolean
- description: 'allowWatchBookmarks requests watch events with type "BOOKMARK".
Servers that do not implement bookmarks may ignore this flag and
bookmarks are sent at the server''s discretion. Clients should not
assume bookmarks are returned at any specific interval, nor may they
assume the server will send any BOOKMARK event during a session.
If this is not a watch, this field is ignored.
+optional.'
name: listOptions.allowWatchBookmarks
in: query
schema:
type: boolean
- description: 'resourceVersion sets a constraint on what resource versions a request may be served from.
See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for
details.
Defaults to unset
+optional'
name: listOptions.resourceVersion
in: query
schema:
type: string
- description: 'resourceVersionMatch determines how resourceVersion is applied to list calls.
It is highly recommended that resourceVersionMatch be set for list calls where
resourceVersion is set
See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for
details.
Defaults to unset
+optional'
name: listOptions.resourceVersionMatch
in: query
schema:
type: string
- description: 'Timeout for the list/watch call.
This limits the duration of the call, regardless of any activity or inactivity.
+optional.'
name: listOptions.timeoutSeconds
in: query
schema:
type: string
format: int64
- description: 'limit is a maximum number of responses to return for a list call. If more items exist, the
server will set the `continue` field on the list metadata to a value that can be used with the
same initial query to retrieve the next set of results. Setting a limit may return fewer than
the requested amount of items (up to zero items) in the event all requested objects are
filtered out and clients should only use the presence of the continue field to determine whether
more results are available. Servers may choose not to support the limit argument and will return
all of the available results. If limit is specified and the continue field is empty, clients may
assume that no more results are available. This field is not supported if watch is true.
The server guarantees that the objects returned when using continue will be identical to issuing
a single list call without a limit - that is, no objects created, modified, or deleted after the
first request is issued will be included in any subsequent continued requests. This is sometimes
referred to as a consistent snapshot, and ensures that a client that is using limit to receive
smaller chunks of a very large result can ensure they see all possible objects. If objects are
updated during a chunked list the version of the object that was present at the time the first list
result was calculated is returned.'
name: listOptions.limit
in: query
schema:
type: string
format: int64
- description: 'The continue option should be set when retrieving more results from the server. Since this value is
server defined, clients may only use the continue value from a previous query result with identical
query parameters (except for the value of continue) and the server may reject a continue value it
does not recognize. If the specified continue value is no longer valid whether due to expiration
(generally five to fifteen minutes) or a configuration change on the server, the server will
respond with a 410 ResourceExpired error together with a continue token. If the client needs a
consistent list, it must restart their list without the continue field. Otherwise, the client may
send another list request with the token received with the 410 error, the server will respond with
a list starting from the next key, but from the latest snapshot, which is inconsistent from the
previous list results - objects that are created, modified, or deleted after the first list request
will be included in the response, as long as their keys are after the "next key".
This field is not supported when watch is true. Clients may start a watch from the last
resourceVersion value returned by the server and not miss any modifications.'
name: listOptions.continue
in: query
schema:
type: string
- description: "`sendInitialEvents=true` may be set together with `watch=true`.\nIn that case, the watch stream will begin with synthetic events to\nproduce the current state of objects in the collection. Once all such\nevents have been sent, a synthetic \"Bookmark\" event will be sent.\nThe bookmark will report the ResourceVersion (RV) corresponding to the\nset of objects, and be marked with `\"io.k8s.initial-events-end\": \"true\"` annotation.\nAfterwards, the watch stream will proceed as usual, sending watch events\ncorresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch`\noption to also be set. The semantic of the watch request is as following:\n- `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward\ncompatibility reasons) and to false otherwise.\n+optional"
name: listOptions.sendInitialEvents
in: query
schema:
type: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateList'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
tags:
- ClusterWorkflowTemplateService
operationId: ClusterWorkflowTemplateService_CreateClusterWorkflowTemplate
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateCreateRequest'
required: true
/api/v1/cluster-workflow-templates/lint:
post:
tags:
- ClusterWorkflowTemplateService
operationId: ClusterWorkflowTemplateService_LintClusterWorkflowTemplate
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateLintRequest'
required: true
/api/v1/cluster-workflow-templates/{name}:
get:
tags:
- ClusterWorkflowTemplateService
operationId: ClusterWorkflowTemplateService_GetClusterWorkflowTemplate
parameters:
- name: name
in: path
required: true
schema:
type: string
- description: 'resourceVersion sets a constraint on what resource versions a request may be served from.
See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for
details.
Defaults to unset
+optional'
name: getOptions.resourceVersion
in: query
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
tags:
- ClusterWorkflowTemplateService
operationId: ClusterWorkflowTemplateService_UpdateClusterWorkflowTemplate
parameters:
- description: 'DEPRECATED: This field is ignored.'
name: name
in: path
required: true
schema:
type: string
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateUpdateRequest'
required: true
delete:
tags:
- ClusterWorkflowTemplateService
operationId: ClusterWorkflowTemplateService_DeleteClusterWorkflowTemplate
parameters:
- name: name
in: path
required: true
schema:
type: string
- description: 'The duration in seconds before the object should be deleted. Value must be non-negative integer.
The value zero indicates delete immediately. If this value is nil, the default grace period for the
specified type will be used.
Defaults to a per object value if not specified. zero means delete immediately.
+optional.'
name: deleteOptions.gracePeriodSeconds
in: query
schema:
type: string
format: int64
- description: 'Specifies the target UID.
+optional.'
name: deleteOptions.preconditions.uid
in: query
schema:
type: string
- description: 'Specifies the target ResourceVersion
+optional.'
name: deleteOptions.preconditions.resourceVersion
in: query
schema:
type: string
- description: 'Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
Should the dependent objects be orphaned. If true/false, the "orphan"
finalizer will be added to/removed from the object''s finalizers list.
Either this field or PropagationPolicy may be set, but not both.
+optional.'
name: deleteOptions.orphanDependents
in: query
schema:
type: boolean
- description: 'Whether and how garbage collection will be performed.
Either this field or OrphanDependents may be set, but not both.
The default policy is decided by the existing finalizer set in the
metadata.finalizers and the resource-specific default policy.
Acceptable values are: ''Orphan'' - orphan the dependents; ''Background'' -
allow the garbage collector to delete the dependents in the background;
''Foreground'' - a cascading policy that deletes all dependents in the
foreground.
+optional.'
name: deleteOptions.propagationPolicy
in: query
schema:
type: string
- description: 'When present, indicates that modifications should not be
persisted. An invalid or unrecognized dryRun directive will
result in an error response and no further processing of the
request. Valid values are:
- All: all dry run stages will be processed
+optional
+listType=atomic.'
name: deleteOptions.dryRun
in: query
style: form
explode: true
schema:
type: array
items:
type: string
- description: 'if set to true, it will trigger an unsafe deletion of the resource in
case the normal deletion flow fails with a corrupt object error.
A resource is considered corrupt if it can not be retrieved from
the underlying storage successfully because of a) its data can
not be transformed e.g. decryption failure, or b) it fails
to decode into an object.
NOTE: unsafe deletion ignores finalizer constraints, skips
precondition checks, and removes the object from the storage.
WARNING: This may potentially break the cluster if the workload
associated with the resource being unsafe-deleted relies on normal
deletion flow. Use only if you REALLY know what you are doing.
The default value is false, and the user must opt in to enable it
+optional.'
name: deleteOptions.ignoreStoreReadErrorWithClusterBreakingPotential
in: query
schema:
type: boolean
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateDeleteResponse'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/grpc.gateway.runtime.Error'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
io.k8s.api.core.v1.SeccompProfile:
description: SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.
type: object
required:
- type
properties:
localhostProfile:
description: localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is "Localhost". Must NOT be set for any other type.
type: string
type:
description: 'type indicates which kind of seccomp profile will be applied. Valid options are:
Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.'
type: string
x-kubernetes-unions:
- discriminator: type
fields-to-discriminateBy:
localhostProfile: LocalhostProfile
io.k8s.api.core.v1.FileKeySelector:
description: FileKeySelector selects a key of the env file.
type: object
required:
- volumeName
- path
- key
properties:
key:
description: The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
type: string
optional:
description: 'Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod''s containers.
If optional is set to false and the specified key does not exist, an error will be returned during Pod creation.'
type: boolean
path:
description: The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'.
type: string
volumeName:
description: The name of the volume mount containing the env file.
type: string
x-kubernetes-map-type: atomic
io.argoproj.workflow.v1alpha1.GitArtifact:
description: GitArtifact is the location of a git artifact
type: object
required:
- repo
properties:
branch:
description: Branch is the branch to fetch when `SingleBranch` is enabled
type: string
depth:
description: Depth specifies clones/fetches should be shallow and include the given number of commits from the branch tip
type: integer
disableSubmodules:
description: DisableSubmodules disables submodules during git clone
type: boolean
fetch:
description: Fetch specifies a number of refs that should be fetched before checkout
type: array
items:
type: string
insecureIgnoreHostKey:
description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
type: boolean
insecureSkipTLS:
description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
type: boolean
passwordSecret:
description: PasswordSecret is the secret selector to the repository password
$ref: '#/components/schemas/io.k8s.api.core.v1.SecretKeySelector'
repo:
description: Repo is the git repository
type: string
revision:
description: Revision is the git commit, tag, branch to checkout
type: string
singleBranch:
description: SingleBranch enables single branch clone, using the `branch` parameter
type: boolean
sshPrivateKeySecret:
description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
$ref: '#/components/schemas/io.k8s.api.core.v1.SecretKeySelector'
usernameSecret:
description: UsernameSecret is the secret selector to the repository username
$ref: '#/components/schemas/io.k8s.api.core.v1.SecretKeySelector'
io.argoproj.workflow.v1alpha1.OAuth2EndpointParam:
description: OAuth2EndpointParam is an optional field that should be sent in the OAuth request.
type: object
required:
- key
properties:
key:
description: Name is the header name
type: string
value:
description: Value is the literal value to use for the header
type: string
io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource:
description: Represents a Photon Controller persistent disk resource.
type: object
required:
- pdID
properties:
fsType:
description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
type: string
pdID:
description: pdID is the ID that identifies Photon Controller persistent disk
type: string
io.k8s.api.core.v1.PodAffinityTerm:
description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
type: object
required:
- topologyKey
properties:
labelSelector:
description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
$ref: '#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector'
matchLabelKeys:
description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
type: array
items:
type: string
x-kubernetes-list-type: atomic
mismatchLabelKeys:
description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
type: array
items:
type: string
x-kubernetes-list-type: atomic
namespaceSelector:
description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
$ref: '#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector'
namespaces:
description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
type: array
items:
type: string
x-kubernetes-list-type: atomic
topologyKey:
description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
type: string
io.k8s.api.core.v1.Toleration:
description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
type: object
properties:
effect:
description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
type: string
operator:
description: Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
type: string
tolerationSeconds:
description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
type: integer
value:
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
type: string
io.k8s.api.core.v1.PodDNSConfigOption:
description: PodDNSConfigOption defines DNS resolver options of a pod.
type: object
properties:
name:
description: Name is this DNS resolver option's name. Required.
type: string
value:
description: Value is this DNS resolver option's value.
type: string
io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions:
description: CreateOptions may be provided when creating an API object.
type: object
properties:
dryRun:
type: array
title: 'When present, indicates that modifications should not be
persisted. An invalid or unrecognized dryRun directive will
result in an error response and no further processing of the
request. Valid values are:
- All: all dry run stages will be processed
+optional
+listType=atomic'
items:
type: string
fieldManager:
type: string
title: 'fieldManager is a name associated with the actor or entity
that is making these changes. The value must be less than or
128 characters long, and only contain printable characters,
as defined by https://golang.org/pkg/unicode/#IsPrint.
+optional'
fieldValidation:
type: string
title: 'fieldValidation instructs the server on how to handle
objects in the request (POST/PUT/PATCH) containing unknown
or duplicate fields. Valid values are:
- Ignore: This will ignore any unknown fields that are silently
dropped from the object, and will ignore all but the last duplicate
field that the decoder encounters. This is the default behavior
prior to v1.23.
- Warn: This will send a warning via the standard warning response
header for each unknown field that is dropped from the object, and
for each duplicate field that is encountered. The request will
still succeed if there are no other errors, and will only persist
the last of any duplicate fields. This is the default in v1.23+
- Strict: This will fail the request with a BadRequest error if
any unknown fields would be dropped from the object, or if any
duplicate fields are present. The error returned from the server
will contain all unknown and duplicate fields encountered.
+optional'
io.k8s.api.core.v1.NodeSelectorTerm:
description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
type: object
properties:
matchExpressions:
description: A list of node selector requirements by node's labels.
type: array
items:
$ref: '#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement'
x-kubernetes-list-type: atomic
matchFields:
description: A list of node selector requirements by node's fields.
type: array
items:
$ref: '#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement'
x-kubernetes-list-type: atomic
x-kubernetes-map-type: atomic
io.k8s.api.core.v1.HTTPHeader:
description: HTTPHeader describes a custom header to be used in HTTP probes
type: object
required:
- name
- value
properties:
name:
description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
type: string
value:
description: The header field value
type: string
io.argoproj.workflow.v1alpha1.ZipStrategy:
description: ZipStrategy will unzip zipped input artifacts
type: object
io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement:
description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
type: object
required:
- key
- operator
properties:
key:
description: key is the label key that the selector applies to.
type: string
operator:
description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
type: array
items:
type: string
x-kubernetes-list-type: atomic
io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference:
description: OwnerReference contains enough information to let you identify an owning object. An owning object must be in t
# --- truncated at 32 KB (322 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/argo-workflows/refs/heads/main/openapi/argo-workflows-clusterworkflowtemplateservice-api-openapi.yml