openapi: 3.1.0 info: title: Argo CD 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 externalDocs: description: Argo CD API Documentation url: https://argo-cd.readthedocs.io/en/stable/developer-guide/api-docs/ servers: - url: https://localhost/api/v1 description: Argo CD Server (default in-cluster address) tags: - name: Applications description: >- Operations for creating, querying, syncing, and deleting Argo CD GitOps applications. - name: Clusters description: >- Operations for registering and managing target Kubernetes clusters for application deployment. - name: Projects description: >- Operations for managing Argo CD projects that provide governance and access control for applications. - name: Repositories description: >- Operations for registering and managing Git and Helm chart repositories used as application sources. - name: Session description: >- Authentication operations for obtaining and invalidating bearer tokens. - name: Settings description: >- Operations for reading Argo CD server configuration and settings. - name: Version description: >- Server version information endpoint. security: - bearerAuth: [] 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 /projects: get: operationId: listProjects summary: Argo CD Argo List Projects description: >- Returns all Argo CD projects. Projects provide logical grouping, access control, and policy enforcement for applications. tags: - Projects responses: '200': description: List of projects. content: application/json: schema: $ref: '#/components/schemas/ProjectList' '401': description: Unauthorized. x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createProject summary: Argo CD Argo Create a Project description: >- Creates a new Argo CD project with the specified source repositories, destination clusters/namespaces, and resource allow/deny policies. tags: - Projects requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AppProject' responses: '200': description: Project created. content: application/json: schema: $ref: '#/components/schemas/AppProject' '400': description: Bad request. '401': description: Unauthorized. x-microcks-operation: delay: 0 dispatcher: FALLBACK /projects/{name}: get: operationId: getProject summary: Argo CD Argo Get a Project description: Returns the specification and detailed information for a named project. tags: - Projects parameters: - $ref: '#/components/parameters/projectNameParam' responses: '200': description: Project details. content: application/json: schema: $ref: '#/components/schemas/AppProject' '401': description: Unauthorized. '404': description: Project not found. x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteProject summary: Argo CD Argo Delete a Project description: >- Deletes the named Argo CD project. The project must have no associated applications before it can be deleted. tags: - Projects parameters: - $ref: '#/components/parameters/projectNameParam' responses: '200': description: Project deleted. '401': description: Unauthorized. '404': description: Project not found. x-microcks-operation: delay: 0 dispatcher: FALLBACK /repositories: get: operationId: listRepositories summary: Argo CD Argo List Repositories description: >- Returns all registered Git and Helm chart repositories, including their connection status and type. tags: - Repositories responses: '200': description: List of repositories. content: application/json: schema: $ref: '#/components/schemas/RepositoryList' '401': description: Unauthorized. x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createRepository summary: Argo CD Argo Register a Repository description: >- Registers a new Git or Helm chart repository with Argo CD. Supports HTTPS, SSH, and GitHub App authentication methods. tags: - Repositories requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Repository' responses: '200': description: Repository registered. content: application/json: schema: $ref: '#/components/schemas/Repository' '400': description: Bad request. '401': description: Unauthorized. x-microcks-operation: delay: 0 dispatcher: FALLBACK /repositories/{repo}: delete: operationId: deleteRepository summary: Argo CD Argo Delete a Repository description: Removes the named repository registration from Argo CD. tags: - Repositories parameters: - name: repo in: path required: true description: Repository URL (URL-encoded). schema: type: string responses: '200': description: Repository deleted. '401': description: Unauthorized. '404': description: Repository not found. x-microcks-operation: delay: 0 dispatcher: FALLBACK /clusters: get: operationId: listClusters summary: Argo CD Argo List Clusters description: >- Returns all registered Kubernetes clusters available as deployment targets for Argo CD applications. tags: - Clusters responses: '200': description: List of clusters. content: application/json: schema: $ref: '#/components/schemas/ClusterList' '401': description: Unauthorized. x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createCluster summary: Argo CD Argo Register a Cluster description: >- Registers a new Kubernetes cluster as a deployment target. The cluster must be reachable from the Argo CD server and the provided credentials must have sufficient permissions. tags: - Clusters requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Cluster' responses: '200': description: Cluster registered. content: application/json: schema: $ref: '#/components/schemas/Cluster' '400': description: Bad request. '401': description: Unauthorized. x-microcks-operation: delay: 0 dispatcher: FALLBACK /session: post: operationId: createSession summary: Argo CD Argo Create a Session (login) description: >- Authenticates with username and password or SSO token and returns a bearer token for use in subsequent API requests. tags: - Session security: [] requestBody: required: true content: application/json: schema: type: object required: [username, password] properties: username: type: string description: Argo CD local user username. password: type: string description: Argo CD local user password. responses: '200': description: Session created. Token returned. content: application/json: schema: type: object properties: token: type: string description: Bearer token for subsequent API calls. '401': description: Invalid credentials. x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteSession summary: Argo CD Argo Delete a Session (logout) description: Invalidates the current bearer token, logging out the authenticated user. tags: - Session responses: '200': description: Session deleted. '401': description: Unauthorized. x-microcks-operation: delay: 0 dispatcher: FALLBACK /version: get: operationId: getVersion summary: Argo CD Argo Get Server Version description: >- Returns the Argo CD server version, build date, Git commit SHA, Go version, and Kubernetes server version. tags: - Version security: [] responses: '200': description: Version information. content: application/json: schema: $ref: '#/components/schemas/VersionMessage' x-microcks-operation: delay: 0 dispatcher: FALLBACK /settings: get: operationId: getSettings summary: Argo CD Argo Get Server Settings description: >- Returns the Argo CD server configuration including OIDC settings, Helm settings, resource tracking method, and UI customization. tags: - Settings responses: '200': description: Server settings. content: application/json: schema: $ref: '#/components/schemas/Settings' '401': description: Unauthorized. x-microcks-operation: delay: 0 dispatcher: FALLBACK components: 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. 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 projectNameParam: name: name in: path required: true description: The name of the Argo CD project. schema: type: string schemas: 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' 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. 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. 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. 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. ApplicationList: type: object description: A list of Argo CD applications. properties: items: type: array description: Array of application objects. items: $ref: '#/components/schemas/Application' AppProject: type: object description: >- An Argo CD project providing logical grouping and RBAC for applications. properties: metadata: type: object properties: name: type: string description: Project name. spec: type: object description: Project specification. properties: description: type: string description: Human-readable project description. sourceRepos: type: array description: Allowed source repositories. Use '*' for any. items: type: string destinations: type: array description: Allowed destination clusters and namespaces. items: type: object properties: server: type: string description: Cluster server URL. namespace: type: string description: Allowed namespace pattern. clusterResourceWhitelist: type: array description: Allowed cluster-scoped resource types. items: type: object properties: group: type: string kind: type: string ProjectList: type: object description: A list of Argo CD projects. properties: items: type: array items: $ref: '#/components/schemas/AppProject' Repository: type: object description: A registered Git or Helm chart repository. properties: repo: type: string description: Repository URL. format: uri type: type: string description: Repository type. enum: [git, helm] name: type: string description: Human-readable repository name. connectionState: type: object description: Current connection status. properties: status: type: string description: Connection status (Successful, Failed, Unknown). message: type: string description: Status message. RepositoryList: type: object description: A list of registered repositories. properties: items: type: array items: $ref: '#/components/schemas/Repository' Cluster: type: object description: A registered Kubernetes cluster deployment target. properties: server: type: string description: Kubernetes API server URL. format: uri name: type: string description: Cluster display name. config: type: object description: Cluster connection configuration. properties: bearerToken: type: string description: Service account bearer token for cluster access. tlsClientConfig: type: object description: TLS client configuration. properties: insecure: type: boolean description: Skip TLS verification. info: type: object description: Cluster information. properties: serverVersion: type: string description: Kubernetes server version. applicationsCount: type: integer description: Number of applications targeting this cluster. ClusterList: type: object description: A list of registered clusters. properties: items: type: array items: $ref: '#/components/schemas/Cluster' 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. VersionMessage: type: object description: Argo CD server version information. properties: Version: type: string description: Argo CD version string. BuildDate: type: string description: Build date. GitCommit: type: string description: Git commit SHA of this build. GoVersion: type: string description: Go language version used to build. Platform: type: string description: Operating system and architecture. Settings: type: object description: Argo CD server configuration settings. properties: url: type: string description: External URL of the Argo CD server. format: uri dexConfig: type: string description: Dex OAuth provider configuration YAML. oidcConfig: type: string description: OIDC provider configuration YAML. statusBadgeEnabled: type: boolean description: Whether application status badges are enabled. googleAnalytics: type: object description: Google Analytics tracking configuration. properties: trackingID: type: string description: Google Analytics tracking ID. anonymizeUsers: type: boolean description: Anonymize user tracking data. help: type: object description: Help link configuration. properties: chatUrl: type: string description: URL for community chat (e.g., Slack). chatText: type: string description: Display text for the chat link.