openapi: 3.0.0 info: description: | Pipeline is a feature rich application platform, built for containers on top of Kubernetes to automate the DevOps experience, continuous application development and the lifecycle of deployments. version: "latest" title: Pipeline API contact: email: info@banzaicloud.com license: name: Apache 2.0 url: 'http://www.apache.org/licenses/LICENSE-2.0.html' servers: - url: http://localhost:9090 tags: - name: clusters description: Clusters related functions - name: deployments description: Deployment related functions for a cluster - name: auth description: Auth related functions - name: secrets description: Secrets related functions - name: organizations description: Organizations related functions - name: common description: Common API functions - name: users description: Users related functions - name: info description: Cloud config related functions - name: storage description: Storage related functions - name: projects description: Google projects related operations - name: ark description: ARK service related functions - name: ark-buckets description: "ARK: buckets related functions" - name: ark-backups description: "ARK: backups related functions" - name: ark-schedules description: "ARK: schedules related functions" - name: ark-restores description: "ARK: restores related functions" paths: /api/version: get: description: Return Pipeline build and deployment info tags: - common responses: 200: description: Version info content: application/json: schema: $ref: '#/components/schemas/VersionResponse' /api/v1/orgs/{orgId}/clusters: parameters: - $ref: '#/components/parameters/orgId' post: security: - bearerAuth: [] tags: - clusters summary: Create cluster description: Create a new K8S cluster in the cloud operationId: CreateCluster requestBody: required: true content: application/json: schema: type: object ## oneOf not properly supported by generator #oneOf: # - $ref: '#/components/schemas/CreateClusterRequest' # - $ref: '#/components/schemas/CreateClusterRequestV2' examples: AKS: value: name: "azcluster-pipelineuser-123" location: "westeurope" cloud: "azure" instanceType: "Standard_D2_v2" properties: aks: $ref: '#/components/schemas/CreateAKSProperties' GKE: value: name: "gkecluster-pipelineuser-123" location: "us-central1-a" cloud: "google" instanceType: "n1-standard-1" properties: gke: $ref: '#/components/schemas/CreateGKEProperties' responses: 201: description: Cluster is already being created content: application/json: schema: $ref: '#/components/schemas/CreateClusterResponse_201' 202: description: Cluster created successfully content: application/json: schema: $ref: '#/components/schemas/CreateClusterResponse_202' default: $ref: '#/components/responses/Error' get: security: - bearerAuth: [] tags: - clusters summary: List clusters operationId: ListClusters description: Listing all the K8S clusters from the cloud responses: 200: description: All cluster listed content: application/json: schema: type: array items: $ref: '#/components/schemas/GetClusterStatusResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' get: security: - bearerAuth: [] tags: - clusters summary: Get cluster status description: Getting cluster status operationId: GetCluster responses: 200: description: Getting cluster succeeded content: application/json: schema: $ref: '#/components/schemas/GetClusterStatusResponse' default: $ref: '#/components/responses/Error' put: security: - bearerAuth: [] tags: - clusters summary: Update cluster description: Updating an existing K8S cluster operationId: UpdateClusterDeprecated requestBody: required: true content: application/json: schema: type: object ## oneOf not properly supported by generator #oneOf: # - $ref: '#/components/schemas/UpdateClusterRequestDeprecated' # - $ref: '#/components/schemas/UpdateClusterRequestV2' responses: 202: description: Cluster update accepted default: $ref: '#/components/responses/Error' delete: security: - bearerAuth: [] tags: - clusters summary: Delete cluster description: Deleting a K8S cluster operationId: DeleteCluster parameters: - name: force in: query description: Ignore errors during deletion schema: type: boolean default: false responses: 202: description: Cluster delete in progress 204: description: Cluster deleted default: $ref: '#/components/responses/Error' head: security: - bearerAuth: [] tags: - clusters summary: Get cluster status operationId: GetClusterStatus description: Getting the K8S cluster status responses: 200: description: Cluster exists default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/pods: get: security: - bearerAuth: [] tags: - clusters summary: Get pod details description: Getting pod details operationId: GetPodDetails parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: Getting cluster succeeded content: application/json: schema: $ref: '#/components/schemas/PodDetailsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/posthooks: put: security: - bearerAuth: [] tags: - clusters summary: Run posthook functions operationId: ClusterPostHooks description: Run posthook functions parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReRunPostHook' responses: 200: description: "Posthooks started" /api/v1/orgs/{orgId}/clusters/{id}/config: get: security: - bearerAuth: [] tags: - clusters summary: Get a cluster config operationId: GetClusterConfig description: Getting a K8S cluster config file parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: "Getting config file succeeded" content: application/json: schema: $ref: '#/components/schemas/ClusterConfig' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/oidcconfig: get: security: - bearerAuth: [] tags: - clusters summary: Get a cluster config with OIDC login operationId: GetOIDCClusterConfig description: Getting a K8S cluster config file with OIDC credentials parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: "Getting config file succeeded" content: application/json: schema: $ref: '#/components/schemas/ClusterConfig' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/endpoints: get: security: - bearerAuth: [] tags: - clusters summary: List service public endpoints operationId: ListClusterEndpoints description: List service public endpoints parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: releaseName in: query required: false description: Selected deployment release name schema: type: string responses: 200: description: "Endpoints listed" content: application/json: schema: $ref: '#/components/schemas/ListEndpointsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/nodes: get: security: - bearerAuth: [] tags: - clusters summary: List cluster nodes operationId: ListNodes description: List cluster nodes parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: "Nodes listed" content: application/json: schema: $ref: '#/components/schemas/ListNodesResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/secrets: get: security: - bearerAuth: [] tags: - clusters summary: List secrets which belongs to cluster operationId: ListClusterSecrets description: List secrets which belongs to cluster parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: releaseName in: query required: false description: Selected deployment release name schema: type: string responses: 200: description: "Secrets listed" content: application/json: schema: type: array items: $ref: '#/components/schemas/SecretItem' default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] tags: - clusters summary: Install secrets into cluster operationId: InstallSecrets description: Install secrets into cluster parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InstallSecretsRequest' responses: 200: description: "Secrets are installed into cluster" content: application/json: schema: type: array items: $ref: '#/components/schemas/InstallSecretResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/secrets/{secretName}: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: secretName in: path required: true description: Secret name as it will be seen in the cluster schema: type: string post: security: - bearerAuth: [] tags: - clusters summary: Install a particular secret into a cluster with optional remapping operationId: InstallSecret description: Install a particular secret into a cluster requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InstallSecretRequest' responses: 200: description: "secret is installed into the cluster" content: application/json: schema: $ref: '#/components/schemas/InstallSecretResponse' default: $ref: '#/components/responses/Error' patch: security: - bearerAuth: [] tags: - clusters summary: Merge a particular secret with an existing one with optional remapping operationId: MergeSecret description: Merge a particular secret with an existing one requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InstallSecretRequest' responses: 200: description: "secret is installed into the cluster" content: application/json: schema: $ref: '#/components/schemas/InstallSecretResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/bootstrap: get: security: - bearerAuth: [] tags: - clusters summary: Get cluster bootstrap info description: Get cluster bootstrap info operationId: GetClusterBootstrap parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: Getting bootstrap succeeded content: application/json: schema: $ref: '#/components/schemas/GetClusterBootstrapResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/scanlog: get: security: - bearerAuth: [] tags: - scanlog operationId: ListScans summary: List scans description: List scans parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: Scan listing content: application/json: schema: $ref: "#/components/schemas/ScanLogList" /api/v1/orgs/{orgId}/clusters/{id}/scanlog/{releaseName}: get: security: - bearerAuth: [] tags: - scanlog operationId: ListScansByRelease summary: List scans by release description: List scans by release parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: releaseName in: path required: true description: release name identification schema: type: string responses: 200: description: Scan listing content: application/json: schema: $ref: "#/components/schemas/ScanLogList" /api/v1/orgs/{orgId}/helm/repos: parameters: - $ref: '#/components/parameters/orgId' get: security: - bearerAuth: [] tags: - helm summary: List repositories operationId: HelmListRepos description: Listing Helm repositories in the cluster responses: 200: description: "Repositories listed" content: application/json: schema: $ref: '#/components/schemas/HelmReposListResponse' default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] tags: - helm summary: Add Repo operationId: HelmReposAdd description: Add new Helm repository requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/HelmReposAddRequest' responses: 200: description: "resource successfully added." content: application/json: schema: $ref: '#/components/schemas/HelmRepoListItem' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/helm/repos/{repoName}: parameters: - $ref: '#/components/parameters/orgId' - name: repoName in: path required: true description: Helm repo name schema: type: string delete: security: - bearerAuth: [] tags: - helm summary: Delete Repo operationId: HelmReposDelete description: Delete Helm repository responses: 200: description: "resource deleted successfully" content: application/json: schema: $ref: '#/components/schemas/HelmReposDeleteResponse' default: $ref: '#/components/responses/Error' put: security: - bearerAuth: [] tags: - helm summary: Modify Repo operationId: HelmReposModify description: Modify Helm repository requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/HelmReposModifyRequest' responses: 200: description: "resource modified successfully" content: application/json: schema: $ref: '#/components/schemas/HelmReposUpdateResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/helm/repos/{repoName}/update: put: security: - bearerAuth: [] tags: - helm summary: Update Repo operationId: HelmReposUpdate description: Modify Helm repository parameters: - $ref: '#/components/parameters/orgId' - name: repoName in: path required: true description: Helm repo name schema: type: string responses: 200: description: "resource modified successfully" content: application/json: schema: $ref: '#/components/schemas/HelmReposUpdateResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/helm/charts: get: security: - bearerAuth: [] tags: - helm summary: Chart List operationId: HelmChartList description: Get available Helm chart's list parameters: - $ref: '#/components/parameters/orgId' - name: name in: query required: false description: Chart Name schema: type: string - name: repo in: query required: false description: Repo Name schema: type: string - name: version in: query required: false description: Chart version (latest) schema: type: string responses: 200: description: "" content: application/json: schema: $ref: '#/components/schemas/HelmChartsListResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/helm/chart/{repoName}/{chartName}: get: security: - bearerAuth: [] tags: - helm summary: Chart details operationId: HelmChartDetails description: Get helm chart details parameters: - $ref: '#/components/parameters/orgId' - name: repoName in: path required: true description: Chart repository name schema: type: string - name: chartName in: path required: true description: Chart Name schema: type: string - name: version in: query required: false description: Chart version schema: type: string responses: 200: description: "" content: application/json: schema: $ref: '#/components/schemas/HelmChartDetailsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/helm/cluster-charts: get: security: - bearerAuth: [] tags: - helm summary: Current Chart List of Managed Clusters operationId: HelmCurrentClusterChartList description: Get the list of Helm charts currently used for managed clusters parameters: - $ref: '#/components/parameters/orgId' responses: 200: description: "" content: application/json: schema: $ref: '#/components/schemas/HelmClusterChartsListResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/deployments: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' get: security: - bearerAuth: [] tags: - deployments summary: List deployments operationId: ListDeployments description: Listing Helm deployments parameters: - name: tag in: query description: Deployment tag to filter for schema: type: string responses: 200: description: "Deployments listed" content: application/json: schema: $ref: '#/components/schemas/ListDeploymentsResponse' default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] tags: - deployments summary: Create a Helm deployment operationId: CreateDeployment description: Creating a Helm deployment requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateUpdateDeploymentRequest' responses: 201: description: "Deployment created successfully" content: application/json: schema: $ref: '#/components/schemas/CreateUpdateDeploymentResponse' default: $ref: '#/components/responses/Error' head: security: - bearerAuth: [] tags: - deployments summary: Get tiller status operationId: GetTillerStatus description: Checking if tiller ready to accept deployments responses: 200: description: "Tiller is available" default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/whitelists: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' get: security: - bearerAuth: [] tags: - whitelist summary: List Whitelisted deployments operationId: ListWhitelists description: List Whitelisted deployments responses: 200: description: "List Whitelists" content: application/json: schema: $ref: '#/components/schemas/ReleaseWhiteList' post: security: - bearerAuth: [] tags: - whitelist summary: Create Whitelisted deployment operationId: CreateWhitelists description: Create Whitelisted deployment requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReleaseWhiteListItem' responses: 200: description: "Whitelist created" /api/v1/orgs/{orgId}/clusters/{id}/whitelists/{name}: delete: security: - bearerAuth: [] tags: - whitelist summary: Delete Whitelisted deployment operationId: DeleteWhitelist description: Delete Whitelisted deployment parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: name in: path required: true description: Selected whitelist identification schema: type: string responses: 200: description: "Whitelist deleted" /api/v1/orgs/{orgId}/clusters/{id}/deployments/{name}: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: name in: path required: true description: Deployment name schema: type: string delete: security: - bearerAuth: [] tags: - deployments summary: Delete deployment operationId: DeleteDeployment description: Deleting a Helm deployment responses: 200: description: "Deployment deleted successfully" content: application/json: schema: $ref: '#/components/schemas/DeleteDeploymentResponse' default: $ref: '#/components/responses/Error' put: security: - bearerAuth: [] tags: - deployments summary: Update deployment operationId: UpdateDeployment description: Updating a Helm deployment requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateUpdateDeploymentRequest' responses: 201: description: "Deployment updated successfully" content: application/json: schema: $ref: '#/components/schemas/CreateUpdateDeploymentResponse' default: $ref: '#/components/responses/Error' head: security: - bearerAuth: [] tags: - deployments summary: Check deployment status operationId: HelmDeploymentStatus description: Checking the status of a deployment through the Helm client API responses: 200: description: "Deployment status is OK" 400: description: "Error during checking deployment status" 401: description: "Unauthorized" 404: description: "Deployment not found" get: security: - bearerAuth: [] tags: - deployments summary: Get deployment details operationId: GetDeployment description: Retrieves the details of a deployment parameters: - name: tag in: query required: false description: Deployment tag schema: type: string responses: 200: description: "Deployment details" content: application/json: schema: $ref: '#/components/schemas/GetDeploymentResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/deployments/{name}/resources: get: security: - bearerAuth: [] tags: - deployments summary: Get deployment K8s resources operationId: GetDeploymentResource description: Retrieves the K8s resources of a deployment parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: name in: path required: true description: Deployment name schema: type: string - name: resourceTypes in: query required: false description: K8s resource type schema: type: string responses: 200: description: "Deployment resources" content: application/json: schema: $ref: '#/components/schemas/GetDeploymentResourcesResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/deployments/{name}/images: get: security: - bearerAuth: [] tags: - deployments summary: Get deployment K8s images operationId: GetDeploymentImages description: Retrieves the K8s images of a deployment parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: name in: path required: true description: Deployment name schema: type: string responses: 200: description: "Deployment images" content: application/json: schema: $ref: '#/components/schemas/DeploymentImageList' default: $ref: '#/components/responses/Error' /api/v1/tokens: get: security: - bearerAuth: [] tags: - auth summary: List all API tokens operationId: ListTokens description: List all API tokens responses: 200: description: Tokens listed successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/TokenListResponseItem' default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] tags: - auth summary: Create token operationId: CreateToken description: Create token requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TokenCreateRequest' responses: 200: description: Token created successfully content: application/json: schema: $ref: '#/components/schemas/TokenCreateResponse' default: $ref: '#/components/responses/Error' /api/v1/tokens/{tokenId}: delete: security: - bearerAuth: [] tags: - auth summary: Delete an API token operationId: DeleteToken description: Delete an API token parameters: - name: tokenId in: path required: true description: Token identification schema: type: string example: a4358708-c525-4c78-89c2-c1cbe0f3f76c responses: 204: description: Token deleted successfully default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/secrets: parameters: - $ref: '#/components/parameters/orgId' get: security: - bearerAuth: [] tags: - secrets summary: List secrets operationId: GetSecrets description: Listing secrets parameters: - name: type in: query required: false description: Secret's type to filter with schema: type: string enum: [amazon, azure, google, kubernetes, generic, tls, ssh] - name: tags in: query required: false description: The selected tag to filter with schema: type: array items: type: string example: [ "release:pipeline-monitoring" ] - name: values in: query required: false description: Marks if to present secret values or just the keys schema: type: boolean responses: 200: description: Secrets listed content: application/json: schema: type: array items: $ref: '#/components/schemas/SecretItem' default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] tags: - secrets summary: Add secrets operationId: AddSecrets description: Adding secrets parameters: - name: validate in: query required: false description: validation is skipped or not schema: type: boolean requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateSecretRequest' responses: 201: description: Secret saved successfully content: application/json: schema: $ref: '#/components/schemas/CreateSecretResponse' default: $ref: '#/components/responses/Error' /api/v1/secret-types: get: security: - bearerAuth: [] tags: - secrets summary: List secret types operationId: ListSecretTypes description: List secret types definitions responses: 200: description: Success content: application/json: schema: type: object example: tls: fields: - name: hosts required: true - name: validity required: false additionalProperties: $ref: '#/components/schemas/SecretTypeResponse' default: $ref: '#/components/responses/Error' /api/v1/secret-types/{type}: get: security: - bearerAuth: [] tags: - secrets summary: Get a specific secret type operationId: GetSecretType description: Get a specific secret type and describe it's fields parameters: - name: type in: path required: true description: Secret type schema: type: string responses: 200: description: Success content: application/json: schema: $ref: '#/components/schemas/SecretTypeResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/secrets/{secretId}: parameters: - $ref: '#/components/parameters/orgId' - name: secretId in: path required: true description: Secret identification schema: type: string get: security: - bearerAuth: [] tags: - secrets summary: Get secret operationId: GetSecret description: Get secret responses: 200: description: Secret returned successfully content: application/json: schema: $ref: '#/components/schemas/SecretItem' default: $ref: '#/components/responses/Error' put: security: - bearerAuth: [] tags: - secrets summary: Update secrets operationId: UpdateSecrets description: Update secrets parameters: - name: validate in: query required: false description: validation is skipped or not schema: type: boolean requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateSecretRequest' responses: 200: description: Secret updated successfully content: application/json: schema: $ref: '#/components/schemas/CreateSecretResponse' 409: description: Conflict content: application/json: schema: $ref: '#/components/schemas/CommonError' examples: SecretAlreadyExists: value: code: 409 message: "Secret with this name already exists" error: "check-and-set parameter did not match the current version" default: $ref: '#/components/responses/Error' delete: security: - bearerAuth: [] tags: - secrets summary: Delete secrets operationId: DeleteSecrets description: Deleting secrets responses: 204: description: Secret deleted successfully default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/secrets/{secretId}/validate: get: security: - bearerAuth: [] tags: - secrets summary: Validate secret operationId: ValidateSecret description: Validate secret parameters: - $ref: '#/components/parameters/orgId' - name: secretId in: path required: true description: Secret identification schema: type: string responses: 200: description: Valid secret default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/secrets/{secretId}/tags: get: security: - bearerAuth: [] tags: - secrets summary: Get the tags of a secret operationId: GetSecretTags description: Get the tags of a secret parameters: - $ref: '#/components/parameters/orgId' - name: secretId in: path required: true description: Secret identification schema: type: string responses: 200: description: Secret tags returned successfully content: application/json: schema: $ref: '#/components/schemas/SecretTags' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/secrets/{secretId}/tags/{tag}: parameters: - $ref: '#/components/parameters/orgId' - name: secretId in: path required: true description: Secret identification schema: type: string - name: tag in: path required: true description: Tag schema: type: string put: security: - bearerAuth: [] tags: - secrets summary: Add a tag to a secret operationId: AddSecretTag description: Add a tag to a secret responses: 200: description: Secret tags returned successfully content: application/json: schema: $ref: '#/components/schemas/SecretTags' default: $ref: '#/components/responses/Error' delete: security: - bearerAuth: [] tags: - secrets summary: Delete a tag from a secret operationId: DeleteSecretTag description: Delete a tag from a secret responses: 204: description: Secret tag deleted successfully default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}: get: security: - bearerAuth: [] tags: - organizations summary: Get organization operationId: GetOrg description: Getting organization parameters: - $ref: '#/components/parameters/orgId' responses: 200: description: "Organization getting successfully" content: application/json: schema: $ref: '#/components/schemas/OrganizationListItemResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs: get: security: - bearerAuth: [] tags: - organizations summary: List organizations operationId: ListOrgs description: Listing organizations responses: 200: description: "Organizations listed successfully" content: application/json: schema: type: array items: $ref: '#/components/schemas/OrganizationListItemResponse' default: $ref: '#/components/responses/Error' put: security: - bearerAuth: [] tags: - organizations summary: Synchronize organizations operationId: SyncOrgs responses: 200: description: "Organizations synchronized successfully" default: $ref: '#/components/responses/Error' /api: get: tags: - common summary: List Pipeline API endpoints operationId: ListEndpoints description: Listing Pipeline API endpoint responses: 200: description: "Endpoints listed" content: application/json: schema: type: array items: type: string example: [ "/api/v1/orgs", "/api/v1/orgs/:orgId", ] /api/v1/orgs/{orgId}/users: get: security: - bearerAuth: [] tags: - users summary: List users operationId: ListUsers description: Listing users parameters: - $ref: '#/components/parameters/orgId' responses: 200: description: "Users listed" content: application/json: schema: $ref: '#/components/schemas/ListUserResponse' /api/v1/orgs/{orgId}/users/{userId}: get: security: - bearerAuth: [] tags: - users summary: Get user operationId: GetUsers description: Getting user parameters: - $ref: '#/components/parameters/orgId' - name: userId in: path required: true description: User identification schema: type: integer responses: 200: description: "Getting user succeeded" content: application/json: schema: $ref: '#/components/schemas/User' /api/v1/me: get: security: - bearerAuth: [] tags: - users summary: Get current user operationId: GetCurrentUser description: Get current user responses: 200: description: "Getting current user succeeded" content: application/json: schema: $ref: '#/components/schemas/User' default: $ref: '#/components/responses/Error' /api/v1/capabilities: get: tags: - pipeline summary: Lists configured Pipeline capabilities operationId: ListCapabilities description: Retrieve Pipeline capabilities responses: 200: description: "capabilities successfully returned" content: application/json: schema: type: object additionalProperties: type: object example: { "features": { "monitoring": { "enabled": true }, "securityScan": { "enabled": true, "managed": true }, "vault": { "enabled": true, "managed": false } } } /api/v1/orgs/{orgId}/azure/resourcegroups: parameters: - $ref: '#/components/parameters/orgId' get: security: - bearerAuth: [] tags: - info summary: Get all resource groups operationId: GetResourceGroups description: Get all resource groups parameters: - name: secretId in: header required: true description: Secret identifier schema: type: string responses: 200: description: "Azure resource groups listed" content: application/json: schema: type: array items: type: string example: [ "resourceGroup1", "resourceGroup2", ] default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] tags: - info summary: Create resource groups operationId: CreateResourceGroup description: Create resource groups requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateResourceGroup' responses: 201: description: "Azure resource group created" content: application/json: schema: $ref: '#/components/schemas/ResourceGroupCreated' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/buckets: parameters: - $ref: '#/components/parameters/orgId' get: security: - bearerAuth: [] tags: - storage summary: List object storage buckets operationId: ListObjectStoreBuckets description: List object store buckets accessible by the credentials referenced by the given secret. If no credentials provided all managed buckets are returned for all cloud types. parameters: - name: secretId in: header required: false description: Secret identification. If not provided only the managed buckets (those created via pipeline) are listed schema: type: string - name: cloudType in: query schema: type: string enum: [amazon, google, azure] required: false description: Identifies the cloud provider - mandatory if secretId header is provided - name: include in: query schema: type: string enum: [secret] required: false description: Signals whether the secret name is to be returned responses: 200: description: "Storage buckets listed" content: application/json: schema: $ref: '#/components/schemas/ListStorageBucketsResponse' default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] tags: - storage summary: Creates a new object store bucket with the given params operationId: CreateObjectStoreBucket description: Creates a new object store bucket on the Cloud provider referenced by the given secret. The credentials for creating the bucket is taken from the provided secret. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateObjectStoreBucketRequest' responses: 202: description: "Storage bucket creation request accepted" content: application/json: schema: $ref: '#/components/schemas/CreateObjectStoreBucketResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/buckets/{name}: parameters: - $ref: '#/components/parameters/orgId' - name: name in: path required: true description: Bucket identification schema: type: string delete: security: - bearerAuth: [] tags: - storage summary: Deletes the object store bucket with the given name operationId: DeleteObjectStoreBucket description: Deletes the object store bucket identified by the given name. The credentials for deleting the bucket is taken from the provided secret. parameters: - name: secretId in: header required: true description: Secret identification schema: type: string - name: cloudType in: query description: Identifies the cloud provider schema: type: string enum: [amazon, google, azure] required: true - name: force in: query description: Is the operation forced schema: type: boolean required: false - name: resourceGroup in: query description: Azure resource group the storage account that holds the bucket (storage container) to be deleted schema: type: string - name: storageAccount in: query description: Azure storage account to delete the bucket (storage container) from schema: type: string - name: location in: query description: The region to delete the bucket from. Required on Amazon cloud provider. schema: type: string responses: 200: description: "Storage bucket deleted successfully" default: $ref: '#/components/responses/Error' head: security: - bearerAuth: [] tags: - storage summary: Get object store bucket status operationId: GetObjectStoreBucketStatus description: Retrieves the status of the object store bucket given its name parameters: - name: secretId in: header description: Secret identification schema: type: string - name: secretName in: header description: Secret identification by name schema: type: string - name: cloudType in: query description: Identifies the cloud provider schema: type: string enum: [amazon, google, azure] required: true - name: resourceGroup in: query description: Azure resource group to lookup the bucket(storage container) under. Required only on Azure cloud provider. schema: type: string - name: storageAccount in: query description: Azure storage account to lookup the bucket(storage container) under. Required only on Azure cloud provider. schema: type: string - name: location in: query description: The region to lookup the bucket under. Required on Amazon provider. schema: type: string responses: 200: description: "Object store buckets exists" default: $ref: '#/components/responses/Error' get: security: - bearerAuth: [] tags: - storage summary: Get object store bucket details operationId: GetBucket description: Retrieves the details of the object store bucket given its name parameters: - name: secretId in: header description: Secret identification schema: type: string - name: secretName in: header description: Secret identification by name schema: type: string - name: cloudType in: query description: Identifies the cloud provider schema: type: string enum: [amazon, google, azure] required: true - name: resourceGroup in: query description: Azure resource group to lookup the bucket(storage container) under. Required only on Azure cloud provider. schema: type: string - name: storageAccount in: query description: Azure storage account to lookup the bucket(storage container) under. Required only on Azure cloud provider. schema: type: string - name: location in: query description: The region to lookup the bucket under. Required on Amazon cloud provider. schema: type: string responses: 200: description: Object store bucket details content: application/json: schema: $ref: '#/components/schemas/BucketInfo' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/networks: get: security: - bearerAuth: [] tags: - network summary: List VPC networks operationId: ListVPCNetworks description: List VPC networks accessible by the organization. parameters: - $ref: '#/components/parameters/orgId' - name: secretId description: Secret identification in: header required: true schema: type: string - name: cloudType description: Identifies the cloud provider in: query required: true schema: type: string enum: [amazon, google, azure] - name: region description: Identifies the region of the VPC network (required when cloudType != azure) in: query required: false schema: type: string - name: resourceGroup description: Identifies the resource group of the Azure virtual network (required when cloudType == azure) in: query required: false schema: type: string responses: 200: description: List of VPC networks content: application/json: schema: $ref: '#/components/schemas/ListVPCNetworksResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/networks/{networkId}/subnets: get: security: - bearerAuth: [] tags: - network summary: List VPC subnetworks operationId: ListVPCSubnets description: List subnetworks of the given VPC network parameters: - $ref: '#/components/parameters/orgId' - name: networkId description: VPC network identification in: path required: true schema: type: string - name: secretId description: Secret identification in: header required: true schema: type: string - name: cloudType description: Identifies the cloud provider in: query required: true schema: type: string enum: [amazon, google, azure] - name: region description: Identifies the region of the VPC network (required when cloudType != azure) in: query required: false schema: type: string - name: resourceGroup description: Identifies the resource group of the Azure virtual network (required when cloudType == azure) in: query required: false schema: type: string responses: 200: description: List of VPC network subnets content: application/json: schema: $ref: '#/components/schemas/ListVPCSubnetsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/networks/{networkId}/routeTables: get: security: - bearerAuth: [] tags: - network summary: List VPC route tables operationId: ListRouteTables description: List route tables of the given VPC network parameters: - $ref: '#/components/parameters/orgId' - name: networkId description: VPC network identification in: path required: true schema: type: string - name: secretId description: Secret identification in: header required: true schema: type: string - name: cloudType description: Identifies the cloud provider in: query required: true schema: type: string enum: [amazon, google, azure] - name: region description: Identifies the region of the VPC network (required when cloudType != azure) in: query required: false schema: type: string - name: resourceGroup description: Identifies the resource group of the Azure virtual network (required when cloudType == azure) in: query required: false schema: type: string responses: 200: description: List of VPC network route tables content: application/json: schema: $ref: '#/components/schemas/ListRouteTablesResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/images: get: security: - bearerAuth: [] tags: - images summary: List Images used in cluster operationId: ListImages description: List Images used in cluster parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: "List Images" content: application/json: schema: $ref: '#/components/schemas/ClusterImageList' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/images/{imageDigest}/deployments: get: security: - bearerAuth: [] tags: - images summary: List Deployments by Image operationId: ListDeploymentsByImage description: List Deployments by Image parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: imageDigest in: path required: true description: Image digest schema: type: string responses: 200: description: "List Images" content: application/json: schema: $ref: '#/components/schemas/ListDeploymentsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/pke/leader: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' get: security: - bearerAuth: [] tags: - clusters summary: Query cluster leader operationId: GetLeaderElection responses: 200: description: Success content: application/json: schema: $ref: '#/components/schemas/GetLeaderElectionResponse' default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] tags: - clusters summary: Apply as new cluster leader operationId: PostLeaderElection requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostLeaderElectionRequest' responses: 201: description: Application successful content: application/json: schema: $ref: '#/components/schemas/PostLeaderElectionResponse' 409: description: Leader already elected content: application/json: schema: $ref: '#/components/schemas/PostLeaderElectionResponse' default: $ref: '#/components/responses/Error' delete: security: - bearerAuth: [] tags: - clusters summary: Delete cluster leader operationId: DeleteLeaderElection responses: 200: description: Leader deletion successful default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/pke/ready: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' get: summary: Query reported node readiness information operationId: GetReadyPKENode security: - bearerAuth: [] tags: - clusters responses: 200: description: Readiness information content: application/json: schema: $ref: '#/components/schemas/PKEClusterReadinessResponse' default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] tags: - clusters summary: Report to Pipeline that a new node is ready (to be called by PKE installer) operationId: PostReadyPKENode requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostReadyPKENodeRequest' responses: 200: description: "Success" content: application/json: schema: type: object example: {} default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/pke/status: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' post: security: - bearerAuth: [] tags: - clusters summary: Report to Pipeline the progress of the bootstrapping of a new node (to be called by PKE installer) operationId: ReportPKENodeStatus requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReportPKENodeStatusRequest' responses: 202: description: "Success" content: application/json: schema: $ref: '#/components/schemas/ReportPKENodeStatusResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/pke/commands: get: security: - bearerAuth: [] tags: - clusters summary: List bootstrap commands for namespaces description: Get the commands to use for bootstrapping nodes of a PKE cluster in each nodepool operationId: GetPKECommands parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: "Map of nodepool names to commands to use" content: application/json: schema: $ref: '#/components/schemas/GetPKECommandsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/namespaces: get: security: - bearerAuth: [] tags: - clusters summary: Lists namespaces for a cluster description: Lists namespaces for a cluster operationId: ListNamespaces parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: Namespaces listed content: application/json: schema: $ref: '#/components/schemas/NamespaceListResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/namespaces/{namespace}: delete: security: - bearerAuth: [] tags: - clusters summary: Delete namespace from a cluster description: Delete namespace from a cluster operationId: DeleteNamespace parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: namespace in: path description: Kubernetes namespace required: true schema: type: string responses: 202: description: Namespace deletion started default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/cloud/google/projects: get: security: - bearerAuth: [] tags: - google summary: Retrieves projects visible for the user identified by the secret id operationId: ListProjects description: Retrieves projects visible by the user represented by the secretId header from the google cloud parameters: - $ref: '#/components/parameters/orgId' - name: secretId in: query required: true description: Secret identification. schema: type: string responses: 200: description: "List of projects visible for the user" content: application/json: schema: $ref: '#/components/schemas/GoogleProjects' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/backupservice/enable: post: security: - bearerAuth: [] tags: - ark summary: Enable ARK service description: Enable ARK service operationId: EnableARK parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EnableARKRequest' responses: 200: description: ARK service deployed successfully content: { application/json: { schema: { $ref: '#/components/schemas/EnableARKResponse' } } } default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/backupservice/disable: post: security: - bearerAuth: [] tags: - ark summary: Disable ARK service description: Disable ARK service operationId: DisableARK parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: ARK service removed successfully content: application/json: schema: $ref: '#/components/schemas/DisableARKResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/backupservice/status: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' head: security: - bearerAuth: [] tags: - ark summary: Check ARK service status description: Check ARK service status operationId: CheckARKStatus responses: 200: description: ARK service running default: $ref: '#/components/responses/Error' get: security: - bearerAuth: [] tags: - ark summary: Check ARK service status description: Check ARK service status operationId: CheckARKStatusGET responses: 200: description: ARK service running content: application/json: schema: $ref: '#/components/schemas/BackupServiceStatusResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/backupbuckets: parameters: - $ref: '#/components/parameters/orgId' post: security: - bearerAuth: [] tags: - ark-buckets summary: Create backup bucket description: Create backup bucket operationId: CreateBackupBucket requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateBackupBucketRequest' responses: 200: description: Backup bucket added successfully content: application/json: schema: $ref: '#/components/schemas/CreateBackupBucketResponse' default: $ref: '#/components/responses/Error' get: security: - bearerAuth: [] tags: - ark-buckets summary: List backup buckets description: List backup buckets operationId: ListBackupBuckets responses: 200: description: All buckets listed content: application/json: schema: $ref: '#/components/schemas/ListBackupBucketsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/backupbuckets/{bucketId}: parameters: - $ref: '#/components/parameters/orgId' - { name: bucketId, in: path, required: true, description: ID of the bucket, schema: { type: integer } } get: security: - bearerAuth: [] tags: - ark-buckets summary: Get backup bucket by ID description: Get backup bucket by ID operationId: GetBackupBucket responses: 200: description: Getting backup succeeded content: application/json: schema: $ref: '#/components/schemas/GetBackupBucketResponse' default: $ref: '#/components/responses/Error' delete: security: - bearerAuth: [] tags: - ark-buckets summary: Delete backup bucket by ID description: Delete backup bucket by ID operationId: DeleteBackupBucket responses: 200: description: Deleting backup succeeded content: application/json: schema: $ref: '#/components/schemas/DeleteBackupBucketResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/backupbuckets/sync: put: security: - bearerAuth: [] tags: - ark-buckets summary: Sync backup buckets description: Sync backup buckets operationId: SyncBackupBucket parameters: - $ref: '#/components/parameters/orgId' responses: 200: description: Backup buckets synced successfully default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/backups: get: security: - bearerAuth: [] tags: - ark-backups summary: List ARK backups of an Organization description: List ARK backups of an Organization operationId: ListARKBackupsForOrganization parameters: - $ref: '#/components/parameters/orgId' responses: 200: description: All backups listed content: application/json: schema: $ref: '#/components/schemas/ListBackupsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/backups/sync: put: security: - bearerAuth: [] tags: - ark-backups summary: Sync ARK backups of an Organization description: Sync ARK backups of an Organization operationId: SyncOrgBackups parameters: - $ref: '#/components/parameters/orgId' responses: 200: description: Backups synced successfully default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/update: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' put: security: - bearerAuth: [] tags: - clusters summary: Update an existing cluster description: | Update the settings of an existing cluster. Changing some settings (like Kubernetes version) might trigger a rolling update. operationId: UpdateCluster requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateClusterRequest' responses: 202: description: Accepted default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/backups: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' post: security: - bearerAuth: [] tags: - ark-backups summary: Create ARK backup description: Create ARK backup of a cluster operationId: CreateARKBackupOfACluster requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateBackupRequest' responses: 200: description: Backup created successfully content: application/json: schema: $ref: '#/components/schemas/CreateBackupResponse' default: $ref: '#/components/responses/Error' get: security: - bearerAuth: [] tags: - ark-backups summary: List ARK backups of a cluster description: List ARK backups of a cluster operationId: ListARKBackupsOfACluster responses: 200: description: All backups listed content: application/json: schema: $ref: '#/components/schemas/ListBackupsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/backups/sync: put: security: - bearerAuth: [] tags: - ark-backups summary: Sync ARK backups of a cluster description: Sync ARK backups of a cluster operationId: SyncARKBackupsOfACluster parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: Backups synced successfully default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/backups/{backupId}: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - { name: backupId, in: path, required: true, description: ID of the backup, schema: { type: integer } } get: security: - bearerAuth: [] tags: - ark-backups summary: Get ARK backup description: Get ARK backup operationId: GetARKBackup responses: 200: description: Getting backup succeeded content: application/json: schema: $ref: '#/components/schemas/GetBackupResponse' default: $ref: '#/components/responses/Error' delete: security: - bearerAuth: [] tags: - ark-backups summary: Delete ARK backup description: Delete ARK backup operationId: DeleteARKBackup responses: 200: description: Backup removed successfully content: application/json: schema: $ref: '#/components/schemas/DeleteBackupResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/backups/{backupId}/logs: get: security: - bearerAuth: [] tags: - ark-backups summary: Get ARK backup logs description: Get ARK backup logs operationId: GetARKBackupLogs parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - { name: backupId, in: path, required: true, description: ID of the backup, schema: { type: integer } } responses: 200: description: Getting backup logs succeeded content: text/plain: schema: type: string example: > time="2018-09-10T00:23:33Z" level=info msg="Not including resource" groupResource=events logSource="pkg/restore/restore.go:124" time="2018-09-10T00:23:33Z" level=info msg="Not including resource" groupResource=nodes logSource="pkg/restore/restore.go:124" time="2018-09-10T00:23:33Z" level=info msg="Not including resource" default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/backups/{backupId}/download: get: security: - bearerAuth: [] tags: - ark-backups summary: Download ARK backup contents description: Download ARK backup contents operationId: DownloadARKBackupContents parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - { name: backupId, in: path, required: true, description: ID of the backup, schema: { type: integer } } responses: 200: description: Getting backup contents succeeded content: application/x-gzip: schema: type: string format: file default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/schedules: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' post: security: - bearerAuth: [] tags: - ark-schedules summary: Create ARK schedule description: Create ARK schedule operationId: CreateARKSchedule requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateScheduleRequest' responses: 200: description: Schedule created successfully content: application/json: schema: $ref: '#/components/schemas/CreateScheduleResponse' default: $ref: '#/components/responses/Error' get: security: - bearerAuth: [] tags: - ark-schedules summary: List ARK schedules description: List ARK schedules operationId: ListARKSchedules responses: 200: description: Schedules listed successfully content: { application/json: { schema: { $ref: '#/components/schemas/ListSchedulesResponse' } } } default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/schedules/{scheduleName}: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - { name: scheduleName, in: path, required: true, description: Name of the schedule, schema: { type: string } } get: security: - bearerAuth: [] tags: - ark-schedules summary: Get ARK schedule description: Get ARK schedule operationId: GetARKSchedule responses: 200: description: Schedule retrieved succeeded content: application/json: schema: $ref: '#/components/schemas/ScheduleResponse' default: $ref: '#/components/responses/Error' delete: security: - bearerAuth: [] tags: - ark-schedules summary: Delete ARK schedule description: Delete ARK schedule operationId: DeleteARKSchedule responses: 200: description: Schedule delete succeeded content: application/json: schema: $ref: '#/components/schemas/DeleteScheduleResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/restores: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' post: security: - bearerAuth: [] tags: - ark-restores summary: Create ARK restore description: Create ARK restore operationId: CreateARKRestore requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateRestoreRequest' responses: 200: description: Restore created successfully content: application/json: schema: $ref: '#/components/schemas/CreateRestoreResponse' default: $ref: '#/components/responses/Error' get: security: - bearerAuth: [] tags: - ark-restores summary: List ARK restores description: List ARK restores operationId: ListARKRestores responses: 200: description: Restores listed successfully content: { application/json: { schema: { $ref: '#/components/schemas/ListRestoresResponse' } } } default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/restores/sync: put: security: - bearerAuth: [] tags: - ark-restores summary: Sync ARK restores of a cluster description: Sync ARK restores of a cluster operationId: SyncARKRestoresOfACluster parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: Restores synced successfully default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/restores/{restoreId}: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - { name: restoreId, in: path, required: true, description: ID of the restore, schema: { type: integer } } get: security: - bearerAuth: [] tags: [ ark-restores ] summary: Get ARK restore description: Get ARK restore operationId: GetARKRestore responses: 200: description: Restore retrieved successfully content: { application/json: { schema: { $ref: '#/components/schemas/GetRestoreResponse' } } } default: $ref: '#/components/responses/Error' delete: security: - bearerAuth: [] tags: [ ark-restores ] summary: Delete ARK restore description: Delete ARK restore operationId: DeleteARKRestore responses: 200: description: Restore deleted successfully content: { application/json: { schema: { $ref: '#/components/schemas/DeleteRestoreResponse' } } } default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/restores/{restoreId}/results: get: security: - bearerAuth: [] tags: [ ark-restores ] summary: Get ARK restore results description: Get ARK restore results operationId: GetARKRestoreResuts parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - { name: restoreId, in: path, required: true, description: ID of the restore, schema: { type: integer } } responses: 200: description: Restore retrieved successfully content: { application/json: { schema: { $ref: '#/components/schemas/GetRestoreResultsResponse' } } } default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgid}/clustergroups: parameters: - $ref: '#/components/parameters/orgId' get: security: - bearerAuth: [] summary: List Cluster Groups of an Organization tags: - clustergroups description: retrieve list of cluster groups of an organization responses: "200": description: OK content: application/json: schema: items: $ref: "#/components/schemas/api.ClusterGroup" type: array default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] summary: Create Cluster Group tags: - clustergroups description: create a group of clusters, joining clusters together with a name requestBody: content: application/json: schema: $ref: "#/components/schemas/api.CreateRequest" description: Create Cluster Group Request required: true responses: 201: description: Created content: application/json: schema: $ref: "#/components/schemas/api.CreateResponse" default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgid}/clustergroups/{clusterGroupId}: parameters: - $ref: '#/components/parameters/orgId' - description: Cluster Group ID in: path name: clusterGroupId required: true schema: type: integer delete: security: - bearerAuth: [] summary: Delete Cluster Group tags: - clustergroups description: delete a cluster group, disable all enabled features, delete related deployments responses: 200: description: OK content: application/json: schema: type: string default: $ref: '#/components/responses/Error' get: security: - bearerAuth: [] summary: Get Cluster Group tags: - clustergroups description: retrieve info about a cluster group, members, status of member clusters, features responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/api.ClusterGroup" default: $ref: '#/components/responses/Error' put: security: - bearerAuth: [] summary: Update Cluster Group tags: - clustergroups description: update name & member clusters for a cluster group requestBody: content: application/json: schema: $ref: "#/components/schemas/api.UpdateRequest" description: Update Cluster Group Request required: true responses: 202: description: Accepted content: application/json: schema: $ref: "#/components/schemas/api.UpdateResponse" default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgid}/clustergroups/{clusterGroupId}/deployments: parameters: - $ref: '#/components/parameters/orgId' - description: Cluster Group ID in: path name: clusterGroupId required: true schema: type: integer get: security: - bearerAuth: [] summary: Get All Deployments of a Cluster Group tags: - clustergroup deployments description: retrieve all deployments from a cluster group responses: 200: description: OK content: application/json: schema: items: $ref: "#/components/schemas/deployment.ListDeploymentResponse" type: array default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] summary: Create Cluster Group Deployment tags: - clustergroup deployments description: creates a new cluster group deployment, installs or upgrades deployment on each member cluster accordingly requestBody: content: application/json: schema: $ref: "#/components/schemas/deployment.ClusterGroupDeployment" description: Deployment Create Request required: true responses: 201: description: Multi-cluster deployment has been created successfully. All install / upgrade operations on all targeted clusters returned with no errors. content: application/json: schema: $ref: "#/components/schemas/deployment.CreateUpdateDeploymentResponse" 207: $ref: "#/components/responses/PartialFailure" default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgid}/clustergroups/{clusterGroupId}/deployments/{deploymentName}: parameters: - $ref: '#/components/parameters/orgId' - description: Cluster Group ID in: path name: clusterGroupId required: true schema: type: integer - description: release name of a cluster group deployment in: path name: deploymentName required: true schema: type: string delete: security: - bearerAuth: [] summary: Delete Cluster Group Deployment tags: - clustergroup deployments description: deletes a cluster group deployment, also deleting deployments from member clusters parameters: - description: if true cluster group deployment gets deleted even if some deployments can not be deleted from each target cluster in: query name: force schema: type: boolean responses: 202: description: Multi-cluster deployment has been deleted successfully. All delete operations on all targeted clusters returned with no errors. content: application/json: schema: $ref: "#/components/schemas/deployment.TargetClusterStatus" 207: $ref: "#/components/responses/PartialFailure" default: $ref: '#/components/responses/Error' get: security: - bearerAuth: [] summary: Get Cluster Group Deployment tags: - clustergroup deployments description: retrieve info about a cluster group deployment and it's status on each member cluster responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/deployment.DeploymentInfo" default: $ref: '#/components/responses/Error' put: security: - bearerAuth: [] summary: Update Cluster Group Deployment tags: - clustergroup deployments description: updates a cluster group deployment, installs or upgrades deployment on each member cluster accordingly requestBody: content: application/json: schema: $ref: "#/components/schemas/deployment.ClusterGroupDeployment" description: Deployment Update Request required: true responses: 202: description: Multi-cluster deployment has been updated successfully. All upgrade / install operations on all targeted clusters returned with no errors. content: application/json: schema: $ref: "#/components/schemas/deployment.CreateUpdateDeploymentResponse" 207: $ref: "#/components/responses/PartialFailure" default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgid}/clustergroups/{clusterGroupId}/deployments/{deploymentName}/sync: put: security: - bearerAuth: [] summary: Synchronize Cluster Group Deployment tags: - clustergroup deployments description: install / upgrade deployment to target clusters where deployment is not found or has wrong parameters: - $ref: '#/components/parameters/orgId' - description: Cluster Group ID in: path name: clusterGroupId required: true schema: type: integer - description: release name of a cluster group deployment in: path name: deploymentName required: true schema: type: string responses: 202: description: Multi-cluster deployment has been synced successfully. All upgrade / install operations on all targeted clusters returned with no errors. content: application/json: schema: $ref: "#/components/schemas/deployment.TargetClusterStatus" 207: $ref: "#/components/responses/PartialFailure" default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgid}/clustergroups/{clusterGroupId}/features: get: security: - bearerAuth: [] summary: Get All Features of Cluster Group tags: - clustergroup features description: retrieve info about a cluster group feature and it's status on each member cluster parameters: - $ref: '#/components/parameters/orgId' - description: Cluster Group ID in: path name: clusterGroupId required: true schema: type: integer responses: 200: description: OK content: application/json: schema: items: $ref: "#/components/schemas/api.FeatureResponse" type: array default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgid}/clustergroups/{clusterGroupId}/features/{featureName}: parameters: - $ref: '#/components/parameters/orgId' - description: Cluster Group ID in: path name: clusterGroupId required: true schema: type: integer - description: Name of the feature in: path name: featureName required: true schema: type: string delete: security: - bearerAuth: [] summary: Disable Feature of Cluster Group tags: - clustergroup features description: disable feature on all members of a cluster group responses: 200: description: OK content: application/json: schema: type: string default: $ref: '#/components/responses/Error' get: security: - bearerAuth: [] summary: Get Feature of Cluster Group tags: - clustergroup features description: retrieve info about a cluster group feature and it's status on each member cluster responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/api.FeatureResponse" default: $ref: '#/components/responses/Error' post: security: - bearerAuth: [] summary: Enable Feature of Cluster Group tags: - clustergroup features description: enable feature on all members of a cluster group requestBody: $ref: "#/components/requestBodies/api.FeatureRequest" responses: 202: description: Accepted content: application/json: schema: type: string default: $ref: '#/components/responses/Error' put: security: - bearerAuth: [] summary: Update Feature of Cluster Group tags: - clustergroup features description: update properties of a feature requestBody: $ref: "#/components/requestBodies/api.FeatureRequest" responses: 200: description: OK content: application/json: schema: type: string default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/services: get: operationId: ListIntegratedServices summary: List enabled integrated services of a cluster tags: - integrated services security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: Success content: application/json: schema: $ref: "#/components/schemas/IntegratedServiceList" default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/services/{serviceName}: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: serviceName in: path description: service name required: true schema: type: string get: operationId: IntegratedServiceDetails summary: Get details of an integrated service tags: - integrated services security: - bearerAuth: [] responses: 200: description: Success content: application/json: schema: $ref: "#/components/schemas/IntegratedServiceDetails" default: $ref: '#/components/responses/Error' post: operationId: ActivateIntegratedService summary: Activate an integrated service tags: - integrated services security: - bearerAuth: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ActivateIntegratedServiceRequest" responses: 202: description: Accepted default: $ref: '#/components/responses/Error' delete: operationId: DeactivateIntegratedService summary: Deactivate an integrated service tags: - integrated services security: - bearerAuth: [] responses: 204: description: No Content default: $ref: '#/components/responses/Error' put: operationId: UpdateIntegratedService summary: Update an integrated service tags: - integrated services security: - bearerAuth: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/UpdateIntegratedServiceRequest" responses: 202: description: Accepted default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/nodepools: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' post: operationId: CreateNodePool summary: Create new node pool description: Add new node pool to a cluster security: - bearerAuth: [] tags: - clusters requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateNodePoolRequest' responses: 202: description: Node pool creation in progress default: $ref: '#/components/responses/Error' get: operationId: ListNodePools summary: List node pools security: - bearerAuth: [] tags: - clusters responses: 200: description: Node pool list content: application/json: schema: $ref: '#/components/schemas/ListNodePoolsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/nodepools/{name}: parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: name in: path description: Node pool name required: true schema: type: string delete: operationId: DeleteNodePool summary: Delete a node pool description: Delete a node pool from a cluster. security: - bearerAuth: [] tags: - clusters responses: 202: description: Node pool delete in progress 204: description: Node pool deleted default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/nodepools/{name}/update: post: operationId: UpdateNodePool summary: Update an existing node pool security: - bearerAuth: [] tags: - clusters parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: name in: path description: Node pool name required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateNodePoolRequest' responses: 202: description: Node pool update in progress content: application/json: schema: $ref: '#/components/schemas/UpdateNodePoolResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/nodepools/{name}/cancel-update/{processId}: post: operationId: CancelNodePoolUpdate summary: Cancel a running node pool update process security: - bearerAuth: [] tags: - clusters parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' - name: name in: path description: Node pool name required: true schema: type: string - name: processId in: path description: Node pool update process ID required: true schema: type: string responses: 202: description: Node pool update is cancelled default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/clusters/{id}/nodepool-labels: get: security: - bearerAuth: [] tags: - clusters summary: List cluster nodepool labels operationId: ListNodepoolLabels description: List cluster nodepool labels parameters: - $ref: '#/components/parameters/orgId' - $ref: '#/components/parameters/clusterId' responses: 200: description: "Nodepool labels listed" content: application/json: schema: $ref: '#/components/schemas/ListNodepoolLabelsResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/processes: get: security: - bearerAuth: [] tags: - processes summary: List processes in Pipeline operationId: ListProcesses description: List processes in Pipeline parameters: - $ref: '#/components/parameters/orgId' - name: type in: query description: Type of processes to query schema: type: string enum: [cluster-upgrade] - name: resourceId in: query description: The id of the resource to list processes for schema: type: string - name: parentId in: query description: The id of the parent process schema: type: string - name: status in: query description: The status of processes to query schema: $ref: '#/components/schemas/ProcessStatus' responses: 200: description: "Processes listed" content: application/json: schema: $ref: '#/components/schemas/ListProcessesResponse' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/processes/{id}: get: security: - bearerAuth: [] tags: - processes summary: Get a process in Pipeline operationId: GetProcess description: Get a process in Pipeline parameters: - $ref: '#/components/parameters/orgId' - name: id in: path description: Process id required: true schema: type: string responses: 200: description: "The process" content: application/json: schema: $ref: '#/components/schemas/Process' default: $ref: '#/components/responses/Error' /api/v1/orgs/{orgId}/processes/{id}/cancel: post: security: - bearerAuth: [] tags: - processes summary: Cancel a process in Pipeline operationId: CancelProcess description: Cancel a process in Pipeline parameters: - $ref: '#/components/parameters/orgId' - name: id in: path description: Process id required: true schema: type: string responses: 202: description: "The process is being canceled" default: $ref: '#/components/responses/Error' components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT parameters: orgId: name: orgId in: path required: true description: Organization identifier schema: type: integer clusterId: name: id in: path description: Cluster identifier required: true schema: type: integer requestBodies: api.FeatureRequest: content: application/json: schema: $ref: "#/components/schemas/api.FeatureRequest" description: Feature properties required: true responses: PartialFailure: description: Partial failure content: application/json: schema: $ref: '#/components/schemas/CommonError' examples: PartialFailure: value: code: 207 message: "Partial failure" error: "there was as least one failure on one of the target clusters" Error: description: Internal server error content: application/json: schema: $ref: '#/components/schemas/CommonError' examples: BadRequest: value: code: 400 message: Invalid request error: Failed to parse request. Unauthorized: value: code: 401 message: Unauthorized error: Unauthorized OrganizationNotFound: value: code: 404 message: Organization not found error: Organization not found SecretAlreadyExists: value: code: 409 message: Secret already exists error: Secret already exists InternalServerError: value: code: 500 message: Something went wrong error: Something went wrong application/problem+json: schema: $ref: '#/components/schemas/Error' examples: BadRequest: value: type: about:blank title: Invalid request status: 400 detail: Failed to parse request. instance: "" code: 400 message: Failed to parse request. error: Invalid request Unauthorized: value: type: about:blank title: Unauthorized status: 401 detail: You are unauthorized to access this resource. instance: "" code: 401 message: You are unauthorized to access this resource. error: Unauthorized AccessDenied: value: type: about:blank title: Access denied status: 403 detail: You are unauthorized to perform this action access this resource. instance: "" code: 403 message: You are unauthorized to perform this action access this resource. error: Access denied OrganizationNotFound: value: type: about:blank title: Organization not found status: 404 detail: Organization not found instance: "" code: 404 message: Organization not found error: Organization not found SecretAlreadyExists: value: type: about:blank title: Secret already exists status: 409 detail: Secret already exists instance: "" code: 409 message: Secret already exists error: Secret already exists InternalServerError: value: type: about:blank title: Internal server error status: 500 detail: Something went wrong instance: "" code: 500 message: Something went wrong error: Internal server error schemas: Error: description: Generic error object. type: object properties: type: description: A URI reference [RFC3986] that identifies the problem type. type: string format: uri example: about:blank title: description: A short, human-readable summary of the problem type. type: string example: Not found status: description: The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem. type: integer example: 404 detail: description: A human-readable explanation specific to this occurrence of the problem. type: string example: The requested resource cannot be found instance: description: A URI reference that identifies the specific occurrence of the problem. type: string format: uri example: /path/to/resource # Deprecated fields code: description: "HTTP status code. Deprecated: use status instead." type: integer deprecated: true message: description: "Error message. Deprecated: use detail instead." type: string deprecated: true error: description: "Error message. Deprecated: use title instead." type: string deprecated: true CommonError: description: "Generic error object. Deprecated: use Error schema instead." type: object deprecated: true properties: code: description: HTTP status code type: integer message: description: Error message type: string error: description: Error message type: string VersionResponse: description: Pipeline build and deployment info type: object properties: "version": type: string "commit_hash": type: string "build_date": type: string "go_version": type: string "os": type: string "arch": type: string "compiler": type: string "instance_uuid": type: string RequestedResources: type: object properties: sumCpu: type: integer example: 8 description: Total CPU requested for the cluster sumMem: type: integer example: 32 description: Total memory requested for the cluster (GB) filters: type: array items: type: string sameSize: type: boolean example: true description: If true, recommended instance types will have a similar size onDemandPct: type: integer example: 10 description: Percentage of regular (on-demand) nodes in the recommended cluster minNodes: type: integer example: 1 description: Minimum number of nodes in the recommended cluster maxNodes: type: integer example: 3 description: Maximum number of nodes in the recommended cluster CreateClusterRequest: type: object required: - name - location - cloud - properties properties: name: type: string example: "gkecluster-pipelineuser-123" location: type: string example: "us-central1-a" cloud: type: string example: "google" secretId: type: string example: "62bc3c75-91fb-4670-bad4-24b401a9deac" secretIds: type: array items: type: string example: ["62bc3c75-91fb-4670-bad4-24b401a9deac", "4378ae32-2355-12ed-b984-1234567804ed"] secretName: type: string example: "my-aws-secret" postHooks: type: object # additionalProperties: # oneOf: # - # $ref: '#/components/schemas/BasePostHook' example: InstallIngressController: properties: type: object # additionalProperties: # oneOf: # - # $ref: '#/components/schemas/CreateAKSProperties' # - # $ref: '#/components/schemas/CreateGKEProperties' # - # $ref: '#/components/schemas/CreateEKSProperties' # - # $ref: '#/components/schemas/CreatePKEProperties' example: gke: master: version: "1.8.7-gke.1" nodePools: pool1: count: 1 instanceType: "n1-standard-2" nodeVersion: "1.8.7-gke.1" CreateClusterRequestBase: type: object required: - name - type properties: name: type: string example: "my-azure-cluster-123" secretId: type: string example: "62bc3c75-91fb-4670-bad4-24b401a9deac" secretName: type: string example: "my-aws-secret" sshSecretId: type: string example: "62bc3c75-91fb-4670-bad4-24b401a9deac" type: type: string CreatePKEClusterKubernetes: type: object required: - version properties: version: type: string example: "v1.12.2" rbac: type: boolean example: true oidc: type: object properties: enabled: type: boolean example: true cri: type: object properties: runtime: type: string runtimeConfig: type: object network: $ref: '#/components/schemas/CreatePKEClusterKubernetesNetwork' CreatePKEClusterKubernetesNetwork: type: object properties: serviceCIDR: type: string example: "10.32.0.0/24" podCIDR: type: string example: "10.200.0.0/16" provider: type: string enum: - weave - calico - cilium providerConfig: type: object CreatePKEClusterRequestBase: allOf: - $ref: '#/components/schemas/CreateClusterRequestBase' - type: object required: - kubernetes properties: kubernetes: $ref: '#/components/schemas/CreatePKEClusterKubernetes' proxy: $ref: '#/components/schemas/PKEClusterHTTPProxy' PKEClusterHTTPProxy: type: object properties: http: $ref: '#/components/schemas/PKEClusterHTTPProxyOptions' https: $ref: '#/components/schemas/PKEClusterHTTPProxyOptions' exceptions: type: array items: type: string example: ".example.org" PKEClusterHTTPProxyOptions: type: object required: - host properties: host: description: "host of the proxy" type: string example: "proxy.example.org" port: description: "port the proxy is available on" type: integer minimum: 0 maximum: 65535 example: 12345 secretId: description: "ID of the secret containing the username and password for the proxy" type: string scheme: description: "Scheme of the proxy" type: string CreatePKEOnAzureClusterRequest: allOf: - $ref: '#/components/schemas/CreatePKEClusterRequestBase' - type: object required: - resourceGroup properties: location: type: string description: "Non-existent resources will be created in this location. Existing resources that must have the same location as the cluster will be validated against this." example: "westeurope" resourceGroup: type: string description: "Required resources will be created in this resource group." example: "my-resource-group-1" network: $ref: '#/components/schemas/PKEOnAzureClusterNetwork' accessPoints: type: array items: type: string enum: [private, public] description: List of access points (i.e. load balancers, floating IPs) to be created for the cluster. Access points are implemented using cloud provider specific resources. apiServerAccessPoints: type: array items: type: string enum: [private, public] description: List of access point references for the API server; currently, public and private are the only valid values nodepools: type: array items: $ref: '#/components/schemas/PKEOnAzureNodePool' PKEOnAzureClusterNetwork: type: object properties: name: type: string example: "my-azure-virtual-network" cidr: type: string description: "When referencing an already existing virtual network this field does not need to be specified." example: "10.0.0.0/16" PKEOnAzureNodePool: type: object required: - name - roles - instanceType properties: name: type: string roles: type: array items: type: string enum: - master - system - worker labels: type: object additionalProperties: type: string subnet: type: object properties: name: type: string example: "my-azure-subnet" cidr: type: string description: "When referencing an already existing subnetwork this field does not need to be specified." example: "10.0.0.0/24" zones: type: array items: type: string enum: - "1" - "2" - "3" example: ["1", "3"] autoscaling: type: boolean minCount: type: integer minimum: 1 maxCount: type: integer minimum: 1 count: type: integer minimum: 1 instanceType: type: string example: "Standard_B2ms" ####### CreatePKEOnVsphereClusterRequest: allOf: - $ref: '#/components/schemas/CreatePKEClusterRequestBase' - type: object required: - resourceGroup properties: storageSecretId: type: string example: "62bc3c75-91fb-4670-bad4-24b401a9deac" description: "Secret ID used to setup VSphere storage classes. Overrides the default settings in main cluster secret." storageSecretName: type: string example: "my-vsphere-storage-secret" description: "Secret name used to setup VSphere storage classes. Overrides default value from the main cluster secret." folder: type: string description: "Folder to create nodes in. Overrides default value from the main cluster secret." example: - simple: value: "my-folder" summary: "The name of the folder anywhere in the hierarchy when it's unambiguous." - absolute: value: "/Datacenter/vm/my-folder" summary: "Absolute path to the folder. Most vSphere installations use paths prefixed with /Datacenter/vm/." datastore: type: string description: "Name of datastore or datastore cluster to place VM disks on. Overrides default value from the main cluster secret." example: Datastore-cluster resourcePool: type: string description: "Virtual machines will be created in this resource pool. Overrides default value from the main cluster secret." example: "my-resource-pool" nodepools: type: array items: $ref: '#/components/schemas/PKEOnVsphereNodePool' loadBalancerIPRange: type: string example: "192.168.23.150-192.168.23.180" description: "IPv4 range to allocate addresses for LoadBalancer Services (MetalLB)" PKEOnVsphereNodePool: type: object required: - name - roles - vcpu - ram properties: name: type: string roles: type: array items: type: string enum: - master - system - worker labels: type: object additionalProperties: type: string size: type: integer minimum: 1 vcpu: type: integer example: 2 description: Number of VCPUs to attach to each node. ram: type: integer example: 2048 description: MiBs of RAM to attach to each node. template: type: string description: "Name of VM template available on vSphere to clone as the base of nodes. Overrides default value from the main cluster secret." example: - simple: value: "centos-7-pke-201910021808" summary: "Name of template to use when it's unambiguous." - absolute: value: "/Datacenter/vm/centos-7-pke-201910021808" adminUsername: type: string description: "Name of admin user to deploy the generated SSH public key for. No key will be deployed if omitted." example: root CreateClusterRequestV2: allOf: # Note: in OpenAPI generator 4.3.1 single reference # allOf/anyOf/oneOf schemas are generating empty Golang model # types. The workaround is to add a second reference which does # not modify the actual structure of the resulting type by using # duplicate fields or even duplicate schemas. # # Issue: # https://github.com/OpenAPITools/openapi-generator/issues/2164 # # Pull request: # https://github.com/OpenAPITools/openapi-generator/pull/2897 - $ref: '#/components/schemas/CreateClusterRequestBase' - $ref: '#/components/schemas/CreateClusterRequestBase' # oneOf: # - $ref: '#/components/schemas/CreatePKEOnAzureClusterRequest' # - $ref: '#/components/schemas/CreatePKEOnVsphereClusterRequest' # discriminator: # propertyName: type # mapping: # 'pke-on-azure': '#/components/schemas/CreatePKEOnAzureClusterRequest' # 'pke-on-vsphere': '#/components/schemas/CreatePKEOnVsphereClusterRequest' CreateNodePoolRequest: oneOf: - $ref: '#/components/schemas/NodePool' - $ref: '#/components/schemas/NodePools' NodePool: oneOf: # Note: in OpenAPI generator 4.3.1 single reference # allOf/anyOf/oneOf schemas are generating empty Golang model # types. The workaround is to add a second reference which does # not modify the actual structure of the resulting type by using # duplicate fields or even duplicate schemas. # # Issue: # https://github.com/OpenAPITools/openapi-generator/issues/2164 # # Pull request: # https://github.com/OpenAPITools/openapi-generator/pull/2897 - $ref: '#/components/schemas/EksNodePool' - $ref: '#/components/schemas/EksNodePool' NodePools: description: An associative collection of node pool objects keyed by their name. properties: nodePools: type: object additionalProperties: $ref: '#/components/schemas/NodePool' type: object GenericNodePool: description: Generic node pool object for all cluster distributions. type: object required: - name - size properties: name: description: Node pool name. type: string size: description: Node pool size. type: integer labels: description: Node pool labels. type: object additionalProperties: type: string example: example.io/label1: value1 NodePoolAutoScaling: description: Node pool auto scaling settings. type: object required: - minSize - maxSize properties: enabled: description: Enable node pool autoscaling. type: boolean minSize: description: Minimum node pool size. type: integer minimum: 0 example: 1 maxSize: description: Maximum node pool size. type: integer example: 5 EKSAuthConfig: type: object properties: mapRoles: type: array items: $ref: '#/components/schemas/EKSAuthConfigRoles' mapUsers: type: array items: $ref: '#/components/schemas/EKSAuthConfigUsers' mapAccounts: type: array items: type: string EKSAuthConfigUsers: type: object properties: groups: type: array items: type: string username: type: string userarn: type: string EKSAuthConfigRoles: type: object properties: groups: type: array items: type: string username: type: string rolearn: type: string EKSEncryptionConfig: description: EKS encryption configuration object describing an encryption provider and the corresponding resources to encrypt. More information can be found at https://docs.aws.amazon.com/eks/latest/APIReference/API_EncryptionConfig.html. example: | { "provider": { "keyARN": "arn:aws:kms::000000000000:key/00000000-0000-0000-0000-000000000000" }, "resources": [ "secrets" ] } properties: provider: $ref: '#/components/schemas/EKSEncryptionConfigProvider' resources: description: Resource kinds to encrypt with the corresponding encryption provider. example: | [ "secrets" ] items: description: Resource kind to encrypt. example: secrets type: string type: array type: object EKSEncryptionConfigProvider: description: EKS encryption provider. example: | { "keyARN": "arn:aws:kms::000000000000:key/00000000-0000-0000-0000-000000000000" } properties: keyARN: description: A customer master key to use for encryption. More information can be found at https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html. example: arn:aws:kms::000000000000:key/00000000-0000-0000-0000-000000000000 type: string type: object # Note: slightly different type from `EKSNodePool`, example differences: # # - `size (integer)` >-< `count (integer)`, # # - `autoscaling (NodePoolAutoscaling) >-<`autoscaling (bool)` EksNodePool: description: Node pool object for an EKS cluster. type: object allOf: - $ref: '#/components/schemas/GenericNodePool' - type: object required: - instanceType properties: autoscaling: $ref: '#/components/schemas/NodePoolAutoScaling' volumeEncryption: $ref: '#/components/schemas/EKSNodePoolVolumeEncryption' volumeSize: description: Size of the EBS volume in GiBs of the nodes in the pool. type: integer example: 50 volumeType: description: Type of the EBS volume of the nodes in the pool (default gp3). type: string example: gp3 instanceType: description: Machine instance type. type: string example: m4.xlarge image: description: Instance AMI. type: string example: ami-06d1667f spotPrice: description: The upper limit price for the requested spot instance. If this field is left empty or 0 passed in on-demand instances used instead of spot instances. type: string example: "0.2" subnetId: type: string example: "subnet-xxxxxxxxxxxxxx" securityGroups: description: List of additional custom security groups for all nodes in the pool. type: array items: type: string example: ["sg-00000xxxx0000xxx1", "sg-00000xxxx0000xxx2"] useInstanceStore: description: Setup available instance stores (NVMe disks) to use for Kubelet root if available. As a result emptyDir volumes will be provisioned on local instance storage disks. You can check out available instance storages here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes. type: boolean EKSNodePoolVolumeEncryption: description: Encryption details of the node volumes in an EKS node pool. example: | { "enabled": true, "encryptionKeyARN": "arn:aws:kms::000000000000:key/00000000-0000-0000-0000-000000000000" } nullable: true properties: enabled: description: Indicator of encrypted node pool node volumes. example: true type: boolean encryptionKeyARN: description: KMS key ARN to use for node volume encryption. example: arn:aws:kms::000000000000:key/00000000-0000-0000-0000-000000000000 type: string required: - enabled # Note: to avoid `omitempty` in generation. type: object UpdateNodePoolRequest: oneOf: - $ref: '#/components/schemas/EksUpdateNodePoolRequest' - $ref: '#/components/schemas/PkeAwsUpdateNodePoolRequest' UpdateNodePoolResponse: type: object properties: processId: description: Node pool update process ID. type: string ListNodePoolsResponse: type: array items: $ref: '#/components/schemas/NodePoolSummary' ReportPKENodeStatusResponse: type: object properties: processId: description: ID of the registered process type: string NodePoolSummary: allOf: - $ref: '#/components/schemas/NodePool' - $ref: '#/components/schemas/NodePoolStatusInformation' description: A summary of information about the node pool. type: object NodePoolStatusInformation: description: Current status and its reason of the node pool. properties: status: description: Current status of the node pool. example: ERROR type: string statusMessage: description: Details and reasoning about the status value. example: "Creating node pool failed: the specified volume size is invalid." type: string type: object BaseUpdateNodePoolRequest: description: Base node pool update request object for all cluster distributions. type: object required: - size properties: size: description: Node pool size. type: integer labels: description: Node pool labels. type: object additionalProperties: type: string example: example.io/label1: value1 EksUpdateNodePoolRequest: description: Node pool update request object for an EKS cluster. type: object allOf: - $ref: '#/components/schemas/BaseUpdateNodePoolRequest' - type: object properties: autoscaling: $ref: '#/components/schemas/NodePoolAutoScaling' volumeEncryption: $ref: '#/components/schemas/EKSNodePoolVolumeEncryption' volumeSize: description: Size of the EBS volume in GiBs of the nodes in the pool. type: integer example: 50 volumeType: description: Type of the EBS volume of the nodes in the pool (default gp3). type: string example: gp3 instanceType: description: The instance type to use for your node pool. type: string example: m4.xlarge image: description: The instance AMI to use for your node pool. type: string example: ami-06d1667f version: description: The Kubernetes version to use for your node pool. type: string example: "1.18.6" spotPrice: description: The upper limit price for the requested spot instance. If this field is empty or 0 on-demand instances are used instead of spot instances. type: string example: "0.2" securityGroups: description: List of additional custom security groups for all nodes in the pool. type: array nullable: true items: type: string example: ["sg-00000xxxx0000xxx1", "sg-00000xxxx0000xxx2"] useInstanceStore: nullable: true description: Setup available instance stores (NVMe disks) to use for Kubelet root if available. As a result emptyDir volumes will be provisioned on local instance storage disks. You can check out available instance storages here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes. type: boolean options: $ref: '#/components/schemas/BaseUpdateNodePoolOptions' PkeAwsUpdateNodePoolRequest: description: Node pool update request object for an PKE AWS cluster. type: object allOf: - $ref: '#/components/schemas/BaseUpdateNodePoolRequest' - type: object properties: autoscaling: $ref: '#/components/schemas/NodePoolAutoScaling' volumeSize: description: Size of the EBS volume in GiBs of the nodes in the pool. type: integer example: 50 instanceType: description: The instance type to use for your node pool. type: string example: m4.xlarge image: description: The instance AMI to use for your node pool. type: string example: ami-06d1667f spotPrice: description: The upper limit price for the requested spot instance. If this field is empty or 0 on-demand instances are used instead of spot instances. type: string example: "0.2" options: $ref: '#/components/schemas/BaseUpdateNodePoolOptions' BaseUpdateNodePoolOptions: description: Base node pool update options object for all cluster distributions. type: object properties: maxSurge: description: Maximum number of extra nodes that can be created during the update. type: integer default: 0 maxBatchSize: description: Maximum number of nodes that can be updated simultaneously. type: integer default: 2 maxUnavailable: description: Maximum number of nodes that can be unavailable during the update. type: integer default: 0 drain: $ref: '#/components/schemas/UpdateNodePoolDrainOptions' UpdateNodePoolDrainOptions: description: Drain options for old nodes. type: object properties: timeout: description: How long should drain wait for pod eviction (in seconds) type: integer default: 0 failOnError: description: Whether the process should fail if draining fails/times out. type: boolean default: false podSelector: description: Only evict those pods that matches this selector. type: string default: "" EKSNodePool: type: object required: - instanceType - spotPrice - minCount - maxCount properties: instanceType: type: string example: "m4.xlarge" spotPrice: type: string example: "0.2" autoscaling: type: boolean example: true count: type: integer example: 1 minCount: type: integer example: 1 maxCount: type: integer example: 2 labels: type: object additionalProperties: type: string example: example.io/label1: value1 volumeEncryption: $ref: '#/components/schemas/EKSNodePoolVolumeEncryption' volumeSize: description: Size of the EBS volume in GiBs of the nodes in the pool. example: 50 type: integer image: type: string example: "ami-06d1667f" subnet: $ref: '#/components/schemas/EKSSubnet' securityGroups: description: List of additional custom security groups for all nodes in the pool. type: array items: type: string example: ["sg-00000xxxx0000xxx1", "sg-00000xxxx0000xxx2"] useInstanceStore: description: Setup available instance stores (NVMe disks) to use for Kubelet root if available. As a result emptyDir volumes will be provisioned on local instance storage disks. You can check out available instance storages here https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes. type: boolean CreateEKSProperties: type: object required: - eks properties: eks: type: object required: - nodePools properties: authConfig: $ref: '#/components/schemas/EKSAuthConfig' version: type: string example: "1.10" encryptionConfig: description: List of encryption config objects to define the encryption providers and their corresponding resources to encrypt. More information can be found at https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html and https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateCluster.html. example: | [ { "provider": { "keyARN": "arn:aws:kms::000000000000:key/00000000-0000-0000-0000-000000000000" }, "resources": [ "secrets" ] } ] items: $ref: '#/components/schemas/EKSEncryptionConfig' type: array logTypes: type: array items: type: string example: ["api", "scheduler"] nodePools: type: object additionalProperties: $ref: '#/components/schemas/EKSNodePool' vpc: $ref: '#/components/schemas/EKSVpc' routeTableId: type: string description: Id of the RouteTable of the VPC to be used by subnets. This is used only when subnets are created into existing VPC. subnets: type: array items: $ref: '#/components/schemas/EKSSubnet' minItems: 2 description: Subnets for EKS master and worker nodes. All worker nodes will be launched in the same subnet (the first subnet in the list - which may not coincide with first subnet in the cluster create request payload as the deserialization may change the order) unless a subnet is specified for the workers that belong to a node pool at node pool level. iam: $ref: '#/components/schemas/EKSIam' apiServerAccessPoints: type: array items: type: string enum: [private, public] default: ["public"] description: List of access point types for the API server; public and private are the only valid values tags: type: object additionalProperties: type: string example: customTagKey: customTagValue description: User defined tags to be added to created AWS resources. Empty keys and values are not permitted. CreateAKSProperties: type: object required: - aks properties: aks: type: object required: - kubernetesVersion - resourceGroup - nodePools properties: resourceGroup: type: string example: "myRg" kubernetesVersion: type: string example: "1.8.2" nodePools: type: object additionalProperties: $ref: '#/components/schemas/NodePoolsAzure' vnetSubnetID: type: string example: "/subscriptions/12345678-1234-5678-1234-123456789abc/resourceGroups/your-resource-group-name/providers/Microsoft.Network/virtualNetworks/your-vnet-name/subnets/your-vnet-subnet-name" NodePoolsAzure: type: object required: - count - instanceType properties: autoscaling: type: boolean example: true count: type: integer example: 1 minCount: type: integer example: 1 maxCount: type: integer example: 2 instanceType: type: string example: "Standard_B2ms" labels: type: object additionalProperties: type: string example: example.io/label1: value1 CreateGKEProperties: type: object required: - gke properties: gke: type: object required: - nodePools properties: projectId: type: string master: type: object properties: version: type: string example: "1.10" nodeVersion: type: string example: "1.10" vpc: type: string description: Name of the GCP Network (VPC) to deploy the cluster to. If omitted than the "default" VPC is used. example: "corp-vpc" subnet: type: string description: Name of the GCP Subnet to deploy the cluster to. If "default" VPC is used this field can be omitted. The subnet must be in the same region as the location of the cluster. nodePools: type: object additionalProperties: $ref: '#/components/schemas/NodePoolsGoogle' NodePoolsGoogle: type: object required: - count - instanceType properties: autoscaling: type: boolean example: true preemptible: type: boolean example: true count: type: integer example: 1 minCount: type: integer example: 1 maxCount: type: integer example: 2 instanceType: type: string example: "n1-standard-2" labels: additionalProperties: $ref: '#/components/schemas/LabelsGoogle' LabelsGoogle: type: string example: "labelValue" CreatePKEProperties: type: object required: - network - nodePools - kubernetes - cri properties: network: type: object required: - apiServerAddress - serviceCIDR - podCIDR - provider properties: apiServerAddress: type: string example: "10.240.0.204" serviceCIDR: type: string example: "10.32.0.0/24" podCIDR: type: string example: 10.200.0.0/16" provider: type: string example: "weave" nodePools: type: array items: $ref: '#/components/schemas/NodePoolsPKE' kubernetes: type: object required: - version - rbac properties: version: type: string example: "v1.12.2" rbac: type: object required: - enabled properties: enabled: type: boolean example: true cri: type: object required: - runtime properties: runtime: type: string example: "containerd" NodePoolsPKE: type: object required: - name - roles - provider - providerConfig - autoscaling properties: name: type: string example: "distrMaster" roles: type: array items: type: string example: ["master", "pipeline-system"] labels: type: object description: user provided custom node labels to be placed onto the nodes of the node pool additionalProperties: type: string example: example.io/label1: value1 autoscaling: type: boolean description: Enables/disables autoscaling of this node pool through Kubernetes cluster autoscaler. provider: type: string example: "amazon" providerConfig: type: object # oneOf: # - # $ref: '#/components/schemas/AmazonProviderConfig' hosts: type: array items: $ref: '#/components/schemas/PKEHosts' AmazonProviderConfig: type: object required: - autoScalingGroup properties: autoScalingGroup: $ref: '#/components/schemas/AmazonAutoScalingGroup' PKEHosts: type: object required: - name - privateIP - roles properties: name: type: string example: "ip-10-240-0-204.eu-central-1.compute.internal" privateIP: type: string example: "10.240.0.204" roles: type: array items: type: string example: ["master", "pipeline-system"] AmazonAutoScalingGroup: type: object required: - name - image - zones - instanceType - launchConfigurationName - vpcID - securityGroupID - subnets - tags - spotPrice - size properties: name: type: string example: "distrMaster" image: type: string example: "ami-dd3c0f36" volumeSize: type: integer description: Size of root EBS volume to attach to the nodes in GiBs. Zero means that the size is determined automatically. zones: type: array items: type: string example: ["eu-central-1b"] instanceType: type: string example: "t2.medium" launchConfigurationName: type: string example: "distrMaster" launchTemplate: $ref: '#/components/schemas/AmazonLaunchTemplate' vpcID: type: string example: "vpc-0deb755857f5ef79d" securityGroupID: type: string example: "sg-0b3ddd7bef209c1d0" subnets: type: array items: type: string example: ["subnet-0d16a21e9655486af"] tags: type: object additionalProperties: true spotPrice: type: string example: "0.2" size: type: object required: - min - max properties: min: type: integer example: 1 max: type: integer example: 1 AmazonLaunchTemplate: type: object CreateClusterResponse_201: type: object properties: status_code: type: integer example: 201 message: type: string example: "cluster already exists with this name" CreateClusterResponse_202: type: object properties: name: type: string example: "gkecluster-pipelineuser-123" id: type: integer example: 1 ClusterConfig: type: object properties: status: type: integer example: 200 data: type: string example: "apiVersion: v1\nclusters...." UpdateClusterRequestV2: oneOf: - $ref: '#/components/schemas/UpdatePKEOnAzureClusterRequest' - $ref: '#/components/schemas/UpdatePKEOnVsphereClusterRequest' UpdatePKEOnAzureClusterRequest: type: object properties: nodepools: type: array items: $ref: '#/components/schemas/PKEOnAzureNodePool' UpdatePKEOnVsphereClusterRequest: type: object properties: nodepools: type: array items: $ref: '#/components/schemas/PKEOnVsphereNodePool' UpdateClusterRequestDeprecated: type: object required: - cloud - properties properties: cloud: type: string example: google properties: type: object # additionalProperties: # oneOf: # - # $ref: '#/components/schemas/UpdateAzureProperties' # - # $ref: '#/components/schemas/UpdateGoogleProperties' # - # $ref: '#/components/schemas/UpdateEksProperties' example: google: master: version: "1.10" nodePools: pool1: count: 2 instanceType: "n1-standard-2" UpdateEksProperties: type: object required: - eks properties: eks: type: object properties: nodePools: type: object additionalProperties: $ref: '#/components/schemas/EKSNodePool' required: - nodePools UpdateAzureProperties: type: object required: - azure properties: azure: type: object properties: nodePools: type: object additionalProperties: $ref: '#/components/schemas/UpdateNodePoolsAzure' UpdateNodePoolsAzure: type: object required: - count properties: autoscaling: type: boolean example: true count: type: integer example: 1 minCount: type: integer example: 1 maxCount: type: integer example: 2 instanceType: type: string example: "Standard_B2ms" labels: type: object additionalProperties: type: string example: example.io/label1: value1 vnetSubnetID: type: string example: "/subscriptions/12345678-1234-5678-1234-123456789abc/resourceGroups/your-resource-group-name/providers/Microsoft.Network/virtualNetworks/your-vnet-name/subnets/your-vnet-subnet-name" UpdateGoogleProperties: type: object properties: master: type: object properties: version: type: string nodeVersion: type: string example: "1.9" nodePools: type: object additionalProperties: $ref: '#/components/schemas/UpdateNodePoolsGoogle' UpdateNodePoolsGoogle: type: object required: - count properties: autoscaling: type: boolean example: true count: type: integer example: 2 minCount: type: integer example: 1 maxCount: type: integer example: 2 instanceType: type: string example: "n1-standard-2" UpdatePKEProperties: type: object required: - pke properties: pke: type: object required: - nodePools properties: nodePools: type: object additionalProperties: $ref: '#/components/schemas/UpdateNodePoolsPKE' UpdateNodePoolsPKE: type: object properties: instanceType: type: string example: c4.large description: Instance type for the nodes in the node pool. This field is ignored when existing node pool is updated as instance type can not be changed. spotPrice: type: string example: "0.2" description: The spot price for a node in the node pool. Provide "" or "0" for on-demand nodes. autoscaling: type: boolean description: Whether to enable Kubernetes cluster autoscaler for this node pool. minCount: type: integer example: 1 description: If cluster autoscaler is enabled for this node pool it sets the minimum node count the cluster autoscaler can downscale the node pool to. maxCount: type: integer example: 2 description: If cluster autoscaler is enabled for this node pool it sets the maximum node count the cluster autoscaler can upscale the node pool to. count: type: integer example: 1 description: If cluster autoscaler is not enabled this specifies the desired node count in the node pool. If cluster autoscaler is enabled this specifies the initial node count in the node pool. subnets: type: array items: type: string example: ["subnet-0d16a21e9655486af"] description: The subnet to create the node pool into. If this field is omitted than the subnet from the cluster level network configuration is used. labels: type: object description: user provided custom node labels to be placed onto the nodes of the node pool additionalProperties: type: string example: example.io/label1: value1 ListEndpointsResponse: type: object properties: endpoints: type: array items: $ref: '#/components/schemas/EndpointItem' EndpointItem: type: object properties: name: type: string example: "pipeline-traefik" host: type: string example: "11.11.11.111" urls: type: array items: $ref: '#/components/schemas/URLItem' example: URLItem: type: object properties: servicename: type: string example: "serviceName" url: type: string example: "url" ListNodesResponse: type: object properties: metadata: type: object properties: selfLink: type: string example: "/api/v1/nodes" resourceVersion: type: string example: "30123" items: type: array items: $ref: '#/components/schemas/NodeItem' NodeItem: type: object properties: metadata: type: object properties: name: type: string example: "gke-gkecluster-feri-706-pool1-496eccb3-l25k" selfLink: type: string example: "/api/v1/nodes/gke-gkecluster-feri-706-pool1-496eccb3-l25k" uid: type: string example: "f214d7fb-41ae-11e8-a4ea-42010a8001da" resourceVersion: type: string example: "30119" creationTimestamp: type: string example: "2018-04-16T19:47:07Z" labels: type: object additionalProperties: type: string example: beta.kubernetes.io/arch: "amd64" annotations: type: object additionalProperties: type: string example: node.alpha.kubernetes.io/ttl: "0" spec: type: object properties: podCIDR: type: string example: "10.48.0.0/24" externalID: type: string example: "5935724476937880453" providerID: type: string example: "gce://banzaitest/us-central1-a/gke-gkecluster-706-pool1-496eccb3-l25k" status: type: object properties: capacity: type: object properties: cpu: type: string example: "2" memory: type: string example: "7664776Ki" pods: type: string example: "110" allocatable: type: object properties: cpu: type: string example: "1930m" memory: type: string example: "5784712Ki" pods: type: string example: "110" conditions: type: array items: type: object properties: type: type: string example: "KernelDeadlock" status: type: string example: "False" lastHeartbeatTime: type: string example: "2018-04-17T09:02:45Z" lastTransitionTime: type: string example: "2018-04-16T19:46:26Z" reason: type: string example: "KernelHasNoDeadlock" message: type: string example: "kernel has no deadlock" addresses: type: array items: type: object properties: type: type: string example: "InternalIP" address: type: string example: "10.128.0.2" daemonEndpoints: type: object properties: kubeletEndpoint: properties: Port: type: integer example: 10250 nodeInfo: type: object properties: machineID: type: string example: "10d8adda771410ca912a387cf7e5cb06" systemUUID: type: string example: "10D8ADDA-7714-10CA-912A-387CF7E5CB06" bootID: type: string example: "decb64ff-e662-410a-b862-04cb490b4772" kernelVersion: type: string example: "4.4.111+" osImage: type: string example: "Container-Optimized OS from Google" containerRuntimeVersion: type: string example: "docker://17.3.2" kubeletVersion: type: string example: "v1.10" kubeProxyVersion: type: string example: "v1.10" operatingSystem: type: string example: "linux" architecture: type: string example: "amd64" images: type: array items: type: object properties: name: type: array items: type: string example: ["asia.gcr.io/google_containers/node-problem-detector@sha256:f95cab985c26b2f46e9bd43283e0bfa88860c14e0fb0649266babe8b65e", "eu.gcr.io/google_containers/node-problem-detector@sha256:f95cab985c26b2f46e9bd43283e0bfa88860c14e0fb0649266babe"] sizeBytes: format: int64 type: integer example: 286572743 ListDeploymentsResponse: type: array items: $ref: '#/components/schemas/ListDeploymentsResponseItem' ListDeploymentsResponseItem: type: object properties: releaseName: type: string example: "pipeline" chart: type: string example: "pipeline-cluster-ingress-0.0.1" chartName: type: string example: "pipeline-cluster-ingress" chartVersion: type: string example: "0.0.1" version: type: integer example: 1 updatedAt: type: string example: "2018-07-03T14:23:19+02:00" status: type: string example: "DEPLOYED" namespace: type: string example: "default" createdAt: type: string example: "2018-07-03T14:23:19+02:00" supported: type: boolean example: true CreateUpdateDeploymentRequest: type: object required: - name properties: name: type: string example: "banzaicloud-stable/pipeline" version: type: string example: "0.1.0" description: "Version of the deployment. If not specified, the latest version is used." package: type: string format: byte description: "The chart content packaged by `helm package`. If specified chart version is ignored." example: "U3dhZ2dlciByb2Nrcw==" namespace: type: string example: "default" releaseName: type: string example: "singed-bee" dryRun: type: boolean example: false wait: type: boolean description: "if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful" example: false timeout: type: integer description: "time in seconds to wait for any individual Kubernetes operation (default 300)" example: 500 format: int64 odPcts: type: object description: "Map of resources in the template where replicas should have a minimum on-demand percentage. Format: " example: { "deployment.my-deployment": 40 } reuseValues: type: boolean example: "true" values: type: object description: current values of the deployment example: { "ingress": { "enabled": "true" } } CreateUpdateDeploymentResponse: type: object properties: releaseName: type: string example: "vigilant-mandrill" notes: type: string format: base64 description: deployment notes in base64 encoded format DeleteDeploymentResponse: type: object properties: status: type: integer example: 200 message: type: string example: "Deployment deleted!" name: type: string example: "vigilant-mandrill" GetDeploymentResourcesResponse: type: array items: type: object properties: name: example: bumptious-dragon-zeppelin type: string kind: example: Deployment type: string GetDeploymentResponse: type: object properties: releaseName: type: string example: "vigilant-mandrill" chart: type: string example: "mysql-0.7.0" chartName: type: string example: "mysql" chartVersion: type: string example: "0.7.0" namespace: type: string example: "default" version: type: integer example: 1 updatedAt: type: string example: "2018-07-03T14:23:19+02:00" status: type: string example: "DEPLOYED" createdAt: type: string example: "2018-07-03T14:23:19+02:00" notes: type: string format: base64 description: deployment notes in base64 encoded format values: type: object description: current values of the deployment example: { "metrics": { "enabled": "true" } } HelmReposListResponse: type: array items: $ref: '#/components/schemas/HelmRepoListItem' HelmRepoListItem: type: object properties: name: type: string example: "stable" cache: type: string example: "statestore//helm/repository/cache/stable-index.yaml" url: type: string example: "https://charts.helm.sh/stable" certFile: type: string example: "" keyFile: type: string example: "" caFile: type: string example: "" passwordSecretRef: type: string tlsSecretRef: type: string HelmReposModifyRequest: type: object properties: name: type: string url: type: string certFile: type: string keyFile: type: string caFile: type: string passwordSecretRef: type: string tlsSecretRef: type: string example: url: "https://charts.helm.sh/stable" HelmReposAddRequest: type: object required: - name - url properties: name: type: string url: type: string certFile: type: string keyFile: type: string caFile: type: string passwordSecretRef: type: string tlsSecretRef: type: string example: name: "stable" url: "https://charts.helm.sh/stable" HelmReposDeleteResponse: type: object properties: status: type: integer example: 200 message: type: string example: "resource deleted successfully" name: type: string example: "stable" HelmReposUpdateResponse: type: object properties: status: type: integer example: 200 message: type: string example: "resource modified successfully" name: type: string example: "stable" HelmChartsListResponse: type: array items: type: object properties: name: type: string example: "stable" charts: type: array items: type: array items: type: object properties: name: type: string example: "nginx-ingress" home: type: string example: "https://github.com/kubernetes/ingress-nginx" sources: type: array items: type: string example: ["https://github.com/kubernetes/ingress-nginx"] version: type: string example: "0.13.1" description: type: string example: "An nginx Ingress controller that uses ConfigMap to store the nginx configuration." keywords: type: array items: type: string example: ["ingress, nginx"] maintainers: type: array items: type: object properties: name: type: string example: "jackzampolin" email: type: string example: "jack.zampolin@gmail.com" engine: type: string example: "gotpl" icon: type: string example: "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/500px-Nginx_logo.svg.png" appVersion: type: string example: "0.12.0" apiVersion: type: string example: "v1" deprecated: type: boolean example: false urls: type: array items: type: string example: ["https://charts.helm.sh/stable/nginx-ingress-0.13.1.tgz"] created: type: string example: "2018-04-11T18:11:24.761440762Z" digest: type: string example: "cf66d1666019b3e1647ba4dbc06a66ee7db1184629ae3669e11a9f72208eb7aa" HelmChartDetailsResponse: properties: name: type: string example: "vault" repo: type: string example: "banzaicloud-stable" versions: type: array items: type: object properties: chart: type: object properties: name: type: string example: "nginx-ingress" home: type: string example: "https://github.com/kubernetes/ingress-nginx" sources: type: array items: type: string example: ["https://github.com/kubernetes/ingress-nginx"] version: type: string example: "0.13.1" description: type: string example: "An nginx Ingress controller that uses ConfigMap to store the nginx configuration." keywords: type: array items: type: string example: ["ingress, nginx"] maintainers: type: array items: type: object properties: name: type: string example: "jackzampolin" email: type: string example: "jack.zampolin@gmail.com" engine: type: string example: "gotpl" icon: type: string example: "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/500px-Nginx_logo.svg.png" appVersion: type: string example: "0.12.0" apiVersion: type: string example: "v1" deprecated: type: boolean example: false urls: type: array items: type: string example: ["https://charts.helm.sh/stable/nginx-ingress-0.13.1.tgz"] created: type: string example: "2018-04-11T18:11:24.761440762Z" digest: type: string example: "cf66d1666019b3e1647ba4dbc06a66ee7db1184629ae3669e11a9f72208eb7aa" values: type: string example: "IyMgbmdpbngtbGVnbyBzcGlucyB1cCBhIHNjYWxhYmxlIGluZ3Jlc3MgcHJvdmlkZXIgdGhhdCBjYW4gYWxzbyBwcm92aXNpb24gU1NMIGNlcnRzCiMjIFNlZSBodHRwczovL2dpdGh1Yi5jb20vamV0c3RhY2sva3ViZS1sZWdvL3RyZWUvbWFzdGVyL2V4YW1wbGVzL25naW54IGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGltcGxlbWVudGF0aW9uCgojIyBOZ2lueCBjb25maWd1cmF0aW9uCiMjIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMvY29udHJpYi90cmVlL21hc3Rlci9pbmdyZXNzL2NvbnRyb2xsZXJzL25naW54I2F1dG9tYXRlZC1jZXJ0aWZpY2F0ZS1tYW5hZ2VtZW50LXdpdGgta3ViZS1sZWdvCiMjCm5naW54OgogIHJlcGxpY2FDb3VudDogMQogIGltYWdlOgogICAgcmVwb3NpdG9yeTogazhzLmdjci5pby9uZ2lueC1pbmdyZXNzLWNvbnRyb2xsZXIKICAgIHRhZzogIjAuOC4zIgogICAgcHVsbFBvbGljeTogSWZOb3RQcmVzZW50CiAgc2VydmljZToKICAgIHR5cGU6IExvYWRCYWxhbmNlcgogIG1vbml0b3Jpbmc6IGZhbHNlCiAgcmVzb3VyY2VzOgogICAgbGltaXRzOgogICAgICBjcHU6IDEKICAgICAgbWVtb3J5OiAyR2kKICAgIHJlcXVlc3RzOgogICAgICBjcHU6IDEKICAgICAgbWVtb3J5OiAxMjhNaQogIGNvbmZpZ21hcDoKICAgIHByb3h5X2Nvbm5lY3RfdGltZW91dDogIjMwIgogICAgcHJveHlfcmVhZF90aW1lb3V0OiAiNjAwIgogICAgcHJveHlfc2VuZF9pbWVvdXQ6ICI2MDAiCiAgICBoc3RzX2luY2x1ZGVfc3ViZG9tYWluczogImZhbHNlIgogICAgYm9keV9zaXplOiAiNjRtIgogICAgc2VydmVyX25hbWVfaGFzaF9idWNrZXRfc2l6ZTogIjI1NiIKICAgICMgVE9ETzogZmlndXJlIG91dCBob3cgdG8gZXhwb3NlIGB7bmdpbnhfYWRkcn06ODA4MC9uZ2lueF9zdGF0dXNgLCBvbiBleGlzdGluZyBzZXJ2aWNlIG9yIGNyZWF0ZSBuZXcgb25lPwogICAgZW5hYmxlX3Z0c19zdGF0dXM6ICJmYWxzZSIKCiMjIERlZmF1bHQgQmFja2VuZCBjb25maWd1cmF0aW9uCiMjIFRvIHJ1biBhIGRpZmZlcmVudCA0MDQgcGFnZSBmb3IgdGhlIG1hbmFnZWQgZG9tYWlucyBwbGVhc2Ugc2VlIHRoZSBkb2N1bWVudGF0aW9uIGJlbG93CiMjIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMvY29udHJpYi90cmVlL21hc3Rlci80MDQtc2VydmVyCiMjCmRlZmF1bHQ6CiAgcmVwbGljYUNvdW50OiAxCiAgaW1hZ2U6CiAgICByZXBvc2l0b3J5OiBrOHMuZ2NyLmlvL2RlZmF1bHRiYWNrZW5kCiAgICB0YWc6ICIxLjAiCiAgICBwdWxsUG9saWN5OiBJZk5vdFByZXNlbnQKICByZXNvdXJjZXM6CiAgICBsaW1pdHM6CiAgICAgIGNwdTogMQogICAgICBtZW1vcnk6IDJHaQogICAgcmVxdWVzdHM6CiAgICAgIGNwdTogMQogICAgICBtZW1vcnk6IDEyOE1pCgojIyBrdWJlLWxlZ28gY29uZmlndXJhdGlvbgojIyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9qZXRzdGFjay9rdWJlLWxlZ28KIyMKbGVnbzoKICBlbmFibGVkOiBmYWxzZQogIHJlcGxpY2FDb3VudDogMQogIGltYWdlOgogICAgcmVwb3NpdG9yeTogamV0c3RhY2sva3ViZS1sZWdvCiAgICB0YWc6ICIwLjEuMyIKICAgIHB1bGxQb2xpY3k6IElmTm90UHJlc2VudAogIGNvbmZpZ21hcDoKICAgIGVtYWlsOiAibXlAZW1haWwudGxkIgogICAgIyBQcm9kdWN0aW9uIExldCdzIEVuY3J5cHQgc2VydmVyCiAgICAjIHVybDogImh0dHBzOi8vYWNtZS12MDEuYXBpLmxldHNlbmNyeXB0Lm9yZy9kaXJlY3RvcnkiCiAgICAjIFRlc3QgTGV0J3MgRW5jcnlwdCBzZXJ2ZXIKICAgIHVybDogImh0dHBzOi8vYWNtZS1zdGFnaW5nLmFwaS5sZXRzZW5jcnlwdC5vcmcvZGlyZWN0b3J5ICIKICByZXNvdXJjZXM6CiAgICBsaW1pdHM6CiAgICAgIGNwdTogMQogICAgICBtZW1vcnk6IDJHaQogICAgcmVxdWVzdHM6CiAgICAgIGNwdTogMQogICAgICBtZW1vcnk6IDEyOE1pCg==" readme: type: string example: "IyBuZ2lueC1sZWdvCgoqKlRoaXMgY2hhcnQgaGFzIGJlZW4gZGVwcmVjYXRlZCBhcyBvZiB2ZXJzaW9uIDAuMi4xIGFuZCB3aWxsIG5vdCBiZSB1cGRhdGVkLiBQbGVhc2UgdXNlIHRoZSBuZ2lueC1pbmdyZXNzIGFuZCAob3B0aW9uYWwpIGt1YmUtbGVnbyBjaGFydHMgaW5zdGVhZC4qKgoKW25naW54LWxlZ29dKGh0dHBzOi8vZ2l0aHViLmNvbS9qZXRzdGFjay9rdWJlLWxlZ28vdHJlZS9tYXN0ZXIvZXhhbXBsZXMvbmdpbngpIGlzIGEgY2hhcnQgZm9yIGFuIFtgbmdpbnhgIGluZ3Jlc3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2NvbnRyaWIvdHJlZS9tYXN0ZXIvaW5ncmVzcy9jb250cm9sbGVycy9uZ2lueCkgd2l0aCBvcHRpb25hbCBzdXBwb3J0IGZvciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRpbmcgYFNTTGAgY2VydCBmb3IgdGhlIG1hbmFnZWQgcm91dGVzLgoKVG8gdXNlIHRoaXMgaW5ncmVzcyBjb250b2xsZXIgYWRkIHRoZSBmb2xsb3dpbmcgYW5ub3RhdGlvbnMgdG8gdGhlIGBpbmdyZXNzYCByZXNvdXJjZXMgeW91IHdvdWxkIGxpa2UgdG8gcm91dGUgdGhyb3VnaCBpdDoKCmBgYHlhbWwKYXBpVmVyc2lvbjogZXh0ZW5zaW9ucy92MWJldGExCmtpbmQ6IEluZ3Jlc3MKbWV0YWRhdGE6CiAgbmFtZXNwYWNlOiBmb28KICBhbm5vdGF0aW9uczoKICAgICMgQWRkIHRvIHJvdXRlIHRocm91Z2ggdGhlIG5naW54IHNlcnZpY2UKICAgIGt1YmVybmV0ZXMuaW8vaW5ncmVzcy5jbGFzczogbmdpbngKICAgICMgQWRkIHRvIGdlbmVyYXRlIGNlcnRpZmljYXRlcyBmb3IgdGhpcyBpbmdyZXNzCiAgICBrdWJlcm5ldGVzLmlvL3Rscy1hY21lOiAidHJ1ZSIKc3BlYzoKICB0bHM6CiAgICAjIFdpdGggdGhpcyBjb25maWd1cmF0aW9uIGt1YmUtbGVnbyB3aWxsIGdlbmVyYXRlIGEgc2VjcmV0IGluIG5hbWVzcGFjZSBmb28gY2FsbGVkIGBleGFtcGxlLXRsc2AKICAgICMgZm9yIHRoZSBVUkwgYHd3dy5leGFtcGxlLmNvbWAKICAgIC0gaG9zdHM6CiAgICAgIC0gInd3dy5leGFtcGxlLmNvbSIKICAgICAgc2VjcmV0TmFtZTogZXhhbXBsZS10bHMKYGBgCgojIyBUTDtEUjsKCmBgYGJhc2gKJCBoZWxtIGluc3RhbGwgc3RhYmxlL2t1YmUtbGVnbwpgYGAKCiMjIEludHJvZHVjdGlvbgoKVGhpcyBjaGFydCBib290c3RyYXBzIGFuIG5naW54LWxlZ28gZGVwbG95bWVudCBvbiBhIFtLdWJlcm5ldGVzXShodHRwOi8va3ViZXJuZXRlcy5pbykgY2x1c3RlciB1c2luZyB0aGUgW0hlbG1dKGh0dHBzOi8vaGVsbS5zaCkgcGFja2FnZSBtYW5hZ2VyLgoKIyMgUHJlcmVxdWlzaXRlcwoKLSBLdWJlcm5ldGVzIDEuNCsgd2l0aCBCZXRhIEFQSXMgZW5hYmxlZAoKIyMgSW5zdGFsbGluZyB0aGUgQ2hhcnQKClRvIGluc3RhbGwgdGhlIGNoYXJ0IHdpdGggdGhlIHJlbGVhc2UgbmFtZSBgbXktcmVsZWFzZWA6CgpgYGBiYXNoCiQgaGVsbSBpbnN0YWxsIC0tbmFtZSBteS1yZWxlYXNlIHN0YWJsZS9uZ2lueC1sZWdvCmBgYAoKVGhlIGNvbW1hbmQgZGVwbG95cyBuZ2lueC1sZWdvIG9uIHRoZSBLdWJlcm5ldGVzIGNsdXN0ZXIgaW4gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbi4gVGhlIFtjb25maWd1cmF0aW9uXSgjY29uZmlndXJhdGlvbikgc2VjdGlvbiBsaXN0cyB0aGUgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSBjb25maWd1cmVkIGR1cmluZyBpbnN0YWxsYXRpb24uCgo+ICoqVGlwKio6IExpc3QgYWxsIHJlbGVhc2VzIHVzaW5nIGBoZWxtIGxpc3RgCgojIyBVbmluc3RhbGxpbmcgdGhlIENoYXJ0CgpUbyB1bmluc3RhbGwvZGVsZXRlIHRoZSBgbXktcmVsZWFzZWAgZGVwbG95bWVudDoKCmBgYGJhc2gKJCBoZWxtIGRlbGV0ZSBteS1yZWxlYXNlCmBgYAoKVGhlIGNvbW1hbmQgcmVtb3ZlcyBhbGwgdGhlIEt1YmVybmV0ZXMgY29tcG9uZW50cyBhc3NvY2lhdGVkIHdpdGggdGhlIGNoYXJ0IGFuZCBkZWxldGVzIHRoZSByZWxlYXNlLgoKIyMgQ29uZmlndXJhdGlvbgoKU2VlIGB2YWx1ZXMueWFtbGAgZm9yIGNvbmZpZ3VyYXRpb24gbm90ZXMuIFNwZWNpZnkgZWFjaCBwYXJhbWV0ZXIgdXNpbmcgdGhlIGAtLXNldCBrZXk9dmFsdWVbLGtleT12YWx1ZV1gIGFyZ3VtZW50IHRvIGBoZWxtIGluc3RhbGxgLiBGb3IgZXhhbXBsZSwKCmBgYGJhc2gKJCBoZWxtIGluc3RhbGwgLS1uYW1lIG15LXJlbGVhc2UgXAogIC0tc2V0IGxlZ28uZW5hYmxlZD1mYWxzZSBcCiAgICBzdGFibGUvbmdpbngtbGVnbwpgYGAKCkluc3RhbGxzIHRoZSBjaGFydCB3aXRob3V0IGt1YmUtbGVnbyBhbmQgdGhlIGFiaWxpdHkgdG8gZ2VuZXJhdGUgY2VydHMuCgpBbHRlcm5hdGl2ZWx5LCBhIFlBTUwgZmlsZSB0aGF0IHNwZWNpZmllcyB0aGUgdmFsdWVzIGZvciB0aGUgcGFyYW1ldGVycyBjYW4gYmUgcHJvdmlkZWQgd2hpbGUgaW5zdGFsbGluZyB0aGUgY2hhcnQuIEZvciBleGFtcGxlLAoKYGBgYmFzaAokIGhlbG0gaW5zdGFsbCAtLW5hbWUgbXktcmVsZWFzZSAtZiB2YWx1ZXMueWFtbCBzdGFibGUvbmdpbngtbGVnbwpgYGAKCj4gKipUaXAqKjogWW91IGNhbiB1c2UgdGhlIGRlZmF1bHQgW3ZhbHVlcy55YW1sXSh2YWx1ZXMueWFtbCkK" HelmClusterChartsListResponse: type: array items: $ref: '#/components/schemas/HelmChartDetailsResponse' InstallSecretsRequest: type: object required: - namespace properties: namespace: type: string example: "default" query: type: object properties: type: type: string example: "amazon" ids: type: array items: type: string example: ["02ba59be9de457d3f04a02add7238489cf927511c6cd2a8a2aede19eac2a299b"] tags: type: array items: type: string example: ["repo:pipeline"] InstallSecretRequest: type: object required: - namespace properties: sourceSecretName: type: string example: my-secret namespace: type: string example: "default" spec: type: object additionalProperties: $ref: '#/components/schemas/InstallSecretRequestSpecItem' InstallSecretRequestSpecItem: type: object properties: source: type: string sourceMap: type: object additionalProperties: type: string value: type: string InstallSecretResponse: type: object required: - name properties: name: type: string example: "my-aws-secret" TokenCreateRequest: type: object properties: name: type: string example: my API token virtualUser: type: string example: banzaicloud/pipeline expiresAt: type: string nullable: true format: date-time example: "2018-03-09T13:24:49+01:00" TokenCreateResponse: type: object required: - id - token - name properties: id: type: string example: f24c74d7-53f3-4d78-b3d4-f23f89e81bec token: type: string example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL3BpcGVsaW5lLmJhbnphaWNsb3VkLmNvbSIsImp0aSI6ImYyNGM3NGQ3LTUzZjMtNGQ3OC1iM2Q0LWYyM2Y4OWU4MWJlYyIsImlhdCI6MTUyNzg0NTQ1OCwiaXNzIjoiaHR0cHM6Ly9iYW56YWljbG91ZC5jb20vIiwic3ViIjoiMSIsInNjb3BlIjoiYXBpOmludm9rZSIsInR5cGUiOiJ1c2VyIiwidGV4dCI6ImJvbmlmYWlkbyJ9.DMQcM0De3A_R1JOPDGqharh9NIjz-uBFeJgiq5JSej0 name: type: string example: my API token TokenListResponseItem: type: object required: - id - createdAt - name properties: id: type: string example: f24c74d7-53f3-4d78-b3d4-f23f89e81bec createdAt: type: string example: "2018-06-01T11:26:40.044297036+02:00" name: type: string example: my API token SecretItem: type: object properties: id: type: string example: "6fa2288c361becce3e30ba4c41be7d8ba01e3580566f7acc76a7f99994474c46" name: type: string example: "my-google-secret" type: type: string example: "google" updatedAt: type: string format: date-time example: "2018-03-09T13:24:49+01:00" updatedBy: type: string example: banzaiuser tags: type: array items: type: string example: [ "tag1", "tag2" ] values: type: object example: type: "" project_id: "" private_key_id: "" private_key: "" client_email: "" client_id: "" auth_uri: "" token_uri: "" auth_provider_x509_cert_url: "" client_x509_cert_url: "" SecretTags: type: array items: type: string example: [ "scope:tag1", "scope:tag2" ] CreateSecretResponse: type: object required: - id - name - type properties: name: type: string example: "My-google-secret" type: type: string example: "google" id: type: string example: "62bc3c75-91fb-4670-bad4-24b401a9deac" error: type: string example: "Validation failed" updatedAt: type: string format: date-time example: "2018-07-01T08:27:23.2636996Z" updatedBy: type: string example: "username" version: type: integer example: 1 tags: type: array items: type: string example: [ "repo:pipeline", "tag2" ] CreateSecretRequest: type: object required: - name - type - values properties: name: type: string example: "My google secret" type: type: string example: "google" tags: type: array items: type: string example: [ "repo:pipeline", "tag2" ] values: # additionalProperties: # oneOf: # - # $ref: '#/components/schemas/SecretKeyValueAmazon' # - # $ref: '#/components/schemas/SecretKeyValueAzure' # - # $ref: '#/components/schemas/SecretKeyValueGoogle' # - # $ref: '#/components/schemas/SecretKeyValueKubernetes' # - # $ref: '#/components/schemas/SecretKeyValueGeneric' # - # $ref: '#/components/schemas/SecretKeyValueTLS' example: type: string project_id: string private_key_id: string private_key: string client_email: string client_id: string auth_uri: string token_uri: string auth_provider_x509_cert_url: string client_x509_cert_url: string type: object SecretKeyValueAmazon: type: object required: - AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY properties: AWS_ACCESS_KEY_ID: type: string AWS_SECRET_ACCESS_KEY: type: string SecretKeyValueAzure: type: object required: - AZURE_CLIENT_ID - AZURE_CLIENT_SECRET - AZURE_TENANT_ID - AZURE_SUBSCRIPTION_ID properties: AZURE_CLIENT_ID: type: string AZURE_CLIENT_SECRET: type: string AZURE_TENANT_ID: type: string AZURE_SUBSCRIPTION_ID: type: string SecretKeyValueGoogle: type: object required: - type - project_id - private_key_id - private_key - client_email - client_id - auth_uri - token_uri - auth_provider_x509_cert_url - client_x509_cert_url properties: type: type: string project_id: type: string private_key_id: type: string private_key: type: string client_email: type: string client_id: type: string auth_uri: type: string token_uri: type: string auth_provider_x509_cert_url: type: string client_x509_cert_url: type: string SecretKeyValueTLS: type: object required: - hosts properties: hosts: type: string validity: type: string caCert: type: string caKey: type: string serverCert: type: string serverKey: type: string clientCert: type: string clientKey: type: string SecretKeyValueKubernetes: type: object properties: K8Sconfig: type: string SecretKeyValueGeneric: type: object properties: any: type: string OrganizationListItemResponse: type: object properties: id: type: integer example: 1 createdAt: type: string example: "2018-03-09T13:24:49+01:00" updatedAt: type: string example: "2018-03-09T13:24:49+01:00" name: type: string example: "me@example.com" normalizedName: type: string example: "me-example-com" User: type: object properties: id: type: integer example: 1 createdAt: type: string example: "2018-03-09T13:24:49+01:00" updatedAt: type: string example: "2018-03-09T13:24:49+01:00" name: type: string example: "myName" email: type: string example: "my@email.com" login: type: string example: "username" image: type: string example: "githubImageUrl.com/imageId/3" organizations: type: object example: null SecretTypeResponse: type: object properties: fields: type: array items: type: object properties: name: type: string required: type: boolean isSafeToDisplay: type: boolean description: type: string ListUserResponse: type: array items: $ref: '#/components/schemas/User' GetClusterStatusResponse: type: object properties: status: type: string example: "RUNNING" statusMessage: type: string example: "Cluster is running" name: type: string example: "myClusterName" cloud: type: string example: "google" distribution: type: string example: "gke" version: type: string example: "1.12.6-gke.10" spot: type: boolean example: false location: type: string example: "us-central1-a" id: type: integer example: 1 logging: type: boolean example: false monitoring: type: boolean example: false securityscan: type: boolean example: false createdAt: type: string example: "2018-07-03T14:23:19+02:00" startedAt: type: string example: "2018-07-03T14:23:29+02:00" creatorName: type: string example: "userName" creatorId: type: integer example: 1 region: type: string example: "us-central1" oidc: $ref: '#/components/schemas/OIDCConfig' nodePools: type: object additionalProperties: $ref: '#/components/schemas/NodePoolStatus' totalSummary: $ref: '#/components/schemas/ResourceSummary' NodePoolStatus: oneOf: - $ref: '#/components/schemas/NodePoolStatusAmazon' - $ref: '#/components/schemas/NodePoolStatusAzure' - $ref: '#/components/schemas/NodePoolStatusGoogle' - $ref: '#/components/schemas/NodePoolStatusVSphere' example: count: 1 instanceType: "n1-standard-1" NodePoolStatusAmazon: type: object properties: instanceType: type: string example: "m4.xlarge" spotPrice: type: string example: "0.2" autoscaling: type: boolean example: true count: type: integer example: 1 minCount: type: integer example: 1 maxCount: type: integer example: 2 image: type: string example: "ami-4d485ca7" labels: type: object additionalProperties: type: string example: example.io/label1: value1 resourceSummary: type: object additionalProperties: $ref: '#/components/schemas/ResourceSummary' NodePoolStatusAzure: type: object properties: autoscaling: type: boolean example: true count: type: integer example: 1 minCount: type: integer example: 1 maxCount: type: integer example: 2 instanceType: type: string example: "Standard_D4_v2" resourceSummary: type: object additionalProperties: $ref: '#/components/schemas/ResourceSummary' NodePoolStatusGoogle: type: object properties: autoscaling: type: boolean example: true count: type: integer example: 1 minCount: type: integer example: 1 maxCount: type: integer example: 2 instanceType: type: string example: "n1-standard-1" resourceSummary: type: object additionalProperties: $ref: '#/components/schemas/ResourceSummary' NodePoolStatusVSphere: type: object properties: count: type: integer example: 1 ram: type: integer example: 4096 vcpu: type: integer example: 2 template: type: string example: "centos-7-pke-202001171452" resourceSummary: type: object additionalProperties: $ref: '#/components/schemas/ResourceSummary' CreateObjectStoreBucketRequest: type: object required: - name - properties properties: secretId: type: string secretName: type: string example: "my-aws-secret" name: type: string example: "mybucket" properties: $ref: '#/components/schemas/CreateObjectStoreBucketProperties' CreateObjectStoreBucketProperties: type: object properties: amazon: $ref: '#/components/schemas/CreateAmazonObjectStoreBucketProperties' azure: $ref: '#/components/schemas/CreateAzureObjectStoreBucketProperties' google: $ref: '#/components/schemas/CreateGoogleObjectStoreBucketProperties' CreateAmazonObjectStoreBucketProperties: type: object nullable: true required: - location properties: location: type: string example: "eu-west-1" CreateGoogleObjectStoreBucketProperties: type: object nullable: true required: - location properties: location: type: string example: "europe" CreateAzureObjectStoreBucketProperties: type: object nullable: true required: - storageAccount - resourceGroup - location properties: storageAccount: type: string example: "mystorageaccount" location: type: string example: "westeurope" resourceGroup: type: string CreateObjectStoreBucketResponse: type: object required: - name - cloud properties: name: type: string example: "mybucket" cloud: type: string enum: [amazon, azure, google] example: amazon BucketInfo: type: object required: - name - managed - cloud - location - status properties: name: description: "the name of the object storage / bucket" type: string example: "mybucket" managed: description: "true if the bucket has been created via pipeline" type: boolean example: true cloud: description: "cloud provider of the bucket" type: string example: "amazon" location: description: "location of the bucket" type: string example: "eu-west-1" notes: description: "notes for the bucket" type: string example: "There's no secret with this ID" secret: type: object required: - id properties: id: type: string example: "cc051aeaf686444e2f125d0e79eb051aaaf4fb73384f7b0f8c89e84a0502dca1" name: type: string example: "mysecretname" accessId: description: "the secret identifier of the azure access information" type: string example: "cc051aeaf686444e2f125d0e79eb051aaaf4fb73384f7b0f8c89e84a0502dcef" accessName: description: "the secret name of the azure access information" type: string example: "myaccesssecretname" aks: $ref: '#/components/schemas/AzureBlobStorageProps' status: description: the status of the bucket type: string enum: [CREATING, AVAILABLE, ERROR_CREATE, DELETING, ERROR_DELETE] statusMessage: description: the reason for the error status type: string ListStorageBucketsResponse: type: array items: $ref: '#/components/schemas/BucketInfo' SubnetInfo: type: object required: - cidrs - id properties: cidrs: description: "The IPv4 CIDR blocks assigned to the subnet" type: array items: type: string example: "10.0.1.0/24" id: description: "Identifier of the subnetwork" type: string example: "subnet-9d4a7b6c" location: description: "The location of the subnetwork." type: string example: "us-central1-a" name: description: "Name of the subnetwork" type: string example: "MySubnet" ListVPCSubnetsResponse: type: array items: $ref: '#/components/schemas/SubnetInfo' RouteTableInfo: type: object required: - id properties: id: description: "Identifier of the route table" type: string example: "rtb-12345678" name: description: "Name of the route table" type: string example: "My little route table" ListRouteTablesResponse: type: array items: $ref: '#/components/schemas/RouteTableInfo' VPCNetworkInfo: type: object required: - cidrs - id properties: cidrs: description: "The IPv4 CIDR blocks assigned to the VPC network" type: array items: type: string example: "10.50.0.0/16" id: description: "Identifier of the VPC network" type: string example: "vpc-a01106c2" name: description: "Name of the VPC network" type: string example: "MyVPC" ListVPCNetworksResponse: type: array items: $ref: '#/components/schemas/VPCNetworkInfo' AzureBlobStorageProps: type: object required: - resourceGroup - storageAccount properties: resourceGroup: type: string storageAccount: type: string PodDetailsResponse: type: array items: $ref: '#/components/schemas/PodItem' PodItem: type: object properties: name: type: string example: "pipeline-traefik-7c47dc7bd7-twzpl" namespace: type: string example: "default" createdAt: type: string example: "2018-08-01T09:04:33+02:00" labels: type: object properties: app: type: string example: "pipeline-traefik" chart: type: string example: "traefik-1.14.2" release: type: string example: "pipeline" restartPolicy: type: string example: "Always" conditions: type: array items: $ref: '#/components/schemas/PodCondition' resourceSummary: $ref: '#/components/schemas/ResourceSummary' PodCondition: type: object properties: type: type: string example: "Initialized" status: type: string example: "True" lastProbeTime: type: string example: null lastTransitionTime: type: string example: "2018-08-01T07:04:37Z" OIDCConfig: type: object properties: enabled: type: boolean idpUrl: type: string clientId: type: string clientSecret: type: string ResourceSummary: type: object properties: cpu: $ref: '#/components/schemas/Resource' memory: $ref: '#/components/schemas/Resource' status: type: string Resource: type: object properties: capacity: type: string example: "4" allocatable: type: string example: "4" limit: type: string example: "100m" request: type: string example: "380m" BasePostHook: type: object properties: PostHookFunctionName: type: object PostHooks: oneOf: # Note: in OpenAPI generator 4.3.1 single reference # allOf/anyOf/oneOf schemas are generating empty Golang model # types. The workaround is to add a second reference which does # not modify the actual structure of the resulting type by using # duplicate fields or even duplicate schemas. # # Issue: # https://github.com/OpenAPITools/openapi-generator/issues/2164 # # Pull request: # https://github.com/OpenAPITools/openapi-generator/pull/2897 - $ref: '#/components/schemas/BasePostHook' - $ref: '#/components/schemas/BasePostHook' ReRunPostHook: type: object example: InstallIngressController: CreateResourceGroup: type: object required: - name - location - secretId properties: name: type: string example: "newResourceGroupName" location: type: string example: "westeurope" secretId: type: string example: "62bc3c75-91fb-4670-bad4-24b401a9deac" ResourceGroupCreated: type: object properties: name: type: string example: "NewResourceGroupName" ScanLogList: type: array items: $ref: "#/components/schemas/ScanLogItem" ScanLogItem: type: object properties: releaseName: type: string example: 'flying-monkey' resource: type: string example: 'banzaicloud' image: type: array items: $ref: "#/components/schemas/ScanLogItemImage" result: example: ['nginx:latest policy check failed', 'busybox:latest policy check success'] type: array items: type: string action: example: 'allow' type: string enum: [allow, reject] ScanLogItemImage: type: object properties: imageName: type: string example: 'docker.io/redis' imageTag: type: string example: 'latest' imageDigest: type: string example: 'sha256:93ce9120377effb33fc8ab25cc5fb6ab736982aa4524adb89324c031e47b33ac' lastUpdated: type: string example: '2018-11-11T14:35:38Z' ReleaseWhiteList: type: array items: $ref: "#/components/schemas/ReleaseWhiteListItem" ReleaseWhiteListItem: type: object required: - name - owner properties: name: type: string example: 'flying-monkey-wl' owner: type: string example: 'banzaicloud' reason: example: 'test release' type: string DeploymentImageList: type: array items: $ref: "#/components/schemas/ClusterImage" ClusterImageList: type: array items: $ref: "#/components/schemas/ClusterImage" ClusterImage: type: object properties: imageName: type: string example: 'docker.io/alpine' imageTag: type: string example: 'latest' imageDigest: type: string GoogleProjects: description: List of Google Cloud projects. type: object properties: projects: type: array items: $ref: '#/components/schemas/GoogleProject' GoogleProject: description: Details of a Google Cloud project. type: object properties: name: type: string projectId: type: string projectNumber: type: string lifecycleState: type: string EKSVpc: type: object properties: vpcId: type: string description: The identifier of existing VPC to be used for creating the EKS cluster. If not provided a new VPC is created for the cluster. cidr: type: string default: 192.168.0.0/16 description: The CIDR range for the VPC in case new VPC is created. EKSSubnet: type: object properties: subnetId: type: string description: Id of existing subnet to use for creating the EKS cluster. If not provided new subnet will be created. cidr: type: string description: The CIDR range for the subnet in case new Subnet is created. availabilityZone: type: string description: The AZ to create the subnet into. EKSIam: type: object properties: clusterRoleId: type: string description: The identifier of existing IAM role to be used for creating the EKS cluster. If not provided a new IAM role is created for the cluster (requires IAM Write Access). nodeInstanceRoleId: type: string description: The identifier of existing IAM role to be used for creating the EKS nodes. If not provided a new IAM role is created for the nodes (requires IAM Write Access). defaultUser: type: boolean default: false description: Marks if the userid associated with the clusters AWS secret has to be used in kubeconfig (bypasses IAM user creation). GetClusterBootstrapResponse: type: object properties: token: type: string example: "r6pyrk.6n1wv3twavjcnevr" discoveryTokenCaCertHash: type: string masterAddress: type: string example: "8.9.10.11:443" GetPKECommandsResponse: type: object properties: additionalProperties: type: string example: "pke-installer install --pipeline-url=\"http://127.0.0.1:9090\" --pipeline-token=XXX --pipeline-org-id=3 --pipeline-cluster-id=19 --node-pool=\"distrMaster\" --role=master" PostReadyPKENodeRequest: type: object properties: config: type: string example: c3ppYQo= description: kubeconfig in base64 or empty if not a master name: type: string example: my-node description: name of node nodePool: type: string example: master description: name of nodepool ip: type: string example: 127.0.0.1 description: ip address of node (where the other nodes can reach it) master: type: boolean description: if this node is a master node example: true worker: type: boolean description: if this node is a worker node example: false ReportPKENodeStatusRequest: type: object properties: name: type: string example: my-node description: name of node nodePool: type: string example: master description: name of nodepool ip: type: string example: 127.0.0.1 description: ip address of node (where the other nodes can reach it) message: type: string example: installing docker daemon description: detailed description about the current bootstrapping status (including the cause of the failure) phase: type: string description: the current phase of the bootstrap process example: pre-flight final: type: boolean description: if this is the final status report, that describes the conclusion of the whole process status: $ref: '#/components/schemas/ProcessStatus' timestamp: type: string nullable: true format: date-time description: exact time of event processId: description: ID of the process registered earlier (register new process if empty) type: string PKEClusterReadinessResponse: type: object properties: master: type: object properties: ready: type: boolean description: true when the node has been reported to be ready example: true PostLeaderElectionRequest: type: object required: - hostname properties: hostname: type: string example: node-0.my.cloud.com ip: type: string example: 10.20.30.40 UpdateClusterRequest: oneOf: # Note: in OpenAPI generator 4.3.1 single reference # allOf/anyOf/oneOf schemas are generating empty Golang model # types. The workaround is to add a second reference which does # not modify the actual structure of the resulting type by using # duplicate fields or even duplicate schemas. # # Issue: # https://github.com/OpenAPITools/openapi-generator/issues/2164 # # Pull request: # https://github.com/OpenAPITools/openapi-generator/pull/2897 - $ref: '#/components/schemas/EksUpdateClusterRequest' - $ref: '#/components/schemas/EksUpdateClusterRequest' EksUpdateClusterRequest: type: object properties: version: type: string example: "1.17" PostLeaderElectionResponse: type: object required: - hostname properties: hostname: type: string example: node-0.my.cloud.com ip: type: string example: 10.20.30.40 GetRestoreResponse: "$ref": "#/components/schemas/RestoreResponse" GetRestoreResultsResponse: "$ref": "#/components/schemas/RestoreResultsResponse" ListRestoresResponse: type: array items: "$ref": "#/components/schemas/RestoreResponse" ListSchedulesResponse: type: array items: "$ref": "#/components/schemas/ScheduleResponse" ListBackupsResponse: type: array items: "$ref": "#/components/schemas/BackupResponse" GetBackupResponse: "$ref": "#/components/schemas/BackupResponse" CreateBackupBucketResponse: "$ref": "#/components/schemas/BackupBucketResponse" BackupServiceStatusResponse: "$ref": "#/components/schemas/BackupServiceResponse" ListBackupBucketsResponse: type: array items: "$ref": "#/components/schemas/BackupBucketResponse" GetBackupBucketResponse: "$ref": "#/components/schemas/DeployedBackupBucketResponse" RestoreResultARK: type: array items: type: string example: [] RestoreResultCluster: type: array items: type: string example: [] RestoreResultNamespaces: type: object additionalProperties: type: array items: type: string example: [] RestoreResultNamespacesWarnings: type: object additionalProperties: type: array items: type: string description: "warnings during restoration process" example: { "default": [ "not restored: services \"kubernetes\" already exists and is different from backed up version.", "not restored: services \"pipeline-traefik-metrics-prometheus\" already exists and is different from backed up version.", "not restored: services \"pipeline-traefik\" already exists and is different from backed up version." ] } RestoreResultErrors: type: object properties: ark: "$ref": "#/components/schemas/RestoreResultARK" cluster: "$ref": "#/components/schemas/RestoreResultCluster" namespaces: "$ref": "#/components/schemas/RestoreResultNamespaces" RestoreResultWarnings: type: object properties: ark: "$ref": "#/components/schemas/RestoreResultARK" cluster: "$ref": "#/components/schemas/RestoreResultCluster" namespaces: "$ref": "#/components/schemas/RestoreResultNamespacesWarnings" RestoreResultsResponse: type: object properties: errors: "$ref": "#/components/schemas/RestoreResultErrors" warnings: "$ref": "#/components/schemas/RestoreResultWarnings" RestoreResponse: type: object properties: id: type: integer example: 1 uid: type: string example: "494ec414-b6cb-11e8-9916-42010aa400f6" name: type: string example: "full-backup-schedule-20180912223445" backupName: type: string example: "full-backup-schedule" options: "$ref": "#/components/schemas/BackupOptions" status: type: string example: "InProgress" warnings: type: integer example: 3 errors: type: integer example: 0 CreateRestoreRequest: type: object properties: backupName: type: string example: "full-backup" options: "$ref": "#/components/schemas/BackupOptions" required: - backupName CreateRestoreResponse: type: object properties: restore: "$ref": "#/components/schemas/RestoreResponse" status: type: integer example: 200 DeleteRestoreResponse: type: object properties: id: type: integer example: 1 status: type: integer example: 200 CreateScheduleRequest: type: object properties: name: type: string example: "full-backup-schedule" schedule: type: string example: "0 */6 * * *" ttl: type: string example: "720h0m0s" labels: "$ref": "#/components/schemas/Labels" options: "$ref": "#/components/schemas/BackupOptions" required: - name - schedule - ttl DeleteScheduleResponse: type: object properties: name: type: string example: "full-backup-schedule" status: type: integer example: 200 CreateScheduleResponse: type: object properties: name: type: string example: "full-backup-schedule" status: type: integer example: 200 ScheduleResponse: type: object properties: uid: type: string example: "432d4d27-b48f-11e8-9916-42010aa400f6" name: type: string example: "full-backup-schedule" schedule: type: string example: "0 */6 * * *" ttl: type: string example: "720h0m0s" labels: "$ref": "#/components/schemas/Labels" options: "$ref": "#/components/schemas/BackupOptions" status: type: string example: "Enabled" lastBackup: type: string example: "2018-09-13T11:59:11+02:00" CreateBackupRequest: type: object properties: name: type: string example: full-backup ttl: type: string example: "30m" labels: "$ref": "#/components/schemas/Labels" options: "$ref": "#/components/schemas/BackupOptions" required: - name - ttl CreateBackupResponse: type: object properties: id: type: integer example: 1 status: type: integer example: 200 DeleteBackupResponse: type: object properties: id: type: integer example: 1 status: type: integer example: 200 BackupResponse: type: object properties: id: type: integer example: 1 uid: type: string example: "432d4d27-b48f-11e8-9916-42010aa400f6" name: type: string example: "full-backup" ttl: type: string example: "720h0m0s" labels: "$ref": "#/components/schemas/Labels" options: "$ref": "#/components/schemas/BackupOptions" cloud: type: string example: "google" distribution: type: string example: "gke" status: type: string example: "Completed" startAt: type: string example: "2018-09-10T02:20:03+02:00" expireAt: type: string example: "2018-10-10T02:20:03+02:00" clusterId: type: integer example: 1 CreateBackupBucketRequest: type: object properties: cloud: type: string example: "google" bucketName: type: string example: "ark-backup-bucket-123" secretId: type: string example: "61b9707ca463cad79188bb0ddfa1345e41fc01b651feddf06eea58a25c56d717" prefix: type: string example: "my-backup-prefix" description: "Optional, if not provided will be set to the name of the cluster" location: type: string example: "us-east" storageAccount: type: string example: "my-storage-account" description: "required only in case of Azure" resourceGroup: type: string example: "my-resource-group" description: "required only case of Azure" required: - cloud - bucketName - secretId BackupBucketResponse: type: object properties: id: type: integer example: 5 name: type: string example: "ark-backup-bucket-123" cloud: type: string example: "google" secretId: type: string example: "61b9707ca463cad79188bb0ddfa1345e41fc01b651feddf06eea58a25c56d717" status: type: string example: "available" inUse: type: boolean example: false DeployedBackupBucketResponse: type: object properties: id: type: integer example: 5 name: type: string example: "ark-backup-bucket-123" cloud: type: string example: "google" secretId: type: string example: "61b9707ca463cad79188bb0ddfa1345e41fc01b651feddf06eea58a25c56d717" status: type: string example: "deployed" inUse: type: boolean example: false deploymentId: type: integer example: 1 clusterId: type: integer example: 1 clusterCloud: type: string example: google clusterDistribution: type: string example: gke DeleteBackupBucketResponse: type: object properties: id: type: integer example: 1 status: type: integer example: 200 DisableARKResponse: type: object properties: status: type: integer example: 200 EnableARKResponse: type: object properties: status: type: integer example: 200 EnableARKRequest: type: object required: - cloud - bucketName - secretId - schedule - ttl properties: cloud: type: string example: "google" bucketName: type: string example: "ark-backup-bucket-123" schedule: type: string example: "0 */6 * * *" ttl: type: string example: "1h" secretId: type: string example: "62bc3c75-91fb-4670-bad4-24b401a9deac" location: type: string example: "us-east" useClusterSecret: type: boolean example: false description: "relevant only in case of Amazon clusters. By default set to false in which case you must add snapshot permissions to your node instance role. Should you set to true Pipeline will deploy your cluster secret to the cluster." serviceAccountRoleARN: type: string example: "arn:aws:iam::AWS_ACCOUNT_ID:role/IAM_ROLE_NAME" description: "relevant only in case of Amazon clusters. This a third option to give permissions for volume snapshots to Velero, besides the default NodeInstance role or cluster secret deployment." useProviderSecret: type: boolean example: false description: "relevant only in case of Amazon clusters. This a fourth option to give permissions for volume snapshots to Velero. Should you set to true Pipeline will configure your provider secret (specified in secretId) for volume snapshot." storageAccount: type: string example: "my-storage-account" description: "required only case of Azure" resourceGroup: type: string example: "my-resource-group" description: "required only case of Azure" labels: "$ref": "#/components/schemas/Labels" options: "$ref": "#/components/schemas/BackupOptions" Labels: title: Labels example: backup-type: full type: object properties: backup-type: example: full type: string BackupOptions: title: Backup Options example: includedNamespaces: ["*"] includedResources: ["*"] excludedNamespaces: [] excludedResources: [] snapshotVolumes: true includeClusterResources: true type: object properties: includedNamespaces: example: ["*"] type: array items: type: string includedResources: example: ["*"] type: array items: type: string excludedNamespaces: example: [] type: array items: type: string excludedResources: example: [] type: array items: type: string snapshotVolumes: example: true type: boolean includeClusterResources: example: true type: boolean GetLeaderElectionResponse: type: object required: - hostname properties: hostname: type: string example: node-0.my.cloud.com ip: type: string example: 10.20.30.40 api.ClusterGroup: properties: enabledFeatures: items: type: string type: array id: example: 10 type: integer members: items: $ref: "#/components/schemas/api.Member" type: array name: type: string organizationId: type: integer uid: type: string type: object api.CreateRequest: properties: members: items: type: integer type: array name: example: cluster_group_name type: string type: object api.CreateResponse: properties: id: type: integer name: example: cluster_group_name type: string type: object api.FeatureRequest: type: object api.FeatureResponse: properties: clusterGroup: $ref: "#/components/schemas/api.ClusterGroup" enabled: type: boolean lastReconcileError: type: string name: type: string properties: $ref: "#/components/schemas/api.FeatureRequest" reconcileState: type: string status: type: object type: object api.Member: properties: cloud: example: google type: string distribution: example: gke type: string id: example: 1001 type: integer name: example: clusterName type: string status: type: string type: object api.UpdateRequest: properties: members: items: type: integer type: array name: example: cluster_group_name type: string type: object api.UpdateResponse: properties: id: type: integer name: example: cluster_group_name type: string type: object deployment.ClusterGroupDeployment: properties: atomic: type: boolean dryrun: type: boolean name: type: string namespace: type: string package: items: type: integer type: array releaseName: type: string reuseValues: type: boolean rollingMode: type: boolean valueOverrides: type: object values: type: object version: type: string required: - name type: object deployment.CreateUpdateDeploymentResponse: properties: releaseName: type: string targetClusters: items: $ref: "#/components/schemas/deployment.TargetClusterStatus" type: array type: object deployment.DeploymentInfo: properties: chart: type: string chartName: type: string chartVersion: type: string createdAt: type: string description: type: string namespace: type: string releaseName: type: string targetClusters: items: $ref: "#/components/schemas/deployment.TargetClusterStatus" type: array updatedAt: type: string valueOverrides: type: object values: type: object version: type: integer type: object deployment.ListDeploymentResponse: properties: chart: type: string chartName: type: string chartVersion: type: string createdAt: type: string namespace: type: string releaseName: type: string updatedAt: type: string version: type: integer type: object deployment.TargetClusterStatus: properties: cloud: type: string clusterId: type: integer clusterName: type: string distribution: type: string error: type: string stale: type: boolean status: type: string version: type: string type: object BackupServiceResponse: type: object properties: enabled: type: boolean IntegratedServiceList: type: object additionalProperties: $ref: "#/components/schemas/IntegratedServiceDetails" ActivateIntegratedServiceRequest: type: object required: - spec properties: spec: $ref: "#/components/schemas/IntegratedServiceSpec" IntegratedServiceDetails: type: object required: - status properties: output: type: object spec: $ref: "#/components/schemas/IntegratedServiceSpec" status: type: string enum: [inactive, pending, active, error] UpdateIntegratedServiceRequest: type: object required: - spec properties: spec: $ref: "#/components/schemas/IntegratedServiceSpec" IntegratedServiceSpec: type: object ListNodepoolLabelsResponse: type: object additionalProperties: type: array items: $ref: '#/components/schemas/NodepoolLabels' NodepoolLabels: type: object properties: name: type: string value: type: string reserved: type: boolean NamespaceListResponse: type: object properties: namespaces: $ref: "#/components/schemas/NamespaceList" NamespaceList: type: array items: $ref: "#/components/schemas/NamespaceItem" NamespaceItem: type: object properties: name: type: string ListProcessesResponse: type: array items: $ref: '#/components/schemas/Process' Process: type: object properties: id: type: string parentId: type: string orgId: type: integer type: type: string log: type: string resourceId: type: string resourceType: type: string status: $ref: '#/components/schemas/ProcessStatus' startedAt: type: string format: date-time finishedAt: type: string nullable: true format: date-time events: type: array items: $ref: '#/components/schemas/ProcessEvent' ProcessEvent: type: object properties: id: type: integer processId: type: string type: type: string log: type: string status: $ref: '#/components/schemas/ProcessStatus' timestamp: type: string format: date-time ProcessStatus: title: ProcessStatus enum: [running, failed, finished, canceled]