diff --git a/docs/swagger/devtron_swagger.yaml b/docs/swagger/devtron_swagger.yaml new file mode 100644 index 0000000000..25a25c6964 --- /dev/null +++ b/docs/swagger/devtron_swagger.yaml @@ -0,0 +1,12108 @@ +openapi: 3.0.3 +info: + title: Devtron API + description: Compiled API specification for Devtron + version: 1.0.0 + contact: + name: Devtron Labs + url: https://github.com/devtron-labs/devtron +paths: + /orchestrator/application: + post: + description: this api gives all external application+ devtron helm chart applications. + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/HelmAppListRequest' + responses: + '200': + description: all application responces + content: + text/event-stream: + schema: + $ref: '#/components/schemas/AppList' + /orchestrator/application/release-info: + get: + description: deployment values.yaml/release-info + parameters: + - in: query + name: appId + example: 12|helm-app|cluster1-ns1 + description: project ids + required: true + allowEmptyValue: false + schema: + type: string + responses: + '200': + description: release and installed app info + content: + application/json: + schema: + $ref: '#/components/schemas/ReleaseAndInstalledAppInfo' + /orchestrator/application/hibernate: + post: + description: hibernate the app + requestBody: + required: false + content: + application/json: + schema: + $ref: '#/components/schemas/HibernateRequest' + responses: + '200': + description: hibernate success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/HibernateStatus' + /orchestrator/application/unhibernate: + post: + description: un hibernate the app + requestBody: + required: false + content: + application/json: + schema: + $ref: '#/components/schemas/HibernateRequest' + responses: + '200': + description: hibernate success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/HibernateStatus' + /orchestrator/application/cluster-env-details: + get: + description: returns cluster environment namespace mappings + responses: + '200': + description: all cluster-env mapping + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterEnvironmentDetailList' + /orchestrator/app/list/: + get: + description: this api gives all devtron applications. + parameters: + - in: query + name: projectIds + example: + - 12 + - 13 + description: project ids + required: true + allowEmptyValue: false + schema: + type: array + items: + type: integer + - in: query + name: clusterIds + example: + - 16 + - 13 + description: cluster ids + required: true + allowEmptyValue: false + schema: + type: array + items: + type: integer + - in: query + name: environmentIds + required: true + example: + - 56 + - 45 + description: environment ids + allowEmptyValue: true + schema: + type: array + items: + type: integer + - in: query + name: offset + example: 2 + description: offser + required: true + allowEmptyValue: false + schema: + type: integer + - in: query + name: size + example: 20 + description: size + required: true + allowEmptyValue: false + schema: + type: integer + - in: query + name: sortOrder + example: ASC + description: sortOrder + required: true + allowEmptyValue: false + schema: + type: string + enum: + - ASC + - DESC + - in: query + name: sortBy + example: appNameSort + description: sortBy + required: true + allowEmptyValue: false + schema: + type: string + enum: + - appNameSort + responses: + '200': + description: all application responces + content: + application/json: + schema: + $ref: '#/components/schemas/AppList' + /orchestrator/app-store/installed-apps/: + get: + description: this api gives all chart-store applications. + parameters: + - in: query + name: envIds + example: + - 1 + - 2 + description: environment ids + required: true + allowEmptyValue: true + schema: + type: array + items: + type: integer + - in: query + name: clusterIds + example: + - 16 + - 13 + description: cluster ids + required: true + allowEmptyValue: true + schema: + type: array + items: + type: integer + - in: query + name: onlyDeprecated + example: false + description: deprecated flag + required: true + allowEmptyValue: true + schema: + type: boolean + - in: query + name: chartRepoIds + example: + - 10 + - 12 + description: size + required: true + allowEmptyValue: true + schema: + type: integer + - in: query + name: offset + example: 2 + description: offser + required: true + allowEmptyValue: false + schema: + type: integer + - in: query + name: size + example: 20 + description: size + required: true + allowEmptyValue: false + schema: + type: integer + - in: query + name: appStoreName + example: appStoreName + description: app store name + required: true + allowEmptyValue: true + schema: + type: string + - in: query + name: sortBy + example: appName + description: app name + required: true + allowEmptyValue: true + schema: + type: string + responses: + '200': + description: all application responces + content: + application/json: + schema: + $ref: '#/components/schemas/AppList' + /orchestrator/application/desired-manifest: + get: + description: get desired manifest for an object + requestBody: + required: false + content: + application/json: + schema: + $ref: '#/components/schemas/DesiredManifestRequest' + responses: + '200': + description: desired manifest request success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DesiredManifestResponse' + /orchestrator/application/delete: + delete: + description: delete application + parameters: + - in: query + name: appId + example: 12|helm-app|cluster1-ns1 + description: application Id + required: true + allowEmptyValue: false + schema: + type: string + responses: + '200': + description: delete application request response + content: + application/json: + schema: + $ref: '#/components/schemas/UninstallReleaseResponse' + /orchestrator/application/update: + put: + description: update the application + requestBody: + required: false + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReleaseRequest' + responses: + '200': + description: application update success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateReleaseResponse' + /orchestrator/application/update/project: + put: + description: update project for all types of helm apps. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReleaseRequest' + responses: + '200': + description: Project Updated + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateProjectResponse' + /orchestrator/app-store/deployment/application/helm/link-to-chart-store: + put: + description: update the helm EA application with chartstore linking + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReleaseWithChartLinkingRequest' + responses: + '200': + description: application update success + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReleaseResponse' + /orchestrator/application/deployment-history: + get: + description: deployment history of helm app + parameters: + - in: query + name: appId + example: 12|helm-app|cluster1-ns1 + description: project ids + required: false + allowEmptyValue: false + schema: + type: string + - in: query + name: installedAppId + example: '100' + description: devtron charts installed instance id + required: false + allowEmptyValue: false + schema: + type: number + responses: + '200': + description: deployment history + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentHistoryAndInstalledAppInfo' + /orchestrator/application/deployment-history/info: + get: + description: deployment history detail info, values + parameters: + - in: query + name: appId + example: 12|helm-app|cluster1-ns1 + description: project ids + required: false + allowEmptyValue: false + schema: + type: string + - in: query + name: installedAppId + example: '100' + description: devtron charts installed instance id + required: false + allowEmptyValue: false + schema: + type: string + - in: query + name: version + example: 1 + description: installed app version id + required: true + allowEmptyValue: false + schema: + type: integer + format: int32 + responses: + '200': + description: deployment history detail info response + content: + application/json: + schema: + $ref: '#/components/schemas/HelmAppDeploymentManifestDetail' + /orchestrator/k8s/resource: + post: + description: this api will be used for fetching all kind of manifest. + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceRequestObject' + responses: + '200': + description: manifest fetch responces + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + $ref: '#/components/schemas/ResourceGetResponse' + put: + description: this api will be used for edit requested manifest. + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceRequestObject' + responses: + '200': + description: manifest edit responces + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + $ref: '#/components/schemas/ResourceGetResponse' + /orchestrator/k8s/resource/create: + post: + description: this api will be used for applying desired manifest + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceRequestObject' + responses: + '200': + description: create resource response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + $ref: '#/components/schemas/ResourceGetResponse' + /orchestrator/k8s/resource/delete: + post: + description: this api will be used for delete any resource. + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceRequestObject' + responses: + '200': + description: manifest fetch responces + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + $ref: '#/components/schemas/ResourceGetResponse' + /orchestrator/k8s/events: + post: + description: this api will be used for fetching events for resources. + requestBody: + required: false + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceRequestObject' + responses: + '200': + description: events success + content: + text/event-stream: + schema: + $ref: '#/components/schemas/EventsResponseObject' + /orchestrator/k8s/pods/logs/{podName}: + get: + description: this api will be used for fetching logs for container. + parameters: + - name: podName + in: path + required: true + schema: + type: string + - name: containerName + in: query + required: true + schema: + type: string + - name: appId + in: query + required: false + schema: + type: string + - name: clusterId + in: query + required: false + schema: + type: integer + - name: namespace + in: query + description: it is required when clusterId is passed + required: false + schema: + type: string + - name: follow + in: query + schema: + type: boolean + - name: sinceSeconds + in: query + schema: + type: integer + - name: tailLines + in: query + schema: + type: integer + responses: + '200': + description: events success + content: + text/event-stream: + schema: + $ref: '#/components/schemas/LogsResponseObject' + /orchestrator/k8s/pod/exec/session/{identifier}/{namespace}/{pod}/{shell}/{container}: + get: + description: get session for the terminal + parameters: + - in: path + name: identifier + schema: + type: string + required: true + description: application id or cluster id + example: 2|devtroncd|devtron or 3 + - in: path + name: namespace + schema: + type: string + required: true + description: namespace name + example: devtroncd + - in: path + name: pod + schema: + type: string + required: true + description: pod name + example: inception-58d44d99fd-tfw4s + - in: path + name: shell + schema: + type: string + oneOf: + - bash + - sh + - powershell + - cmd + required: true + description: shell to invoke + example: bash + - in: path + name: container + schema: + type: string + required: true + description: name of the container + example: devtron + responses: + 200: + description: session id + content: + application/json: + schema: + $ref: '#/components/schemas/TerminalMessage' + /orchestrator/k8s/api-resources/{clusterId}: + get: + description: Get All api resources for given cluster Id + parameters: + - name: clusterId + in: path + description: cluster Id + required: true + schema: + type: integer + format: int64 + responses: + '200': + description: Successfully fetched All api resources for given cluster Id + content: + application/json: + schema: + $ref: '#/components/schemas/GetAllApiResourcesResponse' + /orchestrator/k8s/resource/list: + post: + description: this api will be used for fetching all kind of manifest. + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceRequestObject' + responses: + '200': + description: list response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + description: app list + items: + $ref: '#/components/schemas/ClusterResourceListResponse' + /orchestrator/k8s/resources/rotate: + post: + description: this api will be used to rotate pods for provided resources + parameters: + - in: query + name: appId + description: app id + required: true + schema: + type: string + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RotatePodRequest' + responses: + '200': + description: response in array of each resource + content: + application/json: + schema: + $ref: '#/components/schemas/RotatePodResponse' + /orchestrator/k8s/resources/apply: + post: + description: this api will be used to apply the resources in cluster + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ApplyResourcesRequest' + responses: + '200': + description: response in array of each resource + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApplyResourcesResponse' + /orchestrator/cluster/delete: + post: + description: Delete Cluster + operationId: DeleteFromDb + requestBody: + description: A JSON object containing the cluster config + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterBean' + responses: + '200': + description: Successfully delete the cluster + content: + application/json: + schema: + type: string + example: Cluster deleted successfully. + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/env/delete: + post: + description: Delete Environment + operationId: Delete + requestBody: + description: A JSON object containing the env config + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentBean' + responses: + '200': + description: Successfully delete the environment + content: + application/json: + schema: + type: string + example: Environment deleted successfully. + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/team/delete: + post: + description: Delete Project + operationId: DeleteTeam + requestBody: + description: A JSON object containing the project config + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TeamRequest' + responses: + '200': + description: Successfully delete the project + content: + application/json: + schema: + type: string + example: Project deleted successfully. + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/git/provider/delete: + post: + description: Delete Git Provider + operationId: DeleteGitRepoConfig + requestBody: + description: A JSON object containing the provider config + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GitRegistry' + responses: + '200': + description: Successfully delete the git provider + content: + application/json: + schema: + type: string + example: Git Account deleted successfully. + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/docker/registry/delete: + post: + description: Delete Docker Registry + operationId: DeleteDockerRegistryConfig + requestBody: + description: A JSON object containing the registry config + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DockerArtifactStoreBean' + responses: + '200': + description: Successfully delete the registry + content: + application/json: + schema: + type: string + example: Container Registry deleted successfully. + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app-store/repo/delete: + post: + description: Delete Chart Repo + operationId: DeleteChartRepo + requestBody: + description: A JSON object containing the registry config + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ChartRepoDto' + responses: + '200': + description: Successfully delete the chart repo + content: + application/json: + schema: + type: string + example: Chart repo deleted successfully. + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/material/delete: + post: + description: Delete Git Material + operationId: DeleteMaterial + requestBody: + description: A JSON object containing the material config + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateMaterialDTO' + responses: + '200': + description: Successfully delete the git material + content: + application/json: + schema: + type: string + example: Git material deleted successfully. + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/chart-group/delete: + post: + description: Delete Chart Group + operationId: DeleteChartgroup + requestBody: + description: A JSON object containing the chart group + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ChartGroupBean' + responses: + '200': + description: Successfully delete the chart group + content: + application/json: + schema: + type: string + example: Chart group deleted successfully. + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/notification/channel/delete: + post: + description: Delete Notification Channel + operationId: DeleteNotificationChannelConfig + requestBody: + description: A JSON object containing the channel config + required: true + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/ChannelDto' + - $ref: '#/components/schemas/SlackConfigDto' + - $ref: '#/components/schemas/SESConfigDto' + responses: + '200': + description: Successfully delete the channel + content: + application/json: + schema: + type: string + example: Slack config deleted successfully. + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/cm/{appId}/{pipelineId}: + get: + description: fetch deployment details in history for deployed config maps + operationId: FetchDeploymentDetailsForDeployedCMHistory + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ConfigMapAndSecretHistoryDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/cs/{appId}/{pipelineId}: + get: + description: fetch deployment details in history for deployed secrets + operationId: FetchDeploymentDetailsForDeployedCSHistory + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ConfigMapAndSecretHistoryDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/template/{appId}/{pipelineId}: + get: + description: fetch deployment details in history for deployed deployment templates + operationId: FetchDeploymentDetailsForDeployedTemplatesHistory + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DeploymentTemplateHistoryDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/strategy/{appId}/{pipelineId}: + get: + description: fetch deployment details in history for deployed pipeline strategy + operationId: FetchDeploymentDetailsForDeployedStrategyHistory + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PipelineStrategyHistoryDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/cm/{appId}/{pipelineId}/{id}: + get: + description: fetch history for deployed config map by id + operationId: FetchDeployedCMHistoryById + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + - name: id + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DeploymentDetailsDataType' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/cs/{appId}/{pipelineId}/{id}: + get: + description: fetch history for deployed secret by id + operationId: FetchDeployedCSHistoryById + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + - name: id + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DeploymentDetailsDataType' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/template/{appId}/{pipelineId}/{id}: + get: + description: fetch history for deployed deployment template by id + operationId: FetchDeployedTemplatesHistoryById + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + - name: id + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DeploymentDetailsDataType' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/strategy/{appId}/{pipelineId}/{id}: + get: + description: fetch history for deployed pipeline strategy by id + operationId: FetchDeployedStrategyHistoryById + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + - name: id + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DeploymentDetailsDataType' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/cd-config/{appId}/{pipelineId}: + get: + description: fetch history for cd config (pre/post stage config) + operationId: FetchDeployedCdConfigHistory + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + - name: stage + in: query + required: true + schema: + type: string + enum: + - PRE_CD + - POST_CD + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PrePostCdScriptHistoryDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/k8s/capacity/cluster/list: + get: + description: get list of clusters + operationId: GetClusterList + responses: + '200': + description: Successfully return list of cluster + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ClusterCapacityDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/k8s/capacity/cluster/{clusterId}: + get: + description: get cluster detail + operationId: GetClusterDetail + parameters: + - name: clusterId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return detail of cluster + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterCapacityDetailDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/k8s/capacity/node/list: + get: + description: get node list + operationId: GetNodeList + parameters: + - name: clusterId + in: query + required: true + schema: + type: integer + responses: + '200': + description: Successfully return list of node + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NodeCapacityDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/k8s/capacity/node: + get: + description: get node detail + operationId: GetNodeDetail + parameters: + - name: clusterId + in: query + required: true + schema: + type: integer + - name: name + in: query + required: true + schema: + type: string + description: name of node + responses: + '200': + description: Successfully return node detail + content: + application/json: + schema: + $ref: '#/components/schemas/NodeCapacityDetailDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + description: update node manifest + operationId: UpdateNodeManifest + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodeManifestUpdateDto' + responses: + '200': + description: Successfully return updated node manifest + content: + application/json: + schema: + $ref: '#/components/schemas/NodeManifestUpdateResponse' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + description: delete node detail + operationId: DeleteNode + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodeDeleteDto' + responses: + '200': + description: Successfully return node detail + content: + application/json: + schema: + $ref: '#/components/schemas/NodeCapacityDetailDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/k8s/capacity/node/cordon: + put: + description: cordon/unCordon node + operationId: CordonOrUnCordonNode + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodeCordonReqDto' + responses: + '200': + description: Return successful operation string. + content: + application/json: + schema: + type: string + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/k8s/capacity/node/drain: + put: + description: drain a node + operationId: DrainNode + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodeDrainReqDto' + responses: + '200': + description: Return successful operation string. + content: + application/json: + schema: + type: string + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/k8s/capacity/node/taints/edit: + put: + description: edit node taints + operationId: EditNodeTaints + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodeTaintEditReqDto' + responses: + '200': + description: Return successful operation string. + content: + application/json: + schema: + type: string + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/plugin/global/list: + get: + description: Get list of all global plugins + operationId: GetAllPluginsAtGlobalLevel + parameters: + - name: appId + in: query + required: true + schema: + type: string + responses: + '200': + description: Successfully return all plugins + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + items: + $ref: '#/components/schemas/PluginMetaDataDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + description: Get list of all global plugins by filters + operationId: GetAllPluginsAtGlobalLevelByFilters + requestBody: + description: A JSON object containing the filter details + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PluginListFilters' + responses: + '200': + description: Successfully return all filtered plugins + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + items: + $ref: '#/components/schemas/PluginMetaDataDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/plugin/global/{pluginId}: + get: + description: Get plugin by Id + operationId: GetPluginById + parameters: + - name: pluginId + in: path + required: true + schema: + type: integer + - name: appId + in: query + required: true + schema: + type: string + responses: + '200': + description: Successfully return detail of the plugin + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + $ref: '#/components/schemas/PluginDetailDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/plugin/global/list/filter/options: + get: + description: Get list of all filter options for plugins, i.e. tags and types + operationId: GetAllPluginFilterOptions + responses: + '200': + description: Successfully return all filter options + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + items: + $ref: '#/components/schemas/PluginFilterOptions' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/plugin/global/list/global-variable: + get: + description: Get list of all global variables + operationId: GetAllGlobalVaariables + parameters: + - name: appId + in: query + required: true + schema: + type: string + responses: + '200': + description: Successfully return all operators + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + items: + $ref: '#/components/schemas/GlobalVariable' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/ci-pipeline/patch: + post: + description: Create CI pipeline + operationId: CreateCiPipeline + requestBody: + description: A JSON object containing the pipelinconfig + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CiPipelineDto' + responses: + '200': + description: Successfully save the pipeline config + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + items: + $ref: '#/components/schemas/CiPipelineDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/ci-pipeline/{appId}/{ciPipelineId}: + get: + description: get CI pipeline details + operationId: GetCiPipeline + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: ciPipelineId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully get the pipeline config + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + items: + $ref: '#/components/schemas/CiPipelineDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/core/v1beta1/application/{appId}: + get: + description: Get all details of an app by appId. These details include - metadata(appName, + projectNamr, labels), gitMaterials, docker config, templates, workflows, configMaps, + secrets, environment override configurations. + operationId: GetAppAllDetail + parameters: + - name: appId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return all details of the app. + content: + application/json: + schema: + $ref: '#/components/schemas/AppDetail' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/core/v1beta1/application/workflow/{appId}: + get: + description: fetch all the workflows and env overrides for an app. + operationId: GetAppWorkflowsAndOverrides + parameters: + - name: appId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return all details of the app. + content: + application/json: + schema: + $ref: '#/components/schemas/AppWorkflowDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/core/v1beta1/application/workflow/{appId}/sample: + get: + description: get sample workflow and env overrides config of any app id for + creating new workflow. + operationId: GetAppWorkflowsAndOverridesSample + parameters: + - name: appId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return all details of the app. + content: + application/json: + schema: + $ref: '#/components/schemas/AppWorkflowDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/core/v1beta1/application: + post: + description: Creates a new app for the configurations provided. The input json + object is the same we get in response of GET method for fetching all details + of an app + operationId: CreateApp + requestBody: + description: A JSON object containing the app configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AppDetail' + responses: + '200': + description: Successfully return a message stating the operation is successful. + content: + application/json: + schema: + type: string + '400': + description: Bad Request. Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/core/v1beta1/application/workflow: + post: + description: Creates a new app for the configurations provided. The input json + object is the same we get in response of GET method for fetching all details + of an app + operationId: CreateAppWorkflow + requestBody: + description: A JSON object containing the app configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AppWorkflowDto' + responses: + '200': + description: Successfully return a message stating the operation is successful. + content: + application/json: + schema: + type: string + '400': + description: Bad Request. Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/role/group/v2: + get: + summary: Returns all role groups + description: all the template group policies + operationId: findGroupPolicy + parameters: + - name: searchKey + in: query + description: Search key for group listing + required: false + schema: + type: string + - name: sortOrder + in: query + description: Sorting order (ASC or DESC) + required: false + schema: + type: string + enum: + - ASC + - DESC + - name: sortBy + in: query + description: Sorting by name + required: false + schema: + type: string + enum: + - name + - name: offset + in: query + description: Offset for paginating the results + required: false + schema: + type: integer + - name: size + in: query + description: Size of the result set + required: false + schema: + type: integer + - name: showAll + in: query + description: Show all Role groups (boolean) + required: false + schema: + type: boolean + responses: + '200': + description: list response + content: + application/json: + schema: + $ref: '#/components/schemas/RoleGroupListingResponse' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/role/group: + get: + summary: Returns all role groups + description: all the template group policies + operationId: findGroupPolicy + deprecated: true + responses: + '200': + description: list response + content: + application/json: + schema: + $ref: '#/components/schemas/RoleGroup' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + summary: Creates a new Role Group + description: create chart group api, with multiple environment in one row of + policy, plus chart group additional type of policy. + operationId: addGroupPolicy + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RoleGroup' + responses: + '200': + description: create group policy response + content: + application/json: + schema: + $ref: '#/components/schemas/RoleGroup' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + summary: update a role group + description: update a role group in the system. + operationId: updateGroupPolicy + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/RoleGroup' + - type: object + required: + - id + properties: + id: + type: integer + format: int64 + responses: + '200': + description: group response + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/RoleGroup' + - type: object + properties: + id: + type: integer + format: int64 + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/role/group/search: + get: + summary: search a role group by NAME + description: search role group by group name + operationId: findRoleGroupByName + parameters: + - name: name + in: query + description: json as request body + required: true + schema: + type: string + responses: + '200': + description: list response + content: + application/json: + schema: + $ref: '#/components/schemas/RoleGroup' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/role/group/{id}: + delete: + summary: Deletes a group policy by ID + description: deletes a single group policy based on the ID supplied + operationId: deleteGroupPolicy + parameters: + - name: id + in: path + description: ID of group policy + required: true + schema: + type: integer + format: int64 + responses: + '204': + description: group deleted + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/role/group/bulk: + delete: + summary: Delete multiple permission groups in bulk + description: Deletes permission groups entities in bulk based on the provided + criteria. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkDeleteRequest' + responses: + '200': + description: Successfully deleted groups + content: + application/json: + schema: + type: boolean + '400': + description: Bad request, invalid input + '404': + description: groups not found + '500': + description: Internal server error + /user/v2: + get: + summary: Returns all users + description: all the template users + operationId: GetAllV2 + parameters: + - name: searchKey + in: query + description: Search key for user listing + required: false + schema: + type: string + - name: sortOrder + in: query + description: Sorting order (ASC or DESC) + required: false + schema: + type: string + enum: + - ASC + - DESC + - name: sortBy + in: query + description: Sorting by email_id or last_login + required: false + schema: + type: string + enum: + - email_id + - last_login + - name: offset + in: query + description: Offset for paginating the results + required: false + schema: + type: integer + - name: size + in: query + description: Size of the result set + required: false + schema: + type: integer + - name: showAll + in: query + description: Show all users (boolean) + required: false + schema: + type: boolean + responses: + '200': + description: list response + content: + application/json: + schema: + $ref: '#/components/schemas/UserListingResponse' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user: + get: + summary: Returns all users + description: all the template users + operationId: findAllUsers + deprecated: true + responses: + '200': + description: list response + content: + application/json: + schema: + $ref: '#/components/schemas/AllUsers' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + summary: Creates a new User + description: create user api, with multiple environment in one row of policy, + plus chart group additional type of policy. + operationId: addUser + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/User' + responses: + '200': + description: create user response + content: + application/json: + schema: + $ref: '#/components/schemas/User' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + summary: update a user + description: Updates a new user in the system + operationId: updateUser + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/User' + responses: + '200': + description: user response + content: + application/json: + schema: + $ref: '#/components/schemas/User' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/email: + get: + summary: search a user list by name + description: search user detail by name + operationId: findUserByEmail + parameters: + - name: email-id + in: query + description: ID of pet to delete + required: true + schema: + type: string + responses: + '200': + description: list response + content: + application/json: + schema: + $ref: '#/components/schemas/User' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /user/{id}: + get: + summary: Returns user detail with role filter + description: all the template group policies + operationId: findUserById + parameters: + - name: id + in: path + description: ID of user id + required: true + schema: + type: integer + format: int64 + responses: + '200': + description: user detail response + content: + application/json: + schema: + $ref: '#/components/schemas/User' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/user/bulk: + delete: + summary: Delete multiple users in bulk + description: Deletes user entities in bulk based on the provided criteria. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkDeleteRequest' + responses: + '200': + description: Successfully deleted users + content: + application/json: + schema: + type: boolean + '400': + description: Bad request, invalid input + '404': + description: Users not found + '500': + description: Internal server error + /orchestrator/app: + post: + description: create new application + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/App' + responses: + '200': + description: App create response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: object + description: string + allOf: + - type: object + properties: + id: + type: integer + description: unique application id + required: + - id + - $ref: '#/components/schemas/App' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/app/edit: + post: + description: update application projects and labels + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/App' + responses: + '200': + description: App update response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: object + description: string + allOf: + - type: object + properties: + id: + type: integer + description: unique application id + required: + - id + - $ref: '#/components/schemas/App' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/app/list: + post: + description: app listing, collection of deployed applications or undeployed + or incomplete configured apps. + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AppListingRequest' + responses: + '200': + description: App create response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: object + description: string + required: + - appCount + - appContainers + - deploymentGroup + properties: + appCount: + type: integer + description: app count, total number of apps available based + on filter provided in request. + appContainers: + type: array + description: app containers + items: + $ref: '#/components/schemas/AppContainer' + deploymentGroup: + type: object + description: deployment group + $ref: '#/components/schemas/DeploymentGroup' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/app/edit/projects: + post: + description: update project for app + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AppProjectUpdateRequest' + responses: + '200': + description: App update response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: object + description: string + $ref: '#/components/schemas/AppProjectUpdateRequest' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/git/provider: + post: + description: save git repo(account) config + operationId: SaveGitRepoConfig + requestBody: + description: A JSON object containing the git repo configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GitRegistry' + responses: + '200': + description: Successfully save the config + content: + application/json: + schema: + $ref: '#/components/schemas/GitRegistry' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + description: update git repo(account) config + operationId: UpdateGitRepoConfig + requestBody: + description: A JSON object containing the git repo configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GitRegistry' + responses: + '200': + description: Successfully update the config + content: + application/json: + schema: + $ref: '#/components/schemas/GitRegistry' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + description: get all git account config + operationId: FetchAllGitProviders + responses: + '200': + description: Successfully return details of all git providers + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GitRegistry' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/git/material: + post: + description: save git material config + operationId: CreateMaterial + requestBody: + description: A JSON object containing the git material configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateMaterialDTO' + responses: + '200': + description: Successfully save the config + content: + application/json: + schema: + $ref: '#/components/schemas/CreateMaterialDTO' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + description: update git material config + operationId: UpdateMaterial + requestBody: + description: A JSON object containing the git repo configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateMaterialDTO' + responses: + '200': + description: Successfully update the config + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateMaterialDTO' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/get/{appId}: + parameters: + - name: appId + in: path + required: true + schema: + type: integer + get: + description: get details of an app by its Id + operationId: GetApp + responses: + '200': + description: Successfully return details of an app + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/CreateAppDTO' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/{appId}/autocomplete/git: + parameters: + - name: appId + in: path + required: true + schema: + type: integer + get: + description: get all git providers + operationId: GitListAutocomplete + responses: + '200': + description: Successfully return details of all git providers + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GitRegistry' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/plugin/global/detail/{pluginId}: + get: + description: 'Retrieve detailed information about a specific plugin by its ID. + Before proceeding to Patch Plugin, ensure to retrieve the plugin details using + this endpoint as the same object will be used in the patch action of the global + plugin. + + ' + parameters: + - name: pluginId + in: path + required: true + schema: + type: integer + description: Unique identifier of the plugin + responses: + '200': + description: successfully return the Detailed information about the plugin + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + $ref: '#/components/schemas/PluginMetaDataDto' + '400': + description: Bad request, Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized, not found or invalid API token provided + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden, user is not allowed to access this plugin information + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Not Found, the plugin with the specified ID does not exist + '500': + description: Internal server error, could not retrieve plugin details + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/plugin/global/detail/all: + get: + description: 'Get detailed information of available plugins. + + ' + operationId: GetAllDetailedPluginInfo + responses: + '200': + description: A list of plugins with detailed information + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + items: + $ref: '#/components/schemas/PluginMetaDataDto' + '401': + description: Unauthorized user, Invalid or missing API token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden, user is not authorized to access this resource + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error, could not fetch the plugin details + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/plugin/global/: + post: + summary: Manipulating the Global Plugin + description: 'Allows for the management (creation, update, or deletion) of global + plugins through a single endpoint. This endpoint is versatile and supports + various actions based on the provided `action` field in the request payload. + Before performing any action, ensure to retrieve detailed information about + the plugin by its ID using the endpoint `/orchestrator/plugin/global/detail/{pluginId}`. + The same or modified object retrieved can be used in the request payload for + this endpoint. + + ' + operationId: PatchPlugin + requestBody: + description: A JSON Object containing the PluginMetaData fields, including + the specific action to be performed. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PluginMetaDataDto' + responses: + '200': + description: Successfully processed the global plugin operation. The response + includes the updated plugin data. + content: + application/json: + schema: + $ref: '#/components/schemas/PluginMetaDataDto' + '400': + description: Bad Request due to input validation errors or incorrect request + body format. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized access attempt. This may occur if the user does + not have the necessary permissions for the operation. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error indicating an unexpected condition that + prevented the request from being fulfilled. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/labels/list: + get: + description: this api will return all the labels available in database. + parameters: [] + responses: + '200': + description: list response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + allOf: + - type: object + properties: + appId: + type: integer + description: unique application id + required: + - appId + - $ref: '#/components/schemas/AppLabel' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/app/meta/info/{appId}: + get: + description: application basic info, projects and labels + parameters: + - name: appId + in: path + description: application id + required: true + schema: + type: integer + format: int64 + responses: + '200': + description: application basic info, projects and labels + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: object + description: meta info project name and labels + $ref: '#/components/schemas/AppMetaInfo' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/helm/meta/info/{appId}: + get: + description: application info for all types of helm apps + parameters: + - name: appId + in: path + description: application id + required: true + schema: + type: string + responses: + '200': + description: Helm application basic info + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: object + description: meta info project name and labels + $ref: '#/components/schemas/AppMetaInfo' + /v1beta1/hibernate: + post: + description: Bulk Hibernate all apps for specific environment + operationId: BulkHibernate + requestBody: + description: bulk hibernate + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkActionPayload' + responses: + '200': + description: Successfully hibernated all impacted apps. + content: + application/json: + schema: + $ref: '#/components/schemas/BulkActionPayload' + '400': + description: Bad Request. Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1beta1/unhibernate: + post: + description: Bulk Unhibernate all apps for specific environment + operationId: BulkUnhibernate + requestBody: + description: bulk unhibernate + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkActionPayload' + responses: + '200': + description: Successfully unhibernated all impacted apps. + content: + application/json: + schema: + $ref: '#/components/schemas/BulkActionPayload' + '400': + description: Bad Request. Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1beta1/deploy: + post: + description: Bulk Deploy all apps to the latest build image for specific environment + operationId: BulkDeploy + requestBody: + description: bulk deploy + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkActionPayload' + responses: + '200': + description: Successfully deploy all impacted apps. + content: + application/json: + schema: + $ref: '#/components/schemas/BulkActionPayload' + '400': + description: Bad Request. Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /{apiVersion}/{kind}/readme: + get: + description: Returns Readme for bulk update for different resource in the url + operationId: FindBulkUpdateReadme + parameters: + - name: apiVersion + in: path + required: true + schema: + type: string + - name: kind + in: path + required: true + schema: + type: string + responses: + '200': + description: Successful GET operation + content: + application/json: + schema: + $ref: '#/components/schemas/BulkUpdateSeeExampleResponse' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1beta1/application/dryrun: + post: + description: Returns details(id, name, envId) of all apps to be impacted with + bulk update + operationId: GetBulkAppName + requestBody: + description: A JSON object containing information by which apps will be filtered + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkUpdateScript' + responses: + '200': + description: Successfully return all impacted app details. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ImpactedObjectsResponse' + '400': + description: Bad Request. Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1beta1/application: + post: + description: Bulk Updates all impacted apps + operationId: BulkUpdate + requestBody: + description: A JSON object containing information about update changes and + by which apps will be filtered + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkUpdateScript' + responses: + '200': + description: Successfully updated all impacted apps. + content: + application/json: + schema: + $ref: '#/components/schemas/BulkUpdateResponse' + '400': + description: Bad Request. Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/deployment/template/validate: + post: + description: upload template file from this api to validate. + requestBody: + description: form-data as request body + required: true + content: + multipart/form-data: + schema: + properties: + binaryFile: + type: object + description: zipped chart template file + responses: + '200': + description: template file upload response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + schema: + $ref: '#/components/schemas/UploadTemplateResponse' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/deployment/template/upload: + put: + description: upload template file from this api. + requestBody: + description: form-data as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UploadTemplateRequest' + responses: + '200': + description: template file upload response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: string + description: result + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/deployment/template/fetch: + get: + summary: Returns all charts + description: all the chart template uploaded by user + responses: + '200': + description: list response + content: + application/json: + schema: + $ref: '#/components/schemas/Chart' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/app/wf/all/component-names/{appId}: + get: + description: Get names of all workflows and included pipelines + operationId: GetWorkflowDetail + parameters: + - name: appId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return all details of the workflow. + content: + application/json: + schema: + $ref: '#/components/schemas/CiConfigRequest' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/ci-pipeline/{appId}: + get: + description: Get ci pipeline + operationId: GetCiPipeline + parameters: + - name: appId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return all details of the ci pipelines. + content: + application/json: + schema: + $ref: '#/components/schemas/CiConfigRequest' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /repo/validate: + post: + description: Validate helm repo by checking index file + operationId: ChartRepoValidate + requestBody: + description: A JSON object containing the chart repo configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ChartRepoDto' + responses: + '200': + description: Successfully return the validation results + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /repo/create: + post: + description: Validate chart repo config and save if successfully validated + operationId: ValidateAndCreateChartRepo + requestBody: + description: A JSON object containing the chart repo configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ChartRepoDto' + responses: + '200': + description: Successfully return validation results and if validation is + correct then save the configuration + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /repo/update: + post: + description: Validate configuration and update them if validation is successful + operationId: ValidateAndUpdateChartRepo + requestBody: + description: A JSON object containing the chart repo configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ChartRepoDto' + responses: + '200': + description: Successfully return validation results and if validation is + correct then update the configuration + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/deployed-component/detail/{appId}/{pipelineId}/{id}: + get: + description: fetch detail of a history on the basis of the history component + and it's name + operationId: FetchHistoryByDeployedConfigurationDetail + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + - name: id + in: path + required: true + schema: + type: integer + - name: historyComponent + in: query + required: true + schema: + type: string + enum: + - DEPLOYMENT_TEMPLATE + - CONFIGMAP + - SECRET + - PIPELINE_STRATEGY + - name: historyComponentName + in: query + required: false + description: name of config-map, secret + schema: + type: string + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + $ref: '#/components/schemas/HistoryComponentDetailDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/deployed-component/list/{appId}/{pipelineId}: + get: + description: fetch deployed history details list + operationId: FetchHistoryListByDeployedConfigurationDetail + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + - name: historyComponent + in: query + required: true + schema: + type: string + enum: + - DEPLOYMENT_TEMPLATE + - CONFIGMAP + - SECRET + - PIPELINE_STRATEGY + - name: historyComponentName + in: query + required: false + description: name of config-map, secret + schema: + type: string + - name: baseConfigurationId + in: query + required: true + description: id of base configuration + schema: + type: integer + responses: + '200': + description: Successfully return history list + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/HistoryComponentListDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/deployed-configuration/{appId}/{pipelineId}/{wfrId}: + get: + description: fetch all deployed configurations history (deployment template, + pipeline strategy, configmaps, secrets) + operationId: FetchHistoryListForAllDeployedConfigurations + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + - name: wfrId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/HistoryConfigurationListDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /notification: + get: + summary: Returns all notification settings + description: Returns all notification settings + operationId: findNotificationSetting + parameters: + - name: offset + in: query + description: value can be regex search string. + required: true + schema: + type: integer + - name: size + in: query + description: value can be regex search string. + required: true + schema: + type: integer + responses: + '200': + description: list response + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationSetting' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + summary: Creates a new NotificationSetting + description: create NotificationSetting api. + operationId: addNotificationSetting + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationSetting' + responses: + '200': + description: create NotificationSetting response + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationSetting' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + summary: Update NotificationSetting + description: Update NotificationSetting api either recipients or events(trigger/success/failed). + operationId: updateNotificationSetting + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationSetting' + responses: + '200': + description: create NotificationSetting response + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationSetting' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + summary: delete NotificationSetting + description: delete NotificationSetting. + operationId: deleteNotificationSetting + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationSetting' + responses: + '200': + description: create NotificationSetting response + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationSetting' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /notification/recipient: + get: + summary: used to fetch providers(recipients) + description: recipients fetch by string search, it will return slacks providers + and email ids + operationId: deleteGroupPolicy + parameters: + - name: value + in: query + description: value can be regex search string. + required: true + schema: + type: string + responses: + '204': + description: list of recipients + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /notification/channel: + get: + summary: get all NotificationSettingConfig list + description: get all NotificationSettingConfig list + operationId: findNotificationSettingConfig + responses: + '200': + description: list response + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationConfigResponse' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + summary: Creates a new NotificationSettingConfig + description: create NotificationSettingConfig, Slack or SES + operationId: addNotificationSettingConfig + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationConfig' + responses: + '200': + description: create NotificationSettingConfig response + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationConfigResponse' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/deployed-configuration/all/{appId}/{pipelineId}/{wfrId}: + get: + operationId: FetchHistoryDetail + description: Fetch history configuration for a particular trigger (by wfrId) + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + - name: wfrId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history detail + content: + application/json: + schema: + $ref: '#/components/schemas/HistoryConfigurationDetailDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/history/deployed-configuration/all/latest/{appId}/{pipelineId}: + get: + operationId: FetchLatestHistoryDetail + description: Fetch latest deployed history configuration + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return history detail + content: + application/json: + schema: + $ref: '#/components/schemas/HistoryConfigurationDetailDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/deployment-configuration/all/latest/{appId}/{pipelineId}: + get: + operationId: FetchDeploymentConfiguration + description: Fetch latest deployment configuration i.e. currently saved in the + system and marked as active + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: pipelineId + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully return configuration detail + content: + application/json: + schema: + $ref: '#/components/schemas/HistoryConfigurationDetailDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/api-token: + get: + description: Get All active Api Tokens + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/ApiToken' + type: array + description: Successfully fetched active API tokens links + post: + description: Create api-token + requestBody: + content: + application/json: + schema: + items: + $ref: '#/components/schemas/CreateApiTokenRequest' + type: array + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateApiTokenResponse' + description: Api-token creation response + /orchestrator/api-token/{id}: + delete: + description: Delete api-token + parameters: + - description: api-token Id + explode: false + in: path + name: id + required: true + schema: + format: int64 + type: integer + style: simple + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ActionResponse' + description: Api-token delete response + put: + description: Update api-token + parameters: + - description: api-token Id + explode: false + in: path + name: id + required: true + schema: + format: int64 + type: integer + style: simple + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateApiTokenRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateApiTokenResponse' + description: Api-token update response + /orchestrator/api-token/webhook: + get: + description: Get all api tokens which have given permission + parameters: + - in: query + name: appName + example: abc + description: app name + required: false + allowEmptyValue: true + schema: + type: string + - in: query + name: environmentName + example: abc + description: environment name, comma separated in case multi environment, + it will take environment identifier + required: false + allowEmptyValue: true + schema: + type: string + - in: query + name: projectName + example: abc + description: project name + required: false + allowEmptyValue: false + schema: + type: string + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/ApiToken' + type: array + description: Successfully fetched active API tokens links + /orchestrator/application/rollback: + put: + description: Rollback application if the application is installed from the chartStore + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RollbackReleaseRequest' + responses: + '200': + description: application rollback response + content: + application/json: + schema: + $ref: '#/components/schemas/RollbackReleaseResponse' + /orchestrator/application/template-chart: + post: + description: Helm template chart + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TemplateChartRequest' + responses: + '200': + description: template chart response + content: + application/json: + schema: + $ref: '#/components/schemas/TemplateChartResponse' + /orchestrator/app-store/installed-app: + get: + description: deployed chart listing, with search filters + parameters: + - name: envs + in: query + description: environment ids + required: false + schema: + type: array + items: + type: string + - name: chartRepoId + in: query + description: chart repo ids + required: false + schema: + type: array + items: + type: string + - name: appStoreName + in: query + description: chart name + required: false + schema: + type: string + - name: appName + in: query + description: chart name as app name for devtron + required: false + schema: + type: string + - name: onlyDeprecated + in: query + description: show only deprecated or all + required: false + schema: + type: boolean + - name: offset + in: query + description: offset for result set + required: false + schema: + type: integer + - name: size + in: query + description: total request size. + required: false + schema: + type: integer + responses: + '200': + description: deployed chart listing, with search filters + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + description: deployed chart listing, with search filters + items: + $ref: '#/components/schemas/ChartInfo' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/app-store/installed-app/notes: + get: + description: Used to fetch notes.txt for helm charts deployed via gitOps + parameters: + - name: env-id + in: query + description: it is an environment id of app + required: true + type: integer + - name: installed-app-id + in: query + description: it is a installed application id + required: true + type: integer + responses: + '200': + description: if it is able to fetch the notes.txt then status will be ok + content: + application/json: + schema: + properties: + notes: + type: string + description: it will provide notes + '500': + description: error while fetching notes.txt + /orchestrator/user: + post: + summary: Creates a new User + operationId: addUser + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/User' + responses: + '200': + description: create user response + content: + application/json: + schema: + $ref: '#/components/schemas/User' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + summary: update user + operationId: updateUser + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/User' + responses: + '200': + description: user response + content: + application/json: + schema: + $ref: '#/components/schemas/User' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/role/group: + post: + summary: Creates a new role group + operationId: addUser + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RoleGroup' + responses: + '200': + description: create user response + content: + application/json: + schema: + $ref: '#/components/schemas/RoleGroup' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + summary: update user + operationId: updateUser + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RoleGroup' + responses: + '200': + description: user response + content: + application/json: + schema: + $ref: '#/components/schemas/RoleGroup' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/cluster/validate: + post: + description: Validate a cluster + requestBody: + content: + application/json: + schema: + type: object + properties: + kubeconfig: + $ref: '#/components/schemas/Kubeconfig' + required: + - kubeconfig + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ValidateClusterBean' + '400': + description: Bad request + '500': + description: Internal server error + /orchestrator/cluster/saveClusters: + post: + description: Save clusters + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ValidateClusterBean' + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ValidateClusterBean' + '400': + description: Bad request + '500': + description: Internal server error + /orchestrator/cluster: + put: + description: Update Cluster + operationId: UpdateCluster + requestBody: + description: A JSON object containing the cluster config + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterBean' + responses: + '200': + description: Successfully update the cluster + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterBean' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + description: Get Cluster + operationId: GetCluster + parameters: + - name: id + in: query + description: cluster id. + required: true + schema: + type: integer + responses: + '200': + description: Successfully get cluster + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterBean' + '400': + description: Bad Request. Input Validation(decode) error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/cluster/auth-list: + get: + description: list of accessible cluster + responses: + '200': + description: cluster list + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + description: namespace list group by cluster + items: + $ref: '#/components/schemas/Cluster' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/flux-application: + get: + summary: List Flux Applications + operationId: listFluxApplications + parameters: + - name: token + in: header + required: true + schema: + type: string + description: Authorization token + - name: clusterIds + in: query + required: true + schema: + type: string + description: Comma-separated list of cluster IDs. + responses: + '200': + description: List of Flux applications + content: + application/json: + schema: + $ref: '#/components/schemas/AppListDto' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/flux-application/app: + get: + summary: Get application details + description: Retrieve details of a specific Flux application. + parameters: + - name: appId + in: query + required: true + schema: + type: string + description: The application identifier in the format "1|default|myksApp|Kustomization + as the first field having the cluster id, then second field having the + namespace of the app , third field denoted the app name and last contains + a boolean value of true and false". + - name: token + in: header + required: true + schema: + type: string + description: The authentication token. + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/FluxApplicationDetailDto' + '400': + description: Bad request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /validate: + post: + description: Validate gitops configuration by dry run + operationId: GitOpsValidateDryRun + requestBody: + description: A JSON object containing the gitops configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GitOpsConfigDto' + responses: + '200': + description: Successfully return all validation stages results + content: + application/json: + schema: + $ref: '#/components/schemas/DetailedError' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /config: + post: + description: create/save new configuration and validate them before saving + operationId: CreateGitOpsConfig + requestBody: + description: A JSON object containing the gitops configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GitOpsConfigDto' + responses: + '200': + description: Successfully return all validation stages results and if validation + is correct then saves the configuration in the backend + content: + application/json: + schema: + $ref: '#/components/schemas/DetailedError' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + description: update configuration and validate them before saving(if last validation + is within 30 seconds then do not validate) + operationId: UpdateGitOpsConfig + requestBody: + description: A JSON object containing the gitops configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GitOpsConfigDto' + responses: + '200': + description: Successfully return all validation stages results and if validation + is correct then updates the configuration in the backend + content: + application/json: + schema: + $ref: '#/components/schemas/DetailedError' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/gitops/validate: + post: + description: Validate gitops configuration by dry run + operationId: GitOpsValidateDryRun + requestBody: + description: A JSON object containing the gitops configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GitOpsConfigDto' + responses: + '200': + description: Successfully return all validation stages results + content: + application/json: + schema: + $ref: '#/components/schemas/DetailedError' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/gitops/config: + post: + description: create/save new configuration and validate them before saving + operationId: CreateGitOpsConfig + requestBody: + description: A JSON object containing the gitops configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GitOpsConfigDto' + responses: + '200': + description: Successfully return all validation stages results and if validation + is correct then saves the configuration in the backend + content: + application/json: + schema: + $ref: '#/components/schemas/DetailedError' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + put: + description: update configuration and validate them before saving + operationId: UpdateGitOpsConfig + requestBody: + description: A JSON object containing the gitops configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/GitOpsConfigDto' + responses: + '200': + description: Successfully return all validation stages results and if validation + is correct then updates the configuration in the backend + content: + application/json: + schema: + $ref: '#/components/schemas/DetailedError' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app/deployments/{app-id}/{env-id}: + get: + summary: Fetch Deployment Template Comparison List + parameters: + - name: app-id + in: path + required: true + schema: + type: integer + description: The ID of the application. + - name: env-id + in: path + required: true + schema: + type: integer + description: The ID of the environment. + responses: + '200': + description: Successful response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FetchTemplateComparisonList' + /orchestrator/app/deployment/template/data: + post: + summary: Get Values and Manifest for Deployment Template + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentTemplateRequest' + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/ValuesAndManifestResponse' + /orchestrator/app/ci-pipeline/{ciPipelineId}/linked-ci/downstream/env: + get: + description: Get down stream environment names for filter list + parameters: + - name: ciPipelineId + description: source ci-pipeline id + in: path + required: true + schema: + type: integer + responses: + '200': + description: Successfully fetched the down stream environments for the source + CI pipeline. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedCIPipelinesFiltersResponse' + '500': + description: will get this response if any failure occurs at server side. + '403': + description: will get this if user doesn't have view access to the app that + contains the requested source ci pipeline. + /orchestrator/app/ci-pipeline/{ciPipelineId}/linked-ci/downstream/cd: + get: + description: Get the down stream deployment details for the source CI pipeline. + parameters: + - name: ciPipelineId + description: source ci-pipeline id + in: path + required: true + schema: + type: integer + - name: order + description: app name sort order + in: query + required: false + schema: + type: string + default: ASC + enum: + - ASC + - DESC + - name: offset + description: page offset value + in: query + required: false + schema: + type: number + default: 0 + - name: size + description: page size value + in: query + required: false + schema: + type: number + default: 20 + - name: envName + description: environment name filter + in: query + required: false + schema: + type: string + default: All environments + - name: searchKey + description: application name filter + in: query + required: false + schema: + type: string + responses: + '200': + description: Successfully fetched the down stream deployment details for + the source CI pipeline. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedCIPipelinesViewResponse' + '500': + description: will get this response if any failure occurs at server side. + '403': + description: will get this if user doesn't have view access to the app that + contains the requested source ci pipeline. + /orchestrator/external-link/tools: + get: + description: Get all available monitoring tools for external links + responses: + '200': + description: Gives all monitoring tools + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExternalLinkMonitoringTool' + /orchestrator/external-link: + get: + description: Get All active External links (If query parameter is not supplied + then it will give all external links otherwise it will give external links + mapped to that type and identifier) + parameters: + - in: query + name: clusterId + example: 1 + description: clusterId + required: false + allowEmptyValue: false + schema: + type: number + - in: query + name: identifier + example: '1' + description: link type identifier + required: false + allowEmptyValue: false + schema: + type: string + - in: query + name: type + example: devtron-app + description: link type,only [devtron-app,devtron-installed-app,external-helm-app] + allowed + required: false + allowEmptyValue: false + schema: + type: string + responses: + '200': + description: Successfully fetched external links + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExternalLink' + post: + description: Create external links (id should be zero in externalLink object) + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExternalLink' + responses: + '200': + description: External links creation response + content: + application/json: + schema: + $ref: '#/components/schemas/ActionResponse' + put: + description: update external link + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ExternalLink' + responses: + '200': + description: External link update response + content: + application/json: + schema: + $ref: '#/components/schemas/ActionResponse' + delete: + description: delete external link + parameters: + - in: query + name: id + example: 1 + description: external link Id + required: true + allowEmptyValue: false + schema: + type: integer + responses: + '200': + description: External link delete response + content: + application/json: + schema: + $ref: '#/components/schemas/ActionResponse' + /orchestrator/module: + get: + description: Get module info + parameters: + - name: name + in: query + description: module name + required: true + schema: + type: string + responses: + '200': + description: Successfully fetched modules + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ModuleInfo' + post: + description: some action on module (for eg - install/upgrade/etc..) + parameters: + - name: name + in: query + description: module name + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ModuleActionRequest' + responses: + '200': + description: module action response + content: + application/json: + schema: + $ref: '#/components/schemas/ActionResponse' + /orchestrator/server: + get: + description: Get server info + responses: + '200': + description: Successfully fetched current server info + content: + application/json: + schema: + $ref: '#/components/schemas/ServerInfo' + post: + description: some action on server (for eg - install/upgrade/etc..) + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ServerActionRequest' + responses: + '200': + description: server action response + content: + application/json: + schema: + $ref: '#/components/schemas/ActionResponse' + /orchestrator/plugin/global: + post: + description: create/update/delete a plugin(/plugin version) + requestBody: + description: json as request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PluginsDto' + responses: + '200': + description: successfully return the list of all plugins + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + $ref: '#/components/schemas/PluginsDto' + '400': + description: Bad request, Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized, not found or invalid API token provided + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden, user is not allowed to access this api + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/plugin/global/list/versions/min: + get: + description: 'Retrieves a min list of all plugins with all it''s versions list + and it''s id. + + ' + parameters: + - name: appId + description: to apply RBAC appId would be needed + in: query + required: true + schema: + type: integer + responses: + '200': + description: successfully return the list of all plugins + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + items: + $ref: '#/components/schemas/PluginMinDto' + '400': + description: Bad request, Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized, not found or invalid API token provided + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden, user is not allowed to access this api + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/app-store/discover/: + get: + description: this api will return all the charts from charts repos. + parameters: [] + responses: + '200': + description: list response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + allOf: + - type: object + properties: + appId: + type: integer + description: unique application id + required: + - appId + - $ref: '#/components/schemas/AppStore' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/app/autocomplete: + get: + description: list of namespaces group by clusters + parameters: + - in: query + name: appName + example: abc + description: app name, wildcard query + required: false + allowEmptyValue: true + schema: + type: string + - in: query + name: teamId + example: '1' + description: project id + required: false + allowEmptyValue: false + schema: + type: integer + responses: + '200': + description: list response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + description: app list + items: + $ref: '#/components/schemas/App' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrtor/batch/v1beta1/cd-pipeline: + post: + description: perform bulk actions on cd pipelines + parameters: + - name: forceDelete + in: query + required: true + schema: + type: boolean + - name: dryRun + in: query + required: true + schema: + type: boolean + requestBody: + description: A JSON object containing the bulk action configuration + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CdPipelineBulkActionDto' + responses: + '200': + description: Successfully return a object containing information for all + impacted objects + content: + application/json: + schema: + $ref: '#/components/schemas/CdPipelineImpactedObjectDto' + '400': + description: Bad Request. Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/app/env/patch: + patch: + description: change the deployment template for an app and environment + requestBody: + content: + application/json: + schema: + properties: + envId: + type: integer + appId: + type: integer + targetChartRefId: + type: integer + responses: + '200': + description: patched data + content: + application/json: + schema: + properties: null + '422': + description: bad request + content: + application/json: + schema: + userDetailedMessage: + type: string + /orchestrator/config/autocomplete: + get: + summary: Retrieve autocomplete data for configuration based on the provided + appId and envId. The response includes configuration definitions with names, + draft states, and types. + parameters: + - name: appId + in: query + description: The application ID. + required: true + schema: + type: string + - name: envId + in: query + description: The environment ID. + required: true + schema: + type: string + responses: + '200': + description: Successful response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ConfigProperty' + '500': + description: will get this response if any failure occurs at server side. + '400': + description: will get this response if invalid payload is sent in the request. + '403': + description: will get this response if user doesn't view access permission + for the app or env + '404': + description: will get this when BaseDeployment Template is not configured + /orchestrator/app/template/default: + get: + description: Get default values of template by chartRefId + parameters: + - name: appId + in: query + required: true + schema: + type: integer + - name: chartRefId + in: query + required: true + schema: + type: integer + responses: + '200': + description: value + content: + application/json: + schema: + $ref: '#/components/schemas/DefaultTemplateResponse' + /orchestrator/app/cd-pipeline/patch/deployment: + post: + description: Bulk change deployment app type of all cd pipelines in an environment + requestBody: + description: A JSON object containing environment id and desired deployment + app type + required: true + content: + text/plain: + schema: + $ref: '#/components/schemas/DeploymentAppTypeChangeRequest' + responses: + '200': + description: successfully returns an object with info on pipelines successfully + changed deployment types and pipelines failed to change deployment app + type with error + content: + application/json: + schema: + $ref: '#/components/schemas/OkResponse' + '401': + description: unauthorized user + content: + text/plain: + schema: + type: string + '400': + description: Bad Request. Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden + /orchestrator/chartref/autocomplete/{appId}: + get: + description: Get list of all charts + operationId: ChartRefAutocompleteForApp + parameters: + - name: appId + in: query + required: true + schema: + type: string + responses: + '200': + description: Successfully return all charts + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + items: + $ref: '#/components/schemas/ChartRefResponse' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/env/namespace/autocomplete: + get: + description: list of namespaces group by clusters + parameters: + - in: query + name: ids + example: 1,2 + description: cluster ids + required: true + allowEmptyValue: false + schema: + type: integer + responses: + '200': + description: list response + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: array + description: namespace list group by cluster + items: + $ref: '#/components/schemas/Cluster' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/k8s/resources/ephemeralContainers: + post: + summary: Create Ephemeral Container + parameters: + - name: identifier + in: query + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EphemeralContainerRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PodContainerList' + '400': + description: Bad Request + '401': + description: Unauthorized + delete: + summary: Delete Ephemeral Container + parameters: + - name: identifier + in: query + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EphemeralContainerRequest' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/PodContainerList' + '400': + description: Bad Request + '401': + description: Unauthorized + /orchestrator/global/cm-cs: + post: + description: save a configmap/secret + operationId: CreateGlobalCMCSConfig + responses: + '200': + description: Successfully create given config + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GlobalCMCSDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/apps/image-tags/{artifact-id}: + post: + description: Create tags and comment for a particular image in a app + requestBody: + required: true + content: + application/json: + schema: + items: + $ref: '#/components/schemas/ImageTaggingRequestDTO' + responses: + '200': + description: success on tags and comment creation for the given artifact. + content: + application/json: + schema: + $ref: '#/components/schemas/ImageTaggingResponseDTO' + '500': + description: will get this response if any failure occurs at server side. + '400': + description: will get this response if invalid payload is sent in the request. + '403': + description: will get this response if user doesn't have build and deploy + permission for the app + get: + description: will get all the tags and comment added for the provided artifact-id + responses: + '200': + description: on succesfull fetching of all the tags and comment for the + requested artifact. + content: + application/json: + schema: + $ref: '#components/schemas/ImageTaggingResponseDTO' + '500': + description: will get this response if any failure occurs at server side. + '403': + description: will get this if user doesn't have access to the app that the + requested artifact belongs. + /orchestrator/k8s/resource/inception/info: + get: + responses: + '200': + description: this api give you inception pod info, such as pod name + content: + application/json: + schema: + properties: + code: + type: integer + description: status code + status: + type: string + description: status + result: + type: object + description: string + $ref: '#/components/schemas/ResourceInfo' + /orchestrator/app/deployment-status/timeline/{appId}/{envId}: + get: + description: get all timelines of a delpoyment trigger + operationId: GetPipelineStatusTimelines + parameters: + - name: appId + in: path + required: true + schema: + type: integer + - name: envId + in: path + required: true + schema: + type: integer + - name: wfrId + in: path + required: false + schema: + type: integer + responses: + '200': + description: Successfully return deployment timeline status of a pipeline + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/PipelineStatusTimelineDto' + '400': + description: Bad Request. Input Validation error/wrong request body. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized User + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /orchestrator/version: + get: + responses: + '200': + description: meta info about devtron server + content: + application/json: + schema: + type: object + properties: + gitCommit: + type: string + example: d252aa3e + description: git hash from which code was compiled + buildTime: + type: string + format: date-time + example: '2021-12-15T05:44:05Z' + description: time when code was complied + serverMode: + type: string + example: FULL + description: server mode FULL/EA_ONLY + enum: + - FULL + - EA_ONLY + /orchestrator/infra-config/profile/{name}: + get: + description: Get Infra Profile by name + responses: + '200': + description: gets the infra config profile by its name. + content: + application/json: + schema: + $ref: '#/components/schemas/ProfileResponse' + put: + description: Update Infra Profile + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Profile' + responses: + '200': + description: creates a infra config profile. + content: + application/json: + schema: + $ref: '#/components/schemas/Profile' + /orchestrator/app/commit-info/{ciPipelineMaterialId}/{gitHash}: + get: + description: Get commit info for a particular commit hash for a ci-pipeline-material + parameters: + - name: ciPipelineMaterialId + description: ci-pipeline-material id + in: path + required: true + schema: + type: integer + - name: gitHash + description: git hash for that commit + in: path + required: true + schema: + type: string + responses: + '200': + description: Successfully fetched commit info. if CommitInfo is null, then + commit is not found. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/CommitInfo' + /orchestrator/app/ci-pipeline/patch-source: + patch: + description: update source of a ci-matrial + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RequestBody' + responses: + '200': + description: Successfully fetched commit info. if CommitInfo is null, then + commit is not found. + content: + application/json: + schema: + type: object + /security/scan/executionDetail: + get: + summary: fetch image scan execution result, by multiple ways for different use + case + description: params are option but at least one is required + operationId: executionDetail + parameters: + - name: scanExecutionId + in: query + description: scan execution history id, optional for fetch. + required: false + schema: + type: integer + - name: artifactId + in: query + description: ci artifact id, to fetch scan result for image, option for fetch. + required: false + schema: + type: integer + - name: image + in: query + description: to fetch scan result for image, option for fetch. + required: false + schema: + type: string + responses: + '200': + description: list response + content: + application/json: + schema: + $ref: '#/components/schemas/ImageScanResponse' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /security/cve/control/list: + get: + description: Fetch current security policy for global, cluster, environment + and application level. + operationId: FetchPolicy + parameters: + - name: level + in: query + required: true + schema: + $ref: '#/components/schemas/ResourceLevel' + - name: id + in: query + required: false + schema: + type: integer + responses: + default: + description: Error or security policy for global, cluster, environment and + application. + content: + application/json: + schema: + $ref: '#/components/schemas/GetVulnerabilityPolicyResponse' + delete: + description: Delete policy + operationId: DeletePolicy + parameters: + - name: id + in: query + required: true + schema: + type: integer + responses: + default: + description: Deleted response + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteVulnerabilityPolicyResponse' + post: + description: Update policy + operationId: UpdatePolicy + parameters: + - name: id + in: query + required: true + schema: + type: integer + - name: action + in: query + required: true + schema: + type: string + enum: + - block + - allow + responses: + default: + description: Update response + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateVulnerabilityPolicyResponse' + put: + description: create policy + operationId: CreatePolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVulnerabilityPolicyRequest' + responses: + default: + description: Create response + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVulnerabilityPolicyResponse' + /orchestrator/user/resource/options/{kind}/{version}: + post: + summary: Get user resource options + description: Returns options based on the kind and version of the user resource. + parameters: + - name: kind + in: path + required: true + schema: + type: string + enum: + - team + - environment + - application/devtron-application + - application/helm-application + - environment/helm + - cluster + - chartGroup + - jobs + - workflow + - cluster/namespaces + - cluster/apiResources + - cluster/resources + description: Type of user resource. + - name: version + in: path + required: true + schema: + type: string + enum: + - alpha1 + description: API version. + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - entity + properties: + entity: + type: string + accessType: + type: string + teamIds: + type: array + items: + type: integer + appNames: + type: array + items: + type: string + clusterId: + type: integer + k8sRequest: + type: object + properties: + resourceIdentifier: + type: object + properties: + groupVersionKind: + type: object + properties: + Group: + type: string + example: generators.external-secrets.io + Version: + type: string + example: v1alpha1 + Kind: + type: string + example: ACRAccessToken + namespace: + type: string + example: '' + responses: + '200': + description: Returns Resource Options as response + content: + application/json: + schema: + properties: + code: + type: integer + result: + $ref: '#/components/schemas/ResourceOptions' + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /orchestrator/webhook/helm/app: + post: + description: Create or Update helm application + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/HelmAppCreateUpdateRequest' + responses: + '200': + description: Create or Update helm application response + content: + application/json: + schema: + $ref: '#/components/schemas/HelmAppCreateUpdateResponse' + '401': + description: If the user is not authenicated, then this error is thrown + content: + application/json: + schema: + $ref: '#/components/schemas/HelmAppCreateUpdateResponse' + '403': + description: If the user is not authorized, then this error is thrown + content: + application/json: + schema: + $ref: '#/components/schemas/HelmAppCreateUpdateResponse' + '400': + description: If request is not correct, then this error is thrown + content: + application/json: + schema: + $ref: '#/components/schemas/HelmAppCreateUpdateResponse' + '500': + description: This error is thrown in case of some internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/HelmAppCreateUpdateResponse' + /workflow/status: + get: + summary: Get Workflow Status + responses: + '200': + description: Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetWorkflowStatusResponse' + example: '{"status":"In progress","startTime":"1","endTime":"","message":"e-message","podStatus":"Running","podName":"pod-name","workflowExecutionStages":{"workflow":[{"stageName":"Preparation","status":"SUCCESS","startTime":"1","endTime":"2","message":"p-message","metadata":{}},{"stageName":"Execution","status":"STARTED","startTime":"2","endTime":"","message":"e-message","metadata":{}}],"pod":[{"stageName":"Execution","status":"STARTED","startTime":"2","endTime":"","message":"e-message","metadata":{"ClusterID":"?? + (possible?)","podName":"pod-name"}}]}}' +components: + schemas: + appListRequest: + type: object + properties: + projectIds: + type: array + description: project ids + items: + type: integer + format: int64 + example: + - 1 + - 2 + - 3 + clusterIds: + type: array + description: cluster ids + items: + type: integer + format: int64 + example: + - 1 + - 2 + - 3 + namespaces: + type: array + description: namespace ID + items: + type: string + example: + - devtroncd + - devtron-ci + environmentIds: + type: array + description: environemnt ids + items: + type: integer + format: int64 + example: + - 1 + - 2 + - 3 + AppEnvironmentDetail: + allOf: + - $ref: '#/components/schemas/EnvironmentDetail' + - type: object + properties: + clusterName: + type: string + description: cluster corresponding to the environemt where application + is deployed + example: qa-cluster + clusterId: + type: integer + description: clusterId corresponding to the environemt where application + is deployed + example: '12' + EnvironmentDetail: + type: object + properties: + environmentName: + type: string + description: name of the environemnt + example: devtroncd + environmentId: + type: integer + description: id in which app is deployed + example: 56 + namespace: + type: string + description: namespace corresponding to the environemnt + example: devtroncd + isPrduction: + type: boolean + description: if given environemnt is marked as production or not, nullable + ClusterEnvironmentDetail: + type: object + properties: + clusterName: + type: string + description: name of the cluster + example: demo cluster + clusterID: + type: integer + description: id of the cluster + environments: + type: array + description: environments in that cluster + items: + type: object + $ref: '#/components/schemas/EnvironmentDetail' + ClusterEnvironmentDetailList: + type: array + description: list of cluster env detail object + items: + type: object + $ref: '#/components/schemas/ClusterEnvironmentDetail' + HelmApp: + type: object + properties: + lastDeployedAt: + type: string + format: date-time + example: '2021-12-15T05:44:05Z' + description: time when this application was last deployed/updated + appName: + type: string + description: name of the helm application/helm release name + example: demo-app + appId: + type: string + description: unique identifier for app + example: 12|helm-app|cluster1-ns1 + chartName: + type: string + description: name of the chart + example: nginx, fluentd + chartAvatar: + type: string + description: url/location of the chart icon + example: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/500px-Nginx_logo.svg.png + projectId: + type: integer + description: unique identifier for the project, APP with no project will + have id `0` + example: '12' + chartVersion: + type: string + description: chart version + example: 1.2.3 + environmentDetail: + type: object + $ref: '#/components/schemas/AppEnvironmentDetail' + appStatus: + type: string + example: Healthy + AppList: + type: object + properties: + clusterIds: + type: array + description: clusters to which result corresponds + example: + - 1 + - 2 + items: + type: integer + applicationType: + description: application type inside the array + type: string + enum: + - DEVTRON-CHART-STORE + - DEVTRON-APP + - HELM-APP + errored: + type: boolean + description: if data fetch for that cluster produced error + example: false + errorMsg: + type: string + description: error msg if client failed to fetch + example: cluster not rechable + helmApps: + type: array + description: all helm app list, EA+ devtronapp + items: + type: object + $ref: '#/components/schemas/HelmApp' + devtronApps: + type: array + description: all helm app list, EA+ devtronapp + items: + type: object + $ref: '#/components/schemas/DevtronApp' + DevtronApp: + type: object + properties: + appName: + type: string + description: name of the helm application/helm release name + example: demo-app + appId: + type: string + description: unique identifier for app + example: 12,helm-app|cluster1-ns1 + projectId: + type: integer + description: unique identifier for the project + example: '12' + environmentDetails: + type: array + items: + $ref: '#/components/schemas/AppEnvironmentDetail' + HelmAppListRequest: + type: object + properties: + clusterIds: + type: array + description: cluster ids + items: + type: integer + format: int64 + example: + - 1 + - 2 + - 3 + HibernateTargetObject: + type: object + properties: + group: + type: string + description: k8s resource group + example: apps + kind: + type: string + description: k8s resource kind + example: Deployment + version: + type: string + description: k8s resource version + example: v1 + name: + type: string + description: k8s resource name + example: test-deployment + namespace: + type: string + description: k8s resource ns + example: devtron + HibernateRequest: + type: object + properties: + appId: + type: string + description: helm app id + example: 1|test|testapp + resources: + type: array + items: + $ref: '#/components/schemas/HibernateTargetObject' + HibernateStatus: + type: object + properties: + success: + type: boolean + description: operation was success or not + example: true + errorMessage: + type: string + description: failure cause, empty is success + example: resource doesn't exists + targetObject: + type: object + $ref: '#/components/schemas/HibernateTargetObject' + ChartMetadata: + type: object + properties: + chartName: + type: string + description: name of the chart + example: envoy + chartVersion: + type: string + description: version of the helm chart + example: v1.2.3 + home: + type: string + description: chart home + example: nginx.com + sources: + type: array + description: source of the helm chart + example: + - nginx.com + items: + type: string + description: + type: string + description: description of the helm chart + example: description of the helm chart + notes: + type: string + description: Contains the rendered templates/NOTES.txt + example: notes of the chart + HelmAppDeploymentDetail: + type: object + properties: + chartMetadata: + type: object + $ref: '#/components/schemas/ChartMetadata' + description: metadata of the chart + dockerImages: + type: array + description: docker images presrnt insise the chart + items: + type: string + version: + type: int + description: deployment version of the helm chart + example: 12 + deployedAt: + type: string + format: date-time + example: '2021-12-15T05:44:05Z' + DeploymentHistoryAndInstalledAppInfo: + type: object + properties: + deploymentHistory: + type: array + description: deployment history + items: + $ref: '#/components/schemas/HelmAppDeploymentDetail' + installedAppInfo: + type: object + $ref: '#/components/schemas/InstalledAppInfo' + description: Installed app info + HelmAppDeploymentHistory: + type: array + description: deployment history + items: + $ref: '#/components/schemas/HelmAppDeploymentDetail' + InstalledAppInfo: + type: object + properties: + appId: + type: integer + description: appId + installedAppId: + type: integer + description: installedAppId + environmentName: + type: string + description: environment Name + appOfferingMode: + type: string + description: EA_ONLY/FULL + appStoreChartId: + type: number + description: App store chart Id + installedAppVersionId: + type: number + description: App store installed app version Id + clusterId: + type: number + description: Cluster Id + environmentId: + type: number + description: Environment Id + appStoreChartRepoName: + type: string + description: App store Chart Repo name + appStoreChartName: + type: string + description: App store Chart name + ReleaseAndInstalledAppInfo: + type: object + properties: + releaseInfo: + type: object + $ref: '#/components/schemas/ReleaseInfo' + description: release info + installedAppInfo: + type: object + $ref: '#/components/schemas/InstalledAppInfo' + description: Installed app info + ReleaseInfo: + type: object + properties: + deployedAppDetail: + type: object + $ref: '#/components/schemas/HelmApp' + description: deployment deils + defaultValues: + type: string + description: default chat values + overrideValues: + type: string + description: overrides passed by user + mergedValues: + type: string + description: merged values + readme: + type: string + description: readme of the chart + valuesSchemaJson: + type: string + description: content of the values.schema.json file of chart + DesiredManifestRequest: + type: object + properties: + appId: + type: string + description: helm app id + example: 1|test|testapp + resource: + type: object + $ref: '#/components/schemas/ResourceIdentifier' + ResourceIdentifier: + type: object + properties: + group: + type: string + description: k8s resource group + example: apps + kind: + type: string + description: k8s resource kind + example: Deployment + version: + type: string + description: k8s resource version + example: v1 + name: + type: string + description: k8s resource name + example: test-deployment + namespace: + type: string + description: k8s resource ns + example: devtron + DesiredManifestResponse: + type: object + properties: + manifest: + type: string + description: desired manifest + example: some manifest + UninstallReleaseResponse: + type: object + properties: + success: + type: boolean + description: success or failure + example: true + UpdateReleaseRequest: + type: object + properties: + appId: + type: string + description: helm app id + example: 1|test|testapp + valuesYaml: + type: string + description: updated values yaml string + example: '' + UpdateReleaseWithChartLinkingRequest: + type: object + properties: + appId: + type: string + description: helm app id + example: 1|test|testapp + valuesYaml: + type: string + description: updated values yaml string + example: '' + appStoreApplicationVersionId: + type: number + description: app store application version Id + example: 1 + referenceValueId: + type: number + description: Reference value Id of selected chart values + example: 1 + referenceValueKind: + type: string + description: Reference value Kind of selected chart values "oneof=DEFAULT + TEMPLATE DEPLOYED EXISTING" (can be null) + example: 1 + UpdateProjectRequest: + type: object + properties: + appId: + type: string + description: helm app id + example: 1|test|testapp + installedAppId: + type: number + description: installed app id + example: 1 + appName: + type: string + description: name of app + example: sample-app + TeamId: + type: number + description: if of new project + example: 1 + UpdateProjectResponse: + type: object + properties: + success: + type: boolean + description: success or failure + example: true + HelmAppDeploymentManifestDetail: + type: object + properties: + manifest: + type: string + description: manifest of deployment + example: abcd + valuesYaml: + type: string + description: values YAML of deployment + example: abcd + TerminalMessage: + type: object + properties: + Op: + type: string + Data: + type: string + SessionID: + type: string + ResourceRequestObject: + type: object + properties: + appId: + type: string + clusterId: + type: number + description: clusterId is used when request is for direct cluster (when + appId is not supplied) + k8sRequest: + $ref: '#/components/schemas/K8sRequestObject' + K8sRequestObject: + type: object + properties: + resourceIdentifier: + type: object + properties: + groupVersionKind: + type: object + properties: + Group: + type: string + Version: + type: string + Kind: + type: string + namespace: + type: string + name: + type: string + required: + - name + podLogsRequest: + type: object + properties: + containerName: + type: string + patch: + type: string + ResourceGetResponse: + type: object + properties: + manifestResponse: + $ref: '#/components/schemas/ManifestResponse' + secretViewAccess: + type: boolean + description: 'Indicates whether a user can see obscured secret values or + not. + + ' + required: + - manifestResponse + - secretViewAccess + ManifestResponse: + type: object + properties: + manifest: + type: object + properties: + apiVersion: + type: string + data: + type: object + properties: + envoy.yaml: + type: string + kind: + type: string + metadata: + type: object + properties: + annotations: + type: object + properties: + meta.helm.sh/release-name: + type: string + meta.helm.sh/release-namespace: + type: string + creationTimestamp: + type: string + format: date-time + labels: + type: object + properties: + app: + type: string + app.kubernetes.io/managed-by: + type: string + chart: + type: string + heritage: + type: string + release: + type: string + name: + type: string + namespace: + type: string + resourceVersion: + type: string + selfLink: + type: string + uid: + type: string + EventsResponseObject: + type: object + properties: + events: + type: object + properties: + metadata: + type: object + properties: + selfLink: + type: string + resourceVersion: + type: string + items: + type: array + items: + type: object + properties: + metadata: + type: object + properties: + name: + type: string + namespace: + type: string + selfLink: + type: string + uid: + type: string + resourceVersion: + type: string + creationTimestamp: + type: string + format: date-time + managedFields: + type: array + items: + type: object + properties: + manager: + type: string + operation: + type: string + apiVersion: + type: string + time: + type: string + format: date-time + involvedObject: + type: object + properties: + kind: + type: string + namespace: + type: string + name: + type: string + uid: + type: string + apiVersion: + type: string + resourceVersion: + type: string + reason: + type: string + message: + type: string + source: + type: object + properties: + component: + type: string + firstTimestamp: + type: string + format: date-time + lastTimestamp: + type: string + format: date-time + count: + type: integer + format: int32 + type: + type: string + eventTime: + type: string + format: nullable + reportingComponent: + type: string + reportingInstance: + type: string + LogsResponseObject: + type: object + properties: + logs: + type: array + items: + type: object + properties: + id: + type: string + type: + type: string + data: + type: string + time: + type: string + GetAllApiResourcesResponse: + type: object + properties: + apiResources: + type: array + items: + $ref: '#/components/schemas/K8sApiResource' + allowedAll: + type: boolean + description: whether all api-resources allowed for this user + example: true + nullable: false + K8sApiResource: + type: object + properties: + gvk: + $ref: '#/components/schemas/GroupVersionKind' + namespaced: + type: boolean + description: whether this api resource is in namespaces scope or global + example: true + nullable: false + GroupVersionKind: + type: object + properties: + group: + type: string + description: group of the api-resource + example: apps + nullable: false + version: + type: string + description: version of the api-resource + example: v1 + nullable: false + kind: + type: string + description: kind of the api-resource + example: pod + nullable: false + ClusterResourceListResponse: + type: object + properties: + headers: + type: array + items: + type: string + data: + type: array + items: + type: object + properties: + header-name: + type: string + description: each object from data key contains the objects keys length + is equal to headers length + RotatePodRequest: + type: object + properties: + clusterId: + type: number + description: cluster Id + example: 1 + nullable: false + resources: + type: array + items: + type: object + properties: + groupVersionKind: + type: object + properties: + Group: + type: string + Version: + type: string + Kind: + type: string + namespace: + type: string + name: + type: string + required: + - name + RotatePodResponse: + type: object + properties: + containsError: + type: boolean + description: contains error + example: true + responses: + type: array + items: + type: object + properties: + groupVersionKind: + type: object + properties: + Group: + type: string + Version: + type: string + Kind: + type: string + namespace: + type: string + name: + type: string + errorResponse: + type: string + ApplyResourcesRequest: + type: object + properties: + clusterId: + type: number + description: cluster Id + example: 1 + nullable: false + manifest: + type: string + description: manifest of the resources (yamls saparated by ---) + example: '' + nullable: false + ApplyResourcesResponse: + type: object + properties: + kind: + type: string + description: kind of the resource + example: pod + nullable: false + name: + type: string + description: name of the resource + example: someName + nullable: false + error: + type: string + description: error in the operation of this resource + example: someError + nullable: true + isUpdate: + type: boolean + description: whether this resource was updated + example: true + nullable: false + ClusterBean: + type: object + properties: + id: + type: integer + cluster_name: + type: string + server_url: + type: string + prometheus_url: + type: string + active: + type: boolean + config: + type: object + properties: + stage: + type: string + error: + type: string + k8sversion: + type: string + prometheusAuth: + $ref: '#/components/schemas/PrometheusAuth' + defaultClusterComponent: + type: array + items: + $ref: '#/components/schemas/DefaultClusterComponent' + EnvironmentBean: + type: object + properties: + id: + type: integer + cluster_name: + type: string + cluster_id: + type: integer + environment_name: + type: string + active: + type: boolean + default: + type: boolean + prometheus_endpoint: + $ref: '#/components/schemas/PrometheusAuth' + namespace: + type: string + isClusterCdActive: + type: boolean + TeamRequest: + type: object + properties: + id: + type: integer + name: + type: string + active: + type: boolean + GitRegistry: + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + userName: + type: string + password: + type: string + sshPrivateKey: + type: string + accessToken: + type: string + authMode: + type: string + active: + type: boolean + gitHostId: + type: integer + DockerArtifactStoreBean: + type: object + properties: + id: + type: integer + pluginId: + type: string + registryUrl: + type: string + registryType: + type: string + awsAccessKeyId: + type: string + awsSecretAccessKey: + type: string + awsRegion: + type: string + username: + type: string + password: + type: string + isDefault: + type: boolean + active: + type: boolean + connection: + type: string + cert: + type: string + ChartRepoDto: + type: object + properties: + id: + type: integer + url: + type: string + name: + type: string + accessToken: + type: string + sshKey: + type: string + userName: + type: string + password: + type: string + default: + type: boolean + active: + type: boolean + authMode: + type: string + UpdateMaterialDTO: + type: object + properties: + appId: + type: integer + material: + $ref: '#/components/schemas/GitMaterial' + ChartGroupBean: + type: object + properties: + name: + type: string + description: + type: string + id: + type: integer + chartGroupEntries: + type: array + items: + $ref: '#/components/schemas/ChartGroupEntryBean' + installedChartData: + type: array + items: + $ref: '#/components/schemas/InstalledChartData' + ChartGroupEntryBean: + type: object + properties: + id: + type: integer + appStoreValuesVersionId: + type: integer + appStoreApplicationVersionId: + type: integer + appStoreValuesVersionName: + type: string + appStoreValuesChartVersion: + type: string + referenceType: + type: string + chartMetaData: + $ref: '#/components/schemas/ChartMetaData' + ChartMetaData: + type: object + properties: + appStoreId: + type: integer + environmentId: + type: integer + isChartRepoActive: + type: boolean + chartName: + type: string + chartRepoName: + type: string + icon: + type: string + environmentName: + type: string + appStoreApplicationVersion: + type: string + InstalledChartData: + type: object + properties: + installationTime: + type: string + description: time type + installedCharts: + $ref: '#/components/schemas/InstalledChart' + InstalledChart: + type: string + properties: + installedAppId: + type: integer + ChannelDto: + type: object + properties: + channel: + type: string + description: type of channel, i.e. slack or SES + SlackConfigDto: + type: object + properties: + id: + type: integer + userId: + type: integer + teamId: + type: integer + webhookUrl: + type: string + configName: + type: string + description: + type: string + SESConfigDto: + type: object + properties: + id: + type: integer + userId: + type: integer + teamId: + type: integer + region: + type: string + accessKey: + type: string + secretKey: + type: string + fromEmail: + type: string + toEmail: + type: string + sessionToken: + type: string + configName: + type: string + description: + type: string + default: + type: boolean + PrometheusAuth: + type: object + properties: + userName: + type: string + password: + type: string + tlsClientCert: + type: string + tlsClientKey: + type: string + DefaultClusterComponent: + type: object + properties: + name: + type: string + appId: + type: integer + installedAppId: + type: integer + envId: + type: integer + envname: + type: string + status: + type: string + GitMaterial: + type: object + properties: + id: + type: integer + name: + type: string + url: + type: string + gitProviderId: + type: integer + checkoutPath: + type: string + fetchSubmodules: + type: boolean + Error: + required: + - code + - message + properties: + code: + type: integer + description: Error code + message: + type: string + description: Error message + DeploymentDetailsDataType: + type: object + properties: + id: + type: integer + deployedOn: + type: string + format: timestamp + deployedBy: + type: integer + ConfigMapAndSecretHistoryDto: + type: object + properties: + id: + type: integer + pipelineId: + type: integer + dataType: + type: string + configData: + $ref: '#/components/schemas/ConfigData' + deployed: + type: boolean + deployedOn: + type: string + format: timestamp + deployedBy: + type: integer + DeploymentTemplateHistoryDto: + type: object + properties: + id: + type: integer + pipelineId: + type: integer + imageDescriptorTemplate: + type: string + template: + type: string + templateName: + type: string + templateVersion: + type: string + isAppMetricsEnabled: + type: boolean + targetEnvironment: + type: integer + deployed: + type: boolean + deployedOn: + type: string + format: timestamp + deployedBy: + type: integer + PipelineStrategyHistoryDto: + type: object + properties: + id: + type: integer + pipelineId: + type: integer + strategy: + type: string + config: + type: string + default: + type: boolean + deployed: + type: boolean + deployedOn: + type: string + format: timestamp + deployedBy: + type: integer + PrePostCdScriptHistoryDto: + type: object + properties: + id: + type: integer + pipelineId: + type: integer + script: + type: string + stage: + type: string + configmapSecretNames: + $ref: '#/components/schemas/PrePostStageConfigMapSecretNames' + configmapData: + $ref: '#/components/schemas/ConfigData' + secretData: + $ref: '#/components/schemas/ConfigData' + triggerType: + type: string + execInEnv: + type: boolean + deployed: + type: boolean + deployedOn: + type: string + format: timestamp + deployedBy: + type: integer + PrePostStageConfigMapSecretNames: + properties: + configMaps: + type: array + items: + type: string + secrets: + type: array + items: + type: string + ConfigData: + properties: + name: + type: string + type: + type: string + external: + type: boolean + mountPath: + type: string + data: + type: string + defaultData: + type: string + defaultMountPath: + type: string + global: + type: boolean + externalType: + type: string + secretData: + type: array + items: + $ref: '#/components/schemas/ExternalSecret' + defaultSecretData: + type: array + items: + $ref: '#/components/schemas/ExternalSecret' + roleArn: + type: string + subPath: + type: boolean + filePermission: + type: string + ExternalSecret: + properties: + key: + type: string + name: + type: string + property: + type: string + isBinary: + type: boolean + ClusterCapacityDto: + type: object + properties: + id: + type: integer + name: + type: string + nodeCount: + type: integer + nodeErrors: + type: array + items: + type: string + nodeK8sVersions: + type: array + items: + type: string + errorInNodeListing: + type: boolean + cpu: + $ref: '#/components/schemas/ResourceDetailObject' + memory: + $ref: '#/components/schemas/ResourceDetailObject' + ClusterCapacityDetailDto: + type: object + properties: + cpu: + $ref: '#/components/schemas/ResourceDetailObject' + memory: + $ref: '#/components/schemas/ResourceDetailObject' + NodeCapacityDto: + type: object + properties: + name: + type: string + status: + type: string + roles: + type: array + items: + type: string + errors: + type: array + items: + $ref: '#/components/schemas/NodeError' + k8sVersion: + type: string + podCount: + type: integer + taintCount: + type: integer + cpu: + $ref: '#/components/schemas/ResourceDetailObject' + memory: + $ref: '#/components/schemas/ResourceDetailObject' + age: + type: string + labels: + type: array + items: + $ref: '#/components/schemas/LabelTaintObject' + NodeCapacityDetailObject: + type: object + properties: + name: + type: string + roles: + type: array + items: + type: string + k8sVersion: + type: string + unschedulable: + type: boolean + createdAt: + type: string + internalIp: + type: string + externalIp: + type: string + resources: + type: array + items: + $ref: '#/components/schemas/ResourceDetailObject' + labels: + type: array + items: + $ref: '#/components/schemas/LabelTaintObject' + annotations: + type: array + items: + $ref: '#/components/schemas/LabelTaintObject' + taints: + type: array + items: + $ref: '#/components/schemas/LabelTaintObject' + conditions: + type: array + items: + $ref: '#/components/schemas/NodeConditionObject' + errors: + type: array + items: + $ref: '#/components/schemas/NodeError' + pods: + type: array + items: + $ref: '#/components/schemas/PodCapacityDto' + manifest: + type: string + version: + type: string + kind: + type: string + NodeError: + type: object + description: map of conditionType(key) and error(value) + PodCapacityDto: + type: object + properties: + name: + type: string + namespace: + type: string + cpu: + $ref: '#/components/schemas/ResourceDetailObject' + memory: + $ref: '#/components/schemas/ResourceDetailObject' + age: + type: string + NodeManifestUpdateDto: + type: object + properties: + clusterId: + type: integer + name: + type: string + manifestPatch: + type: string + version: + type: string + kind: + type: string + NodeDeleteDto: + type: object + properties: + clusterId: + type: integer + name: + type: string + version: + type: string + kind: + type: string + NodeCordonReqDto: + type: object + properties: + clusterId: + type: integer + name: + type: string + version: + type: string + kind: + type: string + nodeCordonOptions: + $ref: '#/components/schemas/NodeCordonHelper' + NodeCordonHelper: + type: object + properties: + unschedulableDesired: + type: boolean + description: set true if want to cordon, set false if want to uncordon + NodeDrainReqDto: + type: object + properties: + clusterId: + type: integer + name: + type: string + version: + type: string + kind: + type: string + nodeDrainOptions: + $ref: '#/components/schemas/NodeDrainHelper' + NodeDrainHelper: + type: object + properties: + gracePeriodSeconds: + type: integer + force: + type: boolean + deleteEmptyDirData: + type: boolean + ignoreAllDaemonSets: + type: boolean + disableEviction: + type: boolean + NodeTaintEditReqDto: + type: object + properties: + clusterId: + type: integer + name: + type: string + version: + type: string + kind: + type: string + taints: + type: array + items: + $ref: '#/components/schemas/Taint' + Taint: + type: object + properties: + key: + type: string + effect: + type: string + oneOf: + - NoSchedule + - NoExecute + - PreferNoSchedule + value: + type: string + required: false + NodeManifestUpdateResponse: + type: object + properties: + manifest: + type: string + ResourceDetailObject: + type: object + properties: + name: + type: string + capacity: + type: string + allocatable: + type: string + usage: + type: string + request: + type: string + limit: + type: string + usagePercentage: + type: string + requestPercentage: + type: string + limitPercentage: + type: string + LabelTaintObject: + type: object + properties: + key: + type: string + value: + type: string + effect: + type: string + NodeConditionObject: + type: object + properties: + type: + type: string + haveIssue: + type: boolean + reason: + type: string + message: + type: string + PluginDetailDto: + type: object + properties: + metadata: + $ref: '#/components/schemas/PluginMetaDataDto' + inputVariables: + type: array + items: + $ref: '#/components/schemas/PluginVariableDto' + outputVariables: + type: array + items: + $ref: '#/components/schemas/PluginVariableDto' + PluginMetaDataDto: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + example: + - PRESET + description: + type: string + icon: + type: string + tags: + type: array + items: + type: string + example: + - GIT + - DATABASE + PluginVariableDto: + type: object + properties: + id: + type: integer + name: + type: string + value: + type: integer + format: + type: string + example: + - STRING + - NUMBER + - BOOL + - DATE + description: + type: string + defaultValue: + type: string + RefVariableUsed: + type: boolean + variableType: + type: string + example: + - GLOBAL + - FROM_PREVIOUS_STEP + RefVariableStepIndex: + type: integer + RefVariableName: + type: string + PluginListFilters: + type: object + properties: + pluginNameContains: + type: string + tags: + type: array + items: + type: string + example: + - GIT + sortBy: + type: string + sortOrder: + type: string + pluginType: + type: string + example: + - PRESET + - SHARED + PluginFilterOptions: + type: object + properties: + tags: + type: array + items: + type: string + types: + type: array + items: + type: string + GlobalVariable: + type: object + properties: + id: + type: integer + name: + type: string + value: + type: string + format: + type: string + description: + type: string + CiPipelineDto: + type: object + properties: + appId: + type: integer + action: + type: integer + appWorkflowId: + type: integer + ciPipeline: + $ref: '#/components/schemas/CiPipelineDetails' + CiPipelineDetails: + type: object + properties: + id: + type: integer + active: + type: boolean + isExternal: + type: boolean + isManual: + type: boolean + linkedCount: + type: integer + name: + type: string + scanEnabled: + type: boolean + dockerArgs: + type: array + items: + $ref: '#/components/schemas/DockerArg' + externalCiConfig: + $ref: '#/components/schemas/ExternalCiConfig' + ciMaterial: + $ref: '#/components/schemas/CiMaterial' + beforeDockerBuildScripts: + type: array + items: + $ref: '#/components/schemas/DockerBuildScript' + afterDockerBuildScripts: + type: array + items: + $ref: '#/components/schemas/DockerBuildScript' + preBuildStage: + $ref: '#/components/schemas/BuildStageDto' + postBuildStage: + $ref: '#/components/schemas/BuildStageDto' + DockerArg: + type: object + description: map of key value pairs + properties: + key: + type: string + value: + type: string + ExternalCiConfig: + type: object + properties: + id: + type: integer + accessKey: + type: string + webhookUrl: + type: string + payload: + type: string + CiMaterial: + type: array + items: + $ref: '#/components/schemas/CiMaterialDetail' + CiMaterialDetail: + type: object + properties: + id: + type: integer + gitMaterialId: + type: integer + source: + type: object + properties: + type: + type: string + example: SOURCE_TYPE_BRANCH_FIXED + value: + type: string + example: master + DockerBuildScript: + type: object + properties: + id: + type: integer + index: + type: integer + name: + type: string + outputLocation: + type: string + script: + type: string + BuildStageDto: + type: object + properties: + id: + type: integer + description: pipelineStageId(every stage is given a Id) + steps: + type: array + items: + $ref: '#/components/schemas/stageStepDetails' + stageStepDetails: + type: object + properties: + id: + type: integer + index: + type: integer + description: sequence of step in all steps + name: + type: string + description: + type: string + stepType: + type: string + example: + - INLINE + - REF_PLUGIN + outputDirectoryPath: + type: array + items: + type: string + inlineStepDetail: + $ref: '#/components/schemas/InlineStepDetail' + pluginRefStepDetail: + $ref: '#/components/schemas/PluginRefStepDetail' + InlineStepDetail: + type: object + properties: + scriptType: + type: string + example: + - SHELL + - DOCKERFILE + - CONTAINER_IMAGE + script: + type: string + storeScriptAt: + type: string + dockerFileExists: + type: boolean + mountPath: + type: string + mountCodeToContainer: + type: boolean + mountCodeToContainerPath: + type: string + mountDirectoryFromHost: + type: boolean + containerImagePath: + type: string + imagePullSecretType: + type: string + example: + - CONTAINER_REGISTRY + - SECRET_PATH + imagePullSecret: + type: string + mountPathMap: + type: array + items: + $ref: '#/components/schemas/MountPathMap' + commandArgsMap: + type: array + items: + $ref: '#/components/schemas/CommandArgMap' + portMap: + type: array + items: + $ref: '#/components/schemas/PortMap' + inputVariables: + type: array + items: + $ref: '#/components/schemas/PipelineStepsVariableDto' + outputVariables: + type: array + items: + $ref: '#/components/schemas/PipelineStepsVariableDto' + conditionDetails: + type: array + items: + $ref: '#/components/schemas/ConditionDetail' + PluginRefStepDetail: + type: object + properties: + pluginId: + type: integer + description: id of the plugin used in the step + inputVariables: + type: array + items: + $ref: '#/components/schemas/PluginVariableDto' + outputVariables: + type: array + items: + $ref: '#/components/schemas/PluginVariableDto' + conditionDetails: + type: array + items: + $ref: '#/components/schemas/ConditionDetail' + PipelineStepsVariableDto: + type: object + properties: + id: + type: integer + name: + type: string + value: + type: integer + format: + type: string + example: + - STRING + - NUMBER + - BOOL + - DATE + description: + type: string + defaultValue: + type: string + refVariableUsed: + type: boolean + refVariableType: + type: string + example: + - GLOBAL + - FROM_PREVIOUS_STEP + - NEW + refVariableStepIndex: + type: integer + refVariableName: + type: string + refVariableStage: + type: string + example: + - PRE_CI + - POST_CI + ConditionDetail: + type: object + properties: + id: + type: integer + conditionOnVariable: + type: string + description: name of the variable on which condition is applied + conditionOperator: + type: string + conditionType: + type: string + example: + - SKIP + - TRIGGER + - SUCCESS + - FAIL + conditionalValue: + type: string + MountPathMap: + type: object + properties: + filePathOnDisk: + type: string + filePathOnContainer: + type: string + CommandArgMap: + type: object + properties: + command: + type: string + args: + type: array + items: + type: string + PortMap: + type: object + properties: + portOnLocal: + type: integer + portOnContainer: + type: integer + AppDetail: + type: object + properties: + metadata: + $ref: '#/components/schemas/AppMetadata' + gitMaterials: + type: array + items: + $ref: '#/components/schemas/GitMaterial' + dockerConfig: + $ref: '#/components/schemas/DockerConfig' + globalDeploymentTemplate: + $ref: '#/components/schemas/DeploymentTemplate' + appWorkflows: + type: array + items: + $ref: '#/components/schemas/AppWorkflow' + globalConfigMaps: + type: array + items: + $ref: '#/components/schemas/ConfigMap' + globalSecrets: + type: array + items: + $ref: '#/components/schemas/Secret' + environmentOverrides: + type: array + items: + type: object + properties: + Name: + type: string + description: Name of environment + Values: + $ref: '#/components/schemas/EnvironmentOverride' + example: + appMetadata: + appName: example-app-2 + projectName: devtron-demo + labels: + - key1: value1 + - key2: value2 + gitMaterials: + - gitProviderUrl: https://github.com + gitRepoUrl: https://github.com/user1/example-repo + checkoutPath: ./ + fetchSubmodules: true + - gitProviderUrl: https://gitlab.com + gitRepoUrl: https://gitlab.com/user2/new-repo + checkoutPath: ./a + fetchSubmodules: false + dockerConfig: + dockerRegistry: my-dockerhub + dockerRepository: user/test + dockerBuildConfig: + gitCheckoutPath: ./a + dockerfileRelativePath: Dockerfile + args: + - File: '*' + globalDeploymentTemplate: + chartRefId: 13 + showAppMetrics: true + isOverride: false + template: + ContainerPort: + envoyPort: 8799 + idleTimeout: 1800s + name: app + port: 8080 + servicePort: 80 + supportStreaming: true + useHTTP2: true + EnvVariables: [] + GracePeriod: 30 + LivenessProbe: + Path: '' + command: [] + failureThreshold: 3 + httpHeader: + name: '' + value: '' + initialDelaySeconds: 20 + periodSeconds: 10 + port: 8080 + scheme: '' + successThreshold: 1 + tcp: false + timeoutSeconds: 5 + appWorkflows: + - name: workflow-1 + ciPipeline: + name: ci-pipeline-1 + isManual: true + vulnerabilityScanEnabled: false + isExternal: fale + ciPipelineMaterialsConfig: + - type: SOURCE_TYPE_BRANCH_FIXED + value: master + checkoutPath: ./ + - type: SOURCE_TYPE_BRANCH_FIXED + value: main + checkoutPath: ./a + dockerBuildArgs: + - File: '*' + cdPipelines: + - name: cd-pipeline-1 + environmentName: devtron-demo + triggerType: AUTOMATIC + deploymentStrategies: + - name: BLUE-GREEN + config: + deployment: + strategy: + blueGreen: + autoPromotionSeconds: 30 + scaleDownDelaySeconds: 30 + previewReplicaCount: 1 + autoPromotionEnabled: false + isDefault: false + - name: ROLLING + config: + deployment: + strategy: + blueGreen: + autoPromotionSeconds: 30 + maxSurge: 25% + maxUnavailable: 1 + isDefault: true + preStage: + name: cd-1-pre + triggerType: MANUAL + config: "version: 0.0.1\ncdPipelineConf:\n- beforeStages:\n- name: test-1\n\ + \ script: |\n date > test.report\necho 'hello'\noutputLocation: ./test.report\n\ + \ - name: test-2\nscript: |\n date > test2.report\n outputLocation:\ + \ ./test2.report;" + postStage: + name: cd-1-post + triggerType: AUTO + config: "version: 0.0.1\ncdPipelineConf:\n- afterStages:\n- name: test-1\n\ + \ script: |\n date > test.report\necho 'hello'\noutputLocation: ./test.report\n\ + \ - name: test-2\nscript: |\n date > test2.report\n outputLocation:\ + \ ./test2.report;" + preStageConfigMapSecretNames: + - configMaps: + - cm-1 + - secrets: + - secret-env-1 + postStageConfigMapSecretNames: + - configMaps: + - cm-env-1 + - secrets: + - secret-1 + runPreStageInEnv: true + runPostStageInEnv: true + isClusterCdActive: true + globalConfigMaps: + - name: cm-1 + isExternal: false + usageType: volume + data: + - abc: xyz + dataVolumeUsageConfig: + mountPath: /cm + filePermission: '600' + subPath: true + globalSecrets: + - name: secret-1 + isExternal: false + usageType: environment + data: + - user1: password1 + environmentOverrides: + - name: devtron-demo + values: + deploymentTemplate: + chartRefId: 13 + showAppMetrics: false + isOverride: true + template: + ContainerPort: + envoyPort: 8799 + idleTimeout: 1800s + name: app + port: 8080 + servicePort: 80 + supportStreaming: true + useHTTP2: true + EnvVariables: [] + GracePeriod: 35 + LivenessProbe: + Path: '' + command: [] + failureThreshold: 4 + httpHeader: + name: '' + value: '' + initialDelaySeconds: 21 + periodSeconds: 11 + port: 8080 + scheme: '' + successThreshold: 1 + tcp: false + timeoutSeconds: 10 + configMaps: + - name: cm-env-1 + isExternal: false + usageType: environment + data: + - userName: new-user + secrets: + - name: secret-env-1 + isExternal: false + usageType: volume + data: + - new-user: devtron123 + dataVolumeUsageConfig: + mountPath: /secret + filePermission: '400' + subPath: false + AppMetadata: + type: object + properties: + appName: + type: string + projectName: + type: string + labels: + type: array + items: + $ref: '#/components/schemas/AppLabel' + AppLabel: + type: object + properties: + Key: + type: string + Value: + type: string + propagate: + type: boolean + description: Whether to propagate to kubernetes resources + DockerConfig: + type: object + properties: + dockerRegistry: + type: string + dockerRepository: + type: string + dockerBuildConfig: + $ref: '#/components/schemas/DockerBuildConfig' + DockerBuildConfig: + type: object + properties: + gitCheckoutPath: + type: string + dockerfileRelativePath: + type: string + targetPlatform: + type: string + args: + type: array + items: + type: object + properties: + Key: + type: string + Value: + type: string + description: map of docker arguments, i.e. key-value pairs + DeploymentTemplate: + type: object + properties: + chartRefId: + type: integer + showAppMetrics: + type: boolean + isOverride: + type: boolean + template: + type: array + items: + type: object + properties: + Fields: + type: string + Values: + type: object + description: interface{} + description: map of template fields and values + isBasicViewLocked: + type: boolean + currentViewEditor: + type: string + enum: + - BASIC + - ADVANCED + AppWorkflow: + type: object + properties: + name: + type: string + ciPipeline: + $ref: '#/components/schemas/CiPipelineDetails' + cdPipelines: + type: array + items: + $ref: '#/components/schemas/CdPipelineDetails' + CiPipelineMaterialConfig: + type: object + properties: + type: + type: string + value: + type: string + checkoutPath: + type: string + BuildScript: + type: object + properties: + index: + type: integer + name: + type: string + script: + type: string + reportDirectoryPath: + type: string + CdPipelineDetails: + type: object + properties: + name: + type: string + environmentName: + type: string + triggerType: + type: string + deploymentAppType: + type: string + oneOf: + - argo_cd + - helm + deploymentType: + type: string + deploymentStrategies: + type: array + items: + $ref: '#/components/schemas/DeploymentStrategy' + preStage: + $ref: '#/components/schemas/CdStage' + postStage: + $ref: '#/components/schemas/CdStage' + preStageConfigMapSecretNames: + $ref: '#/components/schemas/CdStageConfigMapSecretNames' + postStageConfigMapSecretNames: + $ref: '#/components/schemas/CdStageConfigMapSecretNames' + runPreStageInEnv: + type: boolean + runPostStageInEnv: + type: boolean + isClusterCdActive: + type: boolean + DeploymentStrategy: + type: object + properties: + deploymentType: + type: string + isDefault: + type: boolean + config: + type: array + items: + type: object + properties: + Key: + type: string + Values: + type: object + description: interface{} + CdStage: + type: object + properties: + name: + type: string + triggerType: + type: string + config: + type: string + CdStageConfigMapSecretNames: + type: object + properties: + configMaps: + type: array + items: + properties: + ConfigMap: + type: string + secrets: + type: array + items: + properties: + Secret: + type: string + ConfigMap: + type: object + properties: + name: + type: string + isExtetrnal: + type: boolean + usageType: + type: string + data: + type: array + items: + type: object + properties: + Key: + type: string + Values: + type: object + description: interface{} + dataVolumeUsageConfig: + $ref: '#/components/schemas/ConfigMapSecretDataVolumeUsageConfig' + Secret: + type: object + properties: + name: + type: string + isExternal: + type: boolean + externalType: + type: string + roleArn: + type: string + usageType: + type: string + data: + type: array + items: + type: object + properties: + Key: + type: string + Values: + type: object + description: interface{} + dataVolumeUsageConfig: + $ref: '#/components/schemas/ConfigMapSecretDataVolumeUsageConfig' + externalSecretData: + type: array + items: + $ref: '#/components/schemas/ExternalSecret' + ConfigMapSecretDataVolumeUsageConfig: + type: object + properties: + mountPath: + type: string + subPath: + type: boolean + filePermission: + type: string + EnvironmentOverride: + type: object + properties: + deploymentTemplate: + $ref: '#/components/schemas/DeploymentTemplate' + configMaps: + type: array + items: + $ref: '#/components/schemas/ConfigMap' + secrets: + type: array + items: + $ref: '#/components/schemas/Secret' + AppWorkflowDto: + type: object + properties: + appId: + type: integer + appName: + type: string + workflows: + type: array + items: + $ref: '#/components/schemas/AppWorkflow' + environmentOverrides: + type: array + items: + type: object + properties: + Name: + type: string + description: Name of environment + Values: + $ref: '#/components/schemas/EnvironmentOverride' + RoleGroup: + type: object + required: + - name + properties: + id: + type: integer + description: Unique id of role group + name: + type: string + description: Unique name of group + description: + type: string + description: description + roleFilters: + type: array + items: + $ref: '#/components/schemas/roleFilter' + description: role filters objects + roleFilter: + type: object + required: + - action + properties: + entity: + type: string + description: global entity name, i.e chart-group, git, docker, cluster etc. + if this key is present than field team, application and environment are + ignored. + enum: + - chart-group + - docker + - git + - cluster + - notification + team: + type: string + description: team name + entityName: + type: string + description: global entity name item name, i.e chart-group ("abc"), git("devtron-gt") + etc. + environment: + type: string + description: comma saperated environments names. + action: + type: string + description: action is type of role, i.e manager, admin, trigger, view, + etc. + accessType: + type: string + enum: + - '' + - helm-app + description: accessType difine permission type dawf=devtron app work flow, + helm-app=helm app work flow. based on this flag data categoriesed into + devtron and helm permission tabs in user auth role group section. + RoleGroupListingResponse: + type: object + properties: + roleGroups: + items: + $ref: '#/components/schemas/RoleGroup' + description: role groups listing + totalCount: + type: integer + description: total number of results satisfying the conditions + BulkDeleteRequest: + type: object + properties: + ids: + type: array + items: + type: integer + format: int32 + description: Array of group IDs to be deleted + listingRequest: + $ref: '#/components/schemas/ListingRequest' + ListingRequest: + type: object + properties: + searchKey: + type: string + description: Search key for filtering + sortOrder: + type: string + enum: + - ASC + - DESC + description: Sorting order + sortBy: + type: string + enum: + - name + description: Attribute to sort by + offset: + type: integer + format: int32 + description: Starting index for fetching listings + size: + type: integer + format: int32 + description: Number of listings to fetch + showAll: + type: boolean + description: Show all listings + User: + type: object + required: + - email_id + properties: + id: + type: integer + description: Unique id of user + email_id: + type: string + description: Unique valid email-id of user, comma separated emails ids for + multiple users + userRoleGroups: + type: array + items: + $ref: '#/components/schemas/UserRoleGroupItem' + roleFilters: + type: array + items: + $ref: '#/components/schemas/roleFilter' + description: role filters objects + UserListingResponse: + type: object + properties: + users: + items: + $ref: '#/components/schemas/AllUsersV2' + description: role filters objects + totalCount: + type: integer + description: total number of results satisfying the conditions + AllUsers: + type: object + required: + - email_id + properties: + id: + type: integer + description: Unique id of user + email_id: + type: string + description: Unique valid email-id of user, comma separated emails ids for + multiple users + groups: + type: array + items: + type: string + roleFilters: + type: array + items: + $ref: '#/components/schemas/emptyRoleFilter' + description: role filters objects + lastLogin: + type: string + format: date-time + description: user last login time + AllUsersV2: + type: object + required: + - email_id + properties: + id: + type: integer + description: Unique id of user + email_id: + type: string + description: Unique valid email-id of user, comma separated emails ids for + multiple users + userRoleGroups: + type: array + items: + $ref: '#/components/schemas/UserRoleGroupItem' + lastLogin: + type: string + format: date-time + description: user last login time + emptyRoleFilter: + type: object + required: + - action + UserRoleGroupItem: + type: object + properties: + roleGroup: + $ref: '#/components/schemas/RoleGroup' + App: + type: object + required: + - appName + - teamId + - templateId + properties: + appName: + type: string + description: app name + teamId: + type: integer + description: project id + templateId: + type: integer + description: reference app id, used for clone, set default value 0 for blank + app. + labels: + type: array + description: each apps may have multiple labels. these are optional. + items: + $ref: '#/components/schemas/AppLabel' + AppProjectUpdateRequest: + type: object + required: + - teamId + - appId + properties: + teamId: + type: integer + description: project id + appId: + type: array + description: team id, teams ids are projects ids + items: + type: integer + AppListingRequest: + type: object + required: + - offset + - size + properties: + appNameSearch: + type: string + description: app name search, wildcard match + offset: + type: integer + description: offset + size: + type: integer + description: result size + sortBy: + type: string + description: sort by + sortOrder: + type: string + description: sort order + environments: + type: array + description: environment id + items: + type: integer + teams: + type: array + description: team id, teams ids are projects ids + items: + type: integer + labels: + type: array + description: app labels + items: + type: string + statuses: + type: array + description: status + items: + type: string + AppContainer: + type: object + required: + - appId + - appName + - environments + properties: + appId: + type: integer + description: app id + appName: + type: string + description: app name + environments: + type: array + items: + $ref: '#/components/schemas/EnvContainer' + EnvContainer: + type: object + required: + - appId + - appName + - environmentId + - environmentName + properties: + appId: + type: integer + description: app id + appName: + type: string + description: app name + cdStageStatus: + type: string + description: app name + dataSource: + type: string + description: app name + ciArtifactId: + type: integer + description: app name + deleted: + type: boolean + description: app name + environmentId: + type: integer + description: app name + environmentName: + type: string + description: app name + status: + type: string + description: app name + appStatus: + type: string + description: app status for this environment + postStageStatus: + type: string + description: app name + preStageStatus: + type: string + description: app name + lastDeployedTime: + type: string + description: deployed time + materialInfo: + type: array + items: + type: object + DeploymentGroup: + type: object + required: + - id + properties: + id: + type: integer + description: id + ciPipelineId: + type: integer + description: ciPipelineId + environmentId: + type: integer + description: environmentId + appCount: + type: integer + description: appCount + name: + type: string + description: name + noOfApps: + type: string + description: noOfApps + ErrorResponse: + required: + - code + - status + properties: + code: + type: integer + format: int32 + description: Error code + status: + type: string + description: Error message + errors: + type: array + description: errors + items: + $ref: '#/components/schemas/Error' + CreateAppDTO: + type: object + properties: + id: + type: integer + appname: + type: string + material: + type: array + items: + $ref: '#/components/schemas/GitMaterial' + teamId: + type: integer + templateId: + type: integer + appLabels: + type: array + items: + $ref: '#/components/schemas/labels' + labels: + type: object + properties: + key: + type: string + value: + type: string + CreateMaterialDTO: + type: object + properties: + id: + type: integer + appId: + type: integer + material: + type: array + items: + $ref: '#/components/schemas/GitMaterial' + PluginStepsDto: + type: object + properties: + id: + type: integer + description: Unique identifier of the plugin step. + name: + type: string + description: Name of the plugin step. + description: + type: string + description: Detailed description of what the plugin step does. + index: + type: integer + description: The order index of the plugin step within the plugin. + stepType: + type: string + enum: + - INLINE + - REF_PLUGIN + description: Type of the plugin step, indicating whether it's an INLINE + step defined within the plugin or a REF_PLUGIN step referencing another + plugin. + refPluginId: + type: integer + description: Unique identifier of the plugin used as reference by this step. + outputDirectoryPath: + type: array + items: + type: string + description: Paths to directories where the output of the plugin step should + be stored. + dependentOnStep: + type: string + description: Identifier of the step, this step depends on to run. It can + be used to establish execution order. + pluginStepVariable: + type: array + items: + $ref: '#/components/schemas/PluginVariableDto' + description: Optional. A list of variables associated with this plugin step. + pluginPipelineScript: + allOf: + - $ref: '#/components/schemas/PluginPipelineScript' + - description: Script associated with this plugin step to be executed as + part of the pipeline. Optional. + required: + - name + - description + - index + - stepType + - refPluginId + - outputDirectoryPath + - dependentOnStep + PluginStepCondition: + type: object + properties: + id: + type: integer + description: The unique identifier of the plugin step condition. + pluginStepId: + type: integer + description: The identifier of the plugin step associated with this condition. + conditionVariableId: + type: integer + description: The identifier of the variable on which the condition is written. + conditionType: + type: string + description: 'The type of condition. Possible values are: - SKIP: Skips + the plugin step. - TRIGGER: Triggers the plugin step. - SUCCESS: Executes + the plugin step on success. - FAIL: Executes the plugin step on failure. + + ' + enum: + - SKIP + - TRIGGER + - SUCCESS + - FAIL + example: SKIP + conditionalOperator: + type: string + description: The operator used in the condition. + conditionalValue: + type: string + description: The value associated with the condition. + deleted: + type: boolean + description: Specifies whether the condition is deleted. + required: + - pluginStepId + - conditionVariableId + - conditionType + - conditionalOperator + - conditionalValue + - deleted + PluginPipelineScript: + type: object + properties: + id: + type: integer + description: The unique identifier of the plugin pipeline script. Even if + it is skipped by the user it will automatically get created with the default + value + script: + type: string + description: The script associated with the plugin pipeline. + storeScriptAt: + type: string + description: The location where the script is stored. + type: + type: string + description: "Specifies the type of script. Possible values are:\n - SHELL:\ + \ Shell script.\n - CONTAINER_IMAGE: Container image script.\n" + enum: + - SHELL + - CONTAINER_IMAGE + example: + - SHELL + mountPath: + type: string + description: The path where the script is mounted. + mountCodeToContainer: + type: boolean + description: Indicates whether code is mounted to the container. + mountCodeToContainerPath: + type: string + description: The path where code is mounted to the container. + mountDirectoryFromHost: + type: boolean + description: Indicates whether a directory is mounted from the host. + containerImagePath: + type: string + description: The path to the container image. + imagePullSecretType: + type: string + description: 'Specifies the type of image pull secret. Possible values are: + - CONTAINER_REGISTRY: Container registry image pull secret. - SECRET_PATH: + Secret path image pull secret. + + ' + enum: + - CONTAINER_REGISTRY + - SECRET_PATH + example: + - CONTAINER_REGISTRY + imagePullSecret: + type: string + description: The image pull secret. + deleted: + type: boolean + description: Indicates whether the plugin pipeline script is deleted. + pathArgPortMapping: + type: array + items: + $ref: '#/components/schemas/ScriptPathArgPortMapping' + description: The path argument port mappings associated with the plugin + pipeline script. + required: + - script + - storeScriptAt + - type + - mountPath + - mountCodeToContainer + - mountCodeToContainerPath + - mountDirectoryFromHost + - containerImagePath + - imagePullSecretType + - imagePullSecret + - deleted + - pathArgPortMapping + ScriptPathArgPortMapping: + type: object + properties: + id: + type: integer + description: The unique identifier of the script path argument port mapping. + Even if it is skipped by the user it will automatically get created with + the default value + typeOfMapping: + type: string + description: 'Specifies the type of mapping. Possible values are: - FILE_PATH + - PORT + + ' + enum: + - FILE_PATH + - PORT + example: + - PORT + filePathOnDisk: + type: string + description: The file path on the local disk. + filePathOnContainer: + type: string + description: The file path on the container. + command: + type: string + description: The command associated with the mapping. + args: + type: array + items: + type: string + description: The arguments associated with the command. + portOnLocal: + type: integer + description: The port on the local machine. + portOnContainer: + type: integer + description: The port on the container. + scriptId: + type: integer + description: The identifier of the script associated with the mapping. + required: + - id + - typeOfMapping + - filePathOnDisk + - filePathOnContainer + - command + - args + - portOnLocal + - portOnContainer + - scriptId + AppLabels: + type: object + required: + - appId + - labels + properties: + appId: + type: integer + description: application id + labels: + type: array + items: + $ref: '#/components/schemas/AppLabel' + AppMetaInfo: + type: object + required: + - appId + - projectId + - appName + - projectName + - createdOn + - createdBy + - labels + properties: + appId: + type: integer + description: app id + projectId: + type: integer + description: team/project id + appName: + type: string + description: app name + projectName: + type: string + description: team/project name + labels: + type: array + items: + $ref: '#/components/schemas/AppLabel' + createdOn: + type: string + description: app creation date + createdBy: + type: string + description: app created by + BulkActionPayload: + type: object + required: envId + properties: + appIdIncludes: + type: array + items: + type: integer + appIdExcludes: + type: array + items: + type: integer + envId: + type: integer + description: environment id + IdsIncludesExcludes: + type: object + properties: + ids: + type: array + items: + type: integer + description: app ids + BulkUpdateSeeExampleResponse: + type: object + required: + - Script + properties: + resource: + type: string + description: Resource from url path, i.e. {apiVersion} & {kind} + script: + $ref: '#/components/schemas/BulkUpdateScript' + description: Input Script for bulk update + readMe: + type: string + description: Readme for bulk update + BulkUpdateScript: + type: object + required: + - ApiVersion + - Kind + - Spec + properties: + apiVersion: + type: string + description: Api version from url + example: + - v1beta1 + kind: + type: string + description: Kind + example: + - application + spec: + $ref: '#/components/schemas/BulkUpdatePayload' + BulkUpdatePayload: + type: object + properties: + includes: + $ref: '#/components/schemas/NameIncludesExcludes' + excludes: + $ref: '#/components/schemas/NameIncludesExcludes' + envIds: + type: array + items: + type: integer + description: All Env Id's for updating dependent apps + global: + type: boolean + description: Global flag for updating dependent apps + DeploymentTemplate: + $ref: '#/components/schemas/Tasks' + ConfigMaps: + type: object + properties: + names: + type: array + items: + type: string + description: Name of All ConfigMaps to be updated + tasks: + $ref: '#/components/schemas/Spec' + Secrets: + type: object + properties: + names: + type: array + items: + type: string + description: Name of All Secrets to be updated + tasks: + $ref: '#/components/schemas/Spec' + Tasks: + type: object + properties: + spec: + $ref: '#/components/schemas/Spec' + description: Spec of the Task + Spec: + type: object + properties: + patchData: + type: string + description: string with details of the patch to be used for updating + NameIncludesExcludes: + type: object + properties: + names: + type: array + items: + type: string + description: All strings of app names to be included/excluded + ImpactedObjectsResponse: + type: object + properties: + deploymentTemplate: + type: array + items: + $ref: '#/components/schemas/DeploymentTemplateImpactedObjectsResponseForOneApp' + configMap: + type: array + items: + $ref: '#/components/schemas/CmAndSecretImpactedObjectsResponseForOneApp' + secret: + type: array + items: + $ref: '#/components/schemas/CmAndSecretImpactedObjectsResponseForOneApp' + DeploymentTemplateImpactedObjectsResponseForOneApp: + type: object + properties: + appId: + type: integer + description: Id of the impacted app + appName: + type: string + description: Name of the impacted app + envId: + type: string + description: Env Id of the impacted app + CmAndSecretImpactedObjectsResponseForOneApp: + type: object + properties: + appId: + type: integer + description: Id of the impacted app + appName: + type: string + description: Name of the impacted app + envId: + type: string + description: Env Id of the impacted app + names: + type: array + items: + type: string + description: Names of all configmaps/secrets impacted + BulkUpdateResponse: + type: object + properties: + deploymentTemplate: + $ref: '#/components/schemas/DeploymentTemplateBulkUpdateResponse' + configMap: + $ref: '#/components/schemas/CmAndSecretBulkUpdateResponse' + secret: + $ref: '#/components/schemas/CmAndSecretBulkUpdateResponse' + DeploymentTemplateBulkUpdateResponse: + type: object + properties: + message: + type: array + items: + type: string + description: All top-level messages in response of bulk update action + failure: + type: array + items: + $ref: '#/components/schemas/DeploymentTemplateBulkUpdateResponseForOneApp' + description: Details of all apps on which bulk update failed + successful: + type: array + items: + $ref: '#/components/schemas/DeploymentTemplateBulkUpdateResponseForOneApp' + description: Details of all apps on which bulk update applied successfully + CmAndSecretBulkUpdateResponse: + type: object + properties: + message: + type: array + items: + type: string + description: All top-level messages in response of bulk update action + failure: + type: array + items: + $ref: '#/components/schemas/CmAndSecretBulkUpdateResponseForOneApp' + description: Details of all apps on which bulk update failed + successful: + type: array + items: + $ref: '#/components/schemas/CmAndSecretBulkUpdateResponseForOneApp' + description: Details of all apps on which bulk update applied successfully + DeploymentTemplateBulkUpdateResponseForOneApp: + type: object + properties: + appId: + type: integer + description: Id of the concerned app + appName: + type: string + description: Name of the concerned app + envId: + type: integer + description: Env ID of the concerned app + message: + type: string + description: App-level message for the concerned app + CmAndSecretBulkUpdateResponseForOneApp: + type: object + properties: + appId: + type: integer + description: Id of the concerned app + appName: + type: string + description: Name of the concerned app + envId: + type: integer + description: Env ID of the concerned app + names: + type: array + items: + type: string + description: Names of all configmaps/secrets + message: + type: string + description: App-level message for the concerned app + UploadTemplateRequest: + type: object + properties: + fileId: + type: string + action: + type: string + UploadTemplateResponse: + type: object + properties: + chartName: + type: string + description: + type: string + fileId: + type: string + action: + type: string + message: + type: string + Chart: + type: object + properties: + name: + type: string + description: + type: string + count: + type: integer + WorkflowsDto: + type: object + properties: + workflows: + type: array + items: + $ref: '#/components/schemas/WorkflowDetail' + WorkflowDetail: + type: object + properties: + name: + type: string + id: + type: integer + ciPipelineName: + type: string + ciPipelineId: + type: integer + cdPipelines: + type: array + items: + type: string + CiPatchRequest: + type: object + properties: + action: + type: integer + appId: + type: integer + appWorkflowId: + type: integer + ciPipeline: + $ref: '#/components/schemas/CiPipelineDetails' + CiConfigRequest: + type: object + properties: + id: + type: integer + scanEnabled: + type: boolean + appId: + type: integer + appName: + type: string + dockerBuildConfig: + $ref: '#/components/schemas/DockerBuildConfig' + ciPipelines: + type: array + items: + $ref: '#/components/schemas/CiPipelineDetails' + dockerRegistry: + type: string + dockerRepository: + type: string + materials: + type: array + items: + $ref: '#/components/schemas/GitMaterial' + HistoryComponentDetailDto: + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/HistoryComponentValuesDto' + codeEditorValue: + type: object + properties: + displayName: + type: string + value: + type: string + HistoryComponentValuesDto: + type: object + properties: + fieldName: + type: object + properties: + displayName: + type: string + value: + type: string + HistoryComponentListDto: + type: object + properties: + id: + type: integer + deployedOn: + type: string + format: timestamp + deployedBy: + type: string + deploymentStatus: + type: string + HistoryConfigurationListDto: + type: array + items: + $ref: '#/components/schemas/HistoryConfiguration' + HistoryConfiguration: + type: object + properties: + id: + type: integer + name: + type: string + enum: + - DEPLOYMENT_TEMPLATE + - CONFIGMAP + - SECRET + - PIPELINE_STRATEGY + childList: + type: array + items: + type: string + NotificationSetting: + type: object + required: + - configName + properties: + id: + type: integer + description: Unique id + configName: + type: string + description: Unique name of group + appId: + type: integer + description: app id + envId: + type: integer + description: env id + pipelineIds: + type: array + items: + type: integer + eventTypeIds: + type: array + items: + type: integer + pipelineType: + type: string + description: pipeline type CI or CD + providers: + type: array + items: + $ref: '#/components/schemas/providers' + description: role filters objects + providers: + type: object + required: + - dest + properties: + dest: + type: string + description: channel destination name + rule: + type: string + description: rule + configId: + type: integer + description: config id + NotificationConfig: + type: object + required: + - channel + properties: + channel: + type: string + description: channel type + enum: + - slack + - ses + configs: + type: array + items: + $ref: '#/components/schemas/configs' + description: config holds for either slack or ses + NotificationConfigResponse: + type: object + properties: + slackConfigs: + type: array + items: + $ref: '#/components/schemas/configs' + description: config holds for either slack or ses + sesConfigs: + type: array + items: + $ref: '#/components/schemas/configs' + description: config holds for either slack or ses + configs: + type: object + required: + - type + - configName + properties: + id: + type: integer + description: unique id for config either slack or ses on response or update + only + type: + type: string + description: channel destination type, slack or ses + configName: + type: string + description: configName + secretKey: + type: string + description: secretKey, only in case of ses + accessKey: + type: string + description: accessKey, only in case of ses + fromEmail: + type: string + description: fromEmail, only in case of ses + region: + type: string + description: region, only in case of ses + webhookUrl: + type: string + description: webhook url, only fill in case of type is slack + teamId: + type: integer + description: project id, only fill in case of type is slack + userId: + type: integer + description: project id, only fill in case of type is slack + entity: + type: object + properties: + id: + type: integer + description: it contains entity id + name: + type: string + description: it contains entity name + HistoryConfigurationDetailDto: + type: object + properties: + deploymentTemplate: + type: object + properties: + config: + type: object + properties: + codeEditorValue: + type: object + properties: + value: + type: string + displayName: + type: string + isAppMetrics: + type: string + templateName: + type: string + templateVersion: + type: string + configMap: + type: object + properties: + childList: + type: array + items: + type: object + properties: + componentName: + type: string + config: + type: object + properties: + codeEditorValue: + type: object + properties: + value: + type: string + displayName: + type: string + type: + type: string + external: + type: string + mountPath: + type: string + externalType: + type: string + roleARN: + type: string + subPath: + type: string + filePermission: + type: string + secret: + type: object + properties: + childList: + type: array + items: + type: object + properties: + componentName: + type: string + config: + type: object + properties: + codeEditorValue: + type: object + properties: + value: + type: string + displayName: + type: string + type: + type: string + external: + type: string + mountPath: + type: string + externalType: + type: string + roleARN: + type: string + subPath: + type: string + filePermission: + type: string + pipelineStrategy: + type: object + properties: + config: + type: object + properties: + codeEditorValue: + type: object + properties: + value: + type: string + displayName: + type: string + pipelineTriggerType: + type: string + strategy: + type: string + ApiToken: + example: + userIdentifier: some email + expireAtInMs: 12344546 + lastUsedAt: some date + lastUsedByIp: some ip + name: some name + description: some description + id: 1 + userId: 1 + token: some token + updatedAt: some date + properties: + id: + description: Id of api-token + example: 1 + nullable: false + type: integer + userId: + description: User Id associated with api-token + example: 1 + nullable: false + type: integer + userIdentifier: + description: EmailId of that api-token user + example: some email + nullable: false + type: string + name: + description: Name of api-token + example: some name + nullable: false + type: string + description: + description: Description of api-token + example: some description + nullable: false + type: string + expireAtInMs: + description: Expiration time of api-token in milliseconds + example: 12344546 + format: int64 + type: integer + token: + description: Token of that api-token + example: some token + nullable: false + type: string + lastUsedAt: + description: Date of Last used of this token + example: some date + type: string + lastUsedByIp: + description: token last used by IP + example: some ip + type: string + updatedAt: + description: token last updatedAt + example: some date + type: string + type: object + CreateApiTokenRequest: + example: + expireAtInMs: 12344546 + name: some name + description: some description + properties: + name: + description: Name of api-token + example: some name + nullable: false + type: string + description: + description: Description of api-token + example: some description + nullable: false + type: string + expireAtInMs: + description: Expiration time of api-token in milliseconds + example: 12344546 + format: int64 + type: integer + type: object + UpdateApiTokenRequest: + example: + expireAtInMs: 12344546 + description: some description + properties: + description: + description: Description of api-token + example: some description + nullable: false + type: string + expireAtInMs: + description: Expiration time of api-token in milliseconds + example: 12344546 + format: int64 + type: integer + type: object + ActionResponse: + example: + success: true + properties: + success: + description: success or failure + example: true + type: boolean + type: object + CreateApiTokenResponse: + example: + userIdentifier: some email + success: true + userId: 1 + token: some token + properties: + success: + description: success or failure + example: true + type: boolean + token: + description: Token of that api-token + example: some token + type: string + userId: + description: User Id associated with api-token + example: 1 + type: integer + userIdentifier: + description: EmailId of that api-token user + example: some email + type: string + type: object + UpdateApiTokenResponse: + example: + success: true + token: some token + properties: + success: + description: success or failure + example: true + type: boolean + token: + description: Token of that api-token + example: some token + type: string + type: object + RollbackReleaseResponse: + type: object + properties: + success: + type: boolean + description: success or failure + example: true + RollbackReleaseRequest: + type: object + properties: + installedAppId: + type: integer + description: Installed App Id if the app is installed from chart store + example: 1 + installedAppVersionId: + type: integer + description: Installed App Version Id if the app is installed from chart + store + example: 2 + hAppId: + type: string + description: helm App Id if the application is installed from using helm + (for example "clusterId|namespace|appName" ) + example: 1|default|someName + version: + type: integer + description: rollback to this version + example: 10 + TemplateChartRequest: + type: object + properties: + environmentId: + type: integer + description: environment Id on which helm template would be performed + example: 1 + clusterId: + type: integer + description: If environmentId is not provided, clusterId should be passed + example: 1 + namespace: + type: string + description: If environmentId is not provided, namespace should be passed + example: 1 + releaseName: + type: string + description: release name of helm app (if not provided, some random name + is picked) + example: some name + appStoreApplicationVersionId: + type: integer + description: App store application version Id + example: 10 + valuesYaml: + type: string + description: Values yaml + example: some values yaml + TemplateChartResponse: + type: object + properties: + manifest: + type: string + description: helm generated manifest + example: some manifest + ChartInfo: + type: object + required: + - installedAppId + - environmentId + - installedAppVersionId + - appStoreApplicationVersionId + - appStoreApplicationName + - status + - appName + - environmentName + - deployedAt + - deployedBy + - readme + - deprecated + properties: + installedAppId: + type: integer + description: installed chart id + environmentId: + type: integer + description: environment id + installedAppVersionId: + type: integer + description: installed chart version id + appStoreApplicationVersionId: + type: integer + description: team/project id + appStoreApplicationName: + type: string + description: chart name externally + chartName: + type: string + description: chart repo name + icon: + type: string + description: image + status: + type: string + description: status of deployed chart + appName: + type: string + description: chart name is app name for devtron + environmentName: + type: string + description: env name + deployedAt: + type: string + description: deployement time + deployedBy: + type: string + description: user + readme: + type: string + description: readme + deprecated: + type: boolean + description: is deprecated or not + Kubeconfig: + type: object + properties: + config: + type: string + ValidateClusterBean: + type: object + properties: + userInfos: + type: object + additionalProperties: + $ref: '#/components/schemas/UserInfos' + id: + type: integer + cluster_name: + type: string + server_url: + type: string + prometheus_url: + type: string + active: + type: boolean + config: + type: object + properties: + bearer_token: + type: string + description: it will be empty while fetching, and if no change while + updating + tls_key: + type: string + description: it will be empty while fetching, and if no change while + updating + cert_data: + type: string + description: it will be empty while fetching, and if no change while + updating + cert_auth_data: + type: string + description: it will be empty while fetching, and if no change while + updating + prometheusAuth: + $ref: '#/components/schemas/PrometheusAuth' + defaultClusterComponent: + type: array + items: + $ref: '#/components/schemas/DefaultClusterComponent' + agentInstallationStage: + type: integer + k8sVersion: + type: string + userName: + type: string + insecure-skip-tls-verify: + type: boolean + required: + - cluster_name + - server_url + UserInfos: + type: object + properties: + userName: + type: string + config: + type: object + additionalProperties: + type: string + errorInConnecting: + type: string + Configuration: + type: object + properties: + type: + type: string + enum: + - yaml + - json + Cluster: + type: object + required: + - key + - value + properties: + clusterId: + type: integer + description: cluster id + clusterName: + type: string + description: cluster name + errorInConnecting: + type: string + description: error message if cluster failed to connect + AppListDto: + type: object + properties: + clusterIds: + type: array + description: Cluster Id to which the result corresponds + example: + - 1 + items: + type: integer + fluxApplication: + type: array + description: List of Flux applications + items: + $ref: '#/components/schemas/FluxAppDto' + FluxAppDto: + type: object + properties: + appName: + type: string + description: Name of the application + example: flux-system + appStatus: + type: boolean + enum: + - true + - false + description: null + example: true + syncStatus: + type: string + description: Sync status of the application + example: 'Applied revision: main@sha1:a3c3de4083eca4ca01d63f9f1b07599b64f3f8ca' + clusterId: + type: integer + description: ID of the cluster + example: 2 + clusterName: + type: string + description: Name of the cluster + example: test-cluster-1 + namespace: + type: string + description: Namespace of the application + example: flux-system + fluxAppDeploymentType: + type: string + enum": + - Kustomization + - HelmRelease + description: Indicates if the application is a Kustomize type or standalone + flux made HelmRelease app + example: true + FluxAppStatusDetail: + type: object + properties: + status: + type: string + description: Tells about the status whether true or false of the last action + performed + message: + type: string + description: Brief message of the last encountered reason + reason: + type: string + description: Short key words like 'ReconciliationFailed', 'Reconciled', + and so on for the user to understand the reason of the given of the status + InfoItem: + type: object + properties: + name: + type: string + value: + type: string + HealthStatus: + type: object + properties: + status: + type: string + message: + type: string + ResourceNetworkingInfo: + type: object + properties: + labels: + type: object + additionalProperties: + type: string + ResourceRef: + type: object + properties: + group: + type: string + version: + type: string + kind: + type: string + namespace: + type: string + name: + type: string + uid: + type: string + PodMetadata: + type: object + properties: + name: + type: string + uid: + type: string + containers: + type: array + items: + type: string + initContainers: + type: array + items: + type: string + isNew: + type: boolean + ephemeralContainers: + type: array + items: + $ref: '#/components/schemas/EphemeralContainerData' + EphemeralContainerData: + type: object + properties: + name: + type: string + isExternal: + type: boolean + ResourceNode: + type: object + properties: + group: + type: string + version: + type: string + kind: + type: string + namespace: + type: string + name: + type: string + uid: + type: string + parentRefs: + type: array + items: + $ref: '#/components/schemas/ResourceRef' + networkingInfo: + $ref: '#/components/schemas/ResourceNetworkingInfo' + resourceVersion: + type: string + health: + $ref: '#/components/schemas/HealthStatus' + isHibernated: + type: boolean + canBeHibernated: + type: boolean + info: + type: array + items: + $ref: '#/components/schemas/InfoItem' + createdAt: + type: string + format: date-time + port: + type: array + items: + type: integer + isHook: + type: boolean + hookType: + type: string + ResourceTreeResponse: + type: object + properties: + nodes: + type: array + items: + $ref: '#/components/schemas/ResourceNode' + podMetadata: + type: array + items: + $ref: '#/components/schemas/PodMetadata' + FluxApplicationDetailDto: + type: object + properties: + FluxApplication: + $ref: '#/components/schemas/FluxAppDto' + FluxAppStatusDetail: + $ref: '#/components/schemas/FluxAppStatusDetail' + ResourceTreeResponse: + $ref: '#/components/schemas/ResourceTreeResponse' + GitOpsConfigDto: + type: object + properties: + id: + type: integer + provider: + type: string + username: + type: string + token: + type: string + gitLabGroupId: + type: string + gitHubOrgId: + type: string + host: + type: string + active: + type: boolean + azureProjectName: + type: string + userId: + type: integer + DetailedError: + type: object + properties: + successfulStages: + type: array + items: + type: string + description: All successful stages + validatedOn: + type: string + description: Timestamp of validation + stageErrorMap: + type: array + items: + type: object + properties: + stage: + type: string + error: + type: string + description: map of stage and their respective errors + FetchTemplateComparisonList: + type: object + properties: + chartId: + type: integer + description: The ID of the chart reference. + chartVersion: + type: string + description: The version of the chart. + chartType: + type: string + description: The type of the chart. + environmentId: + type: integer + description: The ID of the environment. + environmentName: + type: string + description: The name of the environment. + pipelineConfigOverrideId: + type: integer + description: The ID of the pipeline configuration override. + startedOn: + type: string + format: date-time + description: The timestamp when the deployment started. + finishedOn: + type: string + format: date-time + description: The timestamp when the deployment finished. + status: + type: string + description: The status of the deployment. + type: + type: integer + enum: + - 1 + - 2 + - 3 + - 4 + description: The type of deployment template. + DeploymentTemplateRequest: + type: object + properties: + appId: + type: integer + description: The ID of the application. + chartRefId: + type: integer + description: The ID of the chart reference. + getValues: + type: boolean + description: Whether to include values in the response. + type: + type: integer + enum: + - 1 + - 2 + - 3 + - 4 + description: The type of deployment template. + values: + type: boolean + description: Whether to include values in the response. + pipelineConfigOverrideId: + type: integer + description: The ID of the pipeline configuration override. + required: + - appId + - chartRefId + - getValues + - type + ValuesAndManifestResponse: + type: object + properties: + data: + type: string + description: The values or manifest data for the deployment template. + LinkedCIPipelinesFiltersResponse: + type: object + properties: + code: + type: number + description: status code + example: 200 + status: + type: string + description: API status + example: OK + result: + $ref: '#/components/schemas/LinkedCIPipelinesFilters' + LinkedCIPipelinesFilters: + type: object + properties: + envNames: + type: array + description: Down stream environment names + example: + - staging + - production + - qa + nullable: false + uniqueItems: true + items: + type: string + LinkedCIPipelinesViewResponse: + type: object + properties: + code: + type: number + description: status code + example: 200 + status: + type: string + description: API status + example: OK + result: + $ref: '#/components/schemas/LinkedCIPipelinesInfo' + LinkedCIPipelinesInfo: + type: object + properties: + totalCount: + type: number + description: Total results count + example: 1122 + offset: + type: number + description: Current page number + example: 2 + size: + type: number + description: Current page size + example: 20 + data: + type: array + nullable: false + description: Down stream deployments data + items: + $ref: '#/components/schemas/LinkedCIPipelineData' + LinkedCIPipelineData: + type: object + required: + - appName + - appId + properties: + appName: + type: string + description: application name + example: devtron-app + appId: + type: number + description: application id + example: 1 + environmentName: + type: string + description: deploys to environment name + example: staging + environmentId: + type: number + description: deploys to environment id + example: 1 + triggerMode: + type: string + description: pipeline trigger type + example: AUTOMATIC + deploymentStatus: + type: string + default: Not Deployed + description: last deployment status of the pipeline + example: Succeeded + ExternalLinkMonitoringTool: + type: object + properties: + id: + type: integer + description: Id of monitoring tool + example: 1 + name: + type: string + description: name of monitoring tool + example: grafana + icon: + type: string + description: url of monitoring tool icon + category: + type: integer + description: category of monitoring tool + example: 1 + ExternalLink: + type: object + properties: + id: + type: integer + description: Id of external link + example: 1 + monitoringToolId: + type: integer + description: Id of monitoring tool, to which this is mapped + example: 1 + name: + type: string + description: external link name + example: some name + url: + type: string + description: url given to this external link + example: some url + type: + type: string + description: type of link (appLevel/clusterLevel) + identifiers: + type: array + description: link identifiers to which this url is applied e.g {"type":"devtron-app","identifier":"1"} + items: + $ref: '#/components/schemas/LinkIdentifier' + updatedOn: + type: string + description: updated on + isEditable: + type: boolean + description: explains link is editable by app admin or not + description: + type: string + description: description about the external link + LinkIdentifier: + type: object + properties: + type: + type: string + description: type of link identifier[devtron-app,devtron-installed-app,external-helm-app,cluster] + example: cluster + identifier: + type: string + description: identifier for this type,(for cluster type this will be empty) + example: '' + clusterId: + type: integer + description: cluster-id for which you want to configure the app level external-link + ModuleInfo: + type: object + properties: + name: + type: string + description: module name + example: cicd + status: + type: string + description: status of the module + example: notInstalled|installed|installing|installFailed|timeout + moduleResourcesStatus: + type: array + items: + $ref: '#/components/schemas/ModuleResourceStatusDto' + ModuleActionRequest: + type: object + properties: + action: + type: string + description: action on the module + example: install + version: + type: string + description: version on which module is to be installed + example: v1.2.3 + ServerInfo: + type: object + properties: + currentVersion: + type: string + description: current version of the devtron server + example: v1.2.3 + status: + type: string + description: status of the server + example: healthy|upgrading|upgradeFailed|unknown|timeout + releaseName: + type: string + description: helm release name of the devtron server + example: devtron + installationType: + type: string + description: devtron installation type + example: oss_kubectl|oss_helm|enterprise + ServerActionRequest: + type: object + properties: + action: + type: string + description: action on the server + example: upgrade + version: + type: string + description: version to which server is to be upgradred + example: v1.2.3 + ModuleResourceStatusDto: + type: object + properties: + group: + type: string + description: group of the api-resource + example: apiextensions.k8s.io + version: + type: string + description: version of the api-resource + example: v1 + kind: + type: string + description: kind of the api-resource + example: pod + name: + type: string + description: name of the resource + example: devtron + healthStatus: + type: string + description: health status of the resource + example: healthy + healthMessage: + type: string + description: health message of the resource + example: some mssage + PluginMinDto: + type: object + properties: + pluginName: + type: string + description: name of plugin + pluginVersions: + type: array + description: min version detail with only version name and id + items: + $ref: '#/components/schemas/PluginVersionsMinDto' + PluginVersionsMinDto: + type: object + properties: + id: + type: integer + description: plugin version id + version: + type: string + description: version of that plugin + PluginsDto: + type: object + properties: + parentPlugins: + type: array + items: + $ref: '#/components/schemas/ParentPlugin' + totalCount: + type: integer + description: this will tell the overall count of all plugins available + ParentPlugin: + type: object + properties: + id: + type: integer + description: this is the id of the parent plugin under which multiple plugin + versions can exist, acts as a unique identifier of a plugin parent this + id comes from plugin_parent_metadata table + name: + type: string + description: name of the parent plugin under which multiple versions can + exist + identifier: + type: string + description: this is a special string identifier that uniquely identifies + a plugin, would help a user to create a version of a plugin using a plugin + identifier, instead of playing with plugin ids, for all the pre-existing + plugins, identifier is saved by converting all the characters to lowercase + and replacing all the spaces with underscore(-), if two plugin identifier + collides then a pluginParentId is append at the last (eg. k6-load-testing-1) + description: + type: string + description: this is the description of a plugin at parent level. + type: + type: string + description: this can have two values PRESET or SHARED, if a user is creating + a plugin for themselves, which is when plugin is created using the api + then type should be SHARED, and all the system provided plugins are type=PRESET + pluginVersions: + $ref: '#/components/schemas/PluginVersions' + icon: + type: string + description: this is the link to the plugin icon png to be displayed + PluginVersions: + type: object + properties: + detailedPluginVersionData: + type: array + description: contains detailed data with all input and output variables + items: + $ref: '#/components/schemas/PluginsVersionDetail' + minimalPluginVersionData: + type: array + description: contains only few metadata excluding input and output variables + items: + $ref: '#/components/schemas/PluginsVersionDetail' + PluginsVersionDetail: + type: object + properties: + id: + type: integer + description: this is the id that corresponds to a particular plugin version, + one can say that this is a plugin version's id, and one PluginParentMetadataDto.Id + can have multiple versions hence multiple ids this id comes from plugin_metadata + table + name: + type: string + description: name of the plugin + description: + type: string + description: this is the description of a plugin at version level. + tags: + type: array + description: tags corresponding to a plugin version + items: + type: string + action: + type: string + description: it defines what operation user wants to do for that plugin, + enum: + - Create + - Update + - Delete + pluginStage: + type: string + description: It tells at what stage of a workflow this plugin is being created, + CI, CD or CI_CD + enum: + - CI + - CD + - CI_CD + newTags: + type: array + description: tags contained in this array are newly created tags by user. + items: + type: string + pluginSteps: + $ref: '#/components/schemas/PluginStepsDto' + updatedBy: + type: string + description: plugin last updated by, this will store the email of the person + who has created the latest plugin + inputVariables: + type: array + items: + $ref: '#/components/schemas/PluginVariableDto' + outputVariables: + type: array + items: + $ref: '#/components/schemas/PluginVariableDto' + docLink: + type: string + description: this is the documentation link of a particular version of a + plugin + pluginVersion: + type: string + description: this is the version of a plugin. eg. 1.0.0, 1.1.0-betaV2 or + 1.2.0+alpha + isLatest: + type: boolean + description: this will tell if a plugin version is latest or not. isLatest + would be calculated on the basis of which version is newly created. + AppStore: + type: object + required: + - id + - name + properties: + id: + type: integer + description: app store id + name: + type: string + description: app store name + appStoreApplicationVersionId: + type: integer + description: app store version id + chart_git_location: + type: string + description: chart git repo location + chart_name: + type: string + description: chart name + chart_repo_id: + type: integer + description: app store and chart repo link id + deprecated: + type: boolean + description: deprecated app store flag + description: + type: string + description: app store description, short summary + icon: + type: string + description: app store icon link + created_on: + type: string + description: created on + updated_on: + type: string + description: modification date + version: + type: string + description: app store version + active: + type: boolean + description: active app store + CdPipelineBulkActionDto: + type: object + properties: + action: + type: integer + description: action id (iota constant). for now will only support delete + environment + envIds: + type: array + items: + type: integer + description: ids of all environments whose pipelines are to be included + in action + envNames: + type: array + items: + type: integer + description: names of all environments whose pipelines are to be included + in action + appIds: + type: array + items: + type: integer + description: ids of all apps for which the environment is to be included + appNames: + type: array + items: + type: integer + description: names of all apps for which the environment is to be included + projectIds: + type: array + items: + type: integer + description: ids of all projects for which the environment is to be included + projectNames: + type: array + items: + type: integer + description: names of all projects for which the environment is to be included + CdPipelineImpactedObjectDto: + type: object + properties: + pipelineName: + type: integer + environmentName: + type: string + appName: + type: string + projectName: + type: string + ConfigDataResponse: + type: object + properties: + resourceConfig: + type: array + items: + $ref: '#/components/schemas/ConfigProperty' + ConfigProperty: + type: object + properties: + name: + type: string + description: Name of the config + example: cm-1 + nullable: true + configState: + $ref: '#/components/schemas/ConfigStateEnum' + type: + $ref: '#/components/schemas/ResourceTypeEnum' + ConfigStateEnum: + type: integer + enum: + - 1 + - 2 + - 3 + description: State of config (1 represents draft state , 2 represents approval + pending state,3 represents published state) + ResourceTypeEnum: + type: string + enum: + - ConfigMap + - Secret + - Deployment Template + description: Describe the config type (possible values are ConfigMap, Secret, + Deployment Template) + DefaultTemplateResponse: + properties: + appOverride: + type: array + items: + type: object + properties: + Key: + type: string + Value: + type: string + description: template json in form of map + DeploymentAppTypeChangeRequest: + type: object + properties: + envId: + type: integer + description: Environment id + desiredDeploymentType: + type: string + description: Desired deployment type. For eg argo_cd / helm + excludeApps: + type: array + description: List of app ids to be excluded + includeApps: + type: array + description: List of app ids to be included (deployment will be changed + only for these apps) + DeploymentChangeStatus: + type: object + properties: + id: + type: integer + description: cd pipeline id + appName: + type: string + description: app name + envName: + type: string + description: environment name + error: + type: string + description: Error message if failed to change deployment app type + status: + type: string + description: If deployment change was successful or failed for this pipeline + DeploymentAppTypeChangeResponse: + type: object + properties: + envId: + type: integer + description: environment id + desiredDeploymentType: + type: string + description: Desired deployment type. For eg argo_cd / helm + successfulPipelines: + type: array + description: Pipelines which were successfully deleted from current deployment + items: + $ref: '#components/schemas/DeploymentChangeStatus' + failedPipelines: + type: array + description: Pipelines which failed to get deleted from current deployment + items: + $ref: '#components/schemas/DeploymentChangeStatus' + TriggeredPipelineDetails: + type: object + properties: + ciArtifactId: + type: integer + description: Artifact id deployed + pipelineId: + type: integer + description: Pipeline id for which deployment was triggered + OkResponse: + required: + - code + - status + - result + properties: + code: + type: integer + format: int32 + description: Error code + status: + type: string + description: Error message + result: + type: object + description: DeploymentAppTypeChangeResponse object + ChartRefResponse: + type: object + properties: + chartRefs: + type: array + items: + $ref: '#/components/schemas/ChartRef' + latestChartRef: + type: integer + latestAppChartRef: + type: integer + latestEnvChartRef: + type: integer + chartMetadata: + type: array + items: + type: string + ChartRef: + type: object + properties: + id: + type: integer + version: + type: string + name: + type: string + description: + type: string + userUploaded: + type: boolean + isAppMetricsSupported: + type: boolean + Environment: + type: object + properties: + environmentId: + type: integer + description: cluster id + environmentName: + type: string + description: cluster name + environmentIdentifier: + type: string + description: environment identifier + namespace: + type: string + description: namespace + EphemeralContainerRequest: + type: object + properties: + basicData: + $ref: '#/components/schemas/EphemeralContainerBasicData' + advancedData: + $ref: '#/components/schemas/EphemeralContainerAdvancedData' + namespace: + type: string + clusterId: + type: integer + podName: + type: string + userId: + type: integer + required: + - namespace + - clusterId + - podName + EphemeralContainerBasicData: + type: object + properties: + containerName: + type: string + targetContainerName: + type: string + image: + type: string + required: + - containerName + - targetContainerName + - image + EphemeralContainerAdvancedData: + type: object + properties: + manifest: + type: string + PodContainerList: + type: object + properties: + containers: + type: array + items: + type: string + initContainers: + type: array + items: + type: string + ephemeralContainers: + type: array + items: + type: string + GlobalCMCSDto: + type: object + properties: + id: + type: integer + description: not needed in payload + name: + type: string + mountPath: + type: string + configType: + type: string + example: + - CONFIGMAP + - SECRET + type: + type: string + example: + - environment + - volume + data: + type: object + additionalProperties: + type: string + secretIngestionFor: + type: string + description: field for defining at where this config is to be ingested. + If not set, "CI/CD" will be used as default. + enum: + - CI + - CD + - CI/CD + ImageTaggingResponseDTO: + type: object + properties: + prodEnvExists: + type: boolean + description: true/false + imageReleaseTags: + type: array + items: + $ref: '#/components/schemas/ReleaseTag' + imageComments: + type: array + items: + $ref: '#/components/schemas/ImageComment' + appReleaseTags: + type: array + items: + $ref: '#/components/schemas/ReleaseTag' + ImageComment: + type: object + properties: + id: + type: integer + description: id of the image comment + comment: + type: string + description: image comments + example: this image is build for arm64 platform only + artifactId: + type: integer + description: id of the artifact to which this comment is added + ReleaseTag: + type: object + properties: + id: + type: integer + description: id of the tag + tagName: + type: string + description: tag name + example: v1.1 + appId: + type: integer + description: id of the app in which this tag is created + artifactId: + type: integer + description: id of the artifact to which this tag is tagged + softDeleted: + type: boolean + description: tag is deleted or not + ImageTaggingRequestDTO: + type: object + properties: + createTags: + type: array + items: + $ref: '#/components/schemas/ReleaseTag' + description: tag objects requested for creation + updateTags: + type: array + items: + $ref: '#/components/schemas/ReleaseTag' + description: tag objects requested for deletion + imageComment: + type: object + items: + $ref: '#/components/schemas/ImageComment' + description: image comment data + ResourceInfo: + type: object + required: + - podName + properties: + podName: + type: string + description: pod name + PipelineStatusTimelineDto: + type: object + properties: + id: + type: integer + status: + type: string + status_detail: + type: integer + status_time: + type: timestampz + Unit: + type: object + properties: + name: + type: string + description: Unit Name + example: mi + conversionFactor: + type: number + description: Conversion Factor to convert to base unit + example: 1 + ConfigurationUnits: + type: object + properties: + name: + type: string + description: Configuration Units + units: + type: array + description: Configuration Units + items: + $ref: '#/components/schemas/Unit' + ProfileResponse: + type: object + properties: + configurationUnits: + type: array + description: Configuration Units + items: + $ref: '#/components/schemas/ConfigurationUnits' + defaultConfigurations: + type: array + description: Default Configurations + items: + $ref: '#/components/schemas/Configuration' + profile: + $ref: '#/components/schemas/Profile' + Profile: + type: object + properties: + id: + type: integer + description: Profile Id + example: 1 + name: + type: string + description: Profile Name + example: java + description: + type: string + description: Profile Description + example: all java apps should have this infra profile + type: + type: string + description: type of profile "eg:0,1,2" + example: DEFAULT,NORMAL,CUSTOM + configurations: + type: array + description: Profile Configurations + items: + $ref: '#/components/schemas/Configuration' + appCount: + readOnly: true + type: integer + description: Number of apps using this profile + example: 1 + createdAt: + required: false + type: string + description: Profile Created At + example: '2021-06-01T06:30:00.000Z' + updatedAt: + type: string + description: Profile Updated At + example: '2021-06-01T06:30:00.000Z' + createdBy: + type: integer + description: Profile Created By + example: 1 + updatedBy: + type: integer + description: Profile Updated By + example: 1 + CommitInfo: + type: object + properties: + Commit: + type: string + description: Commit hash + example: somehash + Author: + type: string + description: Author of that commit + example: manish + Date: + type: string + description: Date that commit + example: '2021-08-10T16:28:26+05:30' + Message: + type: string + description: Commit message + example: some message + Changes: + type: array + description: file names which were changed in this commit + items: + type: string + RequestBody: + type: object + properties: + appId: + type: integer + environmentId: + type: integer + source: + type: object + properties: + type: + type: string + description: SOURCE_TYPE_BRANCH_FIXED / SOURCE_TYPE_BRANCH_REGEX + value: + type: string + description: name of the branch + regex: + type: string + description: regular expression when type is SOURCE_TYPE_BRANCH_REGEX + ImageScanRequest: + description: Resource Level can be one of global, cluster, environment, application + type: string + enum: + - global + - cluster + - environment + - application + ImageScanResponse: + description: Whether CVE is allowed or not + type: string + enum: + - BLOCK + - ALLOW + PolicyLevel: + description: Policy Level can be one of global, cluster, environment, application + type: string + enum: + - Global + - Gluster + - Environment + - Application + VulnerabilityAction: + description: actions which can be taken on vulnerabilities + type: string + enum: + - block + - allow + VulnerabilityPermission: + description: Whether vulnerability is allowed or blocked and is it inherited + or is it overridden + type: object + required: + - action + properties: + action: + $ref: '#/components/schemas/VulnerabilityAction' + inherited: + type: boolean + isOverriden: + type: boolean + SeverityPolicy: + description: Severity related information + type: object + required: + - severity + - policyOrigin + - policy + - id + properties: + id: + type: integer + severity: + type: string + enum: + - high + - medium + - low + policyOrigin: + type: string + policy: + $ref: '#/components/schemas/VulnerabilityPermission' + CvePolicy: + description: CVE related information + allOf: + - $ref: '#/components/schemas/SeverityPolicy' + - type: object + properties: + name: + description: In case of CVE policy this is same as cve name else it is + blank + type: string + VulnerabilityPolicy: + type: object + required: + - severities + - cves + properties: + name: + type: string + description: Is name of cluster or environment or application/environment + envId: + type: integer + description: environment id in case of application + severities: + type: array + items: + $ref: '#/components/schemas/SeverityPolicy' + cves: + type: array + items: + $ref: '#/components/schemas/CvePolicy' + GetVulnerabilityPolicyResult: + type: object + required: + - level + - policies + properties: + level: + $ref: '#/components/schemas/ResourceLevel' + policies: + type: array + items: + $ref: '#/components/schemas/VulnerabilityPolicy' + GetVulnerabilityPolicyResponse: + description: Only one of result or error will be present + type: object + properties: + result: + $ref: '#/components/schemas/GetVulnerabilityPolicyResult' + error: + $ref: '#/components/schemas/Error' + IdVulnerabilityPolicyResult: + type: object + required: + - id + properties: + id: + type: integer + DeleteVulnerabilityPolicyResponse: + description: Only one of result or error will be present + type: object + properties: + result: + $ref: '#/components/schemas/IdVulnerabilityPolicyResult' + error: + $ref: '#/components/schemas/Error' + UpdateVulnerabilityPolicyResponse: + description: Only one of result or error will be present + type: object + properties: + result: + $ref: '#/components/schemas/IdVulnerabilityPolicyResult' + error: + $ref: '#/components/schemas/Error' + CreateVulnerabilityPolicyResponse: + description: Only one of result or error will be present + type: object + properties: + result: + $ref: '#/components/schemas/IdVulnerabilityPolicyResult' + error: + $ref: '#/components/schemas/Error' + CreateVulnerabilityPolicyRequest: + description: Request object for vulnerability policy. For global policy dont + set clusterId, envId and appId. For cluster set clusterId, for environment + set envId, for app set appId and envId. Only one of severity or cve should + be set. + type: object + properties: + clusterId: + type: integer + envId: + type: integer + appId: + type: integer + severity: + type: string + cveId: + type: string + action: + $ref: '#/components/schemas/VulnerabilityAction' + ResourceOptions: + required: + - data + properties: + data: + type: object + description: generic data field which will contain relevant data + HelmAppCreateUpdateRequest: + type: object + properties: + clusterName: + type: string + description: Name of the cluster configured on devtron UI + example: default_cluster + nullable: false + namespace: + type: string + description: namespace in that cluster, if it is not provided - will be + assumed as default + example: ns + nullable: true + releaseName: + type: string + description: Helm Release name + example: mySampleApp + nullable: false + valuesOverrideYaml: + type: string + description: Values override yaml for this helm release create/update request + nullable: true + chart: + $ref: '#/components/schemas/ChartSpec' + nullable: false + ChartSpec: + type: object + properties: + chartName: + type: string + description: chart name + example: minio + nullable: false + chartVersion: + type: string + description: chart version, if it is not supplied, will be assumed as latest + example: 1.2.3 + nullable: true + repo: + $ref: '#/components/schemas/ChartRepoSpec' + nullable: false + ChartRepoSpec: + type: object + properties: + name: + type: string + description: chart repo name + example: bitnami + nullable: false + identifier: + $ref: '#/components/schemas/ChartRepoIdentifierSpec' + nullable: true + ChartRepoIdentifierSpec: + type: object + properties: + url: + type: string + description: chart repo url + example: https://charts.bitnami.com/bitnami + nullable: false + username: + type: string + description: username of chart repo for authenticaion + example: some username + nullable: true + password: + type: string + description: password of chart repo for authenticaion + example: some password + nullable: true + HelmAppCreateUpdateResponse: + type: object + properties: + success: + type: boolean + description: if the operation is sucessfull + example: true/false + nullable: false + error: + $ref: '#/components/schemas/ErrorResponse' + nullable: true + result: + type: string + description: Url of app detail of this particular application, if this operation + is successful + example: app detail url + nullable: true + GetWorkflowStatusResponse: + type: object + properties: + status: + type: string + description: Workflow current status - for backward compatibility + startTime: + type: string + format: date-time + description: Workflow start time + endTime: + type: string + format: date-time + description: Workflow end time + message: + type: string + description: Workflow message + podStatus: + type: string + description: Pod status + podName: + type: string + description: Pod name + workflowExecutionStages: + $ref: '#/components/schemas/WorkflowStages' + WorkflowStages: + type: object + properties: + workflow: + type: array + items: + type: object + properties: + stageName: + type: string + description: Preparation/Execution + status: + type: string + enum: + - NOT_STARTED + - RUNNING + - SUCCEEDED + - FAILED + - ABORTED + - TIMEOUT + - UNKNOWN + startTime: + type: string + format: date-time + endTime: + type: string + format: date-time + message: + type: string + metadata: + type: object + pod: + type: array + items: + type: object + properties: + stageName: + type: string + description: Execution + status: + type: string + enum: + - NOT_STARTED + - RUNNING + - SUCCEEDED + - FAILED + - ABORTED + - TIMEOUT + - UNKNOWN + startTime: + type: string + format: date-time + endTime: + type: string + format: date-time + message: + type: string + metadata: + type: object + properties: + ClusterID: + type: string + description: Cluster ID + podName: + type: string + description: Pod name