{ "swagger": "2.0", "info": { "title": "Group management Service", "version": "2.0", "contact": { "name": "Paralus Dev" } }, "tags": [ { "name": "GroupService" } ], "schemes": [ "https" ], "consumes": [ "application/json", "application/yaml" ], "produces": [ "application/json", "application/yaml" ], "paths": { "/auth/v3/partner/{metadata.partner}/organization/{metadata.organization}/group/{metadata.name}": { "get": { "operationId": "GroupService_GetGroup", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v3Group" } }, "403": { "description": "Returned when the group 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 group resource", "in": "query", "required": true, "type": "string", "default": "system.k8smgmt.io/v3" }, { "name": "kind", "description": "Kind\n\nKind of the group resource", "in": "query", "required": true, "type": "string", "default": "Group" }, { "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.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.users", "description": "Users\n\nList of users for group", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "spec.type", "description": "Type\n\nType of group", "in": "query", "required": false, "type": "string" }, { "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": [ "GroupService" ] }, "delete": { "operationId": "GroupService_DeleteGroup", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v3Group" } }, "204": { "description": "Returned when group is deleted successfully.", "schema": {} }, "403": { "description": "Returned when the group 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 group resource", "in": "query", "required": true, "type": "string", "default": "system.k8smgmt.io/v3" }, { "name": "kind", "description": "Kind\n\nKind of the group resource", "in": "query", "required": true, "type": "string", "default": "Group" }, { "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.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.users", "description": "Users\n\nList of users for group", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "spec.type", "description": "Type\n\nType of group", "in": "query", "required": false, "type": "string" }, { "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": [ "GroupService" ] }, "put": { "operationId": "GroupService_UpdateGroup", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v3Group" } }, "403": { "description": "Returned when the group 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": { "type": "object", "properties": { "apiVersion": { "type": "string", "default": "system.k8smgmt.io/v3", "description": "API Version of the group resource", "title": "API Version" }, "kind": { "type": "string", "default": "Group", "description": "Kind of the group resource", "title": "Kind" }, "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/v3GroupSpec", "description": "Metadata of the group resource", "title": "Metadata" }, "status": { "$ref": "#/definitions/commonv3Status", "description": "Status of the resource", "title": "Status", "readOnly": true } }, "description": "Group", "title": "Group", "required": [ "apiVersion", "kind", "metadata", "spec", "project" ] } } ], "tags": [ "GroupService" ] } }, "/auth/v3/partner/{metadata.partner}/organization/{metadata.organization}/groups": { "post": { "operationId": "GroupService_CreateGroup", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v3Group" } }, "201": { "description": "Returned when group is created successfully.", "schema": {} }, "403": { "description": "Returned when the group 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": { "type": "object", "properties": { "apiVersion": { "type": "string", "default": "system.k8smgmt.io/v3", "description": "API Version of the group resource", "title": "API Version" }, "kind": { "type": "string", "default": "Group", "description": "Kind of the group resource", "title": "Kind" }, "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/v3GroupSpec", "description": "Metadata of the group resource", "title": "Metadata" }, "status": { "$ref": "#/definitions/commonv3Status", "description": "Status of the resource", "title": "Status", "readOnly": true } }, "description": "Group", "title": "Group", "required": [ "apiVersion", "kind", "metadata", "spec", "name", "project" ] } } ], "tags": [ "GroupService" ] } }, "/auth/v3/partner/{partner}/organization/{organization}/groups": { "get": { "operationId": "GroupService_GetGroups", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v3GroupList" } }, "403": { "description": "Returned when the group 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": "partner", "in": "path", "required": true, "type": "string" }, { "name": "organization", "in": "path", "required": true, "type": "string" }, { "name": "q", "description": "query for filtering", "in": "query", "required": false, "type": "string" }, { "name": "name", "description": "name is unique ID of a resource along with (partnerID, organizationID,\nprojectID)", "in": "query", "required": false, "type": "string" }, { "name": "selector", "description": "selector is used to filter the labels of a resource", "in": "query", "required": false, "type": "string" }, { "name": "project", "in": "query", "required": false, "type": "string" }, { "name": "group", "in": "query", "required": false, "type": "string" }, { "name": "role", "in": "query", "required": false, "type": "string" }, { "name": "displayName", "description": "displayName only used for update queries to set displayName (READONLY)", "in": "query", "required": false, "type": "string" }, { "name": "count", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "offset", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "limit", "in": "query", "required": false, "type": "string", "format": "int64" }, { "name": "ignoreScopeDefault", "description": "ignoreScopeDefault ignores default values for partnerID, organizationID and\nprojectID", "in": "query", "required": false, "type": "boolean" }, { "name": "globalScope", "description": "globalScope sets partnerID,organizationID,projectID = 0", "in": "query", "required": false, "type": "boolean" }, { "name": "orderBy", "in": "query", "required": false, "type": "string" }, { "name": "order", "in": "query", "required": false, "type": "string" }, { "name": "deleted", "in": "query", "required": false, "type": "boolean" }, { "name": "extended", "in": "query", "required": false, "type": "boolean" }, { "name": "urlScope", "description": "urlScope is supposed to be passed in the URL as kind/HashID(value)", "in": "query", "required": false, "type": "string" }, { "name": "isSSOUser", "in": "query", "required": false, "type": "boolean" }, { "name": "username", "in": "query", "required": false, "type": "string" }, { "name": "groups", "in": "query", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi" }, { "name": "blueprintRef", "in": "query", "required": false, "type": "string" }, { "name": "publishedVersion", "in": "query", "required": false, "type": "string" }, { "name": "clusterID", "in": "query", "required": false, "type": "string" }, { "name": "ID", "in": "query", "required": false, "type": "string" }, { "name": "account", "in": "query", "required": false, "type": "string" }, { "name": "type", "description": "generic way to specify a type of resource, mainly for use in users endpoint", "in": "query", "required": false, "type": "string" } ], "tags": [ "GroupService" ] } } }, "definitions": { "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": { "$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" }, "v3Group": { "type": "object", "properties": { "apiVersion": { "type": "string", "default": "system.k8smgmt.io/v3", "description": "API Version of the group resource", "title": "API Version" }, "kind": { "type": "string", "default": "Group", "description": "Kind of the group resource", "title": "Kind" }, "metadata": { "$ref": "#/definitions/v3Metadata", "description": "Metadata of the group resource", "title": "Metadata" }, "spec": { "$ref": "#/definitions/v3GroupSpec", "description": "Metadata of the group resource", "title": "Metadata" }, "status": { "$ref": "#/definitions/commonv3Status", "description": "Status of the resource", "title": "Status", "readOnly": true } }, "description": "Group", "title": "Group", "required": [ "apiVersion", "kind", "metadata", "spec" ] }, "v3GroupList": { "type": "object", "properties": { "apiVersion": { "type": "string", "description": "API Version of the group list resource", "title": "API Version", "readOnly": true }, "kind": { "type": "string", "description": "Kind of the group list resource", "title": "Kind", "readOnly": true }, "metadata": { "$ref": "#/definitions/v3ListMetadata", "description": "Metadata of the group list resource", "title": "Metadata", "readOnly": true }, "items": { "type": "array", "items": { "$ref": "#/definitions/v3Group", "readOnly": true }, "description": "List of the group resources", "title": "Items" } }, "description": "Group list", "title": "GroupList", "readOnly": true }, "v3GroupSpec": { "type": "object", "properties": { "projectNamespaceRoles": { "type": "array", "items": { "$ref": "#/definitions/v3ProjectNamespaceRole" }, "description": "Project, namespace, role associations for group", "title": "ProjectNamespaceRoles" }, "users": { "type": "array", "items": { "type": "string" }, "description": "List of users for group", "title": "Users" }, "type": { "type": "string", "description": "Type of group", "title": "Type" } }, "description": "Group specification", "title": "Group Specification" }, "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" ] }, "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" } }, "securityDefinitions": { "ApiKeyAuth": { "type": "apiKey", "name": "X-API-KEYID", "in": "header" }, "ApiTokenAuth": { "type": "apiKey", "name": "X-API-TOKEN", "in": "header" }, "BasicAuth": { "type": "basic" } }, "security": [ { "BasicAuth": [] }, { "ApiKeyAuth": [], "ApiTokenAuth": [] } ] }