Source: kubernetes.js

/**
 * Methods for interacting with the Kubernetes endpoints<br>
 * {@link https://www.vultr.com/api/#tag/kubernetes}
 * @namespace kubernetes
 */

/**
 * Creates a Kubernetes cluster.<br>
 * {@link https://www.vultr.com/api/#operation/create-kubernetes-cluster}
 * @function createKubernetesCluster
 * @memberof kubernetes
 * @instance
 */
exports.createKubernetesCluster = {
  url: '/kubernetes/clusters',
  requestType: 'POST',
  apiKeyRequired: true,
  parameters: {
    label: { type: 'string' },
    region: {
      type: 'string',
      required: true
    },
    version: {
      type: 'string',
      required: true
    },
    node_pools: { type: 'array' }
  }
}

/**
 * Lists all currently deployed Kubernetes clusters.<br>
 * {@link https://www.vultr.com/api/#operation/list-kubernetes-clusters}
 * @function listKubernetesClusters
 * @memberof kubernetes
 * @instance
 */
exports.listKubernetesClusters = {
  url: '/kubernetes/clusters',
  requestType: 'GET',
  apiKeyRequired: true
}

/**
 * Gets information about a specified Kubernetes cluster.<br>
 * {@link https://www.vultr.com/api/#operation/get-kubernetes-clusters}
 * @function getKubernetesCluster
 * @memberof kubernetes
 * @instance
 */
exports.getKubernetesCluster = {
  url: '/kubernetes/clusters/{vke-id}',
  requestType: 'GET',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}

/**
 * Updates information in an existing Kubernetes cluster.<br>
 * {@link https://www.vultr.com/api/#operation/update-kubernetes-cluster}
 * @function updateKubernetesCluster
 * @memberof kubernetes
 * @instance
 */
exports.updateKubernetesCluster = {
  url: '/kubernetes/clusters/{vke-id}',
  requestType: 'PUT',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    },
    label: {
      type: 'string',
      required: true
    }
  }
}

/**
 * Deletes a specified Kubernetes cluster.<br>
 * {@link https://www.vultr.com/api/#operation/delete-kubernetes-cluster}
 * @function deleteKubernetesCluster
 * @memberof kubernetes
 * @instance
 */
exports.deleteKubernetesCluster = {
  url: '/kubernetes/clusters/{vke-id}',
  requestType: 'DELETE',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}

/**
 * Deletes a specified Kubernetes cluster and all its resources.<br>
 * {@link https://www.vultr.com/api/#operation/delete-kubernetes-cluster-vke-id-delete-with-linked-resources}
 * @function deleteKubernetesClusterAndResources
 * @memberof kubernetes
 * @instance
 */
exports.deleteKubernetesClusterAndResources = {
  url: '/kubernetes/clusters/{vke-id}/delete-with-linked-resources',
  requestType: 'DELETE',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}

/**
 * Gets info about the block storage and load balancers deployed by the specified Kubernetes cluster.<br>
 * {@link https://www.vultr.com/api/#operation/get-kubernetes-resources}
 * @function getKubernetesResources
 * @memberof kubernetes
 * @instance
 */
exports.getKubernetesResources = {
  url: '/kubernetes/clusters/{vke-id}/resources',
  requestType: 'GET',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}

/**
 * Create a NodePool for an existing Kubernetes cluster.<br>
 * {@link https://www.vultr.com/api/#operation/create-nodepools}
 * @function createNodePool
 * @memberof kubernetes
 * @instance
 */
exports.createNodePool = {
  url: '/kubernetes/clusters/{vke-id}/node-pools',
  requestType: 'POST',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    },
    node_quantity: {
      type: 'number',
      required: true
    },
    label: {
      type: 'string',
      required: true
    },
    plan: {
      type: 'string',
      required: true
    },
    tag: {
      type: 'string',
      required: false
    },
    auto_scaler: {
      type: 'boolean',
      required: false
    },
    min_nodes: {
      type: 'number',
      required: false
    },
    max_nodes: {
      type: 'number',
      required: false
    }
  }
}

/**
 * List all available NodePools on a specified Kubernetes cluster.<br>
 * {@link https://www.vultr.com/api/#operation/get-nodepools}
 * @function listNodePools
 * @memberof kubernetes
 * @instance
 */
