{ "swagger": "2.0", "info": { "title": "Project Service", "version": "3.0", "contact": { "name": "Paralus Dev" } }, "tags": [ { "name": "ProjectService" } ], "schemes": [ "https" ], "consumes": [ "application/json", "application/yaml" ], "produces": [ "application/json", "application/yaml" ], "paths": { "/auth/v3/partner/{metadata.partner}/organization/{metadata.organization}/project": { "post": { "operationId": "ProjectService_CreateProject", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v3Project" } }, "201": { "description": "Returned when project is created successfully.", "schema": {} }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/googlerpcStatus" } } }, "parameters": [ { "name": "metadata.partner", "description": "Partner to which the resource belongs", "in": "path", "required": true, "type": "string" }, { "name": "metadata.organization", "description": "Organization to which the resource belongs", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ProjectServiceCreateProjectBody" } } ], "tags": [ "ProjectService" ] } }, "/auth/v3/partner/{metadata.partner}/organization/{metadata.organization}/project/{metadata.name}": { "get": { "operationId": "ProjectService_GetProject", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v3Project" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/googlerpcStatus" } } }, "parameters": [ { "name": "metadata.partner", "description": "Partner to which the resource belongs", "in": "path", "required": true, "type": "string" }, { "name": "metadata.organization", "description": "Organization to which the resource belongs", "in": "path", "required": true, "type": "string" }, { "name": "metadata.name", "description": "name of the resource", "in": "path", "required": true, "type": "string" }, { "name": "apiVersion", "description": "API Version\n\nAPI Version of the resource", "in": "query", "required": true, "type": "string", "default": "system.k8smgmt.io/v3" }, { "name": "kind", "description": "Kind\n\nKind of the resource", "in": "query", "required": true, "type": "string", "default": "Project" }, { "name": "metadata.displayName", "description": "Display Name\n\ndisplay name of the resource", "in": "query", "required": false, "type": "string" }, { "name": "metadata.description", "description": "Description\n\ndescription of the resource", "in": "query", "required": false, "type": "string" }, { "name": "metadata.labels", "description": "Labels\n\nThis is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", "in": "query", "required": false, "type": "string" }, { "name": "metadata.annotations", "description": "Annotations\n\nThis is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", "in": "query", "required": false, "type": "string" }, { "name": "metadata.project", "description": "Project\n\nProject of the resource", "in": "query", "required": true, "type": "string" }, { "name": "metadata.id", "in": "query", "required": false, "type": "string" }, { "name": "metadata.urlScope", "in": "query", "required": false, "type": "string" }, { "name": "metadata.createdAt", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "metadata.modifiedAt", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "spec.default", "description": "Default\n\nflag to indicate if this is the default project in the organization", "in": "query", "required": false, "type": "boolean" }, { "name": "status.conditionType", "description": "Condition Type\n\ntype of the status condition", "in": "query", "required": false, "type": "string" }, { "name": "status.conditionStatus", "description": "Condition Status\n\nstatus of the condition", "in": "query", "required": false, "type": "string", "enum": [ "StatusNotSet", "StatusSubmitted", "StatusOK", "StatusFailed" ], "default": "StatusNotSet" }, { "name": "status.lastUpdated", "description": "Last Updated\n\nwhen the condition status is last updated", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "status.reason", "description": "Reason\n\nreason of the last condition status", "in": "query", "required": false, "type": "string" } ], "tags": [ "ProjectService" ] }, "delete": { "operationId": "ProjectService_DeleteProject", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v3Project" } }, "204": { "description": "Returned when project is deleted successfully.", "schema": {} }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/googlerpcStatus" } } }, "parameters": [ { "name": "metadata.partner", "description": "Partner to which the resource belongs", "in": "path", "required": true, "type": "string" }, { "name": "metadata.organization", "description": "Organization to which the resource belongs", "in": "path", "required": true, "type": "string" }, { "name": "metadata.name", "description": "name of the resource", "in": "path", "required": true, "type": "string" }, { "name": "apiVersion", "description": "API Version\n\nAPI Version of the resource", "in": "query", "required": true, "type": "string", "default": "system.k8smgmt.io/v3" }, { "name": "kind", "description": "Kind\n\nKind of the resource", "in": "query", "required": true, "type": "string", "default": "Project" }, { "name": "metadata.displayName", "description": "Display Name\n\ndisplay name of the resource", "in": "query", "required": false, "type": "string" }, { "name": "metadata.description", "description": "Description\n\ndescription of the resource", "in": "query", "required": false, "type": "string" }, { "name": "metadata.labels", "description": "Labels\n\nThis is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", "in": "query", "required": false, "type": "string" }, { "name": "metadata.annotations", "description": "Annotations\n\nThis is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", "in": "query", "required": false, "type": "string" }, { "name": "metadata.project", "description": "Project\n\nProject of the resource", "in": "query", "required": true, "type": "string" }, { "name": "metadata.id", "in": "query", "required": false, "type": "string" }, { "name": "metadata.urlScope", "in": "query", "required": false, "type": "string" }, { "name": "metadata.createdAt", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "metadata.modifiedAt", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "spec.default", "description": "Default\n\nflag to indicate if this is the default project in the organization", "in": "query", "required": false, "type": "boolean" }, { "name": "status.conditionType", "description": "Condition Type\n\ntype of the status condition", "in": "query", "required": false, "type": "string" }, { "name": "status.conditionStatus", "description": "Condition Status\n\nstatus of the condition", "in": "query", "required": false, "type": "string", "enum": [ "StatusNotSet", "StatusSubmitted", "StatusOK", "StatusFailed" ], "default": "StatusNotSet" }, { "name": "status.lastUpdated", "description": "Last Updated\n\nwhen the condition status is last updated", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "status.reason", "description": "Reason\n\nreason of the last condition status", "in": "query", "required": false, "type": "string" } ], "tags": [ "ProjectService" ] }, "put": { "operationId": "ProjectService_UpdateProject", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v3Project" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/googlerpcStatus" } } }, "parameters": [ { "name": "metadata.partner", "description": "Partner to which the resource belongs", "in": "path", "required": true, "type": "string" }, { "name": "metadata.organization", "description": "Organization to which the resource belongs", "in": "path", "required": true, "type": "string" }, { "name": "metadata.name", "description": "name of the resource", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ProjectServiceUpdateProjectBody" } } ], "tags": [ "ProjectService" ] } }, "/auth/v3/partner/{metadata.partner}/organization/{metadata.organization}/projects": { "get": { "operationId": "ProjectService_GetProjects", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v3ProjectList" } }, "403": { "description": "Returned when the user does not have permission to access the resource.", "schema": {} }, "404": { "description": "Returned when the resource does not exist.", "schema": { "type": "string", "format": "string" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/googlerpcStatus" } } }, "parameters": [ { "name": "metadata.partner", "description": "Partner to which the resource belongs", "in": "path", "required": true, "type": "string" }, { "name": "metadata.organization", "description": "Organization to which the resource belongs", "in": "path", "required": true, "type": "string" }, { "name": "apiVersion", "description": "API Version\n\nAPI Version of the resource", "in": "query", "required": true, "type": "string", "default": "system.k8smgmt.io/v3" }, { "name": "kind", "description": "Kind\n\nKind of the resource", "in": "query", "required": true, "type": "string", "default": "Project" }, { "name": "metadata.name", "description": "Name\n\nname of the resource", "in": "query", "required": true, "type": "string" }, { "name": "metadata.displayName", "description": "Display Name\n\ndisplay name of the resource", "in": "query", "required": false, "type": "string" }, { "name": "metadata.description", "description": "Description\n\ndescription of the resource", "in": "query", "required": false, "type": "string" }, { "name": "metadata.labels", "description": "Labels\n\nThis is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", "in": "query", "required": false, "type": "string" }, { "name": "metadata.annotations", "description": "Annotations\n\nThis is a request variable of the map type. The query format is \"map_name[key]=value\", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age[\"bob\"]=18", "in": "query", "required": false, "type": "string" }, { "name": "metadata.project", "description": "Project\n\nProject of the resource", "in": "query", "required": true, "type": "string" }, { "name": "metadata.id", "in": "query", "required": false, "type": "string" }, { "name": "metadata.urlScope", "in": "query", "required": false, "type": "string" }, { "name": "metadata.createdAt", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "metadata.modifiedAt", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "spec.default", "description": "Default\n\nflag to indicate if this is the default project in the organization", "in": "query", "required": false, "type": "boolean" }, { "name": "status.conditionType", "description": "Condition Type\n\ntype of the status condition", "in": "query", "required": false, "type": "string" }, { "name": "status.conditionStatus", "description": "Condition Status\n\nstatus of the condition", "in": "query", "required": false, "type": "string", "enum": [ "StatusNotSet", "StatusSubmitted", "StatusOK", "StatusFailed" ], "default": "StatusNotSet" }, { "name": "status.lastUpdated", "description": "Last Updated\n\nwhen the condition status is last updated", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "status.reason", "description": "Reason\n\nreason of the last condition status", "in": "query", "required": false, "type": "string" } ], "tags": [ "ProjectService" ] } } }, "definitions": { "ProjectServiceCreateProjectBody": { "type": "object", "properties": { "apiVersion": { "type": "string", "default": "system.k8smgmt.io/v3", "description": "API Version of the resource", "title": "API Version", "readOnly": true }, "kind": { "type": "string", "default": "Project", "description": "Kind of the resource", "title": "Kind", "readOnly": true }, "metadata": { "type": "object", "example": { "name": "some-name", "project": "defaultproject" }, "properties": { "name": { "type": "string", "description": "name of the resource", "title": "Name" }, "displayName": { "type": "string", "description": "display name of the resource", "title": "Display Name" }, "description": { "type": "string", "description": "description of the resource", "title": "Description" }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "description": "labels of the resource", "title": "Labels" }, "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "annotations of the resource", "title": "Annotations" }, "project": { "type": "string", "description": "Project of the resource", "title": "Project" }, "id": { "type": "string", "readOnly": true }, "urlScope": { "type": "string", "readOnly": true }, "createdAt": { "type": "string", "format": "date-time", "readOnly": true }, "modifiedAt": { "type": "string", "format": "date-time", "readOnly": true } }, "description": "metadata of the resource", "title": "Metadata" }, "spec": { "$ref": "#/definitions/v3ProjectSpec", "description": "Spec of the resource", "title": "Spec" }, "status": { "$ref": "#/definitions/commonv3Status", "description": "Status of the resource", "title": "Status", "readOnly": true } }, "description": "Project", "title": "Project", "required": [ "apiVersion", "kind", "metadata", "spec", "name", "project" ] }, "ProjectServiceUpdateProjectBody": { "type": "object", "properties": { "apiVersion": { "type": "string", "default": "system.k8smgmt.io/v3", "description": "API Version of the resource", "title": "API Version", "readOnly": true }, "kind": { "type": "string", "default": "Project", "description": "Kind of the resource", "title": "Kind", "readOnly": true }, "metadata": { "type": "object", "example": { "name": "some-name", "project": "defaultproject" }, "properties": { "displayName": { "type": "string", "description": "display name of the resource", "title": "Display Name" }, "description": { "type": "string", "description": "description of the resource", "title": "Description" }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "description": "labels of the resource", "title": "Labels" }, "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "annotations of the resource", "title": "Annotations" }, "project": { "type": "string", "description": "Project of the resource", "title": "Project" }, "id": { "type": "string", "readOnly": true }, "urlScope": { "type": "string", "readOnly": true }, "createdAt": { "type": "string", "format": "date-time", "readOnly": true }, "modifiedAt": { "type": "string", "format": "date-time", "readOnly": true } }, "description": "metadata of the resource", "title": "Metadata" }, "spec": { "$ref": "#/definitions/v3ProjectSpec", "description": "Spec of the resource", "title": "Spec" }, "status": { "$ref": "#/definitions/commonv3Status", "description": "Status of the resource", "title": "Status", "readOnly": true } }, "description": "Project", "title": "Project", "required": [ "apiVersion", "kind", "metadata", "spec", "project" ] }, "commonv3Status": { "type": "object", "properties": { "conditionType": { "type": "string", "description": "type of the status condition", "title": "Condition Type", "readOnly": true }, "conditionStatus": { "$ref": "#/definitions/v3ConditionStatus", "enum": [ "StatusNotSet", "StatusSubmitted", "StatusOK", "StatusFailed" ], "description": "status of the condition", "title": "Condition Status", "readOnly": true }, "lastUpdated": { "type": "string", "format": "date-time", "description": "when the condition status is last updated", "title": "Last Updated", "readOnly": true }, "reason": { "type": "string", "description": "reason of the last condition status", "title": "Reason", "readOnly": true } }, "description": "status of a resource", "title": "Status", "readOnly": true }, "googlerpcStatus": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "details": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/protobufAny" } } } }, "protobufAny": { "type": "object", "properties": { "@type": { "type": "string" } }, "additionalProperties": {} }, "v3ConditionStatus": { "type": "string", "enum": [ "StatusNotSet", "StatusSubmitted", "StatusOK", "StatusFailed" ], "default": "StatusNotSet", "title": "$title: ConditionStatus\n$description: status of a condition for a resource" }, "v3ListMetadata": { "type": "object", "properties": { "count": { "type": "string", "format": "int64" }, "offset": { "type": "string", "format": "int64" }, "limit": { "type": "string", "format": "int64" } }, "title": "$title: ListMetadata\n$description: metadata for a list of resources\n$required: enabled" }, "v3Metadata": { "type": "object", "example": { "name": "some-name", "project": "defaultproject" }, "properties": { "name": { "type": "string", "description": "name of the resource", "title": "Name" }, "displayName": { "type": "string", "description": "display name of the resource", "title": "Display Name" }, "description": { "type": "string", "description": "description of the resource", "title": "Description" }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "description": "labels of the resource", "title": "Labels" }, "annotations": { "type": "object", "additionalProperties": { "type": "string" }, "description": "annotations of the resource", "title": "Annotations" }, "project": { "type": "string", "description": "Project of the resource", "title": "Project" }, "organization": { "type": "string", "description": "Organization to which the resource belongs", "title": "Organization" }, "partner": { "type": "string", "description": "Partner to which the resource belongs", "title": "Partner" }, "id": { "type": "string", "readOnly": true }, "urlScope": { "type": "string", "readOnly": true }, "createdAt": { "type": "string", "format": "date-time", "readOnly": true }, "modifiedAt": { "type": "string", "format": "date-time", "readOnly": true } }, "description": "metadata of the resource", "title": "Metadata", "required": [ "name", "project" ] }, "v3Project": { "type": "object", "properties": { "apiVersion": { "type": "string", "default": "system.k8smgmt.io/v3", "description": "API Version of the resource", "title": "API Version", "readOnly": true }, "kind": { "type": "string", "default": "Project", "description": "Kind of the resource", "title": "Kind", "readOnly": true }, "metadata": { "$ref": "#/definitions/v3Metadata", "description": "Metadata of the resource", "title": "Metadata" }, "spec": { "$ref": "#/definitions/v3ProjectSpec", "description": "Spec of the resource", "title": "Spec" }, "status": { "$ref": "#/definitions/commonv3Status", "description": "Status of the resource", "title": "Status", "readOnly": true } }, "description": "Project", "title": "Project", "required": [ "apiVersion", "kind", "metadata", "spec" ] }, "v3ProjectList": { "type": "object", "properties": { "apiVersion": { "type": "string", "default": "system.k8smgmt.io/v3", "description": "API Version of the list resource", "title": "API Version", "readOnly": true }, "kind": { "type": "string", "default": "Project", "description": "Kind of the list resource", "title": "Kind", "readOnly": true }, "metadata": { "$ref": "#/definitions/v3ListMetadata", "description": "Metadata of the list resource", "title": "ListMetadata", "readOnly": true }, "items": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/v3Project", "readOnly": true }, "description": "List of the resources", "title": "Items" } }, "description": "Project list", "title": "ProjectList" }, "v3ProjectNamespaceRole": { "type": "object", "properties": { "project": { "type": "string", "description": "Project", "title": "Project" }, "namespace": { "type": "string", "description": "Namespace", "title": "Namespace" }, "role": { "type": "string", "description": "Role", "title": "Role" }, "group": { "type": "string", "description": "Group", "title": "Group" } }, "description": "Project, role and namespace pairing for permission", "title": "ProjectNamespaceRole" }, "v3ProjectSpec": { "type": "object", "properties": { "default": { "type": "boolean", "description": "flag to indicate if this is the default project in the organization", "title": "Default" }, "projectNamespaceRoles": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/v3ProjectNamespaceRole" }, "description": "Project, namespace, role associations with groups", "title": "ProjectNamespaceRoles" }, "userRoles": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/v3UserRole" }, "description": "List of users with roles assigned to projects", "title": "UserRoles" } }, "description": "project specification", "title": "Project Specification" }, "v3UserRole": { "type": "object", "properties": { "user": { "type": "string", "description": "User", "title": "User" }, "role": { "type": "string", "description": "Role", "title": "Role" }, "namespace": { "type": "string", "description": "Namespace", "title": "Namespace" } }, "description": "User, role, namespace pairing for permission", "title": "UserRole" } }, "securityDefinitions": { "ApiKeyAuth": { "type": "apiKey", "name": "X-API-KEYID", "in": "header" }, "ApiTokenAuth": { "type": "apiKey", "name": "X-API-TOKEN", "in": "header" }, "BasicAuth": { "type": "basic" } }, "security": [ { "ApiKeyAuth": [], "ApiTokenAuth": [], "BasicAuth": [] } ] }