{ "openapi": "3.0.0", "info": { "title": "public/portworx/platform/targetcluster/application/apiv1/application.proto", "version": "version not set" }, "tags": [ { "name": "ApplicationService" } ], "paths": { "/core/v1/applications/{application.meta.uid}": { "put": { "summary": "UpdateApplication API updates specified application on the target cluster.", "operationId": "ApplicationService_UpdateApplication", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/v1Application" } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/googlerpcStatus" } } } } }, "parameters": [ { "name": "application.meta.uid", "description": "UID of the resource of the format -.", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "meta": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the resource." }, "description": { "type": "string", "description": "Description of the resource." }, "resourceVersion": { "type": "string", "description": "A string that identifies the version of this object that can be used by clients to determine when objects have changed.\nThis value must be passed unmodified back to the server by the client." }, "createTime": { "type": "string", "format": "date-time", "description": "Creation time of the object.", "readOnly": true }, "updateTime": { "type": "string", "format": "date-time", "description": "Update time of the object.", "readOnly": true }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Labels to apply to the object." }, "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Annotations for the object." }, "parentReference": { "$ref": "#/components/schemas/v1Reference" }, "resourceNames": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Resource names holds the mapping between the resource IDs and its display name which will be consumed by the frontend.", "readOnly": true } }, "description": "Metadata of the application(Resource Meta).", "title": "Metadata of the application(Resource Meta)." }, "config": { "$ref": "#/components/schemas/v1Config" }, "status": { "$ref": "#/components/schemas/applicationv1Status" } }, "title": "application to be updated." } } }, "description": "application to be updated.", "required": true }, "tags": [ "ApplicationService" ] } }, "/core/v1/applications/{id}": { "get": { "summary": "GetApplication API returns the info about application with given id.", "operationId": "ApplicationService_GetApplication", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/v1Application" } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/googlerpcStatus" } } } } }, "parameters": [ { "name": "id", "description": "Unique identifier of the application whose details needs to be fetched.", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "clusterId", "description": "Unique identifier of the cluster whose details needs to be fetched.", "in": "query", "required": false, "schema": { "type": "string" } } ], "tags": [ "ApplicationService" ] }, "delete": { "summary": "UninstallApplication API uninstalls the specified application on the target cluster.", "operationId": "ApplicationService_UninstallApplication", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/googlerpcStatus" } } } } }, "parameters": [ { "name": "id", "description": "unique identifier of the application.", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "clusterId", "description": "Unique identifier of the cluster whose details needs to be fetched.", "in": "query", "required": false, "schema": { "type": "string" } } ], "tags": [ "ApplicationService" ] } }, "/core/v1/clusters/{clusterId}/applications": { "get": { "summary": "ListApplications API lists the applications installed on the target cluster.", "operationId": "ApplicationService_ListApplications", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/v1ListApplicationsResponse" } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/googlerpcStatus" } } } } }, "parameters": [ { "name": "clusterId", "description": "Unique identifier of the cluster whose details needs to be fetched.", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "pagination.pageNumber", "description": "Page number is the page number to return based on the size.", "in": "query", "required": false, "schema": { "type": "string", "format": "int64" } }, { "name": "pagination.pageSize", "description": "Page size is the maximum number of records to include per page.", "in": "query", "required": false, "schema": { "type": "string", "format": "int64" } } ], "tags": [ "ApplicationService" ] }, "post": { "summary": "InstallApplication API installs specified application on the target cluster.", "operationId": "ApplicationService_InstallApplication", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/v1Application" } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/googlerpcStatus" } } } } }, "parameters": [ { "name": "clusterId", "description": "unique identifier of the cluster where application needs to be installed", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/v1Application" } } }, "description": "application to be installed.", "required": true }, "tags": [ "ApplicationService" ] } }, "/core/v1/clusters/{clusterId}/applications/{id}": { "get": { "summary": "GetApplication API returns the info about application with given id.", "operationId": "ApplicationService_GetApplication2", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/v1Application" } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/googlerpcStatus" } } } } }, "parameters": [ { "name": "clusterId", "description": "Unique identifier of the cluster whose details needs to be fetched.", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "id", "description": "Unique identifier of the application whose details needs to be fetched.", "in": "path", "required": true, "schema": { "type": "string" } } ], "tags": [ "ApplicationService" ] }, "delete": { "summary": "UninstallApplication API uninstalls the specified application on the target cluster.", "operationId": "ApplicationService_UninstallApplication2", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/googlerpcStatus" } } } } }, "parameters": [ { "name": "clusterId", "description": "Unique identifier of the cluster whose details needs to be fetched.", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "id", "description": "unique identifier of the application.", "in": "path", "required": true, "schema": { "type": "string" } } ], "tags": [ "ApplicationService" ] } } }, "components": { "schemas": { "ApplicationHealthHealth": { "type": "string", "enum": [ "HEALTH_UNSPECIFIED", "UNKNOWN", "HEALTHY", "UNHEALTHY" ], "default": "HEALTH_UNSPECIFIED", "description": "Health determines health of an application.\n\n - HEALTH_UNSPECIFIED: Must be set in the proto file; ignore.\n - UNKNOWN: Application health is unknown.\n - HEALTHY: Application is healthy.\n - UNHEALTHY: Application is unhealthy." }, "ApplicationPhasePhase": { "type": "string", "enum": [ "PHASE_UNSPECIFIED", "PENDING", "DEPLOYING", "SUCCEEDED", "FAILED", "DELETING" ], "default": "PHASE_UNSPECIFIED", "description": "AppStatus determines status of an application.\n\n - PHASE_UNSPECIFIED: Must be set in the proto file; ignore.\n - PENDING: Application yet to be installed.\n - DEPLOYING: Application deployment on the target cluster in progress.\n - SUCCEEDED: Installed successfully.\n - FAILED: Application failed to install.\n - DELETING: Application is being deleted." }, "PDSPropertiesGlobal": { "type": "object", "properties": { "dataServiceTlsEnabled": { "type": "boolean", "description": "data_service_tls_enabled enables TLS for dataservices.\nThis requires cert-manager to be pre-installed." } }, "description": "Global is the global property block for PDS." }, "SelectorFilter": { "type": "object", "properties": { "key": { "type": "string", "description": "Key of key,value pair against which filtering needs to be performs." }, "op": { "$ref": "#/components/schemas/SelectorOperator" }, "values": { "type": "array", "items": { "type": "string" }, "description": "Value of key,value pair against which filtering needs to be performs if operator is EXIST, value should be an empty array." } }, "description": "Filter for a given key." }, "SelectorOperator": { "type": "string", "enum": [ "OPERATOR_UNSPECIFIED", "IN", "NOT_IN", "LIKE" ], "default": "OPERATOR_UNSPECIFIED", "description": "Operator specifies the relationship between the provided (key,value) pairs in the response.\n\n - OPERATOR_UNSPECIFIED: Unspecified, do not use.\n - IN: IN specifies that the key should be associated with atleast 1 of the element in value list.\n - NOT_IN: NOT_IN specifies that the key should not be associated with any of the element in value list.\n - LIKE: LIKE specified that the key should be of a specified pattern" }, "applicationv1Status": { "type": "object", "properties": { "version": { "type": "string", "description": "current application chart version." }, "phase": { "$ref": "#/components/schemas/ApplicationPhasePhase" }, "health": { "$ref": "#/components/schemas/ApplicationHealthHealth" }, "conditions": { "type": "object", "additionalProperties": { "type": "string" }, "description": "conditions of the application." } }, "description": "Status of the Application." }, "googlerpcStatus": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/protobufAny" } } } }, "protobufAny": { "type": "object", "properties": { "@type": { "type": "string" } }, "additionalProperties": {} }, "v1Application": { "type": "object", "properties": { "meta": { "$ref": "#/components/schemas/v1Meta" }, "config": { "$ref": "#/components/schemas/v1Config" }, "status": { "$ref": "#/components/schemas/applicationv1Status" } }, "description": "Application is a high level entity for the application resource.\nfor e.g. PXE, BaaS, etc." }, "v1Config": { "type": "object", "properties": { "namespace": { "type": "string", "description": "namespace in target cluster where application will be installed.", "readOnly": true }, "version": { "type": "string", "description": "desired application chart version.", "readOnly": true }, "pds": { "$ref": "#/components/schemas/v1PDSProperties" } }, "description": "Desired configuration of the Application." }, "v1ListApplicationsResponse": { "type": "object", "properties": { "applications": { "type": "array", "items": { "$ref": "#/components/schemas/v1Application" }, "description": "list of applications visible to the caller." }, "pagination": { "$ref": "#/components/schemas/v1PageBasedPaginationResponse" } }, "description": "ListApplicationsResponse is the response to the ListApplications API." }, "v1Meta": { "type": "object", "properties": { "uid": { "type": "string", "description": "UID of the resource of the format -." }, "name": { "type": "string", "description": "Name of the resource." }, "description": { "type": "string", "description": "Description of the resource." }, "resourceVersion": { "type": "string", "description": "A string that identifies the version of this object that can be used by clients to determine when objects have changed.\nThis value must be passed unmodified back to the server by the client." }, "createTime": { "type": "string", "format": "date-time", "description": "Creation time of the object.", "readOnly": true }, "updateTime": { "type": "string", "format": "date-time", "description": "Update time of the object.", "readOnly": true }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Labels to apply to the object." }, "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Annotations for the object." }, "parentReference": { "$ref": "#/components/schemas/v1Reference" }, "resourceNames": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Resource names holds the mapping between the resource IDs and its display name which will be consumed by the frontend.", "readOnly": true } }, "description": "Meta holds general resource metadata." }, "v1PDSProperties": { "type": "object", "properties": { "global": { "$ref": "#/components/schemas/PDSPropertiesGlobal" } }, "description": "PDSProperties are the properties available for PDS." }, "v1PageBasedPaginationRequest": { "type": "object", "properties": { "pageNumber": { "type": "string", "format": "int64", "description": "Page number is the page number to return based on the size." }, "pageSize": { "type": "string", "format": "int64", "description": "Page size is the maximum number of records to include per page." } }, "description": "Request parameters for page-based pagination." }, "v1PageBasedPaginationResponse": { "type": "object", "properties": { "totalRecords": { "type": "string", "format": "int64", "description": "Total records without pagination available in the dataset." }, "currentPage": { "type": "string", "format": "int64", "description": "Current page number for this paginated response." }, "pageSize": { "type": "string", "format": "int64", "description": "Page size used for pagination." }, "totalPages": { "type": "string", "format": "int64", "description": "Total pages based on the page_size provided in the request." }, "nextPage": { "type": "string", "format": "int64", "description": "Next page if available in the dataset, -1 if unavailable." }, "prevPage": { "type": "string", "format": "int64", "description": "Previous page if available in the dataset, -1 if unavailable." } }, "description": "Metadata related to page based pagination for paginated API responses." }, "v1Reference": { "type": "object", "properties": { "type": { "type": "string", "description": "API group of the resource." }, "version": { "type": "string", "description": "Version of the API." }, "uid": { "type": "string", "description": "UID of the resource." } }, "description": "Reference identifies the resource type, version of the uid and the resource." }, "v1Selector": { "type": "object", "properties": { "filters": { "type": "array", "items": { "$ref": "#/components/schemas/SelectorFilter" }, "description": "FilterList is the list of all filters that should be applied." } }, "description": "Selector is used to query resources using the associated labels or field names." } } } }