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 |
JSON Schema
{
"$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.
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.