exports.listNodePools = {
  url: '/kubernetes/clusters/{vke-id}/node-pools',
  requestType: 'GET',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}

/**
 * Get information about the NodePool on a Kubernetes cluster.<br>
 * {@link https://www.vultr.com/api/#operation/get-nodepool}
 * @function getNodePool
 * @memberof kubernetes
 * @instance
 */
exports.getNodePool = {
  url: '/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}',
  requestType: 'GET',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    },
    'nodepool-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}

/**
 * Updates a NodePool on an existing Kubernetes cluster.<br>
 * {@link https://www.vultr.com/api/#operation/update-nodepool}
 * @function updateNodePool
 * @memberof kubernetes
 * @instance
 */
exports.updateNodePool = {
  url: '/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}',
  requestType: 'PATCH',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    },
    'nodepool-id': {
      type: 'string',
      required: true,
      path: true
    },
    node_quantity: {
      type: 'number',
      required: true
    },
    tag: {
      type: 'string',
      required: false
    },
    auto_scaler: {
      type: 'boolean',
      required: false
    },
    min_nodes: {
      type: 'number',
      required: false
    },
    max_nodes: {
      type: 'number',
      required: false
    }
  }
}

/**
 * Deletes a specified NodePool from a Kubernetes cluster.<br>
 * {@link https://www.vultr.com/api/#operation/delete-nodepool}
 * @function deleteNodePool
 * @memberof kubernetes
 * @instance
 */
exports.deleteNodePool = {
  url: '/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}',
  requestType: 'DELETE',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    },
    'nodepool-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}

/**
 * Deletes a single NodePool instance from a specified NodePool.<br>
 * {@link https://www.vultr.com/api/#operation/delete-nodepool-instance}
 * @function deleteNodePoolInstance
 * @memberof kubernetes
 * @instance
 */
exports.deleteNodePoolInstance = {
  url: '/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}/nodes/{node-id}',
  requestType: 'DELETE',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    },
    'nodepool-id': {
      type: 'string',
      required: true,
      path: true
    },
    'node-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}

/**
 * Recycles a specified NodePool instance.<br>
 * {@link https://www.vultr.com/api/#operation/recycle-nodepool-instance}
 * @function recycleNodePoolInstance
 * @memberof kubernetes
 * @instance
 */
exports.recycleNodePoolInstance = {
  url: '/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}/nodes/{node-id}/recycle',
  requestType: 'POST',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    },
    'nodepool-id': {
      type: 'string',
      required: true,
      path: true
    },
    'node-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}

/**
 * Gets a specified Kubernetes cluster's Kubeconfig.<br>
 * {@link https://www.vultr.com/api/#operation/get-kubernetes-clusters-config}
 * @function getKubernetesClusterKubeconfig
 * @memberof kubernetes
 * @instance
 */
exports.getKubernetesClusterKubeconfig = {
  url: '/kubernetes/clusters/{vke-id}/config',
  requestType: 'GET',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}

/**
 * Get a list of all supported Kubernetes versions.<br>
 * {@link https://www.vultr.com/api/#operation/get-kubernetes-versions}
 * @function getKubernetesVersions
 * @memberof kubernetes
 * @instance
 */
exports.getKubernetesVersions = {
  url: '/kubernetes/versions',
  requestType: 'GET'
}

/**
 * Start a Kubernetes cluster upgrade.
 * {@link https://www.vultr.com/api/#operation/start-kubernetes-cluster-upgrade}
 * @function upgrades
 * @memberof kubernetes
 * @instance
 */
exports.upgrades = {
  url: '/kubernetes/clusters/{vke-id}/upgrades',
  requestType: 'POST',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    },
    upgrade_version: {
      type: 'string',
      required: true
    }
  }
}

/**
 * Get the available upgrades for the specified Kubernetes cluster.
 * {@link https://www.vultr.com/api/#operation/get-kubernetes-available-upgrades}
 * @function getKubernetesAvailableUpgrades
 * @memberof kubernetes
 * @instance
 */
exports.getKubernetesAvailableUpgrades = {
  url: '/kubernetes/clusters/{vke-id}/available-upgrades',
  requestType: 'GET',
  apiKeyRequired: true,
  parameters: {
    'vke-id': {
      type: 'string',
      required: true,
      path: true
    }
  }
}