Harness · Schema

servicev1Cluster

DevOpsGitOpsInternal Developer PortalLifecycleSoftware DeliveryCI/CDContinuous DeliveryContinuous Integration

Properties

Name Type Description
accountIdentifier string Account Identifier for the Entity.
orgIdentifier string Organization Identifier for the Entity.
projectIdentifier string Project Identifier for the Entity.
agentIdentifier string Agent identifier for entity.
identifier string
cluster object
createdAt string
lastModifiedAt string
stale boolean
tags object
secretExpressions object
View JSON Schema on GitHub

JSON Schema

harness-servicev1-cluster-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/harness/main/json-schema/harness-servicev1-cluster-schema.json",
  "title": "servicev1Cluster",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/harness-clusters-api-openapi.yml#/components/schemas/servicev1Cluster",
  "type": "object",
  "properties": {
    "accountIdentifier": {
      "type": "string",
      "description": "Account Identifier for the Entity."
    },
    "orgIdentifier": {
      "type": "string",
      "description": "Organization Identifier for the Entity."
    },
    "projectIdentifier": {
      "type": "string",
      "description": "Project Identifier for the Entity."
    },
    "agentIdentifier": {
      "type": "string",
      "description": "Agent identifier for entity."
    },
    "identifier": {
      "type": "string"
    },
    "cluster": {
      "$ref": "#/$defs/clustersCluster"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "lastModifiedAt": {
      "type": "string",
      "format": "date-time"
    },
    "stale": {
      "type": "boolean"
    },
    "tags": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "secretExpressions": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "$defs": {
    "clustersAWSAuthConfig": {
      "type": "object",
      "properties": {
        "clusterName": {
          "type": "string",
          "title": "ClusterName contains AWS cluster name"
        },
        "roleARN": {
          "type": "string",
          "description": "RoleARN contains optional role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain."
        }
      },
      "title": "AWSAuthConfig is an AWS IAM authentication configuration"
    },
    "clustersCluster": {
      "type": "object",
      "properties": {
        "server": {
          "type": "string",
          "title": "Server is the API server URL of the Kubernetes cluster"
        },
        "name": {
          "type": "string",
          "title": "Name of the cluster. If omitted, will use the server address"
        },
        "config": {
          "$ref": "#/$defs/clustersClusterConfig"
        },
        "connectionState": {
          "$ref": "#/$defs/commonsConnectionState"
        },
        "serverVersion": {
          "type": "string",
          "title": "DEPRECATED: use Info.ServerVersion field instead.\nThe server version"
        },
        "namespaces": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Holds list of namespaces which are accessible in that cluster. Cluster level resources will be ignored if namespace list is not empty."
        },
        "refreshRequestedAt": {
          "$ref": "#/$defs/v1Time"
        },
        "info": {
          "$ref": "#/$defs/clustersClusterInfo"
        },
        "shard_deprecated": {
          "type": "string",
          "format": "int64",
          "description": "DEPRECATED: use Shard field instead.\nShard contains optional shard number. Calculated on the fly by the application controller if not specified."
        },
        "clusterResources": {
          "type": "boolean",
          "description": "Indicates if cluster level resources should be managed. This setting is used only if cluster is connected in a namespaced mode."
        },
        "project": {
          "type": "string",
          "title": "Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "title": "Labels for cluster secret metadata"
        },
        "annotations": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "title": "Annotations for cluster secret metadata"
        },
        "type": {
          "$ref": "#/$defs/clustersClusterType"
        },
        "refreshRequestedAtTs": {
          "type": "string",
          "format": "date-time",
          "title": "refreshRequestedAtTs is the google timestamp variation of refreshRequestedAt"
        },
        "shard": {
          "type": "string",
          "format": "int64"
        }
      },
      "title": "Cluster is the definition of a cluster resource"
    },
    "clustersClusterCacheInfo": {
      "type": "object",
      "properties": {
        "resourcesCount": {
          "type": "string",
          "format": "int64",
          "title": "ResourcesCount holds number of observed Kubernetes resources"
        },
        "apisCount": {
          "type": "string",
          "format": "int64",
          "title": "APIsCount holds number of observed Kubernetes API count"
        },
        "lastCacheSyncTime": {
          "$ref": "#/$defs/v1Time"
        },
        "lastCacheSyncTimeTs": {
          "type": "string",
          "format": "date-time",
          "title": "lastCacheSyncTimeTs is the google timestamp variation of lastCacheSyncTime"
        }
      },
      "title": "ClusterCacheInfo contains information about the cluster cache"
    },
    "clustersClusterConfig": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string",
          "title": "Server requires Basic authentication"
        },
        "password": {
          "type": "string"
        },
        "bearerToken": {
          "type": "string",
          "description": "Server requires Bearer authentication. This client will not attempt to use\nrefresh tokens for an OAuth2 flow.\nTODO: demonstrate an OAuth2 compatible client."
        },
        "tlsClientConfig": {
          "$ref": "#/$defs/clustersTLSClientConfig"
        },
        "awsAuthConfig": {
          "$ref": "#/$defs/clustersAWSAuthConfig"
        },
        "execProviderConfig": {
          "$ref": "#/$defs/clustersExecProviderConfig"
        },
        "clusterConnectionType": {
          "type": "string",
          "title": "Identifies the authentication method used to connect to the cluster"
        },
        "roleARN": {
          "type": "string",
          "description": "RoleARN contains optional role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain."
        },
        "awsClusterName": {
          "type": "string",
          "description": "AWS Cluster name. If set then AWS CLI EKS token command will be used to access cluster."
        },
        "disableCompression": {
          "type": "boolean",
          "description": "DisableCompression bypasses automatic GZip compression requests to the server."
        },
        "proxyUrl": {
          "type": "string",
          "title": "ProxyURL is the URL to the proxy to be used for all requests send to the server"
        }
      },
      "description": "ClusterConfig is the configuration attributes. This structure is subset of the go-client\nrest.Config with annotations added for marshalling."
    },
    "clustersClusterInfo": {
      "type": "object",
      "properties": {
        "connectionState": {
          "$ref": "#/$defs/commonsConnectionState"
        },
        "serverVersion": {
          "type": "string",
          "title": "ServerVersion contains information about the Kubernetes version of the cluster"
        },
        "cacheInfo": {
          "$ref": "#/$defs/clustersClusterCacheInfo"
        },
        "applicationsCount": {
          "type": "string",
          "format": "int64",
          "title": "ApplicationsCount is the number of applications managed by Argo CD on the cluster"
        },
        "apiVersions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "APIVersions contains list of API versions supported by the cluster"
        }
      },
      "title": "ClusterInfo contains information about the cluster"
    },
    "clustersClusterType": {
      "type": "string",
      "enum": [
        "CUSTOMER_PROVIDED",
        "HARNESS_HOSTED"
      ],
      "default": "CUSTOMER_PROVIDED"
    },
    "clustersExecProviderConfig": {
      "type": "object",
      "properties": {
        "command": {
          "type": "string",
          "title": "Command to execute"
        },
        "args": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Arguments to pass to the command when executing it"
        },
        "env": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "title": "Env defines additional environment variables to expose to the process"
        },
        "apiVersion": {
          "type": "string",
          "title": "Preferred input version of the ExecInfo"
        },
        "installHint": {
          "type": "string",
          "title": "This text is shown to the user when the executable doesn't seem to be present"
        }
      },
      "title": "ExecProviderConfig is config used to call an external command to perform cluster authentication\nSee: https://godoc.org/k8s.io/client-go/tools/clientcmd/api#ExecConfig"
    },
    "clustersTLSClientConfig": {
      "type": "object",
      "properties": {
        "insecure": {
          "type": "boolean",
          "description": "Insecure specifies that the server should be accessed without verifying the TLS certificate. For testing only."
        },
        "serverName": {
          "type": "string",
          "description": "ServerName is passed to the server for SNI and is used in the client to check server\ncertificates against. If ServerName is empty, the hostname used to contact the\nserver is used."
        },
        "certData": {
          "type": "string",
          "format": "byte",
          "title": "CertData holds PEM-encoded bytes (typically read from a client certificate file).\nCertData takes precedence over CertFile"
        },
        "keyData": {
          "type": "string",
          "format": "byte",
          "title": "KeyData holds PEM-encoded bytes (typically read from a client certificate key file).\nKeyData takes precedence over KeyFile"
        },
        "caData": {
          "type": "string",
          "format": "byte",
          "title": "CAData holds PEM-encoded bytes (typically read from a root certificates bundle).\nCAData takes precedence over CAFile"
        }
      },
      "title": "TLSClientConfig contains settings to enable transport layer security"
    },
    "commonsConnectionState": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "title": "Status contains the current status indicator for the connection"
        },
        "message": {
          "type": "string",
          "title": "Message contains human readable information about the connection status"
        },
        "attemptedAt": {
          "$ref": "#/$defs/v1Time"
        },
        "attemptedAtTs": {
          "type": "string",
          "format": "date-time",
          "title": "attemptedAtTs is the google timestamp variation of attemptedAt"
        }
      },
      "title": "ConnectionState contains information about remote resource connection state, currently used for clusters and repositories"
    },
    "v1Time": {
      "type": "object",
      "properties": {
        "seconds": {
          "type": "string",
          "format": "int64",
          "description": "Represents seconds of UTC time since Unix epoch\n1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n9999-12-31T23:59:59Z inclusive."
        },
        "nanos": {
          "type": "integer",
          "format": "int32",
          "description": "Non-negative fractions of a second at nanosecond resolution. Negative\nsecond values with fractions must still have non-negative nanos values\nthat count forward in time. Must be from 0 to 999,999,999\ninclusive. This field may be limited in precision depending on context."
        }
      },
      "description": "Time is a wrapper around time.Time which supports correct\nmarshaling to YAML and JSON.  Wrappers are provided for many\nof the factory methods that the time package offers.\n\n+protobuf.options.marshal=false\n+protobuf.as=Timestamp\n+protobuf.options.(gogoproto.goproto_stringer)=false"
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/harness-servicev1-cluster"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.