openapi: 3.1.0 info: title: Linode API v4 Account Linode Kubernetes Engine (LKE) API description: The Linode API v4 provides programmatic access to the full range of Akamai Connected Cloud (formerly Linode) products and services. It enables developers to create and manage compute instances, deploy Kubernetes clusters, configure NodeBalancers, manage DNS domains, provision Block Storage volumes, control Object Storage buckets, set up firewalls, and administer account settings. The RESTful API uses OAuth and personal access tokens for authentication and returns JSON responses, with support for filtering and sorting across all resource endpoints. version: 4.189.0 contact: name: Linode Support url: https://www.linode.com/support/ termsOfService: https://www.linode.com/legal-tos/ servers: - url: https://api.linode.com/v4 description: Production Server security: - personalAccessToken: [] - oauth: [] tags: - name: Linode Kubernetes Engine (LKE) description: Deploy and manage Kubernetes clusters, node pools, and cluster configurations through the Linode Kubernetes Engine. paths: /lke/clusters: get: operationId: getLKEClusters summary: List Kubernetes clusters description: Returns a paginated list of all LKE clusters on your account. tags: - Linode Kubernetes Engine (LKE) parameters: - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/pageSizeParam' responses: '200': description: LKE clusters retrieved successfully content: application/json: schema: $ref: '#/components/schemas/PaginatedLKEClusterList' '401': description: Unauthorized - invalid or missing authentication post: operationId: createLKECluster summary: Create a Kubernetes cluster description: Creates a new LKE cluster with the specified configuration, including the Kubernetes version, region, and node pools. tags: - Linode Kubernetes Engine (LKE) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LKEClusterRequest' responses: '200': description: LKE cluster created successfully content: application/json: schema: $ref: '#/components/schemas/LKECluster' '400': description: Bad request - invalid parameters '401': description: Unauthorized - invalid or missing authentication /lke/clusters/{clusterId}: get: operationId: getLKECluster summary: Get a Kubernetes cluster description: Returns the details for a single LKE cluster. tags: - Linode Kubernetes Engine (LKE) parameters: - $ref: '#/components/parameters/clusterIdParam' responses: '200': description: LKE cluster retrieved successfully content: application/json: schema: $ref: '#/components/schemas/LKECluster' '401': description: Unauthorized - invalid or missing authentication '404': description: LKE cluster not found put: operationId: updateLKECluster summary: Update a Kubernetes cluster description: Updates the configuration for an LKE cluster. tags: - Linode Kubernetes Engine (LKE) parameters: - $ref: '#/components/parameters/clusterIdParam' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LKEClusterUpdateRequest' responses: '200': description: LKE cluster updated successfully content: application/json: schema: $ref: '#/components/schemas/LKECluster' '400': description: Bad request - invalid parameters '401': description: Unauthorized - invalid or missing authentication '404': description: LKE cluster not found delete: operationId: deleteLKECluster summary: Delete a Kubernetes cluster description: Deletes an LKE cluster and all associated node pools and nodes. tags: - Linode Kubernetes Engine (LKE) parameters: - $ref: '#/components/parameters/clusterIdParam' responses: '200': description: LKE cluster deleted successfully '401': description: Unauthorized - invalid or missing authentication '404': description: LKE cluster not found /lke/clusters/{clusterId}/pools: get: operationId: getLKENodePools summary: List node pools description: Returns a paginated list of node pools for a given LKE cluster. tags: - Linode Kubernetes Engine (LKE) parameters: - $ref: '#/components/parameters/clusterIdParam' - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/pageSizeParam' responses: '200': description: Node pools retrieved successfully content: application/json: schema: $ref: '#/components/schemas/PaginatedNodePoolList' '401': description: Unauthorized - invalid or missing authentication '404': description: LKE cluster not found post: operationId: createLKENodePool summary: Create a node pool description: Creates a new node pool for the specified LKE cluster. tags: - Linode Kubernetes Engine (LKE) parameters: - $ref: '#/components/parameters/clusterIdParam' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/NodePoolRequest' responses: '200': description: Node pool created successfully content: application/json: schema: $ref: '#/components/schemas/NodePool' '400': description: Bad request - invalid parameters '401': description: Unauthorized - invalid or missing authentication '404': description: LKE cluster not found /lke/clusters/{clusterId}/kubeconfig: get: operationId: getLKEClusterKubeconfig summary: Get kubeconfig description: Returns the base64-encoded kubeconfig for the specified LKE cluster, which can be used with kubectl to interact with the cluster. tags: - Linode Kubernetes Engine (LKE) parameters: - $ref: '#/components/parameters/clusterIdParam' responses: '200': description: Kubeconfig retrieved successfully content: application/json: schema: type: object properties: kubeconfig: type: string description: The base64-encoded kubeconfig content. '401': description: Unauthorized - invalid or missing authentication '404': description: LKE cluster not found /lke/versions: get: operationId: getLKEVersions summary: List Kubernetes versions description: Returns a list of available Kubernetes versions for LKE clusters. tags: - Linode Kubernetes Engine (LKE) responses: '200': description: Kubernetes versions retrieved successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/KubernetesVersion' components: schemas: LKEClusterRequest: type: object required: - label - region - k8s_version - node_pools properties: label: type: string minLength: 1 maxLength: 32 description: The label for the new cluster. region: type: string description: The region for the cluster. k8s_version: type: string description: The Kubernetes version for the cluster. tags: type: array items: type: string description: Tags for the cluster. node_pools: type: array items: $ref: '#/components/schemas/NodePoolRequest' description: Node pool configurations for the cluster. control_plane: type: object properties: high_availability: type: boolean description: Whether to enable high availability for the control plane. LKEClusterUpdateRequest: type: object properties: label: type: string minLength: 1 maxLength: 32 description: The label for the cluster. tags: type: array items: type: string description: Tags for the cluster. k8s_version: type: string description: The target Kubernetes version. control_plane: type: object properties: high_availability: type: boolean description: Whether to enable high availability. NodePool: type: object properties: id: type: integer description: The unique ID of this node pool. type: type: string description: The Linode type for nodes in this pool. count: type: integer description: The number of nodes in this pool. nodes: type: array items: type: object properties: id: type: string description: The unique ID of this node. instance_id: type: integer description: The Linode instance ID for this node. status: type: string enum: - ready - not_ready description: The status of this node. description: The nodes in this pool. autoscaler: type: object properties: enabled: type: boolean description: Whether the autoscaler is enabled. min: type: integer description: The minimum number of nodes. max: type: integer description: The maximum number of nodes. description: Autoscaler configuration for this pool. KubernetesVersion: type: object properties: id: type: string description: The Kubernetes version string. PaginatedLKEClusterList: allOf: - $ref: '#/components/schemas/Pagination' - type: object properties: data: type: array items: $ref: '#/components/schemas/LKECluster' LKECluster: type: object properties: id: type: integer description: The unique ID of this LKE cluster. label: type: string description: The label for this cluster. region: type: string description: The region where this cluster is located. k8s_version: type: string description: The Kubernetes version for this cluster. status: type: string enum: - ready - not_ready description: The current status of the cluster. tags: type: array items: type: string description: Tags for this cluster. control_plane: type: object properties: high_availability: type: boolean description: Whether the control plane is highly available. description: Control plane configuration for this cluster. created: type: string format: date-time description: When this cluster was created. updated: type: string format: date-time description: When this cluster was last updated. PaginatedNodePoolList: allOf: - $ref: '#/components/schemas/Pagination' - type: object properties: data: type: array items: $ref: '#/components/schemas/NodePool' Pagination: type: object properties: page: type: integer description: The current page number. pages: type: integer description: The total number of pages. results: type: integer description: The total number of results. NodePoolRequest: type: object required: - type - count properties: type: type: string description: The Linode type for nodes in this pool. count: type: integer minimum: 1 description: The number of nodes in this pool. autoscaler: type: object properties: enabled: type: boolean description: Whether to enable the autoscaler. min: type: integer description: The minimum number of nodes. max: type: integer description: The maximum number of nodes. parameters: clusterIdParam: name: clusterId in: path required: true schema: type: integer description: The ID of the LKE cluster. pageParam: name: page in: query schema: type: integer minimum: 1 default: 1 description: The page number to return. pageSizeParam: name: page_size in: query schema: type: integer minimum: 25 maximum: 500 default: 100 description: The number of items per page. securitySchemes: personalAccessToken: type: http scheme: bearer description: A personal access token generated from the Linode Cloud Manager that grants access to the API based on the token's scopes. oauth: type: oauth2 description: OAuth 2.0 authentication for third-party applications. flows: authorizationCode: authorizationUrl: https://login.linode.com/oauth/authorize tokenUrl: https://login.linode.com/oauth/token scopes: account:read_only: Read access to account information account:read_write: Read and write access to account information domains:read_only: Read access to domains domains:read_write: Read and write access to domains events:read_only: Read access to events events:read_write: Read and write access to events firewall:read_only: Read access to firewalls firewall:read_write: Read and write access to firewalls images:read_only: Read access to images images:read_write: Read and write access to images ips:read_only: Read access to IP addresses ips:read_write: Read and write access to IP addresses linodes:read_only: Read access to Linodes linodes:read_write: Read and write access to Linodes lke:read_only: Read access to LKE lke:read_write: Read and write access to LKE longview:read_only: Read access to Longview longview:read_write: Read and write access to Longview nodebalancers:read_only: Read access to NodeBalancers nodebalancers:read_write: Read and write access to NodeBalancers object_storage:read_only: Read access to Object Storage object_storage:read_write: Read and write access to Object Storage stackscripts:read_only: Read access to StackScripts stackscripts:read_write: Read and write access to StackScripts volumes:read_only: Read access to Volumes volumes:read_write: Read and write access to Volumes vpc:read_only: Read access to VPCs vpc:read_write: Read and write access to VPCs externalDocs: description: Linode API v4 Documentation url: https://techdocs.akamai.com/linode-api/reference/api