openapi: 3.1.0 info: title: Argo CD Applications API description: The Argo CD API provides REST endpoints for managing GitOps continuous delivery on Kubernetes. It enables creating and managing applications, projects, repositories, clusters, and certificates. The API supports syncing application state to match the desired state declared in Git, querying health and sync status, managing access control, and configuring notifications. All operations require authentication via bearer token obtained from the session endpoint. version: v2.x contact: name: Argo CD Community url: https://argo-cd.readthedocs.io/en/stable/ license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://localhost/api/v1 description: Argo CD Server (default in-cluster address) security: - bearerAuth: [] tags: - name: Applications description: Operations for creating, querying, syncing, and deleting Argo CD GitOps applications. paths: /applications: get: operationId: listApplications summary: Argo CD Argo List Applications description: Returns a list of all Argo CD applications, optionally filtered by project, namespace, or name. Each application includes its current sync status, health status, source configuration, and destination cluster details. tags: - Applications parameters: - $ref: '#/components/parameters/projectParam' - name: name in: query description: Filter applications by name. schema: type: string - name: namespace in: query description: Filter applications by destination namespace. schema: type: string - name: appNamespace in: query description: The application namespace to filter by. schema: type: string responses: '200': description: List of applications. content: application/json: schema: $ref: '#/components/schemas/ApplicationList' '401': description: Unauthorized. Missing or invalid authentication token. '403': description: Forbidden. Insufficient permissions. x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createApplication summary: Argo CD Argo Create an Application description: Creates a new Argo CD application from the provided Application manifest. The application must reference a valid project, source repository, and destination cluster. Optionally upsert to update an existing application with the same name. tags: - Applications parameters: - name: upsert in: query description: If true, perform an upsert rather than a create, updating the application if it already exists. schema: type: boolean requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Application' responses: '200': description: Application created or updated. content: application/json: schema: $ref: '#/components/schemas/Application' '400': description: Bad request. Invalid application specification. '401': description: Unauthorized. '403': description: Forbidden. x-microcks-operation: delay: 0 dispatcher: FALLBACK /applications/{name}: get: operationId: getApplication summary: Argo CD Argo Get an Application description: Returns the full specification and current status of a named Argo CD application, including sync status, health status, resource tree, and operation state. tags: - Applications parameters: - $ref: '#/components/parameters/appNameParam' - name: appNamespace in: query description: Application namespace. schema: type: string responses: '200': description: Application details. content: application/json: schema: $ref: '#/components/schemas/Application' '401': description: Unauthorized. '404': description: Application not found. x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: updateApplication summary: Argo CD Argo Update an Application description: Replaces the specification of an existing Argo CD application with the provided manifest. Used to update source, destination, sync policy, or other application configuration. tags: - Applications parameters: - $ref: '#/components/parameters/appNameParam' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Application' responses: '200': description: Updated application. content: application/json: schema: $ref: '#/components/schemas/Application' '400': description: Bad request. '401': description: Unauthorized. '404': description: Application not found. x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteApplication summary: Argo CD Argo Delete an Application description: Deletes the named Argo CD application. Optionally cascades deletion to all managed Kubernetes resources in the destination cluster. tags: - Applications parameters: - $ref: '#/components/parameters/appNameParam' - name: cascade in: query description: Cascade deletion to managed Kubernetes resources. schema: type: boolean default: true - name: propagationPolicy in: query description: Kubernetes resource deletion propagation policy (foreground, background, orphan). schema: type: string enum: - foreground - background - orphan responses: '200': description: Application deleted. '401': description: Unauthorized. '404': description: Application not found. x-microcks-operation: delay: 0 dispatcher: FALLBACK /applications/{name}/sync: post: operationId: syncApplication summary: Argo CD Argo Sync an Application description: Triggers a synchronization of the named Argo CD application, reconciling the live Kubernetes state with the desired state from the Git source. Supports selective resource sync, dry-run mode, force sync, and prune of removed resources. tags: - Applications parameters: - $ref: '#/components/parameters/appNameParam' requestBody: content: application/json: schema: $ref: '#/components/schemas/SyncRequest' responses: '200': description: Sync operation initiated. content: application/json: schema: $ref: '#/components/schemas/Application' '401': description: Unauthorized. '404': description: Application not found. x-microcks-operation: delay: 0 dispatcher: FALLBACK /applications/{name}/rollback: post: operationId: rollbackApplication summary: Argo CD Argo Rollback an Application description: Rolls back the named application to a previous deployed revision. Requires the ID of a history entry from the application's deployment history. tags: - Applications parameters: - $ref: '#/components/parameters/appNameParam' requestBody: content: application/json: schema: type: object properties: id: type: integer format: int64 description: History ID of the revision to roll back to. prune: type: boolean description: Whether to prune resources removed in the target revision. dryRun: type: boolean description: Preview rollback without applying changes. responses: '200': description: Rollback initiated. content: application/json: schema: $ref: '#/components/schemas/Application' '401': description: Unauthorized. '404': description: Application not found. x-microcks-operation: delay: 0 dispatcher: FALLBACK components: parameters: appNameParam: name: name in: path required: true description: The name of the Argo CD application. schema: type: string projectParam: name: project in: query description: Filter by project name. schema: type: string schemas: SyncPolicy: type: object description: Policy controlling how and when the application is synchronized. properties: automated: type: object description: Configuration for automatic synchronization. properties: prune: type: boolean description: Automatically delete resources removed from the source. default: false selfHeal: type: boolean description: Automatically sync when live state drifts from desired state. default: false allowEmpty: type: boolean description: Allows apps to have an empty source. default: false syncOptions: type: array description: List of sync option flags (e.g., CreateNamespace=true, PrunePropagationPolicy=foreground). items: type: string retry: type: object description: Retry configuration for failed sync operations. properties: limit: type: integer format: int64 description: Maximum number of retry attempts. -1 for unlimited. backoff: type: object description: Backoff strategy for retries. properties: duration: type: string description: Initial retry backoff duration. factor: type: integer format: int64 description: Multiplicative factor applied to duration on each retry. maxDuration: type: string description: Maximum duration between retries. Application: type: object description: An Argo CD Application represents a deployed set of Kubernetes resources managed through GitOps. properties: apiVersion: type: string description: API version, always argoproj.io/v1alpha1. kind: type: string description: Resource kind, always Application. metadata: type: object description: Kubernetes object metadata. properties: name: type: string description: Application name. namespace: type: string description: Application namespace. spec: $ref: '#/components/schemas/ApplicationSpec' status: $ref: '#/components/schemas/ApplicationStatus' SyncRequest: type: object description: Request body for triggering an application sync operation. properties: revision: type: string description: Specific Git revision to sync to. Defaults to the current target revision. dryRun: type: boolean description: Preview sync without applying changes. prune: type: boolean description: Delete resources no longer defined in the source. strategy: type: object description: Sync strategy configuration. properties: apply: type: object description: Use kubectl apply sync strategy. properties: force: type: boolean description: Force resource updates through delete and recreate. hook: type: object description: Use hook-based sync strategy. properties: force: type: boolean description: Force resource updates. resources: type: array description: Specific resources to sync (partial sync). items: type: object properties: group: type: string description: Kubernetes API group. kind: type: string description: Resource kind. name: type: string description: Resource name. namespace: type: string description: Resource namespace. ApplicationList: type: object description: A list of Argo CD applications. properties: items: type: array description: Array of application objects. items: $ref: '#/components/schemas/Application' ApplicationSpec: type: object description: Desired state specification for an Argo CD application. required: - destination - project - source properties: source: $ref: '#/components/schemas/ApplicationSource' destination: $ref: '#/components/schemas/ApplicationDestination' project: type: string description: Argo CD project this application belongs to. syncPolicy: $ref: '#/components/schemas/SyncPolicy' ignoreDifferences: type: array description: Resource fields to ignore when computing sync status. items: type: object properties: group: type: string description: Kubernetes API group. kind: type: string description: Kubernetes resource kind. jsonPointers: type: array items: type: string description: JSON Pointer paths to ignore. ApplicationSource: type: object description: Git or Helm chart source for the application manifests. required: - repoURL properties: repoURL: type: string description: URL of the Git repository or Helm chart repository. format: uri path: type: string description: Path within the repository where manifests are located. Used for Git repositories. targetRevision: type: string description: Git branch, tag, or commit SHA to deploy. Defaults to HEAD. chart: type: string description: Helm chart name. Used when repoURL points to a Helm registry. helm: type: object description: Helm-specific source configuration. properties: valueFiles: type: array items: type: string description: List of Helm value file paths. values: type: string description: Inline Helm values as a YAML string. releaseName: type: string description: Helm release name override. kustomize: type: object description: Kustomize-specific source configuration. properties: namePrefix: type: string description: Prefix to append to all resource names. nameSuffix: type: string description: Suffix to append to all resource names. images: type: array items: type: string description: List of image overrides in name=tag format. ApplicationStatus: type: object description: Observed state and operational status of an Argo CD application. properties: sync: type: object description: Current sync status. properties: status: type: string description: Sync status (Synced, OutOfSync, Unknown). enum: - Synced - OutOfSync - Unknown revision: type: string description: Deployed Git revision (commit SHA). health: type: object description: Current health status. properties: status: type: string description: Health status (Healthy, Progressing, Degraded, Suspended, Missing, Unknown). enum: - Healthy - Progressing - Degraded - Suspended - Missing - Unknown message: type: string description: Human-readable health status message. operationState: type: object description: State of the current or most recent operation. properties: phase: type: string description: Operation phase (Running, Failed, Succeeded, Error, Terminating). message: type: string description: Human-readable operation status message. startedAt: type: string format: date-time description: When the operation started. finishedAt: type: string format: date-time description: When the operation finished. ApplicationDestination: type: object description: Target Kubernetes cluster and namespace for application deployment. properties: server: type: string description: Kubernetes API server URL of the target cluster. Use https://kubernetes.default.svc for the in-cluster target. format: uri name: type: string description: Name of the registered cluster. Mutually exclusive with server. namespace: type: string description: Target namespace in the destination cluster. securitySchemes: bearerAuth: type: http scheme: bearer description: Bearer token obtained from the POST /session endpoint using username/password or from an external OIDC provider configured in Argo CD. externalDocs: description: Argo CD API Documentation url: https://argo-cd.readthedocs.io/en/stable/developer-guide/api-docs/